Skip to content

Update dependency core-js to v3 #27

New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Open
wants to merge 1 commit into
base: master
Choose a base branch
from

Conversation

mend-for-github-com[bot]
Copy link
Contributor

@mend-for-github-com mend-for-github-com bot commented Jul 14, 2021

This PR contains the following updates:

Package Change Age Adoption Passing Confidence
core-js ^2.5.4 -> ^3.0.0 age adoption passing confidence

Release Notes

zloirock/core-js

v3.16.2

Compare Source

  • Added a workaround of a Closure Compiler unsafe optimization, #​972
  • One more fix crashing of Object.create(null) on WSH, #​970
  • Added Deno 1.14 compat data mapping

v3.16.1

Compare Source

  • Fixed microtask implementation on iOS Pebble, #​967
  • Fixed some entry points
  • Improved old Safari compat data

v3.16.0

Compare Source

  • Array find from last proposal moved to the stage 3, July 2021 TC39 meeting
  • Array filtering stage 1 proposal:
    • Array.prototype.filterReject replaces Array.prototype.filterOut
    • %TypedArray%.prototype.filterReject replaces %TypedArray%.prototype.filterOut
  • Added Array grouping stage 1 proposal:
    • Array.prototype.groupBy
    • %TypedArray%.prototype.groupBy
  • Work with symbols made stricter: some missed before cases of methods that should throw an error on symbols now works as they should
  • Handling @@​toPrimitive in some cases of ToPrimitive internal logic made stricter
  • Fixed work of Request with polyfilled URLSearchParams, #​965
  • Fixed possible exposing of collections elements metadata in some cases, #​427
  • Fixed crashing of Object.create(null) on WSH, #​966
  • Fixed some cases of typed arrays subclassing logic
  • Fixed a minor bug related to string conversion in RegExp#exec
  • Fixed Date.prototype.getYear feature detection
  • Fixed content of some entry points
  • Some minor optimizations and refactoring
  • Deno:
    • Added Deno support (sure, after bundling since Deno does not support CommonJS)
    • Allowed deno target in core-js-compat / core-js-builder
    • A bundle for Deno published on deno.land/x/corejs
  • Added / updated compat data / mapping:
    • Deno 1.0-1.13
    • NodeJS up to 16.6
    • iOS Safari up to 15.0
    • Samsung Internet up to 15.0
    • Opera Android up to 64
    • Object.hasOwn marked as supported from V8 9.3 and FF92
    • Date.prototype.getYear marked as not supported in IE8-
  • Added summary option to core-js-builder, see more info in the README, #​910

v3.15.2

Compare Source

  • Worked around breakage related to zone.js loaded before core-js, #​953
  • Added NodeJS 16.4 -> Chrome 91 compat data mapping

v3.15.1

Compare Source

  • Fixed cloning of regex through RegExp constructor, #​948

v3.15.0

Compare Source

  • Added RegExp named capture groups polyfill, #​521, #​944
  • Added RegExp dotAll flag polyfill, #​792, #​944
  • Added missed polyfills of Annex B features (required mainly for some non-browser engines), #​336, #​945:
    • escape
    • unescape
    • String.prototype.substr
    • Date.prototype.getYear
    • Date.prototype.setYear
    • Date.prototype.toGMTString
  • Fixed detection of forbidden host code points in URL polyfill
  • Allowed rhino target in core-js-compat / core-js-builder, added compat data for rhino 1.7.13, #​942, thanks @​gausie
  • .at marked as supported from FF90

v3.14.0

Compare Source

  • Added polyfill of stable sort in { Array, %TypedArray% }.prototype.sort, #​769, #​941
  • Fixed Safari 14.0- %TypedArray%.prototype.sort validation of arguments bug
  • .at marked as supported from V8 9.2

v3.13.1

Compare Source

  • Overwrites get-own-property-symbols third-party Symbol polyfill if it's used since it causes a stack overflow, #​774
  • Added a workaround of possible browser crash on Object.prototype accessors methods in WebKit ~ Android 4.0, #​232

v3.13.0

Compare Source

v3.12.1

Compare Source

  • Fixed some cases of Function#toString with multiple core-js instances
  • Fixed some possible String#split polyfill problems in V8 5.1

v3.12.0

Compare Source

v3.11.3

Compare Source

  • Native promise-based APIs Promise#{ catch, finally } returns polyfilled Promise instances when it's required

v3.11.2

Compare Source

  • Added a workaround of WebKit ~ iOS 10.3 Safari Promise bug, #​932
  • Promise#then of incorrect native Promise implementations with correct subclassing no longer wrapped
  • Changed the order of Promise feature detection, removed unhandled rejection tracking check in non-browser non-node platforms

v3.11.1

Compare Source

  • Made instanceof Promise and .constructor === Promise work with polyfilled Promise for all native promise-based APIs
  • Added a workaround for some buggy V8 versions ~4.5 related to fixing of %TypedArray% static methods, #​564

v3.11.0

Compare Source

v3.10.2

Compare Source

  • URL and URLSearchParams marked as supported from Safari 14.0
  • Polyfilled built-in constructors protected from calling on instances

v3.10.1

Compare Source

  • Prevented possible RegExp#split problems in old engines, #​751, #​919
  • Detection of Safari 10 string padding bug extended to some Safari-based browsers

v3.10.0

Compare Source

  • Array find from last proposal moved to the stage 2, March TC39 meeting
  • Prevented possible RegExp#exec problems in some old engines, #​920
  • Updated compat data mapping:
    • NodeJS up to 16.0
    • Electron up to 13.0
    • Samsung Internet up to 14.0
    • Opera Android up to 62
    • The rest automatically

v3.9.1

Compare Source

  • Added a workaround for Chrome 38-40 bug which does not allow to inherit symbols (incl. well-known) from DOM collections prototypes to instances, #​37
  • Used NumericRangeIterator as toStringTag instead of RangeIterator in { Number, BigInt }.range iterator, per this PR
  • TypedArray constructors marked as supported from Safari 14.0
  • Updated compat data mapping for iOS Safari and Opera for Android

v3.9.0

Compare Source

  • Added Array find from last stage 1 proposal
    • Array#findLast
    • Array#findLastIndex
    • %TypedArray%#findLast
    • %TypedArray%#findLastIndex
  • Added %TypedArray%#uniqueBy method for array deduplication stage 1 proposal
    • %TypedArray%#uniqueBy
  • Dropped ToLength detection from array methods feature detection which could cause hanging FF11-21 and some versions of old WebKit, #​764
  • Minified bundle from core-js-bundle uses terser instead of uglify-js

v3.8.3

Compare Source

  • Fixed some more issues related to FF44- legacy Iterator, #​906

v3.8.2

Compare Source

  • Fixed handling of special replacements patterns in String#replaceAll, #​900
  • Fixed iterators dependencies of Promise.any and Promise.allSettled entries
  • Fixed microtask implementation on WebOS, #​898, #​901

v3.8.1

Compare Source

  • Fixed work of new %TypedArray% methods on BigInt arrays
  • Added ESNext methods to ES3 workaround for Number constructor wrapper

v3.8.0

Compare Source

  • Added relative indexing method stage 3 proposal
    • Array#at
    • %TypedArray%#at
  • Added Number.range stage 1 proposal
    • Number.range
    • BigInt.range
  • Added array filtering stage 1 proposal
    • Array#filterOut
    • %TypedArray%#filterOut
  • Added array deduplication stage 1 proposal
    • Array#uniqueBy
  • Added code points / code units explicit feature detection in String#at for preventing breakage code which use obsolete String#at proposal polyfill
  • Added the missed (es|stable)/instance/replace-all entries
  • Updated compat data mapping for Opera - from Opera 69, the difference with Chrome versions increased to 14
  • Compat data mapping for modern Android WebView to Chrome moved from targets parser directly to compat data
  • Depracate core-js-builder blacklist option in favor of exclude

v3.7.0

Compare Source

  • String#replaceAll moved to the stable ES, per June TC39 meeting
  • Promise.any and AggregateError moved to the stable ES, per July TC39 meeting
  • Added Reflect[@​@​toStringTag], per July TC39 meeting
  • Forced replacement of Array#{ reduce, reduceRight } in Chrome 80-82 because of a bug, #​766
  • Following the changes in the upsert proposal, { Map, WeakMap }#emplace replace { Map, WeakMap }#upsert, these obsolete methods will be removed in the next major release
  • By the current spec, AggregateError#errors is own data property
  • Added correct iteration closing in the iteration helpers according to the current version of the proposal
  • process.nextTick have a less priority than Promise in the microtask implementation, #​855
  • Fixed microtask implementation in engines with MutationObserver, but without document, #​865, #​866
  • Fixed core-js-builder with an empty (after the targets engines or another filtration) modules list, #​822
  • Fixed possible twice call of window.onunhandledrejection, #​760
  • Fixed some possible problems related multiple global copies of core-js, #​880
  • Added a workaround for 3rd party Reflect.set polyfill bug, #​847
  • Updated compat data:
    • Chrome up to 86
    • FF up to 82
    • Safari up to 14
  • Updated compat data mapping:
    • iOS up to 14
    • NodeJS up to 15.0
    • Electron up to 11.0
    • Samsung Internet up to 13.0
    • Opera Android up to 60
    • The rest automatically
  • Updated all required dependencies

v3.6.5

Compare Source

v3.6.4

Compare Source

  • Prevented a possible almost infinite loop in non-standard implementations of some backward iteration array methods

v3.6.3

Compare Source

  • Fixed replacement of substitutes of undefined capture groups in .replace in Safari 13.0-, #​471, #​745, thanks @​mattclough1
  • Improved compat data for old engines

v3.6.2

Compare Source

  • Fixed early implementations of Array#{ every, forEach, includes, indexOf, lastIndexOf, reduce, reduceRight, slice, some, splice } for the usage of ToLength
  • Added RegExp#exec dependency to methods which depends on the correctness of logic of this method (3.6.0-3.6.1 issue), #​741
  • Refactored some internals

v3.6.1

Compare Source

  • Fixed a bug related Symbol with multiple copies of core-js (for 3.4.2-3.6.0), #​736
  • Refactored some tools

v3.6.0

Compare Source

  • Added support of sticky (y) RegExp flag, #​372, #​732, #​492, thanks @​cvle and @​nicolo-ribaudo
  • Added RegExp#test delegation to RegExp#exec, #​732, thanks @​cvle
  • Fixed some cases of Object.create(null) in IE8-, #​727, #​728, thanks @​aleen42
  • Allowed object of minimum environment versions as core-js-compat and core-js-builder targets argument
  • Allowed corresponding to Babel targets.esmodules, targets.browsers, targets.node options in core-js-compat and core-js-builder
  • Engines in compat data and results of targets parsing sorted alphabetically
  • Fixed features/instance/match-all entry compat data
  • Fixed Array.prototype[@​@​unscopables] descriptor (was writable)
  • Added Samsung Internet 11 compat data mapping

v3.5.0

Compare Source

v3.4.8

Compare Source

  • Added one more workaround for broken in previous versions inspectSource helper, #​719
  • Added Opera Mobile compat data
  • Updated Samsung Internet, iOS, old Node and Android compat data mapping
  • es.string.match-all marked as completely supported in FF73
  • Generate core-js-compat/modules since often we need just the list of core-js modules

v3.4.7

Compare Source

  • Fixed an NPM publishing issue

v3.4.6

Compare Source

  • Improved iOS compat data - added missed mapping iOS 12.2 -> Safari 12.1, added bug fixes from patch releases
  • Added Safari 13.1 compat data
  • Added missed in core-js-compat helpers ie_mob normalization
  • Normalize the result of getModulesListForTargetVersion core-js-compat helper
  • Improved CI detection in the postinstall script, #​707

v3.4.5

Compare Source

  • Detect incorrect order of operations in Object.assign, MS Edge bug
  • Detect usage of ToLength in Array#{ filter, map }, FF48-49 and MS Edge 14- issues
  • Detect incorrect MS Edge 17-18 Reflect.set which allows setting the property to object with non-writable property on the prototype
  • Fixed inspectSource helper with multiple core-js copies and some related features like some edge cases of Promise feature detection

v3.4.4

Compare Source

  • Added feature detection for Safari non-generic Promise#finally bug (critical for core-js-pure)
  • Fixed missed esnext.string.code-points in core-js/features/string entry point
  • Updated Iterator proposal feature detection for the case of non-standard Iterator in FF44-

v3.4.3

Compare Source

  • Fixed missed es.json.stringify and some modules from iteration helpers proposal in some entry points (includes the root entry point)
  • Added a workaround of String#{ endsWith, startsWith } MDN polyfills bugs, #​702
  • Fixed .size property descriptor of Map / Set in the pure version
  • Refactoring, some internal improvements

v3.4.2

Compare Source

  • Don't use polyfilled symbols as internal uids, a workaround for some incorrect use cases
  • String#replaceAll is available only in nightly FF builds
  • Improved Promise feature detection for the case of V8 6.6 with multiple core-js copies
  • Some internals optimizations
  • Added Node 13.2 -> V8 7.9 compat data mapping
  • Returned usage of node -e in postinstall scripts

v3.4.1

Compare Source

v3.4.0

Compare Source

v3.3.6

Compare Source

  • Don't detect Chakra-based Edge as Chrome in the userAgent parsing
  • Fixed inheritance in typed array constructors wrappers, #​683
  • Added one more workaround for correct work of early fetch implementations with polyfilled URLSearchParams, #​680

v3.3.5

Compare Source

  • Added a workaround of V8 deoptimization which causes serious performance degradation (~4x in my tests) of Array#concat, #​679
  • Added a workaround of V8 deoptimization which causes slightly performance degradation of Promise, #​679
  • Added (Async)Iterator.prototype.constructor -> (Async)Iterator per this issue
  • Added compat data for Chromium-based Edge

v3.3.4

Compare Source

  • Added a workaround of V8 deoptimization which causes serious performance degradation (~20x in my tests) of some RegExp-related methods like String#split, #​306
  • Added a workaround of V8 deoptimization which causes serious performance degradation (up to 100x in my tests) of Array#splice and slightly Array#{ filter, map }, #​677
  • Fixed work of fetch with polyfilled URLSearchParams, #​674
  • Fixed an edge case of String#replaceAll with an empty search value
  • Added compat data for Chrome 80
  • package-lock.json no longer generated in libraries

v3.3.3

Compare Source

  • gopher removed from URL special cases per this issue and this PR
  • Added compat data for iOS 13 and Node 13.0

v3.3.2

Compare Source

  • Fixed compatibility of core-js-compat with Node 6 and Yarn, #​669

v3.3.1

Compare Source

  • Fixed an NPM publishing issue

v3.3.0

Compare Source

  • String#{ matchAll, replaceAll } throws an error on non-global regex argument per the decision from TC39 meetings (+ this PR). It's a breaking change, but since it's a breaking change in the ES spec, it's added at the minor release
  • globalThis moved to stable ES, per October TC39 meeting
  • Promise.any moved to stage 3, some minor internal changes, per October TC39 meeting
  • String#replaceAll moved to stage 3, per October TC39 meeting
  • Added iterator helpers stage 2 proposal:
    • Iterator
      • Iterator.from
      • Iterator#asIndexedPairs
      • Iterator#drop
      • Iterator#every
      • Iterator#filter
      • Iterator#find
      • Iterator#flatMap
      • Iterator#forEach
      • Iterator#map
      • Iterator#reduce
      • Iterator#some
      • Iterator#take
      • Iterator#toArray
      • Iterator#@​@​toStringTag
    • AsyncIterator
      • AsyncIterator.from
      • AsyncIterator#asIndexedPairs
      • AsyncIterator#drop
      • AsyncIterator#every
      • AsyncIterator#filter
      • AsyncIterator#find
      • AsyncIterator#flatMap
      • AsyncIterator#forEach
      • AsyncIterator#map
      • AsyncIterator#reduce
      • AsyncIterator#some
      • AsyncIterator#take
      • AsyncIterator#toArray
      • AsyncIterator#@​@​toStringTag
  • Updated Map#upsert (Map#updateOrInsert before) proposal
    • Moved to stage 2, per October TC39 meeting
    • Map#updateOrInsert renamed to Map#upsert
    • Added WeakMap#upsert
    • You can don't pass one of the callbacks
  • Added a workaround for iOS Safari MessageChannel + bfcache bug, #​624
  • Added a workaround for Chrome 33 / Android 4.4.4 Promise bug, #​640
  • Replaced broken URL constructor in Safari and URLSearchParams in Chrome 66-, #​656
  • Added compat data for Node up to 12.11, FF 69, Samsung up to 10.2 and Phantom 1.9
  • Math.hypot marked as not supported in Chrome 77 since a bug in this method was not fixed before the stable Chrome 77 release
  • Fixed unnecessary exposing on Symbol.matchAll in esnext.string.match-all, #​626
  • Fixed missed cases access the .next method once, at the beginning, of the iteration protocol
  • Show similar postinstall messages only once per npm i, #​597, thanks @​remy

v3.2.1

Compare Source

  • Added a workaround for possible recursion in microtasks caused by conflicts with other Promise polyfills, #​615

v3.2.0

Compare Source

  • Promise.allSettled moved to stable ES, per July TC39 meeting
  • Promise.any moved to stage 2, .errors property of AggregateError instances maked non-enumerable, per July TC39 meeting
  • using statement proposal moved to stage 2, added Symbol.asyncDispose, per July TC39 meeting
  • Added Array.isTemplateObject stage 2 proposal, per June TC39 meeting
  • Added Map#updateOrInsert stage 1 proposal, per July TC39 meeting
  • Added a fix for Math.hypot V8 7.7 bug, since it's still not stable without adding results to core-js-compat
  • Added a workaround for APIs where not possible to replace broken native Promise, #​579 - added .finally and patched .then to / on native Promise prototype
  • Fixed crashing of Opera Presto, #​595
  • Fixed incorrect early breaking of { Map, Set, WeakMap, WeakSet }.deleteAll
  • Fixed some missed dependencies in entry points
  • Added compat data for Node 12.5, FF 67, Safari 13
  • Added support of DISABLE_OPENCOLLECTIVE env variable to postinstall script
  • Removed core-js-pure dependency from core-js-compat, #​590
  • Fixed generation of core-js-compat on Windows, #​606

v3.1.4

Compare Source

  • Refactoring. Many minor internal improvements and fixes like:
    • Improved Symbol.keyFor complexity to O(1)
    • Fixed the order of arguments validation in String.prototype.{ endsWith, includes, startsWith }
    • Internal implementation of RegExp#flags helper now respect dotAll flag (mainly ralated to the pure version)
    • Performace optimizations related old V8
    • Etc.

v3.1.3

Compare Source

  • Fixed core-js/features/reflect/delete-metadata entry point
  • Some fixes and improvements of the postinstall script like support npm color config (#​556) or adding support of ADBLOCK env variable
  • Refactoring and some minor fixes

v3.1.2

Compare Source

  • Added a workaround of a strange npx bug on postinstall, #​551

v3.1.1

Compare Source

  • Added one more workaround of alternative not completely correct Symbol polyfills, #​550, #​554
  • Reverted esnext.string.match-all in some entry points for fix autogeneration of core-js-compat/entries and backward @babel/preset-env compatibility

v3.1.0

Compare Source

  • String#matchAll moved to stable ES, exposed Symbol.matchAll, #​516
  • Promise.allSettled moved to stage 3, #​515
  • String#replaceAll moved to stage 2, behavior updated by the spec draft, #​524
  • Promise.any moved to stage 1, #​517
  • Removed es.regexp.flags dependency from es.regexp.to-string, #​536, #​537
  • Fixed IE8- non-enumerable properties support in Object.{ assign, entries, values }, #​541
  • Fixed support of primitives in Object.getOwnPropertySymbols in Chrome 38 / 39, #​539
  • window.postMessage-based task implementation uses location origin over '*', #​542
  • Lookup PromiseConstructor.resolve only once in Promise combinators, tc39/ecma262#​1506
  • Temporarily removed core-js dependency from core-js-compat since it's required for missed at this moment feature
  • Show a message on postinstall
  • Added compat data for Chrome 76, FF 67, Node 12

v3.0.1

Compare Source

  • Fixed some cases of work with malformed URI sequences in URLSearchParams, #​525
  • Added a workaround for a rollup issue, #​513

v3.0.0

Compare Source

  • Features
    • Add new features:
      • Object.fromEntries (ECMAScript 2019)
      • Symbol#description (ECMAScript 2019)
      • New Set methods (stage 2 proposal)
        • Set#difference
        • Set#intersection
        • Set#isDisjointFrom
        • Set#isSubsetOf
        • Set#isSupersetOf
        • Set#symmetricDifference
        • Set#union
      • Promise.allSettled (stage 2 proposal)
      • Getting last item from Array (stage 1 proposal)
        • Array#lastItem
        • Array#lastIndex
      • String#replaceAll (stage 1 proposal)
      • String#codePoints (stage 1 proposal)
      • New collections methods (stage 1 proposal)
        • Map.groupBy
        • Map.keyBy
        • Map#deleteAll
        • Map#every
        • Map#filter
        • Map#find
        • Map#findKey
        • Map#includes
        • Map#keyOf
        • Map#mapKeys
        • Map#mapValues
        • Map#merge
        • Map#reduce
        • Map#some
        • Map#update
        • Set#addAll
        • Set#deleteAll
        • Set#every
        • Set#filter
        • Set#find
        • Set#join
        • Set#map
        • Set#reduce
        • Set#some
        • WeakMap#deleteAll
        • WeakSet#addAll
        • WeakSet#deleteAll
      • compositeKey and compositeSymbol methods (stage 1 proposal)
      • Number.fromString (stage 1 proposal)
      • Math.seededPRNG (stage 1 proposal)
      • Symbol.patternMatch (for stage 1 pattern matching proposal)
      • Symbol.dispose (for stage 1 using statement proposal)
      • Promise.any (with AggregateError) (stage 0 proposal)
      • URL and URLSearchParam from URL standard, also stage 0 proposal to ECMAScript
        • URL
          • URL#href
          • URL#origin
          • URL#protocol
          • URL#username
          • URL#password
          • URL#host
          • URL#hostname
          • URL#port
          • URL#pathname
          • URL#search
          • URL#searchParams
          • URL#hash
          • URL#toString
          • URL#toJSON
        • URLSearchParams
          • URLSearchParams#append
          • URLSearchParams#delete
          • URLSearchParams#get
          • URLSearchParams#getAll
          • URLSearchParams#has
          • URLSearchParams#set
          • URLSearchParams#sort
          • URLSearchParams#toString
          • URLSearchParams#keys
          • URLSearchParams#values
          • URLSearchParams#entries
          • URLSearchParams#@​@​iterator
      • .forEach method on iterable DOM collections (#​329)
    • Improve existing features:
      • Add triggering unhandled Promise rejection events (instead of only global handlers), #​205.
      • Wrap fetch for correct with polyfilled Promise and preventing problems like #​178, #​332, #​371.
      • Add support of @@​isConcatSpreadable to Array#concat.
      • Add support of @@​species to Array#{concat, filter, map, slice, splice}.
      • Add direct .exec calling to RegExp#{@​@​replace, @​@​split, @​@​match, @​@​search}. Also, added fixes for RegExp#exec method. #​411, #​434, #​453, thanks @​nicolo-ribaudo.
      • Correct iterators prototypes chain, related #​261.
      • Correct Typed Arrays prototypes chain, related #​378.
      • Make the internal state of polyfilled features completely unobservable, #​146.
      • Add validation of receiver's internal class to missed non-generic methods.
      • Fix descriptors of global properties.
      • In the version without global pollution, if Object#toString does not support @@​toStringTag, add to wrapped prototypes own toString method with @@​toStringTag logic, see #​199.
    • Update standard features and proposals:
    • Mark ES2016, ES2017, ES2018, ES2019 features as stable:
      • Array#{ flat, flatMap }
      • { Array, %TypedArray% }#includes
      • Object.{ values, entries}
      • Object.getOwnPropertyDescriptors
      • String#{ padStart, padEnd }
      • String#{ trimStart, trimEnd, trimLeft, trimRight }
      • Promise#finally
      • Symbol.asyncIterator
      • Object#__(define|lookup)[GS]etter__
    • Remove obsolete features:
      • Error.isError (withdrawn)
      • System.global and global (replaced by globalThis)
      • Map#toJSON and Set#toJSON (rejected)
      • RegExp.escape (rejected)
      • Reflect.enumerate (removed from the spec)
      • Unnecessary iteration methods from CSSRuleList, MediaList, StyleSheetList
    • No more non-standard features, finally removed:
      • Dict
      • Object.{classof, isObject, define, make}
      • Function#part
      • Number#@​@​iterator
      • String#{escapeHTML, unescapeHTML}
      • delay
    • Add .sham flag to features which can't be properly polyfilled and / or not recommended for usage:
      • Symbol constructor - we can't add new primitives. Object.prototype accessors too expensive.
      • Object.{create, defineProperty, defineProperties, getOwnPropertyDescriptor, getOwnPropertyDescriptos}, Reflect.{defineProperty, getOwnPropertyDescriptor} can't be properly polyfilled without descriptors support.
      • Object.{freeze, seal, preventExtensions}, Reflect.preventExtensions can't be properly polyfilled in ES3 environment.
      • Object.getPrototypeOf can be deceived in ES3 environment.
      • Reflect.construct can't be polyfilled for a correct work with newTarget argument on built-ins.
      • Typed Array constructors polyfill is quite correct but too expensive.
      • URL constructor in engines without descriptors support.
  • Bug and compatibility fixes:
    • Fix deoptimisation of iterators in V8, #​377.
    • Fix import of property before constructor which should contain this property, #​262.
    • Fix some cases of IE11 WeakMap frozen keys fallback, #​384.
    • Fix non-enumerable integer keys issue because of Nashorn ~ JDK8 bug, #​389.
    • Fix Safari 12.0 Array#reverse bug.
    • One more fix for microtasks in iOS related #​339.
    • Added a fallback for Rhino bug, #​440.
    • Many other internal fixes and improvements.
  • Repository:
    • Change core-js repository structure to monorepo with packages in /packages/ directory.
    • Clean-up it, remove all possible duplicates, generated files, etc.
  • Packages:
    • Extract a version without global namespace pollution to a separate core-js-pure package (replacement for core-js/library).
    • Leave only one pair of bundles (global, with all polyfills) and move it to core-js-bundle package.
    • Remove bundling logic from core-js package, leave it only in core-js-builder package.
    • Clean-up packages.
    • Because of all approaches, reduce size of packages from ~2mb for core-js@2 to:
      • ~500kb for core-js package
      • ~440kb for core-js-pure package
    • Finally remove bower.json
  • CommonJS API, namespaces:
    • Add availability configuration of aggressiveness.
    • Move core-js/library to separate core-js-pure package.
    • Because of removing all non-standard features, we no longer need core-js/shim entry point, replace it just with core-js.
    • Move all features from ES5, ES2015, ES2016, ES2017, ES2018 and ES2019 to one namespace for stable ES - it's available as core-js/es, all those features in modules folder has es. prefix.
    • Change prefix for ES proposals from es7. to esnext., they no longer available in core-js/es7, use core-js/stage/* instead of that.
    • Rename core-js(/library)/fn to core-js(-pure)/features for improve readability.
    • Allow more granular inclusion of features from /es/ path (for example, core-js/es/array/from).
    • Add /stable/ entry points as an equal of /features/ for stable features, without proposals.
    • Add /proposals/ entry points for allow include all features from one proposal (for example, core-js/proposals/reflect-metadata).
    • Add /es|stable|features/instance/ entry points for getting polyfill of the related method for passed instance (could be used in cases like babel-runtime).
    • Split typed arrays polyfills. Now you can, for example, load only required method (for example, core-js/es/typed-array/from).
    • Extract well-known symbols definition from es.symbol module for loading only required features, for example, in MS Edge.
    • Rename web.dom namespace to web.dom-collections.
    • Rename es6.regexp.{match, replace, search, split} -> es.string.{match, replace, search, split} - mainly it's fixes / adding support of well-known symbols to string methods, only in second place adding related methods to regexp prototype.
    • Relax /modules/ directory by moving internal modules to /internals/ directory.
    • Remove deprecated array entry points: core-js(/library)/fn/array/{pop, push, reverse, shift, unshift}.
    • core object no longer available in the global version, entry points which previously returned it now returns globalThis object. Also, don't set global core property.
    • Add some missing entry points.
  • Tools, tests, code quality:
    • Added core-js-compat package with:
      • Data about the necessity of core-js modules and API for getting a list of required core-js modules by browserslist query, #​466.
      • Data which modules load by each entry point (mainly useful for tools like @babel/preset-env).
      • Data which modules added in minor versions (mainly useful for tools like @babel/preset-env).
    • core-js-builder package:
      • Added targets option with browserslist query.
      • Removed an option for generation bundle of a version without global namespace pollution - now it's an odd use case.
      • Removed UMD wrapper from a generated code of bundles - we don't need it for a global polyfill.
    • Getting rid of LiveScript, usage another language in JS standard library looks strange and impedes usage of tools like ESLint:
      • Tests are rewritten to JS.
      • Scripts are rewritten to JS.
    • Babel with minimalistic config (which should work anywhere) used on tests.
    • ESLint used on tests and tools.
    • Source code refactored for improving readability.

v2.6.12

Compare Source

  • Added code points / code units explicit feature detection in String#at for preventing breakage code which use obsolete String#at proposal polyfill
  • Added OPEN_SOURCE_CONTRIBUTOR detection in postinstall
  • Added Drone CI detection in postinstall

v2.6.11

Compare Source

  • Returned usage of node -e in the postinstall scripts for better cross-platform compatibility, #​582
  • Improved CI detection in the postinstall script, #​707

v2.6.10

Compare Source

  • Show similar postinstall messages only once per npm i, #​597

v2.6.9

Compare Source

  • Some fixes and improvements of the postinstall script like support npm color config (#​556) or adding support of ADBLOCK env variable

v2.6.8

Compare Source

  • Added a workaround of a strange npx bug on postinstall, #​551

v2.6.7

Compare Source

  • Added one more workaround of alternative not completely correct Symbol polyfills, #​550, #​554

v2.6.6

Compare Source

  • Fixed IE8- non-enumerable properties support in Object.{ assign, entries, values }, #​541
  • Fixed support of primitives in Object.getOwnPropertySymbols in Chrome 38 / 39, #​539
  • Show a message on postinstall

Configuration

📅 Schedule: At any time (no schedule defined).

🚦 Automerge: Disabled by config. Please merge this manually once you are satisfied.

Rebasing: Whenever PR becomes conflicted, or you tick the rebase/retry checkbox.

🔕 Ignore: Close this PR and you won't be reminded about this update again.


  • If you want to rebase/retry this PR, check this box.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

Successfully merging this pull request may close these issues.

0 participants