Releases: fastly/js-compute-runtime
Releases · fastly/js-compute-runtime
v3.16.0
v3.15.0
v3.14.2
v3.14.1
v3.14.0
v3.13.1
v3.13.0
3.13.0 (2024-04-11)
Added
- Add KVStore.prototype.delete method (578d858)
Updated
- Update to SpiderMonkey 124.0.2 (e32632e)
This release includes:
- An optimization for functions that only usearguments.length
to avoid allocating thearguments
object.
- An optimization forObject.HasOwn
which for small numbers of atoms just unrolls the loop.
Fixed
- Correct type definition for the global BackendConfiguration type - there is no
checkCertificate
field (62fd0ea) - Improve our console.log output for functions (9a97fc1)
- Refactor our async task implementation to be a generic AsyncTask class instead of separate implementations for each async operation (68dfec7)
v3.12.1
v3.12.0
3.12.0 (2024-03-28)
Changed
- update to SpiderMonkey 123.0.1 (#744) (32bf617)
This update brings with it the below changes:- Performance improvements for
JSON.stringify()
- An optimisation for
Object.keys()
to take advantage of cached for-in iterators if available. - Optimisations for
Object.assign()
- RegExp
v
flag support - Improved JSON parsing to help avoid garbage collection time when parsing very large files
- The
String.prototype.isWellFormed()
andString.prototype.toWellFormed()
methods respectively can be used to check if a string contains well-formed Unicode text (i.e. contains no lone surrogates) and sanitise an ill-formed string to well-formed Unicode text. - The
Object.groupBy()
andMap.groupBy()
static methods for grouping the elements of an iterable are now supported Date.parse()
now accepts several additional date formats:- Year > 9999 for
YYYY-MMM-DD
format (e.g.19999-Jan-01
) MMM-DD-YYYY
(e.g.Jan-01-1970
)- Milliseconds for non-ISO date formats (e.g.
Jan 1 1970 10:00:00.050
) - Day of week at the beginning of formats which were being rejected, such as:
Wed, 1970-01-01
Wed, 1970-Jan-01
- The day of week does not need to be correct, or a day of week at all; for example,
foo 1970-01-01
works. - Numeric dashed dates which do not meet the formal ISO standard are now accepted, including:
"01-12-1999"
(month first)"1999-1-5"
(single-digit month or day)"10000-01-12"
(year > 9999)"99-01-05"
or"01-05-99"
(2-digit year, year must be >31 if it comes first)"1999-01-05 10:00:00"
(space between date and time).
These dates will be parsed with behavior typical of other non-ISO dates, such as local time zone and month rollover (April 31 rolls over to May 1 since April 31 doesn’t exist).
- Requirements for characters directly following numbers have been loosened to accept new formats, including:
"DDMonYYYY"
"Mon.DD.YYYY"
"DD.Mon.YYYY"
"YYYY.MM.DD"
"Mon DD YYYY hh:mmXm"
(am
/pm
directly following time)
- Timezone
'Z'
is now accepted for non-ISO formats (e.g.Jan 1 1970 10:00Z
)
- Year > 9999 for
- Other
Date.parse()
fixes:YYYY-M-DD
andYYYY-MM-D
are no longer assumed GMT as an ISO dateYYYY-MM-DD
would be.- Milliseconds for all formats are truncated after 3 digits, rather than being rounded.
- The
Promise.withResolvers()
static method is now supported. This exposes theresolve
andreject
callback functions in the same scope as the returnedPromise
, allowing code that resolves or rejects the promise to be defined after its construction. - The
ArrayBuffer.prototype.transfer()
andArrayBuffer.prototype.transferToFixedLength()
methods can now be used to transfer ownership of memory from one ArrayBuffer to another. After transfer, the original buffer is detached from its original memory and hence unusable; the state can be checked usingArrayBuffer.prototype.detached
.
- Performance improvements for