v26.0.0
Breaking Changes📦 node-jsView on GitHub →
⚠ 4 breaking✨ 6 features🐛 3 fixes⚡ 5 deprecations🔧 14 symbols
Summary
Node.js 26 introduces the Temporal API by default and updates V8 to 14.6 and Undici to 8.0. This release also includes several major breaking changes, removing legacy stream modules and deprecated HTTP methods.
⚠️ Breaking Changes
- The `http.Server.prototype.writeHeader()` method is fully removed. Users must switch to using `http.Server.prototype.writeHead()` instead.
- The legacy stream modules `_stream_wrap`, `_stream_readable`, `_stream_writable`, `_stream_duplex`, `_stream_transform`, and `_stream_passthrough` are fully removed.
- The build process now requires GCC version 13.2 or higher.
- Support for Python 3.9 in the build process has been dropped.
Migration Steps
- Replace all usages of `http.Server.prototype.writeHeader()` with `http.Server.prototype.writeHead()`.
- Remove imports or usage of legacy stream modules: `_stream_wrap`, `_stream_readable`, `_stream_writable`, `_stream_duplex`, `_stream_transform`, and `_stream_passthrough`.
- Ensure your build environment uses GCC 13.2 or newer.
- Ensure your build environment uses Python 3.10 or newer (as 3.9 is dropped).
✨ New Features
- The Temporal API is now enabled by default, providing a modern date/time API.
- V8 JavaScript engine updated to version 14.6.202.33 (Chromium 134).
- New V8 features include `[Weak]Map.prototype.getOrInsert()` and `[Weak]Map.prototype.getOrInsertComputed()` (Upsert proposal).
- New V8 feature includes `Iterator.concat()` (Iterator sequencing proposal).
- Undici updated to version 8.0.2, bringing HTTP client improvements.
- Assertion error messages in `assert` module now allow printf-style formatting.
🐛 Bug Fixes
- Fixed a race condition in V8 related to AIX.
- Fixed a DOMException name for non-extractable key errors in `crypto`.
- Addressed CVE-2026-21717 related to array index hash collision testing.
Affected Symbols
http.Server.prototype.writeHeaderhttp.Server.prototype.writeHead_stream_wrap_stream_readable_stream_writable_stream_duplex_stream_transform_stream_passthroughcryptomodule.register--experimental-transform-types[Weak]Map.prototype.getOrInsert()[Weak]Map.prototype.getOrInsertComputed()Iterator.concat()
⚡ Deprecations
- DEP0182 in `crypto` module has moved to End-of-Life.
- DEP0203 and DEP0204 in `crypto` module are now runtime-deprecated.
- DEP0201 in `stream` module is promoted to a runtime deprecation.
- The `module.register()` function is now runtime-deprecated.
- The `--experimental-transform-types` flag has been removed.