Skip to content

Update dependency core-js to v3.39.0

Housekeeper (bot) requested to merge renovate/core-js-3.x into master

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

Compare Source

v3.38.1

Compare Source

v3.38.0

Compare Source

v3.37.1

Compare Source

v3.37.0

Compare Source

v3.36.1

Compare Source

v3.36.0

Compare Source

v3.35.1

Compare Source

v3.35.0

Compare Source

v3.34.0

Compare Source

v3.33.3

Compare Source

v3.33.2

Compare Source

  • Simplified structuredClone polyfill, avoided second tree pass in cases of transferring
  • Added support of SuppressedError to structuredClone polyfill
  • Removed unspecified unnecessary ArrayBuffer and DataView dependencies of structuredClone lack of which could cause errors in some entries in IE10-
  • Fixed handling of fractional number part in Number.fromString
  • Compat data improvements:

v3.33.1

Compare Source

v3.33.0

Compare Source

v3.32.2

Compare Source

  • Fixed structuredClone feature detection core-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

Compare Source

  • Fixed some cases of IEEE754 rounding, #​1279, thanks @​petamoriken
  • Prevented injection process polyfill to core-js via some bundlers or esm.sh, #​1277
  • Some minor fixes and stylistic changes
  • Compat data improvements:

v3.32.0

Compare Source

v3.31.1

Compare Source

v3.31.0

Compare Source

v3.30.2

Compare Source

  • Added a fix for a NodeJS 20.0.0 bug with cloning File via structuredClone
  • Added protection from Terser unsafe String optimization, #​1242
  • Added a workaround for getting proper global object in Figma plugins, #​1231
  • Compat data improvements:

v3.30.1

Compare Source

v3.30.0

Compare Source

v3.29.1

Compare Source

v3.29.0

Compare Source

  • Added URLSearchParams.prototype.size getter, url/734
  • Allowed cloning resizable ArrayBuffers in the structuredClone 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

Compare Source

3.28.0 - 2023.02.14

v3.27.2

Compare Source

  • Set methods proposal updates:
    • Closing of iterators of Set-like objects on early exit, proposal-set-methods/85
    • Some other minor internal changes
  • 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
  • Minor tweaks of minification settings for core-js-bundle
  • Refactoring, some minor fixes, improvements, optimizations

v3.27.1

Compare Source

  • 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

Compare Source

  • 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
  • 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 Sets as this, 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 to Set-like, they accept iterable objects). This behavior will be removed from the next major release
  • 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
  • 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
  • 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
  • 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 to quest.
    • opera_mobile target name is confusing since it contains data for the Chromium-based Android version, but iOS Opera is Safari-based. So opera_mobile target was renamed to opera-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, added chrome-android target.
    • For consistency with two previous cases, added firefox-android target.
    • For avoiding breaking changes, the oculus and opera_mobile fields are available in the compat data till the next major release.
  • Compat data improvements:
  • { 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 the Array 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

Compare Source

  • 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

Compare Source

v3.25.5

Compare Source

  • Fixed regression with an error on reuse of some built-in methods from another realm, #​1133

v3.25.4

Compare Source

  • 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 the structuredClone 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

Compare Source

  • Forced polyfilling of Array.prototype.groupToMap in the pure version for returning wrapped Map 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

Compare Source

  • 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

Compare Source

  • Added some fixes and workarounds of FF30- typed arrays bug that does not properly convert objects to numbers
  • Added sideEffects field to core-js-pure package.json for better tree shaking, #​1117
  • Dropped semver dependency from core-js-compat
    • semver package (ironically) added a breaking change and dropped NodeJS 8 support in the minor 7.1 version, after that semver in core-js-compat was pinned to 7.0 since for avoiding breaking changes it should support NodeJS 8. However, since core-js-compat is usually used with other packages that use semver dependency, it causes multiple duplication of semver in dependencies. So I decided to remove semver 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

Compare Source

  • 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 before done)
  • 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 multiple core-js copies
  • Availability cloning of FileList in the structuredClone polyfill extended to some more old engines versions
  • Some stylistic changes and minor fixes
  • Throwing a TypeError in core-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

Compare Source

  • NodeJS is ignored in IS_BROWSER detection to avoid a false positive with jsdom, #​1110
  • Fixed detection of @@&#8203;species support in Promise 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

Compare Source

v3.23.5

Compare Source

  • Fixed a typo in the structuredClone feature detection, #​1106
  • Added Opera Android 70 compat data mapping

v3.23.4

Compare Source

  • 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

Compare Source

v3.23.2

Compare Source

  • 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

Compare Source

  • Fixed possible error on multiple core-js copies, #​1091
  • Added v flag to RegExp.prototype.flags implementation in case if current V8 bugs will not be fixed before this flag implementation

v3.23.0

Compare Source

  • 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 replaces Symbol.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 and Number constants
  • Added a workaround of V8 ArrayBufferDetaching protector cell invalidation and performance degradation on structuredClone feature detection, one more case of #​679
  • Added detection of NodeJS bug in structuredClone that can not clone DOMException (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

Compare Source

  • 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 of Error) on incorrect exec result in RegExp.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

Compare Source

  • Added a workaround for V8 ~ Chrome 53 bug with non-writable prototype of some methods, #​1083

v3.22.6

Compare Source

  • Fixed possible double call of ToNumber conversion on arguments of Math.{ fround, trunc } polyfills
  • Array.prototype.includes marked as fixed in FF102

v3.22.5

Compare Source

  • 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 returns null if cloned object contains multiple references to one error

v3.22.4

Compare Source

  • 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

Compare Source

  • Added a fix for FF99+ Array.prototype.includes broken on sparse arrays

v3.22.2

Compare Source

  • Fixed URLSearchParams in IE8- that was broken in the previous release
  • Fixed __lookupGetter__ entries

v3.22.1

Compare Source

  • 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

Compare Source

  • 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

v3.21.1

Compare Source

  • 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

Compare Source

  • 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

Compare Source

  • 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__

v3.20.2

Compare Source

v3.20.1

Compare Source

  • 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

Compare Source

  • 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 @@&#8203;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, @&#8203;@&#8203;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

v3.19.3

Compare Source

  • 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

Compare Source

  • 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[@&#8203;@&#8203;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

v3.19.1

Compare Source

  • 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

v3.19.0

Compare Source

  • 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 / @@&#8203;hasInstance access that could be patched
    • Avoid RegExp#test, String#match and some over methods - implicit .exec and RegExp well-known symbols access that could be patched
  • Clearing of Error stack from extra entries experimentally added to AggregateError, #​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 usage Symbol.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 of core-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 of webpack + 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

Compare Source

  • Fixed the prototype chain of AggregateError constructor that should contain Error 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

Compare Source

  • 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

Compare Source

  • 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 to AggregateError 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

Compare Source

  • Added Array.fromAsync stage 1 proposal:
    • Array.fromAsync
    • %TypedArray%.fromAsync
  • .name and .toString() on polyfilled functions improved in many different cases
  • Improved internal IsConstructor and IsCallable 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

Compare Source

  • Fixed some possible problems related to possible extension of %IteratorPrototype% and %AsyncIteratorPrototype% in the future
  • Fixed DOMTokenList.prototype.{ forEach, @&#8203;@&#8203;iterator, keys, values, entries } in old WebKit versions where element.classList is not an instance of global DOMTokenList
  • Added NodeJS 16.9 compat data mapping
  • Added Samsung Internet 16.0 compat data mapping

v3.17.2

Compare Source

  • 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

Compare Source

  • Fixed missed modules-by-versions data

v3.17.0

Compare Source

v3.16.4

Compare Source

  • AsyncFromSyncIterator made stricter, related mainly to AsyncIterator.from and AsyncIterator.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 on AsyncIterator 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

Compare Source

  • Fixed CreateAsyncFromSyncIterator semantic in AsyncIterator.from, related to #​765
  • Added a workaround of a specific case of broken Object.prototype, #​973

v3.16.2

Compare Source

  • 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

Compare Source

  • Fixed microtask implementation on iOS Pebble, #​967
  • Fixed some entry points
  • Improved old Safari compat data

v3.16.0

Compare Source

  • Array find from last proposal moved to the stage 3, July 2021 TC39 meeting
  • Array filtering stage 1 proposal:
    • Array.prototype.filterReject replaces Array.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 @@&#8203;toPrimitive in some cases of ToPrimitive internal logic made stricter
  • Fixed work of Request with polyfilled URLSearchParams, #​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 in core-js-compat / core-js-builder
    • A bundle for Deno published on deno.land/x/corejs
  • Added / updated compat data / mapping:
    • Deno 1.0-1.13
    • NodeJS up to 16.6
    • iOS Safari up to 15.0
    • Samsung Internet up to 15.0
    • Opera Android up to 64
    • Object.hasOwn marked as supported from V8 9.3 and FF92
    • Date.prototype.getYear marked as not supported in IE8-
  • Added summary option to core-js-builder, see more info in the README, #​910

v3.15.2

Compare Source

  • Worked around breakage related to zone.js loaded before core-js, #​953
  • Added NodeJS 16.4 -> Chrome 91 compat data mapping

v3.15.1

Compare Source

  • Fixed cloning of regex through RegExp constructor, #​948

v3.15.0

Compare Source

  • 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 in core-js-compat / core-js-builder, added compat data for rhino 1.7.13, #​942, thanks @​gausie
  • .at marked as supported from FF90

v3.14.0

Compare Source

  • 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

Compare Source

  • Overwrites get-own-property-symbols third-party Symbol 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

Compare Source

v3.12.1

Compare Source

  • Fixed some cases of Function#toString with multiple core-js instances
  • Fixed some possible String#split polyfill problems in V8 5.1

v3.12.0

Compare Source

v3.11.3

Compare Source

  • Native promise-based APIs Promise#{ catch, finally } returns polyfilled Promise instances when it's required

v3.11.2

Compare Source

v3.11.1

Compare Source

  • Made instanceof Promise and .constructor === Promise work with polyfilled Promise 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

Compare Source

v3.10.2

Compare Source

v3.10.1

Compare Source

  • 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

Compare Source

v3.9.1

Compare Source

  • 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 of RangeIterator 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

Compare Source

  • Added Array find from last stage 1 proposal
    • Array#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 uses terser instead of uglify-js

v3.8.3

Compare Source

  • Fixed some more issues related to FF44- legacy Iterator, #​906

v3.8.2

Compare Source

  • Fixed handling of special replacements patterns in String#replaceAll, #​900
  • Fixed iterators dependencies of Promise.any and Promise.allSettled entries
  • Fixed microtask implementation on WebOS, #​898, #​901

Configuration

📅 Schedule: Branch creation - At any time (no schedule defined), Automerge - At any time (no schedule defined).

🚦 Automerge: Disabled by config. Please merge this manually once you are satisfied.

Rebasing: Whenever MR becomes conflicted, or you tick the rebase/retry checkbox.

🔕 Ignore: Close this MR and you won't be reminded about this update again.


  • 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)

Merge request reports

Loading