Update dependency core-js to v3.31.0
This MR contains the following updates:
Package | Change | Age | Adoption | Passing | Confidence |
---|---|---|---|---|---|
core-js | 3.20.3 -> 3.31.0 |
Release Notes
zloirock/core-js
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 splitted 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
Configuration
-
If you want to rebase/retry this MR, check this box
This MR has been generated by Renovate Bot.