The TC39 committee, the driving force behind the evolution of JavaScript, is wrapping up an exciting week of meetings in Seattle with some major advancements for the language. Thanks to live updates from TC39 co-chair Rob Palmer, we now know that nine proposals have been advanced to various next stages during the committee’s 106th meeting.
Notable among the proposals that were advanced include three that are moving to Stage 4, meaning they are ready to become part of the ECMAScript standard. These include RegExp Escaping, Float16Array, and Redeclarable global eval vars. Other proposals, including Math.clamp, Immutable ArrayBuffer, and enhancements to error handling and module imports, have also made progress to the next stages.
Here’s a closer look at each of the nine proposals and what they could mean for JavaScript developers.
Curtailing the power of “Thenables”#
The “Thenable Curtailment” proposal is advancing to Stage 1. It aims to address issues arising from objects with a then method, known as “thenables,” which can interfere with JavaScript’s Promise behavior. These objects can lead to unexpected interactions, especially with module namespace objects during dynamic imports. The proposal suggests mechanisms to limit the influence of thenables, ensuring more predictable and reliable promise operations.
Error.captureStackTrace#
The Error.captureStackTrace proposal advanced to Stage 1 this week. It aims to standardize the Error.captureStackTrace
method across JavaScript environments. Currently a non-standard feature in V8 (used by Chrome and Node.js), this method allows developers to create custom error objects with a stack
property that captures the point in the code where the error was instantiated. Standardizing this method would enhance cross-platform consistency and improve error handling in JavaScript applications.
Error Stack Accessor#
Error.prototype.stack
is advancing to Stage 2. This proposal aims to standardize the Error.prototype.stack
property across JavaScript environments. Currently, while many JavaScript engines provide a sta