Home

Awesome

ECMAScript proposals

ECMAScript Internationalization API Specification proposals

Contributing to proposals

Active proposals

Proposals follow this process document. This list contains only stage 2 proposals and higher that have not yet been withdrawn/rejected, or become finished. Stage 2 indicates that the committee expects these features to be developed and eventually included in the standard.

Stage 3

ProposalAuthorChampion<sub>Test262 Feature Flag</sub><sub>Last Presented</sub>
Legacy RegExp features in JavaScriptClaude PacheMark Miller<br />Claude Pache<sub>legacy-regexp</sub><sub>May 2017</sub>
TemporalPhilipp Dunkel<br />Maggie Johnson-Pint<br />Matt Johnson-Pint<br />Brian Terlson<br />Shane Carr<br />Ujjwal Sharma<br />Philip Chimento<br />Jason Williams<br />Justin GrantPhilipp Dunkel<br />Maggie Johnson-Pint<br />Matt Johnson-Pint<br />Brian Terlson<br />Shane Carr<br />Ujjwal Sharma<br />Philip Chimento<br />Jason Williams<br />Justin Grant<sub>Temporal testing plan</sub><sub>July 2024</sub>
DecoratorsDaniel Ehrenberg<br />Kristen Hewell GarrettKristen Hewell Garrett<sub>decorators testing plan</sub><sub>March 2023</sub>
JSON.parse source text accessRichard GibsonRichard Gibson<sub>json-parse-with-source testing plan</sub><sub>January 2023</sub>
Array.fromAsyncJ.S. ChoiJ.S. Choi<sub>Array.fromAsync</sub><sub>May 2023</sub>
Explicit Resource ManagementRon BucktonRon Buckton<sub>explicit-resource-management<sub>March 2023</sub>
Float16 on TypedArrays, DataView, Math.f16roundLeo BalterLeo Balter<br />Kevin Gibbons<sub>Float16Array</sub><sub>May 2023</sub>
Decorator MetadataKristen Hewell GarrettKristen Hewell Garrett<sub>decorator-metadata</sub><sub>May 2023</sub>
Source Phase ImportsLuca CasonatoGuy Bedford<br />Luca Casonato<sub>source-phase-imports</sub><sub>July 2023</sub>
Time Zone CanonicalizationJustin GrantJustin Grant<br />Richard Gibson<sub>Temporal.TimeZone<sub>July 2023</sub>
Uint8Array to/from Base64Kevin GibbonsKevin Gibbons<sub>uint8array-base64</sub><sub>February 2024</sub>
Dynamic Code Brand ChecksNicolo RibaudoKrzysztof Kotowicz<br />Mike Samuel<br />Nicolo Ribaudo:question:<sub>April 2024</sub>
Redeclarable global eval-introduced varsShu-yu GuoShu-yu Guo<sub>Testing plan</sub><sub>April 2024</sub>
RegExp.escapeDomenic Denicola<br />Benjamin Gruenbaum<br />Jordan HarbandJordan Harband<br />Kevin Gibbons<sub>RegExp.escape<sub>July 2024</sub>
Atomics.pauseShu-yu GuoShu-yu Guo<sub>Atomics.pause</sub><sub>October 2024</sub>
Error.isErrorJordan HarbandJordan Harband<sub>Error.isError</sub><sub>December 2024</sub>

Stage 2.7

ProposalAuthorChampion<sub>Test262 Feature Flag</sub><sub>Last Presented</sub>
ShadowRealmCaridy Patiño<br />Jean-Francois ParadisDave Herman<br />Mark Miller<br />Caridy Patiño<br />Leo Balter<br />Rick Waldron<br />Chengzhong Wu<sub>ShadowRealm</sub><sub>February 2024</sub>
Math.sumPreciseKevin GibbonsKevin Gibbons<sub>Math.sumPrecise testing plan</sub><sub>April 2024</sub>
Deferring Module EvaluationYulia Startsev<br />Guy BedfordYulia Startsev<br />Guy Bedford<br />Nicolò Ribaudo<sub>Testing plan</sub><sub>June 2024</sub>
Joint IterationMichael FicarraMichael Ficarra<sub>Testing plan</sub><sub>June 2024</sub>
Iterator SequencingMichael FicarraMichael Ficarra:question:<sub>October 2024</sub>

Stage 2

ProposalAuthorChampion<sub>Last Presented</sub>
function.sent metapropertyAllen Wirfs-BrockHE Shi-Jun<sub>July 2019</sub>
throw expressionsRon BucktonRon Buckton<sub>February 2024</sub>
Function implementation hidingDomenic Denicola<br />Michael FicarraMichael Ficarra<sub>June 2020</sub>
collection normalizationBradley FariasBradley Farias<sub>January 2019</sub>
isTemplateObjectMike Samuel, Krzysztof KotowiczDaniel Ehrenberg<br />Jordan Harband<sub>April 2024</sub>
Map.prototype.emplaceBradley FariasErica Pramer<sub>July 2020</sub>
Dynamic Import Host AdjustmentMike Samuel, Krzysztof KotowiczKrzysztof Kotowicz<sub>December 2019</sub>
Record & TupleRobin Ricard<br />Richard ButtonRobin Ricard<br />Richard Button<sub>April 2024</sub>
Module ExpressionsSurma<br />Daniel Ehrenberg<br />Nicolò RibaudoSurma<br />Nicolò Ribaudo<sub>November 2022</sub>
Pipeline OperatorJ. S. Choi<br />James DiGioia<br />Ron Buckton<br />Tab AtkinsJ. S. Choi<br />Ron Buckton<br />Tab Atkins<sub>August 2021</sub>
Destructure Private FieldsJustin RidgewellJustin Ridgewell<sub>December 2021</sub>
RegExp Buffer Boundaries (\A, \z, \Z)Ron BucktonRon Buckton<sub>December 2021</sub>
String.dedentMisha Kaletsky<br />Hemanth HM<br />Justin RidgewellHemanth HM<br />Justin Ridgewell<sub>June 2022</sub>
JSON.parseImmutableRobin Ricard<br />Richard Button<br />Nicolò Ribaudo<br />Ashley ClaymoreRobin Ricard<br />Richard Button<br />Nicolò Ribaudo<br />Ashley Claymore<sub>July 2022</sub>
Module DeclarationsDaniel Ehrenberg<br />Nicolò RibaudoDaniel Ehrenberg<br />Mark Miller<br />Nicolò Ribaudo<sub>November 2022</sub>
Symbol PredicatesRobin Ricard<br />Jordan HarbandAshley Claymore<br />Jordan Harband<sub>May 2023</sub>
Async Iterator helpersGus CaplanMichael Ficarra<br />Jonathan Keslin<br />Kevin Gibbons<sub>June 2024</sub>
Iterator.rangeJack WorksJack Works<sub>April 2024</sub>
Async ContextChengzhong WuAndreu Botella<br />Chengzhong Wu<br />Justin Ridgewell<sub>April 2024</sub>
ESM Phase ImportsLuca Casonato<br />Guy BedfordLuca Casonato<br />Guy Bedford<sub>June 2024</sub>
"Discard" (void) BindingsRon BucktonRon Buckton<sub>June 2024</sub>
Propagate active ScriptOrModule with JobCallback RecordChengzhong WuChengzhong Wu<sub>July 2024</sub>
Structs: Fixed Layout Objects and Some Synchronization PrimitivesShu-yu GuoShu-yu Guo<sub>October 2024</sub>
ExtractorsRon BucktonRon Buckton<sub>October 2024</sub>
iterator chunkingMichael FicarraMichael Ficarra<sub>October 2024</sub>
Immutable ArrayBuffersMark Miller<br />Peter Hoddie<br />Richard Gibson<br />Jack WorksMark Miller<br />Peter Hoddie<br />Richard Gibson<br />Jack Works<sub>December 2024</sub>

The test262 feature flag links to a code search of tests using that feature flag, which may constitute complete or partial coverage. The :question: means there is no feature flag for tests yet.

Contributing to proposals

See Contributing to ECMAScript and How We Work for the most up-to-date information on contributing to proposals to TC39 standards and how proposals advance.

Onboarding 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:

  1. Transfer your repository to the @tc39-transfer organization
    • if you are a TC39 delegate, but not a member of that organization, please contact @LJHarb
  2. The Github Administrator, or one of the chairs, 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!).