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 | Author | Champion | Tests | Last Presented |
---|---|---|---|---|---|
globalThis |
Jordan Harband | Jordan Harband | ✅ | November 2018 | |
import() |
Domenic Denicola | Domenic Denicola | ✅ | November 2016 | |
Legacy RegExp features in JavaScript | Claude Pache | Mark Miller Claude Pache |
✅ | May 2017 | |
BigInt |
Daniel Ehrenberg | Daniel Ehrenberg | ✅ | May 2018 | |
import.meta |
Domenic Denicola | Domenic Denicola | ❓ | September 2017 | |
Private instance methods and accessors | Daniel Ehrenberg | Daniel Ehrenberg Kevin Gibbons |
❓ | September 2018 | |
Class Public Instance Fields & Private Instance Fields | Daniel Ehrenberg Kevin Gibbons |
Daniel Ehrenberg Jeff Morrison Kevin Smith Kevin Gibbons |
❓ | September 2018 | |
Static class fields and private static methods | Daniel Ehrenberg Kevin Gibbons Jeff Morrison Kevin Smith |
Shu-Yu Guo Daniel Ehrenberg |
May 2018 | ||
String.prototype.matchAll |
Jordan Harband | Jordan Harband | ✅ | September 2018 | |
Hashbang Grammar | Bradley Farias | Bradley Farias | 🚧 | November 2018 |
Stage 2
🚀 | Proposal | Author | Champion | Last Presented |
---|---|---|---|---|
Numeric separators | Sam Goto Rick Waldron |
Sam Goto Rick Waldron |
May 2018 | |
function.sent metaproperty |
Allen Wirfs-Brock | Allen Wirfs-Brock | November 2015 | |
Decorators | Daniel Ehrenberg | Yehuda Katz Brian Terlson Daniel Ehrenberg |
November 2018 | |
🚀 | throw expressions |
Ron Buckton | Ron Buckton | January 2018 |
Atomics.waitAsync |
Lars Hansen | Shu-yu Guo Lars Hansen |
September 2017 | |
WeakRefs | Dean Tribble | Dean Tribble | March 2018 | |
Top-level await |
Myles Borins | Myles Borins | May 2018 | |
Function.prototype.toString() censorship |
Domenic Denicola | Domenic Denicola | May 2018 | |
New Set methods | Michał Wadas Sathya Gunasekaran |
Sathya Gunasekaran | May 2018 | |
Realms | Caridy Patiño Jean-Francois Paradis |
Dave Herman Mark Miller Caridy Patiño |
May 2018 | |
ArrayBuffer.prototype.transfer |
Domenic Denicola | Domenic Denicola | July 2018 | |
RegExp Match array offsets | Ron Buckton | Ron Buckton | July 2018 | |
Sequence properties in Unicode property escapes | Mathias Bynens | Mathias Bynens | September 2018 | |
Temporal | Maggie Pint Matt Johnson Philipp Dunkel |
Maggie Pint Philipp Dunkel Brian Terlson |
September 2018 | |
Promise.allSettled |
Jason Williams Robert Pamely |
Mathias Bynens | January 2019 | |
collection normalization | Bradley Farias | Bradley Farias | January 2019 |
Stage 1
🚀 | Proposal | Author | Champion | Last Presented |
---|---|---|---|---|
export v from "mod"; statements |
Lee Byron | Ben Newman John-David Dalton |
July 2017 | |
Observable | Jafar Husain | Jafar Husain Mark Miller |
May 2017 | |
Frozen Realms | Mark Miller Chip Morningstar Caridy Patiño |
Mark Miller Chip Morningstar Caridy Patiño |
March 2018 | |
Math Extensions |
Rick Waldron | Rick Waldron | July 2016 | |
of and from on collection constructors |
Leo Balter | Leo Balter | September 2016 | |
Generator arrow functions (=>* ) |
Brendan Eich Domenic Denicola |
September 2016 | ||
Promise.try |
Jordan Harband | Jordan Harband | November 2016 | |
Optional Chaining | Gabriel Isenberg Claude Pache Dustin Savery |
Gabriel Isenberg Dustin Savery |
November 2018 | |
Math.signbit : IEEE-754 sign bit |
JF Bastien | JF Bastien | May 2017 | |
Error stacks | Jordan Harband | Jordan Harband | January 2017 | |
do expressions |
Dave Herman | Dave Herman | July 2018 | |
Float16 on TypedArrays, DataView, Math.hfround |
Leo Balter | Leo Balter | May 2017 | |
Change Number.parseInt /parseFloat to not coerce null /undefined /NaN (repo link TBD) |
Brendan Eich | July 2017 | ||
Binary AST | Shu-yu Guo | Shu-yu Guo | May 2018 | |
Pipeline Operator | Daniel Ehrenberg | Daniel Ehrenberg | March 2018 | |
Extensible numeric literals | Daniel Ehrenberg | Daniel Ehrenberg | September 2017 | |
First-class protocols | Michael Ficarra | Michael Ficarra | July 2018 | |
Nullish coalescing Operator | Gabriel Isenberg | Gabriel Isenberg | March 2018 | |
Partial application | Ron Buckton | Ron Buckton | July 2018 | |
Cancellation API | Ron Buckton | Ron Buckton Brian Terlson |
July 2018 | |
String.prototype.replaceAll |
Peter Marshall Jakob Gruber Mathias Bynens |
Mathias Bynens | November 2017 | |
String.prototype.codePoints |
Ingvar Stepanyan | Mathias Bynens | May 2018 | |
Object.freeze + Object.seal syntax |
Keith Cirkel | Keith Cirkel | November 2017 | |
Block Params | Sam Goto | Sam Goto | November 2017 | |
{BigInt,Number}.fromString |
Mathias Bynens | Mathias Bynens | January 2018 | |
Math.seededRandoms() |
Tab Atkins | Tab Atkins | January 2018 | |
Maximally minimal mixins | Justin Fagnani | Justin Fagnani | January 2018 | |
Getting last element of Array | Keith Cirkel | Keith Cirkel | January 2018 | |
Collection methods | Michał Wadas | Sathya Gunasekaran | January 2018 | |
🚀 | Richer Keys | Bradley Farias | Bradley Farias | March 2018 |
Slice notation | Sathya Gunasekaran | Sathya Gunasekaran | March 2018 | |
Logical Assignment Operators | Justin Ridgewell | Justin Ridgewell | March 2018 | |
Module Keys | Mike Samuel | Mike Samuel | May 2018 | |
Class Static Block | Ron Buckton | Ron Buckton | May 2018 | |
class Access Expressions | Ron Buckton | Ron Buckton | May 2018 | |
Pattern Matching | Kat Marchán Brian Terlson |
Kat Marchán Brian Terlson Sebastian Markbåge |
May 2018 | |
Explicit Resource Management | Ron Buckton | Ron Buckton | July 2018 | |
Dynamic Modules | Bradley Farias | Bradley Farias | July 2018 | |
JavaScript Standard Library | Michael Saboff Mattijs Hoitink |
Michael Saboff Mattijs Hoitink |
July 2018 | |
"use module" |
Dave Herman | Dave Herman | July 2017 | |
for-in mechanics |
Kevin Gibbons | Kevin Gibbons | September 2018 | |
uniform parsing of quasi-standard Date.parse input |
Richard Gibson | Richard Gibson | September 2018 | |
JSON.parse source text access | Richard Gibson | Richard Gibson | September 2018 | |
IDL for ECMAScript | Daniel Ehrenberg | Daniel Ehrenberg | September 2018 | |
Asset References | Sebastian Markbage | Sebastian Markbage | November 2018 | |
Freezing prototypes | Kevin Gibbons | Kevin Gibbons | January 2019 | |
new.initialize |
Daniel Ehrenberg | Daniel Ehrenberg | January 2019 | |
Iterator helpers | Gus Caplan | Domenic Denicola | January 2019 |
🚀 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.
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, @gesa, or @codehag 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!).