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.