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 | 🚧 | |
import.meta |
Domenic Denicola | Domenic Denicola | ❓ | |
Private instance methods and accessors | Daniel Ehrenberg | Daniel Ehrenberg Kevin Gibbons |
❓ | |
Array.prototype.{flat,flatMap} |
Brian Terlson Michael Ficarra |
Brian Terlson Michael Ficarra |
✅ | |
Class Public Instance Fields & Private Instance Fields | Daniel Ehrenberg Kevin Gibbons |
Daniel Ehrenberg Jeff Morrison Kevin Smith Kevin Gibbons |
❓ | |
Static class fields and private static methods | Daniel Ehrenberg Kevin Gibbons Jeff Morrison Kevin Smith |
Shu-Yu Guo and Daniel Ehrenberg | ||
String.prototype.{trimStart,trimEnd} |
Sebastian Markbåge | Sebastian Markbåge | ✅ | |
String.prototype.matchAll |
Jordan Harband | Jordan Harband | ||
Symbol.prototype.description |
Michael Ficarra | Michael Ficarra |
🚀 | Proposal | Author | Champion |
---|---|---|---|
Numeric separators | Sam Goto Rick Waldron |
Sam Goto Rick Waldron |
|
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 |
|
Hashbang Grammar | Bradley Farias | Bradley Farias | |
WeakRefs | Dean Tribble | Dean Tribble | |
Object.fromEntries |
Darien Maillet Valentine | Jordan Harband Kevin Gibbons |
|
Top-level await |
Myles Borins | Myles Borins | |
Function.prototype.toString() censorship |
Domenic Denicola | Domenic Denicola | |
New Set methods | Michał Wadas | Sathya Gunasekaran | |
Well-formed JSON.stringify |
Richard Gibson | Mathias Bynens | |
Realms | Caridy Patiño Jean-Francois Paradis |
Dave Herman Mark Miller Caridy Patiño |
🚀 | 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 |
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 | |
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 | |
Maximally minimal mixins | Justin Fagnani | Justin Fagnani | |
🚀 | Getting last element of Array | Keith Cirkel | Keith Cirkel |
Collection methods | Michał Wadas | Sathya Gunasekaran | |
Richer Keys | Bradley Farias | Bradley Farias | |
Slice notation | Sathya Gunasekaran | Sathya Gunasekaran | |
Logical Assignment Operators | Justin Ridgewell | Justin Ridgewell | |
Sequence properties in Unicode property escapes | Mathias Bynens | Mathias Bynens | |
Module Keys | Mike Samuel | Mike Samuel | |
Class Static Block | Ron Buckton | Ron Buckton | |
class Access Expressions | Ron Buckton | Ron Buckton | |
Pattern Matching | Kat Marchán Brian Terlson |
Kat Marchán Brian Terlson Sebastian Markbåge |
|
RegExp Match array offsets | Ron Buckton | Ron Buckton |
🚀 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, @littledan, or @leobalter 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 as long as you never create a fork, or a new repository, with the same name - although Github Pages redirects will be broken (please update your links!).