v26.9.0

FiloSottile/mkcertv26.9.0Sep 16, 2026by aduh95

Upgrading?

AI Summary

A major release introducing Web Worker support, new crypto APIs, and performance enhancements to Node.js.

Key Highlights

  • Added support for Web Workers.
  • Added generic MAC and hash discovery APIs via OpenSSL providers.
  • Enabled the FFI module by default.
  • Introduced `node:bench` for benchmarking and `node:perf_hooks` Histogram improvements.
  • Added experimental DTLS API support.

New Features

  • Web Worker support
  • Generic MAC API
  • Hash discovery via OpenSSL providers
  • node:bench module
  • Experimental DTLS API
  • Default FFI module

Full Release Notes




### Notable Changes

* \[[`d414624dce`](https://github.com/nodejs/node/commit/d414624dce)] - **(SEMVER-MINOR)** **crypto**: add a generic MAC API (Filip Skokan) [#65553](https://github.com/nodejs/node/pull/65553)
* \[[`7ac458f802`](https://github.com/nodejs/node/commit/7ac458f802)] - **(SEMVER-MINOR)** **crypto**: discover ciphers from OpenSSL providers (Filip Skokan) [#65484](https://github.com/nodejs/node/pull/65484)
* \[[`7c7e95a3bd`](https://github.com/nodejs/node/commit/7c7e95a3bd)] - **(SEMVER-MINOR)** **crypto**: discover hashes from OpenSSL providers (Filip Skokan) [#65484](https://github.com/nodejs/node/pull/65484)
* \[[`2d2f4f6d1a`](https://github.com/nodejs/node/commit/2d2f4f6d1a)] - **(SEMVER-MINOR)** **ffi**: enable module by default (Matteo Collina) [#65475](https://github.com/nodejs/node/pull/65475)
* \[[`657415c6df`](https://github.com/nodejs/node/commit/657415c6df)] - **(SEMVER-MINOR)** **lib**: implement `node:bench` (James M Snell) [#65606](https://github.com/nodejs/node/pull/65606)
* \[[`ebcfec2f0c`](https://github.com/nodejs/node/commit/ebcfec2f0c)] - **(SEMVER-MINOR)** **perf\_hooks**: implement Histogram `meanCI` API (James M Snell) [#65606](https://github.com/nodejs/node/pull/65606)
* \[[`e1913630c3`](https://github.com/nodejs/node/commit/e1913630c3)] - **(SEMVER-MINOR)** **perf\_hooks**: add CBOR export/import for histogram exchange (James M Snell) [#65434](https://github.com/nodejs/node/pull/65434)
* \[[`8e9151c9f2`](https://github.com/nodejs/node/commit/8e9151c9f2)] - **(SEMVER-MINOR)** **src**: let embedders supply a builtin code cache without a snapshot (Shelley Vohr) [#65352](https://github.com/nodejs/node/pull/65352)
* \[[`889854f18b`](https://github.com/nodejs/node/commit/889854f18b)] - **(SEMVER-MINOR)** **src,lib**: implement experimental DTLS API (James M Snell) [#63182](https://github.com/nodejs/node/pull/63182)
* \[[`5198142c59`](https://github.com/nodejs/node/commit/5198142c59)] - **(SEMVER-MINOR)** **vfs**: integrate with CJS and ESM module loaders (Matteo Collina) [#63653](https://github.com/nodejs/node/pull/63653)
* \[[`5af9d72e7f`](https://github.com/nodejs/node/commit/5af9d72e7f)] - **(SEMVER-MINOR)** **worker**: add support for Web Workers (Aviv Keller) [#64894](https://github.com/nodejs/node/pull/64894)

### Commits

* \[[`59dcad3f44`](https://github.com/nodejs/node/commit/59dcad3f44)] - **(SEMVER-MINOR)** **benchmark**: implement node:bench version of bench tools (James M Snell) [#65606](https://github.com/nodejs/node/pull/65606)
* \[[`6bdb6dd8fa`](https://github.com/nodejs/node/commit/6bdb6dd8fa)] - **benchmark**: fix max-regressions detection in compare.js (James M Snell) [#65587](https://github.com/nodejs/node/pull/65587)
* \[[`49d40091ba`](https://github.com/nodejs/node/commit/49d40091ba)] - **benchmark**: add --analyze option to benchmark/scatter.js (James M Snell) [#65594](https://github.com/nodejs/node/pull/65594)
* \[[`bd40a9a19a`](https://github.com/nodejs/node/commit/bd40a9a19a)] - **benchmark**: add crypto class benchmarks (Filip Skokan) [#65518](https://github.com/nodejs/node/pull/65518)
* \[[`6bff2238f5`](https://github.com/nodejs/node/commit/6bff2238f5)] - **buffer**: pad aligned allocations by a multiple of 8 (Lazizbek Ergashev) [#65605](https://github.com/nodejs/node/pull/65605)
* \[[`37d12946dd`](https://github.com/nodejs/node/commit/37d12946dd)] - **buffer**: prevent abort on indexOf with lone surrogate needle (Rafael Gonzaga) [#65430](https://github.com/nodejs/node/pull/65430)
* \[[`02f8eb3b2d`](https://github.com/nodejs/node/commit/02f8eb3b2d)] - **build**: add `--shared-perfetto` flag (Antoine du Hamel) [#65614](https://github.com/nodejs/node/pull/65614)
* \[[`fe7032ec41`](https://github.com/nodejs/node/commit/fe7032ec41)] - **build**: enable V8 gdb/lldb plugin support (Chengzhong Wu) [#65786](https://github.com/nodejs/node/pull/65786)
* \[[`109f2caf80`](https://github.com/nodejs/node/commit/109f2caf80)] - **build**: allow linking shared dependencies in the GN build (Shelley Vohr) [#65797](https://github.com/nodejs/node/pull/65797)
* \[[`55213fd8a8`](https://github.com/nodejs/node/commit/55213fd8a8)] - **build**: enable the V8 sandbox in shared-cage builds (Shelley Vohr) [#62237](https://github.com/nodejs/node/pull/62237)
* \[[`120929a1b3`](https://github.com/nodejs/node/commit/120929a1b3)] - **build**: add `--shared-highway` configure flag (Antoine du Hamel) [#65686](https://github.com/nodejs/node/pull/65686)
* \[[`c99af0942b`](https://github.com/nodejs/node/commit/c99af0942b)] - **build**: add `--shared-abseil` configure flag (Antoine du Hamel) [#65682](https://github.com/nodejs/node/pull/65682)
* \[[`431c2bf0eb`](https://github.com/nodejs/node/commit/431c2bf0eb)] - **build**: define V8\_CONTIGUOUS\_COMPRESSED\_RO\_SPACE for shared cage (Shelley Vohr) [#65464](https://github.com/nodejs/node/pull/65464)
* \[[`b6b5764c6e`](https://github.com/nodejs/node/commit/b6b5764c6e)] - **build**: remove obsolete configure flags (Chengzhong Wu) [#65456](https://github.com/nodejs/node/pull/65456)
* \[[`a623ee29d9`](https://github.com/nodejs/node/commit/a623ee29d9)] - **build,src**: make --use-largepages a no-op (Joyee Cheung) [#65389](https://github.com/nodejs/node/pull/65389)
* \[[`2f494cb7aa`](https://github.com/nodejs/node/commit/2f494cb7aa)] - **crypto**: fix multi-prime RSA JWKs (Filip Skokan) [#65649](https://github.com/nodejs/node/pull/65649)
* \[[`501d8ac815`](https://github.com/nodejs/node/commit/501d8ac815)] - **crypto**: cache valid ECDH key pairs (Filip Skokan) [#65615](https://github.com/nodejs/node/pull/65615)
* \[[`3fd905ea8f`](https://github.com/nodejs/node/commit/3fd905ea8f)] - **crypto**: add strict mode to --force-fips (Filip Skokan) [#65645](https://github.com/nodejs/node/pull/65645)
* \[[`54b3cdb805`](https://github.com/nodejs/node/commit/54b3cdb805)] - **crypto**: add FIPS indicator diagnostics channel (Filip Skokan) [#65645](https://github.com/nodejs/node/pull/65645)
* \[[`3e6e931fc9`](https://github.com/nodejs/node/commit/3e6e931fc9)] - **crypto**: fix public PKCS8 export error (한국) [#65609](https://github.com/nodejs/node/pull/65609)
* \[[`d414624dce`](https://github.com/nodejs/node/commit/d414624dce)] - **(SEMVER-MINOR)** **crypto**: add a generic MAC API (Filip Skokan) [#65553](https://github.com/nodejs/node/pull/65553)
* \[[`eef579047c`](https://github.com/nodejs/node/commit/eef579047c)] - **crypto**: validate JWK usages before key\_ops (Filip Skokan) [#65550](https://github.com/nodejs/node/pull/65550)
* \[[`9a9b137a24`](https://github.com/nodejs/node/commit/9a9b137a24)] - **crypto**: fix private SPKI export error (Filip Skokan) [#65550](https://github.com/nodejs/node/pull/65550)
* \[[`9941fb5dab`](https://github.com/nodejs/node/commit/9941fb5dab)] - **crypto**: fix RSA-PSS oversized salt handling (Filip Skokan) [#65550](https://github.com/nodejs/node/pull/65550)
* \[[`09b431596a`](https://github.com/nodejs/node/commit/09b431596a)] - **crypto**: correct CCM decryption FIPS error message (kyungrae) [#65450](https://github.com/nodejs/node/pull/65450)
* \[[`e6b34e6f7a`](https://github.com/nodejs/node/commit/e6b34e6f7a)] - **crypto**: harden X509Certificate state (Filip Skokan) [#65518](https://github.com/nodejs/node/pull/65518)
* \[[`a884b6ccbc`](https://github.com/nodejs/node/commit/a884b6ccbc)] - **crypto**: optimize key slot caching (Filip Skokan) [#65518](https://github.com/nodejs/node/pull/65518)
* \[[`fb512086d3`](https://github.com/nodejs/node/commit/fb512086d3)] - **crypto**: add null checks for OPENSSL\_INIT\_new() (Nora Dossche) [#63457](https://github.com/nodejs/node/pull/63457)
* \[[`656504ffc0`](https://github.com/nodejs/node/commit/656504ffc0)] - **crypto**: prevent Hmac.digest() from returning uninitialized memory (Matteo Collina) [#65112](https://github.com/nodejs/node/pull/65112)
* \[[`15e7884732`](https://github.com/nodejs/node/commit/15e7884732)] - **crypto**: avoid throwing CryptoKey brand checks (Filip Skokan) [#65503](https://github.com/nodejs/node/pull/65503)
* \[[`3302bec74a`](https://github.com/nodejs/node/commit/3302bec74a)] - **crypto**: avoid throwing KeyObject brand checks (Filip Skokan) [#65503](https://github.com/nodejs/node/pull/65503)
* \[[`7ac458f802`](https://github.com/nodejs/node/commit/7ac458f802)] - **(SEMVER-MINOR)** **crypto**: discover ciphers from OpenSSL providers (Filip Skokan) [#65484](https://github.com/nodejs/node/pull/65484)
* \[[`7c7e95a3bd`](https://github.com/nodejs/node/commit/7c7e95a3bd)] - **(SEMVER-MINOR)** **crypto**: discover hashes from OpenSSL providers (Filip Skokan) [#65484](https://github.com/nodejs/node/pull/65484)
* \[[`0539e90110`](https://github.com/nodejs/node/commit/0539e90110)] - **deps**: update googletest to 283c17563fe7a1111cd7f581aa5d541e8baeff2f (Node.js GitHub Bot) [#65833](https://github.com/nodejs/node/pull/65833)
* \[[`e34af820da`](https://github.com/nodejs/node/commit/e34af820da)] - **deps**: update simdjson to 4.6.11 (Node.js GitHub Bot) [#65834](https://github.com/nodejs/node/pull/65834)
* \[[`5fb7ffebc2`](https://github.com/nodejs/node/commit/5fb7ffebc2)] - **deps**: update zlib to 1.3.2.1-motley-285e94b (Node.js GitHub Bot) [#65835](https://github.com/nodejs/node/pull/65835)
* \[[`05cdf1db62`](https://github.com/nodejs/node/commit/05cdf1db62)] - **deps**: V8: backport 1a0089053443 (Jakob Linke) [#65764](https://github.com/nodejs/node/pull/65764)
* \[[`8910f7914a`](https://github.com/nodejs/node/commit/8910f7914a)] - **deps**: V8: backport c9c0abfa51f0 (Jakob Linke) [#65764](https://github.com/nodejs/node/pull/65764)
* \[[`e7fd388424`](https://github.com/nodejs/node/commit/e7fd388424)] - **deps**: V8: backport ebd15783b7ba (Marja Hölttä) [#65764](https://github.com/nodejs/node/pull/65764)
* \[[`82715158b8`](https://github.com/nodejs/node/commit/82715158b8)] - **deps**: V8: backport f3d4d458fe59 (Olivier Flückiger) [#65702](https://github.com/nodejs/node/pull/65702)
* \[[`7003159885`](https://github.com/nodejs/node/commit/7003159885)] - **diagnostics\_channel**: lazily create tracing context (Romain Lanz) [#65513](https://github.com/nodejs/node/pull/65513)
* \[[`a97def782f`](https://github.com/nodejs/node/commit/a97def782f)] - **doc**: clarify node:bench significance policy (James M Snell) [#65631](https://github.com/nodejs/node/pull/65631)
* \[[`c74091647d`](https://github.com/nodejs/node/commit/c74091647d)] - **doc**: clarify isolation modes for node:bench (James M Snell) [#65631](https://github.com/nodejs/node/pull/65631)
* \[[`3ef81a676c`](https://github.com/nodejs/node/commit/3ef81a676c)] - **doc**: clarify measurement integrity details of node:bench (James M Snell) [#65631](https://github.com/nodejs/node/pull/65631)
* \[[`6b565d7b2c`](https://github.com/nodejs/node/commit/6b565d7b2c)] - **doc**: clarify security triage dispositions and permission boundaries (Rafael Gonzaga) [#65436](https://github.com/nodejs/node/pull/65436)
* \[[`724981287c`](https://github.com/nodejs/node/commit/724981287c)] - **(SEMVER-MINOR)** **doc**: move histogram.burnRate to correct location in doc (James M Snell) [#65434](https://github.com/nodejs/node/pull/65434)
* \[[`f8b627c09b`](https://github.com/nodejs/node/commit/f8b627c09b)] - **doc**: fix default limit of maxHeadersCount (Aryn H) [#65472](https://github.com/nodejs/node/pull/65472)
* \[[`aa3d94fc1d`](https://github.com/nodejs/node/commit/aa3d94fc1d)] - **doc**: fix return types for sync methods (Chiang Fong Lee) [#58575](https://github.com/nodejs/node/pull/58575)
* \[[`fe9f452ddd`](https://github.com/nodejs/node/commit/fe9f452ddd)] - **doc**: document REPL DEP0185 throws and uncaught-exception behavior (Adrián Estrada) [#64993](https://github.com/nodejs/node/pull/64993)
* \[[`6b84ee66fa`](https://github.com/nodejs/node/commit/6b84ee66fa)] - **errors**: validate constructor name (Christian Aurich) [#65607](https://github.com/nodejs/node/pull/65607)
* \[[`ed1b629901`](https://github.com/nodejs/node/commit/ed1b629901)] - **events**: fix weak listener retention overwrite (Aryan) [#64024](https://github.com/nodejs/node/pull/64024)
* \[[`7b4c17f723`](https://github.com/nodejs/node/commit/7b4c17f723)] - **ffi**: throw on missing memory helper arguments (Soul Lee) [#65500](https://github.com/nodejs/node/pull/65500)
* \[[`cf78d4260e`](https://github.com/nodejs/node/commit/cf78d4260e)] - **ffi**: include SharedArrayBuffer in error message (Donghoon Kang) [#65735](https://github.com/nodejs/node/pull/65735)
* \[[`2d2f4f6d1a`](https://github.com/nodejs/node/commit/2d2f4f6d1a)] - **(SEMVER-MINOR)** **ffi**: enable module by default (Matteo Collina) [#65475](https://github.com/nodejs/node/pull/65475)
* \[[`bdcb6def4e`](https://github.com/nodejs/node/commit/bdcb6def4e)] - **ffi**: validate DynamicLibrary getter receivers (Trivikram Kamat) [#65415](https://github.com/nodejs/node/pull/65415)
* \[[`5d24a8fe37`](https://github.com/nodejs/node/commit/5d24a8fe37)] - **fs**: copy directory trees for fs.cp() on the thread pool (Shelley Vohr) [#65488](https://github.com/nodejs/node/pull/65488)
* \[[`40bdf32d91`](https://github.com/nodejs/node/commit/40bdf32d91)] - **fs**: give directories created by cpSync the source directory's mode (Shelley Vohr) [#65488](https://github.com/nodejs/node/pull/65488)
* \[[`6ac1bc040f`](https://github.com/nodejs/node/commit/6ac1bc040f)] - **fs**: write files in one thread pool round trip (Shelley Vohr) [#65489](https://github.com/nodejs/node/pull/65489)
* \[[`b4b89c08c1`](https://github.com/nodejs/node/commit/b4b89c08c1)] - **fs**: handle recursive watch setup races (Filip Skokan) [#65699](https://github.com/nodejs/node/pull/65699)
* \[[`54a1311d9e`](https://github.com/nodejs/node/commit/54a1311d9e)] - **fs**: apply nocase to literal glob exclude patterns (Yusuke Hayashi) [#64817](https://github.com/nodejs/node/pull/64817)
* \[[`2130460831`](https://github.com/nodejs/node/commit/2130460831)] - **fs**: improve performance of recursive directory read (Aviv Keller) [#65524](https://github.com/nodejs/node/pull/65524)
* \[[`ab7f4c88b7`](https://github.com/nodejs/node/commit/ab7f4c88b7)] - **fs**: do not descend into symlinks for \*\* unless following symlinks (RafaelGSS) [#65435](https://github.com/nodejs/node/pull/65435)
* \[[`e990324e7a`](https://github.com/nodejs/node/commit/e990324e7a)] - **fs**: watch directories, not files, in recursive fs.watch fallback (Shelley Vohr) [#65486](https://github.com/nodejs/node/pull/65486)
* \[[`b6db21972a`](https://github.com/nodejs/node/commit/b6db21972a)] - **fs**: preserve directory timestamps in cp (Abhinandan Kumar) [#65540](https://github.com/nodejs/node/pull/65540)
* \[[`d418ca140e`](https://github.com/nodejs/node/commit/d418ca140e)] - **fs**: fix recursive watch error handling (Filip Skokan) [#65635](https://github.com/nodejs/node/pull/65635)
* \[[`ea372bf9c9`](https://github.com/nodejs/node/commit/ea372bf9c9)] - **fs**: cancel in-flight stat on abort (Mert Can Altin) [#63142](https://github.com/nodejs/node/pull/63142)
* \[[`458664073e`](https://github.com/nodejs/node/commit/458664073e)] - **fs**: fix rmSync error messages for non-ASCII paths (Yeaseen) [#61233](https://github.com/nodejs/node/pull/61233)
* \[[`34b38235c3`](https://github.com/nodejs/node/commit/34b38235c3)] - **fs**: add maxDepth option to glob (Alexander Lichter) [#64003](https://github.com/nodejs/node/pull/64003)
* \[[`e3cc0d9313`](https://github.com/nodejs/node/commit/e3cc0d9313)] - **http**: fast-forward teardown of unread messages (Matteo Collina) [#65732](https://github.com/nodejs/node/pull/65732)
* \[[`f9175a212c`](https://github.com/nodejs/node/commit/f9175a212c)] - **http**: coalesce chunked writes during auto-corking (GetThatCookie) [#64987](https://github.com/nodejs/node/pull/64987)
* \[[`b4a7cd3efb`](https://github.com/nodejs/node/commit/b4a7cd3efb)] - **http2**: fix write deadlock exposed by larger window sizes (Tim Perry) [#65440](https://github.com/nodejs/node/pull/65440)
* \[[`b7e97f6cfd`](https://github.com/nodejs/node/commit/b7e97f6cfd)] - **http2**: error for incomplete reads on RST, auto-drain, deprecate aborted (Tim Perry) [#63249](https://github.com/nodejs/node/pull/63249)
* \[[`d62989dbdf`](https://github.com/nodejs/node/commit/d62989dbdf)] - **http2**: fix async context loss when trailers carry END\_STREAM (Orgad Shaneh) [#63814](https://github.com/nodejs/node/pull/63814)
* \[[`8aba314f87`](https://github.com/nodejs/node/commit/8aba314f87)] - **https**: limit proxy CONNECT response headers (Matteo Collina) [#64545](https://github.com/nodejs/node/pull/64545)
* \[[`bea74e1cb5`](https://github.com/nodejs/node/commit/bea74e1cb5)] - **lib**: put node:bench behind an --experimental-bench flag (James M Snell) [#65920](https://github.com/nodejs/node/pull/65920)
* \[[`2835523960`](https://github.com/nodejs/node/commit/2835523960)] - **lib**: fixup node:bench handling of --require option (James M Snell) [#65631](https://github.com/nodejs/node/pull/65631)
* \[[`aae83d87a4`](https://github.com/nodejs/node/commit/aae83d87a4)] - **lib**: improve diagnostic message support (James M Snell) [#65631](https://github.com/nodejs/node/pull/65631)
* \[[`ba7baed423`](https://github.com/nodejs/node/commit/ba7baed423)] - **lib**: have runFile honor permissions and accept URL/Buffer paths (James M Snell) [#65631](https://github.com/nodejs/node/pull/65631)
* \[[`55103db988`](https://github.com/nodejs/node/commit/55103db988)] - **lib**: add runFile api to node:bench (James M Snell) [#65631](https://github.com/nodejs/node/pull/65631)
* \[[`0a4c50eb76`](https://github.com/nodejs/node/commit/0a4c50eb76)] - **lib**: add context.diagnostic api to node:bench (James M Snell) [#65631](https://github.com/nodejs/node/pull/65631)
* \[[`476e25e864`](https://github.com/nodejs/node/commit/476e25e864)] - **lib**: add `bench:plan` event to `node:bench` (James M Snell) [#65631](https://github.com/nodejs/node/pull/65631)
* \[[`67cf0e556f`](https://github.com/nodejs/node/commit/67cf0e556f)] - **lib**: clarify mean in node:bench docs (James M Snell) [#65631](https://github.com/nodejs/node/pull/65631)
* \[[`f85f72ad42`](https://github.com/nodejs/node/commit/f85f72ad42)] - **lib**: improve node:bench stream handling (James M Snell) [#65631](https://github.com/nodejs/node/pull/65631)
* \[[`b32b09f56b`](https://github.com/nodejs/node/commit/b32b09f56b)] - **lib**: add runId, fileRunId, entryFile, namePath to node:bench (James M Snell) [#65631](https://github.com/nodejs/node/pull/65631)
* \[[`4b9b53f958`](https://github.com/nodejs/node/commit/4b9b53f958)] - **(SEMVER-MINOR)** **lib**: add `node:bench` explicit createRunner (James M Snell) [#65606](https://github.com/nodejs/node/pull/65606)
* \[[`d9f18171f0`](https://github.com/nodejs/node/commit/d9f18171f0)] - **(SEMVER-MINOR)** **lib**: complete the implementation of node:bench and cli (James M Snell) [#65606](https://github.com/nodejs/node/pull/65606)
* \[[`c39e20e9ca`](https://github.com/nodejs/node/commit/c39e20e9ca)] - **(SEMVER-MINOR)** **lib**: implement bench/reporters (James M Snell) [#65606](https://github.com/nodejs/node/pull/65606)
* \[[`657415c6df`](https://github.com/nodejs/node/commit/657415c6df)] - **(SEMVER-MINOR)** **lib**: implement node:bench (James M Snell) [#65606](https://github.com/nodejs/node/pull/65606)
* \[[`46863a7f9c`](https://github.com/nodejs/node/commit/46863a7f9c)] - **lib**: use `Float16Array` from primordials (Antoine du Hamel) [#65702](https://github.com/nodejs/node/pull/65702)
* \[[`cbd0948138`](https://github.com/nodejs/node/commit/cbd0948138)] - **lib**: defer source map payload decoding until first use (Shelley Vohr) [#65490](https://github.com/nodejs/node/pull/65490)
* \[[`1ddb1c8934`](https://github.com/nodejs/node/commit/1ddb1c8934)] - **lib**: optimize async context frame activation (Tim Perry) [#65519](https://github.com/nodejs/node/pull/65519)
* \[[`02f6feef7e`](https://github.com/nodejs/node/commit/02f6feef7e)] - **lib**: use validateArray for array arguments (JunHwan Choi) [#65344](https://github.com/nodejs/node/pull/65344)
* \[[`962795ab8c`](https://github.com/nodejs/node/commit/962795ab8c)] - **lib**: apply minor dtls cleanups (James M Snell) [#63539](https://github.com/nodejs/node/pull/63539)
* \[[`c07b2ab8a9`](https://github.com/nodejs/node/commit/c07b2ab8a9)] - **lib,benchmark**: address multiple review issues (James M Snell) [#65631](https://github.com/nodejs/node/pull/65631)
* \[[`54a5e25f72`](https://github.com/nodejs/node/commit/54a5e25f72)] - **module**: derive builtinModules from enabled builtin set (Jungwon Sohn) [#65418](https://github.com/nodejs/node/pull/65418)
* \[[`c93a90cf12`](https://github.com/nodejs/node/commit/c93a90cf12)] - **net**: fix BlockList.fromJSON for IPv4-mapped IPv6 rules (Daijiro Wachi) [#64125](https://github.com/nodejs/node/pull/64125)
* \[[`506d23b76f`](https://github.com/nodejs/node/commit/506d23b76f)] - **net**: recognize bare IPv6 loopback addresses in isLoopback (Daijiro Wachi) [#63619](https://github.com/nodejs/node/pull/63619)
* \[[`81cd6d7b78`](https://github.com/nodejs/node/commit/81cd6d7b78)] - **net**: improve dtls cert verification (James M Snell) [#64314](https://github.com/nodejs/node/pull/64314)
* \[[`51d094e26b`](https://github.com/nodejs/node/commit/51d094e26b)] - **node-api**: make object property arrays const (Yilong Li) [#65621](https://github.com/nodejs/node/pull/65621)
* \[[`875c7ecee2`](https://github.com/nodejs/node/commit/875c7ecee2)] - **node-api**: enter env context for async callbacks (Shelley Vohr) [#65406](https://github.com/nodejs/node/pull/65406)
* \[[`ebcfec2f0c`](https://github.com/nodejs/node/commit/ebcfec2f0c)] - **(SEMVER-MINOR)** **perf\_hooks**: implement Histogram meanCI API (James M Snell) [#65606](https://github.com/nodejs/node/pull/65606)
* \[[`09b333bcc5`](https://github.com/nodejs/node/commit/09b333bcc5)] - **perf\_hooks**: add missing resource timing attributes (greenhead) [#65017](https://github.com/nodejs/node/pull/65017)
* \[[`e1913630c3`](https://github.com/nodejs/node/commit/e1913630c3)] - **(SEMVER-MINOR)** **perf\_hooks**: add CBOR export/import for histogram exchange (James M Snell) [#65434](https://github.com/nodejs/node/pull/65434)
* \[[`67a78317dd`](https://github.com/nodejs/node/commit/67a78317dd)] - **permission**: do not enforce fs and addons in audit mode (Issac) [#65659](https://github.com/nodejs/node/pull/65659)
* \[[`19e69e5f72`](https://github.com/nodejs/node/commit/19e69e5f72)] - **permission**: support URL and Uint8Array as has()/drop() reference (Seungmin Nam) [#65492](https://github.com/nodejs/node/pull/65492)
* \[[`168af4d8d7`](https://github.com/nodejs/node/commit/168af4d8d7)] - **permission**: block FileHandle fsync and fdatasync (Rafael Gonzaga) [#65431](https://github.com/nodejs/node/pull/65431)
* \[[`855fff682f`](https://github.com/nodejs/node/commit/855fff682f)] - **quic**: stop guarding ngtcp2\_recv\_stop\_sending callback field (René) [#65688](https://github.com/nodejs/node/pull/65688)
* \[[`d30df2a3e1`](https://github.com/nodejs/node/commit/d30df2a3e1)] - **quic**: reuse TLS pause machinery to drop event deferral & improve 0RTT (Tim Perry) [#65522](https://github.com/nodejs/node/pull/65522)
* \[[`fce1b6a482`](https://github.com/nodejs/node/commit/fce1b6a482)] - **quic**: remove unused fin flag from blob reader wakeup (trivenay) [#65315](https://github.com/nodejs/node/pull/65315)
* \[[`c721aabfb7`](https://github.com/nodejs/node/commit/c721aabfb7)] - **quic**: apply multiple fixes to flow control signaling (James M Snell) [#65309](https://github.com/nodejs/node/pull/65309)
* \[[`2c552cd32c`](https://github.com/nodejs/node/commit/2c552cd32c)] - **quic**: release stream arenas before cleanup (Trivikram Kamat) [#65410](https://github.com/nodejs/node/pull/65410)
* \[[`487662717b`](https://github.com/nodejs/node/commit/487662717b)] - **sea**: mount bundled assets as a virtual file system (Matteo Collina) [#65675](https://github.com/nodejs/node/pull/65675)
* \[[`0ec15a2a54`](https://github.com/nodejs/node/commit/0ec15a2a54)] - **sea**: keep ELF segments on separate pages in --build-sea output (Shelley Vohr) [#65564](https://github.com/nodejs/node/pull/65564)
* \[[`1627fd6561`](https://github.com/nodejs/node/commit/1627fd6561)] - **sqlite**: re-validate database state after reading options (Trevor Burnham) [#65595](https://github.com/nodejs/node/pull/65595)
* \[[`18c3867d19`](https://github.com/nodejs/node/commit/18c3867d19)] - **sqlite**: run backup completion in callback scope (Filip Skokan) [#65666](https://github.com/nodejs/node/pull/65666)
* \[[`a77d738683`](https://github.com/nodejs/node/commit/a77d738683)] - **sqlite**: copy changeset before applying it (Matteo Collina) [#65286](https://github.com/nodejs/node/pull/65286)
* \[[`b5f0558c84`](https://github.com/nodejs/node/commit/b5f0558c84)] - **sqlite**: reject closing a session from a callback (Trevor Burnham) [#65454](https://github.com/nodejs/node/pull/65454)
* \[[`5f95032859`](https://github.com/nodejs/node/commit/5f95032859)] - **sqlite**: keep sessions alive across SQLite callbacks (Trevor Burnham) [#65465](https://github.com/nodejs/node/pull/65465)
* \[[`2ce0e2eb10`](https://github.com/nodejs/node/commit/2ce0e2eb10)] - **sqlite**: throw on disposal of an in-use session (Guilherme Araújo) [#65449](https://github.com/nodejs/node/pull/65449)
* \[[`f66ed89136`](https://github.com/nodejs/node/commit/f66ed89136)] - **src**: fix use-after-free in CleanupHookThunkRun (Caleb Everett) [#65630](https://github.com/nodejs/node/pull/65630)
* \[[`14613fdc3e`](https://github.com/nodejs/node/commit/14613fdc3e)] - **(SEMVER-MINOR)** **src**: fixup histogram and options linting issues (James M Snell) [#65606](https://github.com/nodejs/node/pull/65606)
* \[[`6db3f662cf`](https://github.com/nodejs/node/commit/6db3f662cf)] - **src**: fix startup snapshot reproducibility of InternalFieldInfo (Chengzhong Wu) [#65684](https://github.com/nodejs/node/pull/65684)
* \[[`8e9151c9f2`](https://github.com/nodejs/node/commit/8e9151c9f2)] - **(SEMVER-MINOR)** **src**: let embedders supply a builtin code cache without a snapshot (Shelley Vohr) [#65352](https://github.com/nodejs/node/pull/65352)
* \[[`760337aa5b`](https://github.com/nodejs/node/commit/760337aa5b)] - **src**: fix live lock between environments with blocked requests (Ilyas Shabi) [#65520](https://github.com/nodejs/node/pull/65520)
* \[[`f2a588c385`](https://github.com/nodejs/node/commit/f2a588c385)] - **src**: apply IsolateSettings when using a snapshot (Shelley Vohr) [#65407](https://github.com/nodejs/node/pull/65407)
* \[[`2fd50ae915`](https://github.com/nodejs/node/commit/2fd50ae915)] - **src**: add re-entrancy guard to TriggerUncaughtException (Temuulen Undrakhbayar) [#64327](https://github.com/nodejs/node/pull/64327)
* \[[`e260fd146c`](https://github.com/nodejs/node/commit/e260fd146c)] - **src**: reuse cached strings in CompileSerializeMain (agape1225) [#65453](https://github.com/nodejs/node/pull/65453)
* \[[`0650dca863`](https://github.com/nodejs/node/commit/0650dca863)] - **src**: add missing vector include (Filip Skokan) [#65622](https://github.com/nodejs/node/pull/65622)
* \[[`6e9d44d1fe`](https://github.com/nodejs/node/commit/6e9d44d1fe)] - **src**: disable V8 external memory reasonable size check (Paul Bouchon) [#65589](https://github.com/nodejs/node/pull/65589)
* \[[`9c46e56303`](https://github.com/nodejs/node/commit/9c46e56303)] - **src**: report libuv error when openAsBlob cannot stat (Paul Bouchon) [#65517](https://github.com/nodejs/node/pull/65517)
* \[[`a0aaff6b07`](https://github.com/nodejs/node/commit/a0aaff6b07)] - **src**: list scripts when `--run` has no command (James Ross) [#64606](https://github.com/nodejs/node/pull/64606)
* \[[`469590c155`](https://github.com/nodejs/node/commit/469590c155)] - **src**: fixup manual new/delete usages (James M Snell) [#65348](https://github.com/nodejs/node/pull/65348)
* \[[`5902acf031`](https://github.com/nodejs/node/commit/5902acf031)] - **src**: make the options structs smaller with packed bits (James M Snell) [#65145](https://github.com/nodejs/node/pull/65145)
* \[[`0c24639a5a`](https://github.com/nodejs/node/commit/0c24639a5a)] - **(SEMVER-MINOR)** **src, lib**: add stats to dtls (James M Snell) [#63182](https://github.com/nodejs/node/pull/63182)
* \[[`652fbc286e`](https://github.com/nodejs/node/commit/652fbc286e)] - **(SEMVER-MINOR)** **src,lib**: add dtls interop tests (James M Snell) [#63182](https://github.com/nodejs/node/pull/63182)
* \[[`889854f18b`](https://github.com/nodejs/node/commit/889854f18b)] - **(SEMVER-MINOR)** **src,lib**: implement experimental DTLS API (James M Snell) [#63182](https://github.com/nodejs/node/pull/63182)
* \[[`76538d519c`](https://github.com/nodejs/node/commit/76538d519c)] - **stream**: use webidl validation semantics for args (James M Snell) [#65658](https://github.com/nodejs/node/pull/65658)
* \[[`649a4aba93`](https://github.com/nodejs/node/commit/649a4aba93)] - **stream**: ensure that stateful transforms preserve this (James M Snell) [#65658](https://github.com/nodejs/node/pull/65658)
* \[[`23220992c0`](https://github.com/nodejs/node/commit/23220992c0)] - **stream**: fix nested async flushing with infinite sources (James M Snell) [#65658](https://github.com/nodejs/node/pull/65658)
* \[[`3ad1338139`](https://github.com/nodejs/node/commit/3ad1338139)] - **stream**: ensure from() observes returned rejecting promise correctly (James M Snell) [#65658](https://github.com/nodejs/node/pull/65658)
* \[[`cafdee6369`](https://github.com/nodejs/node/commit/cafdee6369)] - **stream**: apply source normalization once at call time (James M Snell) [#65658](https://github.com/nodejs/node/pull/65658)
* \[[`edb83cb620`](https://github.com/nodejs/node/commit/edb83cb620)] - **stream**: make consumer signals on longer alter source precedence (James M Snell) [#65658](https://github.com/nodejs/node/pull/65658)
* \[[`56bdd765df`](https://github.com/nodejs/node/commit/56bdd765df)] - **stream**: make pipeTo source normalization independent of Writer (James M Snell) [#65658](https://github.com/nodejs/node/pull/65658)
* \[[`037c07af2b`](https://github.com/nodejs/node/commit/037c07af2b)] - **stream**: pre-aborted pipeTo now applies dest failure handling (James M Snell) [#65658](https://github.com/nodejs/node/pull/65658)
* \[[`7308492d48`](https://github.com/nodejs/node/commit/7308492d48)] - **stream**: ensure pre-existing writes drain before EOF and end() waits (James M Snell) [#65658](https://github.com/nodejs/node/pull/65658)
* \[[`756773477b`](https://github.com/nodejs/node/commit/756773477b)] - **stream**: ensure async dispoal after endSync awaits for drain (James M Snell) [#65658](https://github.com/nodejs/node/pull/65658)
* \[[`042b951312`](https://github.com/nodejs/node/commit/042b951312)] - **stream**: ensure factory signals remain active through closing (James M Snell) [#65658](https://github.com/nodejs/node/pull/65658)
* \[[`2dc09ca9ca`](https://github.com/nodejs/node/commit/2dc09ca9ca)] - **stream**: canWrite and ondrain now reflect physical capacity (James M Snell) [#65658](https://github.com/nodejs/node/pull/65658)
* \[[`9192fbb6dd`](https://github.com/nodejs/node/commit/9192fbb6dd)] - **stream**: skip unobserved 'readable' emission at EOF (Matteo Collina) [#65749](https://github.com/nodejs/node/pull/65749)
* \[[`dc25a61e7a`](https://github.com/nodejs/node/commit/dc25a61e7a)] - **stream**: avoid per-chunk promises in webstream adapters (Matteo Collina) [#65548](https://github.com/nodejs/node/pull/65548)
* \[[`82ae196af6`](https://github.com/nodejs/node/commit/82ae196af6)] - **stream**: address stream/iter review feedback (James M Snell) [#65652](https://github.com/nodejs/node/pull/65652)
* \[[`3b37b48592`](https://github.com/nodejs/node/commit/3b37b48592)] - **stream**: replace object sentinel with symbol (James M Snell) [#65652](https://github.com/nodejs/node/pull/65652)
* \[[`b6424b6612`](https://github.com/nodejs/node/commit/b6424b6612)] - **stream**: ensure pipeToSync requires synchronous close (James M Snell) [#65652](https://github.com/nodejs/node/pull/65652)
* \[[`830fc81acf`](https://github.com/nodejs/node/commit/830fc81acf)] - **stream**: cancel active stream/iter pulls (James M Snell) [#65652](https://github.com/nodejs/node/pull/65652)
* \[[`30606908de`](https://github.com/nodejs/node/commit/30606908de)] - **stream**: fix merge settlement tagging and falsy error tracking (James M Snell) [#65652](https://github.com/nodejs/node/pull/65652)
* \[[`7319198755`](https://github.com/nodejs/node/commit/7319198755)] - **stream**: ensure full-close semantics when closed (James M Snell) [#65652](https://github.com/nodejs/node/pull/65652)
* \[[`bf5acb783f`](https://github.com/nodejs/node/commit/bf5acb783f)] - **stream**: defend against re-entrancy in writev (James M Snell) [#65652](https://github.com/nodejs/node/pull/65652)
* \[[`b01594f93a`](https://github.com/nodejs/node/commit/b01594f93a)] - **stream**: ensure stability of stored metadata (James M Snell) [#65652](https://github.com/nodejs/node/pull/65652)
* \[[`7bfd81ab09`](https://github.com/nodejs/node/commit/7bfd81ab09)] - **stream**: fixup writer to terminate on consumer return/throw (James M Snell) [#65652](https://github.com/nodejs/node/pull/65652)
* \[[`dc2483c38d`](https://github.com/nodejs/node/commit/dc2483c38d)] - **stream**: ensure iterator cleanup on done, reject, etc (James M Snell) [#65652](https://github.com/nodejs/node/pull/65652)
* \[[`f6fac6f7f0`](https://github.com/nodejs/node/commit/f6fac6f7f0)] - **stream**: fixup cancelation handling in pull() (James M Snell) [#65652](https://github.com/nodejs/node/pull/65652)
* \[[`dfe0617e71`](https://github.com/nodejs/node/commit/dfe0617e71)] - **stream**: fix early drain after Utf8Stream reopen (Matteo Collina) [#65633](https://github.com/nodejs/node/pull/65633)
* \[[`900fae0a24`](https://github.com/nodejs/node/commit/900fae0a24)] - **test**: split test-bench-cli to try deflaking it (James M Snell) [#65919](https://github.com/nodejs/node/pull/65919)
* \[[`31f4bd73b2`](https://github.com/nodejs/node/commit/31f4bd73b2)] - **test**: make node:bench test samples survive a coarse clock (Shelley Vohr) [#65780](https://github.com/nodejs/node/pull/65780)
* \[[`e0fa1893c3`](https://github.com/nodejs/node/commit/e0fa1893c3)] - **test**: do not dump core in external memory limit test (Shelley Vohr) [#65780](https://github.com/nodejs/node/pull/65780)
* \[[`00ad283b8d`](https://github.com/nodejs/node/commit/00ad283b8d)] - **test**: zero-fill buffers before the string length limit check (Christian Aurich) [#65755](https://github.com/nodejs/node/pull/65755)
* \[[`70763fcc46`](https://github.com/nodejs/node/commit/70763fcc46)] - **test**: expand test coverage of node:bench (James M Snell) [#65631](https://github.com/nodejs/node/pull/65631)
* \[[`5a38e6b115`](https://github.com/nodejs/node/commit/5a38e6b115)] - **(SEMVER-MINOR)** **test**: fix node:bench test timing (James M Snell) [#65606](https://github.com/nodejs/node/pull/65606)
* \[[`536ae0e24b`](https://github.com/nodejs/node/commit/536ae0e24b)] - **(SEMVER-MINOR)** **test**: improve node:bench test coverage (James M Snell) [#65606](https://github.com/nodejs/node/pull/65606)
* \[[`eec66d529c`](https://github.com/nodejs/node/commit/eec66d529c)] - **(SEMVER-MINOR)** **test**: update bench tests to not fail on no-crypto (James M Snell) [#65606](https://github.com/nodejs/node/pull/65606)
* \[[`ce7b349de5`](https://github.com/nodejs/node/commit/ce7b349de5)] - **test**: bump WPT webidl and interfaces (Filip Skokan) [#65679](https://github.com/nodejs/node/pull/65679)
* \[[`ec96f8dc23`](https://github.com/nodejs/node/commit/ec96f8dc23)] - **test**: update WPT for url to c23755a144 (Node.js GitHub Bot) [#65651](https://github.com/nodejs/node/pull/65651)
* \[[`ebe2ac248b`](https://github.com/nodejs/node/commit/ebe2ac248b)] - **test**: fix recursive fs.watch error fixture (Filip Skokan) [#65683](https://github.com/nodejs/node/pull/65683)
* \[[`a19912ee8f`](https://github.com/nodejs/node/commit/a19912ee8f)] - **test**: update streams WPT (Jeong SeokChan) [#65638](https://github.com/nodejs/node/pull/65638)
* \[[`14b5dfc63d`](https://github.com/nodejs/node/commit/14b5dfc63d)] - **test**: remove `console.log` call in `node_run_list` (Antoine du Hamel) [#65572](https://github.com/nodejs/node/pull/65572)
* \[[`3f67df139c`](https://github.com/nodejs/node/commit/3f67df139c)] - **test**: expect node:ffi to be enabled by default (Matteo Collina) [#65636](https://github.com/nodejs/node/pull/65636)
* \[[`b9ee2e67bf`](https://github.com/nodejs/node/commit/b9ee2e67bf)] - **(SEMVER-MINOR)** **test**: use native builder for legacy SEA tests (Filip Skokan) [#65553](https://github.com/nodejs/node/pull/65553)
* \[[`53a29d0894`](https://github.com/nodejs/node/commit/53a29d0894)] - **test**: use common spawnSync helpers in more tests (greenhead) [#65552](https://github.com/nodejs/node/pull/65552)
* \[[`5c680a50f4`](https://github.com/nodejs/node/commit/5c680a50f4)] - **test**: add coverage for removeEventListener boolean capture (Lazizbek Ergashev) [#65245](https://github.com/nodejs/node/pull/65245)
* \[[`6f99474912`](https://github.com/nodejs/node/commit/6f99474912)] - **test**: deflake fastutf8stream destroy and reopen tests (Christian Aurich) [#65554](https://github.com/nodejs/node/pull/65554)
* \[[`2342b2bf30`](https://github.com/nodejs/node/commit/2342b2bf30)] - **test**: cover Readable.from() sync iterator errors (jakecastelli) [#65515](https://github.com/nodejs/node/pull/65515)
* \[[`1e455a4ffe`](https://github.com/nodejs/node/commit/1e455a4ffe)] - **test**: support inspecting WPTs in child processes (Filip Skokan) [#65510](https://github.com/nodejs/node/pull/65510)
* \[[`1f7cab588e`](https://github.com/nodejs/node/commit/1f7cab588e)] - **test**: document WPT runner workflows (Filip Skokan) [#65510](https://github.com/nodejs/node/pull/65510)
* \[[`d39a902cec`](https://github.com/nodejs/node/commit/d39a902cec)] - **test**: simplify test-worker-heap-profile.js (Donghoon Kang) [#65372](https://github.com/nodejs/node/pull/65372)
* \[[`90d1b863f7`](https://github.com/nodejs/node/commit/90d1b863f7)] - **test**: keep WPT backend checks alive (Filip Skokan) [#65320](https://github.com/nodejs/node/pull/65320)
* \[[`be60c34b52`](https://github.com/nodejs/node/commit/be60c34b52)] - **(SEMVER-MINOR)** **test**: enable multi-global WPTs (Filip Skokan) [#64894](https://github.com/nodejs/node/pull/64894)
* \[[`d04cfcda8e`](https://github.com/nodejs/node/commit/d04cfcda8e)] - **(SEMVER-MINOR)** **test**: add opt-in process WPT runner (Filip Skokan) [#64894](https://github.com/nodejs/node/pull/64894)
* \[[`715c21f805`](https://github.com/nodejs/node/commit/715c21f805)] - **(SEMVER-MINOR)** **test**: accomodate multi-global tests in WPT{Runner,TestSpec,Report} (Filip Skokan) [#64894](https://github.com/nodejs/node/pull/64894)
* \[[`9aa8489a01`](https://github.com/nodejs/node/commit/9aa8489a01)] - **test**: fix lint in dtls tests (Matteo Collina) [#64902](https://github.com/nodejs/node/pull/64902)
* \[[`6a3d8a6d9f`](https://github.com/nodejs/node/commit/6a3d8a6d9f)] - **tls**: read the peer certificate chain without consuming it (Tony Gies) [#65602](https://github.com/nodejs/node/pull/65602)
* \[[`2e519f8fef`](https://github.com/nodejs/node/commit/2e519f8fef)] - **tls,quic**: commonize TLS cert handling between tls, dtls & quic (Tim Perry) [#64711](https://github.com/nodejs/node/pull/64711)
* \[[`2266c14051`](https://github.com/nodejs/node/commit/2266c14051)] - **tools**: add GHA workflow to test vendored Perfetto (Antoine du Hamel) [#65614](https://github.com/nodejs/node/pull/65614)
* \[[`19779f121f`](https://github.com/nodejs/node/commit/19779f121f)] - **tools**: fix the list of globals in ESLint config files (Antoine du Hamel) [#65281](https://github.com/nodejs/node/pull/65281)
* \[[`b57db8dfd3`](https://github.com/nodejs/node/commit/b57db8dfd3)] - **typings**: add types for performance binding (Jungwon Sohn) [#65574](https://github.com/nodejs/node/pull/65574)
* \[[`371e2260f4`](https://github.com/nodejs/node/commit/371e2260f4)] - **typings**: add encodeIntoResults to EncodingBinding (greenhead) [#65350](https://github.com/nodejs/node/pull/65350)
* \[[`417cdd8a77`](https://github.com/nodejs/node/commit/417cdd8a77)] - **typings**: add typing for permission binding (Seungmin Nam) [#65385](https://github.com/nodejs/node/pull/65385)
* \[[`a82cc7097f`](https://github.com/nodejs/node/commit/a82cc7097f)] - **url**: align URLPatternInit dictionary conversion with WebIDL (Piyush Yadav) [#65498](https://github.com/nodejs/node/pull/65498)
* \[[`0e8f7b96b0`](https://github.com/nodejs/node/commit/0e8f7b96b0)] - **util**: canonicalize namespaced tags in inspect() (René) [#63257](https://github.com/nodejs/node/pull/63257)
* \[[`acd2bb10ce`](https://github.com/nodejs/node/commit/acd2bb10ce)] - **v8**: add setHeapProfileNearHeapLimit (Ilyas Shabi) [#64676](https://github.com/nodejs/node/pull/64676)
* \[[`d0535b1041`](https://github.com/nodejs/node/commit/d0535b1041)] - **vfs**: load native addons from a mounted file system (Philipp Dunkel) [#65680](https://github.com/nodejs/node/pull/65680)
* \[[`ea6f70ba41`](https://github.com/nodejs/node/commit/ea6f70ba41)] - **vfs**: fix rename over non-empty directory (Christian Aurich) [#65613](https://github.com/nodejs/node/pull/65613)
* \[[`b4f6b3798a`](https://github.com/nodejs/node/commit/b4f6b3798a)] - **vfs**: add ZipProvider (Philipp Dunkel) [#64915](https://github.com/nodejs/node/pull/64915)
* \[[`5198142c59`](https://github.com/nodejs/node/commit/5198142c59)] - **(SEMVER-MINOR)** **vfs**: integrate with CJS and ESM module loaders (Matteo Collina) [#63653](https://github.com/nodejs/node/pull/63653)
* \[[`38192126e2`](https://github.com/nodejs/node/commit/38192126e2)] - **worker**: start worker threads from the built-in snapshot (Shelley Vohr) [#65336](https://github.com/nodejs/node/pull/65336)
* \[[`56144ea80a`](https://github.com/nodejs/node/commit/56144ea80a)] - **worker**: add ref/unref to web workers (Aviv Keller) [#65507](https://github.com/nodejs/node/pull/65507)
* \[[`7231c13b8a`](https://github.com/nodejs/node/commit/7231c13b8a)] - **(SEMVER-MINOR)** **worker**: add wpt tests for Web Workers (Aviv Keller) [#64894](https://github.com/nodejs/node/pull/64894)
* \[[`5af9d72e7f`](https://github.com/nodejs/node/commit/5af9d72e7f)] - **(SEMVER-MINOR)** **worker**: add support for Web Workers (Aviv Keller) [#64894](https://github.com/nodejs/node/pull/64894)
* \[[`069a1b1200`](https://github.com/nodejs/node/commit/069a1b1200)] - **zlib**: avoid waiting for paused ZIP iterators (Trivikram Kamat) [#65278](https://github.com/nodejs/node/pull/65278)

Related Repositories