[ECMAScript] TC39 process

0.309字数 753阅读 3661

ECMAScript是由ECMA-262标准化的脚本语言的名称。
JavaScript和JScript与ECMAScript相容,但包含超出ECMAScript的功能。

从ES5 2009-ES6 2015经历了6年,语言的变化比较大。
为了避免剧烈的变动,从ES7 2016开始,版本发布会变得更加频繁,每次的变动也更小。
每年会发布一个新版本,其中包含所有已经完成的特性。


1. TC39

TC39(Technical Committee 39)是一个推动JavaScript发展的委员会。
它的成员由各个主流浏览器厂商的代表构成。
会议的每一项决议必须大部分人赞同,并且没有人强烈反对才可以通过。
因为,对成员来说,同意就意味着有责任去实现它。

2. Stage

每一项新特性,要最终纳入ECMAScript规范中,TC39拟定了一个处理过程,称为TC39 process。
其中共包含5个阶段,Stage 0 ~ Stage 4。

Stage 0: strawman
一种推进ECMAScript发展的自由形式,任何TC39成员,或者注册为TC39贡献者的会员,都可以提交。

Stage 1: proposal
该阶段产生一个正式的提案。
(1)确定一个带头人来负责该提案,带头人或者联合带头人必须是TC39的成员。
(2)描述清楚要解决的问题,解决方案中必须包含例子,API以及关于相关的语义和算法。
(3)潜在问题也应该指出来,例如与其他特性的关系,实现它所面临的挑战。
(4)polyfill和demo也是必要的。

Stage 2: draft
草案是规范的第一个版本,与最终标准中包含的特性不会有太大差别。
草案之后,原则上只接受增量修改。
(1)草案中包含新增特性语法和语义的,尽可能的完善的形式说明,允许包含一些待办事项或者占位符。
(2)必须包含2个实验性的具体实现,其中一个可以是用转译器实现的,例如Babel。

Stage 3: candidate
候选阶段,获得具体实现和用户的反馈。
此后,只有在实现和使用过程中出现了重大问题才会修改。
(1)规范文档必须是完整的,评审人和ECMAScript的编辑要在规范上签字。
(2)至少要有两个符合规范的具体实现

Stage 4: finished
已经准备就绪,该特性会出现在年度发布的规范之中。
(1)通过Test 262验收测试
(2)有2个通过测试的实现,以获取使用过程中的重要实践经验。
(3)ECMAScript的编辑必须规范上的签字。


参考:
The TC39 process for ECMAScript features
Github:tc39/proposals
Standard ECMA-262

推荐阅读更多精彩内容