unstale

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 init

@unstale/cli 0.1.1 on npm

core-js 397 changes

Breaking changes 8

  • Throws a TypeError instead of a RangeError when chunkSize is a non-integer number.

    3.50.0release notes

  • Throws a RangeError for a finite unsafe integer limit.

    3.50.0release notes

  • Throws a RangeError for a finite unsafe integer limit.

    3.50.0release notes

  • Throws a TypeError instead of a RangeError when windowSize is a non-integer number.

    3.50.0release notes

  • Fixes array-replacer behavior: key order follows the replacer, and inherited and non-enumerable properties are no longer ignored.

    3.50.0release notes

  • 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.

    3.49.0release notes

  • The polyfill now throws for unterminated object and array literals and numbers with a decimal point but no fraction.

    3.49.0release notes

  • The polyfill now throws when called with only one argument.

    3.49.0release notes

Security 1

  • Fixed exposure of buffer mutations in the polyfill.

    3.49.0release notes

New APIs and options 10

  • Adds the Iterator.prototype.chunks built-in from the iterator chunking proposal.

    3.50.0release notes

  • Adds the Iterator.prototype.includes built-in from the stage 3 proposal.

    3.50.0release notes

  • Adds the Iterator.prototype.join built-in from the stage 3 proposal.

    3.50.0release notes

  • Adds the Iterator.prototype.windows built-in from the iterator chunking proposal.

    3.50.0release notes

  • Adds the Iterator.zip built-in from the joint iteration proposal.

    3.50.0release notes

  • Adds the Iterator.zipKeyed built-in from the joint iteration proposal.

    3.50.0release notes

  • Adds the Promise.allKeyed built-in from the Await dictionary of Promises proposal.

    3.50.0release notes

  • Adds the Promise.allSettledKeyed built-in from the Await dictionary of Promises proposal.

    3.50.0release notes

  • Adds es namespace modules and /es/ and /stable/ namespace entries for the Map upsert proposal.

    3.48.0release notes

  • Added JSON.parse support for the source text access proposal.

    3.47.0release notes

Performance 9

Behavior and default changes 6

  • Compat data now marks the method as unsupported in modern Safari because of a browser bug.

    3.49.0release notes

  • Methods from the Map upsert proposal have minor performance optimizations; pure-version methods are now generic and work with polyfilled and native collections.

    3.49.0release notes

  • Adds the Map upsert method as a stable ES feature.

    3.48.0release notes

  • Adds the Map upsert method as a stable ES feature.

    3.48.0release notes

  • Adds the WeakMap upsert method as a stable ES feature.

    3.48.0release notes

  • Adds the WeakMap upsert method as a stable ES feature.

    3.48.0release notes

Fixes and other changes 63

  • Adds the missed MAX_SAFE_INTEGER excess check to the polyfill.

    3.50.0release notes

  • Adds the missed MAX_SAFE_INTEGER excess check to the polyfill.

    3.50.0release notes

  • Improves polyfill accuracy with big and small values.

    3.50.0release notes

  • Improves polyfill accuracy with big and small values.

    3.50.0release notes

  • Adds the missed MAX_SAFE_INTEGER excess check to the polyfill.

    3.50.0release notes

  • Ensures opaque paths always roundtrip in the URL polyfill.

    3.50.0release notes

  • Uses PromiseResolve semantics.

    3.50.0release notes

  • Fixes the conversion order in the polyfill.

    3.50.0release notes

  • Fixes the conversion order in the polyfill.

    3.50.0release notes

  • Fixes a possible crash on some keys.

    3.50.0release notes

  • Makes URL parsing more correct, including character sets and percent coding.

    3.50.0release notes

  • Fixes URL#toJSON when URL#toString is reassigned after core-js is imported.

    3.50.0release notes

  • Makes URLSearchParams parsing more correct, including character sets and percent coding.

    3.50.0release notes

  • Fixed iterator closing when array property creation fails.

    3.49.0release notes

  • Fixed argument validation order and validation of counters at MAX_SAFE_INTEGER.

    3.49.0release notes

  • Fixed a possible error when the polyfill receives a frozen array.

    3.49.0release notes

  • Fixed argument validation order.

    3.49.0release notes

  • Fixed behavior with sparse arrays and fromIndex, including a modern Safari bug.

    3.49.0release notes

  • Fixed resizable ArrayBuffer transfer when newByteLength exceeds the original maxByteLength.

    3.49.0release notes

  • Fixed counter behavior and iterator closing order, including closing and return-result validation in flatMap, map, and take.

    3.49.0release notes

  • The obsolete blacklist option is no longer ignored; it will be removed only in the next major release.

    3.49.0release notes

  • Compat data was updated for Math.sumPrecise, Iterator.concat, parseInt, parseFloat, Deno, Electron, Opera for Android, and Oculus Quest Browser.

    3.49.0release notes

  • Fixed the esmodules: intersect option and added a missing reactnative alias in the types.

    3.49.0release notes

  • The constructor polyfill now errors when passed an ArrayBuffer and a negative length.

    3.49.0release notes

  • Fixed the polyfill for values in the (0, 1) range.

    3.49.0release notes

  • Fixed NaN handling in the polyfill.

    3.49.0release notes

  • Fixed some character casing cases in the polyfill.

    3.49.0release notes

  • Fixed another case of a V8/Chromium bug in the polyfill.

    3.49.0release notes

  • Fixed string iterable handling, iterator closing, and validation of iterator next results; the pure version forces replacement to return properly wrapped Iterator instances.

    3.49.0release notes

  • Fixed string iterable handling, iterator closing, and validation of iterator next results; the pure version forces replacement to return properly wrapped Iterator instances.

    3.49.0release notes

  • Improves polyfill accuracy with big and small values.

    3.49.0release notesrelease notes

  • The polyfill is more accurate with big and small values.

    3.49.0release notes

  • Fixed handling of ending zeroes in the fraction part and added extra input string validation.

    3.49.0release notes

  • The polyfill is more accurate with big and small values.

    3.49.0release notes

  • Fixed possible loss of symbol enumerability and the return value in the Symbol polyfill.

    3.49.0release notes

  • Fixed semantics for multiple subscriptions in the obsolete Observable proposal polyfill.

    3.49.0release notes

  • Fixed argument validation order, which is observable in the error message.

    3.49.0release notes

  • The polyfill now throws for malformed descriptors.

    3.49.0release notes

  • Fixed repeated ToPropertyKey conversion, descriptor handling, and non-extensible receiver cases.

    3.49.0release notes

  • 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.

    3.49.0release notes

  • Updated the polyfill to the final spec for a case where this is updated.

    3.49.0release notes

  • Fixed iterator closing in the polyfill.

    3.49.0release notes

  • Fixed iterator closing in the polyfill.

    3.49.0release notes

  • Fixed missing errors for \u{} and some hex escaping at the end of strings.

    3.49.0release notes

  • Fixed argument validation order in the polyfill.

    3.49.0release notes

  • Fixed argument validation order in the polyfill.

    3.49.0release notes

  • Fixed argument validation order in the polyfill.

    3.49.0release notes

  • Fixed behavior with a counter exceeding 2 ** 32.

    3.49.0release notes

  • Fixed the sticky-mode polyfill.

    3.49.0release notes

  • Fixed argument validation order in the polyfill.

    3.49.0release notes

  • Fixed some cases of Infinity handling.

    3.49.0release notes

  • The polyfill now errors when multiple objects are transferred and some are non-transferable.

    3.49.0release notes

  • The polyfill wraps Symbol.for to correctly handle empty string descriptions.

    3.49.0release notes

  • Fixed constructor errors for an ArrayBuffer with negative length, some @@toStringTag cases, and some ToUint8Clamp conversions.

    3.49.0release notes

  • Fixed argument validation order.

    3.49.0release notes

  • Fixed parsing and serialization across non-special URLs, hosts, file URLs, percent encoding, protocol changes, and the origin getter for blob URLs.

    3.49.0release notes

  • Fixed deletion with duplicate key-value pairs and cases where the second argument could remove unnecessary entries.

    3.49.0release notes

  • Fixed handling of invalid UTF-8 code points, continuation bytes, and incomplete sequences.

    3.49.0release notes

  • Fixed a false positive in pure-version validation.

    3.49.0release notes

  • Adds workarounds for Safari before 13 silently ignoring writes to non-writable array length.

    3.48.0release notes

  • Uses CreateDataProperty and CreateDataPropertyOrThrow in previously missed cases.

    3.48.0release notes

  • Fixes and optimizes the RegExp constructor polyfill for NCG and dotAll.

    3.48.0release notes

  • Fixed increasing .size in the URLSearchParams.prototype.append polyfill in IE8-.

    3.47.0release notes