Skip to content

Releases: zloirock/core-js

3.22.0 - 2022.04.15

15 Apr 02:51
Compare
Choose a tag to compare
  • 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 a TypeError instead of RangeError if the result length is more than MAX_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
  • 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 the Array 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:
    • Fixed work of non-standard V8 Error features with wrapped Error constructors, #1061
    • null and undefined allowed as the second argument of structuredClone, #1056
  • 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 and core-js-compat, now it's modules and exclude options
    • Added support of entry points, modules, regexes, and arrays of them to those filters
    • Missed targets option of core-js-compat means that the targets filter just will not be applied, so the result will contain modules required for all possible engines
  • Compat data:
    • .stack property on DOMException 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

16 Feb 18:23
Compare
Choose a tag to compare
  • 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

3.21.0 - 2022.02.02

01 Feb 17:12
Compare
Choose a tag to compare
  • 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

15 Jan 11:12
Compare
Choose a tag to compare
  • Detects and replaces broken third-party Function#bind polyfills, uses only native Function#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

01 Jan 18:32
Compare
Choose a tag to compare

3.20.1 - 2021.12.23

23 Dec 11:22
Compare
Choose a tag to compare
  • 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

15 Dec 19:12
Compare
Choose a tag to compare
  • 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)
  • 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 obsolete String#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

3.19.3 - 2021.12.06

06 Dec 06:26
Compare
Choose a tag to compare
  • 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

29 Nov 18:43
Compare
Choose a tag to compare
  • 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 and URLSearchParams
  • 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

02 Nov 19:58
Compare
Choose a tag to compare
  • Added a workaround for FF26- bug where ArrayBuffers are non-extensible, but Object.isExtensible does not report it:
    • Fixed in Object.{ isExtensible, isSealed, isFrozen } and Reflect.isExtensible
    • Fixed handling of ArrayBuffers as collections keys
  • Fixed Object#toString on AggregateError 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