JS: ECMAScript 2027
Float16Array
ai answer
ECMAScript 2027 (ES2027 / the 18th edition) is the current draft of the JavaScript language standard (as of the July 2026 draft at https://tc39.es/ecma262/ ). It builds on ES2026 and includes proposals that have reached Stage 4.
The major new features (from the finished proposals list) are:
1. Temporal (the big one)
A modern, immutable replacement for the infamous Date object.
It provides a clean API for dates, times, time zones, calendars, durations, and instants with nanosecond precision.
Key types (under the global Temporal namespace):
Temporal.Instant— exact point on the timelineTemporal.PlainDate/PlainTime/PlainDateTime— calendar date/time without timezoneTemporal.ZonedDateTime— date/time with timezoneTemporal.Duration— time spansTemporal.Now— utilities for the current time- Support for multiple calendars (Gregorian, Hebrew, Islamic, Chinese, Japanese, etc.)
Example:
const birthday = Temporal.PlainDate.from("1990-05-15"); const today = Temporal.Now.plainDateISO(); const age = today.since(birthday).years; // clean duration math
It has already shipped in Firefox 139+, Chrome 144+, Node.js 26+, and more. Polyfills are available if needed.
2. Explicit Resource Management (using / await using)
C#-style deterministic cleanup for resources (files, locks, connections, etc.).
using x = resource;— automatically calls[Symbol.dispose]()when the block endsawait using x = resource;— for async cleanup via[Symbol.asyncDispose]()- Also adds
DisposableStackandAsyncDisposableStackfor managing multiple resources
Example:
{ using file = await openFile("data.txt"); // use file... } // file is automatically disposed here (even on early return or throw)
This replaces messy nested try/finally blocks and is already widely supported in modern engines and TypeScript.
3. Joint Iteration (Iterator.zip / Iterator.zipKeyed)
Synchronizes multiple iterators (the classic “zip” operation).
// Zip into arrays Iterator.zip([ [0, 1, 2], ["a", "b", "c"] ]).toArray(); // → [[0, "a"], [1, "b"], [2, "c"]] // Zip into objects Iterator.zipKeyed({ id: [1, 2, 3], name: ["Alice", "Bob", "Carol"] }).toArray(); // → [{id:1, name:"Alice"}, {id:2, name:"Bob"}, ...]
Supports modes: "shortest" (default), "longest" (with optional padding), and "strict".
4. Atomics.pause()
A micro-wait / spin-hint for efficient lock implementations and busy-wait loops (especially useful for WebAssembly/Emscripten and shared-memory code).
It yields CPU resources without blocking the thread (safe on the main thread).
Quick Context
- ES2025 brought Iterator helpers, Set methods,
Promise.try,Float16Array, RegExp.escape, etc. - ES2026 added
Math.sumPrecise,Iterator.concat,Array.fromAsync, Map/WeakMap upsert (getOrInsert), Uint8Array base64/hex,Error.isError, etc. - ES2027 focuses on the long-awaited Temporal + cleaner resource management and iterator utilities.
The official living draft is always at https://tc39.es/ecma262/ . The yearly snapshot is typically finalized around June.
JavaScript. ECMAScript New Features
- JS: ECMAScript New Features. 2015 to 2026
- JS: ECMAScript 2015
- JS: ECMAScript 2016
- JS: ECMAScript 2017
- JS: ECMAScript 2018
- JS: ECMAScript 2019
- JS: ECMAScript 2020
- JS: ECMAScript 2021
- JS: ECMAScript 2022
- JS: ECMAScript 2023
- JS: ECMAScript 2024
- JS: ECMAScript 2025
- JS: ECMAScript 2026
- JS: ECMAScript 2027