Expand JS error serialization by domenic · Pull Request #5749 · whatwg/html (original) (raw)
This PR contains the following updates:
Package | Type | Update | Change |
---|---|---|---|
core-js | dependencies | minor | 3.12.0 -> 3.34.0 |
Release Notes
zloirock/core-js (core-js)
v3.34.0
Array
grouping proposal:- Methods:
Object.groupBy
Map.groupBy
- Moved to stable ES, November 2023 TC39 meeting
- Added
es.
namespace modules,/es/
and/stable/
namespaces entries
- Methods:
Promise.withResolvers
proposal:- Method:
Promise.withResolvers
- Moved to stable ES, November 2023 TC39 meeting
- Added
es.
namespace module,/es/
and/stable/
namespaces entries
- Method:
- Fixed a web incompatibility issue of
Iterator
helpers proposal, proposal-iterator-helpers/287 and some following changes, November 2023 TC39 meeting - Added
Uint8Array
to / from base64 and hex stage 2 proposal:- Methods:
Uint8Array.fromBase64
Uint8Array.fromHex
Uint8Array.prototype.toBase64
Uint8Array.prototype.toHex
- Methods:
- Relaxed some specific cases of
Number.fromString
validation before clarification of proposal-number-fromstring/24 - Fixed
@@​toStringTag
property descriptors on DOM collections, #1312 - Fixed the order of arguments validation in
Array
iteration methods, #1313 - Some minor
atob
/btoa
improvements - Compat data improvements:
Promise.withResolvers
marked as shipped from FF121
v3.33.3
- Fixed an issue getting the global object on Duktape, #1303
- Avoid sharing internal
[[DedentMap]]
fromString.dedent
proposal betweencore-js
instances before stabilization of the proposal - Some internal untangling
- Compat data improvements:
- Added Deno 1.38 compat data mapping
Array.fromAsync
marked as supported from Deno 1.38Symbol.{ dispose, asyncDispose }
marked as supported from Deno 1.38- Added Opera Android 79 compat data mapping
- Added Oculus Quest Browser 30 compat data mapping
- Updated Electron 28 and 29 compat data mapping
v3.33.2
- Simplified
structuredClone
polyfill, avoided second tree pass in cases of transferring - Added support of
SuppressedError
tostructuredClone
polyfill - Removed unspecified unnecessary
ArrayBuffer
andDataView
dependencies ofstructuredClone
lack of which could cause errors in some entries in IE10- - Fixed handling of fractional number part in
Number.fromString
- Compat data improvements:
URL.canParse
marked as supported from Chromium 120- Updated Opera Android 78 compat data mapping
- Added Electron 29 compat data mapping
v3.33.1
- Added one more workaround of possible error with
Symbol
polyfill on global object, #1289 - Directly specified
type: commonjs
inpackage.json
of all packages to avoid potential breakage in future Node versions, see this issue - Prevented potential issue with lack of some dependencies after automatic optimization polyfills of some methods in the pure version
- Some minor internal fixes and optimizations
- Compat data improvements:
String.prototype.{ isWellFormed, toWellFormed }
marked as supported from FF119- Added React Native 0.73 Hermes compat data, mainly fixes of some issues
- Added NodeJS 21.0 compat data mapping
v3.33.0
- Re-introduced
RegExp
escaping stage 2 proposal, September 2023 TC39 meeting:- Added
RegExp.escape
method with the new set of symbols for escaping - Some years ago, it was presented in
core-js
, but it was removed after rejecting the old version of this proposal
- Added
- Added
ArrayBuffer.prototype.{ transfer, transferToFixedLength }
and support transferring ofArrayBuffer
s viastructuredClone
to engines withMessageChannel
- Optimized
Math.f16round
polyfill - Fixed some conversion cases of
Math.f16round
andDataView.prototype.{ getFloat16, setFloat16 }
- Fully forced polyfilling of the TC39
Observable
proposal because of incompatibility with the new WHATWGObservable
proposal - Added an extra workaround of errors with exotic environment objects in
Symbol
polyfill, #1289 - Some minor fixes and stylistic changes
- Compat data improvements:
- V8 unshipped
Iterator
helpers because of some Web compatibility issues Promise.withResolvers
marked as supported from V8 ~ Chrome 119Array
grouping proposal features marked as supported from FF119value
argument ofURLSearchParams.prototype.{ has, delete }
marked as properly supported from V8 ~ Chrome 118URL.canParse
andURLSearchParams.prototype.size
marked as supported from Bun 1.0.2- Added Deno 1.37 compat data mapping
- Added Electron 28 compat data mapping
- Added Opera Android 78 compat data mapping
- V8 unshipped
v3.32.2
- Fixed
structuredClone
feature detectioncore-js@3.32.1
bug, #1288 - Added a workaround of old WebKit +
eval
bug, #1287 - Compat data improvements:
- Added Samsung Internet 23 compat data mapping
- Added Quest Browser 29 compat data mapping
v3.32.1
- Fixed some cases of IEEE754 rounding, #1279, thanks @petamoriken
- Prevented injection
process
polyfill tocore-js
via some bundlers oresm.sh
, #1277 - Some minor fixes and stylistic changes
- Compat data improvements:
Promise.withResolvers
marked as supported from Bun 0.7.1- Added Opera Android 77 compat data mapping
- Updated Electron 27 compat data mapping
v3.32.0
Array
grouping proposal, July 2023 TC39 meeting updates:- Moved back to stage 3
- Added
/actual/
namespaces entries, unconditional forced replacement changed to feature detection
Promise.withResolvers
proposal, July 2023 TC39 meeting updates:- Moved to stage 3
- Added
/actual/
namespaces entries, unconditional forced replacement changed to feature detection
Set
methods stage 3 proposal, July 2023 TC39 meeting updates:- Throw on negative
Set
sizes, proposal-set-methods/88 - Removed
IsCallable
check inGetKeysIterator
, proposal-set-methods/101
- Throw on negative
- Iterator Helpers stage 3 proposal:
- Avoid creating observable
String
wrapper objects, July 2023 TC39 meeting update, proposal-iterator-helpers/281 Iterator
is not constructible from the active function object (works as an abstract class)
- Avoid creating observable
- Async explicit resource management:
- Moved back into the initial proposal -> moved to stage 3, proposal-explicit-resource-management/154
- Added
/actual/
namespace entries, unconditional forced replacement changed to feature detection - Ignore return value of
[@@​dispose]()
method when hint isasync-dispose
, proposal-explicit-resource-management/180 - Added ticks for empty resources, proposal-explicit-resource-management/163
- Added some methods from
Float16Array
stage 3 proposal:- There are some reason why I don't want to add
Float16Array
right now, however, make sense to add some methods from this proposal. - Methods:
Math.f16round
DataView.prototype.getFloat16
DataView.prototype.setFloat16
- There are some reason why I don't want to add
- Added
DataView
get / setUint8Clamped
methods stage 1 proposal:- Methods:
DataView.prototype.getUint8Clamped
DataView.prototype.setUint8Clamped
- Methods:
- Used strict mode in some missed cases, #1269
- Fixed a Chromium 117 bug in
value
argument ofURLSearchParams.prototype.{ has, delete }
- Fixed early WebKit ~ Safari 17.0 beta
Set
methods implementation by the actual spec - Fixed incorrect
Symbol.{ dispose, asyncDispose }
descriptors from NodeJS 20.4 / transpilers helpers / userland code - Fixed forced polyfilling of some iterator helpers that should return wrapped iterator in the pure version
- Fixed and exposed
AsyncIteratorPrototype
core-js/configurator
option, #1268 - Compat data improvements:
- Sync
Iterator
helpers proposal features marked as supported from V8 ~ Chrome 117 Array
grouping proposal features marked as supported from V8 ~ Chrome 117- Mark
Symbol.{ dispose, asyncDispose }
as supported from NodeJS 20.5.0 (as mentioned above, NodeJS 20.4.0 add it, but with incorrect descriptors) - Added Electron 27 compat data mapping
- Sync
v3.31.1
- Fixed a
structuredClone
bug with cloning views of transferred buffers, #1265 - Fixed the order of arguments validation in
DataView
methods - Allowed cloning of
Float16Array
instructuredClone
- Compat data improvements:
Set
methods proposal marked as supported from Safari 17.0- New
URL
features:URL.canParse
,URLSearchParams.prototype.size
andvalue
argument ofURLSearchParams.prototype.{ has, delete }
marked as supported from Safari 17.0 value
argument ofURLSearchParams.prototype.{ has, delete }
marked as supported from Deno 1.35AggregateError
and well-formedJSON.stringify
marked as supported React Native 0.72 Hermes- Added Deno 1.35 compat data mapping
- Added Quest Browser 28 compat data mapping
- Added missing NodeJS 12.16-12.22 compat data mapping
- Updated Opera Android 76 compat data mapping
v3.31.0
- Well-formed unicode strings proposal:
- Methods:
String.prototype.isWellFormed
methodString.prototype.toWellFormed
method
- Moved to stable ES, May 2023 TC39 meeting
- Added
es.
namespace modules,/es/
and/stable/
namespaces entries
- Methods:
Array
grouping proposal, May 2023 TC39 meeting updates:- Because of the web compat issue, moved from prototype to static methods. Added:
Object.groupBy
methodMap.groupBy
method (with the actual semantic - with a minor difference it was present in the collections methods stage 1 proposal)
- Demoted to stage 2
- Because of the web compat issue, moved from prototype to static methods. Added:
- Decorator Metadata proposal, May 2023 TC39 meeting updates:
- Moved to stage 3
- Added
Function.prototype[Symbol.metadata]
(=== null
) - Added
/actual/
entries
- Iterator Helpers stage 3 proposal:
- Changed
Symbol.iterator
fallback from callable check toundefined
/null
check, May 2023 TC39 meeting, proposal-iterator-helpers/272 - Removed
IsCallable
check onNextMethod
, deferring errors toCall
site, May 2023 TC39 meeting, proposal-iterator-helpers/274
- Changed
- Added
Promise.withResolvers
stage 2 proposal:Promise.withResolvers
method
Symbol
predicates stage 2 proposal:- The methods renamed to end with
Symbol
, May 2023 TC39 meeting:Symbol.isRegistered
->Symbol.isRegisteredSymbol
methodSymbol.isWellKnown
->Symbol.isWellKnownSymbol
method
- The methods renamed to end with
- Added
value
argument ofURLSearchParams.prototype.{ has, delete }
, url/735 - Fixed some cases of increasing buffer size in
ArrayBuffer.prototype.{ transfer, transferToFixedLength }
polyfills - Fixed awaiting async
AsyncDisposableStack.prototype.adopt
callback, #1258 - Fixed
URLSearchParams#size
in ES3 engines (IE8-) - Added a workaround in
Object.{ entries, values }
for some IE versions bug with invisible integer keys onnull
-prototype objects - Added TypeScript definitions to
core-js-compat
, #1235, thanks @susnux - Compat data improvements:
Set.prototype.difference
that was missed in Bun because of a bug added in 0.6.0Array.prototype.{ group, groupToMap }
marked as no longer supported in WebKit runtimes because of the mentioned above web compat issue. For example, it's disabled from Bun 0.6.2- Methods from the change
Array
by copy proposal marked as supported from FF115 Array.fromAsync
marked as supported from FF115URL.canParse
marked as supported from FF115value
argument ofURLSearchParams.prototype.{ has, delete }
marked as supported from NodeJS 20.2.0 and FF115- Added Deno 1.34 compat data mapping
- Added Electron 26 compat data mapping
- Added Samsung Internet 22 compat data mapping
- Added Opera Android 75 and 76 compat data mapping
- Added Quest Browser 27 compat data mapping
v3.30.2
- Added a fix for a NodeJS 20.0.0 bug with cloning
File
viastructuredClone
- Added protection from Terser unsafe
String
optimization, #1242 - Added a workaround for getting proper global object in Figma plugins, #1231
- Compat data improvements:
- Added NodeJS 20.0 compat data mapping
- Added Deno 1.33 compat data mapping
URL.canParse
marked as supported (fixed) from NodeJS 20.1.0 and Deno 1.33.2
v3.30.1
- Added a fix for a NodeJS 19.9.0
URL.canParse
bug - Compat data improvements:
JSON.parse
source text access proposal features marked as supported from V8 ~ Chrome 114ArrayBuffer.prototype.transfer
and friends proposal features marked as supported from V8 ~ Chrome 114URLSearchParams.prototype.size
marked as supported from V8 ~ Chrome 113
v3.30.0
- Added
URL.canParse
method, url/763 Set
methods proposal:- Removed sort from
Set.prototype.intersection
, March 2023 TC39 meeting, proposal-set-methods/94
- Removed sort from
- Iterator Helpers proposals (sync, async):
- Validate arguments before opening iterator, March 2023 TC39 meeting, proposal-iterator-helpers/265
- Explicit Resource Management proposals (sync, async):
(Async)DisposableStack.prototype.move
marks the original stack as disposed, #1226- Some simplifications like proposal-explicit-resource-management/150
Iterator.range
proposal:- Moved to Stage 2, March 2023 TC39 meeting
- Decorator Metadata proposal:
- Returned to usage
Symbol.metadata
, March 2023 TC39 meeting, proposal-decorator-metadata/12
- Returned to usage
- Compat data improvements:
URLSearchParams.prototype.size
marked as supported from FF112, NodeJS 19.8 and Deno 1.32- Added Safari 16.4 compat data
- Added Deno 1.32 compat data mapping
- Added Electron 25 and updated 24 compat data mapping
- Added Samsung Internet 21 compat data mapping
- Added Quest Browser 26 compat data mapping
- Updated Opera Android 74 compat data
v3.29.1
- Fixed dependencies of some entries
- Fixed
ToString
conversion / built-ins nature of some accessors String.prototype.{ isWellFormed, toWellFormed }
marked as supported from V8 ~ Chrome 111- Added Opera Android 74 compat data mapping
v3.29.0
- Added
URLSearchParams.prototype.size
getter, url/734 - Allowed cloning resizable
ArrayBuffer
s in thestructuredClone
polyfill - Fixed wrong export in
/(stable|actual|full)/instance/unshift
entries, #1207 - Compat data improvements:
Set
methods proposal marked as supported from Bun 0.5.7String.prototype.toWellFormed
marked as fixed from Bun 0.5.7- Added Deno 1.31 compat data mapping
v3.28.0
3.28.0 - 2023.02.14
v3.27.2
Set
methods proposal updates:- Closing of iterators of
Set
-like objects on early exit, proposal-set-methods/85 - Some other minor internal changes
- Closing of iterators of
- Added one more workaround of a
webpack
dev server bug on IE global methods, #1161 - Fixed possible
String.{ raw, cooked }
error with empty template array - Used non-standard V8
Error.captureStackTrace
instead of stack parsing in new error classes / wrappers where it's possible - Added detection correctness of iteration to
Promise.{ allSettled, any }
feature detection, Hermes issue - Compat data improvements:
- Change
Array
by copy proposal marked as supported from V8 ~ Chrome 110 - Added Samsung Internet 20 compat data mapping
- Added Quest Browser 25 compat data mapping
- Added React Native 0.71 Hermes compat data
- Added Electron 23 and 24 compat data mapping
self
marked as fixed in Deno 1.29.3, deno/17362
- Change
- Minor tweaks of minification settings for
core-js-bundle
- Refactoring, some minor fixes, improvements, optimizations
v3.27.1
- Fixed a Chakra-based MS Edge (18-) bug that unfreeze (O_o) frozen arrays used as
WeakMap
keys - Fixing of the previous bug also fixes some cases of
String.dedent
in MS Edge - Fixed dependencies of some entries
v3.27.0
- Iterator Helpers proposal:
- Built-ins:
Iterator
Iterator.from
Iterator.prototype.drop
Iterator.prototype.every
Iterator.prototype.filter
Iterator.prototype.find
Iterator.prototype.flatMap
Iterator.prototype.forEach
Iterator.prototype.map
Iterator.prototype.reduce
Iterator.prototype.some
Iterator.prototype.take
Iterator.prototype.toArray
Iterator.prototype.toAsync
Iterator.prototype[@​@​toStringTag]
AsyncIterator
AsyncIterator.from
AsyncIterator.prototype.drop
AsyncIterator.prototype.every
AsyncIterator.prototype.filter
AsyncIterator.prototype.find
AsyncIterator.prototype.flatMap
AsyncIterator.prototype.forEach
AsyncIterator.prototype.map
AsyncIterator.prototype.reduce
AsyncIterator.prototype.some
AsyncIterator.prototype.take
AsyncIterator.prototype.toArray
AsyncIterator.prototype[@​@​toStringTag]
- Moved to Stage 3, November 2022 TC39 meeting
- Added
/actual/
entries, unconditional forced replacement disabled for features that survived to Stage 3 .from
accept strings,.flatMap
throws on strings returned from the callback, proposal-iterator-helpers/244, proposal-iterator-helpers/250.from
and.flatMap
throws on non-object iterators, proposal-iterator-helpers/253
- Built-ins:
Set
methods proposal:- Built-ins:
Set.prototype.intersection
Set.prototype.union
Set.prototype.difference
Set.prototype.symmetricDifference
Set.prototype.isSubsetOf
Set.prototype.isSupersetOf
Set.prototype.isDisjointFrom
- Moved to Stage 3, November 2022 TC39 meeting
- Reimplemented with new semantics:
- Optimized performance (iteration over lowest set)
- Accepted only
Set
-like objects as an argument, not all iterables - Accepted only
Set
s asthis
, no@@​species
support, and other minor changes
- Added
/actual/
entries, unconditional forced replacement changed to feature detection - For avoiding breaking changes:
- New versions of methods are implemented as new modules and available in new entries or entries where old versions of methods were not available before (like
/actual/
namespace) - In entries where they were available before (like
/full/
namespace), those methods are available with fallbacks to old semantics (in addition toSet
-like, they accept iterable objects). This behavior will be removed from the next major release
- New versions of methods are implemented as new modules and available in new entries or entries where old versions of methods were not available before (like
- Built-ins:
- Well-Formed Unicode Strings proposal:
- Methods:
String.prototype.isWellFormed
String.prototype.toWellFormed
- Moved to Stage 3, November 2022 TC39 meeting
- Added
/actual/
entries, disabled unconditional forced replacement
- Methods:
- Explicit resource management Stage 3 and Async explicit resource management Stage 2 proposals:
- Renamed from "
using
statement" and split into 2 (sync and async) proposals - In addition to already present well-known symbols, added new built-ins:
Symbol.dispose
Symbol.asyncDispose
SuppressedError
DisposableStack
DisposableStack.prototype.dispose
DisposableStack.prototype.use
DisposableStack.prototype.adopt
DisposableStack.prototype.defer
DisposableStack.prototype.move
DisposableStack.prototype[@​@​dispose]
AsyncDisposableStack
AsyncDisposableStack.prototype.disposeAsync
AsyncDisposableStack.prototype.use
AsyncDisposableStack.prototype.adopt
AsyncDisposableStack.prototype.defer
AsyncDisposableStack.prototype.move
AsyncDisposableStack.prototype[@​@​asyncDispose]
Iterator.prototype[@​@​dispose]
AsyncIterator.prototype[@​@​asyncDispose]
- Sync version of this proposal moved to Stage 3, November 2022 TC39 meeting
- Added
/actual/
namespace entries for Stage 3 proposal
- Renamed from "
- Added
String.dedent
stage 2 proposal- Method
String.dedent
- Throws an error on non-frozen raw templates for avoiding possible breaking changes in the future, proposal-string-dedent/75
- Method
- Compat data targets improvements:
- React Native from 0.70 shipped with Hermes as the default engine. However, bundled Hermes versions differ from standalone Hermes releases. So added
react-native
target for React Native with bundled Hermes. - According to the documentation, Oculus Browser was renamed to Meta Quest Browser, so
oculus
target was renamed toquest
. opera_mobile
target name is confusing since it contains data for the Chromium-based Android version, but iOS Opera is Safari-based. Soopera_mobile
target was renamed toopera-android
.android
target name is also confusing for someone - that means Android WebView, some think thinks that it's Chrome for Android, but they have some differences. For avoiding confusion, addedchrome-android
target.- For consistency with two previous cases, added
firefox-android
target. - For avoiding breaking changes, the
oculus
andopera_mobile
fields are available in the compat data till the next major release.
- React Native from 0.70 shipped with Hermes as the default engine. However, bundled Hermes versions differ from standalone Hermes releases. So added
- Compat data improvements:
Array.fromAsync
marked as supported from Bun 0.3.0String.prototype.{ isWellFormed, toWellFormed }
marked as supported from Bun 0.4.0- Change
Array
by copy proposal marked as supported from Deno 1.27, deno/16429 - Added Deno 1.28 / 1.29 compat data mapping
- Added NodeJS 19.2 compat data mapping
- Added Samsung Internet 19.0 compat data mapping
- Added Quest Browser 24.0 compat data mapping
- Fixed the first version in the Chromium-based Edge compat data mapping
{ Map, WeakMap }.prototype.emplace
became stricter by the spec draft- Smoothed behavior of some conflicting proposals
- Removed some generic behavior (like
@@​species
pattern) of some.prototype
methods from the new collections methods proposal and theArray
deduplication proposal that most likely will not be implemented since it contradicts the current TC39 policy - Added pure version of the
Number
constructor, #1154, #1155, thanks @trosos - Added
set(Timeout|Interval|Immediate)
extra arguments fix for Bun 0.3.0- (similarly to IE9-), bun/1633 - Fixed handling of sparse arrays in
structuredClone
, #1156 - Fixed a theoretically possible future conflict of polyfills definitions in the pure version
- Some refactoring and optimization
v3.26.1
- Disabled forced replacing of
Array.fromAsync
since it's on Stage 3 - Avoiding a check of the target in the internal
function-uncurry-this
helper where it's not required - minor optimization and preventing problems in some broken environments, a workaround of #1141 - V8 will not ship
Array.prototype.{ group, groupToMap }
in V8 ~ Chromium 108, proposal-array-grouping/44
v3.26.0
Array.fromAsync
proposal:- Moved to Stage 3, September TC39 meeting
- Avoid observable side effects of
%Array.prototype.values%
usage in array-like branch, proposal-array-from-async/30
- Added well-formed unicode strings stage 2 proposal:
String.prototype.isWellFormed
String.prototype.toWellFormed
- Recent updates of the iterator helpers proposal:
- Added a counter parameter to helpers, proposal-iterator-helpers/211
- Don't await non-objects returned from functions passed to
AsyncIterator
helpers, proposal-iterator-helpers/239 { Iterator, AsyncIterator }.prototype.flatMap
supports returning both - iterables and iterators, proposal-iterator-helpers/233- Early exit on broken
.next
in missed cases of{ Iterator, AsyncIterator }.from
, proposal-iterator-helpers/232
- Added
self
polyfill as a part of The Minimum Common Web Platform API, specification, #1118 - Added
inverse
option tocore-js-compat
, #1119 - Added
format
option tocore-js-builder
, #1120 - Added NodeJS 19.0 compat data
- Added Deno 1.26 and 1.27 compat data
- Added Opera Android 72 compat data mapping
- Updated Electron 22 compat data mapping
v3.25.5
- Fixed regression with an error on reuse of some built-in methods from another realm, #1133
v3.25.4
- Added a workaround of a Nashorn bug with
Function.prototype.{ call, apply, bind }
on string methods, #1128 - Updated lists of
[Serializable]
and[Transferable]
objects in thestructuredClone
polyfill. Mainly, for better error messages if polyfilling of cloning such types is impossible Array.prototype.{ group, groupToMap }
marked as supported from V8 ~ Chromium 108- Added Electron 22 compat data mapping
v3.25.3
- Forced polyfilling of
Array.prototype.groupToMap
in the pure version for returning wrappedMap
instances - Fixed existence of
Array.prototype.{ findLast, findLastIndex }
in/stage/4
entry - Added Opera Android 71 compat data mapping
- Some stylistic changes
v3.25.2
- Considering
document.all
as a callable in some missed cases - Added Safari 16.0 compat data
- Added iOS Safari 16.0 compat data mapping
- Fixed some ancient iOS Safari versions compat data mapping
v3.25.1
- Added some fixes and workarounds of FF30- typed arrays bug that does not properly convert objects to numbers
- Added
sideEffects
field tocore-js-pure
package.json
for better tree shaking, #1117 - Dropped
semver
dependency fromcore-js-compat
semver
package (ironically) added a breaking change and dropped NodeJS 8 support in the minor7.1
version, after thatsemver
incore-js-compat
was pinned to7.0
since for avoiding breaking changes it should support NodeJS 8. However, sincecore-js-compat
is usually used with other packages that usesemver
dependency, it causes multiple duplication ofsemver
in dependencies. So I decided to removesemver
dependency and replace it with a couple of simple helpers.
- Added Bun 0.1.6-0.1.11 compat data
- Added Deno 1.25 compat data mapping
- Updated Electron 21 compat data mapping
- Some stylistic changes, minor fixes, and improvements
v3.25.0
- Added
Object.prototype.__proto__
polyfill- It's optional, legacy, and in some cases (mainly because of developers' mistakes) can cause problems, but some libraries depend on it, and most code can't work without the proper libraries' ecosystem
- Only for modern engines where this feature is missed (like Deno), it's not installed in IE10- since here we have no proper way setting of the prototype
- Without fixes of early implementations where it's not an accessor since those fixes are impossible
- Only for the global version
- Considering
document.all
as an object in some missed cases, see ECMAScript Annex B 3.6 - Avoiding unnecessary promise creation and validation result in
%WrapForValid(Async)IteratorPrototype%.return
, proposal-iterator-helpers/215 - Fixed omitting the result of proxing
.return
in%IteratorHelperPrototype%.return
, #1116 - Fixed the order creation of properties of iteration result object of some iterators (
value
should be created beforedone
) - Fixed some cases of Safari < 13 bug - silent on non-writable array
.length
setting - Fixed
ArrayBuffer.length
in V8 ~ Chrome 27- - Relaxed condition of re-usage native
WeakMap
for internal states with multiplecore-js
copies - Availability cloning of
FileList
in thestructuredClone
polyfill extended to some more old engines versions - Some stylistic changes and minor fixes
- Throwing a
TypeError
incore-js-compat
/core-js-builder
in case of passing invalid module names / filters for avoiding unexpected result, related to #1115 - Added missed NodeJS 13.2 to
esmodules
core-js-compat
/core-js-builder
target - Added Electron 21 compat data mapping
- Added Oculus Browser 23.0 compat data mapping
v3.24.1
- NodeJS is ignored in
IS_BROWSER
detection to avoid a false positive withjsdom
, #1110 - Fixed detection of
@@​species
support inPromise
in some old engines { Array, %TypedArray% }.prototype.{ findLast, findLastIndex }
marked as shipped in FF104- Added iOS Safari 15.6 compat data mapping
- Fixed Opera 15 compat data mapping
v3.24.0
- Recent updates of the iterator helpers proposal, #1101:
.asIndexedPairs
renamed to.indexed
, proposal-iterator-helpers/183:Iterator.prototype.asIndexedPairs
->Iterator.prototype.indexed
AsyncIterator.prototype.asIndexedPairs
->AsyncIterator.prototype.indexed
- Avoid exposing spec fiction
%AsyncFromSyncIteratorPrototype%
inAsyncIterator.from
andIterator.prototype.toAsync
, proposal-iterator-helpers/182, proposal-iterator-helpers/202 - Avoid unnecessary promise creation in
%WrapForValidAsyncIteratorPrototype%.next
, proposal-iterator-helpers/197 - Do not validate value in
%WrapForValid(Async)IteratorPrototype%.next
, proposal-iterator-helpers/197 and proposal-iterator-helpers/205 - Do not forward the parameter of
.next
/.return
to an underlying iterator by the extended iterator protocol, a part of proposal-iterator-helpers/194 .throw
methods removed from all wrappers / helpers prototypes, a part of proposal-iterator-helpers/194- Close inner iterators of
{ Iterator, AsyncIterator }.prototype.flatMap
proxy iterators on.return
, proposal-iterator-helpers/195 - Throw
RangeError
onNaN
in{ Iterator, AsyncIterator }.prototype.{ drop, take }
, proposal-iterator-helpers/181 - Many other updates and fixes of this proposal
%TypedArray%.prototype.toSpliced
method removed from the change array by copy proposal and marked as obsolete incore-js
, proposal-change-array-by-copy/88- Polyfill
Promise
withunhandledrejection
event support (browser style) in Deno < 1.24 - Available new targets in
core-js-compat
/core-js-builder
and added compat data for them: - Added Samsung Internet 18.0 compat data mapping
v3.23.5
- Fixed a typo in the
structuredClone
feature detection, #1106 - Added Opera Android 70 compat data mapping
v3.23.4
- Added a workaround of the Bun ~ 0.1.1 bug that define some globals with incorrect property descriptors and that causes a crash of
core-js
- Added a fix of the FF103+
structuredClone
bugs (1774866 (fixed in FF104) and 1777321 (still not fixed)) that now can clone errors, but.stack
of the clone is an empty string - Fixed
{ Map, WeakMap }.prototype.emplace
logic, #1102 - Fixed order of errors throwing on iterator helpers
v3.23.3
- Changed the order of operations in
%TypedArray%.prototype.toSpliced
following proposal-change-array-by-copy/89 - Fixed regression of some IE8- issues
v3.23.2
- Avoided creation of extra properties for the handling of
%TypedArray%
constructors in new methods, #1092 (comment) - Added Deno 1.23 compat data mapping
v3.23.1
- Fixed possible error on multiple
core-js
copies, #1091 - Added
v
flag toRegExp.prototype.flags
implementation in case if current V8 bugs will not be fixed before this flag implementation
v3.23.0
Array
find from last moved to the stable ES, according to June 2022 TC39 meeting:Array.prototype.findLast
Array.prototype.findLastIndex
%TypedArray%.prototype.findLast
%TypedArray%.prototype.findLastIndex
- Methods from the
Array
grouping proposal renamed, according to June 2022 TC39 meeting:Array.prototype.groupBy
->Array.prototype.group
Array.prototype.groupByToMap
->Array.prototype.groupToMap
- Changed the order of operations in
%TypedArray%.prototype.with
following proposal-change-array-by-copy/86, according to June 2022 TC39 meeting - Decorator Metadata proposal extracted from Decorators proposal as a separate stage 2 proposal, according to March 2022 TC39 meeting,
Symbol.metadataKey
replacesSymbol.metadata
- Added
Array.prototype.push
polyfill with some fixes for modern engines - Added
Array.prototype.unshift
polyfill with some fixes for modern engines - Fixed a bug in the order of getting flags in
RegExp.prototype.flags
in the actual version of V8 - Fixed property descriptors of some
Math
andNumber
constants - Added a workaround of V8
ArrayBufferDetaching
protector cell invalidation and performance degradation onstructuredClone
feature detection, one more case of #679 - Added detection of NodeJS bug in
structuredClone
that can not cloneDOMException
(just in case for future versions that will fix other issues) - Compat data:
- Added NodeJS 18.3 compat data mapping
- Added and fixed Deno 1.22 and 1.21 compat data mapping
- Added Opera Android 69 compat data mapping
- Updated Electron 20.0 compat data mapping
v3.22.8
- Fixed possible multiple call of
ToBigInt
/ToNumber
conversion of the argument passed to%TypedArray%.prototype.fill
in V8 ~ Chrome < 59, Safari < 14.1, FF < 55, Edge <=18 - Fixed some cases of
DeletePropertyOrThrow
in IE9- - Fixed the kind of error (
TypeError
instead ofError
) on incorrectexec
result inRegExp.prototype.test
polyfill - Fixed dependencies of
{ actual, full, features }/typed-array/at
entries - Added Electron 20.0 compat data mapping
- Added iOS Safari 15.5 compat data mapping
- Refactoring
v3.22.7
- Added a workaround for V8 ~ Chrome 53 bug with non-writable prototype of some methods, #1083
v3.22.6
- Fixed possible double call of
ToNumber
conversion on arguments ofMath.{ fround, trunc }
polyfills Array.prototype.includes
marked as fixed in FF102
v3.22.5
- Ensured that polyfilled constructors
.prototype
is non-writable - Ensured that polyfilled methods
.prototype
is not defined - Added detection and fix of a V8 ~ Chrome <103 bug of
struturedClone
that returnsnull
if cloned object contains multiple references to one error
v3.22.4
- Ensured proper
.length
of polyfilled functions even in compressed code (excepting some ancient engines) - Ensured proper
.name
of polyfilled accessors (excepting some ancient engines) - Ensured proper source /
ToString
conversion of polyfilled accessors - Actualized Rhino compat data
- Refactoring
v3.22.3
- Added a fix for FF99+
Array.prototype.includes
broken on sparse arrays
v3.22.2
- Fixed
URLSearchParams
in IE8- that was broken in the previous release - Fixed
__lookupGetter__
entries
v3.22.1
- Improved some cases of
RegExp
flags handling - Prevented experimental warning in NodeJS ~ 18.0 on detection
fetch
API - Added NodeJS 18.0 compat data
v3.22.0
- Change
Array
by copy proposal:- Moved to Stage 3, March TC39 meeting
- Disabled forced replacement and added
/actual/
entry points for methods from this proposal Array.prototype.toSpliced
throws aTypeError
instead ofRangeError
if the result length is more thanMAX_SAFE_INTEGER
, proposal-change-array-by-copy/70
- Added some more
atob
/btoa
fixes:- NodeJS <17.9
atob
does not ignore spaces, node/42530 - Actual NodeJS
atob
does not validate encoding, node/42646 - FF26- implementation does not properly convert argument to string
- IE / Edge <16 implementation have wrong arity
- NodeJS <17.9
- Added
/full/
namespace as the replacement for/features/
since it's more descriptive in context of the rest namespaces (/es/
⊆/stable/
⊆/actual/
⊆/full/
) - Avoided propagation of removed parts of proposals to upper stages. For example,
%TypedArray%.prototype.groupBy
was removed from theArray
grouping proposal a long time ago. We can't completely remove this method since it's a breaking change. But this proposal has been promoted to stage 3 - so the proposal should be promoted without this method, this method should not be available in/actual/
entries - but it should be available in early-stage entries to avoid breakage. - Significant internal refactoring and splitting of modules (but without exposing to public API since it will be a breaking change - it will be exposed in the next major version)
- Bug fixes:
- Tooling:
- Stabilized proposals are filtered out from the
core-js-compat
->core-js-builder
->core-js-bundle
output. That mean that if the output contains, for example,es.object.has-own
, the legacy reference to it,esnext.object.has-own
, no longer added. - Aligned modules filters of
core-js-builder
andcore-js-compat
, now it'smodules
andexclude
options - Added support of entry points, modules, regexes, and arrays of them to those filters
- Missed
targets
option ofcore-js-compat
means that thetargets
filter just will not be applied, so the result will contain modules required for all possible engines
- Stabilized proposals are filtered out from the
- Compat data:
.stack
property onDOMException
marked as supported from Deno 1.15- Added Deno 1.21 compat data mapping
- Added Electron 19.0 and updated 18.0 compat data mapping
- Added Samsung Internet 17.0 compat data mapping
- Added Opera Android 68 compat data mapping
v3.21.1
- Added a bugfix for the WebKit
Array.prototype.{ groupBy, groupByToMap }
implementation core-js-compat
targets parser transforms engine names to lower caseatob
/btoa
marked as fixed in NodeJS 17.5- Added Electron 18.0 compat data mapping
- Added Deno 1.20 compat data mapping
v3.21.0
- Added Base64 utility methods:
atob
btoa
- Added the proper validation of arguments to some methods from web standards
- Forced replacement of all features from early-stage proposals for avoiding possible web compatibility issues in the future
- Added Rhino 1.7.14 compat data
- Added Deno 1.19 compat data mapping
- Added Opera Android 66 and 67 compat data mapping
- Added iOS Safari 15.3 and 15.4 compat data mapping
v3.20.3
- Detects and replaces broken third-party
Function#bind
polyfills, uses only nativeFunction#bind
in the internals structuredClone
should throw an error if no arguments passed- Changed the structure of notes in
__core-js_shared__
v3.20.2
- Added a fix of a V8 ~ Chrome 36-
Object.{ defineProperty, defineProperties }
bug, Babel issue - Added fixes of some different
%TypedArray%.prototype.set
bugs, affects modern engines (like Chrome < 95 or Safari < 14.1)
v3.20.1
- Fixed the order of calling reactions of already fulfilled / rejected promises in
Promise.prototype.then
, #1026 - Fixed possible memory leak in specific promise chains
- Fixed some missed dependencies of entries
- Added Deno 1.18 compat data mapping
v3.20.0
- Added
structuredClone
method from the HTML spec, see MDN- Includes all cases of cloning and transferring of required ECMAScript and platform types that can be polyfilled, for the details see the caveats
- Uses native structured cloning algorithm implementations where it's possible
- Includes the new semantic of errors cloning from
html/5749
- Added
DOMException
polyfill, the Web IDL spec, see MDN- Includes
DOMException
and its attributes polyfills w…
- Includes