stream: improve performance of finished()#59873
stream: improve performance of finished()#59873nodejs-github-bot merged 9 commits intonodejs:mainfrom
Conversation
|
Review requested:
|
Codecov Report✅ All modified and coverable lines are covered by tests. Additional details and impacted files@@ Coverage Diff @@
## main #59873 +/- ##
==========================================
+ Coverage 88.56% 88.57% +0.01%
==========================================
Files 704 704
Lines 208322 208330 +8
Branches 40027 40040 +13
==========================================
+ Hits 184501 184533 +32
+ Misses 15863 15818 -45
- Partials 7958 7979 +21
🚀 New features to boost your workflow:
|
H4ad
left a comment
There was a problem hiding this comment.
Hey, thanks for the PR, I added a few comments about some issues I found running locally.
Also, would you mind split this change in two commits, the first one being the benchmark and the second one the optimization?
You can also improve the commit message a little bit by adding what you really changed to improve performance, eg: stream: preserve AsyncLocalStorage on finished only when needed
About the benchmark name, maybe changing to finished should be more relevant than end-of-stream since we are testing the finished function.
Preview of the results:
h4ad:node-copy-4/ (improve-stream-finished-perf✗) $ node-benchmark-compare streams.csv [10:49:03]
confidence improvement accuracy (*) (**) (***)
streams/compose.js n=1000 *** 42.25 % ±3.90% ±5.24% ±6.91%
streams/end-of-stream.js streamType='readable' n=100000 *** 76.67 % ±1.41% ±1.89% ±2.48%
streams/end-of-stream.js streamType='writable' n=100000 *** 105.00 % ±2.01% ±2.69% ±3.56%
streams/pipe-object-mode.js n=5000000 -0.30 % ±0.81% ±1.08% ±1.42%
streams/pipe.js n=5000000 0.14 % ±1.77% ±2.36% ±3.08%
Be aware that when doing many comparisons the risk of a false-positive result increases.
In this case, there are 5 comparisons, you can thus expect the following amount of false-positive results:
0.25 false positives, when considering a 5% risk acceptance (*, **, ***),
0.05 false positives, when considering a 1% risk acceptance (**, ***),
0.01 false positives, when considering a 0.1% risk acceptance (***)
mcollina
left a comment
There was a problem hiding this comment.
While I love the PR, but I fear that this breaks continuation when using async_hooks.
We could argue that with ALS not using async_hooks we could remove them (or add them via a compile time flag) but that's outside of the scope of this PR.
56bc9ed to
2d4a3b5
Compare
Thanks @mcollina! I removed the async_hooks part. |
|
There is command line option I think we might need special handing for this variation. |
|
@avcribl you didn't address my comment. |
2d4a3b5 to
e7d45d6
Compare
@mcollina I've pushed a new commit that adds a check to determine whether async_context_frame is enabled. I tested both scenarios: In both cases, the unit tests ran successfully and passed: Also, I ran the benchmark test with and without the flag and both have similar improved performance: Please let me know if it addresses your comment. |
|
I don't see any new tests in this PR, just a benchmark. @Qard or @Flarna could chime in as well, but checking if AsyncContextFrame is enabled is not enough in case plain async_hooks are used. There are still a lot of modules out there that are not using AsyncLocalStorage for context tracking. My understanding is that using |
|
It's quite hard to tell. I would recommend to write tests for all these scenarios to be improved here and also verify that non improvable scenarios still work. FWIW I'm not a big fan of tinkering with async hooks/async local store internals at several places in code. |
| if ((AsyncContextFrame.enabled && AsyncContextFrame.current()) || | ||
| (!AsyncContextFrame.enabled && getHookArrays()[0].length > 0)) { |
There was a problem hiding this comment.
This could be simplified to:
| if ((AsyncContextFrame.enabled && AsyncContextFrame.current()) || | |
| (!AsyncContextFrame.enabled && getHookArrays()[0].length > 0)) { | |
| if (AsyncContextFrame.current() || enabledHooksExist()) { |
The AsyncContextFrame.current() call is a no-op when inactive, you don't really need the enabled check as that will just add more instructions. Also, as @Flarna pointed out, enabledHooksExist() is the clearer way to check if there are active async_hooks listeners.
There was a problem hiding this comment.
Thanks! I removed AsyncContextFrame.enabled
|
One thing worth noting is that this would be a breaking change as currently the AsyncLocalStorage.bind(...) will always bind, even if there are no hooks or stores in use, but async_hooks could start listening at any time. In the current model you could start listening after the bind call there but before the callback is called and you would see the events. After this change you would not. |
e7d45d6 to
51e0905
Compare
|
Thanks all for the feedback! |
| finished(readable, common.mustCall(() => { | ||
| strictEqual(internalAsyncHooks.getHookArrays()[0].length > 0, | ||
| true, 'Should have active user async hook'); | ||
| })); |
There was a problem hiding this comment.
Note that this does not verify continuation is preserved
| finished(readable, common.mustCall(() => { | ||
| strictEqual(internalAsyncHooks.getHookArrays()[0].length > 0, | ||
| true, 'Should have active user async hook'); | ||
| })); |
There was a problem hiding this comment.
Note that this does not verify continuation is preserved
There was a problem hiding this comment.
This doesn't verify the code path either. It is a copy of the condition and someone might change one of the locations.
There was a problem hiding this comment.
Thanks! I expanded on the test!
There was a problem hiding this comment.
@mcollina I addressed your comment, thanks!
ff9809b to
fd7f7a4
Compare
|
CI is green now! |
|
The CI build is green, do I need to do anything more here? Thanks! |
|
Thanks @H4ad ! I think the label |
|
Landed in 4fe325d |
Correct the implementaton of enabledHooksExist to return true if there are enabled hooks. Adapt callsites which used getHooksArrays() as workaround. PR-URL: nodejs#61054 Fixes: nodejs#61019 Refs: nodejs#59873 Reviewed-By: Matteo Collina <matteo.collina@gmail.com> Reviewed-By: Gürgün Dayıoğlu <hey@gurgun.day>
assert: * (SEMVER-MAJOR) allow printf-style messages as assertion error (Ruben Bridgewater) #58849 build: * (SEMVER-MAJOR) enable V8_VERIFY_WRITE_BARRIERS in debug build (Joyee Cheung) #61898 * (SEMVER-MAJOR) reset embedder string to "-node.0" (Michaël Zasso) #61898 * (SEMVER-MAJOR) target Power 9 for AIX/IBM i (Richard Lau) #62296 * (SEMVER-MAJOR) drop support for Python 3.9 (Mike McCready) #61177 * (SEMVER-MAJOR) enable maglev for Linux on s390x (Richard Lau) #60863 * (SEMVER-MAJOR) reset embedder string to "-node.0" (Michaël Zasso) #60488 * (SEMVER-MAJOR) reset embedder string to "-node.0" (Michaël Zasso) #60111 build,test: * (CVE-2026-21717) (SEMVER-MAJOR) test array index hash collision (Joyee Cheung) #61898 crypto: * (SEMVER-MAJOR) unify asymmetric key import through KeyObjectHandle::Init (Filip Skokan) #62499 * (SEMVER-MAJOR) runtime-deprecate DEP0203 and DEP0204 (Filip Skokan) #62453 * (SEMVER-MAJOR) decorate async crypto job errors with OpenSSL error details (Filip Skokan) #62348 * (SEMVER-MAJOR) default ML-KEM and ML-DSA pkcs8 export to seed-only format (Filip Skokan) #62178 * (SEMVER-MAJOR) move DEP0182 to End-of-Life (Tobias Nießen) #61084 * (SEMVER-MAJOR) fix DOMException name for non-extractable key error (Filip Skokan) #60830 deps: * (SEMVER-MAJOR) fix V8 race condition for AIX (Abdirahim Musse) #61898 * (SEMVER-MAJOR) V8: cherry-pick cd2c216e7658 (LuYahan) #61898 * (SEMVER-MAJOR) V8: backport 088b7112e7ab (Igor Sheludko) #61898 * (SEMVER-MAJOR) V8: cherry-pick 00f6e834029f (Joyee Cheung) #61898 * (SEMVER-MAJOR) V8: backport bef0d9c1bc90 (Joyee Cheung) #61898 * (SEMVER-MAJOR) V8: cherry-pick cf1bce40a5ef (Richard Lau) #61898 * (SEMVER-MAJOR) V8: cherry-pick daf4656ba85e (Milad Fa) #61898 * (SEMVER-MAJOR) V8: cherry-pick d83f479604c8 (Joyee Cheung) #61898 * (SEMVER-MAJOR) V8: cherry-pick edeb0a4fa181 (Joyee Cheung) #61898 * (SEMVER-MAJOR) V8: cherry-pick aa0b288f87cc (Richard Lau) #61898 * (SEMVER-MAJOR) patch V8 to fix Windows build (StefanStojanovic) #61898 * (SEMVER-MAJOR) V8: cherry-pick highway@989a498fdf3 (Richard Lau) #61898 * (SEMVER-MAJOR) support madvise(3C) across ALL illumos revisions (Dan McDonald) #61898 * (SEMVER-MAJOR) patch V8 for illumos (Dan McDonald) #61898 * (SEMVER-MAJOR) remove problematic comment from v8-internal (Michaël Zasso) #61898 * (SEMVER-MAJOR) define V8_PRESERVE_MOST as no-op on Windows (Stefan Stojanovic) #61898 * (SEMVER-MAJOR) patch V8 to avoid duplicated zlib symbol (Michaël Zasso) #61898 * (SEMVER-MAJOR) update V8 to 14.6.202.33 (Michaël Zasso) #61898 * (SEMVER-MAJOR) update undici to 8.0.2 (Node.js GitHub Bot) #62384 * (SEMVER-MAJOR) V8: backport 151d0a44a1b2 (Abdirahim Musse) #60488 * (SEMVER-MAJOR) V8: cherry-pick 47800791b35c (Jakob Kummerow) #60488 * (SEMVER-MAJOR) patch V8 for illumos (Dan McDonald) #59805 * (SEMVER-MAJOR) use std::map in MSVC STL for EphemeronRememberedSet (Joyee Cheung) #58070 * (SEMVER-MAJOR) remove problematic comment from v8-internal (Michaël Zasso) #58070 * (SEMVER-MAJOR) patch V8 to avoid duplicated zlib symbol (Michaël Zasso) #54077 * (SEMVER-MAJOR) update V8 to 14.3.127.12 (Michaël Zasso) #60488 * (SEMVER-MAJOR) V8: cherry-pick ff34ae20c8e3 (Chengzhong Wu) #60111 * (SEMVER-MAJOR) V8: backport fed47445bbdd (Abdirahim Musse) #60111 * (SEMVER-MAJOR) patch V8 for illumos (Dan McDonald) #59805 * (SEMVER-MAJOR) use std::map in MSVC STL for EphemeronRememberedSet (Joyee Cheung) #58070 * (SEMVER-MAJOR) remove problematic comment from v8-internal (Michaël Zasso) #58070 * (SEMVER-MAJOR) patch V8 to avoid duplicated zlib symbol (Michaël Zasso) #54077 * (SEMVER-MAJOR) update V8 to 14.2.231.9 (Michaël Zasso) #60111 diagnostics_channel: * (SEMVER-MAJOR) ensure tracePromise consistency with non-Promises (René) #61766 doc: * (SEMVER-MAJOR) remove extensionless CJS exception for type:module packages (Matteo Collina) #62176 * (SEMVER-MAJOR) update supported Windows SDK version to 11 (Mike McCready) #61973 * (SEMVER-MAJOR) drop p8 and z13 support (Milad Fa) #61005 http: * (SEMVER-MAJOR) move writeHeader to end-of-life (Sebastian Beltran) #60635 * (SEMVER-MAJOR) fix handling of HTTP upgrades with bodies (Tim Perry) #60016 lib: * (SEMVER-MAJOR) return undefined for localStorage without file (Matteo Collina) #61333 lib,src: * (SEMVER-MAJOR) implement QuotaExceededError as DOMException-derived interface (Filip Skokan) #62293 module: * (SEMVER-MAJOR) runtime-deprecate module.register() (Geoffrey Booth) #62401 * (SEMVER-MAJOR) remove --experimental-transform-types (Marco Ippolito) #61803 src: * (SEMVER-MAJOR) replace uses of deprecated v8::External APIs (gahaas) #61898 * (SEMVER-MAJOR) stop using `v8::PropertyCallbackInfo<T>::This()` (Igor Sheludko) #61898 * (SEMVER-MAJOR) avoid deprecated Wasm API (Clemens Backes) #61898 * (SEMVER-MAJOR) avoid deprecated `FixedArray::Get` (Clemens Backes) #61898 * (SEMVER-MAJOR) update NODE_MODULE_VERSION to 147 (Michaël Zasso) #61898 * (SEMVER-MAJOR) remove deprecated and unused isolate fields (Michaël Zasso) #60488 * (SEMVER-MAJOR) update NODE_MODULE_VERSION to 144 (Michaël Zasso) #60488 * (SEMVER-MAJOR) include `node_api_types.h` instead of `node_api.h` in `node.h` (Anna Henningsen) #60496 * (SEMVER-MAJOR) update NODE_MODULE_VERSION to 142 (Michaël Zasso) #60111 stream: * (SEMVER-MAJOR) promote DEP0201 to runtime deprecation (René) #62173 * (SEMVER-MAJOR) move _stream_* to end-of-life (Sebastian Beltran) #60657 * (SEMVER-MAJOR) readable read one buffer at a time (Robert Nagy) #60441 * (SEMVER-MAJOR) preserve AsyncLocalStorage on finished only when needed (avcribl) #59873 test: * (SEMVER-MAJOR) skip wasm allocation tests in workers (Michaël Zasso) #61898 * (SEMVER-MAJOR) update wpt Wasm jsapi expectations (Michaël Zasso) #61898 * (SEMVER-MAJOR) support presence of Temporal global (Michaël Zasso) #61898 * (SEMVER-MAJOR) add type tags to uses of v8::External (gahaas) #61898 * (SEMVER-MAJOR) fix test-linux-perf-logger for V8 14.3 (Michaël Zasso) #60488 tools: * (SEMVER-MAJOR) remove v8_initializers_slow workaround from v8.gyp (Michaël Zasso) #61898 * (SEMVER-MAJOR) add Rust args to `tools/make-v8.sh` (Richard Lau) #61898 * (SEMVER-MAJOR) update V8 gypfiles for 14.6 (Michaël Zasso) #61898 * (SEMVER-MAJOR) update V8 gypfiles for 14.5 (Michaël Zasso) #61898 * (SEMVER-MAJOR) update V8 gypfiles for 14.4 (Michaël Zasso) #61898 util: * (SEMVER-MAJOR) mark proxied objects as such when inspecting them (Ruben Bridgewater) #61029 * (SEMVER-MAJOR) reduce TextEncoder.encodeInto function size (Yagiz Nizipli) #60339 PR-URL: #62526
assert: * (SEMVER-MAJOR) allow printf-style messages as assertion error (Ruben Bridgewater) #58849 build: * (SEMVER-MAJOR) enable V8_VERIFY_WRITE_BARRIERS in debug build (Joyee Cheung) #61898 * (SEMVER-MAJOR) reset embedder string to "-node.0" (Michaël Zasso) #61898 * (SEMVER-MAJOR) target Power 9 for AIX/IBM i (Richard Lau) #62296 * (SEMVER-MAJOR) drop support for Python 3.9 (Mike McCready) #61177 * (SEMVER-MAJOR) enable maglev for Linux on s390x (Richard Lau) #60863 * (SEMVER-MAJOR) reset embedder string to "-node.0" (Michaël Zasso) #60488 * (SEMVER-MAJOR) reset embedder string to "-node.0" (Michaël Zasso) #60111 build,test: * (CVE-2026-21717) (SEMVER-MAJOR) test array index hash collision (Joyee Cheung) #61898 crypto: * (SEMVER-MAJOR) unify asymmetric key import through KeyObjectHandle::Init (Filip Skokan) #62499 * (SEMVER-MAJOR) runtime-deprecate DEP0203 and DEP0204 (Filip Skokan) #62453 * (SEMVER-MAJOR) decorate async crypto job errors with OpenSSL error details (Filip Skokan) #62348 * (SEMVER-MAJOR) default ML-KEM and ML-DSA pkcs8 export to seed-only format (Filip Skokan) #62178 * (SEMVER-MAJOR) move DEP0182 to End-of-Life (Tobias Nießen) #61084 * (SEMVER-MAJOR) fix DOMException name for non-extractable key error (Filip Skokan) #60830 deps: * (SEMVER-MAJOR) fix V8 race condition for AIX (Abdirahim Musse) #61898 * (SEMVER-MAJOR) V8: cherry-pick cd2c216e7658 (LuYahan) #61898 * (SEMVER-MAJOR) V8: backport 088b7112e7ab (Igor Sheludko) #61898 * (SEMVER-MAJOR) V8: cherry-pick 00f6e834029f (Joyee Cheung) #61898 * (SEMVER-MAJOR) V8: backport bef0d9c1bc90 (Joyee Cheung) #61898 * (SEMVER-MAJOR) V8: cherry-pick cf1bce40a5ef (Richard Lau) #61898 * (SEMVER-MAJOR) V8: cherry-pick daf4656ba85e (Milad Fa) #61898 * (SEMVER-MAJOR) V8: cherry-pick d83f479604c8 (Joyee Cheung) #61898 * (SEMVER-MAJOR) V8: cherry-pick edeb0a4fa181 (Joyee Cheung) #61898 * (SEMVER-MAJOR) V8: cherry-pick aa0b288f87cc (Richard Lau) #61898 * (SEMVER-MAJOR) patch V8 to fix Windows build (StefanStojanovic) #61898 * (SEMVER-MAJOR) V8: cherry-pick highway@989a498fdf3 (Richard Lau) #61898 * (SEMVER-MAJOR) support madvise(3C) across ALL illumos revisions (Dan McDonald) #61898 * (SEMVER-MAJOR) patch V8 for illumos (Dan McDonald) #61898 * (SEMVER-MAJOR) remove problematic comment from v8-internal (Michaël Zasso) #61898 * (SEMVER-MAJOR) define V8_PRESERVE_MOST as no-op on Windows (Stefan Stojanovic) #61898 * (SEMVER-MAJOR) patch V8 to avoid duplicated zlib symbol (Michaël Zasso) #61898 * (SEMVER-MAJOR) update V8 to 14.6.202.33 (Michaël Zasso) #61898 * (SEMVER-MAJOR) update undici to 8.0.2 (Node.js GitHub Bot) #62384 * (SEMVER-MAJOR) V8: backport 151d0a44a1b2 (Abdirahim Musse) #60488 * (SEMVER-MAJOR) V8: cherry-pick 47800791b35c (Jakob Kummerow) #60488 * (SEMVER-MAJOR) patch V8 for illumos (Dan McDonald) #59805 * (SEMVER-MAJOR) use std::map in MSVC STL for EphemeronRememberedSet (Joyee Cheung) #58070 * (SEMVER-MAJOR) remove problematic comment from v8-internal (Michaël Zasso) #58070 * (SEMVER-MAJOR) patch V8 to avoid duplicated zlib symbol (Michaël Zasso) #54077 * (SEMVER-MAJOR) update V8 to 14.3.127.12 (Michaël Zasso) #60488 * (SEMVER-MAJOR) V8: cherry-pick ff34ae20c8e3 (Chengzhong Wu) #60111 * (SEMVER-MAJOR) V8: backport fed47445bbdd (Abdirahim Musse) #60111 * (SEMVER-MAJOR) patch V8 for illumos (Dan McDonald) #59805 * (SEMVER-MAJOR) use std::map in MSVC STL for EphemeronRememberedSet (Joyee Cheung) #58070 * (SEMVER-MAJOR) remove problematic comment from v8-internal (Michaël Zasso) #58070 * (SEMVER-MAJOR) patch V8 to avoid duplicated zlib symbol (Michaël Zasso) #54077 * (SEMVER-MAJOR) update V8 to 14.2.231.9 (Michaël Zasso) #60111 diagnostics_channel: * (SEMVER-MAJOR) ensure tracePromise consistency with non-Promises (René) #61766 doc: * (SEMVER-MAJOR) remove extensionless CJS exception for type:module packages (Matteo Collina) #62176 * (SEMVER-MAJOR) update supported Windows SDK version to 11 (Mike McCready) #61973 * (SEMVER-MAJOR) drop p8 and z13 support (Milad Fa) #61005 http: * (SEMVER-MAJOR) move writeHeader to end-of-life (Sebastian Beltran) #60635 * (SEMVER-MAJOR) fix handling of HTTP upgrades with bodies (Tim Perry) #60016 lib: * (SEMVER-MAJOR) return undefined for localStorage without file (Matteo Collina) #61333 lib,src: * (SEMVER-MAJOR) implement QuotaExceededError as DOMException-derived interface (Filip Skokan) #62293 module: * (SEMVER-MAJOR) runtime-deprecate module.register() (Geoffrey Booth) #62401 * (SEMVER-MAJOR) remove --experimental-transform-types (Marco Ippolito) #61803 src: * (SEMVER-MAJOR) replace uses of deprecated v8::External APIs (gahaas) #61898 * (SEMVER-MAJOR) stop using `v8::PropertyCallbackInfo<T>::This()` (Igor Sheludko) #61898 * (SEMVER-MAJOR) avoid deprecated Wasm API (Clemens Backes) #61898 * (SEMVER-MAJOR) avoid deprecated `FixedArray::Get` (Clemens Backes) #61898 * (SEMVER-MAJOR) update NODE_MODULE_VERSION to 147 (Michaël Zasso) #61898 * (SEMVER-MAJOR) remove deprecated and unused isolate fields (Michaël Zasso) #60488 * (SEMVER-MAJOR) update NODE_MODULE_VERSION to 144 (Michaël Zasso) #60488 * (SEMVER-MAJOR) include `node_api_types.h` instead of `node_api.h` in `node.h` (Anna Henningsen) #60496 * (SEMVER-MAJOR) update NODE_MODULE_VERSION to 142 (Michaël Zasso) #60111 stream: * (SEMVER-MAJOR) promote DEP0201 to runtime deprecation (René) #62173 * (SEMVER-MAJOR) move _stream_* to end-of-life (Sebastian Beltran) #60657 * (SEMVER-MAJOR) readable read one buffer at a time (Robert Nagy) #60441 * (SEMVER-MAJOR) preserve AsyncLocalStorage on finished only when needed (avcribl) #59873 test: * (SEMVER-MAJOR) skip wasm allocation tests in workers (Michaël Zasso) #61898 * (SEMVER-MAJOR) update wpt Wasm jsapi expectations (Michaël Zasso) #61898 * (SEMVER-MAJOR) support presence of Temporal global (Michaël Zasso) #61898 * (SEMVER-MAJOR) add type tags to uses of v8::External (gahaas) #61898 * (SEMVER-MAJOR) fix test-linux-perf-logger for V8 14.3 (Michaël Zasso) #60488 tools: * (SEMVER-MAJOR) remove v8_initializers_slow workaround from v8.gyp (Michaël Zasso) #61898 * (SEMVER-MAJOR) add Rust args to `tools/make-v8.sh` (Richard Lau) #61898 * (SEMVER-MAJOR) update V8 gypfiles for 14.6 (Michaël Zasso) #61898 * (SEMVER-MAJOR) update V8 gypfiles for 14.5 (Michaël Zasso) #61898 * (SEMVER-MAJOR) update V8 gypfiles for 14.4 (Michaël Zasso) #61898 util: * (SEMVER-MAJOR) mark proxied objects as such when inspecting them (Ruben Bridgewater) #61029 * (SEMVER-MAJOR) reduce TextEncoder.encodeInto function size (Yagiz Nizipli) #60339 PR-URL: #62526
assert: * (SEMVER-MAJOR) allow printf-style messages as assertion error (Ruben Bridgewater) #58849 build: * (SEMVER-MAJOR) enable V8_VERIFY_WRITE_BARRIERS in debug build (Joyee Cheung) #61898 * (SEMVER-MAJOR) reset embedder string to "-node.0" (Michaël Zasso) #61898 * (SEMVER-MAJOR) target Power 9 for AIX/IBM i (Richard Lau) #62296 * (SEMVER-MAJOR) drop support for Python 3.9 (Mike McCready) #61177 * (SEMVER-MAJOR) enable maglev for Linux on s390x (Richard Lau) #60863 * (SEMVER-MAJOR) reset embedder string to "-node.0" (Michaël Zasso) #60488 * (SEMVER-MAJOR) reset embedder string to "-node.0" (Michaël Zasso) #60111 build,test: * (CVE-2026-21717) (SEMVER-MAJOR) test array index hash collision (Joyee Cheung) #61898 crypto: * (SEMVER-MAJOR) unify asymmetric key import through KeyObjectHandle::Init (Filip Skokan) #62499 * (SEMVER-MAJOR) runtime-deprecate DEP0203 and DEP0204 (Filip Skokan) #62453 * (SEMVER-MAJOR) decorate async crypto job errors with OpenSSL error details (Filip Skokan) #62348 * (SEMVER-MAJOR) default ML-KEM and ML-DSA pkcs8 export to seed-only format (Filip Skokan) #62178 * (SEMVER-MAJOR) move DEP0182 to End-of-Life (Tobias Nießen) #61084 * (SEMVER-MAJOR) fix DOMException name for non-extractable key error (Filip Skokan) #60830 deps: * (SEMVER-MAJOR) fix V8 race condition for AIX (Abdirahim Musse) #61898 * (SEMVER-MAJOR) V8: cherry-pick cd2c216e7658 (LuYahan) #61898 * (SEMVER-MAJOR) V8: backport 088b7112e7ab (Igor Sheludko) #61898 * (SEMVER-MAJOR) V8: cherry-pick 00f6e834029f (Joyee Cheung) #61898 * (SEMVER-MAJOR) V8: backport bef0d9c1bc90 (Joyee Cheung) #61898 * (SEMVER-MAJOR) V8: cherry-pick cf1bce40a5ef (Richard Lau) #61898 * (SEMVER-MAJOR) V8: cherry-pick daf4656ba85e (Milad Fa) #61898 * (SEMVER-MAJOR) V8: cherry-pick d83f479604c8 (Joyee Cheung) #61898 * (SEMVER-MAJOR) V8: cherry-pick edeb0a4fa181 (Joyee Cheung) #61898 * (SEMVER-MAJOR) V8: cherry-pick aa0b288f87cc (Richard Lau) #61898 * (SEMVER-MAJOR) patch V8 to fix Windows build (StefanStojanovic) #61898 * (SEMVER-MAJOR) V8: cherry-pick highway@989a498fdf3 (Richard Lau) #61898 * (SEMVER-MAJOR) support madvise(3C) across ALL illumos revisions (Dan McDonald) #61898 * (SEMVER-MAJOR) patch V8 for illumos (Dan McDonald) #61898 * (SEMVER-MAJOR) remove problematic comment from v8-internal (Michaël Zasso) #61898 * (SEMVER-MAJOR) define V8_PRESERVE_MOST as no-op on Windows (Stefan Stojanovic) #61898 * (SEMVER-MAJOR) patch V8 to avoid duplicated zlib symbol (Michaël Zasso) #61898 * (SEMVER-MAJOR) update V8 to 14.6.202.33 (Michaël Zasso) #61898 * (SEMVER-MAJOR) update undici to 8.0.2 (Node.js GitHub Bot) #62384 * (SEMVER-MAJOR) V8: backport 151d0a44a1b2 (Abdirahim Musse) #60488 * (SEMVER-MAJOR) V8: cherry-pick 47800791b35c (Jakob Kummerow) #60488 * (SEMVER-MAJOR) patch V8 for illumos (Dan McDonald) #59805 * (SEMVER-MAJOR) use std::map in MSVC STL for EphemeronRememberedSet (Joyee Cheung) #58070 * (SEMVER-MAJOR) remove problematic comment from v8-internal (Michaël Zasso) #58070 * (SEMVER-MAJOR) patch V8 to avoid duplicated zlib symbol (Michaël Zasso) #54077 * (SEMVER-MAJOR) update V8 to 14.3.127.12 (Michaël Zasso) #60488 * (SEMVER-MAJOR) V8: cherry-pick ff34ae20c8e3 (Chengzhong Wu) #60111 * (SEMVER-MAJOR) V8: backport fed47445bbdd (Abdirahim Musse) #60111 * (SEMVER-MAJOR) patch V8 for illumos (Dan McDonald) #59805 * (SEMVER-MAJOR) use std::map in MSVC STL for EphemeronRememberedSet (Joyee Cheung) #58070 * (SEMVER-MAJOR) remove problematic comment from v8-internal (Michaël Zasso) #58070 * (SEMVER-MAJOR) patch V8 to avoid duplicated zlib symbol (Michaël Zasso) #54077 * (SEMVER-MAJOR) update V8 to 14.2.231.9 (Michaël Zasso) #60111 diagnostics_channel: * (SEMVER-MAJOR) ensure tracePromise consistency with non-Promises (René) #61766 doc: * (SEMVER-MAJOR) remove extensionless CJS exception for type:module packages (Matteo Collina) #62176 * (SEMVER-MAJOR) update supported Windows SDK version to 11 (Mike McCready) #61973 * (SEMVER-MAJOR) drop p8 and z13 support (Milad Fa) #61005 http: * (SEMVER-MAJOR) move writeHeader to end-of-life (Sebastian Beltran) #60635 * (SEMVER-MAJOR) fix handling of HTTP upgrades with bodies (Tim Perry) #60016 lib: * (SEMVER-MAJOR) return undefined for localStorage without file (Matteo Collina) #61333 lib,src: * (SEMVER-MAJOR) implement QuotaExceededError as DOMException-derived interface (Filip Skokan) #62293 module: * (SEMVER-MAJOR) runtime-deprecate module.register() (Geoffrey Booth) #62401 * (SEMVER-MAJOR) remove --experimental-transform-types (Marco Ippolito) #61803 src: * (SEMVER-MAJOR) replace uses of deprecated v8::External APIs (gahaas) #61898 * (SEMVER-MAJOR) stop using `v8::PropertyCallbackInfo<T>::This()` (Igor Sheludko) #61898 * (SEMVER-MAJOR) avoid deprecated Wasm API (Clemens Backes) #61898 * (SEMVER-MAJOR) avoid deprecated `FixedArray::Get` (Clemens Backes) #61898 * (SEMVER-MAJOR) update NODE_MODULE_VERSION to 147 (Michaël Zasso) #61898 * (SEMVER-MAJOR) remove deprecated and unused isolate fields (Michaël Zasso) #60488 * (SEMVER-MAJOR) update NODE_MODULE_VERSION to 144 (Michaël Zasso) #60488 * (SEMVER-MAJOR) include `node_api_types.h` instead of `node_api.h` in `node.h` (Anna Henningsen) #60496 * (SEMVER-MAJOR) update NODE_MODULE_VERSION to 142 (Michaël Zasso) #60111 stream: * (SEMVER-MAJOR) promote DEP0201 to runtime deprecation (René) #62173 * (SEMVER-MAJOR) move _stream_* to end-of-life (Sebastian Beltran) #60657 * (SEMVER-MAJOR) readable read one buffer at a time (Robert Nagy) #60441 * (SEMVER-MAJOR) preserve AsyncLocalStorage on finished only when needed (avcribl) #59873 test: * (SEMVER-MAJOR) skip wasm allocation tests in workers (Michaël Zasso) #61898 * (SEMVER-MAJOR) update wpt Wasm jsapi expectations (Michaël Zasso) #61898 * (SEMVER-MAJOR) support presence of Temporal global (Michaël Zasso) #61898 * (SEMVER-MAJOR) add type tags to uses of v8::External (gahaas) #61898 * (SEMVER-MAJOR) fix test-linux-perf-logger for V8 14.3 (Michaël Zasso) #60488 tools: * (SEMVER-MAJOR) remove v8_initializers_slow workaround from v8.gyp (Michaël Zasso) #61898 * (SEMVER-MAJOR) add Rust args to `tools/make-v8.sh` (Richard Lau) #61898 * (SEMVER-MAJOR) update V8 gypfiles for 14.6 (Michaël Zasso) #61898 * (SEMVER-MAJOR) update V8 gypfiles for 14.5 (Michaël Zasso) #61898 * (SEMVER-MAJOR) update V8 gypfiles for 14.4 (Michaël Zasso) #61898 util: * (SEMVER-MAJOR) mark proxied objects as such when inspecting them (Ruben Bridgewater) #61029 * (SEMVER-MAJOR) reduce TextEncoder.encodeInto function size (Yagiz Nizipli) #60339 PR-URL: #62526
assert: * (SEMVER-MAJOR) allow printf-style messages as assertion error (Ruben Bridgewater) #58849 build: * (SEMVER-MAJOR) bump GCC requirement to 13.2 (Michaël Zasso) #62555 * (SEMVER-MAJOR) enable Temporal by default (Richard Lau) #61806 * (SEMVER-MAJOR) enable V8_VERIFY_WRITE_BARRIERS in debug build (Joyee Cheung) #61898 * (SEMVER-MAJOR) reset embedder string to "-node.0" (Michaël Zasso) #61898 * (SEMVER-MAJOR) target Power 9 for AIX/IBM i (Richard Lau) #62296 * (SEMVER-MAJOR) drop support for Python 3.9 (Mike McCready) #61177 * (SEMVER-MAJOR) enable maglev for Linux on s390x (Richard Lau) #60863 * (SEMVER-MAJOR) reset embedder string to "-node.0" (Michaël Zasso) #60488 * (SEMVER-MAJOR) reset embedder string to "-node.0" (Michaël Zasso) #60111 build,test: * (CVE-2026-21717) (SEMVER-MAJOR) test array index hash collision (Joyee Cheung) #61898 build,win: * (SEMVER-MAJOR) fix Temporal build (StefanStojanovic) #61806 crypto: * (SEMVER-MAJOR) unify asymmetric key import through KeyObjectHandle::Init (Filip Skokan) #62499 * (SEMVER-MAJOR) runtime-deprecate DEP0203 and DEP0204 (Filip Skokan) #62453 * (SEMVER-MAJOR) decorate async crypto job errors with OpenSSL error details (Filip Skokan) #62348 * (SEMVER-MAJOR) default ML-KEM and ML-DSA pkcs8 export to seed-only format (Filip Skokan) #62178 * (SEMVER-MAJOR) move DEP0182 to End-of-Life (Tobias Nießen) #61084 * (SEMVER-MAJOR) fix DOMException name for non-extractable key error (Filip Skokan) #60830 deps: * (SEMVER-MAJOR) fix V8 race condition for AIX (Abdirahim Musse) #61898 * (SEMVER-MAJOR) V8: cherry-pick cd2c216e7658 (LuYahan) #61898 * (SEMVER-MAJOR) V8: backport 088b7112e7ab (Igor Sheludko) #61898 * (SEMVER-MAJOR) V8: cherry-pick 00f6e834029f (Joyee Cheung) #61898 * (SEMVER-MAJOR) V8: backport bef0d9c1bc90 (Joyee Cheung) #61898 * (SEMVER-MAJOR) V8: cherry-pick cf1bce40a5ef (Richard Lau) #61898 * (SEMVER-MAJOR) V8: cherry-pick daf4656ba85e (Milad Fa) #61898 * (SEMVER-MAJOR) V8: cherry-pick d83f479604c8 (Joyee Cheung) #61898 * (SEMVER-MAJOR) V8: cherry-pick edeb0a4fa181 (Joyee Cheung) #61898 * (SEMVER-MAJOR) V8: cherry-pick aa0b288f87cc (Richard Lau) #61898 * (SEMVER-MAJOR) patch V8 to fix Windows build (StefanStojanovic) #61898 * (SEMVER-MAJOR) V8: cherry-pick highway@989a498fdf3 (Richard Lau) #61898 * (SEMVER-MAJOR) support madvise(3C) across ALL illumos revisions (Dan McDonald) #61898 * (SEMVER-MAJOR) patch V8 for illumos (Dan McDonald) #61898 * (SEMVER-MAJOR) remove problematic comment from v8-internal (Michaël Zasso) #61898 * (SEMVER-MAJOR) define V8_PRESERVE_MOST as no-op on Windows (Stefan Stojanovic) #61898 * (SEMVER-MAJOR) patch V8 to avoid duplicated zlib symbol (Michaël Zasso) #61898 * (SEMVER-MAJOR) update V8 to 14.6.202.33 (Michaël Zasso) #61898 * (SEMVER-MAJOR) update undici to 8.0.2 (Node.js GitHub Bot) #62384 * (SEMVER-MAJOR) V8: backport 151d0a44a1b2 (Abdirahim Musse) #60488 * (SEMVER-MAJOR) V8: cherry-pick 47800791b35c (Jakob Kummerow) #60488 * (SEMVER-MAJOR) patch V8 for illumos (Dan McDonald) #59805 * (SEMVER-MAJOR) use std::map in MSVC STL for EphemeronRememberedSet (Joyee Cheung) #58070 * (SEMVER-MAJOR) remove problematic comment from v8-internal (Michaël Zasso) #58070 * (SEMVER-MAJOR) patch V8 to avoid duplicated zlib symbol (Michaël Zasso) #54077 * (SEMVER-MAJOR) update V8 to 14.3.127.12 (Michaël Zasso) #60488 * (SEMVER-MAJOR) V8: cherry-pick ff34ae20c8e3 (Chengzhong Wu) #60111 * (SEMVER-MAJOR) V8: backport fed47445bbdd (Abdirahim Musse) #60111 * (SEMVER-MAJOR) patch V8 for illumos (Dan McDonald) #59805 * (SEMVER-MAJOR) use std::map in MSVC STL for EphemeronRememberedSet (Joyee Cheung) #58070 * (SEMVER-MAJOR) remove problematic comment from v8-internal (Michaël Zasso) #58070 * (SEMVER-MAJOR) patch V8 to avoid duplicated zlib symbol (Michaël Zasso) #54077 * (SEMVER-MAJOR) update V8 to 14.2.231.9 (Michaël Zasso) #60111 diagnostics_channel: * (SEMVER-MAJOR) ensure tracePromise consistency with non-Promises (René) #61766 doc: * (SEMVER-MAJOR) remove extensionless CJS exception for type:module packages (Matteo Collina) #62176 * (SEMVER-MAJOR) update supported Windows SDK version to 11 (Mike McCready) #61973 * (SEMVER-MAJOR) drop p8 and z13 support (Milad Fa) #61005 http: * (SEMVER-MAJOR) move writeHeader to end-of-life (Sebastian Beltran) #60635 * (SEMVER-MAJOR) fix handling of HTTP upgrades with bodies (Tim Perry) #60016 lib: * (SEMVER-MAJOR) return undefined for localStorage without file (Matteo Collina) #61333 lib,src: * (SEMVER-MAJOR) implement QuotaExceededError as DOMException-derived interface (Filip Skokan) #62293 module: * (SEMVER-MAJOR) runtime-deprecate module.register() (Geoffrey Booth) #62401 * (SEMVER-MAJOR) remove --experimental-transform-types (Marco Ippolito) #61803 src: * (SEMVER-MAJOR) replace uses of deprecated v8::External APIs (gahaas) #61898 * (SEMVER-MAJOR) stop using `v8::PropertyCallbackInfo<T>::This()` (Igor Sheludko) #61898 * (SEMVER-MAJOR) avoid deprecated Wasm API (Clemens Backes) #61898 * (SEMVER-MAJOR) avoid deprecated `FixedArray::Get` (Clemens Backes) #61898 * (SEMVER-MAJOR) update NODE_MODULE_VERSION to 147 (Michaël Zasso) #61898 * (SEMVER-MAJOR) remove deprecated and unused isolate fields (Michaël Zasso) #60488 * (SEMVER-MAJOR) update NODE_MODULE_VERSION to 144 (Michaël Zasso) #60488 * (SEMVER-MAJOR) include `node_api_types.h` instead of `node_api.h` in `node.h` (Anna Henningsen) #60496 * (SEMVER-MAJOR) update NODE_MODULE_VERSION to 142 (Michaël Zasso) #60111 stream: * (SEMVER-MAJOR) promote DEP0201 to runtime deprecation (René) #62173 * (SEMVER-MAJOR) move _stream_* to end-of-life (Sebastian Beltran) #60657 * (SEMVER-MAJOR) readable read one buffer at a time (Robert Nagy) #60441 * (SEMVER-MAJOR) preserve AsyncLocalStorage on finished only when needed (avcribl) #59873 test: * (SEMVER-MAJOR) skip wasm allocation tests in workers (Michaël Zasso) #61898 * (SEMVER-MAJOR) update wpt Wasm jsapi expectations (Michaël Zasso) #61898 * (SEMVER-MAJOR) support presence of Temporal global (Michaël Zasso) #61898 * (SEMVER-MAJOR) add type tags to uses of v8::External (gahaas) #61898 * (SEMVER-MAJOR) fix test-linux-perf-logger for V8 14.3 (Michaël Zasso) #60488 tools: * (SEMVER-MAJOR) remove v8_initializers_slow workaround from v8.gyp (Michaël Zasso) #61898 * (SEMVER-MAJOR) add Rust args to `tools/make-v8.sh` (Richard Lau) #61898 * (SEMVER-MAJOR) update V8 gypfiles for 14.6 (Michaël Zasso) #61898 * (SEMVER-MAJOR) update V8 gypfiles for 14.5 (Michaël Zasso) #61898 * (SEMVER-MAJOR) update V8 gypfiles for 14.4 (Michaël Zasso) #61898 util: * (SEMVER-MAJOR) mark proxied objects as such when inspecting them (Ruben Bridgewater) #61029 * (SEMVER-MAJOR) reduce TextEncoder.encodeInto function size (Yagiz Nizipli) #60339 PR-URL: #62526
assert: * (SEMVER-MAJOR) allow printf-style messages as assertion error (Ruben Bridgewater) #58849 build: * (SEMVER-MAJOR) bump GCC requirement to 13.2 (Michaël Zasso) #62555 * (SEMVER-MAJOR) enable Temporal by default (Richard Lau) #61806 * (SEMVER-MAJOR) enable V8_VERIFY_WRITE_BARRIERS in debug build (Joyee Cheung) #61898 * (SEMVER-MAJOR) reset embedder string to "-node.0" (Michaël Zasso) #61898 * (SEMVER-MAJOR) target Power 9 for AIX/IBM i (Richard Lau) #62296 * (SEMVER-MAJOR) drop support for Python 3.9 (Mike McCready) #61177 * (SEMVER-MAJOR) enable maglev for Linux on s390x (Richard Lau) #60863 * (SEMVER-MAJOR) reset embedder string to "-node.0" (Michaël Zasso) #60488 * (SEMVER-MAJOR) reset embedder string to "-node.0" (Michaël Zasso) #60111 build,test: * (CVE-2026-21717) (SEMVER-MAJOR) test array index hash collision (Joyee Cheung) #61898 build,win: * (SEMVER-MAJOR) fix Temporal build (StefanStojanovic) #61806 crypto: * (SEMVER-MAJOR) unify asymmetric key import through KeyObjectHandle::Init (Filip Skokan) #62499 * (SEMVER-MAJOR) runtime-deprecate DEP0203 and DEP0204 (Filip Skokan) #62453 * (SEMVER-MAJOR) decorate async crypto job errors with OpenSSL error details (Filip Skokan) #62348 * (SEMVER-MAJOR) default ML-KEM and ML-DSA pkcs8 export to seed-only format (Filip Skokan) #62178 * (SEMVER-MAJOR) move DEP0182 to End-of-Life (Tobias Nießen) #61084 * (SEMVER-MAJOR) fix DOMException name for non-extractable key error (Filip Skokan) #60830 deps: * (SEMVER-MAJOR) fix V8 race condition for AIX (Abdirahim Musse) #61898 * (SEMVER-MAJOR) V8: cherry-pick cd2c216e7658 (LuYahan) #61898 * (SEMVER-MAJOR) V8: backport 088b7112e7ab (Igor Sheludko) #61898 * (SEMVER-MAJOR) V8: cherry-pick 00f6e834029f (Joyee Cheung) #61898 * (SEMVER-MAJOR) V8: backport bef0d9c1bc90 (Joyee Cheung) #61898 * (SEMVER-MAJOR) V8: cherry-pick cf1bce40a5ef (Richard Lau) #61898 * (SEMVER-MAJOR) V8: cherry-pick daf4656ba85e (Milad Fa) #61898 * (SEMVER-MAJOR) V8: cherry-pick d83f479604c8 (Joyee Cheung) #61898 * (SEMVER-MAJOR) V8: cherry-pick edeb0a4fa181 (Joyee Cheung) #61898 * (SEMVER-MAJOR) V8: cherry-pick aa0b288f87cc (Richard Lau) #61898 * (SEMVER-MAJOR) patch V8 to fix Windows build (StefanStojanovic) #61898 * (SEMVER-MAJOR) V8: cherry-pick highway@989a498fdf3 (Richard Lau) #61898 * (SEMVER-MAJOR) support madvise(3C) across ALL illumos revisions (Dan McDonald) #61898 * (SEMVER-MAJOR) patch V8 for illumos (Dan McDonald) #61898 * (SEMVER-MAJOR) remove problematic comment from v8-internal (Michaël Zasso) #61898 * (SEMVER-MAJOR) define V8_PRESERVE_MOST as no-op on Windows (Stefan Stojanovic) #61898 * (SEMVER-MAJOR) patch V8 to avoid duplicated zlib symbol (Michaël Zasso) #61898 * (SEMVER-MAJOR) update V8 to 14.6.202.33 (Michaël Zasso) #61898 * (SEMVER-MAJOR) update undici to 8.0.2 (Node.js GitHub Bot) #62384 * (SEMVER-MAJOR) V8: backport 151d0a44a1b2 (Abdirahim Musse) #60488 * (SEMVER-MAJOR) V8: cherry-pick 47800791b35c (Jakob Kummerow) #60488 * (SEMVER-MAJOR) patch V8 for illumos (Dan McDonald) #59805 * (SEMVER-MAJOR) use std::map in MSVC STL for EphemeronRememberedSet (Joyee Cheung) #58070 * (SEMVER-MAJOR) remove problematic comment from v8-internal (Michaël Zasso) #58070 * (SEMVER-MAJOR) patch V8 to avoid duplicated zlib symbol (Michaël Zasso) #54077 * (SEMVER-MAJOR) update V8 to 14.3.127.12 (Michaël Zasso) #60488 * (SEMVER-MAJOR) V8: cherry-pick ff34ae20c8e3 (Chengzhong Wu) #60111 * (SEMVER-MAJOR) V8: backport fed47445bbdd (Abdirahim Musse) #60111 * (SEMVER-MAJOR) patch V8 for illumos (Dan McDonald) #59805 * (SEMVER-MAJOR) use std::map in MSVC STL for EphemeronRememberedSet (Joyee Cheung) #58070 * (SEMVER-MAJOR) remove problematic comment from v8-internal (Michaël Zasso) #58070 * (SEMVER-MAJOR) patch V8 to avoid duplicated zlib symbol (Michaël Zasso) #54077 * (SEMVER-MAJOR) update V8 to 14.2.231.9 (Michaël Zasso) #60111 diagnostics_channel: * (SEMVER-MAJOR) ensure tracePromise consistency with non-Promises (René) #61766 doc: * (SEMVER-MAJOR) remove extensionless CJS exception for type:module packages (Matteo Collina) #62176 * (SEMVER-MAJOR) update supported Windows SDK version to 11 (Mike McCready) #61973 * (SEMVER-MAJOR) drop p8 and z13 support (Milad Fa) #61005 http: * (SEMVER-MAJOR) move writeHeader to end-of-life (Sebastian Beltran) #60635 * (SEMVER-MAJOR) fix handling of HTTP upgrades with bodies (Tim Perry) #60016 lib: * (SEMVER-MAJOR) return undefined for localStorage without file (Matteo Collina) #61333 lib,src: * (SEMVER-MAJOR) implement QuotaExceededError as DOMException-derived interface (Filip Skokan) #62293 module: * (SEMVER-MAJOR) runtime-deprecate module.register() (Geoffrey Booth) #62401 * (SEMVER-MAJOR) remove --experimental-transform-types (Marco Ippolito) #61803 src: * (SEMVER-MAJOR) replace uses of deprecated v8::External APIs (gahaas) #61898 * (SEMVER-MAJOR) stop using `v8::PropertyCallbackInfo<T>::This()` (Igor Sheludko) #61898 * (SEMVER-MAJOR) avoid deprecated Wasm API (Clemens Backes) #61898 * (SEMVER-MAJOR) avoid deprecated `FixedArray::Get` (Clemens Backes) #61898 * (SEMVER-MAJOR) update NODE_MODULE_VERSION to 147 (Michaël Zasso) #61898 * (SEMVER-MAJOR) remove deprecated and unused isolate fields (Michaël Zasso) #60488 * (SEMVER-MAJOR) update NODE_MODULE_VERSION to 144 (Michaël Zasso) #60488 * (SEMVER-MAJOR) include `node_api_types.h` instead of `node_api.h` in `node.h` (Anna Henningsen) #60496 * (SEMVER-MAJOR) update NODE_MODULE_VERSION to 142 (Michaël Zasso) #60111 stream: * (SEMVER-MAJOR) promote DEP0201 to runtime deprecation (René) #62173 * (SEMVER-MAJOR) move _stream_* to end-of-life (Sebastian Beltran) #60657 * (SEMVER-MAJOR) readable read one buffer at a time (Robert Nagy) #60441 * (SEMVER-MAJOR) preserve AsyncLocalStorage on finished only when needed (avcribl) #59873 test: * (SEMVER-MAJOR) skip wasm allocation tests in workers (Michaël Zasso) #61898 * (SEMVER-MAJOR) update wpt Wasm jsapi expectations (Michaël Zasso) #61898 * (SEMVER-MAJOR) support presence of Temporal global (Michaël Zasso) #61898 * (SEMVER-MAJOR) add type tags to uses of v8::External (gahaas) #61898 * (SEMVER-MAJOR) fix test-linux-perf-logger for V8 14.3 (Michaël Zasso) #60488 tools: * (SEMVER-MAJOR) remove v8_initializers_slow workaround from v8.gyp (Michaël Zasso) #61898 * (SEMVER-MAJOR) add Rust args to `tools/make-v8.sh` (Richard Lau) #61898 * (SEMVER-MAJOR) update V8 gypfiles for 14.6 (Michaël Zasso) #61898 * (SEMVER-MAJOR) update V8 gypfiles for 14.5 (Michaël Zasso) #61898 * (SEMVER-MAJOR) update V8 gypfiles for 14.4 (Michaël Zasso) #61898 util: * (SEMVER-MAJOR) mark proxied objects as such when inspecting them (Ruben Bridgewater) #61029 * (SEMVER-MAJOR) reduce TextEncoder.encodeInto function size (Yagiz Nizipli) #60339 PR-URL: #62526
assert: * (SEMVER-MAJOR) allow printf-style messages as assertion error (Ruben Bridgewater) #58849 build: * (SEMVER-MAJOR) bump GCC requirement to 13.2 (Michaël Zasso) #62555 * (SEMVER-MAJOR) enable Temporal by default (Richard Lau) #61806 * (SEMVER-MAJOR) enable V8_VERIFY_WRITE_BARRIERS in debug build (Joyee Cheung) #61898 * (SEMVER-MAJOR) reset embedder string to "-node.0" (Michaël Zasso) #61898 * (SEMVER-MAJOR) target Power 9 for AIX/IBM i (Richard Lau) #62296 * (SEMVER-MAJOR) drop support for Python 3.9 (Mike McCready) #61177 * (SEMVER-MAJOR) enable maglev for Linux on s390x (Richard Lau) #60863 * (SEMVER-MAJOR) reset embedder string to "-node.0" (Michaël Zasso) #60488 * (SEMVER-MAJOR) reset embedder string to "-node.0" (Michaël Zasso) #60111 build,test: * (CVE-2026-21717) (SEMVER-MAJOR) test array index hash collision (Joyee Cheung) #61898 build,win: * (SEMVER-MAJOR) fix Temporal build (StefanStojanovic) #61806 crypto: * (SEMVER-MAJOR) unify asymmetric key import through KeyObjectHandle::Init (Filip Skokan) #62499 * (SEMVER-MAJOR) runtime-deprecate DEP0203 and DEP0204 (Filip Skokan) #62453 * (SEMVER-MAJOR) decorate async crypto job errors with OpenSSL error details (Filip Skokan) #62348 * (SEMVER-MAJOR) default ML-KEM and ML-DSA pkcs8 export to seed-only format (Filip Skokan) #62178 * (SEMVER-MAJOR) move DEP0182 to End-of-Life (Tobias Nießen) #61084 * (SEMVER-MAJOR) fix DOMException name for non-extractable key error (Filip Skokan) #60830 deps: * (SEMVER-MAJOR) fix V8 race condition for AIX (Abdirahim Musse) #61898 * (SEMVER-MAJOR) V8: cherry-pick cd2c216e7658 (LuYahan) #61898 * (SEMVER-MAJOR) V8: backport 088b7112e7ab (Igor Sheludko) #61898 * (SEMVER-MAJOR) V8: cherry-pick 00f6e834029f (Joyee Cheung) #61898 * (SEMVER-MAJOR) V8: backport bef0d9c1bc90 (Joyee Cheung) #61898 * (SEMVER-MAJOR) V8: cherry-pick cf1bce40a5ef (Richard Lau) #61898 * (SEMVER-MAJOR) V8: cherry-pick daf4656ba85e (Milad Fa) #61898 * (SEMVER-MAJOR) V8: cherry-pick d83f479604c8 (Joyee Cheung) #61898 * (SEMVER-MAJOR) V8: cherry-pick edeb0a4fa181 (Joyee Cheung) #61898 * (SEMVER-MAJOR) V8: cherry-pick aa0b288f87cc (Richard Lau) #61898 * (SEMVER-MAJOR) patch V8 to fix Windows build (StefanStojanovic) #61898 * (SEMVER-MAJOR) V8: cherry-pick highway@989a498fdf3 (Richard Lau) #61898 * (SEMVER-MAJOR) support madvise(3C) across ALL illumos revisions (Dan McDonald) #61898 * (SEMVER-MAJOR) patch V8 for illumos (Dan McDonald) #61898 * (SEMVER-MAJOR) remove problematic comment from v8-internal (Michaël Zasso) #61898 * (SEMVER-MAJOR) define V8_PRESERVE_MOST as no-op on Windows (Stefan Stojanovic) #61898 * (SEMVER-MAJOR) patch V8 to avoid duplicated zlib symbol (Michaël Zasso) #61898 * (SEMVER-MAJOR) update V8 to 14.6.202.33 (Michaël Zasso) #61898 * (SEMVER-MAJOR) update undici to 8.0.2 (Node.js GitHub Bot) #62384 * (SEMVER-MAJOR) V8: backport 151d0a44a1b2 (Abdirahim Musse) #60488 * (SEMVER-MAJOR) V8: cherry-pick 47800791b35c (Jakob Kummerow) #60488 * (SEMVER-MAJOR) patch V8 for illumos (Dan McDonald) #59805 * (SEMVER-MAJOR) use std::map in MSVC STL for EphemeronRememberedSet (Joyee Cheung) #58070 * (SEMVER-MAJOR) remove problematic comment from v8-internal (Michaël Zasso) #58070 * (SEMVER-MAJOR) patch V8 to avoid duplicated zlib symbol (Michaël Zasso) #54077 * (SEMVER-MAJOR) update V8 to 14.3.127.12 (Michaël Zasso) #60488 * (SEMVER-MAJOR) V8: cherry-pick ff34ae20c8e3 (Chengzhong Wu) #60111 * (SEMVER-MAJOR) V8: backport fed47445bbdd (Abdirahim Musse) #60111 * (SEMVER-MAJOR) patch V8 for illumos (Dan McDonald) #59805 * (SEMVER-MAJOR) use std::map in MSVC STL for EphemeronRememberedSet (Joyee Cheung) #58070 * (SEMVER-MAJOR) remove problematic comment from v8-internal (Michaël Zasso) #58070 * (SEMVER-MAJOR) patch V8 to avoid duplicated zlib symbol (Michaël Zasso) #54077 * (SEMVER-MAJOR) update V8 to 14.2.231.9 (Michaël Zasso) #60111 diagnostics_channel: * (SEMVER-MAJOR) ensure tracePromise consistency with non-Promises (René) #61766 doc: * (SEMVER-MAJOR) remove extensionless CJS exception for type:module packages (Matteo Collina) #62176 * (SEMVER-MAJOR) update supported Windows SDK version to 11 (Mike McCready) #61973 * (SEMVER-MAJOR) drop p8 and z13 support (Milad Fa) #61005 http: * (SEMVER-MAJOR) move writeHeader to end-of-life (Sebastian Beltran) #60635 * (SEMVER-MAJOR) fix handling of HTTP upgrades with bodies (Tim Perry) #60016 lib: * (SEMVER-MAJOR) return undefined for localStorage without file (Matteo Collina) #61333 lib,src: * (SEMVER-MAJOR) implement QuotaExceededError as DOMException-derived interface (Filip Skokan) #62293 module: * (SEMVER-MAJOR) runtime-deprecate module.register() (Geoffrey Booth) #62401 * (SEMVER-MAJOR) remove --experimental-transform-types (Marco Ippolito) #61803 src: * (SEMVER-MAJOR) replace uses of deprecated v8::External APIs (gahaas) #61898 * (SEMVER-MAJOR) stop using `v8::PropertyCallbackInfo<T>::This()` (Igor Sheludko) #61898 * (SEMVER-MAJOR) avoid deprecated Wasm API (Clemens Backes) #61898 * (SEMVER-MAJOR) avoid deprecated `FixedArray::Get` (Clemens Backes) #61898 * (SEMVER-MAJOR) update NODE_MODULE_VERSION to 147 (Michaël Zasso) #61898 * (SEMVER-MAJOR) remove deprecated and unused isolate fields (Michaël Zasso) #60488 * (SEMVER-MAJOR) update NODE_MODULE_VERSION to 144 (Michaël Zasso) #60488 * (SEMVER-MAJOR) include `node_api_types.h` instead of `node_api.h` in `node.h` (Anna Henningsen) #60496 * (SEMVER-MAJOR) update NODE_MODULE_VERSION to 142 (Michaël Zasso) #60111 stream: * (SEMVER-MAJOR) promote DEP0201 to runtime deprecation (René) #62173 * (SEMVER-MAJOR) move _stream_* to end-of-life (Sebastian Beltran) #60657 * (SEMVER-MAJOR) readable read one buffer at a time (Robert Nagy) #60441 * (SEMVER-MAJOR) preserve AsyncLocalStorage on finished only when needed (avcribl) #59873 test: * (SEMVER-MAJOR) skip wasm allocation tests in workers (Michaël Zasso) #61898 * (SEMVER-MAJOR) update wpt Wasm jsapi expectations (Michaël Zasso) #61898 * (SEMVER-MAJOR) support presence of Temporal global (Michaël Zasso) #61898 * (SEMVER-MAJOR) add type tags to uses of v8::External (gahaas) #61898 * (SEMVER-MAJOR) fix test-linux-perf-logger for V8 14.3 (Michaël Zasso) #60488 tools: * (SEMVER-MAJOR) remove v8_initializers_slow workaround from v8.gyp (Michaël Zasso) #61898 * (SEMVER-MAJOR) add Rust args to `tools/make-v8.sh` (Richard Lau) #61898 * (SEMVER-MAJOR) update V8 gypfiles for 14.6 (Michaël Zasso) #61898 * (SEMVER-MAJOR) update V8 gypfiles for 14.5 (Michaël Zasso) #61898 * (SEMVER-MAJOR) update V8 gypfiles for 14.4 (Michaël Zasso) #61898 util: * (SEMVER-MAJOR) mark proxied objects as such when inspecting them (Ruben Bridgewater) #61029 * (SEMVER-MAJOR) reduce TextEncoder.encodeInto function size (Yagiz Nizipli) #60339 PR-URL: #62526
assert: * (SEMVER-MAJOR) allow printf-style messages as assertion error (Ruben Bridgewater) #58849 build: * (SEMVER-MAJOR) bump GCC requirement to 13.2 (Michaël Zasso) #62555 * (SEMVER-MAJOR) enable Temporal by default (Richard Lau) #61806 * (SEMVER-MAJOR) enable V8_VERIFY_WRITE_BARRIERS in debug build (Joyee Cheung) #61898 * (SEMVER-MAJOR) reset embedder string to "-node.0" (Michaël Zasso) #61898 * (SEMVER-MAJOR) target Power 9 for AIX/IBM i (Richard Lau) #62296 * (SEMVER-MAJOR) drop support for Python 3.9 (Mike McCready) #61177 * (SEMVER-MAJOR) enable maglev for Linux on s390x (Richard Lau) #60863 * (SEMVER-MAJOR) reset embedder string to "-node.0" (Michaël Zasso) #60488 * (SEMVER-MAJOR) reset embedder string to "-node.0" (Michaël Zasso) #60111 build,test: * (CVE-2026-21717) (SEMVER-MAJOR) test array index hash collision (Joyee Cheung) #61898 build,win: * (SEMVER-MAJOR) fix Temporal build (StefanStojanovic) #61806 crypto: * (SEMVER-MAJOR) unify asymmetric key import through KeyObjectHandle::Init (Filip Skokan) #62499 * (SEMVER-MAJOR) runtime-deprecate DEP0203 and DEP0204 (Filip Skokan) #62453 * (SEMVER-MAJOR) decorate async crypto job errors with OpenSSL error details (Filip Skokan) #62348 * (SEMVER-MAJOR) default ML-KEM and ML-DSA pkcs8 export to seed-only format (Filip Skokan) #62178 * (SEMVER-MAJOR) move DEP0182 to End-of-Life (Tobias Nießen) #61084 * (SEMVER-MAJOR) fix DOMException name for non-extractable key error (Filip Skokan) #60830 deps: * (SEMVER-MAJOR) fix V8 race condition for AIX (Abdirahim Musse) #61898 * (SEMVER-MAJOR) V8: cherry-pick cd2c216e7658 (LuYahan) #61898 * (SEMVER-MAJOR) V8: backport 088b7112e7ab (Igor Sheludko) #61898 * (SEMVER-MAJOR) V8: cherry-pick 00f6e834029f (Joyee Cheung) #61898 * (SEMVER-MAJOR) V8: backport bef0d9c1bc90 (Joyee Cheung) #61898 * (SEMVER-MAJOR) V8: cherry-pick cf1bce40a5ef (Richard Lau) #61898 * (SEMVER-MAJOR) V8: cherry-pick daf4656ba85e (Milad Fa) #61898 * (SEMVER-MAJOR) V8: cherry-pick d83f479604c8 (Joyee Cheung) #61898 * (SEMVER-MAJOR) V8: cherry-pick edeb0a4fa181 (Joyee Cheung) #61898 * (SEMVER-MAJOR) V8: cherry-pick aa0b288f87cc (Richard Lau) #61898 * (SEMVER-MAJOR) patch V8 to fix Windows build (StefanStojanovic) #61898 * (SEMVER-MAJOR) V8: cherry-pick highway@989a498fdf3 (Richard Lau) #61898 * (SEMVER-MAJOR) support madvise(3C) across ALL illumos revisions (Dan McDonald) #61898 * (SEMVER-MAJOR) patch V8 for illumos (Dan McDonald) #61898 * (SEMVER-MAJOR) remove problematic comment from v8-internal (Michaël Zasso) #61898 * (SEMVER-MAJOR) define V8_PRESERVE_MOST as no-op on Windows (Stefan Stojanovic) #61898 * (SEMVER-MAJOR) patch V8 to avoid duplicated zlib symbol (Michaël Zasso) #61898 * (SEMVER-MAJOR) update V8 to 14.6.202.33 (Michaël Zasso) #61898 * (SEMVER-MAJOR) update undici to 8.0.2 (Node.js GitHub Bot) #62384 * (SEMVER-MAJOR) V8: backport 151d0a44a1b2 (Abdirahim Musse) #60488 * (SEMVER-MAJOR) V8: cherry-pick 47800791b35c (Jakob Kummerow) #60488 * (SEMVER-MAJOR) patch V8 for illumos (Dan McDonald) #59805 * (SEMVER-MAJOR) use std::map in MSVC STL for EphemeronRememberedSet (Joyee Cheung) #58070 * (SEMVER-MAJOR) remove problematic comment from v8-internal (Michaël Zasso) #58070 * (SEMVER-MAJOR) patch V8 to avoid duplicated zlib symbol (Michaël Zasso) #54077 * (SEMVER-MAJOR) update V8 to 14.3.127.12 (Michaël Zasso) #60488 * (SEMVER-MAJOR) V8: cherry-pick ff34ae20c8e3 (Chengzhong Wu) #60111 * (SEMVER-MAJOR) V8: backport fed47445bbdd (Abdirahim Musse) #60111 * (SEMVER-MAJOR) patch V8 for illumos (Dan McDonald) #59805 * (SEMVER-MAJOR) use std::map in MSVC STL for EphemeronRememberedSet (Joyee Cheung) #58070 * (SEMVER-MAJOR) remove problematic comment from v8-internal (Michaël Zasso) #58070 * (SEMVER-MAJOR) patch V8 to avoid duplicated zlib symbol (Michaël Zasso) #54077 * (SEMVER-MAJOR) update V8 to 14.2.231.9 (Michaël Zasso) #60111 diagnostics_channel: * (SEMVER-MAJOR) ensure tracePromise consistency with non-Promises (René) #61766 doc: * (SEMVER-MAJOR) remove extensionless CJS exception for type:module packages (Matteo Collina) #62176 * (SEMVER-MAJOR) update supported Windows SDK version to 11 (Mike McCready) #61973 * (SEMVER-MAJOR) drop p8 and z13 support (Milad Fa) #61005 http: * (SEMVER-MAJOR) move writeHeader to end-of-life (Sebastian Beltran) #60635 * (SEMVER-MAJOR) fix handling of HTTP upgrades with bodies (Tim Perry) #60016 lib: * (SEMVER-MAJOR) return undefined for localStorage without file (Matteo Collina) #61333 lib,src: * (SEMVER-MAJOR) implement QuotaExceededError as DOMException-derived interface (Filip Skokan) #62293 module: * (SEMVER-MAJOR) runtime-deprecate module.register() (Geoffrey Booth) #62401 * (SEMVER-MAJOR) remove --experimental-transform-types (Marco Ippolito) #61803 src: * (SEMVER-MAJOR) replace uses of deprecated v8::External APIs (gahaas) #61898 * (SEMVER-MAJOR) stop using `v8::PropertyCallbackInfo<T>::This()` (Igor Sheludko) #61898 * (SEMVER-MAJOR) avoid deprecated Wasm API (Clemens Backes) #61898 * (SEMVER-MAJOR) avoid deprecated `FixedArray::Get` (Clemens Backes) #61898 * (SEMVER-MAJOR) update NODE_MODULE_VERSION to 147 (Michaël Zasso) #61898 * (SEMVER-MAJOR) remove deprecated and unused isolate fields (Michaël Zasso) #60488 * (SEMVER-MAJOR) update NODE_MODULE_VERSION to 144 (Michaël Zasso) #60488 * (SEMVER-MAJOR) include `node_api_types.h` instead of `node_api.h` in `node.h` (Anna Henningsen) #60496 * (SEMVER-MAJOR) update NODE_MODULE_VERSION to 142 (Michaël Zasso) #60111 stream: * (SEMVER-MAJOR) promote DEP0201 to runtime deprecation (René) #62173 * (SEMVER-MAJOR) move _stream_* to end-of-life (Sebastian Beltran) #60657 * (SEMVER-MAJOR) readable read one buffer at a time (Robert Nagy) #60441 * (SEMVER-MAJOR) preserve AsyncLocalStorage on finished only when needed (avcribl) #59873 test: * (SEMVER-MAJOR) skip wasm allocation tests in workers (Michaël Zasso) #61898 * (SEMVER-MAJOR) update wpt Wasm jsapi expectations (Michaël Zasso) #61898 * (SEMVER-MAJOR) support presence of Temporal global (Michaël Zasso) #61898 * (SEMVER-MAJOR) add type tags to uses of v8::External (gahaas) #61898 * (SEMVER-MAJOR) fix test-linux-perf-logger for V8 14.3 (Michaël Zasso) #60488 tools: * (SEMVER-MAJOR) remove v8_initializers_slow workaround from v8.gyp (Michaël Zasso) #61898 * (SEMVER-MAJOR) add Rust args to `tools/make-v8.sh` (Richard Lau) #61898 * (SEMVER-MAJOR) update V8 gypfiles for 14.6 (Michaël Zasso) #61898 * (SEMVER-MAJOR) update V8 gypfiles for 14.5 (Michaël Zasso) #61898 * (SEMVER-MAJOR) update V8 gypfiles for 14.4 (Michaël Zasso) #61898 util: * (SEMVER-MAJOR) mark proxied objects as such when inspecting them (Ruben Bridgewater) #61029 * (SEMVER-MAJOR) reduce TextEncoder.encodeInto function size (Yagiz Nizipli) #60339 PR-URL: #62526
assert: * (SEMVER-MAJOR) allow printf-style messages as assertion error (Ruben Bridgewater) #58849 build: * (SEMVER-MAJOR) bump GCC requirement to 13.2 (Michaël Zasso) #62555 * (SEMVER-MAJOR) enable Temporal by default (Richard Lau) #61806 * (SEMVER-MAJOR) enable V8_VERIFY_WRITE_BARRIERS in debug build (Joyee Cheung) #61898 * (SEMVER-MAJOR) reset embedder string to "-node.0" (Michaël Zasso) #61898 * (SEMVER-MAJOR) target Power 9 for AIX/IBM i (Richard Lau) #62296 * (SEMVER-MAJOR) drop support for Python 3.9 (Mike McCready) #61177 * (SEMVER-MAJOR) enable maglev for Linux on s390x (Richard Lau) #60863 * (SEMVER-MAJOR) reset embedder string to "-node.0" (Michaël Zasso) #60488 * (SEMVER-MAJOR) reset embedder string to "-node.0" (Michaël Zasso) #60111 build,test: * (CVE-2026-21717) (SEMVER-MAJOR) test array index hash collision (Joyee Cheung) #61898 build,win: * (SEMVER-MAJOR) fix Temporal build (StefanStojanovic) #61806 crypto: * (SEMVER-MAJOR) unify asymmetric key import through KeyObjectHandle::Init (Filip Skokan) #62499 * (SEMVER-MAJOR) runtime-deprecate DEP0203 and DEP0204 (Filip Skokan) #62453 * (SEMVER-MAJOR) decorate async crypto job errors with OpenSSL error details (Filip Skokan) #62348 * (SEMVER-MAJOR) default ML-KEM and ML-DSA pkcs8 export to seed-only format (Filip Skokan) #62178 * (SEMVER-MAJOR) move DEP0182 to End-of-Life (Tobias Nießen) #61084 * (SEMVER-MAJOR) fix DOMException name for non-extractable key error (Filip Skokan) #60830 deps: * (SEMVER-MAJOR) fix V8 race condition for AIX (Abdirahim Musse) #61898 * (SEMVER-MAJOR) V8: cherry-pick cd2c216e7658 (LuYahan) #61898 * (SEMVER-MAJOR) V8: backport 088b7112e7ab (Igor Sheludko) #61898 * (SEMVER-MAJOR) V8: cherry-pick 00f6e834029f (Joyee Cheung) #61898 * (SEMVER-MAJOR) V8: backport bef0d9c1bc90 (Joyee Cheung) #61898 * (SEMVER-MAJOR) V8: cherry-pick cf1bce40a5ef (Richard Lau) #61898 * (SEMVER-MAJOR) V8: cherry-pick daf4656ba85e (Milad Fa) #61898 * (SEMVER-MAJOR) V8: cherry-pick d83f479604c8 (Joyee Cheung) #61898 * (SEMVER-MAJOR) V8: cherry-pick edeb0a4fa181 (Joyee Cheung) #61898 * (SEMVER-MAJOR) V8: cherry-pick aa0b288f87cc (Richard Lau) #61898 * (SEMVER-MAJOR) patch V8 to fix Windows build (StefanStojanovic) #61898 * (SEMVER-MAJOR) V8: cherry-pick highway@989a498fdf3 (Richard Lau) #61898 * (SEMVER-MAJOR) support madvise(3C) across ALL illumos revisions (Dan McDonald) #61898 * (SEMVER-MAJOR) patch V8 for illumos (Dan McDonald) #61898 * (SEMVER-MAJOR) remove problematic comment from v8-internal (Michaël Zasso) #61898 * (SEMVER-MAJOR) define V8_PRESERVE_MOST as no-op on Windows (Stefan Stojanovic) #61898 * (SEMVER-MAJOR) patch V8 to avoid duplicated zlib symbol (Michaël Zasso) #61898 * (SEMVER-MAJOR) update V8 to 14.6.202.33 (Michaël Zasso) #61898 * (SEMVER-MAJOR) update undici to 8.0.2 (Node.js GitHub Bot) #62384 * (SEMVER-MAJOR) V8: backport 151d0a44a1b2 (Abdirahim Musse) #60488 * (SEMVER-MAJOR) V8: cherry-pick 47800791b35c (Jakob Kummerow) #60488 * (SEMVER-MAJOR) patch V8 for illumos (Dan McDonald) #59805 * (SEMVER-MAJOR) use std::map in MSVC STL for EphemeronRememberedSet (Joyee Cheung) #58070 * (SEMVER-MAJOR) remove problematic comment from v8-internal (Michaël Zasso) #58070 * (SEMVER-MAJOR) patch V8 to avoid duplicated zlib symbol (Michaël Zasso) #54077 * (SEMVER-MAJOR) update V8 to 14.3.127.12 (Michaël Zasso) #60488 * (SEMVER-MAJOR) V8: cherry-pick ff34ae20c8e3 (Chengzhong Wu) #60111 * (SEMVER-MAJOR) V8: backport fed47445bbdd (Abdirahim Musse) #60111 * (SEMVER-MAJOR) patch V8 for illumos (Dan McDonald) #59805 * (SEMVER-MAJOR) use std::map in MSVC STL for EphemeronRememberedSet (Joyee Cheung) #58070 * (SEMVER-MAJOR) remove problematic comment from v8-internal (Michaël Zasso) #58070 * (SEMVER-MAJOR) patch V8 to avoid duplicated zlib symbol (Michaël Zasso) #54077 * (SEMVER-MAJOR) update V8 to 14.2.231.9 (Michaël Zasso) #60111 diagnostics_channel: * (SEMVER-MAJOR) ensure tracePromise consistency with non-Promises (René) #61766 doc: * (SEMVER-MAJOR) remove extensionless CJS exception for type:module packages (Matteo Collina) #62176 * (SEMVER-MAJOR) update supported Windows SDK version to 11 (Mike McCready) #61973 * (SEMVER-MAJOR) drop p8 and z13 support (Milad Fa) #61005 http: * (SEMVER-MAJOR) move writeHeader to end-of-life (Sebastian Beltran) #60635 * (SEMVER-MAJOR) fix handling of HTTP upgrades with bodies (Tim Perry) #60016 lib: * (SEMVER-MAJOR) return undefined for localStorage without file (Matteo Collina) #61333 lib,src: * (SEMVER-MAJOR) implement QuotaExceededError as DOMException-derived interface (Filip Skokan) #62293 module: * (SEMVER-MAJOR) runtime-deprecate module.register() (Geoffrey Booth) #62401 * (SEMVER-MAJOR) remove --experimental-transform-types (Marco Ippolito) #61803 src: * (SEMVER-MAJOR) replace uses of deprecated v8::External APIs (gahaas) #61898 * (SEMVER-MAJOR) stop using `v8::PropertyCallbackInfo<T>::This()` (Igor Sheludko) #61898 * (SEMVER-MAJOR) avoid deprecated Wasm API (Clemens Backes) #61898 * (SEMVER-MAJOR) avoid deprecated `FixedArray::Get` (Clemens Backes) #61898 * (SEMVER-MAJOR) update NODE_MODULE_VERSION to 147 (Michaël Zasso) #61898 * (SEMVER-MAJOR) remove deprecated and unused isolate fields (Michaël Zasso) #60488 * (SEMVER-MAJOR) update NODE_MODULE_VERSION to 144 (Michaël Zasso) #60488 * (SEMVER-MAJOR) include `node_api_types.h` instead of `node_api.h` in `node.h` (Anna Henningsen) #60496 * (SEMVER-MAJOR) update NODE_MODULE_VERSION to 142 (Michaël Zasso) #60111 stream: * (SEMVER-MAJOR) promote DEP0201 to runtime deprecation (René) #62173 * (SEMVER-MAJOR) move _stream_* to end-of-life (Sebastian Beltran) #60657 * (SEMVER-MAJOR) readable read one buffer at a time (Robert Nagy) #60441 * (SEMVER-MAJOR) preserve AsyncLocalStorage on finished only when needed (avcribl) #59873 test: * (SEMVER-MAJOR) skip wasm allocation tests in workers (Michaël Zasso) #61898 * (SEMVER-MAJOR) update wpt Wasm jsapi expectations (Michaël Zasso) #61898 * (SEMVER-MAJOR) support presence of Temporal global (Michaël Zasso) #61898 * (SEMVER-MAJOR) add type tags to uses of v8::External (gahaas) #61898 * (SEMVER-MAJOR) fix test-linux-perf-logger for V8 14.3 (Michaël Zasso) #60488 tools: * (SEMVER-MAJOR) remove v8_initializers_slow workaround from v8.gyp (Michaël Zasso) #61898 * (SEMVER-MAJOR) add Rust args to `tools/make-v8.sh` (Richard Lau) #61898 * (SEMVER-MAJOR) update V8 gypfiles for 14.6 (Michaël Zasso) #61898 * (SEMVER-MAJOR) update V8 gypfiles for 14.5 (Michaël Zasso) #61898 * (SEMVER-MAJOR) update V8 gypfiles for 14.4 (Michaël Zasso) #61898 util: * (SEMVER-MAJOR) mark proxied objects as such when inspecting them (Ruben Bridgewater) #61029 * (SEMVER-MAJOR) reduce TextEncoder.encodeInto function size (Yagiz Nizipli) #60339 PR-URL: #62526
The changes optimize the
end-of-stream.jsmodule to only preserve AsyncLocalStorage context when it's actually needed, improving performance by avoiding ALS overhead in the common case where no async context tracking is active.The performance test results with this patch:
The same perf test results with the current nodejs:
You can compare and see the noticeable performance improvement with this patch.