ECMAScript proposals
ECMAScript Internationalization API Specification proposals
Active 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.
Stage 3
🚀 | Proposal | Champion |
---|---|---|
Function.prototype.toString revision |
Michael Ficarra | |
global |
Jordan Harband | |
Rest/Spread Properties | Sebastian Markbage | |
Asynchronous Iteration | Domenic Denicola | |
import() |
Domenic Denicola | |
RegExp Lookbehind Assertions | Daniel Ehrenberg | |
RegExp Unicode Property Escapes | Brian Terlson, Daniel Ehrenberg, Mathias Bynens | |
RegExp named capture groups | Daniel Ehrenberg, Brian Terlson | |
s (dotAll ) flag for regular expressions |
Mathias Bynens, Brian Terlson | |
Legacy RegExp features in JavaScript | Mark Miller, Claude Pache | |
Promise.prototype.finally |
Jordan Harband | |
BigInt | Daniel Ehrenberg | |
Class Fields | Daniel Ehrenberg, Jeff Morrison | |
Optional catch binding | Michael Ficarra | |
import.meta |
Domenic Denicola | |
Private methods and accessors | Daniel Ehrenberg, Kevin Gibbons |
Stage 2
🚀 | Proposal | Champion |
---|---|---|
function.sent metaproperty |
Allen Wirfs-Brock | |
String.prototype.{trimStart,trimEnd} |
Sebastian Markbage | |
Decorators | Yehuda Katz, Brian Terlson and Daniel Ehrenberg | |
Numeric separators | Sam Goto, Rick Waldron | |
🚀 | Array.prototype.flat{Map,ten} | Brian Terlson, Michael Ficarra |
Throw expressions | Rob Buckton | |
String#matchAll |
Jordan Harband |
Stage 1
🚀 | Proposal | Champion |
---|---|---|
Date.parse fallback semantics |
Morgan Phillips | |
export v from "mod"; statements |
Ben Newman and John-David Dalton | |
🚀 | Observable | Jafar Husain and Mark Miller |
WeakRefs | Dean Tribble | |
Frozen Realms | Mark S. Miller, Chip Morningstar, Caridy Patiño | |
Math Extensions |
Rick Waldron | |
of and from on collection constructors |
Leo Balter | |
Generator arrow functions (=>* ) |
Brendan Eich, Domenic Denicola | |
Promise.try |
Jordan Harband | |
Optional Chaining | Gabriel Isenberg | |
Math.signbit : IEEE-754 sign bit |
JF Bastien | |
Error stacks | Jordan Harband | |
do expressions |
Dave Herman | |
Realms | Dave Herman, Mark Miller, Caridy Patiño | |
Temporal | Maggie Pint, Brian Terlson | |
Float16 on TypedArrays, DataView, Math.hfround | Leo Balter | |
Atomics.waitNonblocking | Shu-yu Guo, Lars Hansen | |
Symbol.prototype.description |
Michael Ficarra | |
change Number.parseInt/parseFloat to not coerce null/undefined/NaN (repo link TBD) | Brendan Eich | |
Binary AST | Shu-yu Guo | |
Pipeline Operator | Daniel Ehrenberg | |
Extensible numeric literals | Daniel Ehrenberg | |
First-Class Protocols | Michael Ficarra | |
JSON superset | Mark Miller, Richard Gibson, Mathias Bynens | |
Nullary coalescing operator | Gabriel Isenberg | |
Partial application | Ron Buckton |
🚀 means the champion thinks it's ready to advance but has not yet presented to the committee.
Contributing new proposals
Please see Contributing to ECMAScript for the most up-to-date information on contributing proposals to this standard.
Onboarding existing proposals
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!).