NewYour coding agent can read the release notes before it upgrades.Set up the MCP server →
npm · #2007 most downloaded on npm
Standard library
Last release 1 months ago
05 Aug 2026
Ships fairly regularly
a new release about every 2 months
Nearly every release is documented
notes for 53 of 53 stable releases
113 versions withdrawn
withdrawn after publishing
9 years old
166 releases · first in 2018
Ensured proper .length of polyfilled functions even in compressed code (excepting some ancient engines)
.length of polyfilled functions even in compressed code (excepting some ancient engines).name of polyfilled accessors (excepting some ancient engines)ToString conversion of polyfilled accessorsOne column per quarter.
Added a fix for FF99+ Array.prototype.includes broken on sparse arrays
Array.prototype.includes broken on sparse arraysFixed URLSearchParams in IE8- that was broken in the previous release
URLSearchParams in IE8- that was broken in the previous release__lookupGetter__ entriesImproved some cases of RegExp flags handling
RegExp flags handlingfetch APIWe can't completely remove this method since it's a breaking change. But this proposal has been promoted to stage 3 - so the proposal should be promot…
Array by copy proposal:
/actual/ entry points for methods from this proposalArray.prototype.toSpliced throws a TypeError instead of RangeError if the result length is more than MAX_SAFE_INTEGER, proposal-change-array-by-copy/70atob / btoa fixes:
atob does not ignore spaces, node/42530atob does not validate encoding, node/42646/full/ namespace as the replacement for /features/ since it's more descriptive in context of the rest namespaces (/es/ ⊆ /stable/ ⊆ /actual/ ⊆ /full/)%TypedArray%.prototype.groupBy was removed from the Array grouping proposal a long time ago. We can't completely remove this method since it's a breaking change. But this proposal has been promoted to stage 3 - so the proposal should be promoted without this method, this method should not be available in /actual/ entries - but it should be available in early-stage entries to avoid breakage.core-js-compat -> core-js-builder -> core-js-bundle output. That mean that if the output contains, for example, es.object.has-own, the legacy reference to it, esnext.object.has-own, no longer added.core-js-builder and core-js-compat, now it's modules and exclude optionstargets option of core-js-compat means that the targets filter just will not be applied, so the result will contain modules required for all possible engines.stack property on DOMException marked as supported from Deno 1.15Added a bugfix for the WebKit Array.prototype.{ groupBy, groupByToMap } implementation
Added the proper validation of arguments to some methods from web standards
atobbtoaDetects and replaces broken third-party Function#bind polyfills, uses only native Function#bind in the internals
Function#bind polyfills, uses only native Function#bind in the internalsstructuredClone should throw an error if no arguments passed__core-js_shared__Added a fix of a V8 ~ Chrome 36- `Object.{ defineProperty, defineProperties }` bug, Babel issue
Object.{ defineProperty, defineProperties } bug, Babel issue%TypedArray%.prototype.set bugs, affects modern engines (like Chrome < 95 or Safari < 14.1)Fixed the order of calling reactions of already fulfilled / rejected promises in Promise.prototype.then, #1026
Promise.prototype.then, #1026Added structuredClone method from the HTML spec, see MDN
structuredClone method from the HTML spec, see MDN
html/5749DOMException polyfill, the Web IDL spec, see MDN
DOMException and its attributes polyfills with fixes of many different engines bugsDOMException#stack property polyfill in engines that should have itDOMException implementations where it's possible (for example, in old NodeJS where it's not exposed as global)cause on all Error typesError.prototype.toString method polyfill with fixes of many different bugs of JS enginesNumber.prototype.toExponential method polyfill with fixes of many different bugs of JS enginesArray grouping proposal:
Array.prototype.groupByToMap method@@species supportArray by copy stage 2 proposal:
Array.prototype.toReversedArray.prototype.toSortedArray.prototype.toSplicedArray.prototype.with%TypedArray%.prototype.toReversed%TypedArray%.prototype.toSorted%TypedArray%.prototype.toSpliced%TypedArray%.prototype.withIterator.prototype.toAsync method from the iterator helpers stage 2 proposalArray.fromAsync proposal moved to stage 2String.cooked stage 1 proposal:Function.prototype.unThis stage 0 proposalFunction.{ isCallable, isConstructor } stage 0 proposal:
Function.isCallableFunction.isConstructorString#at after loading obsolete String#at proposal module, #1019Array.prototype.{ values, @@iterator }.name in V8 ~ Chrome 45-core-js/actual/** namespaceFixed internal slots check in methods of some built-in types, #1017
URLSearchParams iterator .next that should be enumerable by the specSubscriptionAdded a workaround for a UC Browser specific version bug with unobservable RegExp#sticky flag, #1008, #1015
RegExp#sticky flag, #1008, #1015Function#name polyfill, #1010, thanks @ildar-shaimordanovArray.prototype[@@species]URL and URLSearchParamsAdded a workaround for FF26- bug where ArrayBuffers are non-extensible, but Object.isExtensible does not report it:
ArrayBuffers are non-extensible, but Object.isExtensible does not report it:
Object.{ isExtensible, isSealed, isFrozen } and Reflect.isExtensibleArrayBuffers as collections keysObject#toString on AggregateError in IE10-WeakMap in IE8-.findLast methods family marked as supported from Chrome 97web. modulesMost built-ins are encapsulated in core-js for preventing possible cases of breaking / observing the internal state by patching / deleting of them
core-js for preventing possible cases of breaking / observing the internal state by patching / deleting of them
.call / .apply prototype methods that could be patchedinstanceof operator - implicit .prototype / @@hasInstance access that could be patchedRegExp#test, String#match and some over methods - implicit .exec and RegExp well-known symbols access that could be patchedError stack from extra entries experimentally added to AggregateError, #996, in case lack of problems it will be extended to other casesSymbol support, new well-known symbols created with usage Symbol.for for ensuring the same keys in different realms, #998process polyfill bug that incorrectly reports V8 version that's used in some cases of core-js feature detectionmessage AggregateError argumentMath.scale, a spec draft bugcore-js-builder work in NodeJS 17, added a workaround of webpack + NodeJS 17 issueFixed the prototype chain of AggregateError constructor that should contain Error constructor
AggregateError constructor that should contain Error constructorAggregateError.prototype properties descriptorsInstallErrorCause internal operationObject.hasOwn marked as supported from Safari 15.1Early { Array, %TypedArray% }.fromAsync errors moved to the promise, per the latest changes of the spec draft
{ Array, %TypedArray% }.fromAsync errors moved to the promise, per the latest changes of the spec draftToInteger(OrInfinity) operation returns +0 for -0 argument, ES2020+ updateNumber constructor wrapperString.raw with extra argumentsFixed String.prototype.substr feature detection and compat data
String.prototype.substr feature detection and compat data.forEach from prototypes of some DOM collections where it shouldn't be, #988, #987, thanks @moorejscause to AggregateError constructor implementation (still without adding to the feature detection).at and .findLast methods marked as supported in Safari TPAdded `Array.fromAsync` stage 1 proposal:
Array.fromAsync stage 1 proposal:
Array.fromAsync%TypedArray%.fromAsync.name and .toString() on polyfilled functions improved in many different casesIsConstructor and IsCallable checksGetMethod operationparseInt / parseFloat with boxed symbolses.array.{ index-of, last-index-of } compat dataFixed some possible problems related to possible extension of %IteratorPrototype% and %AsyncIteratorPrototype% in the future
%IteratorPrototype% and %AsyncIteratorPrototype% in the futureDOMTokenList.prototype.{ forEach, @@iterator, keys, values, entries } in old WebKit versions where element.classList is not an instance of global DOMTokenListFixed missed cases of ES3 reserved words usage, related to #980
Fixed missed modules-by-versions data
modules-by-versions dataAccessible `Object.prototype.hasOwnProperty` (`Object.hasOwn`) proposal moved to the stable ES, per August 2021 TC39 meeting
Object.prototype.hasOwnProperty (Object.hasOwn) proposal moved to the stable ES, per August 2021 TC39 meeting.at) proposal moved to the stable ES, per August 2021 TC39 meetingString.prototype.at. It was not exposed because of the conflict with the alternative obsolete proposal (that will be completely removed in the next major version). For the backward compatibility, in the case of loading this proposal, it will be overwritten.AsyncFromSyncIterator made stricter, related mainly to AsyncIterator.from and AsyncIterator.prototype.flatMap
AsyncFromSyncIterator made stricter, related mainly to AsyncIterator.from and AsyncIterator.prototype.flatMap.next arguments in (Async)Iterator methods is aligned with the current spec draft (mainly - ignoring the first passed to .next argument in built-in generators).next, .return, .throw methods on AsyncIterator helpers proxy iterators aligned with the current spec draft (built-in async generators) (mainly - some early errors moved to returned promises)Fixed CreateAsyncFromSyncIterator semantic in AsyncIterator.from, related to #765
Added a workaround of a Closure Compiler unsafe optimization, #972
Fixed microtask implementation on iOS Pebble, #967
`Array` find from last proposal moved to the stage 3, July 2021 TC39 meeting
Array find from last proposal moved to the stage 3, July 2021 TC39 meetingArray filtering stage 1 proposal:
Array.prototype.filterReject replaces Array.prototype.filterOut%TypedArray%.prototype.filterReject replaces %TypedArray%.prototype.filterOutArray grouping stage 1 proposal:
Array.prototype.groupBy%TypedArray%.prototype.groupBy@@toPrimitive in some cases of ToPrimitive internal logic made stricterRequest with polyfilled URLSearchParams, #965Object.create(null) on WSH, #966RegExp#execDate.prototype.getYear feature detectiondeno target in core-js-compat / core-js-buildersummary option to core-js-builder, see more info in the README, #910Worked around breakage related to zone.js loaded before core-js, #953
zone.js loaded before core-js, #953Fixed cloning of regex through RegExp constructor, #948
RegExp constructor, #948Added RegExp named capture groups polyfill, #521, #944
RegExp named capture groups polyfill, #521, #944RegExp dotAll flag polyfill, #792, #944escapeunescapeString.prototype.substrDate.prototype.getYearDate.prototype.setYearDate.prototype.toGMTStringURL polyfillrhino target in core-js-compat / core-js-builder, added compat data for rhino 1.7.13, #942, thanks @gausie.at marked as supported from FF90Added polyfill of stable sort in { Array, %TypedArray% }.prototype.sort, #769
{ Array, %TypedArray% }.prototype.sort, #769Safari 14.0- %TypedArray%.prototype.sort validation of arguments bug.at marked as supported from V8 9.2Overwrites get-own-property-symbols third-party Symbol polyfill if it's used since it causes a stack overflow, #774
Accessible Object#hasOwnProperty (Object.hasOwn) proposal moved to the stage 3, May 2021 TC39 meeting
Object#hasOwnProperty (Object.hasOwn) proposal moved to the stage 3, May 2021 TC39 meetingFixed some cases of Function#toString with multiple core-js instances
Function#toString with multiple core-js instancesString#split polyfill problems in V8 5.1Added well-known symbol Symbol.metadata for decorators stage 2 proposal
Symbol.metadata for decorators stage 2 proposalSymbol.matcher for pattern matching stage 1 proposalString(Symbol()) bug, #933Native promise-based APIs Promise#{ catch, finally } returns polyfilled Promise instances when it's required
Promise#{ catch, finally } returns polyfilled Promise instances when it's requiredAdded a workaround of WebKit ~ iOS 10.3 Safari Promise bug, #932
Promise bug, #932Promise#then of incorrect native Promise implementations with correct subclassing no longer wrappedPromise feature detection, removed unhandled rejection tracking check in non-browser non-node platformsMade instanceof Promise and .constructor === Promise work with polyfilled Promise for all native promise-based APIs
instanceof Promise and .constructor === Promise work with polyfilled Promise for all native promise-based APIs%TypedArray% static methods, #564Added accessible `Object#hasOwnProperty` stage 2 proposal
Object#hasOwnProperty stage 2 proposal
Object.hasOwn methodRegExp constructor problem with multiple global core-js instancesURL and URLSearchParams marked as supported from Safari 14.0
URL and URLSearchParams marked as supported from Safari 14.0Prevented possible RegExp#split problems in old engines, #751, #919
`Array` find from last proposal moved to the stage 2, March TC39 meeting
Array find from last proposal moved to the stage 2, March TC39 meetingRegExp#exec problems in some old engines, #920Added a workaround for Chrome 38-40 bug which does not allow to inherit symbols (incl. well-known) from DOM collections prototypes to instances, #37
NumericRangeIterator as toStringTag instead of RangeIterator in { Number, BigInt }.range iterator, per this PRAdded `Array` find from last stage 1 proposal
Array find from last stage 1 proposal
Array#findLastArray#findLastIndex%TypedArray%#findLast%TypedArray%#findLastIndex%TypedArray%#uniqueBy method for array deduplication stage 1 proposal
%TypedArray%#uniqueByToLength detection from array methods feature detection which could cause hanging FF11-21 and some versions of old WebKit, #764core-js-bundle uses terser instead of uglify-jsFixed some more issues related to FF44- legacy Iterator, #906
Iterator, #906Fixed handling of special replacements patterns in String#replaceAll, #900
Fixed work of new %TypedArray% methods on BigInt arrays
%TypedArray% methods on BigInt arraysNumber constructor wrapperAdded relative indexing method stage 3 proposal
Array#at%TypedArray%#atNumber.range stage 1 proposal
Number.rangeBigInt.rangeArray#filterOut%TypedArray%#filterOutArray#uniqueByString#at for preventing breakage code which use obsolete String#at proposal polyfill(es|stable)/instance/replace-all entriescore-js-builder blacklist option in favor of excludeString#replaceAll moved to the stable ES, per June TC39 meeting
String#replaceAll moved to the stable ES, per June TC39 meetingPromise.any and AggregateError moved to the stable ES, per July TC39 meetingReflect[@@toStringTag], per July TC39 meetingArray#{ reduce, reduceRight } in Chrome 80-82 because of a bug, #766upsert proposal, { Map, WeakMap }#emplace replace { Map, WeakMap }#upsert, these obsolete methods will be removed in the next major releaseAggregateError#errors is own data propertyprocess.nextTick have a less priority when Promise in the microtask implementation, #855MutationObserver, but without document, #865, #866core-js-builder with an empty (after the targets engines or another filtration) modules list, #822window.onunhandledrejection, #760core-js, #880Reflect.set polyfill bug, #847Fixed setImmediate in Safari #770, thanks @dtinth
Prevented a possible almost infinite loop in non-standard implementations of some backward iteration array methods
Fixed replacement of substitutes of undefined capture groups in .replace in Safari 13.0-, #471, #745, thanks @mattclough1
.replace in Safari 13.0-, #471, #745, thanks @mattclough1Fixed early implementations of Array#{ every, forEach, includes, indexOf, lastIndexOf, reduce, reduceRight, slice, some, splice } for the usage of ToL
Array#{ every, forEach, includes, indexOf, lastIndexOf, reduce, reduceRight, slice, some, splice } for the usage of ToLengthRegExp#exec dependency to methods which depends on the correctness of logic of this method (3.6.0-3.6.1 issue), #741Fixed a bug related Symbol with multiple copies of core-js (for 3.4.2-3.6.0), #736
Symbol with multiple copies of core-js (for 3.4.2-3.6.0), #736Added support of sticky (y) RegExp flag, #372, #732, #492, thanks @cvle and @nicolo-ribaudo
y) RegExp flag, #372, #732, #492, thanks @cvle and @nicolo-ribaudoRegExp#test delegation to RegExp#exec, #732, thanks @cvleObject.create(null) in IE8-, #727, #728, thanks @aleen42core-js-compat and core-js-builder targets argumenttargets.esmodules, targets.browsers, targets.node options in core-js-compat and core-js-builderfeatures/instance/match-all entry compat dataArray.prototype[@@unscopables] descriptor (was writable)Added object iteratoration stage 1 proposal:
Object.iterateKeysObject.iterateValuesObject.iterateEntriesAdded one more workaround for broken in previous versions inspectSource helper, #719
inspectSource helper, #719es.string.match-all marked as completely supported in FF73core-js-compat/modules since often we need just the list of core-js modules- Fixed an NPM publishing issue
Improved iOS compat data - added missed mapping iOS 12.2 -> Safari 12.1, added bug fixes from patch releases
core-js-compat helpers ie_mob normalizationgetModulesListForTargetVersion core-js-compat helperpostinstall script, #707Your coding agent can read these notes before it upgrades. Set up the MCP server →