Ecma International's TC39 is a group of JavaScript developers, implementers, academics, and more, collaborating with the community to maintain and evolve the definition of JavaScript.

We are part of
Ecma International


TC39 welcomes contributions. You can help by giving feedback on proposals, improving documentation, writing tests or implementations, or suggesting language feature ideas. See our contributor guide for details.

To participate in TC39 meetings as a member, join Ecma.


We develop the JavaScript (formally, ECMAScript) specification on GitHub and meet every two months to discuss proposals. To learn more about the process, please take a look at the five stages for new language feature proposals. See our meeting agendas and minutes to learn more.

State of Proposals

Current Candidates for the Specification

This section features proposals that are in Stage 3 of our process, which means they are close to completion.
How to read the proposals list

Each proposal has links out to other resources. The tags identify the following attributes. Below you will find a table with example tags and their meanings. All tags have hover text if you need help getting oriented.

Types of tags and what they mean

Legacy RegExp features in JavaScript

Author: Claude Pache | Champions: Mark Miller, Claude Pache
This is a specification draft for the legacy (deprecated) RegExp features in JavaScript, i.e., static properties of the constructor like RegExp.$1 as well as the RegExp.prototype.compile method.

Private instance methods and accessors

Author: Daniel Ehrenberg | Champions: Daniel Ehrenberg, Kevin Gibbons
Keeping state and behavior private to a class lets library authors present a clear, stable interface, while changing their code over time behind the scenes.

Class Public Instance Fields & Private Instance Fields

Authors: Daniel Ehrenberg, Kevin Gibbons | Champions: Daniel Ehrenberg, Jeff Morrison, Kevin Smith, Kevin Gibbons
This proposes a combined vision for public fields and private fields, drawing on the earlier Orthogonal Classes and Class Evaluation Order proposals.

Static class fields and private static methods

Authors: Daniel Ehrenberg, Kevin Gibbons, Jeff Morrison, Kevin Smith | Champions: Shu-Yu Guo, Daniel Ehrenberg
This proposal adds Static public fields, Static private methods and Static private fields

Numeric Separators

Author and Champion: Sam Goto, Rick Waldron
This proposal adds the ability to utilize numeric literal separators for increased readability in Javascript source

Hashbang Grammar

Author and Champion: Bradley Farias
This proposal is to match de-facto usage in some CLI JS hosts that allow for Shebangs / Hashbang. Such hosts strip the hashbang in order to generate valid JS source texts before passing to JS engines currently. This would unify and standardize how that is done..

Top level await

Author and Champion: Myles Borins
Top-level await lets us rely on the module system itself to handle all of these promises, and make sure that things are well-coordinated.


Authors: Dean Tribble, Sathya Gunasekaran | Champions: Dean Tribble, Mark Miller, Till Schneidereit, Sathya Gunasekaran
The Weakrefs proposal introduces a WeakRef class for weak references and a FinalizationGroup class for running user-defined finalizers after objects are garbage-collected.

RegExp Match Indices

Author and Champion: Ron Buckton
ECMAScript RegExp Match Indicies provide additional information about the start and end indices of captured substrings relative to the start of the input string.


Authors: Mathias Bynens, Kevin Gibbons, Sergey Rubanov | Champion: Mathias Bynens
Promise.any accepts an iterable of promises and returns a promise that is fulfilled by the first given promise to be fulfilled, or rejected with an AggregateError holding the rejection reasons if all of the given promises are rejected. .


Author: Lars Hansen | Champions: Shu-Yu Guo, Lars Hansen
A proposal for an "asynchronous atomic wait" for ECMAScript, primarily for use in agents that are not allowed to block.

Logical Assignment Operators

Author and Champion: Justin Ridgewell, Hemanth HM
A proposal to combine Logical Operators and Assignment Expressions.
See proposals in all stages