ECMAScript 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 | Champion | Stage |
---|---|---|---|
Function.prototype.toString revision |
Michael Ficarra | 3 | |
global |
Jordan Harband | 3 | |
Rest/Spread Properties | Sebastian Markbage | 3 | |
Asynchronous Iteration | Domenic Denicola | 3 | |
import() |
Domenic Denicola | 3 | |
RegExp Lookbehind Assertions | Daniel Ehrenberg | 3 | |
RegExp Unicode Property Escapes | Brian Terlson, Daniel Ehrenberg, Mathias Bynens | 3 | |
RegExp named capture groups | Daniel Ehrenberg, Brian Terlson | 3 | |
s (dotAll ) flag for regular expressions |
Mathias Bynens, Brian Terlson | 3 | |
Legacy RegExp features in JavaScript | Mark Miller, Claude Pache | 3 | |
Promise.prototype.finally |
Jordan Harband | 3 | |
BigInt | Daniel Ehrenberg | 3 | |
Class Fields | Daniel Ehrenberg, Jeff Morrison | 3 | |
Optional catch binding | Michael Ficarra | 3 | |
function.sent metaproperty |
Allen Wirfs-Brock | 2 | |
String.prototype.{trimStart,trimEnd} |
Sebastian Markbage | 2 | |
Class and Property Decorators | Yehuda Katz and Brian Terlson | 2 | |
Intl.Segmenter |
Daniel Ehrenberg | 2 | |
import.meta |
Domenic Denicola | 2 | |
Intl.RelativeTimeFormat |
Zibi Braniecki, Daniel Ehrenberg | 2 | |
Numeric separators | Sam Goto | 2 | |
export * as ns from "mod"; statements |
Ben Newman and John-David Dalton | 2 | |
Private methods and accessors | Daniel Ehrenberg, Kevin Gibbons | 2 | |
Unified class features | Daniel Ehrenberg, Yehuda Katz, Brian Terlson | 2 | |
Date.parse fallback semantics |
Morgan Phillips | 1 | |
export v from "mod"; statements |
Ben Newman and John-David Dalton | 1 | |
🚀 | Observable | Jafar Husain and Mark Miller | 1 |
String#matchAll |
Jordan Harband | 1 | |
WeakRefs | Dean Tribble | 1 | |
Frozen Realms | Mark S. Miller, Chip Morningstar, Caridy Patiño | 1 | |
Math Extensions |
Rick Waldron | 1 | |
of and from on collection constructors |
Leo Balter | 1 | |
Generator arrow functions (=>* ) |
Brendan Eich, Domenic Denicola | 1 | |
Promise.try |
Jordan Harband | 1 | |
Optional Chaining | Gabriel Isenberg | 1 | |
Math.signbit : IEEE-754 sign bit |
JF Bastien | 1 | |
Error stacks | Jordan Harband | 1 | |
do expressions |
Dave Herman | 1 | |
Realms | Dave Herman, Mark Miller, Caridy Patiño | 1 | |
Temporal | Maggie Pint, Brian Terlson | 1 | |
Float16 on TypedArrays, DataView, Math.hfround | Leo Balter | 1 | |
Atomics.waitNonblocking | Shu-yu Guo, Lars Hansen | 1 | |
Symbol.prototype.description |
Michael Ficarra | 1 | |
change Number.parseInt/parseFloat to not coerce null/undefined/NaN (repo link TBD) | Brendan Eich | 1 | |
Array.prototype.flat{Map,ten} | Brian Terlson, Michael Ficarra | 1 | |
Throw expressions | Rob Buckton | 1 |
🚀 means the champion thinks it's ready to advance but has not yet presented to the committee.
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 @bterlson
- Email @bterlson at brian.terlson AT microsoft.com notifying me of the transfer (GitHub's transfer notification is not the most obvious thing and there's only a short window to accept the transfer)
- @bterlson will transfer your repository to the TC39 organization.
Note that as part of the onboarding process your repository name may be normalized. Don't worry, redirects will continue to work.