TC39

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

Contribute

TC39 welcomes contributions from the JavaScript community, whether it is feedback on existing proposals, improved documentation, testing, implementations, or even language feature ideas. See our contributor guide for details.

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

Specs

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.

Hashbang Grammar

Authors and Champions: 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.

Import Assertions

Authors and Champions: Myles Borins, Sven Sauleau, Dan Clark, Daniel Ehrenberg
A proposal for syntax to import ES modules with assertions.

Temporal

Authors and Champions: Maggie Pint, Matt Johnson, Philipp Dunkel
Date has been a long-standing pain point in ECMAScript. This proposes Temporal, a global Object that acts as a top-level namespace (like Math), that brings a modern date/time API to the ECMAScript language. For a detailed breakdown of motivations, see the proposal readme.

In-Place Resizable and Growable ArrayBuffers

Authors and Champions: Shu-yu Guo
ArrayBuffers have enabled in-memory handling of binary data and have enjoyed great success. This proposal extends the ArrayBuffer constructors to take an additional maximum length that allows in-place growth and shrinking of buffers. Similarly, SharedArrayBuffer is extended to take an additional maximum length that allows in-place growth. The transfer method is also re-introduced here as a standard way to detach ArrayBuffers, perform zero-copy moves, and to "fix" resizable ArrayBuffer instances to ArrayBuffer instances.

ShadowRealm API

Authors: Caridy Patiño, Jean-Francois Paradis | Champions: Dave Herman, Mark Miller, Caridy Patiño, Leo Balter
ShadowRealms are a distinct global environment, with its own global object containing its own intrinsics and built-ins (standard objects that are not bound to global variables, like the initial value of Object.prototype)..

Array Grouping

Authors and Champions: Justin Ridgewell
A proposal to make grouping of array items easier.
See proposals in all stages