Update dependency core-js to v3.39.0
This MR contains the following updates:
Package | Type | Update | Change |
---|---|---|---|
core-js (source) | dependencies | minor | 3.8.1 -> 3.39.0 |
Release Notes
zloirock/core-js (core-js)
v3.39.0
- Changes v3.38.1...v3.39.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[@​@​toStringTag]
-
- Moved to stable ES, October 2024 TC39 meeting
- Added
es.
namespace modules,/es/
and/stable/
namespaces entries
- Built-ins:
-
Promise.try
:- Built-ins:
Promise.try
- Moved to stable ES, October 2024 TC39 meeting
- Added
es.
namespace module,/es/
and/stable/
namespaces entries - Fixed
/actual|full/promise/try
entries for the callback arguments support
- Built-ins:
-
Math.sumPrecise
proposal:- Built-ins:
Math.sumPrecise
- Moved to stage 3, October 2024 TC39 meeting
- Added
/actual/
namespace entries, unconditional forced replacement changed to feature detection
- Built-ins:
- Added
Iterator
sequencing stage 2.7 proposal:- Added built-ins:
Iterator.concat
- Added built-ins:
-
Map
upsert stage 2 proposal:- Updated to the new API following the October 2024 TC39 meeting
- Added built-ins:
Map.prototype.getOrInsert
Map.prototype.getOrInsertComputed
WeakMap.prototype.getOrInsert
WeakMap.prototype.getOrInsertComputed
- Extractors proposal moved to stage 2, October 2024 TC39 meeting
- Usage of
@@​species
pattern removed from%TypedArray%
andArrayBuffer
methods, tc39/ecma262/3450:- Built-ins:
%TypedArray%.prototype.filter
%TypedArray%.prototype.filterReject
%TypedArray%.prototype.map
%TypedArray%.prototype.slice
%TypedArray%.prototype.subarray
ArrayBuffer.prototype.slice
- Built-ins:
- Some other minor improvements
- Compat data improvements:
-
Uint8Array
to / from base64 and hex proposal methods marked as shipped from FF133 - Added NodeJS 23.0 compat data mapping
-
self
descriptor is fixed in Deno 1.46.0 - Added Deno 1.46 and 2.0 compat data mapping
-
Iterator
helpers proposal methods marked as shipped from Bun 1.1.31 - Added Electron 34 and updated Electron 33 compat data mapping
- Added Opera Android 85 compat data mapping
- Added Oculus Quest Browser 35 compat data mapping
-
v3.38.1
- Changes v3.38.0...v3.38.1
- Fixed some cases of
URLSearchParams
percent decoding, #1357, #1361, thanks @slowcheetah - Some stylistic changes and minor optimizations
- Compat data improvements:
-
Iterator
helpers proposal methods marked as shipped from FF131 -
Math.f16round
andDataView.prototype.{ getFloat16, setFloat16 }
marked as shipped from Bun 1.1.23 -
RegExp.escape
marked as shipped from Bun 1.1.22 -
Promise.try
marked as shipped from Bun 1.1.22 -
Uint8Array
to / from base64 and hex proposal methods marked as shipped from Bun 1.1.22 - Added Hermes 0.13 compat data, similar to React Native 0.75 Hermes
- Added Opera Android 84 compat data mapping
-
v3.38.0
- Changes v3.37.1...v3.38.0
-
RegExp.escape
proposal:- Built-ins:
RegExp.escape
- Moved to stage 3, June 2024 and July 2024 TC39 meetings
- Updated the way of escaping, regex-escaping/77
- Throw an error on non-strings, regex-escaping/58
- Added
/actual/
namespace entries, unconditional forced replacement changed to feature detection
- Built-ins:
-
Promise.try
proposal:- Built-ins:
Promise.try
- Moved to stage 3, June 2024 TC39 meeting
- Added
/actual/
namespace entries, unconditional forced replacement changed to feature detection
- Built-ins:
-
Uint8Array
to / from base64 and hex stage 3 proposal:- Built-ins:
Uint8Array.fromBase64
Uint8Array.fromHex
Uint8Array.prototype.setFromBase64
Uint8Array.prototype.setFromHex
Uint8Array.prototype.toBase64
Uint8Array.prototype.toHex
- Added
Uint8Array.prototype.{ setFromBase64, setFromHex }
methods - Added
Uint8Array.fromBase64
andUint8Array.prototype.setFromBase64
lastChunkHandling
option, proposal-arraybuffer-base64/33 - Added
Uint8Array.prototype.toBase64
omitPadding
option, proposal-arraybuffer-base64/60 - Added throwing a
TypeError
on arrays backed by detached buffers - Unconditional forced replacement changed to feature detection
- Built-ins:
- Fixed
RegExp
named capture groups polyfill in combination with non-capturing groups, #1352, thanks @Ulop - Improved some cases of environment detection
- Uses
process.getBuiltinModule
for getting built-in NodeJS modules where it's available - Uses
https
instead ofhttp
inURL
constructor feature detection to avoid extra notifications from some overly vigilant security scanners, #1345 - Some minor optimizations
- Updated
browserslist
incore-js-compat
dependencies that fixes an upstream issue with incorrect interpretation of somebrowserslist
queries, #1344, browserslist/829, browserslist/836 - Compat data improvements:
- Added Safari 18.0 compat data:
- Fixed
Object.groupBy
andMap.groupBy
to work for non-objects - Fixed throwing a
RangeError
ifSet
methods are called on an object with negative size property - Fixed
Set.prototype.symmetricDifference
to callthis.has
in each iteration - Fixed
Array.fromAsync
to not call theArray
constructor twice - Added
URL.parse
- Fixed
-
Math.f16round
andDataView.prototype.{ getFloat16, setFloat16 }
marked as shipped from FF129 -
Symbol.asyncDispose
added and marked as supported from V8 ~ Chromium 127 -
Promise.try
added and marked as supported from V8 ~ Chromium 128 - Added Deno 1.44 and 1.45 compat data mapping
-
self
descriptor is broken in Deno 1.45.3 (again) - Added Electron 32 and 33 compat data mapping
- Added Opera Android 83 compat data mapping
- Added Samsung Internet 27 compat data mapping
- Added Oculus Quest Browser 34 compat data mapping
- Added Safari 18.0 compat data:
v3.37.1
- Changes v3.37.0...v3.37.1
- Fixed
URL.parse
feature detection for some specific cases - Compat data improvements:
-
Set
methods proposal added and marked as supported from FF 127 -
Symbol.dispose
added and marked as supported from V8 ~ Chromium 125 -
Math.f16round
andDataView.prototype.{ getFloat16, setFloat16 }
added and marked as supported from Deno 1.43 -
URL.parse
added and marked as supported from Chromium 126 -
URL.parse
added and marked as supported from NodeJS 22.0 -
URL.parse
added and marked as supported from Deno 1.43 - Added Rhino 1.7.15 compat data, many features marked as supported
- Added NodeJS 22.0 compat data mapping
- Added Deno 1.43 compat data mapping
- Added Electron 31 compat data mapping
- Updated Opera Android 82 compat data mapping
- Added Samsung Internet 26 compat data mapping
- Added Oculus Quest Browser 33 compat data mapping
-
v3.37.0
- Changes v3.36.1...v3.37.0
-
New
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 stable ES, April 2024 TC39 meeting
- Added
es.
namespace modules,/es/
and/stable/
namespaces entries
- Built-ins:
-
Explicit Resource Management stage 3 proposal:
- Some minor updates like explicit-resource-management/217
- Added
Math.sumPrecise
stage 2.7 proposal:- Built-ins:
Math.sumPrecise
- Built-ins:
-
Promise.try
proposal:- Built-ins:
Promise.try
- Added optional arguments support, promise-try/16
- Moved to stage 2.7, April 2024 TC39 meeting
- Built-ins:
-
RegExp.escape
stage 2 proposal:- Moved to hex-escape semantics, regex-escaping/67
- It's not the final change of the way of escaping, waiting for regex-escaping/77 soon
- Moved to hex-escape semantics, regex-escaping/67
-
Pattern matching stage 1 proposal:
- Built-ins:
Symbol.customMatcher
- Once again, the used well-known symbol was renamed
- Added new entries for that
- Built-ins:
- Added Extractors stage 1 proposal:
- Built-ins:
Symbol.customMatcher
- Since the
Symbol.customMatcher
well-known symbol from the pattern matching proposal is also used in the exactors proposal, added an entry also for this proposal
- Built-ins:
- Added
URL.parse
, url/825 - Engines bugs fixes:
- Compat data improvements:
-
URL.parse
added and marked as supported from FF 126 -
URL.parse
added and marked as supported from Bun 1.1.4 -
URL.canParse
fixed and marked as supported from Bun 1.1.0 -
New
Set
methods fixed in JavaScriptCore and marked as supported from Bun 1.1.1 - Added Opera Android 82 compat data mapping
-
v3.36.1
- Changes v3.36.0...v3.36.1
- Fixed some validation cases in
Object.setPrototypeOf
, #1329, thanks @minseok-choe - Fixed the order of validations in
Array.from
, #1331, thanks @minseok-choe - Added a fix of Bun
queueMicrotask
arity - Added a fix of Bun
URL.canParse
arity - Added a fix of Bun
SuppressedError
extra arguments support and arity - Compat data improvements:
-
value
argument ofURLSearchParams.prototype.{ has, delete }
marked as supported from Bun 1.0.31 - Added React Native 0.74 Hermes compat data,
Array.prototype.{ toSpliced, toReversed, with }
andatob
marked as supported - Added Deno 1.41.3 compat data mapping
- Added Opera Android 81 compat data mapping
- Added Samsung Internet 25 compat data mapping
- Added Oculus Quest Browser 32 compat data mapping
- Updated Electron 30 compat data mapping
-
v3.36.0
-
ArrayBuffer.prototype.transfer
and friends proposal:- Built-ins:
ArrayBuffer.prototype.detached
ArrayBuffer.prototype.transfer
ArrayBuffer.prototype.transferToFixedLength
- Moved to stable ES, Febrary 2024 TC39 meeting
- Added
es.
namespace modules,/es/
and/stable/
namespaces entries
- Built-ins:
-
Uint8Array
to / from base64 and hex proposal:- Methods:
Uint8Array.fromBase64
Uint8Array.fromHex
Uint8Array.prototype.toBase64
Uint8Array.prototype.toHex
- Moved to stage 3, Febrary 2024 TC39 meeting
- Added
/actual/
namespace entries - Skipped adding new methods of writing to existing arrays to clarification some moments
- Methods:
-
Promise.try
proposal has been resurrected and moved to stage 2, Febrary 2024 TC39 meeting - Added an entry point for the new TC39 proposals stage -
core-js/stage/2.7
- still empty - Fixed regression in
Set.prototype.intersection
feature detection - Fixed a missed check in
Array.prototype.{ indexOf, lastIndexOf, includes }
, #1325, thanks @minseok-choe - Fixed a missed check in
Array.prototype.{ reduce, reduceRight }
, #1327, thanks @minseok-choe - Fixed
Array.from
and some other methods with proxy targets, #1322, thanks @minseok-choe - Fixed dependencies loading for modules from
ArrayBuffer.prototype.transfer
and friends proposal in some specific cases in IE10- - Dropped context workaround from collection static methods entries since with current methods semantic it's no longer required
- Added instance methods polyfills to entries of collections static methods that produce collection instances
- Added missed
Date.prototype.toJSON
toJSON.stringify
entries dependencies - Added debugging info in some missed cases
- Compat data improvements:
-
{ Map, Object }.groupBy
,Promise.withResolvers
,ArrayBuffer.prototype.transfer
and friends marked as supported from Safari 17.4 -
New
Set
methods fixed and marked as supported from V8 ~ Chrome 123 - Added Deno 1.40 compat data mapping
-
Symbol.metadata
marked as supported from Deno 1.40.4 - Updated Electron 30 compat data mapping
-
v3.35.1
- Fixed internal
ToLength
operation with bigints, #1318 - Removed significant redundant code from
String.prototype.split
polyfill - Fixed setting names of methods with symbol keys in some old engines
- Minor fix of prototype methods export logic in the pure version
- Compat data improvements:
-
Iterator
helpers proposal methods marked as supported from V8 ~ Chrome 122 - Note that V8 ~ Chrome 122 add
Set
methods, but they have a bug similar to Safari -
self
marked as fixed from Bun 1.0.22 -
SuppressedError
andSymbol.{ dispose, asyncDispose }
marked as supported from Bun 1.0.23 - Added Oculus Quest Browser 31 compat data mapping
- Updated Electron 29 and added Electron 30 compat data mapping
-
v3.35.0
-
{ Map, Set, WeakMap, WeakSet }.{ from, of }
became non-generic, following this and some other notes. Now they can be invoked withoutthis
, but no longer return subclass instances - Fixed handling some cases of non-enumerable symbol keys from
Symbol
polyfill - Removed unneeded NodeJS domains-related logic from
queueMicrotask
polyfill - Fixed subclassing of wrapped
ArrayBuffer
- Refactoring, many different minor optimizations
- Compat data improvements:
-
Array.fromAsync
marked as supported from V8 ~ Chrome 121 - It seems that the ancient
Array.prototype.push
bug is fixed in V8 ~ Chrome 122 (Hallelujah!) -
ArrayBuffer.prototype.transfer
and friends proposal features marked as supported from FF 122 and Bun 1.0.19 -
Object.groupBy
andMap.groupBy
marked as supported from Bun 1.0.19 - Since
Iterator
helpers proposal methods are still not disabled in Deno, the web compatibility issue why it was disabled in Chromium makes no sense for Deno and fixed in the spec, they marked as supported from Deno 1.37 - Added Opera Android 80 and updated Opera Android 79 compat data mapping
- Added Samsung Internet 24 compat data mapping
-
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.38 -
Symbol.{ 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 119 -
Array
grouping proposal features marked as supported from FF119 -
value
argument ofURLSearchParams.prototype.{ has, delete }
marked as properly supported from V8 ~ Chrome 118 -
URL.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.35 -
AggregateError
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
method -
String.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
method -
Map.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
method -
Symbol.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.0 -
Array.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 FF115 -
URL.canParse
marked as supported from FF115 -
value
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 114 -
ArrayBuffer.prototype.transfer
and friends proposal features marked as supported from V8 ~ Chrome 114 -
URLSearchParams.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.7 -
String.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.0 -
String.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 case -
atob
/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 with fixes of many different engines bugs - Includes
DOMException#stack
property polyfill in engines that should have it - Reuses native
DOMException
implementations where it's possible (for example, in old NodeJS where it's not exposed as global)
- Includes
- Added support of
cause
on all Error types - Added
Error.prototype.toString
method polyfill with fixes of many different bugs of JS engines - Added
Number.prototype.toExponential
method polyfill with fixes of many different bugs of JS engines -
Array
grouping proposal:- Moved to stage 3
- Added
Array.prototype.groupByToMap
method - Removed
@@​species
support
- Added change
Array
by copy stage 2 proposal:Array.prototype.toReversed
Array.prototype.toSorted
Array.prototype.toSpliced
Array.prototype.with
%TypedArray%.prototype.toReversed
%TypedArray%.prototype.toSorted
%TypedArray%.prototype.toSpliced
%TypedArray%.prototype.with
- Added
Iterator.prototype.toAsync
method from the iterator helpers stage 2 proposal -
Array.fromAsync
proposal moved to stage 2 - Added
String.cooked
stage 1 proposal - Added
Function.prototype.unThis
stage 0 proposal - Added
Function.{ isCallable, isConstructor }
stage 0 proposal:Function.isCallable
Function.isConstructor
- Added a workaround of most cases breakage modern
String#at
after loading obsoleteString#at
proposal module, #1019 - Fixed
Array.prototype.{ values, @​@​iterator }.name
in V8 ~ Chrome 45- - Fixed validation of typed arrays in typed arrays iteration methods in V8 ~ Chrome 50-
- Extension of the API, #1012
- Added a new
core-js/actual/**
namespace - Added entry points for each finished post-ES6 proposal
- Added a new
v3.19.3
- Fixed internal slots check in methods of some built-in types, #1017
- Fixed
URLSearchParams
iterator.next
that should be enumerable by the spec - Refactored
Subscription
- Added NodeJS 17.2 compat data mapping
v3.19.2
- Added a workaround for a UC Browser specific version bug with unobservable
RegExp#sticky
flag, #1008, #1015 - Added handling of comments and specific spaces to
Function#name
polyfill, #1010, thanks @ildar-shaimordanov - Prevented some theoretical cases of breaking / observing the internal state by patching
Array.prototype[@​@​species]
- Refactored
URL
andURLSearchParams
- Added iOS Safari 15.2 compat data mapping
- Added Electron 17.0 compat data mapping
- Updated Deno compat data mapping
v3.19.1
- Added a workaround for FF26- bug where
ArrayBuffer
s are non-extensible, butObject.isExtensible
does not report it:- Fixed in
Object.{ isExtensible, isSealed, isFrozen }
andReflect.isExtensible
- Fixed handling of
ArrayBuffer
s as collections keys
- Fixed in
- Fixed
Object#toString
onAggregateError
in IE10- - Fixed possible lack of dependencies of
WeakMap
in IE8- -
.findLast
methods family marked as supported from Chrome 97 - Fixed inheritance of Electron compat data
web.
modules - Fixed Safari 15.1 compat data (some features were not added)
- Added iOS Safari 15.1 compat data mapping
v3.19.0
- Most built-ins are encapsulated in
core-js
for preventing possible cases of breaking / observing the internal state by patching / deleting of them- Avoid
.call
/.apply
prototype methods that could be patched - Avoid
instanceof
operator - implicit.prototype
/@@​hasInstance
access that could be patched - Avoid
RegExp#test
,String#match
and some over methods - implicit.exec
andRegExp
well-known symbols access that could be patched
- Avoid
- Clearing of
Error
stack from extra entries experimentally added toAggregateError
, #996, in case lack of problems it will be extended to other cases - In engines with native
Symbol
support, new well-known symbols created with usageSymbol.for
for ensuring the same keys in different realms, #998 - Added a workaround of a BrowserFS NodeJS
process
polyfill bug that incorrectly reports V8 version that's used in some cases ofcore-js
feature detection - Fixed normalization of
message
AggregateError
argument - Fixed order of arguments conversion in
Math.scale
, a spec draft bug - Fixed
core-js-builder
work in NodeJS 17, added a workaround ofwebpack
+ NodeJS 17 issue - Added NodeJS 17.0 compat data mapping
- Added Opera Android 65 compat data mapping
- Updated Electron 16.0 compat data mapping
- Many other minor fixes and improvements
v3.18.3
- Fixed the prototype chain of
AggregateError
constructor that should containError
constructor - Fixed incorrect
AggregateError.prototype
properties descriptors - Fixed
InstallErrorCause
internal operation - Added NodeJS 16.11 compat data mapping
- Added Deno 1.16 compat data mapping
-
Object.hasOwn
marked as supported from Safari 15.1
v3.18.2
- Early
{ Array, %TypedArray% }.fromAsync
errors moved to the promise, per the latest changes of the spec draft - Internal
ToInteger(OrInfinity)
operation returns+0
for-0
argument, ES2020+ update - Fixed theoretical problems with handling bigint in
Number
constructor wrapper - Fixed
String.raw
with extra arguments - Fixed some missed dependencies in entry points
- Some other minor fixes and improvements
- Refactoring
v3.18.1
- Fixed
String.prototype.substr
feature detection and compat data - Removed mistakenly added
.forEach
from prototypes of some DOM collections where it shouldn't be, #988, #987, thanks @moorejs - Added
cause
toAggregateError
constructor implementation (still without adding to the feature detection) - Families of
.at
and.findLast
methods marked as supported in Safari TP - Added Electron 16.0 compat data mapping
v3.18.0
- Added
Array.fromAsync
stage 1 proposal:Array.fromAsync
%TypedArray%.fromAsync
-
.name
and.toString()
on polyfilled functions improved in many different cases - Improved internal
IsConstructor
andIsCallable
checks - Fixed some internal cases of
GetMethod
operation - Fixed a bug of MS Edge 18-
parseInt
/parseFloat
with boxed symbols - Fixed
es.array.{ index-of, last-index-of }
compat data - Added Deno 1.15 compat data mapping
- Some other minor fixes and optimizations
v3.17.3
- Fixed some possible problems related to possible extension of
%IteratorPrototype%
and%AsyncIteratorPrototype%
in the future - Fixed
DOMTokenList.prototype.{ forEach, @​@​iterator, keys, values, entries }
in old WebKit versions whereelement.classList
is not an instance of globalDOMTokenList
- Added NodeJS 16.9 compat data mapping
- Added Samsung Internet 16.0 compat data mapping
v3.17.2
- Fixed missed cases of ES3 reserved words usage, related to #980
- Fixed dependencies in one missed entry point
- Some other minor fixes and optimizations
v3.17.1
- Fixed missed
modules-by-versions
data
v3.17.0
-
Accessible
Object.prototype.hasOwnProperty
(Object.hasOwn
) proposal moved to the stable ES, per August 2021 TC39 meeting -
Relative indexing method (
.at
) proposal moved to the stable ES, per August 2021 TC39 meeting - Exposed by default the stable version of
String.prototype.at
. It was not exposed because of the conflict with the alternative obsolete proposal (that will be completely removed in the next major version). For the backward compatibility, in the case of loading this proposal, it will be overwritten. - Some more iteration closing fixes
- Fixed an ES3 reserved words usage, #980
v3.16.4
-
AsyncFromSyncIterator
made stricter, related mainly toAsyncIterator.from
andAsyncIterator.prototype.flatMap
- Handling of optional
.next
arguments in(Async)Iterator
methods is aligned with the current spec draft (mainly - ignoring the first passed to.next
argument in built-in generators) - Behavior of
.next
,.return
,.throw
methods onAsyncIterator
helpers proxy iterators aligned with the current spec draft (built-in async generators) (mainly - some early errors moved to returned promises) - Fixed some cases of safe iteration closing
- Fixed dependencies of some entry points
v3.16.3
- Fixed
CreateAsyncFromSyncIterator
semantic inAsyncIterator.from
, related to #765 - Added a workaround of a specific case of broken
Object.prototype
, #973
v3.16.2
- Added a workaround of a Closure Compiler unsafe optimization, #972
- One more fix crashing of
Object.create(null)
on WSH, #970 - Added Deno 1.14 compat data mapping
v3.16.1
- Fixed microtask implementation on iOS Pebble, #967
- Fixed some entry points
- Improved old Safari compat data
v3.16.0
-
Array
find from last proposal moved to the stage 3, July 2021 TC39 meeting -
Array
filtering stage 1 proposal:-
Array.prototype.filterReject
replacesArray.prototype.filterOut
-
%TypedArray%.prototype.filterReject
replaces%TypedArray%.prototype.filterOut
-
- Added
Array
grouping stage 1 proposal:Array.prototype.groupBy
%TypedArray%.prototype.groupBy
- Work with symbols made stricter: some missed before cases of methods that should throw an error on symbols now works as they should
- Handling
@@​toPrimitive
in some cases ofToPrimitive
internal logic made stricter - Fixed work of
Request
with polyfilledURLSearchParams
, #965 - Fixed possible exposing of collections elements metadata in some cases, #427
- Fixed crashing of
Object.create(null)
on WSH, #966 - Fixed some cases of typed arrays subclassing logic
- Fixed a minor bug related to string conversion in
RegExp#exec
- Fixed
Date.prototype.getYear
feature detection - Fixed content of some entry points
- Some minor optimizations and refactoring
- Deno:
- Added Deno support (sure, after bundling since Deno does not support CommonJS)
- Allowed
deno
target incore-js-compat
/core-js-builder
- A bundle for Deno published on deno.land/x/corejs
- Added / updated compat data / mapping:
- Added
summary
option tocore-js-builder
, see more info in theREADME
, #910
v3.15.2
- Worked around breakage related to
zone.js
loaded beforecore-js
, #953 - Added NodeJS 16.4 -> Chrome 91 compat data mapping
v3.15.1
- Fixed cloning of regex through
RegExp
constructor, #948
v3.15.0
- Added
RegExp
named capture groups polyfill, #521, #944 - Added
RegExp
dotAll
flag polyfill, #792, #944 - Added missed polyfills of Annex B features (required mainly for some non-browser engines), #336, #945:
escape
unescape
String.prototype.substr
Date.prototype.getYear
Date.prototype.setYear
Date.prototype.toGMTString
- Fixed detection of forbidden host code points in
URL
polyfill - Allowed
rhino
target incore-js-compat
/core-js-builder
, added compat data forrhino
1.7.13, #942, thanks @gausie -
.at
marked as supported from FF90
v3.14.0
- Added polyfill of stable sort in
{ Array, %TypedArray% }.prototype.sort
, #769, #941 - Fixed
Safari
14.0-%TypedArray%.prototype.sort
validation of arguments bug -
.at
marked as supported from V8 9.2
v3.13.1
- Overwrites
get-own-property-symbols
third-partySymbol
polyfill if it's used since it causes a stack overflow, #774 - Added a workaround of possible browser crash on
Object.prototype
accessors methods in WebKit ~ Android 4.0, #232
v3.13.0
- Accessible
Object#hasOwnProperty
(Object.hasOwn
) proposal moved to the stage 3, May 2021 TC39 meeting
v3.12.1
- Fixed some cases of
Function#toString
with multiplecore-js
instances - Fixed some possible
String#split
polyfill problems in V8 5.1
v3.12.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.11.3
- Native promise-based APIs
Promise#{ catch, finally }
returns polyfilledPromise
instances when it's required
v3.11.2
- 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.38 -
Symbol.{ 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.11.1
- Made
instanceof Promise
and.constructor === Promise
work with polyfilledPromise
for all native promise-based APIs - Added a workaround for some buggy V8 versions ~4.5 related to fixing of
%TypedArray%
static methods, #564
v3.11.0
- Added accessible
Object#hasOwnProperty
stage 2 proposal-
Object.hasOwn
method
-
- Fixed a possible
RegExp
constructor problem with multiple globalcore-js
instances
v3.10.2
- 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.10.1
- Prevented possible
RegExp#split
problems in old engines, #751, #919 - Detection of Safari 10 string padding bug extended to some Safari-based browsers
v3.10.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 119 -
Array
grouping proposal features marked as supported from FF119 -
value
argument ofURLSearchParams.prototype.{ has, delete }
marked as properly supported from V8 ~ Chrome 118 -
URL.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.9.1
- Added a workaround for Chrome 38-40 bug which does not allow to inherit symbols (incl. well-known) from DOM collections prototypes to instances, #37
- Used
NumericRangeIterator
as toStringTag instead ofRangeIterator
in{ Number, BigInt }.range
iterator, per this MR - TypedArray constructors marked as supported from Safari 14.0
- Updated compat data mapping for iOS Safari and Opera for Android
v3.9.0
- Added
Array
find from last stage 1 proposalArray#findLast
Array#findLastIndex
%TypedArray%#findLast
%TypedArray%#findLastIndex
- Added
%TypedArray%#uniqueBy
method for array deduplication stage 1 proposal%TypedArray%#uniqueBy
- Dropped
ToLength
detection from array methods feature detection which could cause hanging FF11-21 and some versions of old WebKit, #764 - Minified bundle from
core-js-bundle
usesterser
instead ofuglify-js
v3.8.3
- Fixed some more issues related to FF44- legacy
Iterator
, #906
v3.8.2
Configuration
-
If you want to rebase/retry this MR, check this box
This MR has been generated by Renovate Bot. The local configuration can be found in the local Renovate Bot repository.
Edited by Housekeeper (bot)