4.0.0-alpha.1 - 2026.03.22
Early release for testing some concepts.
NOT FOR USAGE IN REAL PROJECTS.
See more info here: https://github.com/zloirock/core-js/pull/1310
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 compat data mapping
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
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