Repository navigation
Releases: zloirock/core-js
Releases Β· zloirock/core-js
Release list
3.51.0 - 2026.10.19
- Changes v3.50.0...v3.51.0 (62 commits)
Iteratorchunking proposal:- Built-ins:
Iterator.prototype.chunksIterator.prototype.windows
- Moved to stable ES, September 2026 TC39 meeting
- Added
es.namespace modules,/es/and/stable/namespace entries
- Built-ins:
Iteratorincludes proposal:- Built-in:
Iterator.prototype.includes
- Moved to stable ES, September 2026 TC39 meeting
- Added
es.namespace module,/es/and/stable/namespace entries
- Built-in:
Iteratorjoin proposal:- Built-in:
Iterator.prototype.join
- Moved to stable ES, September 2026 TC39 meeting
- Added
es.namespace module,/es/and/stable/namespace entries
- Built-in:
- Added detection / fix of
Math.sumPrecisenegative numbers handling WebKit bug - Added detection / fix of
Math.sumPreciseV8 bugs with modified prototypes of arrays and array iterators - Added detection / fix of
RegExp.escapecode points handling WebKit bug - Added missed detection of imprecise native
Math.asinhin V8 < 5.4 and Rhino - Added missed detection of imprecise native
Math.cbrtin FF < 48 and engines that use glibccbrt - Fixed
Promise.{ allKeyed, allSettledKeyed }algorithm for sync promises - Compat data improvements:
Iterator.{ zip, zipKeyed }marked as shipped in V8 ~ Chrome 153Iterator.prototype.includesmarked as shipped in V8 ~ Chrome 154Iterator.prototype.joinmarked as shipped in V8 ~ Chrome 153Promise.{ allKeyed, allSettledKeyed }marked as shipped in FF155Iterator.prototype.{ drop, take }marked as properly supported with tc39/ecma262/#3776 from FF158Iterator.{ zip, zipKeyed }marked as shipped in Bun 1.4.0Iterator.prototype.{ chunks, windows }marked as shipped in Bun 1.4.0Iterator.prototype.joinmarked as shipped in Bun 1.4.0- Because of a
Math.sumPrecisenegative numbers handling WebKit bug, this method is marked as not supported in Safari and Bun - Because of
Math.sumPreciseV8 bugs (see above), this method is marked as not supported in Chrome -> all other V8 engines RegExp.escapecode points handling WebKit bug:- Marked as still not fixed in stable Safari
- Marked as fixed in Bun 1.4.3
- Because of imprecision (see above),
Math.asinhis marked as supported from V8 ~ Chrome 54 and as not supported in Rhino,Math.cbrt- from FF48 - Added Node 27.0 compat data mapping
- Updated Electron 45 and added 46 compat data mapping
- Added Samsung Browser 31 compat data mapping
- Added Opera for Android 101 and 102 compat data mapping
3.50.0 - 2026.08.05
- Changes v3.49.0...v3.50.0 (138 commits)
- Joint iteration proposal:
- Built-ins:
Iterator.zipIterator.zipKeyed
- Moved to stable ES, May 2026 TC39 meeting
- Added
es.namespace modules,/es/and/stable/namespace entries
- Built-ins:
Iteratorchunking proposal:- Built-ins:
Iterator.prototype.chunksIterator.prototype.windows
- Throw a
TypeErrorinstead ofRangeErroron non-integer numberchunkSize/windowSize, following tc39/proposal-iterator-chunking/#30 - Moved to stage 3, May 2026 TC39 meeting
- Added
/actual/namespace entries, unconditional forced replacement changed to feature detection
- Built-ins:
- Added
Iteratorincludes stage 3 proposal:- Added built-in:
Iterator.prototype.includes
- Added built-in:
- Added
Iteratorjoin stage 3 proposal:- Added built-in:
Iterator.prototype.join
- Added built-in:
- Added Await dictionary of Promises stage 3 proposal:
- Added built-ins:
Promise.allKeyedPromise.allSettledKeyed
- Added built-ins:
- Throw a
RangeErroron finite unsafe integerlimitinIterator.prototype.{ drop, take }, following tc39/ecma262/#3776 - Use
PromiseResolvesemantics inPromise.try, following tc39/ecma262/#3883 - Added detection of missed Webkit ~ Safari < 26.2
Iterator.prototype.flatMapbug case, #1538 - Deno 2.9+ replaces
Object.prototype.__proto__instead of removing it, so the feature detection updated - Fixed
JSON.stringifypolyfill with an array replacer - keys order now follows the replacer, inherited and non-enumerable properties are no longer ignored, #1539 - Make
URL/URLSearchParamsparsing a little more correct (char sets, percent coding, etc) - Ensure opaque paths always roundtrip in URL polyfill (still without adding to feature detection), whatwg/url#844
- Fix
URL#toJSONwhenURL#toStringis reassigned after core-js is imported - Fixed possible crash on some keys in
Symbol.for - Some
get-iterator/get-iterator-methodfixes - Fixed
String.prototype.{ match, search }polyfills conversion order - Added missed
MAX_SAFE_INTEGERexcess check inArray.fromand{ Map, Object }.groupBypolyfills - Improved the way of inner iterators cleaning in iterator helpers
- Improved accuracy of
Math.{ asinh, cbrt, log1p }polyfills with big and small values - Improved performance of
Uint8Arraybase64 methods - Improved performance of
escape - Slight performance improvement for engines with native
Array.prototype.fillonArrayBufferconstructor and%TypedArray%.prototype.fill - Clarify supported Node versions in
package.jsonof some missed packages (just to satisfypublint) - Compat data improvements:
- Following tc39/ecma262/#3776,
Iterator.prototype.{ drop, take }properly supported from:- V8 ~ Chrome 150
- Safari 27.0
- Bun 1.4.0
- Following tc39/ecma262/#3883,
Promise.trymarked as not properly supported in all engines Iterator.prototype.{ chunks, windows }marked as shipped in FF154Iterator.prototype.includesmarked as shipped in FF154Iterator.prototype.includesmarked as shipped in Bun 1.4.0Iterator.prototype.joinmarked as shipped in FF154Array.prototype.includesWebKit bug marked as fixed in:- Safari 27.0
- Bun 1.3.12
queueMicrotaskBun bug marked as fixed in Bun 1.4.0- Added Node 26.0 compat data mapping
- Added Deno 2.7.8, Deno 2.8.0, and Deno 2.9.4 compat data mapping
- Updated Electron 42 and added 43, 44, and 45 compat data mapping
- Added Samsung Browser 30 compat data mapping
- Added Oculus Quest Browser 144+ compat data mapping
- Added Opera for Android 97, 98, 99, and 100 compat data mapping
- Following tc39/ecma262/#3776,
4.0.0-alpha.1 - 2026.03.22
3.49.0 - 2026.03.16
- Changes v3.48.0...v3.49.0 (373 commits)
Iterator.rangeupdated following the actual spec version- Throw a
RangeErroronNaNstart/end/step - Allow
nullasoptionOrStep
- Throw a
- Improved accuracy of
Math.{ asinh, atanh }polyfills with big and small values - Improved accuracy of
Number.prototype.toExponentialpolyfills with big and small values - Improved performance of
atob,btoa,Uint8Array.fromHex,Uint8Array.prototype.setFromHex, andUint8Array.prototype.toHex, #1503, #1464, #1510, thanks @johnzhou721 - Minor performance optimization polyfills of methods from
Mapupsert proposal - Polyfills of methods from
Mapupsert proposal from the pure version made generic to make it work with polyfilled and native collections - Wrap
Symbol.forinSymbol.prototype.descriptionpolyfill for correct handling of empty string descriptions - Fixed a modern Safari bug in
Array.prototype.includeswith sparse arrays andfromIndex - Fixed one more case (
Iterator.prototype.take) of a V8 ~ Chromium < 126 bug - Forced replacement of
Iterator.{ concat, zip, zipKeyed }in the pure version for ensuring proper wrappedIteratorinstances as the result - Fixed proxying
.return()on exhausted iterator from some methods of iterator helpers polyfill to the underlying iterator - Fixed double
.return()calling in case of throwing error in this method in the internaliteratehelper that affected some polyfills - Fixed closing iterator on
IteratorValueerrors in the internaliteratehelper that affected some polyfills - Fixed iterator closing in
Array.frompolyfill on failure to create array property - Fixed order of arguments validation in
Array.fromAsyncpolyfill - Fixed a lack of counter validation on
MAX_SAFE_INTEGERinArray.fromAsyncpolyfill - Fixed order of arguments validation in
Array.prototype.flatpolyfill - Fixed handling strings as iterables in
Iterator.{ zip, zipKeyed }polyfills - Fixed some cases of iterators closing in
Iterator.{ zip, zipKeyed }polyfills - Fixed validation of iterators
.next()results an objects inIterator.{ zip, zipKeyed }polyfills - Fixed a lack of early error in
Iterator.concatpolyfill on primitive as an iterator - Fixed buffer mutation exposure in
Iterator.prototype.windowspolyfill - Fixed iterator closing in
Set.prototype.{ isDisjointFrom, isSupersetOf }polyfill - Fixed (updated following the final spec) one more case
Set.prototype.differencepolyfill with updatingthis - Fixed
DataView.prototype.setFloat16polyfill in (0, 1) range - Fixed order of arguments validation in
String.prototype.{ padStart, padEnd }polyfills - Fixed order of arguments validation in
String.prototype.{ startsWith, endsWith }polyfills - Fixed some cases of
Infinityhandling inString.prototype.substrpolyfill - Fixed
String.prototype.repeatpolyfill with a counter exceeding 2 ** 32 - Fixed some cases of chars case in
escapepolyfill - Fixed named backreferences in
RegExpNCG polyfill - Fixed some cases of
RegExpNCG polyfill in combination with other types of groups - Fixed some cases of
RegExpNCG polyfill in combination withdotAll - Fixed
String.prototype.replacewithstickypolyfill, #810, #1514 - Fixed
RegExpstickypolyfill with alternation - Fixed handling of some line terminators in case of
multiline+stickymode inRegExppolyfill - Fixed
.inputslicing on result object withRegExpstickymode polyfill - Fixed handling of empty groups with
globalandunicodemodes in polyfills - Fixed
URLSearchParam.prototype.deletepolyfill with duplicate key-value pairs - Fixed possible removal of unnecessary entries in
URLSearchParam.prototype.deletepolyfill with second argument - Fixed an error in some cases of non-special URLs without a path in the
URLpolyfill - Fixed some percent encode cases / character sets in the
URLpolyfill - Fixed parsing of non-IPv4 hosts ends in a number in the
URLpolyfill - Fixed some cases of
''andnullhost handling in theURLpolyfill - Fixed host parsing with
hostname = host:portin theURLpolyfill - Fixed host inheritance in some cases of file scheme in the
URLpolyfill - Fixed block of protocol change for file with empty host in the
URLpolyfill - Fixed invalid code points handling in UTF-8 decode in the
URLSearchParamspolyfill - Fixed some cases of serialization in
URLpolyfill (/.prefix for non-special URLs withnullhost and path starting with empty segment) - Fixed
URLpolyfill.origingetter withblobscheme - Fixed a lack of error in
URLSearchParams.prototype.setpolyfill on calling only with 1 argument - Fixed handling invalid UTF-8 continuation bytes in
URLSearchParamspolyfill - Fixed incomplete sequences with out-of-range continuation bytes handling in
URLSearchParamspolyfill - Fixed allowing unexpected symbols in scheme in the
URLpolyfill - Fixed repeated
ToPropertyKeycalling inReflect.{ get, set, deleteProperty }polyfills - Fixed
Reflect.setpolyfill with some descriptors cases - Fixed
Reflect.setpolyfill with some non-extensible receiver cases - Fixed the order of
Reflect.constructpolyfill arguments validation (observable only in the error message) - Fixed a lack of error in
Reflect.definePropertypolyfill with malformed descriptor - Fixed a lack of error in
JSON.parsepolyfill on unterminated object and array literals - Fixed a lack of error in
JSON.parsepolyfill on numbers with., but without a fraction part - Fixed a lack of error on
\u{}inString.dedentpolyfill - Fixed some cases of hex escaping in the end of string in
String.dedentpolyfill - Fixed
%AsyncFromSyncIteratorPrototype%to make it a little stricter - Fixed counter in some cases of some
AsyncIteratormethods - Fixed order of async iterators closing
- Fixed iterator closing in
AsyncIterator.prototype.flatMappolyfill - Fixed iterator closing in
AsyncIterator.prototype.mappolyfill on error in underlying iterator.next() - Fixed iterator closing in
AsyncIterator.prototype.takepolyfill withreturn: null - Fixed validation
.return()result as object inAsyncIterator.prototype.takepolyfill - Fixed a lack of error in
structuredClonepolyfill on attempt to transfer multiple objects, some of which are non-transferable - Fixed resizable
ArrayBuffertransferring wherenewByteLengthexceeds the originalmaxByteLength - Fixed possible loss of symbol enumerability in
Object.definePropertyinSymbolpolyfill - Fixed return value of
Object.definePropertyinSymbolpolyfill in Android ~ 2 - Fixed order of
%TypedArray%.fromarguments validation - Fixed a lack of error on passing an
ArrayBufferand a negative length to the%TypedArray%andDataViewconstructors polyfills - Fixed some cases of
@@toStringTagon%TypedArray%polyfill - Fixed some cases of
ToUint8Clampconversion - Fixed
NaNhandling inDate.prototype.setYearpolyfill - Fixed false positive on a
WeakMapvalidation in the pure version - Fixed some minor
{ Map, Set }.prototype.forEachmoments in the pure version - Fixed possible error in
Array.isTemplateObjectpolyfill on frozen array - Fixed semantics of
Observable.fromwith multiple subscriptions of the obsolete ECMAScriptObservableproposal polyfill - Fixed handling of ending zeroes in the fraction part in
Number.fromStringpolyfill - Fixed
esmodules: intersectoption ofcore-js-compat - Fixed a lack of
reactnativealias incore-js-compattypes - Fixed a minor logical bug in the debugging output of
core-js-builder - Fixed ignorance of the obsolete
blacklistoption ofcore-js-builder- it should be removed only in the next major release - In case of bugs in
String.prototype.{ match, matchAll, replace, split }in modern engines, adds,dandvflag support to polyfills of those methods - Just in case, added an extra input string validation to the polyfill of obsolete
Number.fromStringproposals - Simplified
iOSdetection - Many minor stylistic fixes and optimizations
- Compat data improvements:
Math.sumPrecisemarked as shipped in V8 ~ Chrome 147Iterator.concatmarked as shipped in V8 ~ Chrome 146Iterator.concatmarked as shipped in Safari 26.4- Because of a bug,
Array.prototype.includesmarked as not supported in modern Safari - Fixed compat data for
parseIntandparseFloat - Added Deno 2.6.7, 2.7.0 and 2.7.2 compat data mapping
- Added Electron 42 compat data mapping
- Added Opera for Android 95 and 96 compat data mapping
- Added [Oculus Quest Browser 42](https://developers.meta.com/...
3.48.0 - 2026.01.21
- Changes v3.47.0...v3.48.0 (126 commits)
Mapupsert proposal:- Built-ins:
Map.prototype.getOrInsertMap.prototype.getOrInsertComputedWeakMap.prototype.getOrInsertWeakMap.prototype.getOrInsertComputed
- Moved to stable ES, January 2026 TC39 meeting
- Added
es.namespace modules,/es/and/stable/namespaces entries
- Built-ins:
- Use
CreateDataProperty/CreateDataPropertyOrThrowin some missed cases, #1497 - Minor fix / optimization in the
RegExpconstructor (NCG anddotAll) polyfill - Added some more workarounds for a Safari < 13 bug with silent ignore of non-writable array
.length - Added detection of a Webkit bug:
Iterator.prototype.flatMapthrows on iterator withoutreturnmethod - Added detection of a V8 ~ Chromium < 144 bug:
Uint8Array.prototype.setFromHexthrows an error on length-tracking views over ResizableArrayBuffer - Compat data improvements:
Mapupsert proposal features marked as shipped in V8 ~ Chrome 145- Joint iteration proposal features marked as shipped in FF148
Iterator.concatmarked as shipped in Bun 1.3.7- Added Rhino 1.9.0 compat data
- Added Deno 2.6 compat data mapping
- Added Opera Android 93 and 94 compat data mapping
- Added Electron 41 compat data mapping
Iterator.prototype.flatMapmarked as supported from Safari 26.2 and Bun 1.2.21 because of a bug: throws on iterator withoutreturnmethodUint8Array.prototype.setFromHexmarked as supported from V8 ~ Chromium 144 because of a bug: throws an error on length-tracking views over ResizableArrayBuffer
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