zloirock/core-js (core-js)
### [`v3.38.1`](https://togithub.com/zloirock/core-js/blob/HEAD/CHANGELOG.md#3381---20240820)
[Compare Source](https://togithub.com/zloirock/core-js/compare/v3.38.0...v3.38.1)
- Changes [v3.38.0...v3.38.1](https://togithub.com/zloirock/core-js/compare/v3.38.0...v3.38.1)
- Fixed some cases of `URLSearchParams` percent decoding, [#1357](https://togithub.com/zloirock/core-js/issues/1357), [#1361](https://togithub.com/zloirock/core-js/pull/1361), thanks [**@slowcheetah**](https://togithub.com/slowcheetah)
- Some stylistic changes and minor optimizations
- Compat data improvements:
- [`Iterator` helpers proposal](https://togithub.com/tc39/proposal-iterator-helpers) methods marked as [shipped from FF131](https://bugzilla.mozilla.org/show_bug.cgi?id=1896390)
- [`Math.f16round` and `DataView.prototype.{ getFloat16, setFloat16 }`](https://togithub.com/tc39/proposal-float16array) marked as shipped from Bun 1.1.23
- [`RegExp.escape`](https://togithub.com/tc39/proposal-regex-escaping) marked as shipped from Bun 1.1.22
- [`Promise.try`](https://togithub.com/tc39/proposal-promise-try) marked as shipped from Bun 1.1.22
- [`Uint8Array` to / from base64 and hex proposal](https://togithub.com/tc39/proposal-arraybuffer-base64) methods marked as shipped from Bun 1.1.22
- Added Hermes 0.13 compat data, similar to React Native 0.75 Hermes
- Added Opera Android 84 compat data mapping
### [`v3.38.0`](https://togithub.com/zloirock/core-js/blob/HEAD/CHANGELOG.md#3380---20240805)
[Compare Source](https://togithub.com/zloirock/core-js/compare/v3.37.1...v3.38.0)
- Changes [v3.37.1...v3.38.0](https://togithub.com/zloirock/core-js/compare/v3.37.1...v3.38.0)
- [`RegExp.escape` proposal](https://togithub.com/tc39/proposal-regex-escaping):
- Built-ins:
- `RegExp.escape`
- Moved to stage 3, [June 2024](https://togithub.com/tc39/proposals/commit/4b8ee265248abfa2c88ed71b3c541ddd5a2eaffe) and [July 2024](https://togithub.com/tc39/proposals/commit/bdb2eea6c5e41a52f2d6047d7de1a31b5d188c4f) TC39 meetings
- Updated the way of escaping, [regex-escaping/77](https://togithub.com/tc39/proposal-regex-escaping/pull/77)
- Throw an error on non-strings, [regex-escaping/58](https://togithub.com/tc39/proposal-regex-escaping/pull/58)
- Added `/actual/` namespace entries, unconditional forced replacement changed to feature detection
- [`Promise.try` proposal](https://togithub.com/tc39/proposal-promise-try):
- Built-ins:
- `Promise.try`
- Moved to stage 3, [June 2024 TC39 meeting](https://togithub.com/tc39/proposals/commit/de20984cd7f7bc616682c557cb839abc100422cb)
- Added `/actual/` namespace entries, unconditional forced replacement changed to feature detection
- [`Uint8Array` to / from base64 and hex stage 3 proposal](https://togithub.com/tc39/proposal-arraybuffer-base64):
- Built-ins:
- `Uint8Array.fromBase64`
- `Uint8Array.fromHex`
- `Uint8Array.prototype.setFromBase64`
- `Uint8Array.prototype.setFromHex`
- `Uint8Array.prototype.toBase64`
- `Uint8Array.prototype.toHex`
- Added `Uint8Array.prototype.{ setFromBase64, setFromHex }` methods
- Added `Uint8Array.fromBase64` and `Uint8Array.prototype.setFromBase64` `lastChunkHandling` option, [proposal-arraybuffer-base64/33](https://togithub.com/tc39/proposal-arraybuffer-base64/pull/33)
- Added `Uint8Array.prototype.toBase64` `omitPadding` option, [proposal-arraybuffer-base64/60](https://togithub.com/tc39/proposal-arraybuffer-base64/pull/60)
- Added throwing a `TypeError` on arrays backed by detached buffers
- Unconditional forced replacement changed to feature detection
- Fixed `RegExp` named capture groups polyfill in combination with non-capturing groups, [#1352](https://togithub.com/zloirock/core-js/pull/1352), thanks [**@Ulop**](https://togithub.com/Ulop)
- Improved some cases of environment detection
- Uses [`process.getBuiltinModule`](https://nodejs.org/docs/latest/api/process.html#processgetbuiltinmoduleid) for getting built-in NodeJS modules where it's available
- Uses `https` instead of `http` in `URL` constructor feature detection to avoid extra notifications from some overly vigilant security scanners, [#1345](https://togithub.com/zloirock/core-js/issues/1345)
- Some minor optimizations
- Updated `browserslist` in `core-js-compat` dependencies that fixes an upstream issue with incorrect interpretation of some `browserslist` queries, [#1344](https://togithub.com/zloirock/core-js/issues/1344), [browserslist/829](https://togithub.com/browserslist/browserslist/issues/829), [browserslist/836](https://togithub.com/browserslist/browserslist/pull/836)
- Compat data improvements:
- Added [Safari 18.0](https://webkit.org/blog/15443/news-from-wwdc24-webkit-in-safari-18-beta/) compat data:
- Fixed [`Object.groupBy` and `Map.groupBy`](https://togithub.com/tc39/proposal-array-grouping) to [work for non-objects](https://bugs.webkit.org/show_bug.cgi?id=271524)
- Fixed [throwing a `RangeError` if `Set` methods are called on an object with negative size property](https://bugs.webkit.org/show_bug.cgi?id=267494)
- Fixed [`Set.prototype.symmetricDifference` to call `this.has` in each iteration](https://bugs.webkit.org/show_bug.cgi?id=272679)
- Fixed [`Array.fromAsync`](https://togithub.com/tc39/proposal-array-from-async) to [not call the `Array` constructor twice](https://bugs.webkit.org/show_bug.cgi?id=271703)
- Added [`URL.parse`](https://url.spec.whatwg.org/#dom-url-parse)
- [`Math.f16round` and `DataView.prototype.{ getFloat16, setFloat16 }`](https://togithub.com/tc39/proposal-float16array) marked as [shipped from FF129](https://bugzilla.mozilla.org/show_bug.cgi?id=1903329)
- [`Symbol.asyncDispose`](https://togithub.com/tc39/proposal-explicit-resource-management) added and marked as supported from V8 ~ Chromium 127
- [`Promise.try`](https://togithub.com/tc39/proposal-promise-try) added and marked as supported [from V8 ~ Chromium 128](https://chromestatus.com/feature/6315704705089536)
- Added Deno [1.44](https://togithub.com/denoland/deno/releases/tag/v1.44.0) and [1.45](https://togithub.com/denoland/deno/releases/tag/v1.45.0) compat data mapping
- `self` descriptor [is broken in Deno 1.45.3](https://togithub.com/denoland/deno/issues/24683) (again)
- Added Electron 32 and 33 compat data mapping
- Added [Opera Android 83](https://forums.opera.com/topic/72570/opera-for-android-83) compat data mapping
- Added Samsung Internet 27 compat data mapping
- Added Oculus Quest Browser 34 compat data mapping
### [`v3.37.1`](https://togithub.com/zloirock/core-js/blob/HEAD/CHANGELOG.md#3371---20240514)
[Compare Source](https://togithub.com/zloirock/core-js/compare/v3.37.0...v3.37.1)
- Changes [v3.37.0...v3.37.1](https://togithub.com/zloirock/core-js/compare/v3.37.0...v3.37.1)
- Fixed [`URL.parse`](https://url.spec.whatwg.org/#dom-url-parse) feature detection for some specific cases
- Compat data improvements:
- [`Set` methods proposal](https://togithub.com/tc39/proposal-set-methods) added and marked as [supported from FF 127](https://bugzilla.mozilla.org/show_bug.cgi?id=1868423)
- [`Symbol.dispose`](https://togithub.com/tc39/proposal-explicit-resource-management) added and marked as supported from V8 ~ Chromium 125
- [`Math.f16round` and `DataView.prototype.{ getFloat16, setFloat16 }`](https://togithub.com/tc39/proposal-float16array) added and marked as [supported from Deno 1.43](https://togithub.com/denoland/deno/pull/23490)
- [`URL.parse`](https://url.spec.whatwg.org/#dom-url-parse) added and marked as [supported from Chromium 126](https://chromestatus.com/feature/6301071388704768)
- [`URL.parse`](https://url.spec.whatwg.org/#dom-url-parse) added and marked as [supported from NodeJS 22.0](https://togithub.com/nodejs/node/pull/52280)
- [`URL.parse`](https://url.spec.whatwg.org/#dom-url-parse) added and marked as [supported from Deno 1.43](https://togithub.com/denoland/deno/pull/23318)
- Added [Rhino 1.7.15](https://togithub.com/mozilla/rhino/releases/tag/Rhino1\_7\_15\_Release) compat data, many features marked as supported
- Added [NodeJS 22.0](https://nodejs.org/en/blog/release/v22.0.0) compat data mapping
- Added [Deno 1.43](https://togithub.com/denoland/deno/releases/tag/v1.43.0) compat data mapping
- Added Electron 31 compat data mapping
- Updated [Opera Android 82](https://forums.opera.com/topic/71513/opera-for-android-82) compat data mapping
- Added Samsung Internet 26 compat data mapping
- Added Oculus Quest Browser 33 compat data mapping
### [`v3.37.0`](https://togithub.com/zloirock/core-js/blob/HEAD/CHANGELOG.md#3370---20240417)
[Compare Source](https://togithub.com/zloirock/core-js/compare/v3.36.1...v3.37.0)
- Changes [v3.36.1...v3.37.0](https://togithub.com/zloirock/core-js/compare/v3.36.1...v3.37.0)
- [New `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 stable ES, [April 2024 TC39 meeting](https://togithub.com/tc39/proposals/commit/bda5a6bccbaca183e193f9e680889ea5b5462ce4)
- Added `es.` namespace modules, `/es/` and `/stable/` namespaces entries
- [Explicit Resource Management stage 3 proposal](https://togithub.com/tc39/proposal-explicit-resource-management)
- Some minor updates like [explicit-resource-management/217](https://togithub.com/tc39/proposal-explicit-resource-management/pull/217)
- Added [`Math.sumPrecise` stage 2.7 proposal](https://togithub.com/tc39/proposal-math-sum/):
- Built-ins:
- `Math.sumPrecise`
- [`Promise.try` proposal](https://togithub.com/tc39/proposal-promise-try):
- Built-ins:
- `Promise.try`
- Added optional arguments support, [promise-try/16](https://togithub.com/tc39/proposal-promise-try/pull/16)
- Moved to stage 2.7, [April 2024 TC39 meeting](https://togithub.com/tc39/proposals/commit/301fc9c7eef2344d2b443f32a9c24ecd5fbdbec0)
- [`RegExp.escape` stage 2 proposal](https://togithub.com/tc39/proposal-regex-escaping):
- Moved to hex-escape semantics, [regex-escaping/67](https://togithub.com/tc39/proposal-regex-escaping/pull/67)
- It's not the final change of the way of escaping, waiting for [regex-escaping/77](https://togithub.com/tc39/proposal-regex-escaping/pull/77) soon
- [Pattern matching stage 1 proposal](https://togithub.com/tc39/proposal-pattern-matching):
- Built-ins:
- `Symbol.customMatcher`
- Once again, [the used well-known symbol was renamed](https://togithub.com/tc39/proposal-pattern-matching/pull/295)
- Added new entries for that
- Added [Extractors stage 1 proposal](https://togithub.com/tc39/proposal-extractors):
- Built-ins:
- `Symbol.customMatcher`
- Since the `Symbol.customMatcher` well-known symbol from the pattern matching proposal is also used in the exactors proposal, added an entry also for this proposal
- Added [`URL.parse`](https://url.spec.whatwg.org/#dom-url-parse), [url/825](https://togithub.com/whatwg/url/pull/825)
- Engines bugs fixes:
- Added a fix of [Safari `{ Object, Map }.groupBy` bug that does not support iterable primitives](https://bugs.webkit.org/show_bug.cgi?id=271524)
- Added a fix of [Safari bug with double call of constructor in `Array.fromAsync`](https://bugs.webkit.org/show_bug.cgi?id=271703)
- Compat data improvements:
- [`URL.parse`](https://url.spec.whatwg.org/#dom-url-parse) added and marked as supported [from FF 126](https://bugzilla.mozilla.org/show_bug.cgi?id=1887611)
- [`URL.parse`](https://url.spec.whatwg.org/#dom-url-parse) added and marked as supported [from Bun 1.1.4](https://togithub.com/oven-sh/bun/pull/10129)
- [`URL.canParse`](https://url.spec.whatwg.org/#dom-url-canparse) fixed and marked as supported [from Bun 1.1.0](https://togithub.com/oven-sh/bun/pull/9710)
- [New `Set` methods](https://togithub.com/tc39/proposal-set-methods) fixed in JavaScriptCore and marked as supported from Bun 1.1.1
- Added Opera Android 82 compat data mapping
### [`v3.36.1`](https://togithub.com/zloirock/core-js/blob/HEAD/CHANGELOG.md#3361---20240319)
[Compare Source](https://togithub.com/zloirock/core-js/compare/v3.36.0...v3.36.1)
- Changes [v3.36.0...v3.36.1](https://togithub.com/zloirock/core-js/compare/v3.36.0...v3.36.1)
- Fixed some validation cases in `Object.setPrototypeOf`, [#1329](https://togithub.com/zloirock/core-js/issues/1329), thanks [**@minseok-choe**](https://togithub.com/minseok-choe)
- Fixed the order of validations in `Array.from`, [#1331](https://togithub.com/zloirock/core-js/pull/1331), thanks [**@minseok-choe**](https://togithub.com/minseok-choe)
- Added a fix of [Bun `queueMicrotask` arity](https://togithub.com/oven-sh/bun/issues/9249)
- Added a fix of [Bun `URL.canParse` arity](https://togithub.com/oven-sh/bun/issues/9250)
- Added a fix of Bun `SuppressedError` [extra arguments support](https://togithub.com/oven-sh/bun/issues/9283) and [arity](https://togithub.com/oven-sh/bun/issues/9282)
- Compat data improvements:
- [`value` argument of `URLSearchParams.prototype.{ has, delete }`](https://url.spec.whatwg.org/#dom-urlsearchparams-delete) marked as supported [from Bun 1.0.31](https://togithub.com/oven-sh/bun/issues/9263)
- Added React Native 0.74 Hermes compat data, `Array.prototype.{ toSpliced, toReversed, with }` and `atob` marked as supported
- Added Deno 1.41.3 compat data mapping
- Added Opera Android 81 compat data mapping
- Added Samsung Internet 25 compat data mapping
- Added Oculus Quest Browser 32 compat data mapping
- Updated Electron 30 compat data mapping
### [`v3.36.0`](https://togithub.com/zloirock/core-js/blob/HEAD/CHANGELOG.md#3360---20240214)
[Compare Source](https://togithub.com/zloirock/core-js/compare/v3.35.1...v3.36.0)
- [`ArrayBuffer.prototype.transfer` and friends proposal](https://togithub.com/tc39/proposal-arraybuffer-transfer):
- Built-ins:
- `ArrayBuffer.prototype.detached`
- `ArrayBuffer.prototype.transfer`
- `ArrayBuffer.prototype.transferToFixedLength`
- Moved to stable ES, [Febrary 2024 TC39 meeting](https://togithub.com/tc39/proposals/commit/c84d3dde9a7d8ee4410ffa28624fc4c39247faca)
- Added `es.` namespace modules, `/es/` and `/stable/` namespaces entries
- [`Uint8Array` to / from base64 and hex proposal](https://togithub.com/tc39/proposal-arraybuffer-base64):
- Methods:
- `Uint8Array.fromBase64`
- `Uint8Array.fromHex`
- `Uint8Array.prototype.toBase64`
- `Uint8Array.prototype.toHex`
- Moved to stage 3, [Febrary 2024 TC39 meeting](https://togithub.com/tc39/proposals/commit/278ab28b8f849f2110d770e7b034b7ef59f14daf)
- Added `/actual/` namespace entries
- Skipped adding new methods of writing to existing arrays to clarification some moments
- [`Promise.try` proposal](https://togithub.com/tc39/proposal-promise-try) has been resurrected and moved to stage 2, [Febrary 2024 TC39 meeting](https://togithub.com/tc39/proposal-promise-try/issues/15)
- Added an entry point for [the new TC39 proposals stage](https://tc39.es/process-document/) - `core-js/stage/2.7` - still empty
- Fixed regression in `Set.prototype.intersection` feature detection
- Fixed a missed check in `Array.prototype.{ indexOf, lastIndexOf, includes }`, [#1325](https://togithub.com/zloirock/core-js/issues/1325), thanks [**@minseok-choe**](https://togithub.com/minseok-choe)
- Fixed a missed check in `Array.prototype.{ reduce, reduceRight }`, [#1327](https://togithub.com/zloirock/core-js/issues/1327), thanks [**@minseok-choe**](https://togithub.com/minseok-choe)
- Fixed `Array.from` and some other methods with proxy targets, [#1322](https://togithub.com/zloirock/core-js/issues/1322), thanks [**@minseok-choe**](https://togithub.com/minseok-choe)
- Fixed dependencies loading for modules from `ArrayBuffer.prototype.transfer` and friends proposal in some specific cases in IE10-
- Dropped context workaround from collection static methods entries since with current methods semantic it's no longer required
- Added instance methods polyfills to entries of collections static methods that produce collection instances
- Added missed `Date.prototype.toJSON` to `JSON.stringify` entries dependencies
- Added debugging info in some missed cases
- Compat data improvements:
- [`{ Map, Object }.groupBy`](https://togithub.com/tc39/proposal-array-grouping), [`Promise.withResolvers`](https://togithub.com/tc39/proposal-promise-with-resolvers), [`ArrayBuffer.prototype.transfer` and friends](https://togithub.com/tc39/proposal-arraybuffer-transfer) marked as supported from [Safari 17.4](https://developer.apple.com/documentation/safari-release-notes/safari-17\_4-release-notes#JavaScript)
- [New `Set` methods](https://togithub.com/tc39/proposal-set-methods) [fixed](https://bugs.chromium.org/p/v8/issues/detail?id=14559#c4) and marked as supported from V8 ~ Chrome 123
- Added [Deno 1.40](https://deno.com/blog/v1.40) compat data mapping
- `Symbol.metadata` marked as supported from [Deno 1.40.4](https://togithub.com/denoland/deno/releases/tag/v1.40.4)
- Updated Electron 30 compat data mapping
### [`v3.35.1`](https://togithub.com/zloirock/core-js/blob/HEAD/CHANGELOG.md#3351---20240121)
[Compare Source](https://togithub.com/zloirock/core-js/compare/v3.35.0...v3.35.1)
- Fixed internal `ToLength` operation with bigints, [#1318](https://togithub.com/zloirock/core-js/issues/1318)
- Removed significant redundant code from `String#split` polyfill
- Fixed setting names of methods with symbol keys in some old engines
- Minor fix of prototype methods export logic in the pure version
- Compat data improvements:
- [`Iterator` helpers proposal](https://togithub.com/tc39/proposal-iterator-helpers) methods marked as supported from V8 ~ Chrome 122
- Note that V8 ~ Chrome 122 add [`Set` methods](https://togithub.com/tc39/proposal-set-methods), but they have [a bug](https://bugs.chromium.org/p/v8/issues/detail?id=14559) [similar to Safari](https://bugs.webkit.org/show_bug.cgi?id=267494)
- `self` marked as fixed from Bun 1.0.22
- [`SuppressedError` and `Symbol.{ dispose , asyncDispose }`](https://togithub.com/tc39/proposal-explicit-resource-management) marked as [supported from Bun 1.0.23](https://bun.sh/blog/bun-v1.0.23#resource-management-is-now-supported)
- Added Oculus Quest Browser 31 compat data mapping
- Updated Electron 29 and added Electron 30 compat data mapping
### [`v3.35.0`](https://togithub.com/zloirock/core-js/blob/HEAD/CHANGELOG.md#3350---20231229)
[Compare Source](https://togithub.com/zloirock/core-js/compare/v3.34.0...v3.35.0)
- [`{ Map, Set, WeakMap, WeakSet }.{ from, of }`](https://togithub.com/tc39/proposal-setmap-offrom) became non-generic, following [this](https://togithub.com/tc39/proposal-setmap-offrom/issues/16#issuecomment-1843346541) and some other notes. Now they can be invoked without `this`, but no longer return subclass instances
- Fixed handling some cases of non-enumerable symbol keys from `Symbol` polyfill
- Removed unneeded NodeJS domains-related logic from `queueMicrotask` polyfill
- Fixed subclassing of wrapped `ArrayBuffer`
- Refactoring, many different minor optimizations
- Compat data improvements:
- [`Array.fromAsync`](https://togithub.com/tc39/proposal-array-from-async) marked as [supported from V8 ~ Chrome 121](https://bugs.chromium.org/p/v8/issues/detail?id=13321#c13)
- It seems that the ancient [`Array.prototype.push` bug](https://bugs.chromium.org/p/v8/issues/detail?id=12681) is fixed in V8 ~ Chrome 122 (Hallelujah!)
- [`ArrayBuffer.prototype.transfer` and friends proposal](https://togithub.com/tc39/proposal-arraybuffer-transfer) features marked as [supported from FF 122](https://bugzilla.mozilla.org/show_bug.cgi?id=1865103#c8) and Bun 1.0.19
- [`Object.groupBy` and `Map.groupBy`](https://togithub.com/tc39/proposal-array-grouping) marked as supported from Bun 1.0.19
- Since [`Iterator` helpers proposal](https://togithub.com/tc39/proposal-iterator-helpers) methods are still not disabled in Deno, the web compatibility issue why it was disabled in Chromium makes no sense for Deno and fixed in the spec, they marked as supported from Deno 1.37
- Added Opera Android 80 and updated [Opera Android 79](https://forums.opera.com/topic/68490/opera-for-android-79) compat data mapping
- Added Samsung Internet 24 compat data mapping
### [`v3.34.0`](https://togithub.com/zloirock/core-js/blob/HEAD/CHANGELOG.md#3340---20231206)
[Compare Source](https://togithub.com/zloirock/core-js/compare/v3.33.3...v3.34.0)
- [`Array` grouping proposal](https://togithub.com/tc39/proposal-array-grouping):
- Methods:
- `Object.groupBy`
- `Map.groupBy`
- Moved to stable ES, [November 2023 TC39 meeting](https://togithub.com/tc39/proposal-array-grouping/issues/60)
- Added `es.` namespace modules, `/es/` and `/stable/` namespaces entries
- [`Promise.withResolvers` proposal](https://togithub.com/tc39/proposal-promise-with-resolvers):
- Method:
- `Promise.withResolvers`
- Moved to stable ES, [November 2023 TC39 meeting](https://twitter.com/robpalmer2/status/1729216597623976407)
- Added `es.` namespace module, `/es/` and `/stable/` namespaces entries
- Fixed a web incompatibility issue of [`Iterator` helpers proposal](https://togithub.com/tc39/proposal-iterator-helpers), [proposal-iterator-helpers/287](https://togithub.com/tc39/proposal-iterator-helpers/pull/287) and some following changes, November 2023 TC39 meeting
- Added [`Uint8Array` to / from base64 and hex stage 2 proposal](https://togithub.com/tc39/proposal-arraybuffer-base64):
- Methods:
- `Uint8Array.fromBase64`
- `Uint8Array.fromHex`
- `Uint8Array.prototype.toBase64`
- `Uint8Array.prototype.toHex`
- Relaxed some specific cases of [`Number.fromString`](https://togithub.com/tc39/proposal-number-fromstring) validation before clarification of [proposal-number-fromstring/24](https://togithub.com/tc39/proposal-number-fromstring/issues/24)
- Fixed `@@toStringTag` property descriptors on DOM collections, [#1312](https://togithub.com/zloirock/core-js/issues/1312)
- Fixed the order of arguments validation in `Array` iteration methods, [#1313](https://togithub.com/zloirock/core-js/issues/1313)
- Some minor `atob` / `btoa` improvements
- Compat data improvements:
- [`Promise.withResolvers`](https://togithub.com/tc39/proposal-promise-with-resolvers) marked as shipped from FF121
### [`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
Configuration
📅 Schedule: Branch creation - At any time (no schedule defined), Automerge - At any time (no schedule defined).
🚦 Automerge: Disabled by config. Please merge this manually once you are satisfied.
â™» Rebasing: Whenever 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 contains the following updates:
3.21.0
->3.38.1
Release Notes
zloirock/core-js (core-js)
### [`v3.38.1`](https://togithub.com/zloirock/core-js/blob/HEAD/CHANGELOG.md#3381---20240820) [Compare Source](https://togithub.com/zloirock/core-js/compare/v3.38.0...v3.38.1) - Changes [v3.38.0...v3.38.1](https://togithub.com/zloirock/core-js/compare/v3.38.0...v3.38.1) - Fixed some cases of `URLSearchParams` percent decoding, [#1357](https://togithub.com/zloirock/core-js/issues/1357), [#1361](https://togithub.com/zloirock/core-js/pull/1361), thanks [**@slowcheetah**](https://togithub.com/slowcheetah) - Some stylistic changes and minor optimizations - Compat data improvements: - [`Iterator` helpers proposal](https://togithub.com/tc39/proposal-iterator-helpers) methods marked as [shipped from FF131](https://bugzilla.mozilla.org/show_bug.cgi?id=1896390) - [`Math.f16round` and `DataView.prototype.{ getFloat16, setFloat16 }`](https://togithub.com/tc39/proposal-float16array) marked as shipped from Bun 1.1.23 - [`RegExp.escape`](https://togithub.com/tc39/proposal-regex-escaping) marked as shipped from Bun 1.1.22 - [`Promise.try`](https://togithub.com/tc39/proposal-promise-try) marked as shipped from Bun 1.1.22 - [`Uint8Array` to / from base64 and hex proposal](https://togithub.com/tc39/proposal-arraybuffer-base64) methods marked as shipped from Bun 1.1.22 - Added Hermes 0.13 compat data, similar to React Native 0.75 Hermes - Added Opera Android 84 compat data mapping ### [`v3.38.0`](https://togithub.com/zloirock/core-js/blob/HEAD/CHANGELOG.md#3380---20240805) [Compare Source](https://togithub.com/zloirock/core-js/compare/v3.37.1...v3.38.0) - Changes [v3.37.1...v3.38.0](https://togithub.com/zloirock/core-js/compare/v3.37.1...v3.38.0) - [`RegExp.escape` proposal](https://togithub.com/tc39/proposal-regex-escaping): - Built-ins: - `RegExp.escape` - Moved to stage 3, [June 2024](https://togithub.com/tc39/proposals/commit/4b8ee265248abfa2c88ed71b3c541ddd5a2eaffe) and [July 2024](https://togithub.com/tc39/proposals/commit/bdb2eea6c5e41a52f2d6047d7de1a31b5d188c4f) TC39 meetings - Updated the way of escaping, [regex-escaping/77](https://togithub.com/tc39/proposal-regex-escaping/pull/77) - Throw an error on non-strings, [regex-escaping/58](https://togithub.com/tc39/proposal-regex-escaping/pull/58) - Added `/actual/` namespace entries, unconditional forced replacement changed to feature detection - [`Promise.try` proposal](https://togithub.com/tc39/proposal-promise-try): - Built-ins: - `Promise.try` - Moved to stage 3, [June 2024 TC39 meeting](https://togithub.com/tc39/proposals/commit/de20984cd7f7bc616682c557cb839abc100422cb) - Added `/actual/` namespace entries, unconditional forced replacement changed to feature detection - [`Uint8Array` to / from base64 and hex stage 3 proposal](https://togithub.com/tc39/proposal-arraybuffer-base64): - Built-ins: - `Uint8Array.fromBase64` - `Uint8Array.fromHex` - `Uint8Array.prototype.setFromBase64` - `Uint8Array.prototype.setFromHex` - `Uint8Array.prototype.toBase64` - `Uint8Array.prototype.toHex` - Added `Uint8Array.prototype.{ setFromBase64, setFromHex }` methods - Added `Uint8Array.fromBase64` and `Uint8Array.prototype.setFromBase64` `lastChunkHandling` option, [proposal-arraybuffer-base64/33](https://togithub.com/tc39/proposal-arraybuffer-base64/pull/33) - Added `Uint8Array.prototype.toBase64` `omitPadding` option, [proposal-arraybuffer-base64/60](https://togithub.com/tc39/proposal-arraybuffer-base64/pull/60) - Added throwing a `TypeError` on arrays backed by detached buffers - Unconditional forced replacement changed to feature detection - Fixed `RegExp` named capture groups polyfill in combination with non-capturing groups, [#1352](https://togithub.com/zloirock/core-js/pull/1352), thanks [**@Ulop**](https://togithub.com/Ulop) - Improved some cases of environment detection - Uses [`process.getBuiltinModule`](https://nodejs.org/docs/latest/api/process.html#processgetbuiltinmoduleid) for getting built-in NodeJS modules where it's available - Uses `https` instead of `http` in `URL` constructor feature detection to avoid extra notifications from some overly vigilant security scanners, [#1345](https://togithub.com/zloirock/core-js/issues/1345) - Some minor optimizations - Updated `browserslist` in `core-js-compat` dependencies that fixes an upstream issue with incorrect interpretation of some `browserslist` queries, [#1344](https://togithub.com/zloirock/core-js/issues/1344), [browserslist/829](https://togithub.com/browserslist/browserslist/issues/829), [browserslist/836](https://togithub.com/browserslist/browserslist/pull/836) - Compat data improvements: - Added [Safari 18.0](https://webkit.org/blog/15443/news-from-wwdc24-webkit-in-safari-18-beta/) compat data: - Fixed [`Object.groupBy` and `Map.groupBy`](https://togithub.com/tc39/proposal-array-grouping) to [work for non-objects](https://bugs.webkit.org/show_bug.cgi?id=271524) - Fixed [throwing a `RangeError` if `Set` methods are called on an object with negative size property](https://bugs.webkit.org/show_bug.cgi?id=267494) - Fixed [`Set.prototype.symmetricDifference` to call `this.has` in each iteration](https://bugs.webkit.org/show_bug.cgi?id=272679) - Fixed [`Array.fromAsync`](https://togithub.com/tc39/proposal-array-from-async) to [not call the `Array` constructor twice](https://bugs.webkit.org/show_bug.cgi?id=271703) - Added [`URL.parse`](https://url.spec.whatwg.org/#dom-url-parse) - [`Math.f16round` and `DataView.prototype.{ getFloat16, setFloat16 }`](https://togithub.com/tc39/proposal-float16array) marked as [shipped from FF129](https://bugzilla.mozilla.org/show_bug.cgi?id=1903329) - [`Symbol.asyncDispose`](https://togithub.com/tc39/proposal-explicit-resource-management) added and marked as supported from V8 ~ Chromium 127 - [`Promise.try`](https://togithub.com/tc39/proposal-promise-try) added and marked as supported [from V8 ~ Chromium 128](https://chromestatus.com/feature/6315704705089536) - Added Deno [1.44](https://togithub.com/denoland/deno/releases/tag/v1.44.0) and [1.45](https://togithub.com/denoland/deno/releases/tag/v1.45.0) compat data mapping - `self` descriptor [is broken in Deno 1.45.3](https://togithub.com/denoland/deno/issues/24683) (again) - Added Electron 32 and 33 compat data mapping - Added [Opera Android 83](https://forums.opera.com/topic/72570/opera-for-android-83) compat data mapping - Added Samsung Internet 27 compat data mapping - Added Oculus Quest Browser 34 compat data mapping ### [`v3.37.1`](https://togithub.com/zloirock/core-js/blob/HEAD/CHANGELOG.md#3371---20240514) [Compare Source](https://togithub.com/zloirock/core-js/compare/v3.37.0...v3.37.1) - Changes [v3.37.0...v3.37.1](https://togithub.com/zloirock/core-js/compare/v3.37.0...v3.37.1) - Fixed [`URL.parse`](https://url.spec.whatwg.org/#dom-url-parse) feature detection for some specific cases - Compat data improvements: - [`Set` methods proposal](https://togithub.com/tc39/proposal-set-methods) added and marked as [supported from FF 127](https://bugzilla.mozilla.org/show_bug.cgi?id=1868423) - [`Symbol.dispose`](https://togithub.com/tc39/proposal-explicit-resource-management) added and marked as supported from V8 ~ Chromium 125 - [`Math.f16round` and `DataView.prototype.{ getFloat16, setFloat16 }`](https://togithub.com/tc39/proposal-float16array) added and marked as [supported from Deno 1.43](https://togithub.com/denoland/deno/pull/23490) - [`URL.parse`](https://url.spec.whatwg.org/#dom-url-parse) added and marked as [supported from Chromium 126](https://chromestatus.com/feature/6301071388704768) - [`URL.parse`](https://url.spec.whatwg.org/#dom-url-parse) added and marked as [supported from NodeJS 22.0](https://togithub.com/nodejs/node/pull/52280) - [`URL.parse`](https://url.spec.whatwg.org/#dom-url-parse) added and marked as [supported from Deno 1.43](https://togithub.com/denoland/deno/pull/23318) - Added [Rhino 1.7.15](https://togithub.com/mozilla/rhino/releases/tag/Rhino1\_7\_15\_Release) compat data, many features marked as supported - Added [NodeJS 22.0](https://nodejs.org/en/blog/release/v22.0.0) compat data mapping - Added [Deno 1.43](https://togithub.com/denoland/deno/releases/tag/v1.43.0) compat data mapping - Added Electron 31 compat data mapping - Updated [Opera Android 82](https://forums.opera.com/topic/71513/opera-for-android-82) compat data mapping - Added Samsung Internet 26 compat data mapping - Added Oculus Quest Browser 33 compat data mapping ### [`v3.37.0`](https://togithub.com/zloirock/core-js/blob/HEAD/CHANGELOG.md#3370---20240417) [Compare Source](https://togithub.com/zloirock/core-js/compare/v3.36.1...v3.37.0) - Changes [v3.36.1...v3.37.0](https://togithub.com/zloirock/core-js/compare/v3.36.1...v3.37.0) - [New `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 stable ES, [April 2024 TC39 meeting](https://togithub.com/tc39/proposals/commit/bda5a6bccbaca183e193f9e680889ea5b5462ce4) - Added `es.` namespace modules, `/es/` and `/stable/` namespaces entries - [Explicit Resource Management stage 3 proposal](https://togithub.com/tc39/proposal-explicit-resource-management) - Some minor updates like [explicit-resource-management/217](https://togithub.com/tc39/proposal-explicit-resource-management/pull/217) - Added [`Math.sumPrecise` stage 2.7 proposal](https://togithub.com/tc39/proposal-math-sum/): - Built-ins: - `Math.sumPrecise` - [`Promise.try` proposal](https://togithub.com/tc39/proposal-promise-try): - Built-ins: - `Promise.try` - Added optional arguments support, [promise-try/16](https://togithub.com/tc39/proposal-promise-try/pull/16) - Moved to stage 2.7, [April 2024 TC39 meeting](https://togithub.com/tc39/proposals/commit/301fc9c7eef2344d2b443f32a9c24ecd5fbdbec0) - [`RegExp.escape` stage 2 proposal](https://togithub.com/tc39/proposal-regex-escaping): - Moved to hex-escape semantics, [regex-escaping/67](https://togithub.com/tc39/proposal-regex-escaping/pull/67) - It's not the final change of the way of escaping, waiting for [regex-escaping/77](https://togithub.com/tc39/proposal-regex-escaping/pull/77) soon - [Pattern matching stage 1 proposal](https://togithub.com/tc39/proposal-pattern-matching): - Built-ins: - `Symbol.customMatcher` - Once again, [the used well-known symbol was renamed](https://togithub.com/tc39/proposal-pattern-matching/pull/295) - Added new entries for that - Added [Extractors stage 1 proposal](https://togithub.com/tc39/proposal-extractors): - Built-ins: - `Symbol.customMatcher` - Since the `Symbol.customMatcher` well-known symbol from the pattern matching proposal is also used in the exactors proposal, added an entry also for this proposal - Added [`URL.parse`](https://url.spec.whatwg.org/#dom-url-parse), [url/825](https://togithub.com/whatwg/url/pull/825) - Engines bugs fixes: - Added a fix of [Safari `{ Object, Map }.groupBy` bug that does not support iterable primitives](https://bugs.webkit.org/show_bug.cgi?id=271524) - Added a fix of [Safari bug with double call of constructor in `Array.fromAsync`](https://bugs.webkit.org/show_bug.cgi?id=271703) - Compat data improvements: - [`URL.parse`](https://url.spec.whatwg.org/#dom-url-parse) added and marked as supported [from FF 126](https://bugzilla.mozilla.org/show_bug.cgi?id=1887611) - [`URL.parse`](https://url.spec.whatwg.org/#dom-url-parse) added and marked as supported [from Bun 1.1.4](https://togithub.com/oven-sh/bun/pull/10129) - [`URL.canParse`](https://url.spec.whatwg.org/#dom-url-canparse) fixed and marked as supported [from Bun 1.1.0](https://togithub.com/oven-sh/bun/pull/9710) - [New `Set` methods](https://togithub.com/tc39/proposal-set-methods) fixed in JavaScriptCore and marked as supported from Bun 1.1.1 - Added Opera Android 82 compat data mapping ### [`v3.36.1`](https://togithub.com/zloirock/core-js/blob/HEAD/CHANGELOG.md#3361---20240319) [Compare Source](https://togithub.com/zloirock/core-js/compare/v3.36.0...v3.36.1) - Changes [v3.36.0...v3.36.1](https://togithub.com/zloirock/core-js/compare/v3.36.0...v3.36.1) - Fixed some validation cases in `Object.setPrototypeOf`, [#1329](https://togithub.com/zloirock/core-js/issues/1329), thanks [**@minseok-choe**](https://togithub.com/minseok-choe) - Fixed the order of validations in `Array.from`, [#1331](https://togithub.com/zloirock/core-js/pull/1331), thanks [**@minseok-choe**](https://togithub.com/minseok-choe) - Added a fix of [Bun `queueMicrotask` arity](https://togithub.com/oven-sh/bun/issues/9249) - Added a fix of [Bun `URL.canParse` arity](https://togithub.com/oven-sh/bun/issues/9250) - Added a fix of Bun `SuppressedError` [extra arguments support](https://togithub.com/oven-sh/bun/issues/9283) and [arity](https://togithub.com/oven-sh/bun/issues/9282) - Compat data improvements: - [`value` argument of `URLSearchParams.prototype.{ has, delete }`](https://url.spec.whatwg.org/#dom-urlsearchparams-delete) marked as supported [from Bun 1.0.31](https://togithub.com/oven-sh/bun/issues/9263) - Added React Native 0.74 Hermes compat data, `Array.prototype.{ toSpliced, toReversed, with }` and `atob` marked as supported - Added Deno 1.41.3 compat data mapping - Added Opera Android 81 compat data mapping - Added Samsung Internet 25 compat data mapping - Added Oculus Quest Browser 32 compat data mapping - Updated Electron 30 compat data mapping ### [`v3.36.0`](https://togithub.com/zloirock/core-js/blob/HEAD/CHANGELOG.md#3360---20240214) [Compare Source](https://togithub.com/zloirock/core-js/compare/v3.35.1...v3.36.0) - [`ArrayBuffer.prototype.transfer` and friends proposal](https://togithub.com/tc39/proposal-arraybuffer-transfer): - Built-ins: - `ArrayBuffer.prototype.detached` - `ArrayBuffer.prototype.transfer` - `ArrayBuffer.prototype.transferToFixedLength` - Moved to stable ES, [Febrary 2024 TC39 meeting](https://togithub.com/tc39/proposals/commit/c84d3dde9a7d8ee4410ffa28624fc4c39247faca) - Added `es.` namespace modules, `/es/` and `/stable/` namespaces entries - [`Uint8Array` to / from base64 and hex proposal](https://togithub.com/tc39/proposal-arraybuffer-base64): - Methods: - `Uint8Array.fromBase64` - `Uint8Array.fromHex` - `Uint8Array.prototype.toBase64` - `Uint8Array.prototype.toHex` - Moved to stage 3, [Febrary 2024 TC39 meeting](https://togithub.com/tc39/proposals/commit/278ab28b8f849f2110d770e7b034b7ef59f14daf) - Added `/actual/` namespace entries - Skipped adding new methods of writing to existing arrays to clarification some moments - [`Promise.try` proposal](https://togithub.com/tc39/proposal-promise-try) has been resurrected and moved to stage 2, [Febrary 2024 TC39 meeting](https://togithub.com/tc39/proposal-promise-try/issues/15) - Added an entry point for [the new TC39 proposals stage](https://tc39.es/process-document/) - `core-js/stage/2.7` - still empty - Fixed regression in `Set.prototype.intersection` feature detection - Fixed a missed check in `Array.prototype.{ indexOf, lastIndexOf, includes }`, [#1325](https://togithub.com/zloirock/core-js/issues/1325), thanks [**@minseok-choe**](https://togithub.com/minseok-choe) - Fixed a missed check in `Array.prototype.{ reduce, reduceRight }`, [#1327](https://togithub.com/zloirock/core-js/issues/1327), thanks [**@minseok-choe**](https://togithub.com/minseok-choe) - Fixed `Array.from` and some other methods with proxy targets, [#1322](https://togithub.com/zloirock/core-js/issues/1322), thanks [**@minseok-choe**](https://togithub.com/minseok-choe) - Fixed dependencies loading for modules from `ArrayBuffer.prototype.transfer` and friends proposal in some specific cases in IE10- - Dropped context workaround from collection static methods entries since with current methods semantic it's no longer required - Added instance methods polyfills to entries of collections static methods that produce collection instances - Added missed `Date.prototype.toJSON` to `JSON.stringify` entries dependencies - Added debugging info in some missed cases - Compat data improvements: - [`{ Map, Object }.groupBy`](https://togithub.com/tc39/proposal-array-grouping), [`Promise.withResolvers`](https://togithub.com/tc39/proposal-promise-with-resolvers), [`ArrayBuffer.prototype.transfer` and friends](https://togithub.com/tc39/proposal-arraybuffer-transfer) marked as supported from [Safari 17.4](https://developer.apple.com/documentation/safari-release-notes/safari-17\_4-release-notes#JavaScript) - [New `Set` methods](https://togithub.com/tc39/proposal-set-methods) [fixed](https://bugs.chromium.org/p/v8/issues/detail?id=14559#c4) and marked as supported from V8 ~ Chrome 123 - Added [Deno 1.40](https://deno.com/blog/v1.40) compat data mapping - `Symbol.metadata` marked as supported from [Deno 1.40.4](https://togithub.com/denoland/deno/releases/tag/v1.40.4) - Updated Electron 30 compat data mapping ### [`v3.35.1`](https://togithub.com/zloirock/core-js/blob/HEAD/CHANGELOG.md#3351---20240121) [Compare Source](https://togithub.com/zloirock/core-js/compare/v3.35.0...v3.35.1) - Fixed internal `ToLength` operation with bigints, [#1318](https://togithub.com/zloirock/core-js/issues/1318) - Removed significant redundant code from `String#split` polyfill - Fixed setting names of methods with symbol keys in some old engines - Minor fix of prototype methods export logic in the pure version - Compat data improvements: - [`Iterator` helpers proposal](https://togithub.com/tc39/proposal-iterator-helpers) methods marked as supported from V8 ~ Chrome 122 - Note that V8 ~ Chrome 122 add [`Set` methods](https://togithub.com/tc39/proposal-set-methods), but they have [a bug](https://bugs.chromium.org/p/v8/issues/detail?id=14559) [similar to Safari](https://bugs.webkit.org/show_bug.cgi?id=267494) - `self` marked as fixed from Bun 1.0.22 - [`SuppressedError` and `Symbol.{ dispose , asyncDispose }`](https://togithub.com/tc39/proposal-explicit-resource-management) marked as [supported from Bun 1.0.23](https://bun.sh/blog/bun-v1.0.23#resource-management-is-now-supported) - Added Oculus Quest Browser 31 compat data mapping - Updated Electron 29 and added Electron 30 compat data mapping ### [`v3.35.0`](https://togithub.com/zloirock/core-js/blob/HEAD/CHANGELOG.md#3350---20231229) [Compare Source](https://togithub.com/zloirock/core-js/compare/v3.34.0...v3.35.0) - [`{ Map, Set, WeakMap, WeakSet }.{ from, of }`](https://togithub.com/tc39/proposal-setmap-offrom) became non-generic, following [this](https://togithub.com/tc39/proposal-setmap-offrom/issues/16#issuecomment-1843346541) and some other notes. Now they can be invoked without `this`, but no longer return subclass instances - Fixed handling some cases of non-enumerable symbol keys from `Symbol` polyfill - Removed unneeded NodeJS domains-related logic from `queueMicrotask` polyfill - Fixed subclassing of wrapped `ArrayBuffer` - Refactoring, many different minor optimizations - Compat data improvements: - [`Array.fromAsync`](https://togithub.com/tc39/proposal-array-from-async) marked as [supported from V8 ~ Chrome 121](https://bugs.chromium.org/p/v8/issues/detail?id=13321#c13) - It seems that the ancient [`Array.prototype.push` bug](https://bugs.chromium.org/p/v8/issues/detail?id=12681) is fixed in V8 ~ Chrome 122 (Hallelujah!) - [`ArrayBuffer.prototype.transfer` and friends proposal](https://togithub.com/tc39/proposal-arraybuffer-transfer) features marked as [supported from FF 122](https://bugzilla.mozilla.org/show_bug.cgi?id=1865103#c8) and Bun 1.0.19 - [`Object.groupBy` and `Map.groupBy`](https://togithub.com/tc39/proposal-array-grouping) marked as supported from Bun 1.0.19 - Since [`Iterator` helpers proposal](https://togithub.com/tc39/proposal-iterator-helpers) methods are still not disabled in Deno, the web compatibility issue why it was disabled in Chromium makes no sense for Deno and fixed in the spec, they marked as supported from Deno 1.37 - Added Opera Android 80 and updated [Opera Android 79](https://forums.opera.com/topic/68490/opera-for-android-79) compat data mapping - Added Samsung Internet 24 compat data mapping ### [`v3.34.0`](https://togithub.com/zloirock/core-js/blob/HEAD/CHANGELOG.md#3340---20231206) [Compare Source](https://togithub.com/zloirock/core-js/compare/v3.33.3...v3.34.0) - [`Array` grouping proposal](https://togithub.com/tc39/proposal-array-grouping): - Methods: - `Object.groupBy` - `Map.groupBy` - Moved to stable ES, [November 2023 TC39 meeting](https://togithub.com/tc39/proposal-array-grouping/issues/60) - Added `es.` namespace modules, `/es/` and `/stable/` namespaces entries - [`Promise.withResolvers` proposal](https://togithub.com/tc39/proposal-promise-with-resolvers): - Method: - `Promise.withResolvers` - Moved to stable ES, [November 2023 TC39 meeting](https://twitter.com/robpalmer2/status/1729216597623976407) - Added `es.` namespace module, `/es/` and `/stable/` namespaces entries - Fixed a web incompatibility issue of [`Iterator` helpers proposal](https://togithub.com/tc39/proposal-iterator-helpers), [proposal-iterator-helpers/287](https://togithub.com/tc39/proposal-iterator-helpers/pull/287) and some following changes, November 2023 TC39 meeting - Added [`Uint8Array` to / from base64 and hex stage 2 proposal](https://togithub.com/tc39/proposal-arraybuffer-base64): - Methods: - `Uint8Array.fromBase64` - `Uint8Array.fromHex` - `Uint8Array.prototype.toBase64` - `Uint8Array.prototype.toHex` - Relaxed some specific cases of [`Number.fromString`](https://togithub.com/tc39/proposal-number-fromstring) validation before clarification of [proposal-number-fromstring/24](https://togithub.com/tc39/proposal-number-fromstring/issues/24) - Fixed `@@toStringTag` property descriptors on DOM collections, [#1312](https://togithub.com/zloirock/core-js/issues/1312) - Fixed the order of arguments validation in `Array` iteration methods, [#1313](https://togithub.com/zloirock/core-js/issues/1313) - Some minor `atob` / `btoa` improvements - Compat data improvements: - [`Promise.withResolvers`](https://togithub.com/tc39/proposal-promise-with-resolvers) marked as shipped from FF121 ### [`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 [byConfiguration
📅 Schedule: Branch creation - At any time (no schedule defined), Automerge - At any time (no schedule defined).
🚦 Automerge: Disabled by config. Please merge this manually once you are satisfied.
â™» Rebasing: Whenever 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 was generated by Mend Renovate. View the repository job log.