TC39推进关键提案:Deferred Import Evaluation、Error.isError()、正则表达式转义、Promise.try

原文信息: 查看原文查看原文

TC39 Advances Key Proposals: Deferred Import Evaluation, Error.isError(), RegExp Escaping, Promise.try

- Sarah Gooding

Ecma TC39(技术委员会39)的代表们本周在芬兰参加他们的第102次会议,这次会议由Mozilla和阿尔托大学主办,为期三天。他们在本周的本地活动和会议上也发表了演讲。

在@MariaZeroOne的活动中,来自@TC39的演讲者。

TC39负责开发和维护ECMAScript编程语言规范。该委员会基于共识运作,并有权根据需要修改规范。对ECMAScript的小改动可以通过提交PR到ECMA-262标准仓库进行,但主要功能请求是通过提案过程进行的。

今天有几个提案获得了共识,推进到下一个阶段。(TC39提案过程包括六个阶段:一个草案阶段和五个“成熟度”阶段。)以下是第一天批准的提案的快速概述:

Deferred Import Evaluation 进入 Stage 2.7

Deferred Import Evaluation,之前被称为“延迟模块初始化(Lazy Module Initialization)”,旨在允许JavaScript导入在不立即评估的情况下被加载。这将通过推迟执行导入模块直到代码中明确需要它们来实现更好的性能优化。

这一变化有可能通过减少初始加载时间和避免在应用程序初始化期间进行不必要的CPU工作,提高大型应用程序的性能。关于将提案推进到第二阶段的演讲幻灯片 可作为Google幻灯片提供。

Error.isError() 进入 Stage 2

Error.isError 提案引入了一种新方法,供开发者测试一个值是否是错误实例。提案中引用的潜在用例包括:

  • 调试:对于人类来说,即使对程序来说不总是如此,知道一个值是什么东西是非常有帮助的。因此,知道某物是否是“真正的”本地错误是有价值的信息,包括对错误报告库来说。
  • 序列化:像RunKit这样的平台需要安全地序列化值,并在用户浏览器中重建它们或描述它们。品牌检查对这一点至关重要。
  • 结构化克隆:这个HTML方法也在node中,品牌检查,并为本地错误有特殊行为。JS程序需要一种方法来预先知道这种行为是否会被应用。

正则表达式转义进入 Stage 2.7

正则表达式转义提案 将引入一个RegExp.escape静态函数,允许字符串被转义,以便它们可以安全地在正则表达式中使用。

Promise.try 进入 Stage 3

Promise.try提案 建议在JavaScript中添加一个名为Promise.try的新功能。它将允许开发者将一个函数包装在Promise中以改进错误处理,提供了一种更直接的方式来启动promise链。这种方法确保传递给它的函数立即执行并返回一个promise,使同步异常和异步操作的统一处理变得更加容易。

本周更多提案进展

今天是议程项目的第一天,还有两天的时间,委员会计划讨论并批准新特性通过提案阶段向前推进。本周其他待讨论的提案进展包括:

委员会还将讨论其他提案的进展,但不提升阶段:

所有开放的ECMAScript提案 及其当前阶段在GitHub上的表格中进行了跟踪,包括它们最近的演讲日期和负责人。这份文件已经更新了今天的进步。

有关讨论主题的完整概述,包括与提案无关的主题,请查看GitHub上的Ecma TC39第102次会议议程

分享于 2024-06-18

访问量 68

预览图片