A free-form way of submitting ideas for evolving ECMAScript. Submissions must come either from a TC39 member or a non-member who has registered as a TC39 contributor.
What’s required? The document must be reviewed at a TC39 meeting (source) and is then added to the page with stage 0 proposals.
What’s required? A so-called champion must be identified who is responsible for the proposal. Either the champion or a co-champion must be a member of TC39 (source). The problem solved by the proposal must be described in prose. The solution must be described via examples, an API and a discussion of semantics and algorithms. Lastly, potential obstacles for the proposal must be identified, such as interactions with other features and implementation challenges. Implementation-wise, polyfills and demos are needed.
What’s next? By accepting a proposal for stage 1, TC39 declares its willingness to examine, discuss and contribute to the proposal. Going forward, major changes to the proposal are expected
Stage 2: draft
• syntax-dynamic-import
• transform-class-properties
• transform-decorators – disabled pending proposal update (can use the legacy transform in the meantime)
A first version of what will be in the specification. At this point, an eventual inclusion of the feature in the standard is likely.
What’s required? The proposal must now additionally have a formal description of the syntax and semantics of the feature (using the formal language of the ECMAScript specification). The description should be as complete as possible, but can contain todos and placeholders. Two experimental implementations of the feature are needed, but one of them can be in a transpiler such as Babel.
What’s next? Only incremental changes are expected from now on.
The proposal is mostly finished and now needs feedback from implementations and users to progress further.
What’s required? The spec text must be complete. Designated reviewers (appointed by TC39, not by the champion) and the ECMAScript spec editor must sign off on the spec text. There must be at least two spec-compliant implementations (which don’t have to be enabled by default).
What’s next? Henceforth, changes should only be made in response to critical issues raised by the implementations and their use.
Stage 0: strawman
• transform-do-expressions • transform-function-bind
A free-form way of submitting ideas for evolving ECMAScript. Submissions must come either from a TC39 member or a non-member who has registered as a TC39 contributor.
Stage 1: proposal
• transform-class-constructor-call (Deprecated) • transform-export-extensions
A formal proposal for the feature.
Stage 2: draft
• syntax-dynamic-import • transform-class-properties • transform-decorators – disabled pending proposal update (can use the legacy transform in the meantime)
A first version of what will be in the specification. At this point, an eventual inclusion of the feature in the standard is likely.
Stage 3: candidate
• transform-object-rest-spread • transform-async-generator-functions
The proposal is mostly finished and now needs feedback from implementations and users to progress further.