Test262报告,是一个向JavaScript开发者提供各个浏览器对ECMAScript语言的新特性和老特性的实现状态的报告。它依赖于每天在各个JavaScript引擎中运行ECMA-262的测试用例,把语言特性的实现程度可视化地展示在网站上。如果你想看这个报告的内容,可以访问这个网站进行查看:https://test262.report/,下图是当前各个浏览器引擎的实现程度。
Test262是官方的JavaScript语言的测试套装,针对JavaScript语言的每个特性都有全面的测试用例。新的语言特性需要这些测试来向ECMAScript语言规范中添加,通过这些共享的测试来保证新特性被正确地实现,并确保完整地发布。
Test262报告来自于每天在四个主要的浏览器引擎执行的Test262材料(该文发布时有34,657个测试文件),分别按照默认模式和严格模式,当ES Module发布时,也在模块代码中运行。该团队使用他们维护和贡献的开源工具来构建测试机器人,使用Test262-harness作为运行器,用eshost来规范化单独的运行环境,使用jsvu来安装最新的引擎字节码程序。
Test262报告的主要作用是面向以下几类人:
- JavaScript开发者。很多JavaScript开发者提供了很多反馈,可以更好地完善自动化工具,特性实现,文档维护者等;
- 自动化工具。像Babel和TypeScript这样的自动化工具,可以基于Test262报告中实时的语言特性状态来为代码编译生成一个基础环境;
- 引擎开发和发布者。引擎开发任何和产品经理可以通过其他引擎的实现状态来对他们的工作做优先级排序,并确保特性实现的可用性;
- TC39规范作者(编写EcmaScript的科技委员)。他们使用Test262报告可以快速地检查即将完成的特性的状态,并将结果写到规范中。
- 其他社区组织。作者的团队邀请了很多关注JavaScript开发的社区组织,将这些报告中关于新的或已经实现的语言特性的内容放到他们的博客和文档中。
该团队在未来会继续投入精力到基础设施和每天的自动化运维和报告,添加更多特性标签,探索更多对开发友好的标签的UI。目前优先专注于更多的JavaScript转换和实现工具,比如Babel、TypeScript、Flow、Preact和njs等,未来还会开发数据API并整合Babel和TypeScript这样的编译工具,提供像MDN上那样的兼容性表格。如果你发现一些bug,可以在这里(https://github.com/bocoup/test262-report-issue-tracker)提交issue。
希望这篇文章可以给你启发,让你知道Test262报告的存在及其作用,当你在写文章介绍新特性或在你的项目中使用新特性时,会需要Test262报告的。