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 | ✅ | |
import() |
Domenic Denicola | Domenic Denicola | ❓ | |
Legacy RegExp features in JavaScript | Claude Pache | Mark Miller, Claude Pache | ✅ | |
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 | ❓ | |
JSON superset | Richard Gibson | Mark Miller, Mathias Bynens | ||
String.prototype.{trimStart,trimEnd} |
Sebastian Markbåge | Sebastian Markbåge | ✅ | |
String.prototype.matchAll |
Jordan Harband | Jordan Harband |
🚀 | 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 | |
Decorators | Daniel Ehrenberg | Yehuda Katz, Brian Terlson, Daniel Ehrenberg | |
🚀 | throw expressions |
Ron Buckton | Ron Buckton |
Atomics.waitAsync |
Lars Hansen | Shu-yu Guo, Lars Hansen | |
Symbol.prototype.description |
Michael Ficarra | Michael Ficarra |
🚀 | 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 | |
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 | |
Cancellation API | Ron Buckton | Ron Buckton & Brian Terlson | |
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 | |
{BigInt,Number}.fromString |
Mathias Bynens | Mathias Bynens | |
Math.seededRandoms() |
Tab Atkins | Tab Atkins | |
Function.prototype.toString() censorship |
Domenic Denicola | Domenic Denicola | |
Top-level await |
Myles Borins | Myles Borins | |
Maximally minimal mixins | Justin Fagnani | Justin Fagnani | |
🚀 | Getting last element of Array | Keith Cirkel | Keith Cirkel |
New Set methods | Michał Wadas | Sathya Gunasekaran | |
Collection methods | Michał Wadas | Sathya Gunasekaran |
🚀 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!).