Releases: zloirock/core-js
Releases Β· zloirock/core-js
3.30.1 - 2023.04.14
- Added a fix for a NodeJS 19.9.0
URL.canParsebug - Compat data improvements:
JSON.parsesource text access proposal features marked as supported from V8 ~ Chrome 114ArrayBuffer.prototype.transferand friends proposal features marked as supported from V8 ~ Chrome 114URLSearchParams.prototype.sizemarked as supported from V8 ~ Chrome 113
3.30.0 - 2023.04.04
- Added
URL.canParsemethod, url/763 Setmethods proposal:- Removed sort from
Set.prototype.intersection, March 2023 TC39 meeting, proposal-set-methods/94
- Removed sort from
- Iterator Helpers proposals (sync, async):
- Validate arguments before opening iterator, March 2023 TC39 meeting, proposal-iterator-helpers/265
- Explicit Resource Management proposals (sync, async):
(Async)DisposableStack.prototype.movemarks the original stack as disposed, #1226- Some simplifications like proposal-explicit-resource-management/150
Iterator.rangeproposal:- Moved to Stage 2, March 2023 TC39 meeting
- Decorator Metadata proposal:
- Returned to usage
Symbol.metadata, March 2023 TC39 meeting, proposal-decorator-metadata/12
- Returned to usage
- Compat data improvements:
URLSearchParams.prototype.sizemarked 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
3.29.1 - 2023.03.13
- Fixed dependencies of some entries
- Fixed
ToStringconversion / built-ins nature of some accessors String.prototype.{ isWellFormed, toWellFormed }marked as supported from V8 ~ Chrome 111- Added Opera Android 74 compat data mapping
3.29.0 - 2023.02.27
- Added
URLSearchParams.prototype.sizegetter, url/734 - Allowed cloning resizable
ArrayBuffers in thestructuredClonepolyfill - Fixed wrong export in
/(stable|actual|full)/instance/unshiftentries, #1207 - Compat data improvements:
Setmethods proposal marked as supported from Bun 0.5.7String.prototype.toWellFormedmarked as fixed from Bun 0.5.7- Added Deno 1.31 compat data mapping
3.28.0 - 2023.02.14
I highly recommend reading this: So, what's next?
- Change
Arrayby copy proposal:- Methods:
Array.prototype.toReversedArray.prototype.toSortedArray.prototype.toSplicedArray.prototype.with%TypedArray%.prototype.toReversed%TypedArray%.prototype.toSorted%TypedArray%.prototype.with
- Moved to stable ES, January 2023 TC39 meeting
- Added
es.namespace modules,/es/and/stable/namespaces entries
- Methods:
- Added
JSON.parsesource text access Stage 3 proposal- Methods:
JSON.parsepatched for supportsourceinreviverfunction argumentsJSON.rawJSONJSON.isRawJSONJSON.stringifypatched for supportJSON.rawJSON
- Methods:
- Added
ArrayBuffer.prototype.transferand friends Stage 3 proposal:- Built-ins:
ArrayBuffer.prototype.detachedArrayBuffer.prototype.transfer(only in runtimes with nativestructuredClonewithArrayBuffertransfer support)ArrayBuffer.prototype.transferToFixedLength(only in runtimes with nativestructuredClonewithArrayBuffertransfer support)
- In backwards, in runtimes with native
ArrayBuffer.prototype.transfer, but without properstructuredClone, addedArrayBuffertransfer support tostructuredClonepolyfill
- Built-ins:
- Iterator Helpers proposal:
- Splitted into 2 (sync and async) proposals, async version moved back to Stage 2, January 2023 TC39 meeting
- Allowed interleaved mapping in
AsyncIteratorhelpers, proposal-iterator-helpers/262
- Explicit Resource Management Stage 3 and Async Explicit Resource Management Stage 2 proposals:
InstallErrorCauseremoved fromSuppressedError, January 2023 TC39 meeting, proposal-explicit-resource-management/145- Simplified internal behaviour of
{ AsyncDisposableStack, DisposableStack }.prototype.use, proposal-explicit-resource-management/143
- Added
Symbolpredicates Stage 2 proposal- Methods:
Symbol.isRegisteredSymbol.isWellKnown
- Methods:
Number.rangeStage 1 proposal and method renamed toIterator.rangeFunction.prototype.unThisStage 0 proposal and method renamed toFunction.prototype.demethodize- Fixed Safari
String.prototype.toWellFormedToStringconversion bug - Improved some cases handling of array-replacer in
JSON.stringifysymbols handling fix - Fixed many other old
JSON.{ parse, stringify }bugs (numbers instead of strings as keys in replacer, handling negative zeroes, spaces, some more handling symbols cases, etc.) - Fixed configurability and
ToStringconversion of some accessors - Added throwing proper errors on an incorrect context in some
ArrayBufferandDataViewmethods - Some minor
DataViewand%TypedArray%polyfills optimizations - Added proper error on the excess number of trailing
=in theatobpolyfill - Fixed theoretically possible ReDoS vulnerabilities in
String.prototype.{ trim, trimEnd, trimRight },parse(Int|Float),Number,atob, andURLpolyfills in some ancient engines - Compat data improvements:
RegExp.prototype.flagsmarked as fixed from V8 ~ Chrome 111- Added Opera Android 73 compat data mapping
- Added TypeScript definitions to
core-js-builder
3.27.2 - 2023.01.19
Setmethods proposal updates:- Closing of iterators of
Set-like objects on early exit, proposal-set-methods/85 - Some other minor internal changes
- Closing of iterators of
- Added one more workaround of a
webpackdev server bug on IE global methods, #1161 - Fixed possible
String.{ raw, cooked }error with empty template array - Used non-standard V8
Error.captureStackTraceinstead 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
Arrayby copy proposal marked as supported from V8 ~ Chrome 110 - Added Samsung Internet 20 compat data mapping
- Added Quest Browser 25 compat data mapping
- Added React Native 0.71 Hermes compat data
- Added Electron 23 and 24 compat data mapping
selfmarked as fixed in Deno 1.29.3, deno/17362
- Change
- Minor tweaks of minification settings for
core-js-bundle - Refactoring, some minor fixes, improvements, optimizations
3.27.1 - 2022.12.30
- Fixed a Chakra-based MS Edge (18-) bug that unfreeze (O_o) frozen arrays used as
WeakMapkeys - Fixing of the previous bug also fixes some cases of
String.dedentin MS Edge - Fixed dependencies of some entries
3.27.0 - 2022.12.26
- Iterator Helpers proposal:
- Built-ins:
IteratorIterator.fromIterator.prototype.dropIterator.prototype.everyIterator.prototype.filterIterator.prototype.findIterator.prototype.flatMapIterator.prototype.forEachIterator.prototype.mapIterator.prototype.reduceIterator.prototype.someIterator.prototype.takeIterator.prototype.toArrayIterator.prototype.toAsyncIterator.prototype[@@toStringTag]
AsyncIteratorAsyncIterator.fromAsyncIterator.prototype.dropAsyncIterator.prototype.everyAsyncIterator.prototype.filterAsyncIterator.prototype.findAsyncIterator.prototype.flatMapAsyncIterator.prototype.forEachAsyncIterator.prototype.mapAsyncIterator.prototype.reduceAsyncIterator.prototype.someAsyncIterator.prototype.takeAsyncIterator.prototype.toArrayAsyncIterator.prototype[@@toStringTag]
- Moved to Stage 3, November 2022 TC39 meeting
- Added
/actual/entries, unconditional forced replacement disabled for features that survived to Stage 3 .fromaccept strings,.flatMapthrows on strings returned from the callback, proposal-iterator-helpers/244, proposal-iterator-helpers/250.fromand.flatMapthrows on non-object iterators, proposal-iterator-helpers/253
- Built-ins:
Setmethods proposal:- Built-ins:
Set.prototype.intersectionSet.prototype.unionSet.prototype.differenceSet.prototype.symmetricDifferenceSet.prototype.isSubsetOfSet.prototype.isSupersetOfSet.prototype.isDisjointFrom
- Moved to Stage 3, November 2022 TC39 meeting
- Reimplemented with new semantics:
- Optimized performance (iteration over lowest set)
- Accepted only
Set-like objects as an argument, not all iterables - Accepted only
Sets asthis, no@@speciessupport, 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 toSet-like, they accept iterable objects). This behavior will be removed from the next major release
- 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
- Built-ins:
- Well-Formed Unicode Strings proposal:
- Methods:
String.prototype.isWellFormedString.prototype.toWellFormed
- Moved to Stage 3, November 2022 TC39 meeting
- Added
/actual/entries, disabled unconditional forced replacement
- Methods:
- Explicit resource management Stage 3 and Async explicit resource management Stage 2 proposals:
- Renamed from "
usingstatement" and splitted into 2 (sync and async) proposals - In addition to already present well-known symbols, added new built-ins:
Symbol.disposeSymbol.asyncDisposeSuppressedErrorDisposableStackDisposableStack.prototype.disposeDisposableStack.prototype.useDisposableStack.prototype.adoptDisposableStack.prototype.deferDisposableStack.prototype.moveDisposableStack.prototype[@@dispose]
AsyncDisposableStackAsyncDisposableStack.prototype.disposeAsyncAsyncDisposableStack.prototype.useAsyncDisposableStack.prototype.adoptAsyncDisposableStack.prototype.deferAsyncDisposableStack.prototype.moveAsyncDisposableStack.prototype[@@asyncDispose]
Iterator.prototype[@@dispose]AsyncIterator.prototype[@@asyncDispose]
- Sync version of this proposal moved to Stage 3, November 2022 TC39 meeting
- Added
/actual/namespace entries for Stage 3 proposal
- Renamed from "
- Added
String.dedentstage 2 proposal- Method
String.dedent - Throws an error on non-frozen raw templates for avoiding possible breaking changes in the future, proposal-string-dedent/75
- Method
- Compat data targets improvements:
- React Native from 0.70 shipped with Hermes as the default engine. However, bundled Hermes versions differ from standalone Hermes releases. So added
react-nativetarget for React Native with bundled Hermes. - According to the documentation, Oculus Browser was renamed to Meta Quest Browser, so
oculustarget was renamed toquest. opera_mobiletarget name is confusing since it contains data for the Chromium-based Android version, but iOS Opera is Safari-based. Soopera_mobiletarget was renamed toopera-android.androidtarget 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, addedchrome-androidtarget.- For consistency with two previous cases, added
firefox-androidtarget. - For avoiding breaking changes, the
oculusandopera_mobilefields are available in the compat data till the next major release.
- React Native from 0.70 shipped with Hermes as the default engine. However, bundled Hermes versions differ from standalone Hermes releases. So added
- Compat data improvements:
Array.fromAsyncmarked as supported from Bun 0.3.0String.prototype.{ isWellFormed, toWellFormed }marked as supported from Bun 0.4.0- Change
Arrayby copy proposal marked as supported from Deno 1.27, deno/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.emplacebecame stricter by the spec draft- Smoothed behavior of some conflicting proposals
- Removed some generic behavior (like
@@speciespattern) of some.prototypemethods from the new collections methods proposal and theArraydeduplication proposal that most likely will not be implemented since it contradicts the current TC39 policy - Added pure version of the
Numberconstructor, #1154, #1155, thanks @trosos - Added
set(Timeout|Interval|Immediate)extra arguments fix for Bun 0.3.0- (similarly to IE9-), bun/1633 - Fixed handling of sparse arrays in
structuredClone, #1156 - Fixed a theoretically possible future conflict of polyfills definitions in the pure version
- Some refactoring and optimization
3.26.1 - 2022.11.14
- Disabled forced replacing of
Array.fromAsyncsince it's on Stage 3 - Avoiding a check of the target in the internal
function-uncurry-thishelper where it's not required - minor optimization and preventing problems in some broken environments, a workaround of #1141 - V8 will not ship
Array.prototype.{ group, groupToMap }in V8 ~ Chromium 108, proposal-array-grouping/44
3.26.0 - 2022.10.24
Array.fromAsyncproposal:- Moved to Stage 3, September TC39 meeting
- Avoid observable side effects of
%Array.prototype.values%usage in array-like branch, proposal-array-from-async/30
- Added well-formed unicode strings stage 2 proposal:
String.prototype.isWellFormedString.prototype.toWellFormed
- Recent updates of the iterator helpers proposal:
- Added a counter parameter to helpers, proposal-iterator-helpers/211
- Don't await non-objects returned from functions passed to
AsyncIteratorhelpers, proposal-iterator-helpers/239 { Iterator, AsyncIterator }.prototype.flatMapsupports returning both - iterables and iterators, proposal-iterator-helpers/233- Early exit on broken
.nextin missed cases of{ Iterator, AsyncIterator }.from, proposal-iterator-helpers/232
- Added
selfpolyfill as a part of The Minimum Common Web Platform API, specification, #1118 - Added
inverseoption tocore-js-compat, #1119 - Added
formatoption tocore-js-builder, #1120 - Added NodeJS 19.0 compat data
- Added Deno 1.26 and 1.27 compat data
- Added Opera Android 72 compat data mapping
- Updated Electron 22 compat data mapping