NewYour coding agent can read the release notes before it upgrades.Set up the MCP server →
npm · #572 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
234 versions withdrawn
withdrawn after publishing
13 years old
289 releases · first in 2013
Add direct .exec calling to RegExp#{@@replace, @@split, @@match, @@search}. Also, added fixes for RegExp#exec method. #411, #428, #434, #435, #453, #4
.exec calling to RegExp#{@@replace, @@split, @@match, @@search}. Also, added fixes for RegExp#exec method. #428, #435, #458, thanks @nicolo-ribaudo.One column per quarter.
Get rid of reserved variable name final, related #400
final, related #400Forced replace native Promise in V8 6.6 (Node 10 and Chrome 66) because of a bug with resolving custom thenables
Promise in V8 6.6 (Node 10 and Chrome 66) because of a bug with resolving custom thenablesPromise in microtask implementation, #396Fix some edge cases of Reflect.set, #392 and #393
Fixed one case of deoptimization built-in iterators in V8, related #377
Promise, #367Number.{parseInt, parseFloat} entry points__(define|lookup)[GS]etter__ export in the library versionFixed calling onunhandledrejectionhandler multiple times for one Promise chain, #318
MutationObserver no longer used for microtask implementation in iOS Safari because of bug with scrolling, #339
Updated Promise#finally per tc39/proposal-promise-finally#37
Promise#finally per tc39/proposal-promise-finally#37shim versionUpdated global stage 3 proposal - added global global object, System.global deprecated
Promise#finally stage 3 proposal, #225Promise.try stage 1 proposalArray#flatten and Array#flatMap stage 1 proposal.of and .from methods on collection constructors stage 1 proposal:
Map.ofSet.ofWeakSet.ofWeakMap.ofMap.fromSet.fromWeakSet.fromWeakMap.fromMath extensions stage 1 proposal, #226:
Math.clampMath.DEG_PER_RADMath.degreesMath.fscaleMath.RAD_PER_DEGMath.radiansMath.scaleMath.signbit stage 1 proposalglobal stage 3 proposal - added global global object, System.global deprecatedObject.getOwnPropertyDescriptors to the final version - it should not create properties if descriptors are undefinedCSSStyleDeclaration#@@iteratorCSSValueList#@@iteratorClientRectList#@@iteratorDOMRectList#@@iteratorDOMStringList#@@iteratorDataTransferItemList#@@iteratorFileList#@@iteratorHTMLAllCollection#@@iteratorHTMLCollection#@@iteratorHTMLFormElement#@@iteratorHTMLSelectElement#@@iteratorMimeTypeArray#@@iteratorNamedNodeMap#@@iteratorPaintRequestList#@@iteratorPlugin#@@iteratorPluginArray#@@iteratorSVGLengthList#@@iteratorSVGNumberList#@@iteratorSVGPathSegList#@@iteratorSVGPointList#@@iteratorSVGStringList#@@iteratorSVGTransformList#@@iteratorSourceBufferList#@@iteratorTextTrackCueList#@@iteratorTextTrackList#@@iteratorTouchList#@@iterator%TypedArray%.from Safari bug, #285Function#name no longer cache the result for correct behaviour with inherited constructors, #296Set#size with debugger ReactNative for Android, #297WeakMap polyfills, #252Date#toJSON in engines without native Date#toISOString, #220webpack, uglify, etc)fixed script tag for some parsers, #204, #216
Added Observable, stage 1 proposal
Observable, stage 1 proposalObject.{getOwnPropertySymbols, getOwnPropertyDescriptor} and Object#propertyIsEnumerable on Object.prototypeReflect.construct and Reflect.apply should throw an error if argumentsList argument is not an object, #194Added asap for enqueuing microtasks, stage 0 proposal
asap for enqueuing microtasks, stage 0 proposalSymbol.asyncIterator for stage 2 async iteration proposalSymbol.observable for stage 1 observables proposalString#{padStart, padEnd} returns original string if filler is empty string, TC39 meeting notesObject.values and Object.entries moved to stage 4 from 3, TC39 meeting notesSystem.global moved to stage 2 from 1, TC39 meeting notesMap#toJSON and Set#toJSON rejected and will be removed from the next major release, TC39 meeting notesError.isError withdrawn and will be removed from the next major release, TC39 meeting notesFunction#name on non-extensible functions and functions with broken toString conversion, #193Added conversion -0 to +0 to Array#{indexOf, lastIndexOf}, ES2016 fix
-0 to +0 to Array#{indexOf, lastIndexOf}, ES2016 fixMath methods in Tor BrowserArray.{from, of} no longer calls prototype settersFixed Object.getOwnPropertyNames(window) 2.1+ versions bug, #181
Object.getOwnPropertyNames(window) 2.1+ versions bug, #181Added String#matchAll, proposal
String#matchAll, proposalObject#__(define|lookup)[GS]etter__, annex B ES2017@@toPrimitive methods to Date and Symbol%TypedArray%#slice in Edge ~ 13 (throws with @@species and wrapped / inherited constructor)Improved support NodeJS domains in Promise#then, #180
Added fallback for Symbol polyfill in Qt Script, #173
Added fallback for `es6-promise` package bug, #176
es6-promise package bug, #176Browsers rejectionhandled event better HTML spec complaint
Promise fixes:
rejectionhandled event better HTML spec complaintAdded detection unhandled rejection tracking support - now it's available everywhere, #140
Promise improvements:
@@species pattern support for completely correct subclassingObject.setPrototypeOf from feature detection and noisy console message about it in FFPromise.all fixed for some very specific casesReflect.enumerate deprecated and will be removed from the next major release, January TC39 meeting
core-js/(library/)es5Object statics - should accept primitives, new whitespaces lists in String#trim, parse(Int|float), RegExp#toString logic, String#split, etc@@species and ToLength logic in Array methods, Date parsing, Function#bind, etcArray.isArray and Date.nowObject.getOwnPropertyDescriptors moved to the stage 3, January TC39 meetingumd option for custom build process, #169Array statics, removed in 2.0, for compatibility with babel 6 and for future fixesReflect.enumerate deprecated and will be removed from the next major release, January TC39 meetingReflect metadata API as a pre-strawman feature, #152:
Reflect.defineMetadataReflect.deleteMetadataReflect.getMetadataReflect.getMetadataKeysReflect.getOwnMetadataReflect.getOwnMetadataKeysReflect.hasMetadataReflect.hasOwnMetadataReflect.metadataDate#toJSONparseInt and Number.parseIntparseFloat and Number.parseFloatRegExp#toStringArray#sortNumber#toFixedNumber#toPrecisionString#split (RegExp#@@split)Number and RegExp constructors with native class syntaxSharedArrayBuffer and buffers from other realms in typed arrays wrappersObject.{defineProperty, getOwnPropertyDescriptor} and Reflect.definePropertyArray#lastIndexOf with negative second argumentAnd, as I wrote, I stop active core-js development before finding related work. I already have no money for repairing my PC :) If you wanna progress in core-js - feel free contribute to the project or propose me a good work.
Added fallback for V8 ~ Chrome 49 Promise subclassing bug causes unhandled rejection on feature detection, #159
Promise subclassing bug causes unhandled rejection on feature detection, #159window === nullTemporarily removed length validation from Uint8Array constructor wrapper. Reason - bug in `ws` module (-> socket.io) which passes to Buffer construct
length validation from Uint8Array constructor wrapper. Reason - bug in ws module (-> socket.io) which passes to Buffer constructor -> Uint8Array float and uses the V8 bug for conversion to int (by the spec should be thrown an error). It creates problems for many people. I hope, it will be returned after fixing this bug in V8.forced usage Promise.resolve polyfill in the library version for correct work with wrapper
Promise.resolve polyfill in the library version for correct work with wrapperObject.assign should be defined in the strict mode -> throw an error on extension non-extensible objects, #154removed Mozilla Array generics - deprecated and will be removed from FF, looks like strawman is dead, available alternative shim
ArrayBuffer, ArrayBuffer.isView, ArrayBuffer#sliceDataView with all getter / setter methodsInt8Array, Uint8Array, Uint8ClampedArray, Int16Array, Uint16Array, Int32Array, Uint32Array, Float32Array and Float64Array constructors%TypedArray%.{for, of}, %TypedArray%#{copyWithin, every, fill, filter, find, findIndex, forEach, indexOf, includes, join, lastIndexOf, map, reduce, reduceRight, reverse, set, slice, some, sort, subarray, values, keys, entries, @@iterator, ...}System.global, proposal, November TC39 meetingError.isError, proposal, November TC39 meetingMath.{iaddh, isubh, imulh, umulh}, proposalRegExp.escape moved from the es7 to the non-standard core namespace, July TC39 meeting - too slow, but it's condition of stability, #116Promise
rejectionHandled event / onrejectionhandled handler to the polyfill@@species from Promise.{all, race}, November TC39 meetingO(1) and preventing possible leaks with frozen keys, #134String#{padLeft, padRight} -> String#{padStart, padEnd}, proposal, November TC39 meeting (they want to rename it on each meeting?O_o), #132String#{trimStart, trimEnd} as aliases for String#{trimLeft, trimRight}, proposal, November TC39 meetingDate#toString - new Date(NaN).toString() should be 'Invalid Date'{keys, values, entries, @@iterator} methods to DOM collections which should have iterable interface or should be inherited from Array - NodeList, DOMTokenList, MediaList, StyleSheetList, CSSRuleList.Array generics - deprecated and will be removed from FF, looks like strawman is dead, available alternative shimcore.log module$ prefix for internal modules file names because Team Foundation Server does not support it, #129SameValueZero in V8 ~ Chromium 39-42 collectionsArray iteratorarguments object - old WebKit bug, #150{Map, Set}#forEach non-generic, #144contains most changes from this thread
Contains most changes from this thread. Typed arrays-related features enabled by default, but still not enough stable. Fixed some problems of library
Contains most changes from this thread. Typed arrays-related features enabled by default, but still not enough stable. Fixed some problems of library version from alpha release.
Special for TFS users and without a changelog. Contains most changes from this thread exclude typed arrays related features.
Special for TFS users and without a changelog. Contains most changes from this thread exclude typed arrays related features.
some fixes for issues like #159, #186, #194, #207
reject with TypeError on attempt resolve promise itself
TypeError on attempt resolve promise itselfPromise subclass constructors / methodsPromise-based fallback for microtaskArray#{values, @@iterator}.name[1, 2].join(undefined) -> '1,2'some more Number constructor fixes:
Number constructor fixes:
Number('+0x1') should be NaNNumber(' 0b1\n') case, should be 1Number() case, should be 0fixed Number('0b12') -> NaN case in the shim
Number('0b12') -> NaN case in the shimWeak(Map|Set)#{delete, get, has} should not throw errors #124fixed some problems related old V8 bug Object('a').propertyIsEnumerable(0) // => false, for example, Object.assign({}, 'qwe') from the last release
Object('a').propertyIsEnumerable(0) // => false, for example, Object.assign({}, 'qwe') from the last release.name property and Function#toString conversion some polyfilled methodsMath.imul arity in Safari 8-fixed build process from external packages, #120
Object.{assign, values, entries} fix for very specific casereplaced fix JSON.stringify + Symbol behavior from .toJSON method to wrapping JSON.stringify - little more correct, compat-table/642
JSON.stringify + Symbol behavior from .toJSON method to wrapping JSON.stringify - little more correct, compat-table/642added browser `Promise` rejection hook, #106
Promise rejection hook, #106IsRegExp logic to String#{includes, startsWith, endsWith} and RegExp constructor, @@match case, exampleString#leftPad with proposal: string filler truncated from the right sideObject.assign - its properties order not only incorrect, it is non-deterministic and it causes some problemsObject.{assign,entries, values}, exampleMath.sinh with very small numbers in V8 near Chromium 38fixed support symbols in FF34-35 `Object.assign`
Object.assignArray.offixed support Node.js domains in `Promise`, #103
added toJSON method to `Symbol` polyfill and to MS Edge implementation for expected JSON.stringify result w/o patching this method
toJSON method to Symbol polyfill and to MS Edge implementation for expected JSON.stringify result w/o patching this methodReflect.construct implementations w/o correct support third argumentglobal detection with changed document.domain in ~IE8, #100added more correct microtask implementation for `Promise`
Promiseupdated string padding to actual proposal - renamed, minor internal changes:
String#lpad -> String#padLeftString#rpad -> String#padRightString#trimLeftString#trimRightString#trim fixed for some engines by es6 spec and moved from es5 to single es6 modulees6.object.statics-accept-primitivesfreeze-family Object methods moved from es5 to es6 namespace and joined with es6 wrapperses5 namespace also includes modules, moved to es6 namespace - you can use it as beforeMessageChannel priority in $.task, #95global.Symbol on each getting iterator, if you wanna use alternative Symbol shim - add it before core-jsReflect.construct optimized and fixed for some casesReflect.enumerate, see this questionMath.acoshMath.imul for old WebKitsome fixes for final MS Edge, replaced broken native Reflect.defineProperty
Reflect.definePropertyclient/*.min.js options for safe Function#name and Function#length, should be fixed #92added logic for well-known symbols:
Symbol.matchSymbol.replaceSymbol.splitSymbol.searchMap, Set, WeakMap, WeakSet constructors, Promise.all, Promise.race for default Array Iterator.Array.from for default Array Iterator.core.getIteratorMethod helper.Reflect.construct with 2 arguments.Function#bind shim with new..clear methods native Weak-collections.es6.reflectes6.regexpes6.mathes6.numberes7.object.to-arraycore.objectcore.stringcore.iter-helpers$, $.iter, etc)$for to separate library. This work for syntax - for-of loop and comprehensions.Date#{format, formatUTC} to separate library. Standard way for this - ECMA-402.Math methods from Number.prototype. Slight sugar for simple Math methods calling.{Array#, Array, Dict}.turn.core.global.ToNumber instead of ToLength in Number Iterator, Array.from(2.5) will be [0, 1, 2] instead of [0, 1].Promise unhandled rejection message in nested setTimeout.Number constructor in strange case.removed / from RegExp.escape escaped characters
/ from RegExp.escape escaped charactersupdated `RegExp.escape` to the latest proposal
RegExp.escape to the latest proposalmore correct order resolving thenable in Promise polyfill
Promise polyfillPromisecollections from library version return wrapped native instances
library version return wrapped native instanceslibrary versionMath.hypotupdated `Promise.resolve` behavior
Promise.resolve behaviorObject.getOwnPropertyNames + iframeadded fallback for Symbol polyfill for old Android
Symbol polyfill for old Androiddifferent instances core-js should use / recognize the same symbols
core-js should use / recognize the same symbolsadded grunt-cli to devDependencies for npm run grunt
grunt-cli to devDependencies for npm run gruntgrunt-cli to devDependencies for npm run gruntwrapped Function#toString for correct work wrapped methods / constructors with methods similar to the `lodash` `isNative`
Function#toString for correct work wrapped methods / constructors with methods similar to the lodash isNativedefault version for consistency with library versionwrapped Object#propertyIsEnumerable for Symbol polyfill
Object#propertyIsEnumerable for Symbol polyfilllibrary for ES7 bind syntaxfixed Math.hypot with negative arguments
Math.hypot with negative argumentsObject#toString.toString as fallback for lodash isNativeadded support DOM collections to IE8- Array#slice
Array#slice- added String#lpad, String#rpad
String#lpad, String#rpadadded cap for Function#@@hasInstance
Function#@@hasInstance- Fixed RegExp constructor
RegExp constructor- some fixes and optimizations
more correct Promise unhandled rejection tracking and resolving / rejection priority
Promise unhandled rejection tracking and resolving / rejection priorityYour coding agent can read these notes before it upgrades. Set up the MCP server →