# What changed in core-js

> 97 changes in core-js 3 from its official release notes, upgrade guides and advisories: 8 breaking, 1 security, 10 new APIs and options. Each one cited. Sources checked 2026-10-17. HTML: https://unstale.sh/npm/core-js/

To see which of these apply to a repository, run `npx @unstale/cli init` in it.

## core-js 3

### Breaking changes

- Throws a TypeError instead of a RangeError when chunkSize is a non-integer number. (3.50.0) — [release notes](https://github.com/zloirock/core-js/releases/tag/v3.50.0)
- Throws a RangeError for a finite unsafe integer limit. (3.50.0) — [release notes](https://github.com/zloirock/core-js/releases/tag/v3.50.0)
- Throws a RangeError for a finite unsafe integer limit. (3.50.0) — [release notes](https://github.com/zloirock/core-js/releases/tag/v3.50.0)
- Throws a TypeError instead of a RangeError when windowSize is a non-integer number. (3.50.0) — [release notes](https://github.com/zloirock/core-js/releases/tag/v3.50.0)
- Fixes array-replacer behavior: key order follows the replacer, and inherited and non-enumerable properties are no longer ignored. (3.50.0) — [release notes](https://github.com/zloirock/core-js/releases/tag/v3.50.0)
- 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.0) — [release notes](https://github.com/zloirock/core-js/releases/tag/v3.49.0)
- The polyfill now throws for unterminated object and array literals and numbers with a decimal point but no fraction. (3.49.0) — [release notes](https://github.com/zloirock/core-js/releases/tag/v3.49.0)
- The polyfill now throws when called with only one argument. (3.49.0) — [release notes](https://github.com/zloirock/core-js/releases/tag/v3.49.0)

### Security

- Fixed exposure of buffer mutations in the polyfill. (3.49.0) — [release notes](https://github.com/zloirock/core-js/releases/tag/v3.49.0)

### New APIs and options

- Adds the Iterator.prototype.chunks built-in from the iterator chunking proposal. (3.50.0) — [release notes](https://github.com/zloirock/core-js/releases/tag/v3.50.0)
- Adds the Iterator.prototype.includes built-in from the stage 3 proposal. (3.50.0) — [release notes](https://github.com/zloirock/core-js/releases/tag/v3.50.0)
- Adds the Iterator.prototype.join built-in from the stage 3 proposal. (3.50.0) — [release notes](https://github.com/zloirock/core-js/releases/tag/v3.50.0)
- Adds the Iterator.prototype.windows built-in from the iterator chunking proposal. (3.50.0) — [release notes](https://github.com/zloirock/core-js/releases/tag/v3.50.0)
- Adds the Iterator.zip built-in from the joint iteration proposal. (3.50.0) — [release notes](https://github.com/zloirock/core-js/releases/tag/v3.50.0)
- Adds the Iterator.zipKeyed built-in from the joint iteration proposal. (3.50.0) — [release notes](https://github.com/zloirock/core-js/releases/tag/v3.50.0)
- Adds the Promise.allKeyed built-in from the Await dictionary of Promises proposal. (3.50.0) — [release notes](https://github.com/zloirock/core-js/releases/tag/v3.50.0)
- Adds the Promise.allSettledKeyed built-in from the Await dictionary of Promises proposal. (3.50.0) — [release notes](https://github.com/zloirock/core-js/releases/tag/v3.50.0)
- Adds es namespace modules and /es/ and /stable/ namespace entries for the Map upsert proposal. (3.48.0) — [release notes](https://github.com/zloirock/core-js/releases/tag/v3.48.0)
- Added JSON.parse support for the source text access proposal. (3.47.0) — [release notes](https://github.com/zloirock/core-js/releases/tag/v3.47.0)

### Performance

- Improves performance of escape. (3.50.0) — [release notes](https://github.com/zloirock/core-js/releases/tag/v3.50.0)
- Improves performance of Uint8Array base64 methods. (3.50.0) — [release notes](https://github.com/zloirock/core-js/releases/tag/v3.50.0)
- The polyfill has improved performance. (3.49.0) — [release notes](https://github.com/zloirock/core-js/releases/tag/v3.49.0)
- The polyfill has improved performance. (3.49.0) — [release notes](https://github.com/zloirock/core-js/releases/tag/v3.49.0)
- Fixed repeated ToPropertyKey conversion in the polyfill. (3.49.0) — [release notes](https://github.com/zloirock/core-js/releases/tag/v3.49.0)
- Fixed repeated ToPropertyKey conversion in the polyfill. (3.49.0) — [release notes](https://github.com/zloirock/core-js/releases/tag/v3.49.0)
- The polyfill has improved performance. (3.49.0) — [release notes](https://github.com/zloirock/core-js/releases/tag/v3.49.0)
- The polyfill has improved performance. (3.49.0) — [release notes](https://github.com/zloirock/core-js/releases/tag/v3.49.0)
- The polyfill has improved performance. (3.49.0) — [release notes](https://github.com/zloirock/core-js/releases/tag/v3.49.0)

### Behavior and default changes

- Compat data now marks the method as unsupported in modern Safari because of a browser bug. (3.49.0) — [release notes](https://github.com/zloirock/core-js/releases/tag/v3.49.0)
- 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.0) — [release notes](https://github.com/zloirock/core-js/releases/tag/v3.49.0)
- Adds the Map upsert method as a stable ES feature. (3.48.0) — [release notes](https://github.com/zloirock/core-js/releases/tag/v3.48.0)
- Adds the Map upsert method as a stable ES feature. (3.48.0) — [release notes](https://github.com/zloirock/core-js/releases/tag/v3.48.0)
- Adds the WeakMap upsert method as a stable ES feature. (3.48.0) — [release notes](https://github.com/zloirock/core-js/releases/tag/v3.48.0)
- Adds the WeakMap upsert method as a stable ES feature. (3.48.0) — [release notes](https://github.com/zloirock/core-js/releases/tag/v3.48.0)

### Fixes and other changes

- Adds the missed MAX_SAFE_INTEGER excess check to the polyfill. (3.50.0) — [release notes](https://github.com/zloirock/core-js/releases/tag/v3.50.0)
- Adds the missed MAX_SAFE_INTEGER excess check to the polyfill. (3.50.0) — [release notes](https://github.com/zloirock/core-js/releases/tag/v3.50.0)
- Improves polyfill accuracy with big and small values. (3.50.0) — [release notes](https://github.com/zloirock/core-js/releases/tag/v3.50.0)
- Improves polyfill accuracy with big and small values. (3.50.0) — [release notes](https://github.com/zloirock/core-js/releases/tag/v3.50.0)
- Adds the missed MAX_SAFE_INTEGER excess check to the polyfill. (3.50.0) — [release notes](https://github.com/zloirock/core-js/releases/tag/v3.50.0)
- Ensures opaque paths always roundtrip in the URL polyfill. (3.50.0) — [release notes](https://github.com/zloirock/core-js/releases/tag/v3.50.0)
- Uses PromiseResolve semantics. (3.50.0) — [release notes](https://github.com/zloirock/core-js/releases/tag/v3.50.0)
- Fixes the conversion order in the polyfill. (3.50.0) — [release notes](https://github.com/zloirock/core-js/releases/tag/v3.50.0)
- Fixes the conversion order in the polyfill. (3.50.0) — [release notes](https://github.com/zloirock/core-js/releases/tag/v3.50.0)
- Fixes a possible crash on some keys. (3.50.0) — [release notes](https://github.com/zloirock/core-js/releases/tag/v3.50.0)
- Makes URL parsing more correct, including character sets and percent coding. (3.50.0) — [release notes](https://github.com/zloirock/core-js/releases/tag/v3.50.0)
- Fixes URL#toJSON when URL#toString is reassigned after core-js is imported. (3.50.0) — [release notes](https://github.com/zloirock/core-js/releases/tag/v3.50.0)
- Makes URLSearchParams parsing more correct, including character sets and percent coding. (3.50.0) — [release notes](https://github.com/zloirock/core-js/releases/tag/v3.50.0)
- Fixed iterator closing when array property creation fails. (3.49.0) — [release notes](https://github.com/zloirock/core-js/releases/tag/v3.49.0)
- Fixed argument validation order and validation of counters at MAX_SAFE_INTEGER. (3.49.0) — [release notes](https://github.com/zloirock/core-js/releases/tag/v3.49.0)
- Fixed a possible error when the polyfill receives a frozen array. (3.49.0) — [release notes](https://github.com/zloirock/core-js/releases/tag/v3.49.0)
- Fixed argument validation order. (3.49.0) — [release notes](https://github.com/zloirock/core-js/releases/tag/v3.49.0)
- Fixed behavior with sparse arrays and fromIndex, including a modern Safari bug. (3.49.0) — [release notes](https://github.com/zloirock/core-js/releases/tag/v3.49.0)
- Fixed resizable ArrayBuffer transfer when newByteLength exceeds the original maxByteLength. (3.49.0) — [release notes](https://github.com/zloirock/core-js/releases/tag/v3.49.0)
- Fixed counter behavior and iterator closing order, including closing and return-result validation in flatMap, map, and take. (3.49.0) — [release notes](https://github.com/zloirock/core-js/releases/tag/v3.49.0)
- The obsolete blacklist option is no longer ignored; it will be removed only in the next major release. (3.49.0) — [release notes](https://github.com/zloirock/core-js/releases/tag/v3.49.0)
- Compat data was updated for Math.sumPrecise, Iterator.concat, parseInt, parseFloat, Deno, Electron, Opera for Android, and Oculus Quest Browser. (3.49.0) — [release notes](https://github.com/zloirock/core-js/releases/tag/v3.49.0)
- Fixed the esmodules: intersect option and added a missing reactnative alias in the types. (3.49.0) — [release notes](https://github.com/zloirock/core-js/releases/tag/v3.49.0)
- The constructor polyfill now errors when passed an ArrayBuffer and a negative length. (3.49.0) — [release notes](https://github.com/zloirock/core-js/releases/tag/v3.49.0)
- Fixed the polyfill for values in the (0, 1) range. (3.49.0) — [release notes](https://github.com/zloirock/core-js/releases/tag/v3.49.0)
- Fixed NaN handling in the polyfill. (3.49.0) — [release notes](https://github.com/zloirock/core-js/releases/tag/v3.49.0)
- Fixed some character casing cases in the polyfill. (3.49.0) — [release notes](https://github.com/zloirock/core-js/releases/tag/v3.49.0)
- Fixed another case of a V8/Chromium bug in the polyfill. (3.49.0) — [release notes](https://github.com/zloirock/core-js/releases/tag/v3.49.0)
- 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.0) — [release notes](https://github.com/zloirock/core-js/releases/tag/v3.49.0)
- 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.0) — [release notes](https://github.com/zloirock/core-js/releases/tag/v3.49.0)
- Improves polyfill accuracy with big and small values. (3.49.0) — [release notes](https://github.com/zloirock/core-js/releases/tag/v3.50.0), [release notes](https://github.com/zloirock/core-js/releases/tag/v3.49.0)
- The polyfill is more accurate with big and small values. (3.49.0) — [release notes](https://github.com/zloirock/core-js/releases/tag/v3.49.0)
- Fixed handling of ending zeroes in the fraction part and added extra input string validation. (3.49.0) — [release notes](https://github.com/zloirock/core-js/releases/tag/v3.49.0)
- The polyfill is more accurate with big and small values. (3.49.0) — [release notes](https://github.com/zloirock/core-js/releases/tag/v3.49.0)
- Fixed possible loss of symbol enumerability and the return value in the Symbol polyfill. (3.49.0) — [release notes](https://github.com/zloirock/core-js/releases/tag/v3.49.0)
- Fixed semantics for multiple subscriptions in the obsolete Observable proposal polyfill. (3.49.0) — [release notes](https://github.com/zloirock/core-js/releases/tag/v3.49.0)
- Fixed argument validation order, which is observable in the error message. (3.49.0) — [release notes](https://github.com/zloirock/core-js/releases/tag/v3.49.0)
- The polyfill now throws for malformed descriptors. (3.49.0) — [release notes](https://github.com/zloirock/core-js/releases/tag/v3.49.0)
- Fixed repeated ToPropertyKey conversion, descriptor handling, and non-extensible receiver cases. (3.49.0) — [release notes](https://github.com/zloirock/core-js/releases/tag/v3.49.0)
- 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.0) — [release notes](https://github.com/zloirock/core-js/releases/tag/v3.49.0)
- Updated the polyfill to the final spec for a case where this is updated. (3.49.0) — [release notes](https://github.com/zloirock/core-js/releases/tag/v3.49.0)
- Fixed iterator closing in the polyfill. (3.49.0) — [release notes](https://github.com/zloirock/core-js/releases/tag/v3.49.0)
- Fixed iterator closing in the polyfill. (3.49.0) — [release notes](https://github.com/zloirock/core-js/releases/tag/v3.49.0)
- Fixed missing errors for \u{} and some hex escaping at the end of strings. (3.49.0) — [release notes](https://github.com/zloirock/core-js/releases/tag/v3.49.0)
- Fixed argument validation order in the polyfill. (3.49.0) — [release notes](https://github.com/zloirock/core-js/releases/tag/v3.49.0)
- Fixed argument validation order in the polyfill. (3.49.0) — [release notes](https://github.com/zloirock/core-js/releases/tag/v3.49.0)
- Fixed argument validation order in the polyfill. (3.49.0) — [release notes](https://github.com/zloirock/core-js/releases/tag/v3.49.0)
- Fixed behavior with a counter exceeding 2 ** 32. (3.49.0) — [release notes](https://github.com/zloirock/core-js/releases/tag/v3.49.0)
- Fixed the sticky-mode polyfill. (3.49.0) — [release notes](https://github.com/zloirock/core-js/releases/tag/v3.49.0)
- Fixed argument validation order in the polyfill. (3.49.0) — [release notes](https://github.com/zloirock/core-js/releases/tag/v3.49.0)
- Fixed some cases of Infinity handling. (3.49.0) — [release notes](https://github.com/zloirock/core-js/releases/tag/v3.49.0)
- The polyfill now errors when multiple objects are transferred and some are non-transferable. (3.49.0) — [release notes](https://github.com/zloirock/core-js/releases/tag/v3.49.0)
- The polyfill wraps Symbol.for to correctly handle empty string descriptions. (3.49.0) — [release notes](https://github.com/zloirock/core-js/releases/tag/v3.49.0)
- Fixed constructor errors for an ArrayBuffer with negative length, some @@toStringTag cases, and some ToUint8Clamp conversions. (3.49.0) — [release notes](https://github.com/zloirock/core-js/releases/tag/v3.49.0)
- Fixed argument validation order. (3.49.0) — [release notes](https://github.com/zloirock/core-js/releases/tag/v3.49.0)
- Fixed parsing and serialization across non-special URLs, hosts, file URLs, percent encoding, protocol changes, and the origin getter for blob URLs. (3.49.0) — [release notes](https://github.com/zloirock/core-js/releases/tag/v3.49.0)
- Fixed deletion with duplicate key-value pairs and cases where the second argument could remove unnecessary entries. (3.49.0) — [release notes](https://github.com/zloirock/core-js/releases/tag/v3.49.0)
- Fixed handling of invalid UTF-8 code points, continuation bytes, and incomplete sequences. (3.49.0) — [release notes](https://github.com/zloirock/core-js/releases/tag/v3.49.0)
- Fixed a false positive in pure-version validation. (3.49.0) — [release notes](https://github.com/zloirock/core-js/releases/tag/v3.49.0)
- Adds workarounds for Safari before 13 silently ignoring writes to non-writable array length. (3.48.0) — [release notes](https://github.com/zloirock/core-js/releases/tag/v3.48.0)
- Uses CreateDataProperty and CreateDataPropertyOrThrow in previously missed cases. (3.48.0) — [release notes](https://github.com/zloirock/core-js/releases/tag/v3.48.0)
- Fixes and optimizes the RegExp constructor polyfill for NCG and dotAll. (3.48.0) — [release notes](https://github.com/zloirock/core-js/releases/tag/v3.48.0)
- Fixed increasing .size in the URLSearchParams.prototype.append polyfill in IE8-. (3.47.0) — [release notes](https://github.com/zloirock/core-js/releases/tag/v3.47.0)
