-
-
Notifications
You must be signed in to change notification settings - Fork 1.7k
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
[WIP] V4 #1310
Open
zloirock
wants to merge
387
commits into
master
Choose a base branch
from
v4
base: master
Could not load branches
Branch not found: {{ refName }}
Loading
Could not load tags
Nothing to show
Loading
Are you sure you want to change the base?
Some commits from the old base branch may be removed from the timeline,
and old review comments may become outdated.
+20,139
−60,700
Conversation
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
zloirock
force-pushed
the
v4
branch
9 times, most recently
from
December 4, 2023 04:02
5b64b45
to
60b1959
Compare
zloirock
force-pushed
the
v4
branch
6 times, most recently
from
December 5, 2023 18:46
f89c380
to
0a9a77e
Compare
zloirock
force-pushed
the
v4
branch
12 times, most recently
from
December 9, 2023 14:37
548da11
to
64fba83
Compare
…`byteLength` optional arguments
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.
This suggestion is invalid because no changes were made to the code.
Suggestions cannot be applied while the pull request is closed.
Suggestions cannot be applied while viewing a subset of changes.
Only one suggestion per line can be applied in a batch.
Add this suggestion to a batch that can be applied as a single commit.
Applying suggestions on deleted lines is not supported.
You must change the existing code in this line in order to create a valid suggestion.
Outdated suggestions cannot be applied.
This suggestion has been applied or marked resolved.
Suggestions cannot be applied from pending reviews.
Suggestions cannot be applied on multi-line comments.
Suggestions cannot be applied while the pull request is queued to merge.
Suggestion cannot be applied right now. Please check back later.
WeakMap
support (no matter bugs, for internal usage only, in polyfills could be fixed)Map
andSet
support (no matter bugs, for internal usage only, in polyfills could be fixed or completely replaced)%TypedArray%
,ArrayBuffer
andDataView
constructors support (no matter bugs, in polyfills could be fixed)Object.setPrototypeOf
or__proto__
Array.isArray
without fallbacksArray.prototype.{ forEach, every, some }
without fallbacksDate.now
without fallbacksDate.prototype.toISOString
without fallbacksFunction.prototype.bind
without fallbacksObject.create
without fallbacks in simple casesObject.getPrototypeOf
without fallbacks in simple casesObject.{ defineProperty, defineProperties, getOwnPropertyDescriptor }
without fallbacks in simple casesObject.keys
without fallbacks in simple casesObject.getOwnPropertyNames
without fallbacks in simple casesObject.{ freeze, seal, preventExtensions }
without fallbacks in simple casesObject.{ isFrozen, isSealed, isExtensible }
without fallbacks in simple casesJSON
methods as existentarguments
fallback fromObject#toString
.charAt
WeakMap
Map
andSet
ArrayBuffer
,DataView
and%TypedArray%
Object.setPrototypeOf
or__proto__
- as existentError.prototype.toString
without fallbacks (IE8-, V8 ~ Chrome 32-, FF10- bugs)Object.{ defineProperty, defineProperties }
bug withprototype
__proto__
bug'@@iterator'
string key)null
proto objectsObject.prototype.propertyIsEnumerable
bugRegExp.prototype.exec
methods don't consistently returnundefined
for NPCGArray
String.prototype.at
with code points semanticMath
extensionsMath.signbit
URL
as a ES proposal, anyway it's left in web standards polyfillscompositeKey
andcompositeSymbol
- 5+ years without activity, anyway the form will be changed, I hope that it will be resurrected soonNumber.fromString
- 6 years w/o activity, semantics is not clearString.prototype.codePoints
- 6 years w/o activityFunction.{ isCallable, isConstructor }
- 9 years w/o any progress on stage 0, there are no plans to advance itObservable
(will be replaced with this proposal in the future)Reflect
metadata didn't become an official proposal, should be replaced by@@metadata
-based logic, see this issueArray.prototype.filterOut
(obsolete, replaced withArray.prototype.filterReject
)Array.prototype.group
(obsolete, replaced withObject.groupBy
)Array.prototype.groupBy
(obsolete, replaced withObject.groupBy
)Array.prototype.groupByToMap
(obsolete, replaced withMap.groupBy
)Array.prototype.groupToMap
(obsolete, replaced withMap.groupBy
)Array.prototype.lastIndex
(withdrawn)Array.prototype.lastItem
(withdrawn in favor ofArray.prototype.at
)AsyncIterator.prototype.asIndexedPairs
(obsolete in favor of the usagecounter
argument methods callbacks)AsyncIterator.prototype.indexed
(obsolete in favor of the usagecounter
argument methods callbacks)BigInt.range
(obsolete, replaced withIterator.range
)Function.isCallable
(proposal is dead)Function.isConstructor
(proposal is dead)Function.prototype.unThis
(obsolete, replaced withFunction.prototype.demethodize
)Iterator.prototype.asIndexedPairs
(obsolete in favor of the usagecounter
argument methods callbacks)Iterator.prototype.indexed
(obsolete in favor of the usagecounter
argument methods callbacks)Map.keyBy
(proposal is dead)Map.prototype.deleteAll
(proposal is dead)Map.prototype.every
(proposal is dead)Map.prototype.filter
(proposal is dead)Map.prototype.find
(proposal is dead)Map.prototype.findKey
(proposal is dead)Map.prototype.includes
(proposal is dead)Map.prototype.keyOf
(proposal is dead)Map.prototype.mapKeys
(proposal is dead)Map.prototype.mapValues
(proposal is dead)Map.prototype.merge
(proposal is dead)Map.prototype.reduce
(proposal is dead)Map.prototype.some
(proposal is dead)Map.prototype.update
(proposal is dead)Map.prototype.updateOrInsert
(obsolete, replaced withMap.prototype.emplace
)Map.prototype.upsert
(obsolete, replaced withMap.prototype.emplace
)Math.DEG_PER_RAD
(withdrawn)Math.RAD_PER_DEG
(withdrawn)Math.clamp
(withdrawn)Math.degrees
(withdrawn)Math.fscale
(withdrawn)Math.iaddh
(withdrawn in favor ofBigInt
s)Math.imulh
(withdrawn in favor ofBigInt
s)Math.isubh
(withdrawn in favor ofBigInt
s)Math.radians
(withdrawn)Math.scale
(withdrawn)Math.seededPRNG
(changing of the API, waiting for the spec text)Math.signbit
(withdrawn)Math.umulh
(withdrawn in favor ofBigInt
s)Number.fromString
(proposal is dead)Number.range
(obsolete, replaced withIterator.range
)Object.iterateEntries
(withdrawn)Object.iterateKeys
(withdrawn)Object.iterateValues
(withdrawn)Observable
(will be replaced with this proposal in the future)Reflect.defineMetadata
(obsolete)Reflect.getMetadata
(obsolete)Reflect.getOwnMetadata
(obsolete)Reflect.hasMetadata
(obsolete)Reflect.hasOwnMetadata
(obsolete)Reflect.deleteMetadata
(obsolete)Reflect.getMetadataKeys
(obsolete)Reflect.getOwnMetadataKeys
(obsolete)Reflect.metadata
(obsolete)Set.prototype.addAll
(proposal is dead)Set.prototype.deleteAll
(proposal is dead)Set.prototype.every
(proposal is dead)Set.prototype.filter
(proposal is dead)Set.prototype.find
(proposal is dead)Set.prototype.join
(proposal is dead)Set.prototype.map
(proposal is dead)Set.prototype.reduce
(proposal is dead)Set.prototype.some
(proposal is dead)String.prototype.codePoints
(proposal is dead)Symbol.isRegistered
(obsolete, replaced withSymbol.isRegisteredSymbol
)Symbol.isWellKnown
(obsolete, replaced withSymbol.isWellKnownSymbol
)Symbol.matcher
(obsolete, replaced withSymbol.customMatcher
)Symbol.metadataKey
(obsolete, replaced withSymbol.metadata
)Symbol.patternMatch
(obsolete, replaced withSymbol.customMatcher
)Symbol.replaceAll
(obsolete)%TypedArray%.fromAsync
(obsolete)%TypedArray%.prototype.filterOut
(obsolete, replaced with%TypedArray%.prototype.filterReject
)%TypedArray%.prototype.groupBy
(obsolete, replaced withObject.groupBy
)%TypedArray%.prototype.toSpliced
(obsolete)WeakSet.prototype.addAll
(proposal is dead)WeakSet.prototype.deleteAll
(proposal is dead)WeakMap.prototype.deleteAll
(proposal is dead)WeakMap.prototype.upsert
(obsolete, replaced withWeakMap.prototype.emplace
)compositeKey
(proposal is dead)compositeSymbol
(proposal is dead)Symbol.{ useSetter, useSimple, withoutSetter }
methods control ofSymbol
polyfill'@@iterator'
string key)es.array.every
(required for ES3 only)es.array.for-each
(required for ES3 only)es.array.is-array
(required for ES3 only)es.array.some
(required for ES3 only)es.date.get-year
(supported in all popular modern engines, required for IE8- only)es.date.now
(required for ES3 only)es.date.set-year
(supported in all popular modern engines)es.date.to-iso-string
(required for IE8- and other ancient engines)es.date.to-gmt-string
(supported in all popular modern engines)es.date.to-string
(required for IE8- only)es.error.to-string
(required for IE8-, V8 ~ Chrome 32-, FF10-)es.escape
(supported in all popular modern engines)es.function.bind
(required for ES3 only)es.number.to-precision
(required for ancient engines like IE8- or Android 4.3- only)es.object.define-property
(required for ES3 engines and V8 ~ Chrome 36- only)es.object.define-properties
(required for ES3 engines and V8 ~ Chrme 36- only)es.object.create
(required for ES3 only)es.string.substr
(supported in all popular modern engines)es.unescape
(supported in all popular modern engines)esnext.aggregate-error
(moved to stable ES)esnext.array.at
(moved to stable ES)esnext.array.filter-out
(obsolete)esnext.array.find-last
(moved to stable ES)esnext.array.find-last-index
(moved to stable ES)esnext.array.group
(obsolete)esnext.array.group-by
(obsolete)esnext.array.group-by-to-map
(obsolete)esnext.array.group-to-map
(obsolete)esnext.array.last-index
(withdrawn)esnext.array.last-item
(withdrawn in favor ofArray.prototype.at
)esnext.array.to-reversed
(moved to stable ES)esnext.array.to-sorted
(moved to stable ES)esnext.array.to-spliced
(moved to stable ES)esnext.array.with
(moved to stable ES)esnext.async-iterator.as-indexed-pairs
(obsolete)esnext.async-iterator.indexed
(obsolete)esnext.bigint.range
(obsolete)esnext.composite-key
(proposal is dead)esnext.composite-symbol
(proposal is dead)esnext.function.is-callable
(proposal is dead)esnext.function.is-constructor
(proposal is dead)esnext.function.un-this
(obsolete)esnext.global-this
(moved to stable ES)esnext.iterator.as-indexed-pairs
(obsolete)esnext.iterator.indexed
(obsolete)esnext.map.delete-all
(proposal is dead)esnext.map.every
(proposal is dead)esnext.map.filter
(proposal is dead)esnext.map.find
(proposal is dead)esnext.map.find-key
(proposal is dead)esnext.map.group-by
(moved to stable ES)esnext.map.includes
(proposal is dead)esnext.map.key-by
(proposal is dead)esnext.map.key-of
(proposal is dead)esnext.map.map-keys
(proposal is dead)esnext.map.map-values
(proposal is dead)esnext.map.merge
(proposal is dead)esnext.map.reduce
(proposal is dead)esnext.map.some
(proposal is dead)esnext.map.update
(proposal is dead)esnext.map.update-or-insert
(obsolete)esnext.map.upsert
(obsolete)esnext.math.clamp
(withdrawn)esnext.math.deg-per-rad
(withdrawn)esnext.math.degrees
(withdrawn)esnext.math.fscale
(withdrawn)esnext.math.iaddh
(withdrawn)esnext.math.imulh
(withdrawn)esnext.math.isubh
(withdrawn)esnext.math.rad-per-deg
(withdrawn)esnext.math.radians
(withdrawn)esnext.math.scale
(withdrawn)esnext.math.seeded-prng
(obsolete)esnext.math.signbit
(withdrawn)esnext.math.umulh
(withdrawn)esnext.number.from-string
(proposal is dead)esnext.number.range
(obsolete)esnext.object.has-own
(moved to stable ES)esnext.object.iterate-entries
(withdrawn)esnext.object.iterate-keys
(withdrawn)esnext.object.iterate-values
(withdrawn)esnext.object.group-by
(moved to stable ES)esnext.observable
(will be replaced with this proposal in the future)esnext.promise.all-settled
(moved to stable ES)esnext.promise.any
(moved to stable ES)esnext.promise.with-resolvers
(moved to stable ES)esnext.reflect.define-metadata
(obsolete)esnext.reflect.delete-metadata
(obsolete)esnext.reflect.get-metadata
(obsolete)esnext.reflect.get-metadata-keys
(obsolete)esnext.reflect.get-own-metadata
(obsolete)esnext.reflect.get-own-metadata-keys
(obsolete)esnext.reflect.has-metadata
(obsolete)esnext.reflect.has-own-metadata
(obsolete)esnext.reflect.metadata
(obsolete)esnext.set.add-all
(proposal is dead)esnext.set.delete-all
(proposal is dead)esnext.set.difference
(old version of proposal, updated and moved to stable ES)esnext.set.difference.v2
(moved to stable ES)esnext.set.every
(proposal is dead)esnext.set.filter
(proposal is dead)esnext.set.find
(proposal is dead)esnext.set.intersection
(old version of proposal, updated and moved to stable ES)esnext.set.intersection.v2
(moved to stable ES)esnext.set.is-disjoint-from
(old version of proposal, updated and moved to stable ES)esnext.set.is-disjoint-from.v2
(moved to stable ES)esnext.set.is-subset-of
(old version of proposal, updated and moved to stable ES)esnext.set.is-subset-of.v2
(moved to stable ES)esnext.set.is-superset-of
(old version of proposal, updated and moved to stable ES)esnext.set.is-superset-of.v2
(moved to stable ES)esnext.set.join
(proposal is dead)esnext.set.map
(proposal is dead)esnext.set.reduce
(proposal is dead)esnext.set.symmetric-difference
(old version of proposal, updated and moved to stable ES)esnext.set.symmetric-difference.v2
(moved to stable ES)esnext.set.union
(old version of proposal, updated and moved to stable ES)esnext.set.union.v2
(moved to stable ES)esnext.set.some
(proposal is dead)esnext.string.at
(old version, replaced by module with the same name with actual behavior)esnext.string.at-alternative
(moved to stable ES)esnext.string.code-points
(proposal is dead)esnext.string.is-well-formed
(moved to stable ES)esnext.string.match-all
(moved to stable ES)esnext.string.replace-all
(moved to stable ES)esnext.string.to-well-formed
(moved to stable ES)esnext.symbol.is-registered
(obsolete)esnext.symbol.is-well-known
(obsolete)esnext.symbol.matcher
(obsolete)esnext.symbol.metadata-key
(obsolete)esnext.symbol.pattern-match
(obsolete)esnext.symbol.replace-all
(obsolete)esnext.typed-array.from-async
(obsolete)esnext.typed-array.at
(moved to stable ES)esnext.typed-array.filter-out
(obsolete)esnext.typed-array.find-last
(moved to stable ES)esnext.typed-array.find-last-index
(moved to stable ES)esnext.typed-array.group-by
(obsolete)esnext.typed-array.to-reversed
(moved to stable ES)esnext.typed-array.to-sorted
(moved to stable ES)esnext.typed-array.to-spliced
(obsolete)esnext.typed-array.with
(moved to stable ES)esnext.weak-set.add-all
(proposal is dead)esnext.weak-set.delete-all
(proposal is dead)esnext.weak-map.delete-all
(proposal is dead)esnext.weak-map.upsert
(obsolete)web.timers
(required for IE9- only)es.array.iterator
to:es.array.iterator
es.array.keys
es.array.values
es.array.entries
es.array-buffer.constructor
to:es.array-buffer.constructor
es.array-buffer.species
es.array-buffer.to-string-tag
es.typed-array.species
es.typed-array.to-string-tag
es.typed-array.iterator
to:es.typed-array.iterator
es.typed-array.keys
es.typed-array.values
es.typed-array.entries
es.data-view
to:es.data-view.constructor
es.data-view.set-int8
es.data-view.set-uint8
es.data-view.to-string-tag
es.map
to:es.map.constructor
es.map.species
es.promise
to:es.promise.constructor
es.promise.all
es.promise.catch
es.promise.race
es.promise.reject
es.promise.resolve
es.set
to:es.set.constructor
es.set.species
es.string.at-alternative
to:es.string.at
es.string.trim-end
andes.string.trim-start
to:es.string.trim-end
es.string.trim-left
es.string.trim-right
es.string.trim-start
es.symbol
to:es.symbol.constructor
es.symbol.for
es.symbol.key-for
es.symbol.to-primitive
es.object.get-own-property-symbols
Set
methods:es.set.difference.v2
->es.set.difference
es.set.intersection.v2
->es.set.intersection
es.set.is-disjoint-from.v2
->es.set.is-disjoint-from
es.set.is-subset-of.v2
->es.set.is-subset-of
es.set.is-superset-of.v2
->es.set.is-superset-of
es.set.symmetric-difference.v2
->es.set.symmetric-difference
es.set.union.v2
->es.set.union
web.dom-collections.iterator
to:web.dom-collections.iterator
web.dom-collections.keys
web.dom-collections.values
web.dom-collections.entries
web.immediate
to:web.clear-immediate
web.set-immediate
es.aggregate-error
->es.aggregate-error.constructor
es.weak-map
->es.weak-map.constructor
es.weak-set
->es.weak-set.constructor
web.url
->es.url.constructor
web.url-search-params
->es.url-search-params.constructor
@core-js/builder
,babel
,swc
core-js
entry points, get dependencies from entries definitions and direct declarations from modules - simplification of maintenance, reducing of potential errors and code sizecore-js
entry an equal ofcore-js/actual
/proposals/
namespace - some proposals were renamed, some entries had some versions/features/
namespace in favor of/full/
/web/
namespace as almost useless in favor of/stable/
,/actual/
,/full/
/stage/4
,/stage
and/proposals
entries without specifying a stage / a proposal as almost useless*/virtual/index.js
entries as useless/math/to-string-tag
/proposals/*
entries now contain required modules with dependencies/stage/*
entries now include not only modules from the higher stages than the specified stage but also all stable ES modulesexports
fields with all entries topackage.json
of packagescore-js/configurator
in favor of future / alternative approaches since the current way is too dangerous, inapplicable in most cases and almost no one uses itdeno.land/x
sincecore-js
is almost not used from thiscore-js-compat
->@core-js/compat
core-js-builder
->@core-js/builder
core-js-bundle
->@core-js/bundle
core-js-pure
->@core-js/pure
@core-js/builder
and@core-js/compat
@core-js/compat
modules-by-versions
history forcore-js@3
@core-js/compat
/@core-js/builder
defaultmodules
list an equal ofcore-js/actual
for consistency withimport 'core-js'
core-js
version in@core-js/compat
node_modules
andpackage.json
magic options ascore-js
, similarly to this@core-js/compat
/@core-js/builder
targets keys:{ chrome, firefox, opera }-android
repaced with{ chrome, firefox, opera }_mobile
because of allowing 3rd party browsers on iOS in EUreact-native
also replaced withreact_native
for consistency_
is beter replacement for space than-
, keys with_
could be used in object literals without quotes and those keys are consistent with related keys in other toolsphantom
since this engine is no longer supported by polyfilloculus
in favor ofquest
@core-js/compat
filter
deprecated option in favor ofmodules
@core-js/builder
blacklist
deprecated option in favor ofexclude
@core-js/builder
return an object (for future extensions)@core-js/builder
dependencies (Node 8 support no longer block that)minify
option to@core-js/builder
, bundles minified by defaultThat's part of the planned changes, many of the already-done moments are not documented, the rest will be added later.