Skip to content

[WIP] V4#1310

Open
zloirock wants to merge 1434 commits intomasterfrom
v4
Open

[WIP] V4#1310
zloirock wants to merge 1434 commits intomasterfrom
v4

Conversation

@zloirock
Copy link
Copy Markdown
Owner

@zloirock zloirock commented Nov 27, 2023

Polyfill packages

  • Drop ancient engines support:
    • The baseline is engines about IE11, ES5 with some additions:
      • Basic WeakMap support (no matter bugs, for internal usage only, in polyfills could be fixed)
      • Basic Map and Set support (no matter bugs, for internal usage only, in polyfills could be fixed or completely replaced)
      • Basic %TypedArray%, ArrayBuffer and DataView constructors support (no matter bugs, in polyfills could be fixed)
      • A way of setting a prototype - Object.setPrototypeOf or __proto__
    • Examples of supported engines:
      • IE11
      • Chrome 38
      • Safari 7.1
      • FF15
      • Node 0.11
    • Examples of no longer supported engines:
      • IE10-
      • Android 4.4.3-
      • PhantomJS (~ IIRC Safari 6.0)
      • Opera Presto (12-)
      • Duktape
    • Code changes coming from this:
      • Allow unquoted keyword properties
      • Allow trailing commas in multiline object literals
      • Drop descriptors check
      • Consider strict mode as supported
      • Use native Array.isArray without fallbacks
      • Use native Array.prototype.{ forEach, every, some } without fallbacks
      • Use native Date.now without fallbacks
      • Use native Date.prototype.toISOString without fallbacks
      • Use native Function.prototype.bind without fallbacks
      • Use native Object.create without fallbacks in simple cases
      • Use native Object.getPrototypeOf without fallbacks in simple cases
      • Use native Object.{ defineProperty, defineProperties, getOwnPropertyDescriptor } without fallbacks in simple cases
      • Use native Object.keys without fallbacks in simple cases
      • Use native Object.getOwnPropertyNames without fallbacks in simple cases
      • Use native Object.{ freeze, seal, preventExtensions } without fallbacks in simple cases
      • Use native Object.{ isFrozen, isSealed, isExtensible } without fallbacks in simple cases
      • Consider base JSON methods as existent
      • Drop arguments fallback from Object#toString
      • Drop ES3-related Babel transforms from tests processing
      • Drop workarounds of non-enumerable string chars (IE8-, also affects V8 ~ Node 0.10-)
      • Allow bracket notation on strings instead of .charAt
      • Etc.

      • Consider basic support of WeakMap
      • Consider basic support of Map and Set
      • Consider basic support of ArrayBuffer, DataView and %TypedArray%
      • Consider a way of setting a prototype - Object.setPrototypeOf or __proto__ - as existent

      • Use native Error.prototype.toString without fallbacks (IE8-, V8 ~ Chrome 32-, FF10- bugs)
      • Drop workarounds of V8 ~ Chrome 36- Object.{ defineProperty, defineProperties } bug with prototype
      • Drop workarounds of V8 ~ Chrome 27- non-redefinable__proto__ bug
      • Drop fallbacks to ancient FF iterators (with '@@iterator' string key)
      • Drop a workaround of an IE bug with non-enumerable integer keys on null proto objects
      • Drop a workaround of ancient Nashorn Object.prototype.propertyIsEnumerable bug
      • Drop a workaround for ancient engines whose RegExp.prototype.exec methods don't consistently return undefined for NPCG
      • Drop many and many other fallbacks / workarounds of ancient engines bugs that now make no sense
  • Remove proposals:
  • Add new proposals:
  • Remove built-ins:
    • Array.prototype.filterOut (obsolete, replaced with Array.prototype.filterReject)
    • Array.prototype.group (obsolete, replaced with Object.groupBy)
    • Array.prototype.groupBy (obsolete, replaced with Object.groupBy)
    • Array.prototype.groupByToMap (obsolete, replaced with Map.groupBy)
    • Array.prototype.groupToMap (obsolete, replaced with Map.groupBy)
    • Array.prototype.lastIndex (withdrawn)
    • Array.prototype.lastItem (withdrawn in favor of Array.prototype.at)
    • AsyncIterator.prototype.asIndexedPairs (obsolete in favor of the usage counter argument methods callbacks)
    • AsyncIterator.prototype.indexed (obsolete in favor of the usage counter argument methods callbacks)
    • BigInt.range (obsolete, replaced with Iterator.range)
    • Function.isCallable (proposal is dead)
    • Function.isConstructor (proposal is dead)
    • Function.prototype.unThis (obsolete, replaced with Function.prototype.demethodize)
    • Iterator.prototype.asIndexedPairs (obsolete in favor of the usage counter argument methods callbacks)
    • Iterator.prototype.indexed (obsolete in favor of the usage counter argument methods callbacks)
    • Iterator.prototype.sliding (obsolete in favor of the usage undersized parameter of Iterator.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 with Map.prototype.emplace)
    • Map.prototype.upsert (obsolete, replaced with Map.prototype.emplace)
    • Math.DEG_PER_RAD (withdrawn)
    • Math.RAD_PER_DEG (withdrawn)
    • Math.clamp (obsolete, replaced with Number.prototype.clamp)
    • Math.degrees (withdrawn)
    • Math.fscale (withdrawn)
    • Math.iaddh (withdrawn in favor of BigInts)
    • Math.imulh (withdrawn in favor of BigInts)
    • Math.isubh (withdrawn in favor of BigInts)
    • 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 of BigInts)
    • Number.fromString (proposal is dead)
    • Number.range (obsolete, replaced with Iterator.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 with Symbol.isRegisteredSymbol)
    • Symbol.isWellKnown (obsolete, replaced with Symbol.isWellKnownSymbol)
    • Symbol.matcher (obsolete, replaced with Symbol.customMatcher)
    • Symbol.metadataKey (obsolete, replaced with Symbol.metadata)
    • Symbol.observable (obsolete)
    • Symbol.patternMatch (obsolete, replaced with Symbol.customMatcher)
    • Symbol.replaceAll (obsolete)
    • %TypedArray%.fromAsync (obsolete)
    • %TypedArray%.prototype.filterOut (obsolete, replaced with %TypedArray%.prototype.filterReject)
    • %TypedArray%.prototype.groupBy (obsolete, replaced with Object.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 with WeakMap.prototype.emplace)
    • compositeKey (proposal is dead)
    • compositeSymbol (proposal is dead)
  • Add new built-ins:
  • Drop non-standard Symbol.{ useSetter, useSimple, withoutSetter } methods control of Symbol polyfill
  • Drop fallbacks to ancient FF iterators (with '@@iterator' string key)
  • Remove modules:
    • 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 of Array.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.concat (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.json.is-raw-json (moved to stable ES)
    • esnext.json.parse (moved to stable ES)
    • esnext.json.raw-json (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.get-or-insert (moved to stable ES)
    • esnext.map.get-or-insert-computed (moved to stable ES)
    • 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.get-or-insert (moved to stable ES)
    • esnext.weak-map.get-or-insert-computed (moved to stable ES)
    • esnext.weak-map.upsert (obsolete)
    • web.timers (required for IE9- only)
  • Add new modules:
  • Split and / or rename:
    • 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
    • Extracted from Typed Array constructor entries:
      • 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 and es.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
    • Constructors:
      • 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
  • Complete refactoring of main library code. The modules that I saw in my nightmares have been completely rewritten.
  • Reduce minimalistic bundles size
    • Optimize export logic
      • Global version
      • Pure version
    • Optimize internal dependencies
  • Move dependencies of many modules to entry points for better optimization by tools like @core-js/builder, babel, swc
  • Automatically generate core-js entry points, get dependencies from entries definitions and direct declarations from modules - simplification of maintenance, reducing of potential errors and code size
  • Changes in entry points:
    • Make core-js entry an equal of core-js/actual
    • Actualize /proposals/ namespace - some proposals were renamed, some entries had some versions
    • Drop /features/ namespace in favor of /full/
    • Drop /web/ namespace as almost useless in favor of /stable/, /actual/, /full/
    • Drop /stage/4, /stage and /proposals entries without specifying a stage / a proposal as almost useless
    • Drop */virtual/index.js entries as useless and malicious for exports package.json fields optimization
    • Rename the rest /virtual/ entries to /prototype/ for a more telling name
    • Drop some other entries that make no practical sense as separate, like /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 modules
  • Add exports fields with all entries to package.json
  • Drop configurable level of aggressiveness from core-js/configurator in favor of future / alternative approaches since the current way is too dangerous, inapplicable in most cases and almost no one uses it

  • No longer publish on deno.land/x since it's almost dead

Tools:


@core-js/compat:

  • Drop source of @core-js/compat modules-by-versions - automatically generate it without requirement of manual adding
  • Add @core-js/compat/get-entries-list-for-target-version helper and automatically generated entries-by-versions
  • Make @core-js/compat default modules list an equal of core-js/actual for consistency with import 'core-js'
  • core-js version in @core-js/compat
  • Changes in @core-js/compat targets keys:
    • Removed phantom since this engine is no longer supported by polyfill
    • Removed oculus in favor of quest
    • Removed other data by legacy keys from compat data
  • Entries in @core-js/compat API no longer starts from core-js/ - for example, instead of core-js/actual you should write just actual
  • Drop @core-js/compat filter deprecated option in favor of modules
  • Drop @core-js/compat blacklist deprecated option in favor of exclude
  • Drop @core-js/compat strings-namespaces support in modules / exclude in favor of regexes for avoiding false positives
  • Add built-in-definitions to compat data
  • Add known-built-in-return-types to compat data

@core-js/builder:

  • Move to rolldown + swc for speedup (~20x)
  • Add minify option to @core-js/builder, bundles minified by default
  • Ensure all compatibility with all related updated @core-js/compat options
  • Make @core-js/builder return an object (for future extensions)

@core-js/babel-plugin:

  • Make a new generaion of a Babel plugin for core-js injection in the scope of core-js monorepo
  • Implement entry-global mode
  • Implement usage-global mode
  • Implement usage-pure mode
    • Improve destructuring handling
    • Improve optional chaining handling
  • Implement extended types resolving
    • Types resolving from syntax expressions
    • Types resolving from built-in calling result
    • Types resolving from guards
    • Types resolving from annotations
  • Implement hint mechanics
  • Implement filter mechanics
  • Implement derectives
  • Fix related issues on @babel/helper-define-polyfill-provider side

@core-js/types:

  • Implement TypeScript type definitions for ECMAScript 2016+ built-ins
  • Implement TypeScript type definitions for web standards
  • Adapt type definitions for the pury, without global type namespace pollution
  • Generate declare module for all core-js / @core-js/pure entries
  • Ensure compatibility with TypeScript standard ECMAScript types
  • Ensure compatibility with TypeScript web types
  • Ensure compatibility with Node types
  • Ensure compatibility with Bun types, types: Conflicts with core-js-types oven-sh/bun#26868
  • Ensure compatibility with Deno types
  • Make standard TypeScript types polyfills-friendly, Make standard library types more polyfills‑friendly microsoft/TypeScript#63069

  • Prepare the website

That's part of the planned changes, many of the already-done moments are not documented, the rest will be added later.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

Projects

None yet

Development

Successfully merging this pull request may close these issues.

5 participants