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
globalThis 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 white_check_mark:
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
Object.fromEntries Darien Maillet Valentine Jordan Harband
Kevin Gibbons
Well-formed JSON.stringify Richard Gibson Mathias Bynens
Hashbang Grammar Bradley Farias Bradley Farias

Stage 2

🚀 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
WeakRefs Dean Tribble Dean Tribble
Top-level await Myles Borins Myles Borins
Function.prototype.toString() censorship Domenic Denicola Domenic Denicola
New Set methods Michał Wadas Sathya Gunasekaran
Realms Caridy Patiño
Jean-Francois Paradis
Dave Herman
Mark Miller
Caridy Patiño
ArrayBuffer.prototype.transfer Domenic Denicola Domenic Denicola
RegExp Match array offsets Ron Buckton Ron Buckton
Sequence properties in Unicode property escapes Mathias Bynens Mathias Bynens
InterpreterDirective Bradley Farias Bradley Farias
Temporal Maggie Pint
Matt Johnson
Maggie Pint
Brian Terlson

Stage 1

🚀 Proposal Author Champion
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
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
String.prototype.replaceAll Peter Marshall
Jakob Gruber
Mathias Bynens
Mathias Bynens
String.prototype.codePoints Ingvar Stepanyan Mathias Bynens
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
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
Explicit Resource Management Ron Buckton Ron Buckton
Dynamic Modules Bradley Farias Bradley Farias
JavaScript Standard Library Michael Saboff
Mattijs Hoitink
Michael Saboff
Mattijs Hoitink
"use module" Dave Herman Dave Herman
for-in mechanics Kevin Gibbons
uniform parsing of quasi-standard Date.parse input Richard Gibson Richard Gibson
JSON.parse source text access Richard Gibson Richard Gibson
Promise.allSettled Jason Williams Mathias Bynens
IDL for ECMAScript Daniel Ehrenberg Daniel Ehrenberg
Asset References Sebastian Markbage Sebastian Markbage

🚀 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!).