-
-
Couldn't load subscription status.
- Fork 33.6k
2025-10-28, Version 25.1.0 (Current) #60436
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Conversation
PR-URL: #60219 Reviewed-By: Michaël Zasso <[email protected]> Reviewed-By: Luigi Pinca <[email protected]> Reviewed-By: Colin Ihrig <[email protected]> Reviewed-By: Chengzhong Wu <[email protected]> Reviewed-By: Chemi Atlow <[email protected]>
Refs: 5623194 PR-URL: #60223 Reviewed-By: James M Snell <[email protected]> Reviewed-By: Chengzhong Wu <[email protected]> Reviewed-By: Darshan Sen <[email protected]> Reviewed-By: Anna Henningsen <[email protected]> Reviewed-By: Luigi Pinca <[email protected]> Reviewed-By: Colin Ihrig <[email protected]> Reviewed-By: Chemi Atlow <[email protected]>
PR-URL: #60224 Reviewed-By: Chengzhong Wu <[email protected]> Reviewed-By: Luigi Pinca <[email protected]> Reviewed-By: Colin Ihrig <[email protected]> Reviewed-By: Ulises Gascón <[email protected]>
PR-URL: #60225 Reviewed-By: Chengzhong Wu <[email protected]> Reviewed-By: Darshan Sen <[email protected]> Reviewed-By: Colin Ihrig <[email protected]>
Signed-off-by: RafaelGSS <[email protected]> Co-Authored-By: RafaelGSS <[email protected]> PR-URL: #59778 Reviewed-By: Robert Nagy <[email protected]> Reviewed-By: Tim Perry <[email protected]> Reviewed-By: Gerhard Stöbich <[email protected]> Reviewed-By: Matteo Collina <[email protected]> Reviewed-By: James M Snell <[email protected]> Reviewed-By: Yagiz Nizipli <[email protected]>
This relaxes the validation in sync hooks so that it accepts the quirky nullish source returned by the default step of the async loader when the module being loaded is CommonJS. When there are no customization hooks registered, a saner synchronous default load step is used to use a property instead of a reset nullish source to signify that the module should go through the CJS monkey patching routes and reduce excessive reloading from disk. PR-URL: #59929 Fixes: #59384 Fixes: #57327 Refs: #59666 Refs: https://github.com/dygabo/load_module_test Reviewed-By: Geoffrey Booth <[email protected]> Reviewed-By: Jacob Smith <[email protected]>
By default, the total buffered payloads are limited to 100MB, and 5MB for each single request. The oldest unused requests will be evicted first when the buffer size limit has been exceeded. PR-URL: #60236 Refs: https://chromedevtools.github.io/devtools-protocol/tot/Network/#method-enable Reviewed-By: Ryuhei Shima <[email protected]> Reviewed-By: Darshan Sen <[email protected]>
Original commit message:
[api] Add index-based module resolution in InstantiateModule()
Add new InstantiateModule() overload that allows embedders to identify
modules requests by index in the module requests array rather than
using specifier and import attributes. When embedders want to fetch
all the modules using information from module->GetModuleRequests()
before calling InstantiateModule() instead of having to do the fetching
inside the InstantiateModule() callback, they could just maintain a simple array of modules indexed by module request positions and
look up the fetched the module by index in the new callback.
Previously this has to be done by mapping from specifier and import
attributes to module objects cached on the embedder side, leading to an overhead to hash the specifier and import attributes for each module request.
Refs: #59396
Bug: 435317398
Change-Id: Ie017d2f3ccc605e0f58aa423504b5fa5fdbcc633
Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/6804466
Commit-Queue: Joyee Cheung <[email protected]>
Reviewed-by: Camillo Bruni <[email protected]>
Cr-Commit-Position: refs/heads/main@{#102613}
Refs: v8/v8@3d0f462
PR-URL: #59396
Refs: https://chromium-review.googlesource.com/c/v8/v8/+/6804466
Reviewed-By: Chengzhong Wu <[email protected]>
PR-URL: #59396 Refs: https://chromium-review.googlesource.com/c/v8/v8/+/6804466 Reviewed-By: Chengzhong Wu <[email protected]>
This makes use of a new module resolution V8 API that passes in an index to the module request array to identify the module request, which simplifies the module linking process. PR-URL: #59396 Refs: https://chromium-review.googlesource.com/c/v8/v8/+/6804466 Reviewed-By: Chengzhong Wu <[email protected]>
PR-URL: #60261 Refs: https://chromium-review.googlesource.com/c/v8/v8/+/7017517 Reviewed-By: Anna Henningsen <[email protected]> Reviewed-By: Joyee Cheung <[email protected]> Reviewed-By: Aditi Singh <[email protected]> Reviewed-By: Jake Yuesong Li <[email protected]>
PR-URL: #60245 Reviewed-By: Colin Ihrig <[email protected]> Reviewed-By: Marco Ippolito <[email protected]> Reviewed-By: Rafael Gonzaga <[email protected]> Reviewed-By: Darshan Sen <[email protected]>
PR-URL: #60252 Reviewed-By: Colin Ihrig <[email protected]> Reviewed-By: Luigi Pinca <[email protected]>
PR-URL: #60260 Reviewed-By: Darshan Sen <[email protected]> Reviewed-By: Luigi Pinca <[email protected]>
Our own helper classes have the advantage of using stack storage a lot of the time, so they should always be preferred. PR-URL: #60244 Reviewed-By: Chengzhong Wu <[email protected]> Reviewed-By: Rafael Gonzaga <[email protected]> Reviewed-By: Edy Silva <[email protected]> Reviewed-By: Colin Ihrig <[email protected]> Reviewed-By: Ilyas Shabi <[email protected]> Reviewed-By: Yagiz Nizipli <[email protected]> Reviewed-By: Vladimir Morozov <[email protected]>
We should be using our own helpers for this instead. PR-URL: #60244 Reviewed-By: Chengzhong Wu <[email protected]> Reviewed-By: Rafael Gonzaga <[email protected]> Reviewed-By: Edy Silva <[email protected]> Reviewed-By: Colin Ihrig <[email protected]> Reviewed-By: Ilyas Shabi <[email protected]> Reviewed-By: Yagiz Nizipli <[email protected]> Reviewed-By: Vladimir Morozov <[email protected]>
This lays the initial groundwork for enabling the use of IsolateGroups. Every isolate in V8 is created within a group. When pointer compression is enabled, all isolates within a single group are limited to a 4 GB shared pointer cage. By default, all isolates in the process share the same group, which means that when running with pointer compression, the entire process would be limited to a single 4 GB shared pointer cage. But, we can create as many IsolateGroups as we want, limited only by the amount of virtual memory available on the machine. PR-URL: #60254 Reviewed-By: Joyee Cheung <[email protected]> Reviewed-By: Matteo Collina <[email protected]> Reviewed-By: Stephen Belanger <[email protected]> Reviewed-By: Michaël Zasso <[email protected]>
This makes skipping/running these tests easier to manage with a dedicated test runner that can be tweaked for SEA. PR-URL: #60250 Refs: #59553 Reviewed-By: Richard Lau <[email protected]> Reviewed-By: Ulises Gascón <[email protected]> Reviewed-By: Yagiz Nizipli <[email protected]> Reviewed-By: Darshan Sen <[email protected]>
It's unlikely that anyone would invest in fixing them on x64 macOS in the near future, now that x64 macOS is being phased out. Simply skip them for now. PR-URL: #60250 Refs: #59553 Reviewed-By: Richard Lau <[email protected]> Reviewed-By: Ulises Gascón <[email protected]> Reviewed-By: Yagiz Nizipli <[email protected]> Reviewed-By: Darshan Sen <[email protected]>
This seems to be a underdocumented but useful trick that only very few people know about. Also add a pointer to the test running guide in the test writing guide. PR-URL: #60265 Reviewed-By: Richard Lau <[email protected]> Reviewed-By: Marco Ippolito <[email protected]> Reviewed-By: Chengzhong Wu <[email protected]> Reviewed-By: Yagiz Nizipli <[email protected]> Reviewed-By: Rafael Gonzaga <[email protected]> Reviewed-By: Luigi Pinca <[email protected]> Reviewed-By: Chemi Atlow <[email protected]>
It seems after the recent V8 upgrade, it's no longer safe to assume there'll be 15 ticks per 1500ms. Lower it to 10 ticks. PR-URL: #60272 Refs: https://github.com/nodejs/reliability/blob/main/reports/2025-10-15.md Reviewed-By: Luigi Pinca <[email protected]> Reviewed-By: Michaël Zasso <[email protected]>
It previously re-einvented the pattern matching that's already supported by test.py, and was running the tests one by one, which can lead to time out on slower machines. This move it to sequential and use wildcard support in test.py to correctly parallelize the tests. PR-URL: #60273 Fixes: #60268 Reviewed-By: Luigi Pinca <[email protected]> Reviewed-By: Yagiz Nizipli <[email protected]> Reviewed-By: Chemi Atlow <[email protected]>
PR-URL: #60257 Reviewed-By: Yagiz Nizipli <[email protected]> Reviewed-By: Chemi Atlow <[email protected]> Reviewed-By: Colin Ihrig <[email protected]>
PR-URL: #60257 Reviewed-By: Yagiz Nizipli <[email protected]> Reviewed-By: Chemi Atlow <[email protected]> Reviewed-By: Colin Ihrig <[email protected]>
PR-URL: #60257 Reviewed-By: Yagiz Nizipli <[email protected]> Reviewed-By: Chemi Atlow <[email protected]> Reviewed-By: Colin Ihrig <[email protected]>
There can be a race from eagerly shutting down the servers and severing two pipes at the same time but for the purpose of this test, we only care about whether the requests are initiated from the client as expected, not how the upstream/proxy servers behave. Ignore EPIPE errors from them. PR-URL: #60269 Refs: #59741 Reviewed-By: Luigi Pinca <[email protected]> Reviewed-By: Yagiz Nizipli <[email protected]>
PR-URL: #60256 Reviewed-By: Anna Henningsen <[email protected]> Reviewed-By: theanarkh <[email protected]> Reviewed-By: Colin Ihrig <[email protected]> Reviewed-By: Bryan English <[email protected]>
Previously for each matching test, it would execute multiple `node -p` commands to decide the configurations of the executable. That means if there are 100 tests matched, it will run the Node.js executable 4*100 times to retrieve the same configurations repeatedly. This changes the loop order so that it only execute these commands once and reuse the results for all matching tests. PR-URL: #60266 Reviewed-By: Michaël Zasso <[email protected]> Reviewed-By: Chengzhong Wu <[email protected]>
PR-URL: #60205 Refs: #59656 Refs: #37648 Reviewed-By: Chengzhong Wu <[email protected]>
- Make sure that the vm.Module.evaluate() method is conditionally synchronous based on the specification. Previously, the returned promise is unconditionally pending (even for synthetic modules and source text modules without top-level await) instead of immediately fulfilled, making it harder to debug as it deviates from the specified behavior. - Clarify the synchronicity of this method in the documentation - Add more tests for the synchronicity of this method. PR-URL: #60205 Refs: #59656 Refs: #37648 Reviewed-By: Chengzhong Wu <[email protected]>
PR-URL: #60320 Reviewed-By: Chengzhong Wu <[email protected]> Reviewed-By: Joyee Cheung <[email protected]> Reviewed-By: Marco Ippolito <[email protected]> Reviewed-By: Yagiz Nizipli <[email protected]>
PR-URL: #60365 Reviewed-By: Antoine du Hamel <[email protected]> Reviewed-By: Chengzhong Wu <[email protected]> Reviewed-By: Colin Ihrig <[email protected]> Reviewed-By: Luigi Pinca <[email protected]>
PR-URL: #60294 Reviewed-By: Yagiz Nizipli <[email protected]>
PR-URL: #60243 Reviewed-By: Colin Ihrig <[email protected]> Reviewed-By: Luigi Pinca <[email protected]> Reviewed-By: Jacob Smith <[email protected]>
PR-URL: #59734 Reviewed-By: Juan José Arboleda <[email protected]> Reviewed-By: Ethan Arrowood <[email protected]> Reviewed-By: Tim Perry <[email protected]> Reviewed-By: Marco Ippolito <[email protected]> Reviewed-By: Jake Yuesong Li <[email protected]> Reviewed-By: Matteo Collina <[email protected]> Reviewed-By: Ruben Bridgewater <[email protected]> Reviewed-By: Luigi Pinca <[email protected]>
PR-URL: #60217 Reviewed-By: Colin Ihrig <[email protected]> Reviewed-By: Antoine du Hamel <[email protected]> Reviewed-By: Ulises Gascón <[email protected]>
The previous cpu.sh script was minimal. This change makes it a more robust and safe utility for managing CPU governors during benchmarks. The script now includes: - Checks to ensure it only runs on Linux with root privileges. - A `reset` command to restore the CPU governor to a dynamically detected system default. - A `get` command to check the current governor for all cores. - An improved usage guide and clearer feedback messages. PR-URL: #60162 Reviewed-By: Antoine du Hamel <[email protected]>
PR-URL: #59883 Reviewed-By: Yagiz Nizipli <[email protected]> Reviewed-By: Antoine du Hamel <[email protected]>
Corrects the misspelling of "proecss" to "process". PR-URL: #60132 Reviewed-By: Colin Ihrig <[email protected]> Reviewed-By: Anna Henningsen <[email protected]> Reviewed-By: Luigi Pinca <[email protected]>
|
Review requested:
|
PR-URL: #60434 Fixes: #60423 Reviewed-By: Matteo Collina <[email protected]> Reviewed-By: Antoine du Hamel <[email protected]> Reviewed-By: Richard Lau <[email protected]>
Previously the addAfterUserSerailizeCallback() wasn't ready to be used for building the built-in snapshot. This patch initializes the callbacks at the time lib/internal/v8/start_snapshot.js is loaded, so that these callbacks get run correctly when building the built-in snapshot. Currently when building the built-in snapshot, addAfterUserSerializeCallback() is only used by createUnsafeBuffer(), other usages can only come from user-land snapshots, which is covered by tests, but what gets run by the built-in snapshot building process is less visible, and the path used by createUnsafeBuffer() isn't reliably visible in user land either. This adds an internal usage counter in debug builds to verify this path when building the built-in snapshot. PR-URL: #60434 Fixes: #60423 Reviewed-By: Matteo Collina <[email protected]> Reviewed-By: Antoine du Hamel <[email protected]> Reviewed-By: Richard Lau <[email protected]>
be4db98 to
1da054d
Compare
Codecov Report❌ Patch coverage is Additional details and impacted files@@ Coverage Diff @@
## v25.x #60436 +/- ##
========================================
Coverage 88.57% 88.58%
========================================
Files 704 704
Lines 208162 207731 -431
Branches 40012 40027 +15
========================================
- Hits 184387 184014 -373
+ Misses 15820 15760 -60
- Partials 7955 7957 +2
🚀 New features to boost your workflow:
|
|
#60351 is a fix for a behaviour regression in v25.0.0 – probably not enough time to get it through, but would be ideal if it were doable. |
|
I am highly surprised that disabling zero-fill on It's not even included in the changelog at all |
Notable Changes
4395fe14b9] - (SEMVER-MINOR) http: add optimizeEmptyRequests server option (Rafael Gonzaga) #597782e55c6ad04] - (SEMVER-MINOR) sqlite: allow setting defensive flag (Bart Louwers) #60217f437204491] - (SEMVER-MINOR) src: add watch config namespace (Marco Ippolito) #60178Commits
bb27766bd5] - benchmark: improve cpu.sh for safety and usability (Nam Yooseong) #60162e600711c20] - benchmark: add benchmark for leaf source text modules (Joyee Cheung) #602051bbcdf9039] - benchmark: add vm.SourceTextModule benchmark (Joyee Cheung) #5939622fa6bd28b] - build: ibmi follow aix visibility (SRAVANI GUNDEPALLI) #60360931028400e] - build: use call command when calling python configure (Jacob Nichols) #6009817fde3f3d1] - build: build v8 with -fvisibility=hidden -fvisibility-inlines-hidden (Joyee Cheung) #5629004cc7aae5e] - build: remove V8_COMPRESS_POINTERS_IN_ISOLATE_CAGE defs (Joyee Cheung) #602968a2053060d] - crypto: update root certificates to NSS 3.116 (Node.js GitHub Bot) #59956fe91c0f755] - deps: update simdjson to 4.0.7 (Node.js GitHub Bot) #59883aacfc0d212] - deps: update corepack to 0.34.1 (Node.js GitHub Bot) #603148596891a71] - deps: update inspector_protocol to af7f5a8173fdbc29f0835ec94395932e328b (Node.js GitHub Bot) #6031221bcd0eb2f] - deps: V8: cherry-pick 3d0f462a17ff (Joyee Cheung) #59396673558501c] - deps: update googletest to 279f847 (Node.js GitHub Bot) #60219425a1879b1] - doc: mention more codemods indeprecations.md(Augustin Mauroy) #60243563e1317f3] - doc: remove unnecessary statement of web storage (Deokjin Kim) #60363064c8c5cfd] - doc: add missing CAA type to dns.resolveAny() & dnsPromises.resolveAny() (Jimmy Leung) #5889999e357af35] - doc: useanyforworker_threads.Worker'error' event argumenterr(Jonas Geiler) #603008ccff0d934] - doc: update decorator documentation to reflect actual policy (Muhammad Salman Aziz) #60288bac70c6ef3] - doc: document wildcard supported by tools/test.py (Joyee Cheung) #602658492bc6a88] - doc: add --heap-snapshot-on-oom to useful v8 flag (jakecastelli) #602600f0d3c0e47] - doc: fixblob.bytes()heading level (XTY) #602528c8525cf93] - doc: fix not working code example in vm docs (Artur Gawlik) #602248a6de3866c] - doc, assert: correct order of changes entries (Gerhard Stöbich) #603046bacb6555a] - doc, module: change async customization hooks to experimental (Gerhard Stöbich) #603026f3b16df16] - esm: use index-based resolution callbacks (Joyee Cheung) #5939695644a432c] - http: lazy allocate cookies array (Robert Nagy) #597344395fe14b9] - (SEMVER-MINOR) http: add optimizeEmptyRequests server option (Rafael Gonzaga) #59778f1aa1eaaf5] - inspector: add network payload buffer size limits (Chengzhong Wu) #6023664fc625bf9] - inspector: support handshake response for websocket inspection (Shima Ryuhei) #602250ecbb806a8] - lib: fix typo in createBlobReaderStream (SeokHun) #60132ffec5927fd] - meta: fix typo in test-shared workflow name (Ronit Sabhaya) #60321a02897e157] - meta: move one or more collaborators to emeritus (Node.js GitHub Bot) #6032559223a7831] - meta: loop userland-migrations in deprecations (Chengzhong Wu) #602992d48d17696] - module: refactor and clarify async loader hook customizations (Joyee Cheung) #60278be1b84fd93] - module: handle null source from async loader hooks in sync hooks (Joyee Cheung) #59929063fbd87d3] - msi: fix WiX warnings (Stefan Stojanovic) #602512e55c6ad04] - (SEMVER-MINOR) sqlite: allow setting defensive flag (Bart Louwers) #60217dc93d6988a] - src: fix timing of snapshot serialize callback (Joyee Cheung) #60434267e1b3817] - src: add COUNT_GENERIC_USAGE utility for tests (Joyee Cheung) #604344a5d7a4c2a] - src: conditionally disable source phase imports by default (Shelley Vohr) #60364f437204491] - (SEMVER-MINOR) src: add watch config namespace (Marco Ippolito) #6017836837fa0f9] - src: use cached primordials_string (Sohyeon Kim) #60255df8396ad37] - src: replace Environment::GetCurrent with args.GetIsolate (Sohyeon Kim) #602565dd670b2b9] - src: initial enablement of IsolateGroups (James M Snell) #60254afdb362933] - src: useUtf8ValueandTwoByteValueinstead of V8 helpers (Anna Henningsen) #60244a40e533e72] - src: add a default branch for module phase (Chengzhong Wu) #6026142729f07ee] - src: stop using deprecated v8::Context::GetIsolate (Michaël Zasso) #602237a6542c205] - test: skip failing test on macOS 15.7+ (Antoine du Hamel) #6041929a5855a4f] - test: ensure assertions are reachable intest/addons(Antoine du Hamel) #6014212773d19c4] - test: increase debugger waitFor timeout on macOS (Chengzhong Wu) #603670b38de3e9e] - test: put helper in test-runner-output into common (Joyee Cheung) #603306de2407c44] - test: fix small compile warning in test_network_requests_buffer.cc (xiaocainiao633) #602814b23ac8613] - test: fix status when compiled without inspector (Antoine du Hamel) #60289a07f32e326] - test: split test-runner-watch-mode-kill-signal (Joyee Cheung) #6029830451d32d7] - test: fix incorrect calculation in test-perf-hooks.js (Joyee Cheung) #60271e3c3b48f1c] - test: ignore EPIPE errors in https proxy invalid URL test (Joyee Cheung) #60269405a9c4c5f] - test: parallelize test-without-async-context-frame correctly (Joyee Cheung) #60273ffeebebc71] - test: make test-worker-prof more tolerant (Joyee Cheung) #6027226b01bf170] - test: skip sea tests on x64 macOS (Joyee Cheung) #602508caae1a05b] - test: move sea tests into test/sea (Joyee Cheung) #602503d183e3e9f] - test,crypto: fix conditional SHA3-* skip on BoringSSL (Filip Skokan) #60379e83dbcba94] - test,crypto: sha3 algorithms aren't supported with BoringSSL (Shelley Vohr) #603743d89331496] - test_runner: use module.registerHooks in module mocks (Joyee Cheung) #60326377e8ce85a] - tls: avoid external memory leak on invalid protocol versions (Shelley Vohr) #60390ae4858c1f6] - tools: add an option to generate lighter archives (Antoine du Hamel) #60294cb615b1a2e] - tools: skip test-shared workflow for draft PRs (Michaël Zasso) #6036503b034731e] - tools: disable inspector on macOS-shared to reduce flakiness (Antoine du Hamel) #60320f402b4e1d1] - tools: show diff alongside the error in Nix linter (Antoine du Hamel) #603015d5c8483fb] - tools: run CI with shared libs on GHA (Antoine du Hamel) #60121e8fdd8d2e8] - tools: update gyp-next to 0.20.5 (Node.js GitHub Bot) #603136e8b029a21] - tools: limit inspector protocol PR title length (Chengzhong Wu) #60324a5073086c6] - tools: fix inspector_protocol updater (Chengzhong Wu) #6027747fa765bff] - tools: optimize wildcard execution in tools/test.py (Joyee Cheung) #6026611ebb0447d] - tools: add C++ lint rule to avoid usingString::Utf8Value(Anna Henningsen) #6024414f3189670] - tools: add inspector_protocol updater (Chengzhong Wu) #60245ef4c596fc6] - typings: add missing properties and method in Worker (Woohyun Sung) #6025709ae6fc065] - typings: add missing properties in HTTPParser (Woohyun Sung) #602579ecaf41f8e] - typings: delete undefined property in ConfigBinding (Woohyun Sung) #602574a86016e86] - util: use more defensive code when inspecting error objects (Antoine du Hamel) #601399e6d6cec59] - util: mark special properties when inspecting them (Ruben Bridgewater) #6013179b2387fd9] - vm: make vm.Module.evaluate() conditionally synchronous (Joyee Cheung) #60205e5559f3be3] - win: upgrade Visual Studio workload from 2019 to 2022 (Jiawen Geng) #60318