36 KiB
36 KiB
Changelog
2.4.1 - 2016.07.18
- fixed
script
tag for some parsers, #204, #216 - removed some unused variables, #217, #218
- fixed MS Edge
Reflect.construct
andReflect.apply
- they should not allow primitive asargumentsList
argument
1.2.7 [LEGACY] - 2016.07.18
2.4.0 - 2016.05.08
- Added
Observable
, stage 1 proposal - Fixed behavior
Object.{getOwnPropertySymbols, getOwnPropertyDescriptor}
andObject#propertyIsEnumerable
onObject.prototype
Reflect.construct
andReflect.apply
should throw an error ifargumentsList
argument is not an object, #194
2.3.0 - 2016.04.24
- Added
asap
for enqueuing microtasks, stage 0 proposal - Added well-known symbol
Symbol.asyncIterator
for stage 2 async iteration proposal - Added well-known symbol
Symbol.observable
for stage 1 observables proposal String#{padStart, padEnd}
returns original string if filler is empty string, TC39 meeting notesObject.values
andObject.entries
moved to stage 4 from 3, TC39 meeting notesSystem.global
moved to stage 2 from 1, TC39 meeting notesMap#toJSON
andSet#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 notes- Added fallback for
Function#name
on non-extensible functions and functions with brokentoString
conversion, #193
2.2.2 - 2016.04.06
- Added conversion
-0
to+0
toArray#{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 toDate
andSymbol
- 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
- Added fallback for
es6-promise
package bug, #176
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
- Browsers
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
- Feature detection:
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 inString#trim
,parse(Int|float)
,RegExp#toString
logic,String#split
, etc - Should be changed in the future:
@@species
andToLength
logic inArray
methods,Date
parsing,Function#bind
, etc - Should not be changed only several features like
Array.isArray
andDate.now
- Already added changes for:
- Some ES5 polyfills required for modern engines
- Mainly, for prevent duplication features in different namespaces - logic of most required ES5 polyfills changed in ES6+:
- All old entry points should work fine, but in the next major release API can be changed
- All entry point works in ES3 environment like IE8- without
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 in2.0
, for compatibility withbabel
6
and for future fixes
- ES5 polyfills are split and logic, used in other polyfills, moved to internal modules
- Deprecated:
Reflect.enumerate
deprecated and will be removed from the next major release, January TC39 meeting
- 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
andNumber.parseInt
- Fixes for
parseFloat
andNumber.parseFloat
- Fixes for
RegExp#toString
- Fixes for
Array#sort
- Fixes for
Number#toFixed
- Fixes for
Number#toPrecision
- Additional fixes for
String#split
(RegExp#@@split
)
- Added
- Improvements:
- Correct subclassing wrapped collections,
Number
andRegExp
constructors with native class syntax - Correct support
SharedArrayBuffer
and buffers from other realms in typed arrays wrappers - Additional validations for
Object.{defineProperty, getOwnPropertyDescriptor}
andReflect.defineProperty
- Correct subclassing wrapped collections,
- Bug Fixes:
- Fixed some cases
Array#lastIndexOf
with negative second argument
- Fixed some cases
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 fromUint8Array
constructor wrapper. Reason - bug inws
module (->socket.io
) which passes toBuffer
constructor ->Uint8Array
float and uses theV8
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 inV8
.
2.0.1 - 2015.12.31
- forced usage
Promise.resolve
polyfill in thelibrary
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
andFloat64Array
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 thees7
to the non-standardcore
namespace, July TC39 meeting - too slow, but it's condition of stability, #116Promise
- some performance optimisations
- added basic support
rejectionHandled
event /onrejectionhandled
handler to the polyfill - removed usage
@@species
fromPromise.{all, race}
, November TC39 meeting
- 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 forString#{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 fromArray
-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
- added entry points for virtual methods
- added entry points for stages proposals
- some other minor changes
- 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 beNaN
- fixed
Number(' 0b1\n')
case, should be1
- fixed
Number()
case, should be0
- fixed V8 ~ Node 0.8 bug:
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 andFunction#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 wrappingJSON.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
- added browser
Promise
rejection hook, #106 - added correct
IsRegExp
logic toString#{includes, startsWith, endsWith}
andRegExp
constructor,@@match
case, example - updated
String#leftPad
with proposal: string filler truncated from the right side - replaced V8
Object.assign
- its properties order not only incorrect, it is non-deterministic and it causes some problems - fixed behavior with deleted in getters properties for
Object.{
assign
,
entries, values
}
, example - fixed
Math.sinh
with very small numbers in V8 near Chromium 38 - some other fixes and optimizations
1.1.4 - 2015.09.05
- fixed support symbols in FF34-35
Object.assign
- fixed collections iterators in FF25-26
- fixed non-generic WebKit
Array.of
- some other fixes and optimizations
1.1.3 - 2015.08.29
1.1.2 - 2015.08.28
- added
toJSON
method toSymbol
polyfill and to MS Edge implementation for expectedJSON.stringify
result w/o patching this method - replaced
Reflect.construct
implementations w/o correct support third argument - fixed
global
detection with changeddocument.domain
in ~IE8, #100
1.1.1 - 2015.08.20
- added more correct microtask implementation for
Promise
1.1.0 - 2015.08.17
- updated string padding to actual proposal - renamed, minor internal changes:
String#lpad
->String#padLeft
String#rpad
->String#padRight
- added string trim functions - proposal, defacto standard - required only for IE11- and fixed for some old engines:
String#trimLeft
String#trimRight
String#trim
fixed for some engines by es6 spec and moved fromes5
to singlees6
module- splitted
es6.object.statics-accept-primitives
- caps for
freeze
-familyObject
methods moved fromes5
toes6
namespace and joined with es6 wrappers es5
namespace also includes modules, moved toes6
namespace - you can use it as before- increased
MessageChannel
priority in$.task
, #95 - does not get
global.Symbol
on each getting iterator, if you wanna use alternativeSymbol
shim - add it beforecore-js
Reflect.construct
optimized and fixed for some cases- simplified
Reflect.enumerate
, see this question - some corrections in
Math.acosh
- fixed
Math.imul
for old WebKit - some fixes in string / RegExp well-known symbols logic
- some other fixes and optimizations
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 safeFunction#name
andFunction#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:
- optimized
Map
,Set
,WeakMap
,WeakSet
constructors,Promise.all
,Promise.race
for defaultArray Iterator
- optimized
Array.from
for defaultArray Iterator
- added
core.getIteratorMethod
helper
- optimized
- 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 withnew
- removed obsolete
.clear
methods nativeWeak
-collections - maximum modularity, reduced minimal custom build size, separated into submodules:
es6.reflect
es6.regexp
es6.math
es6.number
es7.object.to-array
core.object
core.string
core.iter-helpers
- internal modules (
$
,$.iter
, etc)
- 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 fromNumber.prototype
. Slight sugar for simpleMath
methods calling - removed
{Array#, Array, Dict}.turn
- removed
core.global
- moved
- uses
ToNumber
instead ofToLength
inNumber Iterator
,Array.from(2.5)
will be[0, 1, 2]
instead of[0, 1]
- fixed #85 - invalid
Promise
unhandled rejection message in nestedsetTimeout
- fixed #86 - support FF extensions
- fixed #89 - behavior
Number
constructor in strange case
0.9.18 - 2015.06.17
- removed
/
fromRegExp.escape
escaped characters
0.9.17 - 2015.06.14
- updated
RegExp.escape
to the latest proposal - fixed conflict with webpack dev server + IE buggy behavior
0.9.16 - 2015.06.11
- more correct order resolving thenable in
Promise
polyfill - uses polyfill instead of buggy V8
Promise
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
- updated
Promise.resolve
behavior - added fallback for IE11 buggy
Object.getOwnPropertyNames
+ iframe - some other fixes
0.9.13 - 2015.05.25
- added fallback for
Symbol
polyfill for old Android - some other fixes
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
todevDependencies
fornpm run grunt
- some fixes
0.9.10 - 2015.05.16
- wrapped
Function#toString
for correct work wrapped methods / constructors with methods similar to thelodash
isNative
- added proto versions of methods to export object in
default
version for consistency withlibrary
version
0.9.9 - 2015.05.14
- wrapped
Object#propertyIsEnumerable
forSymbol
polyfill - added proto versions of methods to
library
for ES7 bind syntax - some other fixes
0.9.8 - 2015.05.12
- fixed
Math.hypot
with negative arguments - added
Object#toString.toString
as fallback forlodash
isNative
0.9.7 - 2015.05.07
- added support DOM collections to IE8-
Array#slice
0.9.6 - 2015.05.01
- added
String#lpad
,String#rpad
0.9.5 - 2015.04.30
- added cap for
Function#@@hasInstance
- some fixes and optimizations
0.9.4 - 2015.04.27
- fixed
RegExp
constructor
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__
-basedPromise
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}
- fixed behavior
- added
Map#toJSON
- removed non-standard methods
Object#[_]
andFunction#only
- they solves syntax problems, but now in compilers available arrows andin near future will be availableavailable bind syntax - removed non-standard undocumented methods
Symbol.{pure, set}
- some fixes and internal changes
0.8.4 - 2015.04.18
- uses
webpack
instead ofbrowserify
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
Math.fround
now also works in IE9-- added
Set#toJSON
- some optimizations and fixes
0.8.1 - 2015.04.03
- fixed
Symbol.keyFor
0.8.0 - 2015.04.02
- changed CommonJS API
- splitted and renamed some modules
- added support ES3 environment (ES5 polyfill) to all default versions - size increases slightly (+ ~4kb w/o gzip), many issues disappear, if you don't need it - simply include only required namespaces / features / modules
- removed abstract references support - proposal has been superseded =\
$for.isIterable
->core.isIterable
,$for.getIterator
->core.getIterator
, temporary available in old namespace- fixed iterators support in v8
Promise.all
andPromise.race
- many other fixes
0.7.2 - 2015.03.09
- some fixes
0.7.1 - 2015.03.07
- some fixes
0.7.0 - 2015.03.06
- rewritten and splitted into CommonJS modules
0.6.1 - 2015.02.24
- fixed support
Object.defineProperty
with accessors on DOM elements on IE8
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
- some fixes
0.5.3 - 2015.02.14
- added support binary and octal literals to
Number
constructor - added
Date#toISOString
0.5.2 - 2015.02.10
- some fixes
0.5.1 - 2015.02.09
- some fixes
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
Object.getOwnPropertySymbols
polyfill returns array of wrapped keys
0.4.9 - 2015.01.27
- FF20-24 fix
0.4.8 - 2015.01.25
- some collections fixes
0.4.7 - 2015.01.25
- added support frozen objects as collections keys
0.4.6 - 2015.01.21
- added
Object.getOwnPropertySymbols
- added
NodeList.prototype[@@iterator]
- added basic
@@species
logic - getter in native constructors - removed
Function#by
- some fixes
0.4.5 - 2015.01.16
- some fixes
0.4.4 - 2015.01.11
- enabled CSP support
0.4.3 - 2015.01.10
- added
Function
instancesname
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
- some fixes
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
- added
core-js
methods now can use externalSymbol.iterator
polyfill- some fixes
0.3.3 - 2014.12.28
- console cap excluded from node.js default builds
0.3.2 - 2014.12.25
- added cap for ES5 freeze-family methods
- fixed
console
bug
0.3.1 - 2014.12.23
- some fixes
0.3.0 - 2014.12.23
- Optimize
Map
&Set
:- use entries chain on hash table
- fast & correct iteration
- iterators moved to
es6
andes6.collections
modules
0.2.5 - 2014.12.20
console
no longer shortcut forconsole.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
- 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
- added
- added option to disable addition setter to
0.2.2 - 2014.12.13
- added
RegExp#flags
(December 2014 Draft Rev 29) - added
String.raw
0.2.1 - 2014.12.12
- repair converting -0 to +0 in native collections
0.2.0 - 2014.12.06
- added
es7.proposals
andes7.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]
- added
- removed deprecated
.contains
methods - some fixes
0.1.5 - 2014.12.01
- added
Array#copyWithin
- added
String#codePointAt
- added
String.fromCodePoint
0.1.4 - 2014.11.27
- added
Dict.mapPairs
0.1.3 - 2014.11.20
- TC39 November meeting:
.contains
->.includes
String#contains
->String#includes
Array#contains
->Array#includes
Dict.contains
->Dict.includes
- removed
WeakMap#clear
- removed
WeakSet#clear
0.1.2 - 2014.11.19
Map
&Set
bug fix
0.1.1 - 2014.11.18
- public release