2025 年 5 月 TC39 全会的总结

这是关于 TC39 会议的总结,主要内容如下:

  • 介绍:介绍了此次会议的特别之处,即 Igalia 在加利西亚的阿科鲁尼亚总部组织了该会议,并感谢所有参与者,还提供了完整议程和会议记录的链接。
  • 阶段 4 提案进展报告

    • Array.fromAsync:解决了异步迭代器的等效问题,已在所有 JS 引擎中使用至少一年,目前处于 stage 4 的条件审批中,由 J. S. Choi 介绍。
    • 显式资源管理:通过新的using x =声明为基于词法作用域的对象引入隐式清理回调,已在 Chrome、Node.js 和 Deno 中使用,在 Firefox 中处于标记状态,由 Ron Buckton 介绍。
    • Error.isError:提供了一种可靠的方法来检查给定值是否为Error的实例,已成为 ECMAScript 标准的一部分,由 Jordan Harband 介绍。
    • 添加Intl.Locale#variants:为Intl.Locale对象添加了变体访问器,由于疏忽而缺失,现已达成共识,由 Richard Gibson 介绍。
  • 阶段 3 提案进展报告

    • Intl.Locale Info:允许 JavaScript 应用查询特定区域设置的元数据,对文本方向信息的处理达成共识,由 Shane F. Carr 介绍。
    • Temporal:Philip Chimento 介绍了其最新状态,已在最新 Firefox 版本中可用,在其他 JS 引擎中也有大部分完成的实现,委员会同意对提案进行小的更改,关于 UTC 偏移字符串中秒(:00)组件的解释。
    • 不可变 ArrayBuffer:允许从只读数据创建 ArrayBuffers 并进行零拷贝优化,由于未能按时完成测试,目前处于等待状态,由 Peter Hoddie 和 Richard Gibson 介绍。
  • 阶段 2.7 提案进展报告

    • 迭代器排序:引入了新的Iterator.concat方法,由于委员会对“迭代器结果”对象的重用讨论需要对提案进行更改,未能推进到 stage 3,由 Michael Ficarra 介绍。
  • 阶段 2 提案进展报告

    • 迭代器分块:引入了Iterator.prototype.*方法chunks(size)windows(size),由于委员会对.windows行为的更改请求,将更新为两个单独的方法,由 Michael Ficarra 介绍。
    • AsyncContext:允许在异步控制流中保留状态,因浏览器工程师的实现复杂性担忧而停滞,在本次 TC39 会议中进行了头脑风暴,后续将继续讨论,由Andreu Botella介绍。
    • Math.clamp:添加了一个将数字值夹在范围端点之间的方法,已推进到 stage 2,但由于计划对提案文本的更改而未提议到 stage 2.7,由 Oliver Medhurst 介绍。
    • Seeded PRNG:为 JavaScript 的内置随机数生成功能添加了种子,普遍受到好评并推进到 stage 2,由 Tab Atkins-Bittner 介绍。
  • 阶段 1 提案进展报告

    • 更多随机函数:Tab Atkins-Bittner 提出了一组经常出现的随机函数,推进到 stage 1 进行进一步探索。
    • 在 Intl.NumberFormat 和 Intl.PluralRules 中保留尾随零:Mozilla 的 Eemeli Aro 提出了一个修复 JavaScript 国际化 API 中处理数字的两个部分的提案,已推进到 stage 1,需要进一步澄清一些现有选项的理解。
    • Decimal:分享了 Decimal 提案的最新进展及其与Intl的潜在集成,仍处于 stage 1,委员会对底层的 decimal 提案满意,但对 amount 的概念存在分歧。
    • 比较:Jacob Smith 提出的比较提案达到 stage 1,将继续探讨相关问题。
    • ECMAScript 的 IDL:Tooru Fujisawa 提出了在 ECMAScript 规范中使用 Web IDL 的提案,讨论了可能的路径,以降低维护成本。
  • 会议结束后的社区活动:在当地技术社区的帮助下组织了社区活动,议程丰富,希望能引发有趣的讨论。
  • 结论:5 月的全体会议在 JavaScript 语言和国际化功能方面取得了令人兴奋的进展,是 Igalia 的特殊时刻,将继续分享工作进展。
阅读 16
0 条评论