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:

  1. Transfer your repository to the @tc39-transfer organization
  • if you are a TC39 delegate, but not an admin in that organization, please contact @LJHarb
  1. @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!).