String#at for preventing breakage code which use obsolete String#at proposal polyfillOPEN_SOURCE_CONTRIBUTOR detection in postinstallpostinstallnode -e in postinstall scripts for better cross-platform compatibility, #582postinstall script, #707postinstall messages only once per npm i, #597postinstall script like support npm color config (#556) or adding support of ADBLOCK env variablenpx bug on postinstall, #551Object.{ assign, entries, values }, #541Object.getOwnPropertySymbols in Chrome 38 / 39, #539postinstallString#padStart and String#padEnd mobile Safari implementations, #414.babel-minify bug, #479$ in String#replace, #471RegExp#{@@replace, @@split, @@match, @@search}. Also, added fixes for RegExp#exec method. #411, #428, #434, #435, #453, #458, thanks @nicolo-ribaudo.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.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)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.prototypeReflect.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/)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 argumentPromise subclassing bug causes unhandled rejection on feature detection, #159window === nulllength 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#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, #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 NaNNumber(' 0b1\n') case, should be 1Number() case, should be 0Number('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.assignArray.oftoJSON 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, #100PromiseString#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 WebKitReflect.definePropertyclient/*.min.js options for safe Function#name and Function#length, should be fixed #92Symbol.matchSymbol.replaceSymbol.splitSymbol.searchMap, Set, WeakMap, WeakSet constructors, Promise.all, Promise.race for default Array IteratorArray.from for default Array Iteratorcore.getIteratorMethod helperReflect.construct with 2 argumentsFunction#bind shim with new.clear methods native Weak-collectionses6.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 comprehensionsDate#{format, formatUTC} to separate library. Standard way for this - ECMA-402Math methods from Number.prototype. Slight sugar for simple Math methods calling{Array#, Array, Dict}.turncore.globalToNumber 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 setTimeoutNumber constructor in strange case/ from RegExp.escape escaped charactersRegExp.escape to the latest proposalPromise polyfillPromiselibrary version return wrapped native instanceslibrary versionMath.hypotPromise.resolve behaviorObject.getOwnPropertyNames + iframeSymbol polyfill for old Androidcore-js should use / recognize the same symbolsgrunt-cli to devDependencies for npm run gruntFunction#toString for correct work wrapped methods / constructors with methods similar to the lodash isNativedefault version for consistency with library versionObject#propertyIsEnumerable for Symbol polyfilllibrary for ES7 bind syntaxMath.hypot with negative argumentsObject#toString.toString as fallback for lodash isNativeArray#sliceString#lpad, String#rpadFunction#@@hasInstanceRegExp 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#toJSONObject#[_] 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#toJSONSymbol.keyFor$for.isIterable -> core.isIterable, $for.getIterator -> core.getIterator, temporary available in old namespacePromise.all and Promise.raceObject.defineProperty with accessors on DOM elements on IE8iterator.return on abort iteration, if it existsPromise unhandled rejection tracking in shimObject.getOwnPropertyDescriptorsconsole cap - creates too many problemsNumber constructorDate#toISOStringes6 moduleconsole module: web.console - only cap for missing methods, core.log - bound methods & additional featuresdelay methodObject.getOwnPropertySymbols polyfill returns array of wrapped keysObject.getOwnPropertySymbolsNodeList.prototype[@@iterator]@@species logic - getter in native constructorsFunction#byFunction instances name property for IE9+Object static methods accept primitivesRegExp constructor can alter flags (IE9+)Array.prototype[Symbol.unscopables]es6.reflect module:
Reflect.applyReflect.constructReflect.definePropertyReflect.deletePropertyReflect.enumerateReflect.getReflect.getOwnPropertyDescriptorReflect.getPrototypeOfReflect.hasReflect.isExtensibleReflect.preventExtensionsReflect.setReflect.setPrototypeOfcore-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.useSimpleSymbol.useSetterSymbol.hasInstanceSymbol.isConcatSpreadableSymbol.matchSymbol.replaceSymbol.searchSymbol.speciesSymbol.splitSymbol.toPrimitiveSymbol.unscopablesRegExp#flags (December 2014 Draft Rev 29)String.rawes7.proposals and es7.abstract-refs modulesString#atString Iterator, older versions used Array IteratorSymbol.referenceGetSymbol.referenceSetSymbol.referenceDeleteFunction#@@referenceGetMap#@@referenceGetMap#@@referenceSetMap#@@referenceDeleteWeakMap#@@referenceGetWeakMap#@@referenceSetWeakMap#@@referenceDeleteDict.{...methods}[@@referenceGet].contains methodsArray#copyWithinString#codePointAtString.fromCodePointDict.mapPairs.contains -> .includesString#contains -> String#includesArray#contains -> Array#includesDict.contains -> Dict.includesWeakMap#clearWeakSet#clearMap & Set bug fix