Releases: zloirock/core-js
Releases Β· zloirock/core-js
3.30.2 - 2023.05.07
- Added a fix for a NodeJS 20.0.0 bug with cloning
File
viastructuredClone
- Added protection from Terser unsafe
String
optimization, #1242 - Added a workaround for getting proper global object in Figma plugins, #1231
- Compat data improvements:
- Added NodeJS 20.0 compat data mapping
- Added Deno 1.33 compat data mapping
URL.canParse
marked as supported (fixed) from NodeJS 20.1.0 and Deno 1.33.2
3.30.1 - 2023.04.14
- Added a fix for a NodeJS 19.9.0
URL.canParse
bug - Compat data improvements:
JSON.parse
source text access proposal features marked as supported from V8 ~ Chrome 114ArrayBuffer.prototype.transfer
and friends proposal features marked as supported from V8 ~ Chrome 114URLSearchParams.prototype.size
marked as supported from V8 ~ Chrome 113
3.30.0 - 2023.04.04
- Added
URL.canParse
method, url/763 Set
methods 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.move
marks the original stack as disposed, #1226- Some simplifications like proposal-explicit-resource-management/150
Iterator.range
proposal:- 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.size
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
3.29.1 - 2023.03.13
- Fixed dependencies of some entries
- Fixed
ToString
conversion / 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.size
getter, url/734 - Allowed cloning resizable
ArrayBuffer
s in thestructuredClone
polyfill - Fixed wrong export in
/(stable|actual|full)/instance/unshift
entries, #1207 - Compat data improvements:
Set
methods proposal marked as supported from Bun 0.5.7String.prototype.toWellFormed
marked 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
Array
by copy proposal:- Methods:
Array.prototype.toReversed
Array.prototype.toSorted
Array.prototype.toSpliced
Array.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.parse
source text access Stage 3 proposal- Methods:
JSON.parse
patched for supportsource
inreviver
function argumentsJSON.rawJSON
JSON.isRawJSON
JSON.stringify
patched for supportJSON.rawJSON
- Methods:
- Added
ArrayBuffer.prototype.transfer
and friends Stage 3 proposal:- Built-ins:
ArrayBuffer.prototype.detached
ArrayBuffer.prototype.transfer
(only in runtimes with nativestructuredClone
withArrayBuffer
transfer support)ArrayBuffer.prototype.transferToFixedLength
(only in runtimes with nativestructuredClone
withArrayBuffer
transfer support)
- In backwards, in runtimes with native
ArrayBuffer.prototype.transfer
, but without properstructuredClone
, addedArrayBuffer
transfer support tostructuredClone
polyfill
- 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
AsyncIterator
helpers, proposal-iterator-helpers/262
- Explicit Resource Management Stage 3 and Async Explicit Resource Management Stage 2 proposals:
InstallErrorCause
removed fromSuppressedError
, January 2023 TC39 meeting, proposal-explicit-resource-management/145- Simplified internal behaviour of
{ AsyncDisposableStack, DisposableStack }.prototype.use
, proposal-explicit-resource-management/143
- Added
Symbol
predicates Stage 2 proposal- Methods:
Symbol.isRegistered
Symbol.isWellKnown
- Methods:
Number.range
Stage 1 proposal and method renamed toIterator.range
Function.prototype.unThis
Stage 0 proposal and method renamed toFunction.prototype.demethodize
- Fixed Safari
String.prototype.toWellFormed
ToString
conversion bug - Improved some cases handling of array-replacer in
JSON.stringify
symbols 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
ToString
conversion of some accessors - Added throwing proper errors on an incorrect context in some
ArrayBuffer
andDataView
methods - Some minor
DataView
and%TypedArray%
polyfills optimizations - Added proper error on the excess number of trailing
=
in theatob
polyfill - Fixed theoretically possible ReDoS vulnerabilities in
String.prototype.{ trim, trimEnd, trimRight }
,parse(Int|Float)
,Number
,atob
, andURL
polyfills in some ancient engines - Compat data improvements:
RegExp.prototype.flags
marked 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
Set
methods 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
webpack
dev server bug on IE global methods, #1161 - Fixed possible
String.{ raw, cooked }
error with empty template array - Used non-standard V8
Error.captureStackTrace
instead of stack parsing in new error classes / wrappers where it's possible - Added detection correctness of iteration to
Promise.{ allSettled, any }
feature detection, Hermes issue - Compat data improvements:
- Change
Array
by copy proposal marked as supported from V8 ~ Chrome 110 - Added Samsung Internet 20 compat data mapping
- Added Quest Browser 25 compat data mapping
- Added React Native 0.71 Hermes compat data
- Added Electron 23 and 24 compat data mapping
self
marked as fixed in Deno 1.29.3, deno/17362
- 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
WeakMap
keys - Fixing of the previous bug also fixes some cases of
String.dedent
in MS Edge - Fixed dependencies of some entries
3.27.0 - 2022.12.26
- Iterator Helpers proposal:
- Built-ins:
Iterator
Iterator.from
Iterator.prototype.drop
Iterator.prototype.every
Iterator.prototype.filter
Iterator.prototype.find
Iterator.prototype.flatMap
Iterator.prototype.forEach
Iterator.prototype.map
Iterator.prototype.reduce
Iterator.prototype.some
Iterator.prototype.take
Iterator.prototype.toArray
Iterator.prototype.toAsync
Iterator.prototype[@@toStringTag]
AsyncIterator
AsyncIterator.from
AsyncIterator.prototype.drop
AsyncIterator.prototype.every
AsyncIterator.prototype.filter
AsyncIterator.prototype.find
AsyncIterator.prototype.flatMap
AsyncIterator.prototype.forEach
AsyncIterator.prototype.map
AsyncIterator.prototype.reduce
AsyncIterator.prototype.some
AsyncIterator.prototype.take
AsyncIterator.prototype.toArray
AsyncIterator.prototype[@@toStringTag]
- Moved to Stage 3, November 2022 TC39 meeting
- Added
/actual/
entries, unconditional forced replacement disabled for features that survived to Stage 3 .from
accept strings,.flatMap
throws on strings returned from the callback, proposal-iterator-helpers/244, proposal-iterator-helpers/250.from
and.flatMap
throws on non-object iterators, proposal-iterator-helpers/253
- Built-ins:
Set
methods proposal:- Built-ins:
Set.prototype.intersection
Set.prototype.union
Set.prototype.difference
Set.prototype.symmetricDifference
Set.prototype.isSubsetOf
Set.prototype.isSupersetOf
Set.prototype.isDisjointFrom
- Moved to Stage 3, November 2022 TC39 meeting
- Reimplemented with new semantics:
- Optimized performance (iteration over lowest set)
- Accepted only
Set
-like objects as an argument, not all iterables - Accepted only
Set
s asthis
, 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 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.isWellFormed
String.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 "
using
statement" and splitted into 2 (sync and async) proposals - In addition to already present well-known symbols, added new built-ins:
Symbol.dispose
Symbol.asyncDispose
SuppressedError
DisposableStack
DisposableStack.prototype.dispose
DisposableStack.prototype.use
DisposableStack.prototype.adopt
DisposableStack.prototype.defer
DisposableStack.prototype.move
DisposableStack.prototype[@@dispose]
AsyncDisposableStack
AsyncDisposableStack.prototype.disposeAsync
AsyncDisposableStack.prototype.use
AsyncDisposableStack.prototype.adopt
AsyncDisposableStack.prototype.defer
AsyncDisposableStack.prototype.move
AsyncDisposableStack.prototype[@@asyncDispose]
Iterator.prototype[@@dispose]
AsyncIterator.prototype[@@asyncDispose]
- Sync version of this proposal moved to Stage 3, November 2022 TC39 meeting
- Added
/actual/
namespace entries for Stage 3 proposal
- Renamed from "
- Added
String.dedent
stage 2 proposal- Method
String.dedent
- Throws an error on non-frozen raw templates for avoiding possible breaking changes in the future, proposal-string-dedent/75
- 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-native
target for React Native with bundled Hermes. - According to the documentation, Oculus Browser was renamed to Meta Quest Browser, so
oculus
target was renamed toquest
. opera_mobile
target name is confusing since it contains data for the Chromium-based Android version, but iOS Opera is Safari-based. Soopera_mobile
target was renamed toopera-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, addedchrome-android
target.- For consistency with two previous cases, added
firefox-android
target. - For avoiding breaking changes, the
oculus
andopera_mobile
fields 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.fromAsync
marked as supported from Bun 0.3.0String.prototype.{ isWellFormed, toWellFormed }
marked as supported from Bun 0.4.0- Change
Array
by 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.emplace
became stricter by the spec draft- Smoothed behavior of some conflicting proposals
- Removed some generic behavior (like
@@species
pattern) of some.prototype
methods from the new collections methods proposal and theArray
deduplication proposal that most likely will not be implemented since it contradicts the current TC39 policy - Added pure version of the
Number
constructor, #1154, #1155, thanks @trosos - Added
set(Timeout|Interval|Immediate)
extra arguments fix for Bun 0.3.0- (similarly to IE9-), bun/1633 - Fixed handling of sparse arrays in
structuredClone
, #1156 - Fixed a theoretically possible future conflict of polyfills definitions in the pure version
- Some refactoring and optimization
3.26.1 - 2022.11.14
- Disabled forced replacing of
Array.fromAsync
since it's on Stage 3 - Avoiding a check of the target in the internal
function-uncurry-this
helper where it's not required - minor optimization and preventing problems in some broken environments, a workaround of #1141 - V8 will not ship
Array.prototype.{ group, groupToMap }
in V8 ~ Chromium 108, proposal-array-grouping/44