Releases: zloirock/core-js
Releases Β· zloirock/core-js
3.22.0 - 2022.04.15
- 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
3.21.1 - 2022.02.17
3.21.0 - 2022.02.02
- 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
3.20.3 - 2022.01.15
- 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__
3.20.2 - 2022.01.02
- 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)
3.20.1 - 2021.12.23
- 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
3.20.0 - 2021.12.16
- 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
3.19.3 - 2021.12.06
- 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
3.19.2 - 2021.11.29
- 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
3.19.1 - 2021.11.03
- 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