Changelog
2.3.0 - 2016.04.24
2.2.2 - 2016.04.06
- Added conversion
-0
to +0
to Array#{indexOf, lastIndexOf}
, ES2016 fix - Added fixes for some
Math
methods in Tor Browser Array.{from, of}
no longer calls prototype setters- Added workaround over Chrome DevTools strange behavior, #186
2.2.1 - 2016.03.19
- Fixed
Object.getOwnPropertyNames(window)
2.1+
versions bug, #181
2.2.0 - 2016.03.15
- Added
String#matchAll
, proposal - Added
Object#__(define|lookup)[GS]etter__
, annex B ES2017 - Added
@@toPrimitive
methods to Date
and Symbol
- Fixed
%TypedArray%#slice
in Edge ~ 13 (throws with @@species
and wrapped / inherited constructor) - Some other minor fixes
2.1.5 - 2016.03.12
- Improved support NodeJS domains in
Promise#then
, #180 - Added fallback for
Date#toJSON
bug in Qt Script, #173
2.1.4 - 2016.03.08
- Added fallback for
Symbol
polyfill in Qt Script, #173 - Added one more fallback for IE11
Script Access Denied
error with iframes, #165
2.1.3 - 2016.02.29
2.1.2 - 2016.02.29
- Some minor
Promise
fixes:- Browsers
rejectionhandled
event better HTML spec complaint - Errors in unhandled rejection handlers should not cause any problems
- Fixed typo in feature detection
2.1.1 - 2016.02.22
- Some
Promise
improvements:- Feature detection:
- Added detection unhandled rejection tracking support - now it's available everywhere, #140
- Added detection
@@species
pattern support for completely correct subclassing - Removed usage
Object.setPrototypeOf
from feature detection and noisy console message about it in FF
Promise.all
fixed for some very specific cases
2.1.0 - 2016.02.09
- API:
- ES5 polyfills are split and logic, used in other polyfills, moved to internal modules
- All entry point works in ES3 environment like IE8- without
core-js/(library/)es5
- Added all missed single entry points for ES5 polyfills
- Separated ES5 polyfills moved to the ES6 namespace. Why?
- Mainly, for prevent duplication features in different namespaces - logic of most required ES5 polyfills changed in ES6+:
- Already added changes for:
Object
statics - should accept primitives, new whitespaces lists in String#trim
, parse(Int|float)
, RegExp#toString
logic, String#split
, etc - Should be changed in the future:
@@species
and ToLength
logic in Array
methods, Date
parsing, Function#bind
, etc - Should not be changed only several features like
Array.isArray
and Date.now
- Some ES5 polyfills required for modern engines
- All old entry points should work fine, but in the next major release API can be changed
Object.getOwnPropertyDescriptors
moved to the stage 3, January TC39 meeting- Added
umd
option for custom build process, #169 - Returned entry points for
Array
statics, removed in 2.0
, for compatibility with babel
6
and for future fixes
- Deprecated:
- New Features:
- Added
Reflect
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
- Implementation / fixes
Date#toJSON
- Fixes for
parseInt
and Number.parseInt
- Fixes for
parseFloat
and Number.parseFloat
- Fixes for
RegExp#toString
- Fixes for
Array#sort
- Fixes for
Number#toFixed
- Fixes for
Number#toPrecision
- Additional fixes for
String#split
(RegExp#@@split
)
- Improvements:
- Correct subclassing wrapped collections,
Number
and RegExp
constructors with native class syntax - Correct support
SharedArrayBuffer
and buffers from other realms in typed arrays wrappers - Additional validations for
Object.{defineProperty, getOwnPropertyDescriptor}
and Reflect.defineProperty
- Bug Fixes:
- Fixed some cases
Array#lastIndexOf
with negative second argument
2.0.3 - 2016.01.11
- Added fallback for V8 ~ Chrome 49
Promise
subclassing bug causes unhandled rejection on feature detection, #159 - Added fix for very specific environments with global
window === null
2.0.2 - 2016.01.04
- Temporarily removed
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
.
2.0.1 - 2015.12.31
- forced usage
Promise.resolve
polyfill in the library
version for correct work with wrapper Object.assign
should be defined in the strict mode -> throw an error on extension non-extensible objects, #154
2.0.0 - 2015.12.24
- added implementations and fixes Typed Arrays-related features
ArrayBuffer
, 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, ...}
- added
System.global
, proposal, November TC39 meeting - added
Error.isError
, proposal, November TC39 meeting - added
Math.{iaddh, isubh, imulh, umulh}
, proposal RegExp.escape
moved from the es7
to the non-standard core
namespace, July TC39 meeting - too slow, but it's condition of stability, #116Promise
- some improvements collections polyfills
O(1)
and preventing possible leaks with frozen keys, #134- correct observable state object keys
- renamed
String#{padLeft, padRight}
-> String#{padStart, padEnd}
, proposal, November TC39 meeting (they want to rename it on each meeting?O_o), #132 - added
String#{trimStart, trimEnd}
as aliases for String#{trimLeft, trimRight}
, proposal, November TC39 meeting - added annex B HTML methods - ugly, but also the part of the spec
- added little fix for
Date#toString
- new Date(NaN).toString()
should be 'Invalid Date'
- added
{keys, values, entries, @@iterator}
methods to DOM collections which should have iterable interface or should be inherited from Array
- NodeList
, DOMTokenList
, MediaList
, StyleSheetList
, CSSRuleList
. - removed Mozilla
Array
generics - deprecated and will be removed from FF, looks like strawman is dead, available alternative shim - removed
core.log
module - CommonJS API
- custom build from external scripts moved to the separate package for preventing problems with dependencies
- changed
$
prefix for internal modules file names because Team Foundation Server does not support it, #129 - additional fix for
SameValueZero
in V8 ~ Chromium 39-42 collections - additional fix for FF27
Array
iterator - removed usage shortcuts for
arguments
object - old WebKit bug, #150 {Map, Set}#forEach
non-generic, #144- many other improvements
1.2.6 - 2015.11.09
- reject with
TypeError
on attempt resolve promise itself - correct behavior with broken
Promise
subclass constructors / methods - added
Promise
-based fallback for microtask - fixed V8 and FF
Array#{values, @@iterator}.name
- fixed IE7-
[1, 2].join(undefined) -> '1,2'
- some other fixes / improvements / optimizations
1.2.5 - 2015.11.02
- some more
Number
constructor fixes:- fixed V8 ~ Node 0.8 bug:
Number('+0x1')
should be NaN
- fixed
Number(' 0b1\n')
case, should be 1
- fixed
Number()
case, should be 0
1.2.4 - 2015.11.01
- fixed
Number('0b12') -> NaN
case in the shim - fixed V8 ~ Chromium 40- bug -
Weak(Map|Set)#{delete, get, has}
should not throw errors #124 - some other fixes and optimizations
1.2.3 - 2015.10.23
- fixed some problems related old V8 bug
Object('a').propertyIsEnumerable(0) // => false
, for example, Object.assign({}, 'qwe')
from the last release - fixed
.name
property and Function#toString
conversion some polyfilled methods - fixed
Math.imul
arity in Safari 8-
1.2.2 - 2015.10.18
- improved optimisations for V8
- fixed build process from external packages, #120
- one more
Object.{assign, values, entries}
fix for very specific case
1.2.1 - 2015.10.02
- replaced fix
JSON.stringify
+ Symbol
behavior from .toJSON
method to wrapping JSON.stringify
- little more correct, compat-table/642 - fixed typo which broke tasks scheduler in WebWorkers in old FF, #114
1.2.0 - 2015.09.27
1.1.4 - 2015.09.05
1.1.3 - 2015.08.29
1.1.2 - 2015.08.28
- added
toJSON
method to Symbol
polyfill and to MS Edge implementation for expected JSON.stringify
result w/o patching this method - replaced
Reflect.construct
implementations w/o correct support third argument - fixed
global
detection with changed document.domain
in ~IE8, #100
1.1.1 - 2015.08.20
- added more correct microtask implementation for
Promise
1.1.0 - 2015.08.17
1.0.1 - 2015.07.31
- some fixes for final MS Edge, replaced broken native
Reflect.defineProperty
- some minor fixes and optimizations
- changed compression
client/*.min.js
options for safe Function#name
and Function#length
, should be fixed #92
1.0.0 - 2015.07.22
- added logic for well-known symbols:
Symbol.match
Symbol.replace
Symbol.split
Symbol.search
- actualized and optimized work with iterables:
- uses enumerable properties in shimmed instances - collections, iterators, etc for optimize performance
- added support native constructors to
Reflect.construct
with 2 arguments - added support native constructors to
Function#bind
shim with new
- removed obsolete
.clear
methods native Weak
-collections - maximum modularity, reduced minimal custom build size, separated into submodules:
- many other optimizations
- final cleaning non-standard features
- moved
$for
to separate library. This work for syntax - for-of
loop and comprehensions - moved
Date#{format, formatUTC}
to separate library. Standard way for this - ECMA-402
- removed
Math
methods from Number.prototype
. Slight sugar for simple Math
methods calling - removed
{Array#, Array, Dict}.turn
- removed
core.global
- uses
ToNumber
instead of ToLength
in Number Iterator
, Array.from(2.5)
will be [0, 1, 2]
instead of [0, 1]
- fixed #85 - invalid
Promise
unhandled rejection message in nested setTimeout
- fixed #86 - support FF extensions
- fixed #89 - behavior
Number
constructor in strange case
0.9.18 - 2015.06.17
0.9.17 - 2015.06.14
0.9.16 - 2015.06.11
0.9.15 - 2015.06.09
- collections from
library
version return wrapped native instances - fixed collections prototype methods in
library
version - optimized
Math.hypot
0.9.14 - 2015.06.04
0.9.13 - 2015.05.25
0.9.12 - 2015.05.24
- different instances
core-js
should use / recognize the same symbols - some fixes
0.9.11 - 2015.05.18
- simplified custom build
- add custom build js api
- added
grunt-cli
to devDependencies
for npm run grunt
- some fixes
0.9.10 - 2015.05.16
- wrapped
Function#toString
for correct work wrapped methods / constructors with methods similar to the lodash
isNative
- added proto versions of methods to export object in
default
version for consistency with library
version
0.9.9 - 2015.05.14
0.9.8 - 2015.05.12
0.9.7 - 2015.05.07
0.9.6 - 2015.05.01
0.9.5 - 2015.04.30
- added cap for
Function#@@hasInstance
- some fixes and optimizations
0.9.4 - 2015.04.27
0.9.3 - 2015.04.26
- some fixes and optimizations
0.9.2 - 2015.04.25
- more correct
Promise
unhandled rejection tracking and resolving / rejection priority
0.9.1 - 2015.04.25
- fixed
__proto__
-based Promise
subclassing in some environments
0.9.0 - 2015.04.24
- added correct symbols descriptors
- fixed behavior
Object.{assign, create, defineProperty, defineProperties, getOwnPropertyDescriptor, getOwnPropertyDescriptors}
with symbols - added single entry points for
Object.{create, defineProperty, defineProperties}
- added
Map#toJSON
- removed non-standard methods
Object#[_]
and Function#only
- they solves syntax problems, but now in compilers available arrows and in near future will be available available bind syntax - removed non-standard undocumented methods
Symbol.{pure, set}
- some fixes and internal changes
0.8.4 - 2015.04.18
- uses
webpack
instead of browserify
for browser builds - more compression-friendly result
0.8.3 - 2015.04.14
- fixed
Array
statics with single entry points
0.8.2 - 2015.04.13
0.8.1 - 2015.04.03
0.8.0 - 2015.04.02
0.7.2 - 2015.03.09
0.7.1 - 2015.03.07
0.7.0 - 2015.03.06
0.6.1 - 2015.02.24
0.6.0 - 2015.02.23
- added support safe closing iteration - calling
iterator.return
on abort iteration, if it exists - added basic support
Promise
unhandled rejection tracking in shim - added
Object.getOwnPropertyDescriptors
- removed
console
cap - creates too many problems - restructuring namespaces
- some fixes
0.5.4 - 2015.02.15
0.5.3 - 2015.02.14
0.5.2 - 2015.02.10
0.5.1 - 2015.02.09
0.5.0 - 2015.02.08
- systematization of modules
- splitted
es6
module - splitted
console
module: web.console
- only cap for missing methods, core.log
- bound methods & additional features - added
delay
method - some fixes
0.4.10 - 2015.01.28
0.4.9 - 2015.01.27
0.4.8 - 2015.01.25
0.4.7 - 2015.01.25
0.4.6 - 2015.01.21
0.4.5 - 2015.01.16
0.4.4 - 2015.01.11
0.4.3 - 2015.01.10
- added
Function
instances name
property for IE9+
0.4.2 - 2015.01.10
Object
static methods accept primitivesRegExp
constructor can alter flags (IE9+)- added
Array.prototype[Symbol.unscopables]
0.4.1 - 2015.01.05
0.4.0 - 2015.01.03
- added
es6.reflect
module:- added
Reflect.apply
- added
Reflect.construct
- added
Reflect.defineProperty
- added
Reflect.deleteProperty
- added
Reflect.enumerate
- added
Reflect.get
- added
Reflect.getOwnPropertyDescriptor
- added
Reflect.getPrototypeOf
- added
Reflect.has
- added
Reflect.isExtensible
- added
Reflect.preventExtensions
- added
Reflect.set
- added
Reflect.setPrototypeOf
core-js
methods now can use external Symbol.iterator
polyfill- some fixes
0.3.3 - 2014.12.28
0.3.2 - 2014.12.25
- added cap for ES5 freeze-family methods
- fixed
console
bug
0.3.1 - 2014.12.23
0.3.0 - 2014.12.23
0.2.5 - 2014.12.20
console
no longer shortcut for console.log
(compatibility problems)- some fixes
0.2.4 - 2014.12.17
- better compliance of ES6
- added
Math.fround
(IE10+) - some fixes
0.2.3 - 2014.12.15
- Symbols:
- added option to disable addition setter to
Object.prototype
for Symbol polyfill:- added
Symbol.useSimple
- added
Symbol.useSetter
- added cap for well-known Symbols:
- added
Symbol.hasInstance
- added
Symbol.isConcatSpreadable
- added
Symbol.match
- added
Symbol.replace
- added
Symbol.search
- added
Symbol.species
- added
Symbol.split
- added
Symbol.toPrimitive
- added
Symbol.unscopables
0.2.2 - 2014.12.13
0.2.1 - 2014.12.12
0.2.0 - 2014.12.06
- added
es7.proposals
and es7.abstract-refs
modules - added
String#at
- added real
String Iterator
, older versions used Array Iterator - added abstract references support:
- added
Symbol.referenceGet
- added
Symbol.referenceSet
- added
Symbol.referenceDelete
- added
Function#@@referenceGet
- added
Map#@@referenceGet
- added
Map#@@referenceSet
- added
Map#@@referenceDelete
- added
WeakMap#@@referenceGet
- added
WeakMap#@@referenceSet
- added
WeakMap#@@referenceDelete
- added
Dict.{...methods}[@@referenceGet]
- removed deprecated
.contains
methods - some fixes
0.1.5 - 2014.12.01
0.1.4 - 2014.11.27
0.1.3 - 2014.11.20
0.1.2 - 2014.11.19
0.1.1 - 2014.11.18