ECMAScript proposals
ECMAScript Internationalization API Specification proposals
Proposals follow this process document. This list contains only stage 1 proposals and higher that have not yet been withdrawn/rejected, or become finished.
🚀 | Proposal | Author | Champion | Tests |
---|---|---|---|---|
🚀 | Function.prototype.toString revision |
Michael Ficarra | Michael Ficarra | ✅ |
global |
Jordan Harband | Jordan Harband | ✅ | |
Rest/Spread Properties | Sebastian Markbåge | Sebastian Markbåge | ✅ | |
Asynchronous Iteration | Domenic Denicola | Domenic Denicola | 🚧 | |
import() |
Domenic Denicola | Domenic Denicola | ❓ | |
RegExp Lookbehind Assertions | Gorkem Yakin, Nozomu Katō, Daniel Ehrenberg | Daniel Ehrenberg, Mathias Bynens | ✅ | |
RegExp Unicode Property Escapes | Mathias Bynens | Brian Terlson, Daniel Ehrenberg, Mathias Bynens | ✅ | |
🚀 | RegExp named capture groups | Gorkem Yakin, Daniel Ehrenberg | Daniel Ehrenberg, Brian Terlson | ✅ |
Legacy RegExp features in JavaScript | Claude Pache | Mark Miller, Claude Pache | ✅ | |
🚀 | Promise.prototype.finally |
Jordan Harband | Jordan Harband | 🚧 |
BigInt |
Daniel Ehrenberg | Daniel Ehrenberg | 🚧 | |
Optional catch binding |
Michael Ficarra | Michael Ficarra | ✅ | |
import.meta |
Domenic Denicola | Domenic Denicola | ❓ | |
Private instance methods and accessors | Daniel Ehrenberg | Daniel Ehrenberg, Kevin Gibbons | ❓ | |
Array.prototype.{flatMap,flatten} |
Brian Terlson, Michael Ficarra | Brian Terlson, Michael Ficarra | ❓ | |
Numeric separators | Sam Goto, Rick Waldron | Sam Goto, Rick Waldron | 🚧 | |
Class Public Instance Fields & Private Instance Fields | Daniel Ehrenberg. Kevin Gibbons | Daniel Ehrenberg, Jeff Morrison, Kevin Smith, Kevin Gibbons | ❓ |
🚀 | Proposal | Author | Champion |
---|---|---|---|
Static class fields and private static methods | Daniel Ehrenberg, Kevin Gibbons, Jeff Morrison, Kevin Smith | Daniel Ehrenberg | |
function.sent metaproperty |
Allen Wirfs-Brock | Allen Wirfs-Brock | |
String.prototype.{trimStart,trimEnd} |
Sebastian Markbåge | Sebastian Markbåge | |
Decorators | Daniel Ehrenberg | Yehuda Katz, Brian Terlson, Daniel Ehrenberg | |
throw expressions |
Ron Buckton | Ron Buckton | |
🚀 | String#matchAll |
Jordan Harband | Jordan Harband |
Atomics.waitAsync |
Lars Hansen | Shu-yu Guo, Lars Hansen | |
JSON superset | Richard Gibson | Mark Miller, Mathias Bynens |
🚀 | Proposal | Author | Champion |
---|---|---|---|
Date.parse fallback semantics |
Morgan Phillips | Morgan Phillips | |
export v from "mod"; statements |
Lee Byron | Ben Newman, John-David Dalton | |
🚀 | Observable | Jafar Husain | Jafar Husain, Mark Miller |
WeakRefs | Dean Tribble | Dean Tribble | |
Frozen Realms | Mark Miller, Chip Morningstar, Caridy Patiño | Mark Miller, Chip Morningstar, Caridy Patiño | |
Math Extensions |
Rick Waldron | Rick Waldron | |
of and from on collection constructors |
Leo Balter | Leo Balter | |
Generator arrow functions (=>* ) |
Brendan Eich, Domenic Denicola | ||
Promise.try |
Jordan Harband | Jordan Harband | |
Optional Chaining | Gabriel Isenberg, Claude Pache | Gabriel Isenberg | |
Math.signbit : IEEE-754 sign bit |
JF Bastien | JF Bastien | |
Error stacks | Jordan Harband | Jordan Harband | |
do expressions |
Dave Herman | Dave Herman | |
Realms | Caridy Patiño, Jean-Francois Paradis | Dave Herman, Mark Miller, Caridy Patiño | |
Temporal | Maggie Pint, Matt Johnson | Maggie Pint, Brian Terlson | |
Float16 on TypedArrays, DataView, Math.hfround |
Leo Balter | Leo Balter | |
🚀 | Symbol.prototype.description |
Michael Ficarra | Michael Ficarra |
Change Number.parseInt /parseFloat to not coerce null /undefined /NaN (repo link TBD) |
Brendan Eich | ||
Binary AST | Shu-yu Guo | Shu-yu Guo | |
Pipeline Operator | Daniel Ehrenberg | Daniel Ehrenberg | |
Extensible numeric literals | Daniel Ehrenberg | Daniel Ehrenberg | |
First-class protocols | Michael Ficarra | Michael Ficarra | |
Nullish coalescing Operator | Gabriel Isenberg | Gabriel Isenberg | |
Partial application | Ron Buckton | Ron Buckton | |
InterpreterDirective |
Bradley Farias | Bradley Farias | |
String.prototype.replaceAll |
Peter Marshall, Jakob Gruber, Mathias Bynens | Mathias Bynens | |
String.prototype.codePoints |
Ingvar Stepanyan | Mathias Bynens | |
Distinguishing literal strings | Mike West | Adam Klein, Mike West | |
Object.freeze + Object.seal syntax |
Keith Cirkel | Keith Cirkel | |
Block Params | Sam Goto | Sam Goto |
🚀 means the champion thinks it's ready to advance but has not yet presented to the committee.
✅ means a pull request for tests was merged.
❓ means there is no pull request for tests yet.
🚧 means a pull request for tests was created, but not merged yet.
Please see Contributing to ECMAScript for the most up-to-date information on contributing proposals to this standard.
Proposals that are Stage 1 and above must be transferred to the TC39 GitHub organization for discoverability and archival purposes. To onboard a proposal that lives outside the TC39 organization:
- Transfer your repository to the @tc39-transfer organization
- if you are a TC39 delegate, but not an admin in that organization, please contact @LJHarb
- @bterlson or @littledan will transfer your repository to the TC39 organization the next chance they get.
Note that as part of the onboarding process your repository name may be normalized. Don't worry, repo redirects will continue to work - although Github Pages redirects will be broken (please update your links!).