unscripted. home blog

What is TC39 ?

4/17/2025

If you are a JavaScript developer, you have probably heard about TC39.
But do you actually know what it is ? What is it’s purpose ?

Let’s dive in.

TC39 a.k.a Technical Committee 39, is a working group of developers, implementers, academics and many contributors. They work on the standard behind the Javascript language: ECMAScript.

TC39 is a part of ECMA International where ECMAScript is one of the standards managed.

How does one can contribute to the spec ?

Theoretically, anyone can propose a fix/feature, though you will need a TC39 “champion” to promote your request into an actual proposal. A champion is a member of TC39 that can access to in-person meetings.

Proposals, fixes, enhancements and source of the specifications can be found in their github repository

How does one become a TC39 champion ?

Well it will depends on the organization you are working for. There is no individual membership, usually your company will submit a membership form and pay an annually fee. You can find a list of ECMA International members here.

Once you organization is a member, the organization is free to choose their TC39 “champions”. Depending on the membership tier, you could have a right of vote at the General Assembly.

How a proposal is merged into the specification ?

A proposal goes through 5 stages before becoming a standard.

Stage 0

This is the early stage where work is done before being considered by TC39.

Stage 1

One or many champions identified to work on this. Proposal introduced to TC39.

Stage 2

Spec is being written, reviewers are working on it.

Stage 3

Feedback received from developers. Formal/Technical validation by editor/reviewer.

Stage 4

Specification is ready to be included in the standard, in a frozen state.
It must be implemented by at least 2 browsers.

The implementations are then available in future releases of the browsers.

This process can take months or years for complex proposals !

Early specifications where called ES1, ES2, ES3 and ES5 (note that ES4 does not exist and was abandoned). But nowadays the specification is named by the year of release: ES2020, ES2021, etc…

More infos about TC39 can be found here and their github repo.