Changelog

tc39/ecma262 · April 2026 · 35 commits

Spec gets broad editorial cleanup and sharper algorithm typing

April focused on clarifying algorithm shorthand, tightening abstract operation types, and polishing module, numeric, and comparison wording.

Major spec clarifications

Algorithm shorthand and throw semantics — The spec standardized use of throw as shorthand for Return ThrowCompletion(...), updating multiple algorithm steps and examples for consistency.

Module execution flow correctedExecuteModule now uses the execution context established by InitializeEnvironment, tightening the module lifecycle wiring.

Comparison and numeric semantics sharpenedIsLessThan was clarified to return undefined whenever operands can’t be coerced to comparable values of the same numeric type, and fixed-size-integer conversions were aligned with ToIntegerOrInfinity. Several related edge cases, including MakeFullYear, were also tightened.

Broader editorial cleanup

Abstract operation types narrowed — Many abstract operation signatures were made more precise, replacing generic values with specific types like function objects, Objects, non-negative integers, finite numbers, and time values.

Placeholder and terminology cleanup — The spec saw a broad pass renaming placeholders and aliases to more descriptive forms, aligning namespace terminology, and removing or rewording a number of notes and conventions that were adding noise.

Tooling and document maintenance — ecmarkup was bumped to 24.1.0, the ES2026 intro summary was added, and several editorial nits were fixed across clauses and examples.

Other misc changes

  • Updated the current editors list multiple times throughout the month.
  • Marked JSON.rawJSON as a built-in function.
  • Removed a few unhelpful notes, fixed small wording/punctuation issues, and updated the PR preview workflow to use gh-action-mutex.