Releases: zloirock/core-js
Releases Β· zloirock/core-js
3.47.0 - 2025.11.18
- Changes v3.46.0...v3.47.0 (117 commits)
JSON.parsesource text access proposal :- Built-ins:
JSON.isRawJSONJSON.parseJSON.rawJSONJSON.stringify
- Moved to stable ES, November 2025 TC39 meeting
- Added
es.namespace modules,/es/and/stable/namespaces entries - Reworked
JSON.stringifyinternals
- Built-ins:
Iteratorsequencing proposal:- Built-ins:
Iterator.concat
- Moved to stable ES, November 2025 TC39 meeting
- Added
es.namespace modules,/es/and/stable/namespaces entries
- Built-ins:
- Joint iteration proposal:
- Built-ins:
Iterator.zipIterator.zipKeyed
- Moved to stage 3, November 2025 TC39 meeting
- Added
/actual/namespace entries, unconditional forced replacement changed to feature detection
- Built-ins:
- Fixed increasing
.sizeinURLSearchParams.prototype.appendpolyfill in IE8- - Compat data improvements:
Iterator.concatmarked as shipped in FF147Mapupsert proposal features marked as shipped in Safari 26.2Math.sumPrecisemarked as shipped in Safari 26.2Uint8Array.{ fromBase64, prototype.setFromBase64 }marked as fixed in Safari 26.2- Missed Explicit Resource Management features added in Bun 1.3.0
- Added Oculus Quest Browser 41 compat data mapping
- Added Electron 40 compat data mapping
3.46.0 - 2025.10.09
Welcome to our new website, core-js.io, where our documentation is moving!
In addition, you can now follow the project's news in X.
- Changes v3.45.1...v3.46.0 (116 commits)
Mapupsert stage 3 proposal:Iteratorchunking proposal:- Built-ins:
Iterator.prototype.chunksIterator.prototype.windows
- Moved to stage 2.7, September 2025 TC39 meeting
Iterator.prototype.slidingmethod replaced with an extra parameter ofIterator.prototype.windowsmethod, tc39/proposal-iterator-chunking/#24, tc39/proposal-iterator-chunking/#26
- Built-ins:
- Fixed
Iterator.zipandIterator.zipKeyedbehavior withmode: 'longest'option, #1469, thanks @lionel-rowe - Fixed work of
Object.groupByandIterator.zipKeyedtogether withSymbolpolyfill - some cases of symbol keys on resultnull-prototype object were able to leak out tofor-in - Compat data improvements:
Mapupsert proposal features marked as shipped from FF144- Added Node 25.0 compat data mapping
- Added Deno 2.5 compat data mapping
- Updated Electron 39 compat data mapping
- Updated Opera 121+ compat data mapping
- Added Opera Android 92 compat data mapping
- Added Oculus Quest Browser 40 compat data mapping
3.45.1 - 2025.08.20
- Changes v3.45.0...v3.45.1 (30 commits)
- Fixed a conflict of native methods from
Mapupsert proposal with polyfilled methods in the pure version - Added
bugsfields topackage.jsonof all packages - Compat data improvements:
Mapupsert proposal features marked as shipped from Bun 1.2.20- Added Samsung Internet 29 compat data mapping
- Added Electron 39 compat data mapping
3.45.0 - 2025.08.04
- Changes v3.44.0...v3.45.0 (70 commits)
Uint8Arrayto / from base64 and hex proposal:- Built-ins:
Uint8Array.fromBase64Uint8Array.fromHexUint8Array.prototype.setFromBase64Uint8Array.prototype.setFromHexUint8Array.prototype.toBase64Uint8Array.prototype.toHex
- Moved to stable ES, July 2025 TC39 meeting
- Added
es.namespace modules,/es/and/stable/namespaces entries - Added detection of a Webkit bug:
Uint8ArrayfromBase64 / setFromBase64 does not throw an error on incorrect length of base64 string
- Built-ins:
Math.sumPreciseproposal:- Built-ins:
Math.sumPrecise
- Moved to stable ES, July 2025 TC39 meeting
- Added
es.namespace module,/es/and/stable/namespaces entries
- Built-ins:
Iteratorsequencing proposal:- Built-ins:
Iterator.concat
- Moved to stage 3, July 2025 TC39 meeting
- Added
/actual/namespace entries, unconditional forced replacement changed to feature detection
- Built-ins:
Mapupsert proposal:- Built-ins:
Map.prototype.getOrInsertMap.prototype.getOrInsertComputedWeakMap.prototype.getOrInsertWeakMap.prototype.getOrInsertComputed
- Moved to stage 3, July 2025 TC39 meeting
- Added
/actual/namespace entries, unconditional forced replacement changed to feature detection
- Built-ins:
- Added missing dependencies to some entries of static
Iteratormethods - Fixed Joint Iteration proposal in
/stage/entries - Compat data improvements:
Uint8Arrayto / from base64 and hex proposal features marked as supported from V8 ~ Chromium 140Uint8Array.{ fromBase64, prototype.setFromBase64 }marked as unsupported in Safari and supported only from Bun 1.2.20 because of a bug: it does not throw an error on incorrect length of base64 string%TypedArray%.prototype.withmarked as fixed in Safari 26.0- Updated Electron 38 compat data mapping
- Added Opera Android 91 compat data mapping
3.44.0 - 2025.07.07
- Changes v3.43.0...v3.44.0 (87 commits)
Uint8Arrayto / from base64 and hex stage 3 proposal:- Fixed several V8 bugs in
Uint8Array.fromHexandUint8Array.prototype.{ setFromBase64, toBase64, toHex }, thanks @brc-dd
- Fixed several V8 bugs in
- Joint iteration stage 2.7 proposal:
- Uses
GetinIterator.zipKeyed, following tc39/proposal-joint-iteration#43
- Uses
Iteratorsequencing stage 2.7 proposal:Iterator.concatno longer reusesIteratorResultobject of concatenated iterators, following tc39/proposal-iterator-sequencing#26
Iteratorchunking stage 2 proposal:- Added built-ins:
Iterator.prototype.sliding
- Added built-ins:
Number.prototype.clampstage 2 proposal:clampno longer throws an error onNaNasminormax, following tc39/proposal-math-clamp#d2387791c265edf66fbe2455eab919016717ce6f
- Fixed some cases of
Set.prototype.{ symmetricDifference, union }detection - Added missing dependencies to some entries of static
Iteratormethods - Added missing
/full/{ instance, number/virtual }/clampentries - Some minor stylistic changes
- Compat data improvements:
- Added Electron 38 and 39 compat data mapping
- Added Oculus Quest Browser 38 and 39 compat data mapping
Iteratorhelpers marked as fixed and updated following the latest spec changes in Safari 26.0Set.prototype.{ difference, symmetricDifference, union }marked as fixed in Safari 26.0SuppressedErrormarked as fixed in FF141Error.isErrormarked as fixed in Node 24.3setImmediateandclearImmediatemarked as available from Deno 2.4Math.sumPrecisemarked as shipped in Bun 1.2.18%TypedArray%.prototype.withmarked as fixed in Bun 1.2.18
3.43.0 - 2025.06.09
- Changes v3.42.0...v3.43.0 (139 commits)
- Explicit Resource Management proposals:
- 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]
- Moved to stable ES, May 2025 TC39 meeting
- Added
es.namespace module,/es/and/stable/namespaces entries
- Built-ins:
Array.fromAsyncproposal:- Built-ins:
Array.fromAsync
- Moved to stable ES, May 2025 TC39 meeting
- Added
es.namespace module,/es/and/stable/namespaces entries
- Built-ins:
Error.isErrorproposal:- Built-ins:
Error.isError
- Moved to stable ES, May 2025 TC39 meeting
- Added
es.namespace module,/es/and/stable/namespaces entries
- Built-ins:
- Added Joint iteration stage 2.7 proposal:
- Added built-ins:
Iterator.zipIterator.zipKeyed
- Added built-ins:
- Added
Iteratorchunking stage 2 proposal:- Added built-ins:
Iterator.prototype.chunksIterator.prototype.windows
- Added built-ins:
Number.prototype.clampproposal:- Built-ins:
Number.prototype.clamp
- Moved to stage 2, May 2025 TC39 meeting
Math.clampwas replaced withNumber.prototype.clamp- Removed a
RangeErrorifmin <= maxor+0min and-0max, tc39/proposal-math-clamp/#22
- Built-ins:
- Always check regular expression flags by
flagsgetter PR. Native methods are not fixed, only own implementation updated for:RegExp.prototype[@@match]RegExp.prototype[@@replace]
- Improved handling of
RegExpflags in polyfills of some methods in engines without proper support ofRegExp.prototype.flagsand without polyfill of this getter - Added feature detection for a WebKit bug that occurs when
thisis updated whileSet.prototype.differenceis being executed - Added feature detection for a WebKit bug that occurs when iterator record of a set-like object isn't called before cloning
thisin the following methods:Set.prototype.symmetricDifferenceSet.prototype.union
- Added feature detection for a bug in V8 ~ Chromium < 126. Following methods should throw an error on invalid iterator:
Iterator.prototype.dropIterator.prototype.filterIterator.prototype.flatMapIterator.prototype.map
- Added feature detection for a WebKit bug: incorrect exception thrown by
Iterator.fromwhen underlying iterator'sreturnmethod isnull - Added feature detection for a FF bug: incorrect exception thrown by
Array.prototype.withwhen index coercion fails - Added feature detection for a WebKit bug:
TypedArray.prototype.withshould truncate negative fractional index to zero, but instead throws an error - Worked around a bug of many different tools (example) with incorrect transforming and breaking JS syntax on getting a method from a number literal
- Fixed deoptimization of the
Promisepolyfill in the pure version - Added some missed dependencies to
/iterator/flat-mapentries - Some other minor fixes and improvements
- Compat data improvements:
- Added Deno 2.3 and Deno 2.3.2 compat data mapping
- Updated Electron 37 compat data mapping
- Added Opera Android 90 compat data mapping
Error.isErrormarked not supported in Node because of a bugSet.prototype.differencemarked as not supported in Safari and supported only from Bun 1.2.5 because of a bugSet.prototype.{ symmetricDifference, union }marked as not supported in Safari and supported only from Bun 1.2.5 because of a bugIterator.frommarked as not supported in Safari and supported only from Bun 1.2.5 because of a bug- Iterators closing on early errors in
Iteratorhelpers marked as implemented from FF141 Array.prototype.withmarked as supported only from FF140 because it throws an incorrect exception when index coercion failsTypedArray.prototype.withmarked as unsupported in Bun and Safari because it should truncate negative fractional index to zero, but instead throws an errorDisposableStackandAsyncDisposableStackmarked as shipped in FF141 (SuppressedErrorhas a bug)AsyncDisposableStackbugs marked as fixed in Deno 2.3.2SuppressedErrorbugs (extra arguments support and arity) marked as fixed in Bun 1.2.15
3.42.0 - 2025.04.30
- Changes v3.41.0...v3.42.0 (142 commits)
Mapupsert proposal:- Moved to stage 2.7, April 2025 TC39 meeting
- Validation order of
WeakMap.prototype.getOrInsertComputedupdated following tc39/proposal-upsert#79 - Built-ins:
Map.prototype.getOrInsertMap.prototype.getOrInsertComputedWeakMap.prototype.getOrInsertWeakMap.prototype.getOrInsertComputed
- Don't call well-known
Symbolmethods forRegExpon primitive values following tc39/ecma262#3009:- For avoid performance regression, temporarily, only in own
core-jsimplementations - Built-ins:
String.prototype.matchAllString.prototype.matchString.prototype.replaceAllString.prototype.replaceString.prototype.searchString.prototype.split
- For avoid performance regression, temporarily, only in own
- Added workaround for the
Uint8Array.prototype.setFromBase64bug in some of Linux builds of WebKit - Implemented early-error iterator closing following tc39/ecma262#3467, including fix of a WebKit bug, in the following methods:
Iterator.prototype.dropIterator.prototype.everyIterator.prototype.filterIterator.prototype.findIterator.prototype.flatMapIterator.prototype.forEachIterator.prototype.mapIterator.prototype.reduceIterator.prototype.someIterator.prototype.take
- Fixed missing forced replacement of
AsyncIteratorhelpers - Added closing of sync iterator when async wrapper yields a rejection following tc39/ecma262#2600. Affected methods:
Array.fromAsync(due to the lack of async feature detection capability - temporarily, only in owncore-jsimplementation)AsyncIterator.fromIterator.prototype.toAsync
- Added detection for throwing on
undefinedinitial parameter inIterator.prototype.reduce(see WebKit bug) core-js-compatandcore-js-builderAPI:- Added
'intersect'support fortargets.esmodules(Babel 7 behavior) - Fixed handling of
targets.esmodules: true(Babel 7 behavior)
- Added
- Compat data improvements:
- Explicit Resource Management features disabled (again) in V8 ~ Chromium 135 and re-added in 136
RegExp.escapemarked as shipped from V8 ~ Chromium 136Error.isErrormarked as shipped from FF138- Explicit Resource Management features re-enabled in Deno 2.2.10
Iteratorhelpers proposal features marked as supported from Deno 1.38.1 since it seems they were disabled in 1.38.0Iterator.prototype.{ drop, reduce, take }methods marked as fixed in Bun 1.2.11- Added NodeJS 24.0 compat data mapping
- Updated Electron 36 and added Electron 37 compat data mapping
- Added Opera Android 88 and 89 compat data mapping
- Added Oculus Quest Browser 37 compat data mapping
3.41.0 - 2025.03.01
- Changes v3.40.0...v3.41.0 (85 commits)
RegExp.escapeproposal:- Built-ins:
RegExp.escape
- Moved to stable ES, February 2025 TC39 meeting
- Added
es.namespace module,/es/and/stable/namespaces entries
- Built-ins:
Float16proposal:- Built-ins:
Math.f16roundDataView.prototype.getFloat16DataView.prototype.setFloat16
- Moved to stable ES, February 2025 TC39 meeting
- Added
es.namespace modules,/es/and/stable/namespaces entries
- Built-ins:
Math.clampstage 1 proposal:- Built-ins:
Math.clamp
- Extracted from old
Mathextensions proposal, February 2025 TC39 meeting - Added arguments validation
- Added new entries
- Built-ins:
- Added a workaround of a V8
AsyncDisposableStackbug, tc39/proposal-explicit-resource-management/256 - Compat data improvements:
DisposableStack,SuppressedErrorandIterator.prototype[@@dispose]marked as shipped from V8 ~ Chromium 134Error.isErroradded and marked as shipped from V8 ~ Chromium 134Math.f16roundandDataView.prototype.{ getFloat16, setFloat16 }marked as shipped from V8 ~ Chromium 135Iteratorhelpers proposal features marked as shipped from Safari 18.4JSON.parsesource text access proposal features marked as shipped from Safari 18.4Math.sumPrecisemarked as shipped from FF137- Added Deno 2.2 compat data and compat data mapping
- Explicit Resource Management features are available in V8 ~ Chromium 134, but not in Deno 2.2 based on it
- Updated Electron 35 and added Electron 36 compat data mapping
- Updated Opera Android 87 compat data mapping
- Added Samsung Internet 28 compat data mapping
- Added Oculus Quest Browser 36 compat data mapping
3.40.0 - 2025.01.08
- Changes v3.39.0...v3.40.0 (130 commits)
- Added
Error.isErrorstage 3 proposal:- Added built-ins:
Error.isError
- We have no bulletproof way to polyfill this method / check if the object is an error, so it's an enough naive implementation that is marked as
.sham
- Added built-ins:
- Explicit Resource Management stage 3 proposal:
- Updated the way async disposing of only sync disposable resources, tc39/proposal-explicit-resource-management/218
Iteratorsequencing stage 2.7 proposal:- Reuse
IteratorResultobjects when possible, tc39/proposal-iterator-sequencing/17, tc39/proposal-iterator-sequencing/18, December 2024 TC39 meeting
- Reuse
- Added a fix of V8 < 12.8 / NodeJS < 22.10 bug with handling infinite length of set-like objects in
Setmethods - Optimized
DataView.prototype.{ getFloat16, setFloat16 }performance, #1379, thanks @LeviPesin - Dropped unneeded feature detection of non-standard
%TypedArray%.prototype.toSpliced - Dropped possible re-usage of some non-standard / early stage features (like
Math.scale) available on global - Some other minor improvements
- Compat data improvements:
RegExp.escapemarked as shipped from Safari 18.2Promise.trymarked as shipped from Safari 18.2Math.f16roundandDataView.prototype.{ getFloat16, setFloat16 }marked as shipped from Safari 18.2Uint8Arrayto / from base64 and hex proposal methods marked as shipped from Safari 18.2JSON.parsesource text access proposal features marked as shipped from FF135RegExp.escapemarked as shipped from FF134Promise.trymarked as shipped from FF134Symbol.dispose,Symbol.asyncDisposeandIterator.prototype[@@dispose]marked as shipped from FF135JSON.parsesource text access proposal features marked as shipped from Bun 1.1.43- Fixed NodeJS version where
URL.parsewas added - 22.1 instead of 22.0 - Added Deno 2.1 compat data mapping
- Added Rhino 1.8.0 compat data with significant number of modern features
- Added Electron 35 compat data mapping
- Updated Opera 115+ compat data mapping
- Added Opera Android 86 and 87 compat data mapping
3.39.0 - 2024.10.31
- Changes v3.38.1...v3.39.0
Iteratorhelpers 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[@@toStringTag]
- Moved to stable ES, October 2024 TC39 meeting
- Added
es.namespace modules,/es/and/stable/namespaces entries
- Built-ins:
Promise.try:- Built-ins:
Promise.try
- Moved to stable ES, October 2024 TC39 meeting
- Added
es.namespace module,/es/and/stable/namespaces entries - Fixed
/actual|full/promise/tryentries for the callback arguments support
- Built-ins:
Math.sumPreciseproposal:- Built-ins:
Math.sumPrecise
- Moved to stage 3, October 2024 TC39 meeting
- Added
/actual/namespace entries, unconditional forced replacement changed to feature detection
- Built-ins:
- Added
Iteratorsequencing stage 2.7 proposal:- Added built-ins:
Iterator.concat
- Added built-ins:
Mapupsert stage 2 proposal:- Updated to the new API following the October 2024 TC39 meeting
- Added built-ins:
Map.prototype.getOrInsertMap.prototype.getOrInsertComputedWeakMap.prototype.getOrInsertWeakMap.prototype.getOrInsertComputed
- Extractors proposal moved to stage 2, October 2024 TC39 meeting
- Usage of
@@speciespattern removed from%TypedArray%andArrayBuffermethods, tc39/ecma262/3450:- Built-ins:
%TypedArray%.prototype.filter%TypedArray%.prototype.filterReject%TypedArray%.prototype.map%TypedArray%.prototype.slice%TypedArray%.prototype.subarrayArrayBuffer.prototype.slice
- Built-ins:
- Some other minor improvements
- Compat data improvements:
Uint8Arrayto / from base64 and hex proposal methods marked as shipped from FF133- Added NodeJS 23.0 compat data mapping
selfdescriptor is fixed in Deno 1.46.0- Added Deno 1.46 and 2.0 compat data mapping
Iteratorhelpers proposal methods marked as shipped from Bun 1.1.31- Added Electron 34 and updated Electron 33 compat data mapping
- Added Opera Android 85 compat data mapping
- Added Oculus Quest Browser 35 compat data mapping