CHANGELOG.md 43.3 KB

Changelog

2.5.6 - 2018.05.07
  • Forced replace native Promise in V8 6.6 (Node 10 and Chrome 66) because of a bug with resolving custom thenables
  • Added a workaround for usage buggy native LG WebOS 2 Promise in microtask implementation, #396
  • Added modern version internal debugging information about used versions
2.5.5 - 2018.04.08
  • Fix some edge cases of Reflect.set, #392 and #393
2.5.4 - 2018.03.27
  • Fixed one case of deoptimization built-in iterators in V8, related #377
  • Fixed some cases of iterators feature detection, #368
  • Fixed manually entered NodeJS domains issue in Promise, #367
  • Fixed Number.{parseInt, parseFloat} entry points
  • Fixed __(define|lookup)[GS]etter__ import in the library version
2.5.3 - 2017.12.12
  • Fixed calling onunhandledrejectionhandler multiple times for one Promise chain, #318
  • Forced replacement of String#{padStart, padEnd} in Safari 10 because of a bug, #280
  • Fixed Array#@@iterator in a very rare version of WebKit, #236 and #237
  • One more #345-related fix
2.5.2 - 2017.12.09
  • MutationObserver no longer used for microtask implementation in iOS Safari because of bug with scrolling, #339
  • Fixed JSON.stringify(undefined, replacer) case in the wrapper from the Symbol polyfill, #345
  • Array() calls changed to new Array() for V8 optimisation
2.5.1 - 2017.09.01
  • Updated Promise#finally per tc39/proposal-promise-finally#37
  • Optimized usage of some internal helpers for reducing size of shim version
  • Fixed some entry points for virtual methods
2.5.0 - 2017.08.05
  • Added Promise#finally stage 3 proposal, #225
  • Added Promise.try stage 1 proposal
  • Added Array#flatten and Array#flatMap stage 1 proposal
  • Added .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
  • Added Math extensions stage 1 proposal, #226:
    • Math.clamp
    • Math.DEG_PER_RAD
    • Math.degrees
    • Math.fscale
    • Math.RAD_PER_DEG
    • Math.radians
    • Math.scale
  • Added Math.signbit stage 1 proposal
  • Updated global stage 3 proposal - added global global object, System.global deprecated
  • Updated Object.getOwnPropertyDescriptors to the final version - it should not create properties if descriptors are undefined
  • Updated the list of iterable DOM collections, #249, added:
    • 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
  • Updated stages of proposals:
  • Updated typed arrays to the modern (ES2016+) arguments validation, #293
  • Fixed %TypedArray%.from Safari bug, #285
  • Fixed compatibility with old version of Prototype.js, #278, #289
  • Function#name no longer cache the result for correct behaviour with inherited constructors, #296
  • Added errors on incorrect context of collection methods, #272
  • Fixed conversion typed array constructors to string, fix #300
  • Fixed Set#size with debugger ReactNative for Android, #297
  • Fixed an issue with Electron-based debugger, #230
  • Fixed compatibility with incomplete third-party WeakMap polyfills, #252
  • Added a fallback for Date#toJSON in engines without native Date#toISOString, #220
  • Added support for Sphere Dispatch API, #286
  • Seriously changed the coding style and the ESLint config
  • Updated many dev dependencies (webpack, uglify, etc)
  • Some other minor fixes and optimizations
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 and Reflect.apply - they should not allow primitive as argumentsList argument
1.2.7 [LEGACY] - 2016.07.18
2.4.0 - 2016.05.08
  • Added Observable, stage 1 proposal
  • Fixed behavior Object.{getOwnPropertySymbols, getOwnPropertyDescriptor} and Object#propertyIsEnumerable on Object.prototype
  • Reflect.construct and Reflect.apply should throw an error if argumentsList argument is not an object, #194
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:
    • 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 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
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
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
    • Added 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
  • 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__-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
  • Fixed Symbol.keyFor
0.8.0 - 2015.04.02
0.7.2 - 2015.03.09
  • Some fixes
0.7.1 - 2015.03.07
  • Some fixes
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
  • Some fixes
0.5.3 - 2015.02.14
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
0.4.9 - 2015.01.27
  • FF20-24 fix
0.4.8 - 2015.01.25
0.4.7 - 2015.01.25
0.4.6 - 2015.01.21
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 instances name property for IE9+
0.4.2 - 2015.01.10
  • Object static methods accept primitives
  • RegExp 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
  • 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
  • Some fixes
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
  • Map & Set bug fix
0.1.1 - 2014.11.18
  • Public release