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, join Ecma and sign our patent agreement.

Specs

We develop the JavaScript (formally, ECMAScript) specification on GitHub and at meetings every two months. We follow a four stage process for new language feature proposals. See our meeting agendas and minutes to learn more.

State of Proposals

Stage 3

Proposals that have been reviewed, and are being considered as candidates for the spec are considered to be stage 3.

Function.prototype.toString revision

for functions defined using ECMAScript code, toString must return source text slice from beginning of first token to end of last token matched by the appropriate grammar production

globalThis

ECMAScript Proposal, specs, and reference implementation for globalThis

import()

Adding a "function-like" import() module loading syntactic form to JavaScript

Legacy RegExp features in JavaScript

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.

BigInt

Arbitrary precision integers in JavaScript

import.meta

A proposal for adding an import.meta metaproperty to JavaScript, for holding host-specific metadata about the current module.

Private instance methods and accessors

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.

Array.prototype.{flat,flatMap}

Proposal for flatten and flatMap on arrays

Class Public Instance Fields & Private Instance Fields

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

This proposal adds Static public fields, Static private methods and Static private fields

String.prototype.{trimStart,trimEnd}

A proposal to extend ECMA-262 syntax into a superset of JSON.

String.prototype.matchAll

If given a string, and either a sticky or a global regular expression which has multiple capturing groups, we often want to iterate through all of the matches.

Symbol.prototype.description

Expose the [[Description]] internal slot of a symbol directly instead of just indirectly through Symbol.prototype.toString.

Object.fromEntries

A proposal for a new static method Object.fromEntries in ECMAScript for transforming a list of key-value pairs into an object.

Well-formed JSON.stringify

A proposal to prevent JSON.stringify from returning ill-formed Unicode strings.