GV

GeezerVison

The World Wide Web, restored to 800 pixels of glory.

Home|About|Gaming cabinet|Archives|How it works|Starter sites

On this site

  • Sign in
  • ActionsCI/CD and automation
  • CodespacesCloud development environments
  • All Features
  • Documentation
  • Training
  • Certifications
  • Build with Copilot
  • Customize Copilot
  • Integrations
  • Trending repos
  • GitHub Sponsors
  • Developer articles
  • Enterprises

This view

  • Original page
  • New address

GeezerVison is showing github.com — src: fix timing of snapshot serialize callback by joyeecheung · Pull Request #60434 · nodejs/node

Conversation

@joyeecheung

@joyeecheung joyeecheung commented Oct 27, 2025 •
edited
Loading

Uh oh!

There was an error while loading. Please reload this page.

Copy link
Copy Markdown
Member

src: add COUNT_GENERIC_USAGE utility for tests

src: fix timing of snapshot serialize callback

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.

Fixes: #60423

Sorry, something went wrong.

Uh oh!

There was an error while loading. Please reload this page.

All reactions
@joyeecheung
src: add COUNT_GENERIC_USAGE utility for tests
0f2ecc3
@nodejs-github-bot nodejs-github-bot added c++ Issues and PRs that require attention from people who are familiar with C++. lib / src Issues and PRs involving general changes in the lib/ or src/ directories. needs-ci PRs that need a full CI run. labels Oct 27, 2025
@joyeecheung joyeecheung mentioned this pull request Oct 27, 2025
allocUnsafe is useless since 24 #60423
Closed
@joyeecheung
src: fix timing of snapshot serialize callback
454caf1
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.
@joyeecheung
joyeecheung force-pushed the buffer branch from fdada92 to 454caf1 Compare October 27, 2025 14:39
@joyeecheung joyeecheung mentioned this pull request Oct 27, 2025
src: migrate from deprecated SnapshotCreator constructor #55337
Closed
ChALkeR
ChALkeR reviewed Oct 27, 2025
View reviewed changes

@ChALkeR ChALkeR left a comment •
edited
Loading

Uh oh!

There was an error while loading. Please reload this page.

Copy link
Copy Markdown
Member

There was a problem hiding this comment.

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Note: this effectively disables --zero-fill-buffers default being on since 24.0.0
If not for a significant perf impact, this should have been a semver-major change at this point

Sorry, something went wrong.

Uh oh!

There was an error while loading. Please reload this page.

All reactions
@codecov

codecov Bot commented Oct 27, 2025 •
edited
Loading

Uh oh!

There was an error while loading. Please reload this page.

Copy link
Copy Markdown

Codecov Report

✅ All modified and coverable lines are covered by tests.
✅ Project coverage is 88.57%. Comparing base (3c8c1ef) to head (d6d4659).
⚠️ Report is 21 commits behind head on main.

Additional details and impacted files
@@            Coverage Diff             @@
##             main   #60434      +/-   ##
==========================================
+ Coverage   88.07%   88.57%   +0.50%     
==========================================
  Files         704      704              
  Lines      207778   207814      +36     
  Branches    39949    40038      +89     
==========================================
+ Hits       182998   184078    +1080     
+ Misses      16791    15775    -1016     
+ Partials     7989     7961      -28     
Files with missing lines Coverage Δ
lib/internal/main/mksnapshot.js 95.87% <ø> (-0.04%) ⬇️
lib/internal/v8/startup_snapshot.js 95.38% <100.00%> (+9.23%) ⬆️
src/api/environment.cc 76.88% <100.00%> (-0.14%) ⬇️

... and 103 files with indirect coverage changes

🚀 New features to boost your workflow:
  • ❄️ Test Analytics: Detect flaky tests, report on failures, and find test suite problems.
  • 📦 JS Bundle Analysis: Save yourself from yourself by tracking and limiting bundle sizes in JS merges.
All reactions

Sorry, something went wrong.

Uh oh!

There was an error while loading. Please reload this page.

gurgunday
gurgunday approved these changes Oct 27, 2025
View reviewed changes
mcollina
mcollina approved these changes Oct 27, 2025
View reviewed changes

@mcollina mcollina left a comment •
edited
Loading

Uh oh!

There was an error while loading. Please reload this page.

Copy link
Copy Markdown
Member

There was a problem hiding this comment.

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

RSLGTM

Sorry, something went wrong.

Uh oh!

There was an error while loading. Please reload this page.

All reactions
@mcollina mcollina added the request-ci Add this label to start a Jenkins CI on a PR. Only starts once the PR has an approving review. label Oct 27, 2025
@github-actions github-actions Bot removed the request-ci Add this label to start a Jenkins CI on a PR. Only starts once the PR has an approving review. label Oct 27, 2025
@nodejs-github-bot

nodejs-github-bot commented Oct 27, 2025

Copy link
Copy Markdown
Collaborator

CI: https://ci.nodejs.org/job/node-test-pull-request/69905/

All reactions

Sorry, something went wrong.

Uh oh!

There was an error while loading. Please reload this page.

ChALkeR
ChALkeR reviewed Oct 27, 2025
View reviewed changes
Comment thread test/parallel/test-buffer-alloc-unsafe-is-uninitialized.js Resolved

Uh oh!

There was an error while loading. Please reload this page.

@ChALkeR

ChALkeR commented Oct 27, 2025 •
edited
Loading

Uh oh!

There was an error while loading. Please reload this page.

Copy link
Copy Markdown
Member

Also this likely should be both a notable change and have a clear description that it disables default buffer zero-filling, which has been accidental

All reactions

Sorry, something went wrong.

Uh oh!

There was an error while loading. Please reload this page.

@joyeecheung
fixup! src: fix timing of snapshot serialize callback
998b033
@joyeecheung
joyeecheung force-pushed the buffer branch from db5ebff to 998b033 Compare October 27, 2025 16:46
ChALkeR
ChALkeR reviewed Oct 27, 2025
View reviewed changes
Comment thread test/parallel/test-buffer-alloc-unsafe-is-uninitialized.js Resolved

Uh oh!

There was an error while loading. Please reload this page.

aduh95
aduh95 approved these changes Oct 27, 2025
View reviewed changes

@aduh95 aduh95 left a comment

Copy link
Copy Markdown
Contributor

There was a problem hiding this comment.

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Testing ./node -e 'for (let i = 0; i < 1e6; i++) {if(Buffer.allocUnsafe(4096).some(x=>x))process.exit(0)}process.exit(1)' is failing without this patch, and passing with it

Sorry, something went wrong.

Uh oh!

There was an error while loading. Please reload this page.

All reactions
@joyeecheung
fixup! fixup! src: fix timing of snapshot serialize callback
d6d4659
@nodejs-github-bot

nodejs-github-bot commented Oct 27, 2025

Copy link
Copy Markdown
Collaborator

CI: https://ci.nodejs.org/job/node-test-pull-request/69907/

All reactions

Sorry, something went wrong.

Uh oh!

There was an error while loading. Please reload this page.

aduh95
aduh95 approved these changes Oct 27, 2025
View reviewed changes
@aduh95 aduh95 added fast-track PRs proposed for a shorter-than-standard waiting period before landing. author ready PRs with CI started, the required approvals, and no outstanding review comments. labels Oct 27, 2025
@github-actions

github-actions Bot commented Oct 27, 2025

Copy link
Copy Markdown
Contributor

Fast-track has been requested by @aduh95. Please 👍 to approve.

aduh95 and richardlau reacted with thumbs up emoji
All reactions
  • 👍 2 reactions

Sorry, something went wrong.

Uh oh!

There was an error while loading. Please reload this page.

@aduh95

aduh95 commented Oct 27, 2025

Copy link
Copy Markdown
Contributor

Fast track so it can get into #60436?

All reactions

Sorry, something went wrong.

Uh oh!

There was an error while loading. Please reload this page.

@nodejs-github-bot

nodejs-github-bot commented Oct 27, 2025

Copy link
Copy Markdown
Collaborator

CI: https://ci.nodejs.org/job/node-test-pull-request/69909/

All reactions

Sorry, something went wrong.

Uh oh!

There was an error while loading. Please reload this page.

richardlau
richardlau approved these changes Oct 28, 2025
View reviewed changes
addaleax added a commit to addaleax/node that referenced this pull request Oct 28, 2025
@addaleax
src: clean up generic counter implementation
5a229aa
This addresses late review comments for the recently
landed cfbfc1b and aligns the new code with the
pre-existing V8 fast call counters.

Refs: nodejs#60434 (review)
@addaleax addaleax mentioned this pull request Oct 28, 2025
src: clean up generic counter implementation #60447
Merged
@ChALkeR

ChALkeR commented Oct 28, 2025

Copy link
Copy Markdown
Member

Given this landed, how fast can it get into 24?

All reactions

Sorry, something went wrong.

Uh oh!

There was an error while loading. Please reload this page.

@panva

panva commented Oct 28, 2025 •
edited
Loading

Uh oh!

There was an error while loading. Please reload this page.

Copy link
Copy Markdown
Member

Adding baking-for-lts PRs that need to wait before landing in a LTS release. as I don't think there's consensus regarding whether this should land on v24.x.

Why should restoring documented behaviour that's present on 22 and now 25 need wait to land on 24? I think baking-for-lts PRs whose changes need more time before an LTS backport. should be dropped here.

ChALkeR reacted with thumbs up emoji
All reactions
  • 👍 1 reaction

Sorry, something went wrong.

Uh oh!

There was an error while loading. Please reload this page.

@panva

panva commented Oct 28, 2025 •
edited
Loading

Uh oh!

There was an error while loading. Please reload this page.

Copy link
Copy Markdown
Member

I'm removing baking-for-lts PRs whose changes need more time before an LTS backport. since the intent to restore the documented behaviour is already part of the blog post and will be updated in the release notes too.

ChALkeR reacted with thumbs up emoji
All reactions
  • 👍 1 reaction

Sorry, something went wrong.

Uh oh!

There was an error while loading. Please reload this page.

@panva panva added lts-watch-v24.x PRs that may need to be released in v24.x and removed baking-for-lts PRs whose changes need more time before an LTS backport. labels Oct 28, 2025
nodejs-github-bot pushed a commit that referenced this pull request Oct 30, 2025
@addaleax
src: clean up generic counter implementation
b470ba0
This addresses late review comments for the recently
landed cfbfc1b and aligns the new code with the
pre-existing V8 fast call counters.

Refs: #60434 (review)
PR-URL: #60447
Reviewed-By: Joyee Cheung <[email protected]>
Reviewed-By: Yagiz Nizipli <[email protected]>
Reviewed-By: Matteo Collina <[email protected]>
Reviewed-By: Colin Ihrig <[email protected]>
aduh95 pushed a commit that referenced this pull request Oct 31, 2025
@joyeecheung @aduh95
src: add COUNT_GENERIC_USAGE utility for tests
b8fd0df
PR-URL: #60434
Fixes: #60423
Reviewed-By: Matteo Collina <[email protected]>
Reviewed-By: Antoine du Hamel <[email protected]>
Reviewed-By: Richard Lau <[email protected]>
aduh95 pushed a commit that referenced this pull request Oct 31, 2025
@joyeecheung @aduh95
src: fix timing of snapshot serialize callback
076115d
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]>
tmeijn pushed a commit to tmeijn/dotfiles that referenced this pull request Nov 3, 2025
ECG Bot @tmeijn
build(deps): update node to v25.1.0
17d8af9
This MR contains the following updates:

| Package | Update | Change |
|---|---|---|
| [node](https://nodejs.org) ([source](https://github.com/nodejs/node)) | minor | `25.0.0` -> `25.1.0` |

MR created with the help of [el-capitano/tools/renovate-bot](https://gitlab.com/el-capitano/tools/renovate-bot).

**Proposed changes to behavior should be submitted there as MRs.**

---

### Release Notes

<details>
<summary>nodejs/node (node)</summary>

### [`v25.1.0`](https://github.com/nodejs/node/releases/tag/v25.1.0): 2025-10-28, Version 25.1.0 (Current), @&#8203;aduh95

[Compare Source](nodejs/node@v25.0.0...v25.1.0)

##### Notable Changes

- \[[`4395fe14b9`](nodejs/node@4395fe14b9)] - **(SEMVER-MINOR)** **http**: add optimizeEmptyRequests server option (Rafael Gonzaga) [#&#8203;59778](nodejs/node#59778)
- \[[`2e55c6ad04`](nodejs/node@2e55c6ad04)] - **(SEMVER-MINOR)** **sqlite**: allow setting defensive flag (Bart Louwers) [#&#8203;60217](nodejs/node#60217)
- \[[`f437204491`](nodejs/node@f437204491)] - **(SEMVER-MINOR)** **src**: add watch config namespace (Marco Ippolito) [#&#8203;60178](nodejs/node#60178)

##### Commits

- \[[`bb27766bd5`](nodejs/node@bb27766bd5)] - **benchmark**: improve cpu.sh for safety and usability (Nam Yooseong) [#&#8203;60162](nodejs/node#60162)
- \[[`e600711c20`](nodejs/node@e600711c20)] - **benchmark**: add benchmark for leaf source text modules (Joyee Cheung) [#&#8203;60205](nodejs/node#60205)
- \[[`1bbcdf9039`](nodejs/node@1bbcdf9039)] - **benchmark**: add vm.SourceTextModule benchmark (Joyee Cheung) [#&#8203;59396](nodejs/node#59396)
- \[[`22fa6bd28b`](nodejs/node@22fa6bd28b)] - **build**: ibmi follow aix visibility (SRAVANI GUNDEPALLI) [#&#8203;60360](nodejs/node#60360)
- \[[`931028400e`](nodejs/node@931028400e)] - **build**: use call command when calling python configure (Jacob Nichols) [#&#8203;60098](nodejs/node#60098)
- \[[`17fde3f3d1`](nodejs/node@17fde3f3d1)] - **build**: build v8 with -fvisibility=hidden -fvisibility-inlines-hidden (Joyee Cheung) [#&#8203;56290](nodejs/node#56290)
- \[[`04cc7aae5e`](nodejs/node@04cc7aae5e)] - **build**: remove V8\_COMPRESS\_POINTERS\_IN\_ISOLATE\_CAGE defs (Joyee Cheung) [#&#8203;60296](nodejs/node#60296)
- \[[`8a2053060d`](nodejs/node@8a2053060d)] - **crypto**: update root certificates to NSS 3.116 (Node.js GitHub Bot) [#&#8203;59956](nodejs/node#59956)
- \[[`fe91c0f755`](nodejs/node@fe91c0f755)] - **deps**: update simdjson to 4.0.7 (Node.js GitHub Bot) [#&#8203;59883](nodejs/node#59883)
- \[[`aacfc0d212`](nodejs/node@aacfc0d212)] - **deps**: update corepack to 0.34.1 (Node.js GitHub Bot) [#&#8203;60314](nodejs/node#60314)
- \[[`8596891a71`](nodejs/node@8596891a71)] - **deps**: update inspector\_protocol to [`af7f5a8`](nodejs/node@af7f5a8) (Node.js GitHub Bot) [#&#8203;60312](nodejs/node#60312)
- \[[`21bcd0eb2f`](nodejs/node@21bcd0eb2f)] - **deps**: V8: cherry-pick [`3d0f462`](nodejs/node@3d0f462a17ff) (Joyee Cheung) [#&#8203;59396](nodejs/node#59396)
- \[[`673558501c`](nodejs/node@673558501c)] - **deps**: update googletest to [`279f847`](nodejs/node@279f847) (Node.js GitHub Bot) [#&#8203;60219](nodejs/node#60219)
- \[[`425a1879b1`](nodejs/node@425a1879b1)] - **doc**: mention more codemods in `deprecations.md` (Augustin Mauroy) [#&#8203;60243](nodejs/node#60243)
- \[[`563e1317f3`](nodejs/node@563e1317f3)] - **doc**: remove unnecessary statement of web storage (Deokjin Kim) [#&#8203;60363](nodejs/node#60363)
- \[[`064c8c5cfd`](nodejs/node@064c8c5cfd)] - **doc**: add missing CAA type to dns.resolveAny() & dnsPromises.resolveAny() (Jimmy Leung) [#&#8203;58899](nodejs/node#58899)
- \[[`99e357af35`](nodejs/node@99e357af35)] - **doc**: use `any` for `worker_threads.Worker` 'error' event argument `err` (Jonas Geiler) [#&#8203;60300](nodejs/node#60300)
- \[[`8ccff0d934`](nodejs/node@8ccff0d934)] - **doc**: update decorator documentation to reflect actual policy (Muhammad Salman Aziz) [#&#8203;60288](nodejs/node#60288)
- \[[`bac70c6ef3`](nodejs/node@bac70c6ef3)] - **doc**: document wildcard supported by tools/test.py (Joyee Cheung) [#&#8203;60265](nodejs/node#60265)
- \[[`8492bc6a88`](nodejs/node@8492bc6a88)] - **doc**: add --heap-snapshot-on-oom to useful v8 flag (jakecastelli) [#&#8203;60260](nodejs/node#60260)
- \[[`0f0d3c0e47`](nodejs/node@0f0d3c0e47)] - **doc**: fix `blob.bytes()` heading level (XTY) [#&#8203;60252](nodejs/node#60252)
- \[[`8c8525cf93`](nodejs/node@8c8525cf93)] - **doc**: fix not working code example in vm docs (Artur Gawlik) [#&#8203;60224](nodejs/node#60224)
- \[[`8a6de3866c`](nodejs/node@8a6de3866c)] - **doc, assert**: correct order of changes entries (Gerhard Stöbich) [#&#8203;60304](nodejs/node#60304)
- \[[`6bacb6555a`](nodejs/node@6bacb6555a)] - **doc, module**: change async customization hooks to experimental (Gerhard Stöbich) [#&#8203;60302](nodejs/node#60302)
- \[[`6f3b16df16`](nodejs/node@6f3b16df16)] - **esm**: use index-based resolution callbacks (Joyee Cheung) [#&#8203;59396](nodejs/node#59396)
- \[[`95644a432c`](nodejs/node@95644a432c)] - **http**: lazy allocate cookies array (Robert Nagy) [#&#8203;59734](nodejs/node#59734)
- \[[`4395fe14b9`](nodejs/node@4395fe14b9)] - **(SEMVER-MINOR)** **http**: add optimizeEmptyRequests server option (Rafael Gonzaga) [#&#8203;59778](nodejs/node#59778)
- \[[`f1aa1eaaf5`](nodejs/node@f1aa1eaaf5)] - **inspector**: add network payload buffer size limits (Chengzhong Wu) [#&#8203;60236](nodejs/node#60236)
- \[[`64fc625bf9`](nodejs/node@64fc625bf9)] - **inspector**: support handshake response for websocket inspection (Shima Ryuhei) [#&#8203;60225](nodejs/node#60225)
- \[[`0ecbb806a8`](nodejs/node@0ecbb806a8)] - **lib**: fix typo in createBlobReaderStream (SeokHun) [#&#8203;60132](nodejs/node#60132)
- \[[`ffec5927fd`](nodejs/node@ffec5927fd)] - **meta**: fix typo in test-shared workflow name (Ronit Sabhaya) [#&#8203;60321](nodejs/node#60321)
- \[[`a02897e157`](nodejs/node@a02897e157)] - **meta**: move one or more collaborators to emeritus (Node.js GitHub Bot) [#&#8203;60325](nodejs/node#60325)
- \[[`59223a7831`](nodejs/node@59223a7831)] - **meta**: loop userland-migrations in deprecations (Chengzhong Wu) [#&#8203;60299](nodejs/node#60299)
- \[[`2d48d17696`](nodejs/node@2d48d17696)] - **module**: refactor and clarify async loader hook customizations (Joyee Cheung) [#&#8203;60278](nodejs/node#60278)
- \[[`be1b84fd93`](nodejs/node@be1b84fd93)] - **module**: handle null source from async loader hooks in sync hooks (Joyee Cheung) [#&#8203;59929](nodejs/node#59929)
- \[[`063fbd87d3`](nodejs/node@063fbd87d3)] - **msi**: fix WiX warnings (Stefan Stojanovic) [#&#8203;60251](nodejs/node#60251)
- \[[`2e55c6ad04`](nodejs/node@2e55c6ad04)] - **(SEMVER-MINOR)** **sqlite**: allow setting defensive flag (Bart Louwers) [#&#8203;60217](nodejs/node#60217)
- \[[`dc93d6988a`](nodejs/node@dc93d6988a)] - **src**: fix timing of snapshot serialize callback (Joyee Cheung) [#&#8203;60434](nodejs/node#60434)
- \[[`267e1b3817`](nodejs/node@267e1b3817)] - **src**: add COUNT\_GENERIC\_USAGE utility for tests (Joyee Cheung) [#&#8203;60434](nodejs/node#60434)
- \[[`4a5d7a4c2a`](nodejs/node@4a5d7a4c2a)] - **src**: conditionally disable source phase imports by default (Shelley Vohr) [#&#8203;60364](nodejs/node#60364)
- \[[`f437204491`](nodejs/node@f437204491)] - **(SEMVER-MINOR)** **src**: add watch config namespace (Marco Ippolito) [#&#8203;60178](nodejs/node#60178)
- \[[`36837fa0f9`](nodejs/node@36837fa0f9)] - **src**: use cached primordials\_string (Sohyeon Kim) [#&#8203;60255](nodejs/node#60255)
- \[[`df8396ad37`](nodejs/node@df8396ad37)] - **src**: replace Environment::GetCurrent with args.GetIsolate (Sohyeon Kim) [#&#8203;60256](nodejs/node#60256)
- \[[`5dd670b2b9`](nodejs/node@5dd670b2b9)] - **src**: initial enablement of IsolateGroups (James M Snell) [#&#8203;60254](nodejs/node#60254)
- \[[`afdb362933`](nodejs/node@afdb362933)] - **src**: use `Utf8Value` and `TwoByteValue` instead of V8 helpers (Anna Henningsen) [#&#8203;60244](nodejs/node#60244)
- \[[`a40e533e72`](nodejs/node@a40e533e72)] - **src**: add a default branch for module phase (Chengzhong Wu) [#&#8203;60261](nodejs/node#60261)
- \[[`42729f07ee`](nodejs/node@42729f07ee)] - **src**: stop using deprecated v8::Context::GetIsolate (Michaël Zasso) [#&#8203;60223](nodejs/node#60223)
- \[[`7a6542c205`](nodejs/node@7a6542c205)] - **test**: skip failing test on macOS 15.7+ (Antoine du Hamel) [#&#8203;60419](nodejs/node#60419)
- \[[`29a5855a4f`](nodejs/node@29a5855a4f)] - **test**: ensure assertions are reachable in `test/addons` (Antoine du Hamel) [#&#8203;60142](nodejs/node#60142)
- \[[`12773d19c4`](nodejs/node@12773d19c4)] - **test**: increase debugger waitFor timeout on macOS (Chengzhong Wu) [#&#8203;60367](nodejs/node#60367)
- \[[`0b38de3e9e`](nodejs/node@0b38de3e9e)] - **test**: put helper in test-runner-output into common (Joyee Cheung) [#&#8203;60330](nodejs/node#60330)
- \[[`6de2407c44`](nodejs/node@6de2407c44)] - **test**: fix small compile warning in test\_network\_requests\_buffer.cc (xiaocainiao633) [#&#8203;60281](nodejs/node#60281)
- \[[`4b23ac8613`](nodejs/node@4b23ac8613)] - **test**: fix status when compiled without inspector (Antoine du Hamel) [#&#8203;60289](nodejs/node#60289)
- \[[`a07f32e326`](nodejs/node@a07f32e326)] - **test**: split test-runner-watch-mode-kill-signal (Joyee Cheung) [#&#8203;60298](nodejs/node#60298)
- \[[`30451d32d7`](nodejs/node@30451d32d7)] - **test**: fix incorrect calculation in test-perf-hooks.js (Joyee Cheung) [#&#8203;60271](nodejs/node#60271)
- \[[`e3c3b48f1c`](nodejs/node@e3c3b48f1c)] - **test**: ignore EPIPE errors in https proxy invalid URL test (Joyee Cheung) [#&#8203;60269](nodejs/node#60269)
- \[[`405a9c4c5f`](nodejs/node@405a9c4c5f)] - **test**: parallelize test-without-async-context-frame correctly (Joyee Cheung) [#&#8203;60273](nodejs/node#60273)
- \[[`ffeebebc71`](nodejs/node@ffeebebc71)] - **test**: make test-worker-prof more tolerant (Joyee Cheung) [#&#8203;60272](nodejs/node#60272)
- \[[`26b01bf170`](nodejs/node@26b01bf170)] - **test**: skip sea tests on x64 macOS (Joyee Cheung) [#&#8203;60250](nodejs/node#60250)
- \[[`8caae1a05b`](nodejs/node@8caae1a05b)] - **test**: move sea tests into test/sea (Joyee Cheung) [#&#8203;60250](nodejs/node#60250)
- \[[`3d183e3e9f`](nodejs/node@3d183e3e9f)] - **test,crypto**: fix conditional SHA3-\* skip on BoringSSL (Filip Skokan) [#&#8203;60379](nodejs/node#60379)
- \[[`e83dbcba94`](nodejs/node@e83dbcba94)] - **test,crypto**: sha3 algorithms aren't supported with BoringSSL (Shelley Vohr) [#&#8203;60374](nodejs/node#60374)
- \[[`3d89331496`](nodejs/node@3d89331496)] - **test\_runner**: use module.registerHooks in module mocks (Joyee Cheung) [#&#8203;60326](nodejs/node#60326)
- \[[`377e8ce85a`](nodejs/node@377e8ce85a)] - **tls**: avoid external memory leak on invalid protocol versions (Shelley Vohr) [#&#8203;60390](nodejs/node#60390)
- \[[`ae4858c1f6`](nodejs/node@ae4858c1f6)] - **tools**: add an option to generate lighter archives (Antoine du Hamel) [#&#8203;60294](nodejs/node#60294)
- \[[`cb615b1a2e`](nodejs/node@cb615b1a2e)] - **tools**: skip test-shared workflow for draft MRs (Michaël Zasso) [#&#8203;60365](nodejs/node#60365)
- \[[`03b034731e`](nodejs/node@03b034731e)] - **tools**: disable inspector on macOS-shared to reduce flakiness (Antoine du Hamel) [#&#8203;60320](nodejs/node#60320)
- \[[`f402b4e1d1`](nodejs/node@f402b4e1d1)] - **tools**: show diff alongside the error in Nix linter (Antoine du Hamel) [#&#8203;60301](nodejs/node#60301)
- \[[`5d5c8483fb`](nodejs/node@5d5c8483fb)] - **tools**: run CI with shared libs on GHA (Antoine du Hamel) [#&#8203;60121](nodejs/node#60121)
- \[[`e8fdd8d2e8`](nodejs/node@e8fdd8d2e8)] - **tools**: update gyp-next to 0.20.5 (Node.js GitHub Bot) [#&#8203;60313](nodejs/node#60313)
- \[[`6e8b029a21`](nodejs/node@6e8b029a21)] - **tools**: limit inspector protocol MR title length (Chengzhong Wu) [#&#8203;60324](nodejs/node#60324)
- \[[`a5073086c6`](nodejs/node@a5073086c6)] - **tools**: fix inspector\_protocol updater (Chengzhong Wu) [#&#8203;60277](nodejs/node#60277)
- \[[`47fa765bff`](nodejs/node@47fa765bff)] - **tools**: optimize wildcard execution in tools/test.py (Joyee Cheung) [#&#8203;60266](nodejs/node#60266)
- \[[`11ebb0447d`](nodejs/node@11ebb0447d)] - **tools**: add C++ lint rule to avoid using `String::Utf8Value` (Anna Henningsen) [#&#8203;60244](nodejs/node#60244)
- \[[`14f3189670`](nodejs/node@14f3189670)] - **tools**: add inspector\_protocol updater (Chengzhong Wu) [#&#8203;60245](nodejs/node#60245)
- \[[`ef4c596fc6`](nodejs/node@ef4c596fc6)] - **typings**: add missing properties and method in Worker (Woohyun Sung) [#&#8203;60257](nodejs/node#60257)
- \[[`09ae6fc065`](nodejs/node@09ae6fc065)] - **typings**: add missing properties in HTTPParser (Woohyun Sung) [#&#8203;60257](nodejs/node#60257)
- \[[`9ecaf41f8e`](nodejs/node@9ecaf41f8e)] - **typings**: delete undefined property in ConfigBinding (Woohyun Sung) [#&#8203;60257](nodejs/node#60257)
- \[[`4a86016e86`](nodejs/node@4a86016e86)] - **util**: use more defensive code when inspecting error objects (Antoine du Hamel) [#&#8203;60139](nodejs/node#60139)
- \[[`9e6d6cec59`](nodejs/node@9e6d6cec59)] - **util**: mark special properties when inspecting them (Ruben Bridgewater) [#&#8203;60131](nodejs/node#60131)
- \[[`79b2387fd9`](nodejs/node@79b2387fd9)] - **vm**: make vm.Module.evaluate() conditionally synchronous (Joyee Cheung) [#&#8203;60205](nodejs/node#60205)
- \[[`e5559f3be3`](nodejs/node@e5559f3be3)] - **win**: upgrade Visual Studio workload from 2019 to 2022 (Jiawen Geng) [#&#8203;60318](nodejs/node#60318)

</details>

---

### Configuration

📅 **Schedule**: Branch creation - At any time (no schedule defined), Automerge - At any time (no schedule defined).

🚦 **Automerge**: Disabled by config. Please merge this manually once you are satisfied.

♻ **Rebasing**: Whenever MR becomes conflicted, or you tick the rebase/retry checkbox.

🔕 **Ignore**: Close this MR and you won't be reminded about this update again.

---

 - [ ] <!-- rebase-check -->If you want to rebase/retry this MR, check this box

---

This MR has been generated by [Renovate Bot](https://github.com/renovatebot/renovate).
<!--renovate-debug:eyJjcmVhdGVkSW5WZXIiOiI0MS4xNjQuMSIsInVwZGF0ZWRJblZlciI6IjQxLjE2NC4xIiwidGFyZ2V0QnJhbmNoIjoibWFpbiIsImxhYmVscyI6WyJSZW5vdmF0ZSBCb3QiXX0=-->
aduh95 pushed a commit that referenced this pull request Nov 5, 2025
@addaleax @aduh95
src: clean up generic counter implementation
5941341
This addresses late review comments for the recently
landed cfbfc1b and aligns the new code with the
pre-existing V8 fast call counters.

Refs: #60434 (review)
PR-URL: #60447
Reviewed-By: Joyee Cheung <[email protected]>
Reviewed-By: Yagiz Nizipli <[email protected]>
Reviewed-By: Matteo Collina <[email protected]>
Reviewed-By: Colin Ihrig <[email protected]>
@github-actions github-actions Bot mentioned this pull request Nov 7, 2025
2025-11-11, Version 24.12.0 'Krypton' (LTS) #60615
Closed
aduh95 pushed a commit that referenced this pull request Nov 7, 2025
@joyeecheung @aduh95
src: add COUNT_GENERIC_USAGE utility for tests
13b6879
PR-URL: #60434
Fixes: #60423
Reviewed-By: Matteo Collina <[email protected]>
Reviewed-By: Antoine du Hamel <[email protected]>
Reviewed-By: Richard Lau <[email protected]>
aduh95 pushed a commit that referenced this pull request Nov 7, 2025
@joyeecheung @aduh95
src: fix timing of snapshot serialize callback
6199541
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]>
@github-actions github-actions Bot mentioned this pull request Nov 7, 2025
2025-11-11, Version 24.11.1 'Krypton' (LTS) #60622
Merged
aduh95 pushed a commit that referenced this pull request Nov 11, 2025
@addaleax @aduh95
src: clean up generic counter implementation
4d0fe18
This addresses late review comments for the recently
landed cfbfc1b and aligns the new code with the
pre-existing V8 fast call counters.

Refs: #60434 (review)
PR-URL: #60447
Reviewed-By: Joyee Cheung <[email protected]>
Reviewed-By: Yagiz Nizipli <[email protected]>
Reviewed-By: Matteo Collina <[email protected]>
Reviewed-By: Colin Ihrig <[email protected]>
aduh95 pushed a commit that referenced this pull request Nov 13, 2025
@addaleax @aduh95
src: clean up generic counter implementation
bd09ae2
This addresses late review comments for the recently
landed cfbfc1b and aligns the new code with the
pre-existing V8 fast call counters.

Refs: #60434 (review)
PR-URL: #60447
Reviewed-By: Joyee Cheung <[email protected]>
Reviewed-By: Yagiz Nizipli <[email protected]>
Reviewed-By: Matteo Collina <[email protected]>
Reviewed-By: Colin Ihrig <[email protected]>
@targos targos removed the lts-watch-v24.x PRs that may need to be released in v24.x label Dec 5, 2025
aduh95 pushed a commit that referenced this pull request Feb 17, 2026
@joyeecheung @aduh95
src: add COUNT_GENERIC_USAGE utility for tests
fee5e9a
PR-URL: #60434
Fixes: #60423
Reviewed-By: Matteo Collina <[email protected]>
Reviewed-By: Antoine du Hamel <[email protected]>
Reviewed-By: Richard Lau <[email protected]>
aduh95 pushed a commit that referenced this pull request Feb 17, 2026
@joyeecheung @aduh95
src: fix timing of snapshot serialize callback
208a288
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]>
aduh95 pushed a commit that referenced this pull request Feb 17, 2026
@addaleax @aduh95
src: clean up generic counter implementation
edb2396
This addresses late review comments for the recently
landed cfbfc1b and aligns the new code with the
pre-existing V8 fast call counters.

Refs: #60434 (review)
PR-URL: #60447
Reviewed-By: Joyee Cheung <[email protected]>
Reviewed-By: Yagiz Nizipli <[email protected]>
Reviewed-By: Matteo Collina <[email protected]>
Reviewed-By: Colin Ihrig <[email protected]>
aduh95 pushed a commit that referenced this pull request Feb 19, 2026
@joyeecheung @aduh95
src: add COUNT_GENERIC_USAGE utility for tests
ece4acc
PR-URL: #60434
Fixes: #60423
Reviewed-By: Matteo Collina <[email protected]>
Reviewed-By: Antoine du Hamel <[email protected]>
Reviewed-By: Richard Lau <[email protected]>
aduh95 pushed a commit that referenced this pull request Feb 19, 2026
@joyeecheung @aduh95
src: fix timing of snapshot serialize callback
2e93650
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]>
aduh95 pushed a commit that referenced this pull request Feb 19, 2026
@addaleax @aduh95
src: clean up generic counter implementation
9127c3c
This addresses late review comments for the recently
landed cfbfc1b and aligns the new code with the
pre-existing V8 fast call counters.

Refs: #60434 (review)
PR-URL: #60447
Reviewed-By: Joyee Cheung <[email protected]>
Reviewed-By: Yagiz Nizipli <[email protected]>
Reviewed-By: Matteo Collina <[email protected]>
Reviewed-By: Colin Ihrig <[email protected]>
@aduh95 aduh95 mentioned this pull request Feb 22, 2026
V22.22.1 proposal #61947
Merged
aduh95 pushed a commit that referenced this pull request Feb 23, 2026
@addaleax @aduh95
src: clean up generic counter implementation
21e2a52
This addresses late review comments for the recently
landed cfbfc1b and aligns the new code with the
pre-existing V8 fast call counters.

Refs: #60434 (review)
PR-URL: #60447
Reviewed-By: Joyee Cheung <[email protected]>
Reviewed-By: Yagiz Nizipli <[email protected]>
Reviewed-By: Matteo Collina <[email protected]>
Reviewed-By: Colin Ihrig <[email protected]>
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Reviewers

@ChALkeR ChALkeR ChALkeR left review comments
@addaleax addaleax addaleax left review comments
@mcollina mcollina mcollina approved these changes
@richardlau richardlau richardlau approved these changes
@aduh95 aduh95 aduh95 approved these changes
@gurgunday gurgunday gurgunday approved these changes

Uh oh!

There was an error while loading. Please reload this page.

Assignees

No one assigned

Labels

author ready PRs with CI started, the required approvals, and no outstanding review comments. c++ Issues and PRs that require attention from people who are familiar with C++. commit-queue-rebase PRs the Commit Queue should land as multiple self-contained commits. fast-track PRs proposed for a shorter-than-standard waiting period before landing. lib / src Issues and PRs involving general changes in the lib/ or src/ directories. needs-ci PRs that need a full CI run.

Projects

None yet

Milestone

No milestone

Development

Successfully merging this pull request may close these issues.

allocUnsafe is useless since 24

Uh oh!

There was an error while loading. Please reload this page.

10 participants

@joyeecheung @nodejs-github-bot @ChALkeR @aduh95 @panva @mcollina @addaleax @richardlau @gurgunday @targos
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
You are visitor 01402503 — GeezerVison does not store the pages you look up.
Best viewed with Netscape Navigator 4.7 or Internet Explorer 6 at 800×600. No cookies required.