Do you ever wonder how ECMAScript evolves and why it's available almost
everywhere? We're going to take you through how TC39 (the technical committee
responsible for ECMAScript) works, how to participate and contribute, as well
as how an idea can make its way into the language, all step by step. We'll also
provide a sneak peek and engage in a debate about some recent and interesting
proposals in various stages of development.
(c) JetBrains JavaScript Day 2023
11. @romulocintra
Consensus-based decision
Diverse set of people in the committee
Implementers , Practitioners, Community Experts
Objections and concerns to satisfy everyone’s
No stakeholder kept over another and , Backing rationales
13. When & How
4-8 Plenary
Meetings a year
Online or In person
Focus Groups and Incubator
Calls
Monthly or Biweekly
TG2/TG4 / Editors / Outreach /
Proposals / Educators / Tools
Monthly or Biweekly
17. @romulocintra
STAGE 1
Describe the shape of a solution it’s an idea
under discussion
Proposal ��
Devote time and have a “Champion”
Demos / Polyfills
Major changes
21. STAGE 1
Pattern Matching
Daniel Rosenwasser, Jack Works, Jordan Harband,
Mark Cohen, Ross Kirsling, Tab Atkins-Bittner,
Yulia Startsev
22. const res = await fetch(jsonService);
match (res) {
when ({ status: 200, headers: { 'Content-Length': s } }):
console.log(`size is ${s}`);
when ({ status: 404 }):
console.log('JSON not found');
when ({ status }) if (status >= 400): do {
throw new RequestError(res);
}
};
23. @romulocintra
STAGE 2 Draft ��
Describe syntactic and semantic details
Form spec language - Initial Spec Text
Semantics and API are covered - not completed
TC39 Expects that feature would be developed in future
Experimental
26. // Eagerly load&link mod and its dependencies
import defer * as ns from "mod";
function rarelyUsed() {
// Later, ns.someValue triggers the evaluation of mod
doSomethingWith(ns.someValue);
}
27. @romulocintra
STAGE 3 Candidate ��
Refinement phase(Feedback from
implementers and users), almost ready to go
Completed Spec Text
Have Reviewers and Editors Signed off the spec
Coverage on Test262
Spec Compliant
Some browser might implement under a flag
32. STAGE 3 Temporal
Philipp Dunkel , Maggie Johnson-Pint,
Matt Johnson-Pint, Brian Terlson, Shane
Carr, Ujjwal Sharma, Philip Chimento,
Jason Williams, Justin Grant
36. @romulocintra
STAGE 4 Finished ��
About to be include in the upcoming edition
of ECMAScript®
Merged into the Spec text
Two implementations that passes acceptance tests
Will be included on the upcoming Spec
Shipping
37. STAGE 4 Change Array By Copy
Robin Ricard
Ashley Claymore