-
-
Couldn't load subscription status.
- Fork 1.7k
[WIP] V4 #1310
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
zloirock
wants to merge
429
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.
Conversation
This file contains hidden or 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
5b64b45 to
60b1959
Compare
f89c380 to
0a9a77e
Compare
548da11 to
64fba83
Compare
… Platform `Observable` proposal
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.
WeakMapsupport (no matter bugs, for internal usage only, in polyfills could be fixed)MapandSetsupport (no matter bugs, for internal usage only, in polyfills could be fixed or completely replaced)%TypedArray%,ArrayBufferandDataViewconstructors support (no matter bugs, in polyfills could be fixed)Object.setPrototypeOfor__proto__Array.isArraywithout fallbacksArray.prototype.{ forEach, every, some }without fallbacksDate.nowwithout fallbacksDate.prototype.toISOStringwithout fallbacksFunction.prototype.bindwithout fallbacksObject.createwithout fallbacks in simple casesObject.getPrototypeOfwithout fallbacks in simple casesObject.{ defineProperty, defineProperties, getOwnPropertyDescriptor }without fallbacks in simple casesObject.keyswithout fallbacks in simple casesObject.getOwnPropertyNameswithout fallbacks in simple casesObject.{ freeze, seal, preventExtensions }without fallbacks in simple casesObject.{ isFrozen, isSealed, isExtensible }without fallbacks in simple casesJSONmethods as existentargumentsfallback fromObject#toString.charAtWeakMapMapandSetArrayBuffer,DataViewand%TypedArray%Object.setPrototypeOfor__proto__- as existentError.prototype.toStringwithout fallbacks (IE8-, V8 ~ Chrome 32-, FF10- bugs)Object.{ defineProperty, defineProperties }bug withprototype__proto__bug'@@iterator'string key)nullproto objectsObject.prototype.propertyIsEnumerablebugRegExp.prototype.execmethods don't consistently returnundefinedfor NPCGArrayString.prototype.atwith code points semanticMathextensionsMath.signbitURLas a ES proposal, anyway it's left in web standards polyfillscompositeKeyandcompositeSymbol- 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)Reflectmetadata 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 usagecounterargument methods callbacks)AsyncIterator.prototype.indexed(obsolete in favor of the usagecounterargument 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 usagecounterargument methods callbacks)Iterator.prototype.indexed(obsolete in favor of the usagecounterargument methods callbacks)Iterator.prototype.sliding(obsolete in favor of the usageundersizedparameter ofIterator.prototype.windows)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(obsolete, replaced withNumber.prototype.clamp)Math.degrees(withdrawn)Math.fscale(withdrawn)Math.iaddh(withdrawn in favor ofBigInts)Math.imulh(withdrawn in favor ofBigInts)Math.isubh(withdrawn in favor ofBigInts)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 ofBigInts)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.observable(obsolete)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 ofSymbolpolyfill'@@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.array.from-async(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-disposable-stack.constructor(moved to stable ES)esnext.async-iterator.async-dispose(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.data-view.get-float16(moved to stable ES)esnext.data-view.set-float16(moved to stable ES)esnext.disposable-stack.constructor(moved to stable ES)esnext.error.is-error(moved to stable ES)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.constructor(moved to stable ES)esnext.iterator.dispose(moved to stable ES)esnext.iterator.drop(moved to stable ES)esnext.iterator.every(moved to stable ES)esnext.iterator.filter(moved to stable ES)esnext.iterator.find(moved to stable ES)esnext.iterator.flat-map(moved to stable ES)esnext.iterator.for-each(moved to stable ES)esnext.iterator.from(moved to stable ES)esnext.iterator.indexed(obsolete)esnext.iterator.map(moved to stable ES)esnext.iterator.reduce(moved to stable ES)esnext.iterator.sliding(obsolete)esnext.iterator.some(moved to stable ES)esnext.iterator.take(moved to stable ES)esnext.iterator.to-array(moved to stable ES)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(obsolete)esnext.math.deg-per-rad(withdrawn)esnext.math.degrees(withdrawn)esnext.math.f16round(moved to stable ES)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.sum-precise(moved to stable ES)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.try(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.regexp.escape(moved to stable ES)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.suppressed-error.constructor(moved to stable ES)esnext.symbol.async-dispose(moved to stable ES)esnext.symbol.dispose(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.observable(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.uint8-array.from-base64(moved to stable ES)esnext.uint8-array.from-hex(moved to stable ES)esnext.uint8-array.set-from-base64(moved to stable ES)esnext.uint8-array.set-from-hex(moved to stable ES)esnext.uint8-array.to-base64(moved to stable ES)esnext.uint8-array.to-hex(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.iteratorto:es.array.iteratores.array.keyses.array.valueses.array.entrieses.array-buffer.constructorto:es.array-buffer.constructores.array-buffer.specieses.array-buffer.to-string-tages.typed-array.specieses.typed-array.to-string-tages.typed-array.iteratorto:es.typed-array.iteratores.typed-array.keyses.typed-array.valueses.typed-array.entrieses.data-viewto:es.data-view.constructores.data-view.set-int8es.data-view.set-uint8es.data-view.to-string-tages.mapto:es.map.constructores.map.specieses.promiseto:es.promise.constructores.promise.alles.promise.catches.promise.racees.promise.rejectes.promise.resolvees.setto:es.set.constructores.set.specieses.string.at-alternativeto:es.string.ates.string.trim-endandes.string.trim-startto:es.string.trim-endes.string.trim-leftes.string.trim-rightes.string.trim-startes.symbolto:es.symbol.constructores.symbol.fores.symbol.key-fores.symbol.to-primitivees.object.get-own-property-symbolsSetmethods:es.set.difference.v2->es.set.differencees.set.intersection.v2->es.set.intersectiones.set.is-disjoint-from.v2->es.set.is-disjoint-fromes.set.is-subset-of.v2->es.set.is-subset-ofes.set.is-superset-of.v2->es.set.is-superset-ofes.set.symmetric-difference.v2->es.set.symmetric-differencees.set.union.v2->es.set.unionweb.dom-collections.iteratorto:web.dom-collections.iteratorweb.dom-collections.keysweb.dom-collections.valuesweb.dom-collections.entriesweb.immediateto:web.clear-immediateweb.set-immediatees.aggregate-error->es.aggregate-error.constructores.weak-map->es.weak-map.constructores.weak-set->es.weak-set.constructorweb.url->es.url.constructorweb.url-search-params->es.url-search-params.constructor@core-js/builder,babel,swccore-jsentry points, get dependencies from entries definitions and direct declarations from modules - simplification of maintenance, reducing of potential errors and code sizecore-jsentry 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,/stageand/proposalsentries without specifying a stage / a proposal as almost useless*/virtual/index.jsentries as useless and malicious forexportspackage.jsonfields optimization/virtual/entries to/prototype/for a more telling name/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 modulesexportsfields with all entries topackage.jsonof packagescore-js/configuratorin favor of future / alternative approaches since the current way is too dangerous, inapplicable in most cases and almost no one uses itdeno.land/xsincecore-jsis almost not used from thiscore-js-compat->@core-js/compatcore-js-builder->@core-js/buildercore-js-bundle->@core-js/bundlecore-js-pure->@core-js/pure@core-js/{ compat, builder }@core-js/compatmodules-by-versions- automatically generate it without requirement of manual adding@core-js/compat/get-entries-list-for-target-versionhelper and automatically generatedentries-by-versions@core-js/{ compat, builder }defaultmoduleslist an equal ofcore-js/actualfor consistency withimport 'core-js'core-jsversion in@core-js/compatnode_modulesandpackage.jsonmagic options ascore-js, similarly to this@core-js/{ compat, builder }targets keys:phantomsince this engine is no longer supported by polyfilloculusin favor ofquest@core-js/{ compat, builder }API no longer starts fromcore-js/- for example, instead ofcore-js/actualyou should write justactual@core-js/{ compat, builder }filterdeprecated option in favor ofmodules@core-js/{ compat, builder }blacklistdeprecated option in favor ofexclude@core-js/{ compat, builder }strings-namespaces support inmodules/excludein favor of regexes for avoiding false positives@core-js/builderreturn an object (for future extensions)@core-js/builderdependencies (Node 8 support no longer block that)minifyoption 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.