zloirock/core-js (core-js)
### [`v3.33.3`](https://togithub.com/zloirock/core-js/blob/HEAD/CHANGELOG.md#3333---20231120)
[Compare Source](https://togithub.com/zloirock/core-js/compare/v3.33.2...v3.33.3)
- Fixed an issue getting the global object on Duktape, [#1303](https://togithub.com/zloirock/core-js/issues/1303)
- Avoid sharing internal `[[DedentMap]]` from [`String.dedent` proposal](https://togithub.com/tc39/proposal-string-dedent) between `core-js` instances before stabilization of the proposal
- Some internal untangling
- Compat data improvements:
- Added [Deno 1.38](https://deno.com/blog/v1.38) compat data mapping
- [`Array.fromAsync`](https://togithub.com/tc39/proposal-array-from-async) marked as [supported from Deno 1.38](https://togithub.com/denoland/deno/pull/21048)
- [`Symbol.{ dispose, asyncDispose }`](https://togithub.com/tc39/proposal-explicit-resource-management) marked as [supported from Deno 1.38](https://togithub.com/denoland/deno/pull/20845)
- 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`](https://togithub.com/zloirock/core-js/blob/HEAD/CHANGELOG.md#3332---20231031)
[Compare Source](https://togithub.com/zloirock/core-js/compare/v3.33.1...v3.33.2)
- Simplified `structuredClone` polyfill, avoided second tree pass in cases of transferring
- Added support of [`SuppressedError`](https://togithub.com/tc39/proposal-explicit-resource-management#the-suppressederror-error) 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`](https://togithub.com/tc39/proposal-number-fromstring)
- Compat data improvements:
- [`URL.canParse`](https://url.spec.whatwg.org/#dom-url-canparse) marked as [supported from Chromium 120](https://bugs.chromium.org/p/chromium/issues/detail?id=1425839)
- Updated Opera Android 78 compat data mapping
- Added Electron 29 compat data mapping
### [`v3.33.1`](https://togithub.com/zloirock/core-js/blob/HEAD/CHANGELOG.md#3331---20231020)
[Compare Source](https://togithub.com/zloirock/core-js/compare/v3.33.0...v3.33.1)
- Added one more workaround of possible error with `Symbol` polyfill on global object, [#1289](https://togithub.com/zloirock/core-js/issues/1289#issuecomment-1768411444)
- Directly specified `type: commonjs` in `package.json` of all packages to avoid potential breakage in future Node versions, see [this issue](https://togithub.com/nodejs/TSC/issues/1445)
- 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 }`](https://togithub.com/tc39/proposal-is-usv-string) marked as [supported from FF119](https://bugzilla.mozilla.org/show_bug.cgi?id=1850755)
- Added React Native 0.73 Hermes compat data, mainly fixes of [some issues](https://togithub.com/facebook/hermes/issues/770)
- Added [NodeJS 21.0 compat data mapping](https://nodejs.org/ru/blog/release/v21.0.0)
### [`v3.33.0`](https://togithub.com/zloirock/core-js/blob/HEAD/CHANGELOG.md#3330---20231002)
[Compare Source](https://togithub.com/zloirock/core-js/compare/v3.32.2...v3.33.0)
- Re-introduced [`RegExp` escaping stage 2 proposal](https://togithub.com/tc39/proposal-regex-escaping), 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 [`ArrayBuffer.prototype.{ transfer, transferToFixedLength }`](https://togithub.com/tc39/proposal-arraybuffer-transfer) and support transferring of `ArrayBuffer`s via [`structuredClone`](https://html.spec.whatwg.org/multipage/structured-data.html#dom-structuredclone) to engines with `MessageChannel`
- Optimized [`Math.f16round`](https://togithub.com/tc39/proposal-float16array) polyfill
- Fixed [some conversion cases](https://togithub.com/petamoriken/float16/issues/1046) of [`Math.f16round` and `DataView.prototype.{ getFloat16, setFloat16 }`](https://togithub.com/tc39/proposal-float16array)
- Fully forced polyfilling of [the TC39 `Observable` proposal](https://togithub.com/tc39/proposal-observable) because of incompatibility with [the new WHATWG `Observable` proposal](https://togithub.com/WICG/observable)
- Added an extra workaround of errors with exotic environment objects in `Symbol` polyfill, [#1289](https://togithub.com/zloirock/core-js/issues/1289)
- Some minor fixes and stylistic changes
- Compat data improvements:
- V8 unshipped [`Iterator` helpers](https://togithub.com/tc39/proposal-iterator-helpers) because of [some Web compatibility issues](https://togithub.com/tc39/proposal-iterator-helpers/issues/286)
- [`Promise.withResolvers`](https://togithub.com/tc39/proposal-promise-with-resolvers) marked as [supported from V8 ~ Chrome 119](https://chromestatus.com/feature/5810984110784512)
- [`Array` grouping proposal](https://togithub.com/tc39/proposal-array-grouping) features marked as [supported from FF119](https://bugzilla.mozilla.org/show_bug.cgi?id=1792650#c9)
- [`value` argument of `URLSearchParams.prototype.{ has, delete }`](https://url.spec.whatwg.org/#dom-urlsearchparams-delete) marked as properly supported from V8 ~ Chrome 118
- [`URL.canParse`](https://url.spec.whatwg.org/#dom-url-canparse) and [`URLSearchParams.prototype.size`](https://url.spec.whatwg.org/#dom-urlsearchparams-size) marked as [supported from Bun 1.0.2](https://togithub.com/oven-sh/bun/releases/tag/bun-v1.0.2)
- Added Deno 1.37 compat data mapping
- Added Electron 28 compat data mapping
- Added Opera Android 78 compat data mapping
### [`v3.32.2`](https://togithub.com/zloirock/core-js/blob/HEAD/CHANGELOG.md#3322---20230907)
[Compare Source](https://togithub.com/zloirock/core-js/compare/v3.32.1...v3.32.2)
- Fixed `structuredClone` feature detection `core-js@3.32.1` bug, [#1288](https://togithub.com/zloirock/core-js/issues/1288)
- Added a workaround of old WebKit + `eval` bug, [#1287](https://togithub.com/zloirock/core-js/pull/1287)
- Compat data improvements:
- Added Samsung Internet 23 compat data mapping
- Added Quest Browser 29 compat data mapping
### [`v3.32.1`](https://togithub.com/zloirock/core-js/blob/HEAD/CHANGELOG.md#3321---20230819)
[Compare Source](https://togithub.com/zloirock/core-js/compare/v3.32.0...v3.32.1)
- Fixed some cases of IEEE754 rounding, [#1279](https://togithub.com/zloirock/core-js/issues/1279), thanks [**@petamoriken**](https://togithub.com/petamoriken)
- Prevented injection `process` polyfill to `core-js` via some bundlers or `esm.sh`, [#1277](https://togithub.com/zloirock/core-js/issues/1277)
- Some minor fixes and stylistic changes
- Compat data improvements:
- [`Promise.withResolvers`](https://togithub.com/tc39/proposal-promise-with-resolvers) marked as supported [from Bun 0.7.1](https://bun.sh/blog/bun-v0.7.1#bun-ismainthread-and-promise-withresolvers)
- Added Opera Android 77 compat data mapping
- Updated Electron 27 compat data mapping
### [`v3.32.0`](https://togithub.com/zloirock/core-js/blob/HEAD/CHANGELOG.md#3320---20230728)
[Compare Source](https://togithub.com/zloirock/core-js/compare/v3.31.1...v3.32.0)
- [`Array` grouping proposal](https://togithub.com/tc39/proposal-array-grouping), July 2023 TC39 meeting updates:
- [Moved back to stage 3](https://togithub.com/tc39/proposal-array-grouping/issues/54)
- Added `/actual/` namespaces entries, unconditional forced replacement changed to feature detection
- [`Promise.withResolvers` proposal](https://togithub.com/tc39/proposal-promise-with-resolvers), July 2023 TC39 meeting updates:
- [Moved to stage 3](https://togithub.com/tc39/proposal-promise-with-resolvers/pull/18)
- Added `/actual/` namespaces entries, unconditional forced replacement changed to feature detection
- [`Set` methods stage 3 proposal](https://togithub.com/tc39/proposal-set-methods), July 2023 TC39 meeting updates:
- Throw on negative `Set` sizes, [proposal-set-methods/88](https://togithub.com/tc39/proposal-set-methods/pull/88)
- Removed `IsCallable` check in `GetKeysIterator`, [proposal-set-methods/101](https://togithub.com/tc39/proposal-set-methods/pull/101)
- [Iterator Helpers stage 3 proposal](https://togithub.com/tc39/proposal-iterator-helpers):
- Avoid creating observable `String` wrapper objects, July 2023 TC39 meeting update, [proposal-iterator-helpers/281](https://togithub.com/tc39/proposal-iterator-helpers/pull/281)
- `Iterator` is not constructible from the active function object (works as an abstract class)
- Async explicit resource management:
- Moved back into [the initial proposal](https://togithub.com/tc39/proposal-explicit-resource-management) -> moved to stage 3, [proposal-explicit-resource-management/154](https://togithub.com/tc39/proposal-explicit-resource-management/pull/154)
- Added `/actual/` namespace entries, unconditional forced replacement changed to feature detection
- Ignore return value of `[@@dispose]()` method when hint is `async-dispose`, [proposal-explicit-resource-management/180](https://togithub.com/tc39/proposal-explicit-resource-management/pull/180)
- Added ticks for empty resources, [proposal-explicit-resource-management/163](https://togithub.com/tc39/proposal-explicit-resource-management/pull/163)
- Added some methods from [`Float16Array` stage 3 proposal](https://togithub.com/tc39/proposal-float16array):
- 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`
- Added [`DataView` get / set `Uint8Clamped` methods stage 1 proposal](https://togithub.com/tc39/proposal-dataview-get-set-uint8clamped):
- Methods:
- `DataView.prototype.getUint8Clamped`
- `DataView.prototype.setUint8Clamped`
- Used strict mode in some missed cases, [#1269](https://togithub.com/zloirock/core-js/issues/1269)
- Fixed [a Chromium 117 bug](https://bugs.chromium.org/p/v8/issues/detail?id=14222) in `value` argument of `URLSearchParams.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](https://togithub.com/nodejs/node/issues/48699) / 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](https://togithub.com/zloirock/core-js#asynciterator-helpers), [#1268](https://togithub.com/zloirock/core-js/issues/1268)
- Compat data improvements:
- Sync [`Iterator` helpers proposal](https://togithub.com/tc39/proposal-iterator-helpers) features marked as [supported](https://chromestatus.com/feature/5102502917177344) from V8 ~ Chrome 117
- [`Array` grouping proposal](https://togithub.com/tc39/proposal-array-grouping) features marked as [supported](https://chromestatus.com/feature/5714791975878656) 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](https://togithub.com/nodejs/node/issues/48699))
- Added Electron 27 compat data mapping
### [`v3.31.1`](https://togithub.com/zloirock/core-js/blob/HEAD/CHANGELOG.md#3311---20230706)
[Compare Source](https://togithub.com/zloirock/core-js/compare/v3.31.0...v3.31.1)
- Fixed a `structuredClone` bug with cloning views of transferred buffers, [#1265](https://togithub.com/zloirock/core-js/issues/1265)
- Fixed the order of arguments validation in `DataView` methods
- Allowed cloning of [`Float16Array`](https://togithub.com/tc39/proposal-float16array) in `structuredClone`
- Compat data improvements:
- [`Set` methods proposal](https://togithub.com/tc39/proposal-set-methods) marked as [supported from Safari 17.0](https://developer.apple.com/documentation/safari-release-notes/safari-17-release-notes#JavaScript)
- New `URL` features: [`URL.canParse`](https://url.spec.whatwg.org/#dom-url-canparse), [`URLSearchParams.prototype.size`](https://url.spec.whatwg.org/#dom-urlsearchparams-size) and [`value` argument of `URLSearchParams.prototype.{ has, delete }`](https://url.spec.whatwg.org/#dom-urlsearchparams-delete) marked as [supported from Safari 17.0](https://developer.apple.com/documentation/safari-release-notes/safari-17-release-notes#Web-API)
- `value` argument of `URLSearchParams.prototype.{ has, delete }` marked as supported from [Deno 1.35](https://togithub.com/denoland/deno/pull/19654)
- `AggregateError` and well-formed `JSON.stringify` marked as [supported React Native 0.72 Hermes](https://reactnative.dev/blog/2023/06/21/0.72-metro-package-exports-symlinks#more-ecmascript-support-in-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`](https://togithub.com/zloirock/core-js/blob/HEAD/CHANGELOG.md#3310---20230612)
[Compare Source](https://togithub.com/zloirock/core-js/compare/v3.30.2...v3.31.0)
- [Well-formed unicode strings proposal](https://togithub.com/tc39/proposal-is-usv-string):
- Methods:
- `String.prototype.isWellFormed` method
- `String.prototype.toWellFormed` method
- Moved to stable ES, [May 2023 TC39 meeting](https://togithub.com/tc39/notes/blob/main/meetings/2023-05/may-15.md#well-formed-unicode-strings-for-stage-4)
- Added `es.` namespace modules, `/es/` and `/stable/` namespaces entries
- [`Array` grouping proposal](https://togithub.com/tc39/proposal-array-grouping), [May 2023 TC39 meeting updates](https://togithub.com/tc39/notes/blob/main/meetings/2023-05/may-16.md#arrayprototypegroup-rename-for-web-compatibility):
- Because of the [web compat issue](https://togithub.com/tc39/proposal-array-grouping/issues/44), [moved from prototype to static methods](https://togithub.com/tc39/proposal-array-grouping/pull/47). 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](https://togithub.com/tc39/proposal-collection-methods))
- Demoted to stage 2
- [Decorator Metadata proposal](https://togithub.com/tc39/proposal-decorator-metadata), [May 2023 TC39 meeting updates](https://togithub.com/tc39/notes/blob/main/meetings/2023-05/may-16.md#decorator-metadata-for-stage-3):
- Moved to stage 3
- Added `Function.prototype[Symbol.metadata]` (`=== null`)
- Added `/actual/` entries
- [Iterator Helpers stage 3 proposal](https://togithub.com/tc39/proposal-iterator-helpers):
- Changed `Symbol.iterator` fallback from callable check to `undefined` / `null` check, [May 2023 TC39 meeting](https://togithub.com/tc39/notes/blob/main/meetings/2023-05/may-16.md#iterator-helpers-should-symboliterator-fallback-be-a-callable-check-or-an-undefinednull-check), [proposal-iterator-helpers/272](https://togithub.com/tc39/proposal-iterator-helpers/pull/272)
- Removed `IsCallable` check on `NextMethod`, deferring errors to `Call` site, [May 2023 TC39 meeting](https://togithub.com/tc39/notes/blob/main/meetings/2023-05/may-16.md#iterator-helpers-should-malformed-iterators-fail-early-or-fail-only-when-iterated), [proposal-iterator-helpers/274](https://togithub.com/tc39/proposal-iterator-helpers/pull/274)
- Added [`Promise.withResolvers` stage 2 proposal](https://togithub.com/tc39/proposal-promise-with-resolvers):
- `Promise.withResolvers` method
- [`Symbol` predicates stage 2 proposal](https://togithub.com/tc39/proposal-symbol-predicates):
- The methods renamed to end with `Symbol`, [May 2023 TC39 meeting](https://togithub.com/tc39/notes/blob/main/meetings/2023-05/may-15.md#symbol-predicates):
- `Symbol.isRegistered` -> `Symbol.isRegisteredSymbol` method
- `Symbol.isWellKnown` -> `Symbol.isWellKnownSymbol` method
- Added `value` argument of `URLSearchParams.prototype.{ has, delete }`, [url/735](https://togithub.com/whatwg/url/pull/735)
- Fixed some cases of increasing buffer size in `ArrayBuffer.prototype.{ transfer, transferToFixedLength }` polyfills
- Fixed awaiting async `AsyncDisposableStack.prototype.adopt` callback, [#1258](https://togithub.com/zloirock/core-js/issues/1258)
- Fixed `URLSearchParams#size` in ES3 engines (IE8-)
- Added a workaround in `Object.{ entries, values }` for some IE versions bug with invisible integer keys on `null`-prototype objects
- Added TypeScript definitions to `core-js-compat`, [#1235](https://togithub.com/zloirock/core-js/issues/1235), thanks [**@susnux**](https://togithub.com/susnux)
- Compat data improvements:
- [`Set.prototype.difference`](https://togithub.com/tc39/proposal-set-methods) that was missed in Bun because of [a bug](https://togithub.com/oven-sh/bun/issues/2309) 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](https://togithub.com/tc39/proposal-change-array-by-copy) marked as supported from FF115
- [`Array.fromAsync`](https://togithub.com/tc39/proposal-array-from-async) marked as supported from FF115
- [`URL.canParse`](https://url.spec.whatwg.org/#dom-url-canparse) marked as supported from FF115
- `value` argument of `URLSearchParams.prototype.{ has, delete }` marked as supported from [NodeJS 20.2.0](https://togithub.com/nodejs/node/pull/47885) 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`](https://togithub.com/zloirock/core-js/blob/HEAD/CHANGELOG.md#3302---20230507)
[Compare Source](https://togithub.com/zloirock/core-js/compare/v3.30.1...v3.30.2)
- Added a fix for a NodeJS 20.0.0 [bug](https://togithub.com/nodejs/node/issues/47612) with cloning `File` via `structuredClone`
- Added protection from Terser unsafe `String` optimization, [#1242](https://togithub.com/zloirock/core-js/issues/1242)
- Added a workaround for getting proper global object in Figma plugins, [#1231](https://togithub.com/zloirock/core-js/issues/1231)
- Compat data improvements:
- Added NodeJS 20.0 compat data mapping
- Added Deno 1.33 compat data mapping
- [`URL.canParse`](https://url.spec.whatwg.org/#dom-url-canparse) marked as supported (fixed) from [NodeJS 20.1.0](https://togithub.com/nodejs/node/pull/47513) and [Deno 1.33.2](https://togithub.com/denoland/deno/pull/18896)
### [`v3.30.1`](https://togithub.com/zloirock/core-js/blob/HEAD/CHANGELOG.md#3301---20230414)
[Compare Source](https://togithub.com/zloirock/core-js/compare/v3.30.0...v3.30.1)
- Added a fix for a NodeJS 19.9.0 `URL.canParse` [bug](https://togithub.com/nodejs/node/issues/47505)
- Compat data improvements:
- [`JSON.parse` source text access proposal](https://togithub.com/tc39/proposal-json-parse-with-source) features marked as [supported](https://chromestatus.com/feature/5121582673428480) from V8 ~ Chrome 114
- [`ArrayBuffer.prototype.transfer` and friends proposal](https://togithub.com/tc39/proposal-arraybuffer-transfer) features marked as [supported](https://chromestatus.com/feature/5073244152922112) from V8 ~ Chrome 114
- [`URLSearchParams.prototype.size`](https://togithub.com/whatwg/url/pull/734) marked as supported from V8 ~ Chrome 113
### [`v3.30.0`](https://togithub.com/zloirock/core-js/blob/HEAD/CHANGELOG.md#3300---20230404)
[Compare Source](https://togithub.com/zloirock/core-js/compare/v3.29.1...v3.30.0)
- Added [`URL.canParse` method](https://url.spec.whatwg.org/#dom-url-canparse), [url/763](https://togithub.com/whatwg/url/pull/763)
- [`Set` methods proposal](https://togithub.com/tc39/proposal-set-methods):
- Removed sort from `Set.prototype.intersection`, [March 2023 TC39 meeting](https://togithub.com/babel/proposals/issues/87#issuecomment-1478610425), [proposal-set-methods/94](https://togithub.com/tc39/proposal-set-methods/pull/94)
- Iterator Helpers proposals ([sync](https://togithub.com/tc39/proposal-iterator-helpers), [async](https://togithub.com/tc39/proposal-async-iterator-helpers)):
- Validate arguments before opening iterator, [March 2023 TC39 meeting](https://togithub.com/babel/proposals/issues/87#issuecomment-1478412430), [proposal-iterator-helpers/265](https://togithub.com/tc39/proposal-iterator-helpers/pull/265)
- Explicit Resource Management proposals ([sync](https://togithub.com/tc39/proposal-explicit-resource-management), [async](https://togithub.com/tc39/proposal-async-explicit-resource-management)):
- `(Async)DisposableStack.prototype.move` marks the original stack as disposed, [#1226](https://togithub.com/zloirock/core-js/issues/1226)
- Some simplifications like [proposal-explicit-resource-management/150](https://togithub.com/tc39/proposal-explicit-resource-management/pull/150)
- [`Iterator.range` proposal](https://togithub.com/tc39/proposal-Number.range):
- Moved to Stage 2, [March 2023 TC39 meeting](https://togithub.com/babel/proposals/issues/87#issuecomment-1480266760)
- [Decorator Metadata proposal](https://togithub.com/tc39/proposal-decorator-metadata):
- Returned to usage `Symbol.metadata`, [March 2023 TC39 meeting](https://togithub.com/babel/proposals/issues/87#issuecomment-1478790137), [proposal-decorator-metadata/12](https://togithub.com/tc39/proposal-decorator-metadata/pull/12)
- Compat data improvements:
- [`URLSearchParams.prototype.size`](https://togithub.com/whatwg/url/pull/734) 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`](https://togithub.com/zloirock/core-js/blob/HEAD/CHANGELOG.md#3291---20230313)
[Compare Source](https://togithub.com/zloirock/core-js/compare/v3.29.0...v3.29.1)
- Fixed dependencies of some entries
- Fixed `ToString` conversion / built-ins nature of some accessors
- [`String.prototype.{ isWellFormed, toWellFormed }`](https://togithub.com/tc39/proposal-is-usv-string) marked as supported from V8 ~ Chrome 111
- Added Opera Android 74 compat data mapping
### [`v3.29.0`](https://togithub.com/zloirock/core-js/blob/HEAD/CHANGELOG.md#3290---20230227)
[Compare Source](https://togithub.com/zloirock/core-js/compare/v3.28.0...v3.29.0)
- Added `URLSearchParams.prototype.size` getter, [url/734](https://togithub.com/whatwg/url/pull/734)
- Allowed cloning resizable `ArrayBuffer`s in the `structuredClone` polyfill
- Fixed wrong export in `/(stable|actual|full)/instance/unshift` entries, [#1207](https://togithub.com/zloirock/core-js/issues/1207)
- Compat data improvements:
- [`Set` methods proposal](https://togithub.com/tc39/proposal-set-methods) 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`](https://togithub.com/zloirock/core-js/blob/HEAD/CHANGELOG.md#3280---20230214)
[Compare Source](https://togithub.com/zloirock/core-js/compare/v3.27.2...v3.28.0)
##### [3.28.0 - 2023.02.14](https://togithub.com/zloirock/core-js/releases/tag/v3.28.0)
### [`v3.27.2`](https://togithub.com/zloirock/core-js/blob/HEAD/CHANGELOG.md#3272---20230119)
[Compare Source](https://togithub.com/zloirock/core-js/compare/v3.27.1...v3.27.2)
- [`Set` methods proposal](https://togithub.com/tc39/proposal-set-methods) updates:
- Closing of iterators of `Set`-like objects on early exit, [proposal-set-methods/85](https://togithub.com/tc39/proposal-set-methods/pull/85)
- Some other minor internal changes
- Added one more workaround of a `webpack` dev server bug on IE global methods, [#1161](https://togithub.com/zloirock/core-js/issues/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](https://togithub.com/tc39/proposal-change-array-by-copy) 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](https://togithub.com/denoland/deno/pull/17362)
- Minor tweaks of minification settings for `core-js-bundle`
- Refactoring, some minor fixes, improvements, optimizations
### [`v3.27.1`](https://togithub.com/zloirock/core-js/blob/HEAD/CHANGELOG.md#3271---20221230)
[Compare Source](https://togithub.com/zloirock/core-js/compare/v3.27.0...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`](https://togithub.com/zloirock/core-js/blob/HEAD/CHANGELOG.md#3270---20221226)
[Compare Source](https://togithub.com/zloirock/core-js/compare/v3.26.1...v3.27.0)
- [Iterator Helpers](https://togithub.com/tc39/proposal-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](https://togithub.com/babel/proposals/issues/85#issuecomment-1333474304)
- 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](https://togithub.com/tc39/proposal-iterator-helpers/pull/244), [proposal-iterator-helpers/250](https://togithub.com/tc39/proposal-iterator-helpers/pull/250)
- `.from` and `.flatMap` throws on non-object *iterators*, [proposal-iterator-helpers/253](https://togithub.com/tc39/proposal-iterator-helpers/pull/253)
- [`Set` methods proposal](https://togithub.com/tc39/proposal-set-methods):
- 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](https://togithub.com/babel/proposals/issues/85#issuecomment-1332175557)
- Reimplemented with [new semantics](https://tc39.es/proposal-set-methods/):
- Optimized performance (iteration over lowest set)
- Accepted only `Set`-like objects as an argument, not all iterables
- Accepted only `Set`s 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](https://togithub.com/tc39/proposal-is-usv-string) proposal:
- Methods:
- `String.prototype.isWellFormed`
- `String.prototype.toWellFormed`
- Moved to Stage 3, [November 2022 TC39 meeting](https://togithub.com/babel/proposals/issues/85#issuecomment-1332180862)
- Added `/actual/` entries, disabled unconditional forced replacement
- [Explicit resource management](https://togithub.com/tc39/proposal-explicit-resource-management) Stage 3 and [Async explicit resource management](https://togithub.com/tc39/proposal-async-explicit-resource-management) Stage 2 proposals:
- Renamed from "`using` statement" and [split into 2 (sync and async) proposals](https://togithub.com/tc39/proposal-explicit-resource-management/pull/131)
- 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](https://togithub.com/babel/proposals/issues/85#issuecomment-1333747094)
- Added `/actual/` namespace entries for Stage 3 proposal
- Added [`String.dedent` stage 2 proposal](https://togithub.com/tc39/proposal-string-dedent)
- Method `String.dedent`
- Throws an error on non-frozen raw templates for avoiding possible breaking changes in the future, [proposal-string-dedent/75](https://togithub.com/tc39/proposal-string-dedent/issues/75)
- [Compat data targets](/packages/core-js-compat#targets-option) improvements:
- [React Native from 0.70 shipped with Hermes as the default engine.](https://reactnative.dev/blog/2022/07/08/hermes-as-the-default) However, bundled Hermes versions differ from standalone Hermes releases. So added **`react-native`** target for React Native with bundled Hermes.
- [According to the documentation](https://developer.oculus.com/documentation/web/browser-intro/), 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:
- [`Array.fromAsync`](https://togithub.com/tc39/proposal-array-from-async) marked as supported from Bun 0.3.0
- [`String.prototype.{ isWellFormed, toWellFormed }`](https://togithub.com/tc39/proposal-is-usv-string) marked as supported from Bun 0.4.0
- [Change `Array` by copy proposal](https://togithub.com/tc39/proposal-change-array-by-copy) marked as supported from Deno 1.27, [deno/16429](https://togithub.com/denoland/deno/pull/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](https://tc39.es/proposal-upsert/)
- Smoothed behavior of some conflicting proposals
- Removed some generic behavior (like `@@species` pattern) of some `.prototype` methods from the [new collections methods proposal](https://togithub.com/tc39/proposal-collection-methods) and the [`Array` deduplication proposal](https://togithub.com/tc39/proposal-array-unique) that *most likely* will not be implemented since it contradicts the current TC39 policy
- Added pure version of the `Number` constructor, [#1154](https://togithub.com/zloirock/core-js/issues/1154), [#1155](https://togithub.com/zloirock/core-js/issues/1155), thanks [@trosos](https://togithub.com/trosos)
- Added `set(Timeout|Interval|Immediate)` extra arguments fix for Bun 0.3.0- (similarly to IE9-), [bun/1633](https://togithub.com/oven-sh/bun/issues/1633)
- Fixed handling of sparse arrays in `structuredClone`, [#1156](https://togithub.com/zloirock/core-js/issues/1156)
- Fixed a theoretically possible future conflict of polyfills definitions in the pure version
- Some refactoring and optimization
### [`v3.26.1`](https://togithub.com/zloirock/core-js/blob/HEAD/CHANGELOG.md#3261---20221114)
[Compare Source](https://togithub.com/zloirock/core-js/compare/v3.26.0...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](https://togithub.com/zloirock/core-js/issues/1141)
- V8 will not ship `Array.prototype.{ group, groupToMap }` in V8 ~ Chromium 108, [proposal-array-grouping/44](https://togithub.com/tc39/proposal-array-grouping/issues/44#issuecomment-1306311107)
### [`v3.26.0`](https://togithub.com/zloirock/core-js/blob/HEAD/CHANGELOG.md#3260---20221024)
[Compare Source](https://togithub.com/zloirock/core-js/compare/v3.25.5...v3.26.0)
- [`Array.fromAsync` proposal](https://togithub.com/tc39/proposal-array-from-async):
- Moved to Stage 3, [September TC39 meeting](https://togithub.com/tc39/notes/blob/main/meetings/2022-09/sep-14.md#arrayfromasync-for-stage-3)
- Avoid observable side effects of `%Array.prototype.values%` usage in array-like branch, [proposal-array-from-async/30](https://togithub.com/tc39/proposal-array-from-async/pull/30)
- Added [well-formed unicode strings stage 2 proposal](https://togithub.com/tc39/proposal-is-usv-string):
- `String.prototype.isWellFormed`
- `String.prototype.toWellFormed`
- Recent updates of the [iterator helpers proposal](https://togithub.com/tc39/proposal-iterator-helpers):
- Added a counter parameter to helpers, [proposal-iterator-helpers/211](https://togithub.com/tc39/proposal-iterator-helpers/pull/211)
- Don't await non-objects returned from functions passed to `AsyncIterator` helpers, [proposal-iterator-helpers/239](https://togithub.com/tc39/proposal-iterator-helpers/pull/239)
- `{ Iterator, AsyncIterator }.prototype.flatMap` supports returning both - iterables and iterators, [proposal-iterator-helpers/233](https://togithub.com/tc39/proposal-iterator-helpers/pull/233)
- Early exit on broken `.next` in missed cases of `{ Iterator, AsyncIterator }.from`, [proposal-iterator-helpers/232](https://togithub.com/tc39/proposal-iterator-helpers/pull/232)
- Added `self` polyfill as a part of [The Minimum Common Web Platform API](https://common-min-api.proposal.wintercg.org/), [specification](https://html.spec.whatwg.org/multipage/window-object.html#dom-self), [#1118](https://togithub.com/zloirock/core-js/issues/1118)
- Added `inverse` option to `core-js-compat`, [#1119](https://togithub.com/zloirock/core-js/issues/1119)
- Added `format` option to `core-js-builder`, [#1120](https://togithub.com/zloirock/core-js/issues/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`](https://togithub.com/zloirock/core-js/blob/HEAD/CHANGELOG.md#3255---20221004)
[Compare Source](https://togithub.com/zloirock/core-js/compare/v3.25.4...v3.25.5)
- Fixed regression with an error on reuse of some built-in methods from another realm, [#1133](https://togithub.com/zloirock/core-js/issues/1133)
### [`v3.25.4`](https://togithub.com/zloirock/core-js/blob/HEAD/CHANGELOG.md#3254---20221003)
[Compare Source](https://togithub.com/zloirock/core-js/compare/v3.25.3...v3.25.4)
- Added a workaround of a Nashorn bug with `Function.prototype.{ call, apply, bind }` on string methods, [#1128](https://togithub.com/zloirock/core-js/issues/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](https://chromestatus.com/feature/5714791975878656)
- Added Electron 22 compat data mapping
### [`v3.25.3`](https://togithub.com/zloirock/core-js/blob/HEAD/CHANGELOG.md#3253---20220926)
[Compare Source](https://togithub.com/zloirock/core-js/compare/v3.25.2...v3.25.3)
- 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`](https://togithub.com/zloirock/core-js/blob/HEAD/CHANGELOG.md#3252---20220919)
[Compare Source](https://togithub.com/zloirock/core-js/compare/v3.25.1...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`](https://togithub.com/zloirock/core-js/blob/HEAD/CHANGELOG.md#3251---20220908)
[Compare Source](https://togithub.com/zloirock/core-js/compare/v3.25.0...v3.25.1)
- 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](https://togithub.com/zloirock/core-js/issues/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](https://togithub.com/npm/node-semver/commit/d61f828e64260a0a097f26210f5500), 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`](https://togithub.com/zloirock/core-js/blob/HEAD/CHANGELOG.md#3250---20220825)
[Compare Source](https://togithub.com/zloirock/core-js/compare/v3.24.1...v3.25.0)
- Added [`Object.prototype.__proto__`](https://tc39.es/ecma262/#sec-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](https://togithub.com/denoland/deno/issues/13321), 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](https://tc39.es/ecma262/#sec-IsHTMLDDA-internal-slot)
- Avoiding unnecessary promise creation and validation result in `%WrapForValid(Async)IteratorPrototype%.return`, [proposal-iterator-helpers/215](https://togithub.com/tc39/proposal-iterator-helpers/pull/215)
- Fixed omitting the result of proxing `.return` in `%IteratorHelperPrototype%.return`, [#1116](https://togithub.com/zloirock/core-js/issues/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](https://togithub.com/zloirock/core-js/issues/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`](https://togithub.com/zloirock/core-js/blob/HEAD/CHANGELOG.md#3241---20220730)
[Compare Source](https://togithub.com/zloirock/core-js/compare/v3.24.0...v3.24.1)
- NodeJS is ignored in `IS_BROWSER` detection to avoid a false positive with `jsdom`, [#1110](https://togithub.com/zloirock/core-js/issues/1110)
- Fixed detection of `@@species` support in `Promise` in some old engines
- `{ Array, %TypedArray% }.prototype.{ findLast, findLastIndex }` marked as shipped [in FF104](https://bugzilla.mozilla.org/show_bug.cgi?id=1775026)
- Added iOS Safari 15.6 compat data mapping
- Fixed Opera 15 compat data mapping
### [`v3.24.0`](https://togithub.com/zloirock/core-js/blob/HEAD/CHANGELOG.md#3240---20220725)
[Compare Source](https://togithub.com/zloirock/core-js/compare/v3.23.5...v3.24.0)
- Recent updates of the [iterator helpers proposal](https://togithub.com/tc39/proposal-iterator-helpers), [#1101](https://togithub.com/zloirock/core-js/issues/1101):
- `.asIndexedPairs` renamed to `.indexed`, [proposal-iterator-helpers/183](https://togithub.com/tc39/proposal-iterator-helpers/pull/183):
- `Iterator.prototype.asIndexedPairs` -> `Iterator.prototype.indexed`
- `AsyncIterator.prototype.asIndexedPairs` -> `AsyncIterator.prototype.indexed`
- Avoid exposing spec fiction `%AsyncFromSyncIteratorPrototype%` in `AsyncIterator.from` and `Iterator.prototype.toAsync`, [proposal-iterator-helpers/182](https://togithub.com/tc39/proposal-iterator-helpers/pull/182), [proposal-iterator-helpers/202](https://togithub.com/tc39/proposal-iterator-helpers/pull/202)
- Avoid unnecessary promise creation in `%WrapForValidAsyncIteratorPrototype%.next`, [proposal-iterator-helpers/197](https://togithub.com/tc39/proposal-iterator-helpers/pull/197)
- Do not validate value in `%WrapForValid(Async)IteratorPrototype%.next`, [proposal-iterator-helpers/197](https://togithub.com/tc39/proposal-iterator-helpers/pull/197) and [proposal-iterator-helpers/205](https://togithub.com/tc39/proposal-iterator-helpers/pull/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](https://togithub.com/tc39/proposal-iterator-helpers/pull/194)
- `.throw` methods removed from all wrappers / helpers prototypes, a part of [proposal-iterator-helpers/194](https://togithub.com/tc39/proposal-iterator-helpers/pull/194)
- Close inner iterators of `{ Iterator, AsyncIterator }.prototype.flatMap` proxy iterators on `.return`, [proposal-iterator-helpers/195](https://togithub.com/tc39/proposal-iterator-helpers/pull/195)
- Throw `RangeError` on `NaN` in `{ Iterator, AsyncIterator }.prototype.{ drop, take }`, [proposal-iterator-helpers/181](https://togithub.com/tc39/proposal-iterator-helpers/pull/181)
- Many other updates and fixes of this proposal
- `%TypedArray%.prototype.toSpliced` method removed from the [change array by copy proposal](https://togithub.com/tc39/proposal-change-array-by-copy) and marked as obsolete in `core-js`, [proposal-change-array-by-copy/88](https://togithub.com/tc39/proposal-change-array-by-copy/issues/88)
- Polyfill `Promise` with `unhandledrejection` event support (browser style) in Deno < [1.24](https://togithub.com/denoland/deno/releases/tag/v1.24.0)
- Available new targets in `core-js-compat` / `core-js-builder` and added compat data for them:
- Bun (`bun`), compat data for 0.1.1-0.1.5, [#1103](https://togithub.com/zloirock/core-js/issues/1103)
- Hermes (`hermes`), compat data for 0.1-0.11, [#1099](https://togithub.com/zloirock/core-js/issues/1099)
- Oculus Browser (`oculus`), compat data mapping for 3.0-22.0, [#1098](https://togithub.com/zloirock/core-js/issues/1098)
- Added Samsung Internet 18.0 compat data mapping
### [`v3.23.5`](https://togithub.com/zloirock/core-js/blob/HEAD/CHANGELOG.md#3235---20220718)
[Compare Source](https://togithub.com/zloirock/core-js/compare/v3.23.4...v3.23.5)
- Fixed a typo in the `structuredClone` feature detection, [#1106](https://togithub.com/zloirock/core-js/issues/1106)
- Added Opera Android 70 compat data mapping
### [`v3.23.4`](https://togithub.com/zloirock/core-js/blob/HEAD/CHANGELOG.md#3234---20220710)
[Compare Source](https://togithub.com/zloirock/core-js/compare/v3.23.3...v3.23.4)
- Added a workaround of the Bun ~ 0.1.1 [bug](https://togithub.com/Jarred-Sumner/bun/issues/399) 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](https://bugzilla.mozilla.org/show_bug.cgi?id=1774866) (fixed in FF104) and [1777321](https://bugzilla.mozilla.org/show_bug.cgi?id=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](https://togithub.com/zloirock/core-js/issues/1102)
- Fixed order of errors throwing on iterator helpers
### [`v3.23.3`](https://togithub.com/zloirock/core-js/blob/HEAD/CHANGELOG.md#3233---20220626)
[Compare Source](https://togithub.com/zloirock/core-js/compare/v3.23.2...v3.23.3)
- Changed the order of operations in `%TypedArray%.prototype.toSpliced` following [proposal-change-array-by-copy/89](https://togithub.com/tc39/proposal-change-array-by-copy/issues/89)
- Fixed regression of some IE8- issues
### [`v3.23.2`](https://togithub.com/zloirock/core-js/blob/HEAD/CHANGELOG.md#3232---20220621)
[Compare Source](https://togithub.com/zloirock/core-js/compare/v3.23.1...v3.23.2)
- Avoided creation of extra properties for the handling of `%TypedArray%` constructors in new methods, [#1092 (comment)](https://togithub.com/zloirock/core-js/issues/1092#issuecomment-1158760512)
- Added Deno 1.23 compat data mapping
### [`v3.23.1`](https://togithub.com/zloirock/core-js/blob/HEAD/CHANGELOG.md#3231---20220614)
[Compare Source](https://togithub.com/zloirock/core-js/compare/v3.23.0...v3.23.1)
- Fixed possible error on multiple `core-js` copies, [#1091](https://togithub.com/zloirock/core-js/issues/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`](https://togithub.com/zloirock/core-js/blob/HEAD/CHANGELOG.md#3230---20220614)
[Compare Source](https://togithub.com/zloirock/core-js/compare/v3.22.8...v3.23.0)
- [`Array` find from last](https://togithub.com/tc39/proposal-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](https://togithub.com/tc39/proposal-array-grouping) [renamed](https://togithub.com/tc39/proposal-array-grouping/pull/39), 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](https://togithub.com/tc39/proposal-change-array-by-copy/issues/86), according to June 2022 TC39 meeting
- [Decorator Metadata proposal](https://togithub.com/tc39/proposal-decorator-metadata) extracted from [Decorators proposal](https://togithub.com/tc39/proposal-decorators) 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](https://togithub.com/zloirock/core-js/issues/679)
- Added detection of NodeJS [bug](https://togithub.com/nodejs/node/issues/41038) 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`](https://togithub.com/zloirock/core-js/blob/HEAD/CHANGELOG.md#3228---20220602)
[Compare Source](https://togithub.com/zloirock/core-js/compare/v3.22.7...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 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`](https://togithub.com/zloirock/core-js/blob/HEAD/CHANGELOG.md#3227---20220524)
[Compare Source](https://togithub.com/zloirock/core-js/compare/v3.22.6...v3.22.7)
- Added a workaround for V8 ~ Chrome 53 bug with non-writable prototype of some methods, [#1083](https://togithub.com/zloirock/core-js/issues/1083)
### [`v3.22.6`](https://togithub.com/zloirock/core-js/blob/HEAD/CHANGELOG.md#3226---20220523)
[Compare Source](https://togithub.com/zloirock/core-js/compare/v3.22.5...v3.22.6)
- Fixed possible double call of `ToNumber` conversion on arguments of `Math.{ fround, trunc }` polyfills
- `Array.prototype.includes` marked as [fixed](https://bugzilla.mozilla.org/show_bug.cgi?id=1767541) in FF102
### [`v3.22.5`](https://togithub.com/zloirock/core-js/blob/HEAD/CHANGELOG.md#3225---20220510)
[Compare Source](https://togithub.com/zloirock/core-js/compare/v3.22.4...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](https://bugs.chromium.org/p/v8/issues/detail?id=12542) of `struturedClone` that returns `null` if cloned object contains multiple references to one error
### [`v3.22.4`](https://togithub.com/zloirock/core-js/blob/HEAD/CHANGELOG.md#3224---20220503)
[Compare Source](https://togithub.com/zloirock/core-js/compare/v3.22.3...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`](https://togithub.com/zloirock/core-js/blob/HEAD/CHANGELOG.md#3223---20220428)
[Compare Source](https://togithub.com/zloirock/core-js/compare/v3.22.2...v3.22.3)
- Added a fix for FF99+ `Array.prototype.includes` broken on sparse arrays
### [`v3.22.2`](https://togithub.com/zloirock/core-js/blob/HEAD/CHANGELOG.md#3222---20220421)
[Compare Source](https://togithub.com/zloirock/core-js/compare/v3.22.1...v3.22.2)
- Fixed `URLSearchParams` in IE8- that was broken in the previous release
- Fixed `__lookupGetter__` entries
### [`v3.22.1`](https://togithub.com/zloirock/core-js/blob/HEAD/CHANGELOG.md#3221---20220420)
[Compare Source](https://togithub.com/zloirock/core-js/compare/v3.22.0...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`](https://togithub.com/zloirock/core-js/blob/HEAD/CHANGELOG.md#3220---20220415)
[Compare Source](https://togithub.com/zloirock/core-js/compare/v3.21.1...v3.22.0)
- [Change `Array` by copy proposal](https://togithub.com/tc39/proposal-change-array-by-copy):
- Moved to Stage 3, [March TC39 meeting](https://togithub.com/babel/proposals/issues/81#issuecomment-1083449843)
- 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](https://togithub.com/tc39/proposal-change-array-by-copy/pull/70)
- Added some more `atob` / `btoa` fixes:
- NodeJS <17.9 `atob` does not ignore spaces, [node/42530](https://togithub.com/nodejs/node/issues/42530)
- Actual NodeJS `atob` does not validate encoding, [node/42646](https://togithub.com/nodejs/node/issues/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
Configuration
📅 Schedule: Branch creation - At any time (no schedule defined), Automerge - At any time (no schedule defined).
🚦 Automerge: Enabled.
♻ Rebasing: Whenever PR becomes conflicted, or you tick the rebase/retry checkbox.
🔕 Ignore: Close this PR and you won't be reminded about this update again.
[ ] If you want to rebase/retry this PR, check this box
This PR has been generated by Mend Renovate. View repository job log here.
This PR contains the following updates:
3.19.1
->3.33.3
Release Notes
zloirock/core-js (core-js)
### [`v3.33.3`](https://togithub.com/zloirock/core-js/blob/HEAD/CHANGELOG.md#3333---20231120) [Compare Source](https://togithub.com/zloirock/core-js/compare/v3.33.2...v3.33.3) - Fixed an issue getting the global object on Duktape, [#1303](https://togithub.com/zloirock/core-js/issues/1303) - Avoid sharing internal `[[DedentMap]]` from [`String.dedent` proposal](https://togithub.com/tc39/proposal-string-dedent) between `core-js` instances before stabilization of the proposal - Some internal untangling - Compat data improvements: - Added [Deno 1.38](https://deno.com/blog/v1.38) compat data mapping - [`Array.fromAsync`](https://togithub.com/tc39/proposal-array-from-async) marked as [supported from Deno 1.38](https://togithub.com/denoland/deno/pull/21048) - [`Symbol.{ dispose, asyncDispose }`](https://togithub.com/tc39/proposal-explicit-resource-management) marked as [supported from Deno 1.38](https://togithub.com/denoland/deno/pull/20845) - 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`](https://togithub.com/zloirock/core-js/blob/HEAD/CHANGELOG.md#3332---20231031) [Compare Source](https://togithub.com/zloirock/core-js/compare/v3.33.1...v3.33.2) - Simplified `structuredClone` polyfill, avoided second tree pass in cases of transferring - Added support of [`SuppressedError`](https://togithub.com/tc39/proposal-explicit-resource-management#the-suppressederror-error) 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`](https://togithub.com/tc39/proposal-number-fromstring) - Compat data improvements: - [`URL.canParse`](https://url.spec.whatwg.org/#dom-url-canparse) marked as [supported from Chromium 120](https://bugs.chromium.org/p/chromium/issues/detail?id=1425839) - Updated Opera Android 78 compat data mapping - Added Electron 29 compat data mapping ### [`v3.33.1`](https://togithub.com/zloirock/core-js/blob/HEAD/CHANGELOG.md#3331---20231020) [Compare Source](https://togithub.com/zloirock/core-js/compare/v3.33.0...v3.33.1) - Added one more workaround of possible error with `Symbol` polyfill on global object, [#1289](https://togithub.com/zloirock/core-js/issues/1289#issuecomment-1768411444) - Directly specified `type: commonjs` in `package.json` of all packages to avoid potential breakage in future Node versions, see [this issue](https://togithub.com/nodejs/TSC/issues/1445) - 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 }`](https://togithub.com/tc39/proposal-is-usv-string) marked as [supported from FF119](https://bugzilla.mozilla.org/show_bug.cgi?id=1850755) - Added React Native 0.73 Hermes compat data, mainly fixes of [some issues](https://togithub.com/facebook/hermes/issues/770) - Added [NodeJS 21.0 compat data mapping](https://nodejs.org/ru/blog/release/v21.0.0) ### [`v3.33.0`](https://togithub.com/zloirock/core-js/blob/HEAD/CHANGELOG.md#3330---20231002) [Compare Source](https://togithub.com/zloirock/core-js/compare/v3.32.2...v3.33.0) - Re-introduced [`RegExp` escaping stage 2 proposal](https://togithub.com/tc39/proposal-regex-escaping), 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 [`ArrayBuffer.prototype.{ transfer, transferToFixedLength }`](https://togithub.com/tc39/proposal-arraybuffer-transfer) and support transferring of `ArrayBuffer`s via [`structuredClone`](https://html.spec.whatwg.org/multipage/structured-data.html#dom-structuredclone) to engines with `MessageChannel` - Optimized [`Math.f16round`](https://togithub.com/tc39/proposal-float16array) polyfill - Fixed [some conversion cases](https://togithub.com/petamoriken/float16/issues/1046) of [`Math.f16round` and `DataView.prototype.{ getFloat16, setFloat16 }`](https://togithub.com/tc39/proposal-float16array) - Fully forced polyfilling of [the TC39 `Observable` proposal](https://togithub.com/tc39/proposal-observable) because of incompatibility with [the new WHATWG `Observable` proposal](https://togithub.com/WICG/observable) - Added an extra workaround of errors with exotic environment objects in `Symbol` polyfill, [#1289](https://togithub.com/zloirock/core-js/issues/1289) - Some minor fixes and stylistic changes - Compat data improvements: - V8 unshipped [`Iterator` helpers](https://togithub.com/tc39/proposal-iterator-helpers) because of [some Web compatibility issues](https://togithub.com/tc39/proposal-iterator-helpers/issues/286) - [`Promise.withResolvers`](https://togithub.com/tc39/proposal-promise-with-resolvers) marked as [supported from V8 ~ Chrome 119](https://chromestatus.com/feature/5810984110784512) - [`Array` grouping proposal](https://togithub.com/tc39/proposal-array-grouping) features marked as [supported from FF119](https://bugzilla.mozilla.org/show_bug.cgi?id=1792650#c9) - [`value` argument of `URLSearchParams.prototype.{ has, delete }`](https://url.spec.whatwg.org/#dom-urlsearchparams-delete) marked as properly supported from V8 ~ Chrome 118 - [`URL.canParse`](https://url.spec.whatwg.org/#dom-url-canparse) and [`URLSearchParams.prototype.size`](https://url.spec.whatwg.org/#dom-urlsearchparams-size) marked as [supported from Bun 1.0.2](https://togithub.com/oven-sh/bun/releases/tag/bun-v1.0.2) - Added Deno 1.37 compat data mapping - Added Electron 28 compat data mapping - Added Opera Android 78 compat data mapping ### [`v3.32.2`](https://togithub.com/zloirock/core-js/blob/HEAD/CHANGELOG.md#3322---20230907) [Compare Source](https://togithub.com/zloirock/core-js/compare/v3.32.1...v3.32.2) - Fixed `structuredClone` feature detection `core-js@3.32.1` bug, [#1288](https://togithub.com/zloirock/core-js/issues/1288) - Added a workaround of old WebKit + `eval` bug, [#1287](https://togithub.com/zloirock/core-js/pull/1287) - Compat data improvements: - Added Samsung Internet 23 compat data mapping - Added Quest Browser 29 compat data mapping ### [`v3.32.1`](https://togithub.com/zloirock/core-js/blob/HEAD/CHANGELOG.md#3321---20230819) [Compare Source](https://togithub.com/zloirock/core-js/compare/v3.32.0...v3.32.1) - Fixed some cases of IEEE754 rounding, [#1279](https://togithub.com/zloirock/core-js/issues/1279), thanks [**@petamoriken**](https://togithub.com/petamoriken) - Prevented injection `process` polyfill to `core-js` via some bundlers or `esm.sh`, [#1277](https://togithub.com/zloirock/core-js/issues/1277) - Some minor fixes and stylistic changes - Compat data improvements: - [`Promise.withResolvers`](https://togithub.com/tc39/proposal-promise-with-resolvers) marked as supported [from Bun 0.7.1](https://bun.sh/blog/bun-v0.7.1#bun-ismainthread-and-promise-withresolvers) - Added Opera Android 77 compat data mapping - Updated Electron 27 compat data mapping ### [`v3.32.0`](https://togithub.com/zloirock/core-js/blob/HEAD/CHANGELOG.md#3320---20230728) [Compare Source](https://togithub.com/zloirock/core-js/compare/v3.31.1...v3.32.0) - [`Array` grouping proposal](https://togithub.com/tc39/proposal-array-grouping), July 2023 TC39 meeting updates: - [Moved back to stage 3](https://togithub.com/tc39/proposal-array-grouping/issues/54) - Added `/actual/` namespaces entries, unconditional forced replacement changed to feature detection - [`Promise.withResolvers` proposal](https://togithub.com/tc39/proposal-promise-with-resolvers), July 2023 TC39 meeting updates: - [Moved to stage 3](https://togithub.com/tc39/proposal-promise-with-resolvers/pull/18) - Added `/actual/` namespaces entries, unconditional forced replacement changed to feature detection - [`Set` methods stage 3 proposal](https://togithub.com/tc39/proposal-set-methods), July 2023 TC39 meeting updates: - Throw on negative `Set` sizes, [proposal-set-methods/88](https://togithub.com/tc39/proposal-set-methods/pull/88) - Removed `IsCallable` check in `GetKeysIterator`, [proposal-set-methods/101](https://togithub.com/tc39/proposal-set-methods/pull/101) - [Iterator Helpers stage 3 proposal](https://togithub.com/tc39/proposal-iterator-helpers): - Avoid creating observable `String` wrapper objects, July 2023 TC39 meeting update, [proposal-iterator-helpers/281](https://togithub.com/tc39/proposal-iterator-helpers/pull/281) - `Iterator` is not constructible from the active function object (works as an abstract class) - Async explicit resource management: - Moved back into [the initial proposal](https://togithub.com/tc39/proposal-explicit-resource-management) -> moved to stage 3, [proposal-explicit-resource-management/154](https://togithub.com/tc39/proposal-explicit-resource-management/pull/154) - Added `/actual/` namespace entries, unconditional forced replacement changed to feature detection - Ignore return value of `[@@dispose]()` method when hint is `async-dispose`, [proposal-explicit-resource-management/180](https://togithub.com/tc39/proposal-explicit-resource-management/pull/180) - Added ticks for empty resources, [proposal-explicit-resource-management/163](https://togithub.com/tc39/proposal-explicit-resource-management/pull/163) - Added some methods from [`Float16Array` stage 3 proposal](https://togithub.com/tc39/proposal-float16array): - 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` - Added [`DataView` get / set `Uint8Clamped` methods stage 1 proposal](https://togithub.com/tc39/proposal-dataview-get-set-uint8clamped): - Methods: - `DataView.prototype.getUint8Clamped` - `DataView.prototype.setUint8Clamped` - Used strict mode in some missed cases, [#1269](https://togithub.com/zloirock/core-js/issues/1269) - Fixed [a Chromium 117 bug](https://bugs.chromium.org/p/v8/issues/detail?id=14222) in `value` argument of `URLSearchParams.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](https://togithub.com/nodejs/node/issues/48699) / 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](https://togithub.com/zloirock/core-js#asynciterator-helpers), [#1268](https://togithub.com/zloirock/core-js/issues/1268) - Compat data improvements: - Sync [`Iterator` helpers proposal](https://togithub.com/tc39/proposal-iterator-helpers) features marked as [supported](https://chromestatus.com/feature/5102502917177344) from V8 ~ Chrome 117 - [`Array` grouping proposal](https://togithub.com/tc39/proposal-array-grouping) features marked as [supported](https://chromestatus.com/feature/5714791975878656) 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](https://togithub.com/nodejs/node/issues/48699)) - Added Electron 27 compat data mapping ### [`v3.31.1`](https://togithub.com/zloirock/core-js/blob/HEAD/CHANGELOG.md#3311---20230706) [Compare Source](https://togithub.com/zloirock/core-js/compare/v3.31.0...v3.31.1) - Fixed a `structuredClone` bug with cloning views of transferred buffers, [#1265](https://togithub.com/zloirock/core-js/issues/1265) - Fixed the order of arguments validation in `DataView` methods - Allowed cloning of [`Float16Array`](https://togithub.com/tc39/proposal-float16array) in `structuredClone` - Compat data improvements: - [`Set` methods proposal](https://togithub.com/tc39/proposal-set-methods) marked as [supported from Safari 17.0](https://developer.apple.com/documentation/safari-release-notes/safari-17-release-notes#JavaScript) - New `URL` features: [`URL.canParse`](https://url.spec.whatwg.org/#dom-url-canparse), [`URLSearchParams.prototype.size`](https://url.spec.whatwg.org/#dom-urlsearchparams-size) and [`value` argument of `URLSearchParams.prototype.{ has, delete }`](https://url.spec.whatwg.org/#dom-urlsearchparams-delete) marked as [supported from Safari 17.0](https://developer.apple.com/documentation/safari-release-notes/safari-17-release-notes#Web-API) - `value` argument of `URLSearchParams.prototype.{ has, delete }` marked as supported from [Deno 1.35](https://togithub.com/denoland/deno/pull/19654) - `AggregateError` and well-formed `JSON.stringify` marked as [supported React Native 0.72 Hermes](https://reactnative.dev/blog/2023/06/21/0.72-metro-package-exports-symlinks#more-ecmascript-support-in-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`](https://togithub.com/zloirock/core-js/blob/HEAD/CHANGELOG.md#3310---20230612) [Compare Source](https://togithub.com/zloirock/core-js/compare/v3.30.2...v3.31.0) - [Well-formed unicode strings proposal](https://togithub.com/tc39/proposal-is-usv-string): - Methods: - `String.prototype.isWellFormed` method - `String.prototype.toWellFormed` method - Moved to stable ES, [May 2023 TC39 meeting](https://togithub.com/tc39/notes/blob/main/meetings/2023-05/may-15.md#well-formed-unicode-strings-for-stage-4) - Added `es.` namespace modules, `/es/` and `/stable/` namespaces entries - [`Array` grouping proposal](https://togithub.com/tc39/proposal-array-grouping), [May 2023 TC39 meeting updates](https://togithub.com/tc39/notes/blob/main/meetings/2023-05/may-16.md#arrayprototypegroup-rename-for-web-compatibility): - Because of the [web compat issue](https://togithub.com/tc39/proposal-array-grouping/issues/44), [moved from prototype to static methods](https://togithub.com/tc39/proposal-array-grouping/pull/47). 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](https://togithub.com/tc39/proposal-collection-methods)) - Demoted to stage 2 - [Decorator Metadata proposal](https://togithub.com/tc39/proposal-decorator-metadata), [May 2023 TC39 meeting updates](https://togithub.com/tc39/notes/blob/main/meetings/2023-05/may-16.md#decorator-metadata-for-stage-3): - Moved to stage 3 - Added `Function.prototype[Symbol.metadata]` (`=== null`) - Added `/actual/` entries - [Iterator Helpers stage 3 proposal](https://togithub.com/tc39/proposal-iterator-helpers): - Changed `Symbol.iterator` fallback from callable check to `undefined` / `null` check, [May 2023 TC39 meeting](https://togithub.com/tc39/notes/blob/main/meetings/2023-05/may-16.md#iterator-helpers-should-symboliterator-fallback-be-a-callable-check-or-an-undefinednull-check), [proposal-iterator-helpers/272](https://togithub.com/tc39/proposal-iterator-helpers/pull/272) - Removed `IsCallable` check on `NextMethod`, deferring errors to `Call` site, [May 2023 TC39 meeting](https://togithub.com/tc39/notes/blob/main/meetings/2023-05/may-16.md#iterator-helpers-should-malformed-iterators-fail-early-or-fail-only-when-iterated), [proposal-iterator-helpers/274](https://togithub.com/tc39/proposal-iterator-helpers/pull/274) - Added [`Promise.withResolvers` stage 2 proposal](https://togithub.com/tc39/proposal-promise-with-resolvers): - `Promise.withResolvers` method - [`Symbol` predicates stage 2 proposal](https://togithub.com/tc39/proposal-symbol-predicates): - The methods renamed to end with `Symbol`, [May 2023 TC39 meeting](https://togithub.com/tc39/notes/blob/main/meetings/2023-05/may-15.md#symbol-predicates): - `Symbol.isRegistered` -> `Symbol.isRegisteredSymbol` method - `Symbol.isWellKnown` -> `Symbol.isWellKnownSymbol` method - Added `value` argument of `URLSearchParams.prototype.{ has, delete }`, [url/735](https://togithub.com/whatwg/url/pull/735) - Fixed some cases of increasing buffer size in `ArrayBuffer.prototype.{ transfer, transferToFixedLength }` polyfills - Fixed awaiting async `AsyncDisposableStack.prototype.adopt` callback, [#1258](https://togithub.com/zloirock/core-js/issues/1258) - Fixed `URLSearchParams#size` in ES3 engines (IE8-) - Added a workaround in `Object.{ entries, values }` for some IE versions bug with invisible integer keys on `null`-prototype objects - Added TypeScript definitions to `core-js-compat`, [#1235](https://togithub.com/zloirock/core-js/issues/1235), thanks [**@susnux**](https://togithub.com/susnux) - Compat data improvements: - [`Set.prototype.difference`](https://togithub.com/tc39/proposal-set-methods) that was missed in Bun because of [a bug](https://togithub.com/oven-sh/bun/issues/2309) 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](https://togithub.com/tc39/proposal-change-array-by-copy) marked as supported from FF115 - [`Array.fromAsync`](https://togithub.com/tc39/proposal-array-from-async) marked as supported from FF115 - [`URL.canParse`](https://url.spec.whatwg.org/#dom-url-canparse) marked as supported from FF115 - `value` argument of `URLSearchParams.prototype.{ has, delete }` marked as supported from [NodeJS 20.2.0](https://togithub.com/nodejs/node/pull/47885) 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`](https://togithub.com/zloirock/core-js/blob/HEAD/CHANGELOG.md#3302---20230507) [Compare Source](https://togithub.com/zloirock/core-js/compare/v3.30.1...v3.30.2) - Added a fix for a NodeJS 20.0.0 [bug](https://togithub.com/nodejs/node/issues/47612) with cloning `File` via `structuredClone` - Added protection from Terser unsafe `String` optimization, [#1242](https://togithub.com/zloirock/core-js/issues/1242) - Added a workaround for getting proper global object in Figma plugins, [#1231](https://togithub.com/zloirock/core-js/issues/1231) - Compat data improvements: - Added NodeJS 20.0 compat data mapping - Added Deno 1.33 compat data mapping - [`URL.canParse`](https://url.spec.whatwg.org/#dom-url-canparse) marked as supported (fixed) from [NodeJS 20.1.0](https://togithub.com/nodejs/node/pull/47513) and [Deno 1.33.2](https://togithub.com/denoland/deno/pull/18896) ### [`v3.30.1`](https://togithub.com/zloirock/core-js/blob/HEAD/CHANGELOG.md#3301---20230414) [Compare Source](https://togithub.com/zloirock/core-js/compare/v3.30.0...v3.30.1) - Added a fix for a NodeJS 19.9.0 `URL.canParse` [bug](https://togithub.com/nodejs/node/issues/47505) - Compat data improvements: - [`JSON.parse` source text access proposal](https://togithub.com/tc39/proposal-json-parse-with-source) features marked as [supported](https://chromestatus.com/feature/5121582673428480) from V8 ~ Chrome 114 - [`ArrayBuffer.prototype.transfer` and friends proposal](https://togithub.com/tc39/proposal-arraybuffer-transfer) features marked as [supported](https://chromestatus.com/feature/5073244152922112) from V8 ~ Chrome 114 - [`URLSearchParams.prototype.size`](https://togithub.com/whatwg/url/pull/734) marked as supported from V8 ~ Chrome 113 ### [`v3.30.0`](https://togithub.com/zloirock/core-js/blob/HEAD/CHANGELOG.md#3300---20230404) [Compare Source](https://togithub.com/zloirock/core-js/compare/v3.29.1...v3.30.0) - Added [`URL.canParse` method](https://url.spec.whatwg.org/#dom-url-canparse), [url/763](https://togithub.com/whatwg/url/pull/763) - [`Set` methods proposal](https://togithub.com/tc39/proposal-set-methods): - Removed sort from `Set.prototype.intersection`, [March 2023 TC39 meeting](https://togithub.com/babel/proposals/issues/87#issuecomment-1478610425), [proposal-set-methods/94](https://togithub.com/tc39/proposal-set-methods/pull/94) - Iterator Helpers proposals ([sync](https://togithub.com/tc39/proposal-iterator-helpers), [async](https://togithub.com/tc39/proposal-async-iterator-helpers)): - Validate arguments before opening iterator, [March 2023 TC39 meeting](https://togithub.com/babel/proposals/issues/87#issuecomment-1478412430), [proposal-iterator-helpers/265](https://togithub.com/tc39/proposal-iterator-helpers/pull/265) - Explicit Resource Management proposals ([sync](https://togithub.com/tc39/proposal-explicit-resource-management), [async](https://togithub.com/tc39/proposal-async-explicit-resource-management)): - `(Async)DisposableStack.prototype.move` marks the original stack as disposed, [#1226](https://togithub.com/zloirock/core-js/issues/1226) - Some simplifications like [proposal-explicit-resource-management/150](https://togithub.com/tc39/proposal-explicit-resource-management/pull/150) - [`Iterator.range` proposal](https://togithub.com/tc39/proposal-Number.range): - Moved to Stage 2, [March 2023 TC39 meeting](https://togithub.com/babel/proposals/issues/87#issuecomment-1480266760) - [Decorator Metadata proposal](https://togithub.com/tc39/proposal-decorator-metadata): - Returned to usage `Symbol.metadata`, [March 2023 TC39 meeting](https://togithub.com/babel/proposals/issues/87#issuecomment-1478790137), [proposal-decorator-metadata/12](https://togithub.com/tc39/proposal-decorator-metadata/pull/12) - Compat data improvements: - [`URLSearchParams.prototype.size`](https://togithub.com/whatwg/url/pull/734) 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`](https://togithub.com/zloirock/core-js/blob/HEAD/CHANGELOG.md#3291---20230313) [Compare Source](https://togithub.com/zloirock/core-js/compare/v3.29.0...v3.29.1) - Fixed dependencies of some entries - Fixed `ToString` conversion / built-ins nature of some accessors - [`String.prototype.{ isWellFormed, toWellFormed }`](https://togithub.com/tc39/proposal-is-usv-string) marked as supported from V8 ~ Chrome 111 - Added Opera Android 74 compat data mapping ### [`v3.29.0`](https://togithub.com/zloirock/core-js/blob/HEAD/CHANGELOG.md#3290---20230227) [Compare Source](https://togithub.com/zloirock/core-js/compare/v3.28.0...v3.29.0) - Added `URLSearchParams.prototype.size` getter, [url/734](https://togithub.com/whatwg/url/pull/734) - Allowed cloning resizable `ArrayBuffer`s in the `structuredClone` polyfill - Fixed wrong export in `/(stable|actual|full)/instance/unshift` entries, [#1207](https://togithub.com/zloirock/core-js/issues/1207) - Compat data improvements: - [`Set` methods proposal](https://togithub.com/tc39/proposal-set-methods) 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`](https://togithub.com/zloirock/core-js/blob/HEAD/CHANGELOG.md#3280---20230214) [Compare Source](https://togithub.com/zloirock/core-js/compare/v3.27.2...v3.28.0) ##### [3.28.0 - 2023.02.14](https://togithub.com/zloirock/core-js/releases/tag/v3.28.0) ### [`v3.27.2`](https://togithub.com/zloirock/core-js/blob/HEAD/CHANGELOG.md#3272---20230119) [Compare Source](https://togithub.com/zloirock/core-js/compare/v3.27.1...v3.27.2) - [`Set` methods proposal](https://togithub.com/tc39/proposal-set-methods) updates: - Closing of iterators of `Set`-like objects on early exit, [proposal-set-methods/85](https://togithub.com/tc39/proposal-set-methods/pull/85) - Some other minor internal changes - Added one more workaround of a `webpack` dev server bug on IE global methods, [#1161](https://togithub.com/zloirock/core-js/issues/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](https://togithub.com/tc39/proposal-change-array-by-copy) 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](https://togithub.com/denoland/deno/pull/17362) - Minor tweaks of minification settings for `core-js-bundle` - Refactoring, some minor fixes, improvements, optimizations ### [`v3.27.1`](https://togithub.com/zloirock/core-js/blob/HEAD/CHANGELOG.md#3271---20221230) [Compare Source](https://togithub.com/zloirock/core-js/compare/v3.27.0...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`](https://togithub.com/zloirock/core-js/blob/HEAD/CHANGELOG.md#3270---20221226) [Compare Source](https://togithub.com/zloirock/core-js/compare/v3.26.1...v3.27.0) - [Iterator Helpers](https://togithub.com/tc39/proposal-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](https://togithub.com/babel/proposals/issues/85#issuecomment-1333474304) - 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](https://togithub.com/tc39/proposal-iterator-helpers/pull/244), [proposal-iterator-helpers/250](https://togithub.com/tc39/proposal-iterator-helpers/pull/250) - `.from` and `.flatMap` throws on non-object *iterators*, [proposal-iterator-helpers/253](https://togithub.com/tc39/proposal-iterator-helpers/pull/253) - [`Set` methods proposal](https://togithub.com/tc39/proposal-set-methods): - 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](https://togithub.com/babel/proposals/issues/85#issuecomment-1332175557) - Reimplemented with [new semantics](https://tc39.es/proposal-set-methods/): - Optimized performance (iteration over lowest set) - Accepted only `Set`-like objects as an argument, not all iterables - Accepted only `Set`s 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](https://togithub.com/tc39/proposal-is-usv-string) proposal: - Methods: - `String.prototype.isWellFormed` - `String.prototype.toWellFormed` - Moved to Stage 3, [November 2022 TC39 meeting](https://togithub.com/babel/proposals/issues/85#issuecomment-1332180862) - Added `/actual/` entries, disabled unconditional forced replacement - [Explicit resource management](https://togithub.com/tc39/proposal-explicit-resource-management) Stage 3 and [Async explicit resource management](https://togithub.com/tc39/proposal-async-explicit-resource-management) Stage 2 proposals: - Renamed from "`using` statement" and [split into 2 (sync and async) proposals](https://togithub.com/tc39/proposal-explicit-resource-management/pull/131) - 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](https://togithub.com/babel/proposals/issues/85#issuecomment-1333747094) - Added `/actual/` namespace entries for Stage 3 proposal - Added [`String.dedent` stage 2 proposal](https://togithub.com/tc39/proposal-string-dedent) - Method `String.dedent` - Throws an error on non-frozen raw templates for avoiding possible breaking changes in the future, [proposal-string-dedent/75](https://togithub.com/tc39/proposal-string-dedent/issues/75) - [Compat data targets](/packages/core-js-compat#targets-option) improvements: - [React Native from 0.70 shipped with Hermes as the default engine.](https://reactnative.dev/blog/2022/07/08/hermes-as-the-default) However, bundled Hermes versions differ from standalone Hermes releases. So added **`react-native`** target for React Native with bundled Hermes. - [According to the documentation](https://developer.oculus.com/documentation/web/browser-intro/), 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: - [`Array.fromAsync`](https://togithub.com/tc39/proposal-array-from-async) marked as supported from Bun 0.3.0 - [`String.prototype.{ isWellFormed, toWellFormed }`](https://togithub.com/tc39/proposal-is-usv-string) marked as supported from Bun 0.4.0 - [Change `Array` by copy proposal](https://togithub.com/tc39/proposal-change-array-by-copy) marked as supported from Deno 1.27, [deno/16429](https://togithub.com/denoland/deno/pull/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](https://tc39.es/proposal-upsert/) - Smoothed behavior of some conflicting proposals - Removed some generic behavior (like `@@species` pattern) of some `.prototype` methods from the [new collections methods proposal](https://togithub.com/tc39/proposal-collection-methods) and the [`Array` deduplication proposal](https://togithub.com/tc39/proposal-array-unique) that *most likely* will not be implemented since it contradicts the current TC39 policy - Added pure version of the `Number` constructor, [#1154](https://togithub.com/zloirock/core-js/issues/1154), [#1155](https://togithub.com/zloirock/core-js/issues/1155), thanks [@trosos](https://togithub.com/trosos) - Added `set(Timeout|Interval|Immediate)` extra arguments fix for Bun 0.3.0- (similarly to IE9-), [bun/1633](https://togithub.com/oven-sh/bun/issues/1633) - Fixed handling of sparse arrays in `structuredClone`, [#1156](https://togithub.com/zloirock/core-js/issues/1156) - Fixed a theoretically possible future conflict of polyfills definitions in the pure version - Some refactoring and optimization ### [`v3.26.1`](https://togithub.com/zloirock/core-js/blob/HEAD/CHANGELOG.md#3261---20221114) [Compare Source](https://togithub.com/zloirock/core-js/compare/v3.26.0...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](https://togithub.com/zloirock/core-js/issues/1141) - V8 will not ship `Array.prototype.{ group, groupToMap }` in V8 ~ Chromium 108, [proposal-array-grouping/44](https://togithub.com/tc39/proposal-array-grouping/issues/44#issuecomment-1306311107) ### [`v3.26.0`](https://togithub.com/zloirock/core-js/blob/HEAD/CHANGELOG.md#3260---20221024) [Compare Source](https://togithub.com/zloirock/core-js/compare/v3.25.5...v3.26.0) - [`Array.fromAsync` proposal](https://togithub.com/tc39/proposal-array-from-async): - Moved to Stage 3, [September TC39 meeting](https://togithub.com/tc39/notes/blob/main/meetings/2022-09/sep-14.md#arrayfromasync-for-stage-3) - Avoid observable side effects of `%Array.prototype.values%` usage in array-like branch, [proposal-array-from-async/30](https://togithub.com/tc39/proposal-array-from-async/pull/30) - Added [well-formed unicode strings stage 2 proposal](https://togithub.com/tc39/proposal-is-usv-string): - `String.prototype.isWellFormed` - `String.prototype.toWellFormed` - Recent updates of the [iterator helpers proposal](https://togithub.com/tc39/proposal-iterator-helpers): - Added a counter parameter to helpers, [proposal-iterator-helpers/211](https://togithub.com/tc39/proposal-iterator-helpers/pull/211) - Don't await non-objects returned from functions passed to `AsyncIterator` helpers, [proposal-iterator-helpers/239](https://togithub.com/tc39/proposal-iterator-helpers/pull/239) - `{ Iterator, AsyncIterator }.prototype.flatMap` supports returning both - iterables and iterators, [proposal-iterator-helpers/233](https://togithub.com/tc39/proposal-iterator-helpers/pull/233) - Early exit on broken `.next` in missed cases of `{ Iterator, AsyncIterator }.from`, [proposal-iterator-helpers/232](https://togithub.com/tc39/proposal-iterator-helpers/pull/232) - Added `self` polyfill as a part of [The Minimum Common Web Platform API](https://common-min-api.proposal.wintercg.org/), [specification](https://html.spec.whatwg.org/multipage/window-object.html#dom-self), [#1118](https://togithub.com/zloirock/core-js/issues/1118) - Added `inverse` option to `core-js-compat`, [#1119](https://togithub.com/zloirock/core-js/issues/1119) - Added `format` option to `core-js-builder`, [#1120](https://togithub.com/zloirock/core-js/issues/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`](https://togithub.com/zloirock/core-js/blob/HEAD/CHANGELOG.md#3255---20221004) [Compare Source](https://togithub.com/zloirock/core-js/compare/v3.25.4...v3.25.5) - Fixed regression with an error on reuse of some built-in methods from another realm, [#1133](https://togithub.com/zloirock/core-js/issues/1133) ### [`v3.25.4`](https://togithub.com/zloirock/core-js/blob/HEAD/CHANGELOG.md#3254---20221003) [Compare Source](https://togithub.com/zloirock/core-js/compare/v3.25.3...v3.25.4) - Added a workaround of a Nashorn bug with `Function.prototype.{ call, apply, bind }` on string methods, [#1128](https://togithub.com/zloirock/core-js/issues/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](https://chromestatus.com/feature/5714791975878656) - Added Electron 22 compat data mapping ### [`v3.25.3`](https://togithub.com/zloirock/core-js/blob/HEAD/CHANGELOG.md#3253---20220926) [Compare Source](https://togithub.com/zloirock/core-js/compare/v3.25.2...v3.25.3) - 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`](https://togithub.com/zloirock/core-js/blob/HEAD/CHANGELOG.md#3252---20220919) [Compare Source](https://togithub.com/zloirock/core-js/compare/v3.25.1...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`](https://togithub.com/zloirock/core-js/blob/HEAD/CHANGELOG.md#3251---20220908) [Compare Source](https://togithub.com/zloirock/core-js/compare/v3.25.0...v3.25.1) - 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](https://togithub.com/zloirock/core-js/issues/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](https://togithub.com/npm/node-semver/commit/d61f828e64260a0a097f26210f5500), 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`](https://togithub.com/zloirock/core-js/blob/HEAD/CHANGELOG.md#3250---20220825) [Compare Source](https://togithub.com/zloirock/core-js/compare/v3.24.1...v3.25.0) - Added [`Object.prototype.__proto__`](https://tc39.es/ecma262/#sec-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](https://togithub.com/denoland/deno/issues/13321), 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](https://tc39.es/ecma262/#sec-IsHTMLDDA-internal-slot) - Avoiding unnecessary promise creation and validation result in `%WrapForValid(Async)IteratorPrototype%.return`, [proposal-iterator-helpers/215](https://togithub.com/tc39/proposal-iterator-helpers/pull/215) - Fixed omitting the result of proxing `.return` in `%IteratorHelperPrototype%.return`, [#1116](https://togithub.com/zloirock/core-js/issues/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](https://togithub.com/zloirock/core-js/issues/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`](https://togithub.com/zloirock/core-js/blob/HEAD/CHANGELOG.md#3241---20220730) [Compare Source](https://togithub.com/zloirock/core-js/compare/v3.24.0...v3.24.1) - NodeJS is ignored in `IS_BROWSER` detection to avoid a false positive with `jsdom`, [#1110](https://togithub.com/zloirock/core-js/issues/1110) - Fixed detection of `@@species` support in `Promise` in some old engines - `{ Array, %TypedArray% }.prototype.{ findLast, findLastIndex }` marked as shipped [in FF104](https://bugzilla.mozilla.org/show_bug.cgi?id=1775026) - Added iOS Safari 15.6 compat data mapping - Fixed Opera 15 compat data mapping ### [`v3.24.0`](https://togithub.com/zloirock/core-js/blob/HEAD/CHANGELOG.md#3240---20220725) [Compare Source](https://togithub.com/zloirock/core-js/compare/v3.23.5...v3.24.0) - Recent updates of the [iterator helpers proposal](https://togithub.com/tc39/proposal-iterator-helpers), [#1101](https://togithub.com/zloirock/core-js/issues/1101): - `.asIndexedPairs` renamed to `.indexed`, [proposal-iterator-helpers/183](https://togithub.com/tc39/proposal-iterator-helpers/pull/183): - `Iterator.prototype.asIndexedPairs` -> `Iterator.prototype.indexed` - `AsyncIterator.prototype.asIndexedPairs` -> `AsyncIterator.prototype.indexed` - Avoid exposing spec fiction `%AsyncFromSyncIteratorPrototype%` in `AsyncIterator.from` and `Iterator.prototype.toAsync`, [proposal-iterator-helpers/182](https://togithub.com/tc39/proposal-iterator-helpers/pull/182), [proposal-iterator-helpers/202](https://togithub.com/tc39/proposal-iterator-helpers/pull/202) - Avoid unnecessary promise creation in `%WrapForValidAsyncIteratorPrototype%.next`, [proposal-iterator-helpers/197](https://togithub.com/tc39/proposal-iterator-helpers/pull/197) - Do not validate value in `%WrapForValid(Async)IteratorPrototype%.next`, [proposal-iterator-helpers/197](https://togithub.com/tc39/proposal-iterator-helpers/pull/197) and [proposal-iterator-helpers/205](https://togithub.com/tc39/proposal-iterator-helpers/pull/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](https://togithub.com/tc39/proposal-iterator-helpers/pull/194) - `.throw` methods removed from all wrappers / helpers prototypes, a part of [proposal-iterator-helpers/194](https://togithub.com/tc39/proposal-iterator-helpers/pull/194) - Close inner iterators of `{ Iterator, AsyncIterator }.prototype.flatMap` proxy iterators on `.return`, [proposal-iterator-helpers/195](https://togithub.com/tc39/proposal-iterator-helpers/pull/195) - Throw `RangeError` on `NaN` in `{ Iterator, AsyncIterator }.prototype.{ drop, take }`, [proposal-iterator-helpers/181](https://togithub.com/tc39/proposal-iterator-helpers/pull/181) - Many other updates and fixes of this proposal - `%TypedArray%.prototype.toSpliced` method removed from the [change array by copy proposal](https://togithub.com/tc39/proposal-change-array-by-copy) and marked as obsolete in `core-js`, [proposal-change-array-by-copy/88](https://togithub.com/tc39/proposal-change-array-by-copy/issues/88) - Polyfill `Promise` with `unhandledrejection` event support (browser style) in Deno < [1.24](https://togithub.com/denoland/deno/releases/tag/v1.24.0) - Available new targets in `core-js-compat` / `core-js-builder` and added compat data for them: - Bun (`bun`), compat data for 0.1.1-0.1.5, [#1103](https://togithub.com/zloirock/core-js/issues/1103) - Hermes (`hermes`), compat data for 0.1-0.11, [#1099](https://togithub.com/zloirock/core-js/issues/1099) - Oculus Browser (`oculus`), compat data mapping for 3.0-22.0, [#1098](https://togithub.com/zloirock/core-js/issues/1098) - Added Samsung Internet 18.0 compat data mapping ### [`v3.23.5`](https://togithub.com/zloirock/core-js/blob/HEAD/CHANGELOG.md#3235---20220718) [Compare Source](https://togithub.com/zloirock/core-js/compare/v3.23.4...v3.23.5) - Fixed a typo in the `structuredClone` feature detection, [#1106](https://togithub.com/zloirock/core-js/issues/1106) - Added Opera Android 70 compat data mapping ### [`v3.23.4`](https://togithub.com/zloirock/core-js/blob/HEAD/CHANGELOG.md#3234---20220710) [Compare Source](https://togithub.com/zloirock/core-js/compare/v3.23.3...v3.23.4) - Added a workaround of the Bun ~ 0.1.1 [bug](https://togithub.com/Jarred-Sumner/bun/issues/399) 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](https://bugzilla.mozilla.org/show_bug.cgi?id=1774866) (fixed in FF104) and [1777321](https://bugzilla.mozilla.org/show_bug.cgi?id=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](https://togithub.com/zloirock/core-js/issues/1102) - Fixed order of errors throwing on iterator helpers ### [`v3.23.3`](https://togithub.com/zloirock/core-js/blob/HEAD/CHANGELOG.md#3233---20220626) [Compare Source](https://togithub.com/zloirock/core-js/compare/v3.23.2...v3.23.3) - Changed the order of operations in `%TypedArray%.prototype.toSpliced` following [proposal-change-array-by-copy/89](https://togithub.com/tc39/proposal-change-array-by-copy/issues/89) - Fixed regression of some IE8- issues ### [`v3.23.2`](https://togithub.com/zloirock/core-js/blob/HEAD/CHANGELOG.md#3232---20220621) [Compare Source](https://togithub.com/zloirock/core-js/compare/v3.23.1...v3.23.2) - Avoided creation of extra properties for the handling of `%TypedArray%` constructors in new methods, [#1092 (comment)](https://togithub.com/zloirock/core-js/issues/1092#issuecomment-1158760512) - Added Deno 1.23 compat data mapping ### [`v3.23.1`](https://togithub.com/zloirock/core-js/blob/HEAD/CHANGELOG.md#3231---20220614) [Compare Source](https://togithub.com/zloirock/core-js/compare/v3.23.0...v3.23.1) - Fixed possible error on multiple `core-js` copies, [#1091](https://togithub.com/zloirock/core-js/issues/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`](https://togithub.com/zloirock/core-js/blob/HEAD/CHANGELOG.md#3230---20220614) [Compare Source](https://togithub.com/zloirock/core-js/compare/v3.22.8...v3.23.0) - [`Array` find from last](https://togithub.com/tc39/proposal-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](https://togithub.com/tc39/proposal-array-grouping) [renamed](https://togithub.com/tc39/proposal-array-grouping/pull/39), 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](https://togithub.com/tc39/proposal-change-array-by-copy/issues/86), according to June 2022 TC39 meeting - [Decorator Metadata proposal](https://togithub.com/tc39/proposal-decorator-metadata) extracted from [Decorators proposal](https://togithub.com/tc39/proposal-decorators) 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](https://togithub.com/zloirock/core-js/issues/679) - Added detection of NodeJS [bug](https://togithub.com/nodejs/node/issues/41038) 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`](https://togithub.com/zloirock/core-js/blob/HEAD/CHANGELOG.md#3228---20220602) [Compare Source](https://togithub.com/zloirock/core-js/compare/v3.22.7...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 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`](https://togithub.com/zloirock/core-js/blob/HEAD/CHANGELOG.md#3227---20220524) [Compare Source](https://togithub.com/zloirock/core-js/compare/v3.22.6...v3.22.7) - Added a workaround for V8 ~ Chrome 53 bug with non-writable prototype of some methods, [#1083](https://togithub.com/zloirock/core-js/issues/1083) ### [`v3.22.6`](https://togithub.com/zloirock/core-js/blob/HEAD/CHANGELOG.md#3226---20220523) [Compare Source](https://togithub.com/zloirock/core-js/compare/v3.22.5...v3.22.6) - Fixed possible double call of `ToNumber` conversion on arguments of `Math.{ fround, trunc }` polyfills - `Array.prototype.includes` marked as [fixed](https://bugzilla.mozilla.org/show_bug.cgi?id=1767541) in FF102 ### [`v3.22.5`](https://togithub.com/zloirock/core-js/blob/HEAD/CHANGELOG.md#3225---20220510) [Compare Source](https://togithub.com/zloirock/core-js/compare/v3.22.4...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](https://bugs.chromium.org/p/v8/issues/detail?id=12542) of `struturedClone` that returns `null` if cloned object contains multiple references to one error ### [`v3.22.4`](https://togithub.com/zloirock/core-js/blob/HEAD/CHANGELOG.md#3224---20220503) [Compare Source](https://togithub.com/zloirock/core-js/compare/v3.22.3...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`](https://togithub.com/zloirock/core-js/blob/HEAD/CHANGELOG.md#3223---20220428) [Compare Source](https://togithub.com/zloirock/core-js/compare/v3.22.2...v3.22.3) - Added a fix for FF99+ `Array.prototype.includes` broken on sparse arrays ### [`v3.22.2`](https://togithub.com/zloirock/core-js/blob/HEAD/CHANGELOG.md#3222---20220421) [Compare Source](https://togithub.com/zloirock/core-js/compare/v3.22.1...v3.22.2) - Fixed `URLSearchParams` in IE8- that was broken in the previous release - Fixed `__lookupGetter__` entries ### [`v3.22.1`](https://togithub.com/zloirock/core-js/blob/HEAD/CHANGELOG.md#3221---20220420) [Compare Source](https://togithub.com/zloirock/core-js/compare/v3.22.0...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`](https://togithub.com/zloirock/core-js/blob/HEAD/CHANGELOG.md#3220---20220415) [Compare Source](https://togithub.com/zloirock/core-js/compare/v3.21.1...v3.22.0) - [Change `Array` by copy proposal](https://togithub.com/tc39/proposal-change-array-by-copy): - Moved to Stage 3, [March TC39 meeting](https://togithub.com/babel/proposals/issues/81#issuecomment-1083449843) - 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](https://togithub.com/tc39/proposal-change-array-by-copy/pull/70) - Added some more `atob` / `btoa` fixes: - NodeJS <17.9 `atob` does not ignore spaces, [node/42530](https://togithub.com/nodejs/node/issues/42530) - Actual NodeJS `atob` does not validate encoding, [node/42646](https://togithub.com/nodejs/node/issues/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 andConfiguration
📅 Schedule: Branch creation - At any time (no schedule defined), Automerge - At any time (no schedule defined).
🚦 Automerge: Enabled.
♻ Rebasing: Whenever PR becomes conflicted, or you tick the rebase/retry checkbox.
🔕 Ignore: Close this PR and you won't be reminded about this update again.
This PR has been generated by Mend Renovate. View repository job log here.