JavaScript TC39 Process Stages Explained

The evolution of JavaScript is governed by Ecma International’s Technical Committee 39 (TC39), which uses a standardized five-stage process to review, refine, and implement new language features. This article outlines the distinct stages of the TC39 progression—ranging from Stage 0 (Strawman) to Stage 4 (Finished)—and explains the criteria required for a proposal to advance into the official ECMAScript specification.

Stage 0: Strawman

Stage 0 represents an initial, informal idea or submission for a new JavaScript feature. Anyone can submit an idea, provided they are registered as a contributor or member of TC39.

Stage 1: Proposal

Once an idea is accepted as worth exploring, it advances to Stage 1. At this point, the feature officially becomes a proposal and must have an assigned “champion” who is a member of TC39 responsible for guiding the feature forward.

Stage 2: Draft

In Stage 2, the proposal transitions from a conceptual design to a precise technical specification.

Stage 3: Candidate

Stage 3 indicates that the proposal is essentially complete and ready for real-world testing and implementation by browser engines and developers.

Stage 4: Finished

Stage 4 is the final stage, signifying that the feature is ready for official inclusion in the upcoming annual ECMAScript release.