npm / core-js
core-js
What changed in core-js 3, from its official release notes, upgrade guides and advisories. Sources checked 2026-10-17.
8 breaking1 security10 new APIs and options9 performance6 behavior and defaults63 fixes and other
See which of these apply to your code, ranked, in your agent:
npx @unstale/cli initcore-js 397 changes
Breaking changes 8
Throws a TypeError instead of a RangeError when chunkSize is a non-integer number.
Throws a RangeError for a finite unsafe integer limit.
Throws a RangeError for a finite unsafe integer limit.
Throws a TypeError instead of a RangeError when windowSize is a non-integer number.
Fixes array-replacer behavior: key order follows the replacer, and inherited and non-enumerable properties are no longer ignored.
The pure version now forces replacement to ensure results are properly wrapped Iterator instances; the polyfill also errors early when given a primitive as an iterator.
The polyfill now throws for unterminated object and array literals and numbers with a decimal point but no fraction.
The polyfill now throws when called with only one argument.
Security 1
Fixed exposure of buffer mutations in the polyfill.
New APIs and options 10
Adds the Iterator.prototype.chunks built-in from the iterator chunking proposal.
Adds the Iterator.prototype.includes built-in from the stage 3 proposal.
Adds the Iterator.prototype.join built-in from the stage 3 proposal.
Adds the Iterator.prototype.windows built-in from the iterator chunking proposal.
Adds the Iterator.zip built-in from the joint iteration proposal.
Adds the Iterator.zipKeyed built-in from the joint iteration proposal.
Adds the Promise.allKeyed built-in from the Await dictionary of Promises proposal.
Adds the Promise.allSettledKeyed built-in from the Await dictionary of Promises proposal.
Adds es namespace modules and /es/ and /stable/ namespace entries for the Map upsert proposal.
Added JSON.parse support for the source text access proposal.
Performance 9
Improves performance of escape.
Improves performance of Uint8Array base64 methods.
The polyfill has improved performance.
The polyfill has improved performance.
Fixed repeated ToPropertyKey conversion in the polyfill.
Fixed repeated ToPropertyKey conversion in the polyfill.
The polyfill has improved performance.
The polyfill has improved performance.
The polyfill has improved performance.
Behavior and default changes 6
Compat data now marks the method as unsupported in modern Safari because of a browser bug.
Methods from the Map upsert proposal have minor performance optimizations; pure-version methods are now generic and work with polyfilled and native collections.
Adds the Map upsert method as a stable ES feature.
Adds the Map upsert method as a stable ES feature.
Adds the WeakMap upsert method as a stable ES feature.
Adds the WeakMap upsert method as a stable ES feature.
Fixes and other changes 63
Adds the missed MAX_SAFE_INTEGER excess check to the polyfill.
Adds the missed MAX_SAFE_INTEGER excess check to the polyfill.
Improves polyfill accuracy with big and small values.
Improves polyfill accuracy with big and small values.
Adds the missed MAX_SAFE_INTEGER excess check to the polyfill.
Ensures opaque paths always roundtrip in the URL polyfill.
Uses PromiseResolve semantics.
Fixes the conversion order in the polyfill.
Fixes the conversion order in the polyfill.
Fixes a possible crash on some keys.
Makes URL parsing more correct, including character sets and percent coding.
Fixes URL#toJSON when URL#toString is reassigned after core-js is imported.
Makes URLSearchParams parsing more correct, including character sets and percent coding.
Fixed iterator closing when array property creation fails.
Fixed argument validation order and validation of counters at MAX_SAFE_INTEGER.
Fixed a possible error when the polyfill receives a frozen array.
Fixed argument validation order.
Fixed behavior with sparse arrays and fromIndex, including a modern Safari bug.
Fixed resizable ArrayBuffer transfer when newByteLength exceeds the original maxByteLength.
Fixed counter behavior and iterator closing order, including closing and return-result validation in flatMap, map, and take.
The obsolete blacklist option is no longer ignored; it will be removed only in the next major release.
Compat data was updated for Math.sumPrecise, Iterator.concat, parseInt, parseFloat, Deno, Electron, Opera for Android, and Oculus Quest Browser.
Fixed the esmodules: intersect option and added a missing reactnative alias in the types.
The constructor polyfill now errors when passed an ArrayBuffer and a negative length.
Fixed the polyfill for values in the (0, 1) range.
Fixed NaN handling in the polyfill.
Fixed some character casing cases in the polyfill.
Fixed another case of a V8/Chromium bug in the polyfill.
Fixed string iterable handling, iterator closing, and validation of iterator next results; the pure version forces replacement to return properly wrapped Iterator instances.
Fixed string iterable handling, iterator closing, and validation of iterator next results; the pure version forces replacement to return properly wrapped Iterator instances.
Improves polyfill accuracy with big and small values.
The polyfill is more accurate with big and small values.
Fixed handling of ending zeroes in the fraction part and added extra input string validation.
The polyfill is more accurate with big and small values.
Fixed possible loss of symbol enumerability and the return value in the Symbol polyfill.
Fixed semantics for multiple subscriptions in the obsolete Observable proposal polyfill.
Fixed argument validation order, which is observable in the error message.
The polyfill now throws for malformed descriptors.
Fixed repeated ToPropertyKey conversion, descriptor handling, and non-extensible receiver cases.
Fixed named backreferences and interactions among groups, dotAll, sticky, multiline, global, and Unicode modes; polyfills gain s, d, and v flag support where modern-engine bugs occur.
Updated the polyfill to the final spec for a case where this is updated.
Fixed iterator closing in the polyfill.
Fixed iterator closing in the polyfill.
Fixed missing errors for \u{} and some hex escaping at the end of strings.
Fixed argument validation order in the polyfill.
Fixed argument validation order in the polyfill.
Fixed argument validation order in the polyfill.
Fixed behavior with a counter exceeding 2 ** 32.
Fixed the sticky-mode polyfill.
Fixed argument validation order in the polyfill.
Fixed some cases of Infinity handling.
The polyfill now errors when multiple objects are transferred and some are non-transferable.
The polyfill wraps Symbol.for to correctly handle empty string descriptions.
Fixed constructor errors for an ArrayBuffer with negative length, some @@toStringTag cases, and some ToUint8Clamp conversions.
Fixed argument validation order.
Fixed parsing and serialization across non-special URLs, hosts, file URLs, percent encoding, protocol changes, and the origin getter for blob URLs.
Fixed deletion with duplicate key-value pairs and cases where the second argument could remove unnecessary entries.
Fixed handling of invalid UTF-8 code points, continuation bytes, and incomplete sequences.
Fixed a false positive in pure-version validation.
Adds workarounds for Safari before 13 silently ignoring writes to non-writable array length.
Uses CreateDataProperty and CreateDataPropertyOrThrow in previously missed cases.
Fixes and optimizes the RegExp constructor polyfill for NCG and dotAll.
Fixed increasing .size in the URLSearchParams.prototype.append polyfill in IE8-.