final
, related #400Promise
in V8 6.6 (Node 10 and Chrome 66) because of a bug with resolving custom thenablesPromise
in microtask implementation, #396Promise
, #367Number.{parseInt, parseFloat}
entry points__(define|lookup)[GS]etter__
import in the library
versiononunhandledrejectionhandler
multiple times for one Promise
chain, #318String#{padStart, padEnd}
in Safari 10 because of a bug, #280Array#@@iterator
in a very rare version of WebKit
, #236 and #237MutationObserver
no longer used for microtask implementation in iOS Safari because of bug with scrolling, #339JSON.stringify(undefined, replacer)
case in the wrapper from the Symbol
polyfill, #345Array()
calls changed to new Array()
for V8 optimisationPromise#finally
per tc39/proposal-promise-finally#37shim
versionPromise#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.of
Set.of
WeakSet.of
WeakMap.of
Map.from
Set.from
WeakSet.from
WeakMap.from
Math
extensions stage 1 proposal, #226:
Math.clamp
Math.DEG_PER_RAD
Math.degrees
Math.fscale
Math.RAD_PER_DEG
Math.radians
Math.scale
Math.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 undefined
CSSStyleDeclaration#@@iterator
CSSValueList#@@iterator
ClientRectList#@@iterator
DOMRectList#@@iterator
DOMStringList#@@iterator
DataTransferItemList#@@iterator
FileList#@@iterator
HTMLAllCollection#@@iterator
HTMLCollection#@@iterator
HTMLFormElement#@@iterator
HTMLSelectElement#@@iterator
MimeTypeArray#@@iterator
NamedNodeMap#@@iterator
PaintRequestList#@@iterator
Plugin#@@iterator
PluginArray#@@iterator
SVGLengthList#@@iterator
SVGNumberList#@@iterator
SVGPathSegList#@@iterator
SVGPointList#@@iterator
SVGStringList#@@iterator
SVGTransformList#@@iterator
SourceBufferList#@@iterator
TextTrackCueList#@@iterator
TextTrackList#@@iterator
TouchList#@@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)script
tag for some parsers, #204, #216Reflect.construct
and Reflect.apply
- they should not allow primitive as argumentsList
argumentObservable
, stage 1 proposalObject.{getOwnPropertySymbols, getOwnPropertyDescriptor}
and Object#propertyIsEnumerable
on Object.prototype
Reflect.construct
and Reflect.apply
should throw an error if argumentsList
argument is not an object, #194asap
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, #193-0
to +0
to Array#{indexOf, lastIndexOf}
, ES2016 fixMath
methods in Tor BrowserArray.{from, of}
no longer calls prototype settersObject.getOwnPropertyNames(window)
2.1+
versions bug, #181String#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)Promise#then
, #180Date#toJSON
bug in Qt Script, #173Symbol
polyfill in Qt Script, #173Script Access Denied
error with iframes, #165es6-promise
package bug, #176Promise
fixes:
rejectionhandled
event better HTML spec complaintPromise
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 casescore-js/(library/)es5
Object
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.now
Object.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.defineMetadata
Reflect.deleteMetadata
Reflect.getMetadata
Reflect.getMetadataKeys
Reflect.getOwnMetadata
Reflect.getOwnMetadataKeys
Reflect.hasMetadata
Reflect.hasOwnMetadata
Reflect.metadata
Date#toJSON
parseInt
and Number.parseInt
parseFloat
and Number.parseFloat
RegExp#toString
Array#sort
Number#toFixed
Number#toPrecision
String#split
(RegExp#@@split
)Number
and RegExp
constructors with native class syntaxSharedArrayBuffer
and buffers from other realms in typed arrays wrappersObject.{defineProperty, getOwnPropertyDescriptor}
and Reflect.defineProperty
Array#lastIndexOf
with negative second argumentPromise
subclassing bug causes unhandled rejection on feature detection, #159window === null
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
.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, #154ArrayBuffer
, ArrayBuffer.isView
, ArrayBuffer#slice
DataView
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, #144TypeError
on attempt resolve promise itselfPromise
subclass constructors / methodsPromise
-based fallback for microtaskArray#{values, @@iterator}.name
[1, 2].join(undefined) -> '1,2'
Number
constructor fixes:
Number('+0x1')
should be NaN
Number(' 0b1\n')
case, should be 1
Number()
case, should be 0
Number('0b12') -> NaN
case in the shimWeak(Map|Set)#{delete, get, has}
should not throw errors #124Object('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-Object.{assign, values, entries}
fix for very specific caseJSON.stringify
+ Symbol
behavior from .toJSON
method to wrapping JSON.stringify
- little more correct, compat-table/642Promise
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 38Object.assign
Array.of
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, #100Promise
String#lpad
-> String#padLeft
String#rpad
-> String#padRight
String#trimLeft
String#trimRight
String#trim
fixed for some engines by es6 spec and moved from es5
to single es6
modulees6.object.statics-accept-primitives
freeze
-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-js
Reflect.construct
optimized and fixed for some casesReflect.enumerate
, see this questionMath.acosh
Math.imul
for old WebKitReflect.defineProperty
client/*.min.js
options for safe Function#name
and Function#length
, should be fixed #92Symbol.match
Symbol.replace
Symbol.split
Symbol.search
Map
, Set
, WeakMap
, WeakSet
constructors, Promise.all
, Promise.race
for default Array Iterator
Array.from
for default Array Iterator
core.getIteratorMethod
helperReflect.construct
with 2 argumentsFunction#bind
shim with new
.clear
methods native Weak
-collectionses6.reflect
es6.regexp
es6.math
es6.number
es7.object.to-array
core.object
core.string
core.iter-helpers
$
, $.iter
, etc)$for
to separate library. This work for syntax - for-of
loop and comprehensionsDate#{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/
from RegExp.escape
escaped charactersRegExp.escape
to the latest proposalPromise
polyfillPromise
library
version return wrapped native instanceslibrary
versionMath.hypot
Promise.resolve
behaviorObject.getOwnPropertyNames
+ iframeSymbol
polyfill for old Androidcore-js
should use / recognize the same symbolsgrunt-cli
to devDependencies
for npm run grunt
Function#toString
for correct work wrapped methods / constructors with methods similar to the lodash
isNative
default
version for consistency with library
versionObject#propertyIsEnumerable
for Symbol
polyfilllibrary
for ES7 bind syntaxMath.hypot
with negative argumentsObject#toString.toString
as fallback for lodash
isNative
Array#slice
String#lpad
, String#rpad
Function#@@hasInstance
RegExp
constructorPromise
unhandled rejection tracking and resolving / rejection priority__proto__
-based Promise
subclassing in some environmentsObject.{assign, create, defineProperty, defineProperties, getOwnPropertyDescriptor, getOwnPropertyDescriptors}
with symbolsObject.{create, defineProperty, defineProperties}
Map#toJSON
Object#[_]
and Function#only
- they solves syntax problems, but now in compilers available arrows and Symbol.{pure, set}
webpack
instead of browserify
for browser builds - more compression-friendly resultArray
statics with single entry pointsMath.fround
now also works in IE9-Set#toJSON
Symbol.keyFor
$for.isIterable
-> core.isIterable
, $for.getIterator
-> core.getIterator
, temporary available in old namespacePromise.all
and Promise.race
Object.defineProperty
with accessors on DOM elements on IE8iterator.return
on abort iteration, if it existsPromise
unhandled rejection tracking in shimObject.getOwnPropertyDescriptors
console
cap - creates too many problemsNumber
constructorDate#toISOString
es6
moduleconsole
module: web.console
- only cap for missing methods, core.log
- bound methods & additional featuresdelay
methodObject.getOwnPropertySymbols
polyfill returns array of wrapped keysObject.getOwnPropertySymbols
NodeList.prototype[@@iterator]
@@species
logic - getter in native constructorsFunction#by
Function
instances name
property for IE9+Object
static methods accept primitivesRegExp
constructor can alter flags (IE9+)Array.prototype[Symbol.unscopables]
es6.reflect
module:
Reflect.apply
Reflect.construct
Reflect.defineProperty
Reflect.deleteProperty
Reflect.enumerate
Reflect.get
Reflect.getOwnPropertyDescriptor
Reflect.getPrototypeOf
Reflect.has
Reflect.isExtensible
Reflect.preventExtensions
Reflect.set
Reflect.setPrototypeOf
core-js
methods now can use external Symbol.iterator
polyfillconsole
bugMap
& Set
:
es6
and es6.collections
modulesconsole
no longer shortcut for console.log
(compatibility problems)Math.fround
(IE10+)Object.prototype
for Symbol polyfill:Symbol.useSimple
Symbol.useSetter
Symbol.hasInstance
Symbol.isConcatSpreadable
Symbol.match
Symbol.replace
Symbol.search
Symbol.species
Symbol.split
Symbol.toPrimitive
Symbol.unscopables
RegExp#flags
(December 2014 Draft Rev 29)String.raw
es7.proposals
and es7.abstract-refs
modulesString#at
String Iterator
, older versions used Array IteratorSymbol.referenceGet
Symbol.referenceSet
Symbol.referenceDelete
Function#@@referenceGet
Map#@@referenceGet
Map#@@referenceSet
Map#@@referenceDelete
WeakMap#@@referenceGet
WeakMap#@@referenceSet
WeakMap#@@referenceDelete
Dict.{...methods}[@@referenceGet]
.contains
methodsArray#copyWithin
String#codePointAt
String.fromCodePoint
Dict.mapPairs
.contains
-> .includes
String#contains
-> String#includes
Array#contains
-> Array#includes
Dict.contains
-> Dict.includes
WeakMap#clear
WeakSet#clear
Map
& Set
bug fix