Skip to content

[wasm] Bump Node to v22.16.0 for Emsdk 5.0.6 - #335

Merged
akoeplinger merged 8772 commits into
dotnet:dotnet/mainfrom
pavelsavara:dotnet/bump-node-24.7.0
Jun 9, 2026
Merged

akoeplinger merged 8772 commits into
dotnet:dotnet/mainfrom
pavelsavara:dotnet/bump-node-24.7.0

Conversation

@pavelsavara

@pavelsavara pavelsavara commented Apr 29, 2026 •

Copy link
Copy Markdown
Member

Contributes to dotnet/runtime#113786

Summary

Bumps dotnet/node to upstream nodejs/node tag v24.7.0 at d795edb56765d4ec743bcda5a0c1452bed74de0c.

Branch contents

https://github.com/pavelsavara/node/commits/dotnet/bump-node-24.7.0/

Validation

  • linux-x64 pack succeeded (0 errors)
  • Package: runtime.linux-x64.Microsoft.NETCore.Runtime.Wasm.Node.Transport.11.0.0-alpha.1.26253.2.nupkg (39M)

theanarkh and others added 30 commits July 26, 2025 01:32
PR-URL: nodejs#59059
Reviewed-By: Anna Henningsen <[email protected]>
Reviewed-By: Benjamin Gruenbaum <[email protected]>
Reviewed-By: James M Snell <[email protected]>
According to nodejs#59186 this
benchmark file takes 6 hours to complete a full benchmark/compare.js
script (60 runs in total) and this regression tests unrealitics to do
between Node.js releases. By using calibrate-n scripts I could find
a better N also ajusting some bench configs. e.g: avoid dead code
elimination by V8.

PR-URL: nodejs#59187
Refs: nodejs#59186
Reviewed-By: Vinícius Lourenço Claro Cardoso <[email protected]>
Reviewed-By: Luigi Pinca <[email protected]>
Align the code with the documentation and similar methods used to
execute os commands - the `args` argument should be optional, and if
omitted, treated as an empty array (`[]`).

Fixes: nodejs#58411
PR-URL: nodejs#58412
Reviewed-By: Luigi Pinca <[email protected]>
Reviewed-By: Ben Noordhuis <[email protected]>
Reviewed-By: Richard Lau <[email protected]>
PR-URL: nodejs#59190
Reviewed-By: Antoine du Hamel <[email protected]>
Reviewed-By: Ulises Gascón <[email protected]>
Reviewed-By: Rafael Gonzaga <[email protected]>
Reviewed-By: Luigi Pinca <[email protected]>
PR-URL: nodejs#59158
Fixes: nodejs#59145
Reviewed-By: Joyee Cheung <[email protected]>
Reviewed-By: Luigi Pinca <[email protected]>
Reviewed-By: Stefan Stojanovic <[email protected]>
Reviewed-By: James M Snell <[email protected]>
PR-URL: nodejs#59199
Reviewed-By: Michaël Zasso <[email protected]>
Reviewed-By: Luigi Pinca <[email protected]>
1. Make sure that the conditions are converted into arrays when
  being passed into user hooks.
2. Pass the conditions from user hooks into the ESM resolution
  so that it takes effect.

PR-URL: nodejs#59011
Fixes: nodejs#59003
Reviewed-By: Zeyu "Alex" Yang <[email protected]>
Reviewed-By: Jacob Smith <[email protected]>
PR-URL: nodejs#59043
Reviewed-By: James M Snell <[email protected]>
Reviewed-By: theanarkh <[email protected]>
Reviewed-By: Dario Piotrowicz <[email protected]>
Reviewed-By: Juan José Arboleda <[email protected]>
Reviewed-By: Luigi Pinca <[email protected]>
Reviewed-By: Yagiz Nizipli <[email protected]>
This does the same as NODE_USE_ENV_PROXY. When both are set,
like other options that can be configured from both sides,
the CLI flag takes precedence.

PR-URL: nodejs#59151
Fixes: nodejs#59100
Reviewed-By: Ilyas Shabi <[email protected]>
Reviewed-By: Matteo Collina <[email protected]>
Update `parallel/test-crypto-rsa-dsa` to prepare for updating
`deps/openssl` to later versions of OpenSSL which support implicit
rejections with `RSA_PKCS1_PADDING`.

PR-URL: nodejs#58100
Reviewed-By: Luigi Pinca <[email protected]>
Reviewed-By: Yagiz Nizipli <[email protected]>
Reviewed-By: James M Snell <[email protected]>
Reviewed-By: Filip Skokan <[email protected]>
Reviewed-By: Michaël Zasso <[email protected]>
Update the updater script and files under `deps/openssl/config` in
preparation for updating `deps/openssl` to OpenSSL 3.5.

Co-Authored-By: Michaël Zasso <[email protected]>
PR-URL: nodejs#58100
Reviewed-By: Luigi Pinca <[email protected]>
Reviewed-By: Yagiz Nizipli <[email protected]>
Reviewed-By: James M Snell <[email protected]>
Reviewed-By: Filip Skokan <[email protected]>
Reviewed-By: Michaël Zasso <[email protected]>
This commit refactors the callback in test/parallel/test-fs-read.js
to use common.mustSucceed() instead of common.mustCall().

common.mustSucceed() is the preferred helper for standard error-first
callbacks that are expected to succeed, as it provides an explicit
check that the `err` argument is null. This improves the clarity
and robustness of the test.

PR-URL: nodejs#59204
Reviewed-By: Zeyu "Alex" Yang <[email protected]>
Reviewed-By: Luigi Pinca <[email protected]>
PR-URL: nodejs#59144
Refs: nodejs#59142
Reviewed-By: James M Snell <[email protected]>
Reviewed-By: Filip Skokan <[email protected]>
Reviewed-By: Michaël Zasso <[email protected]>
PR-URL: nodejs#59113
Fixes: nodejs#58904
Reviewed-By: Richard Lau <[email protected]>
Reviewed-By: Ruy Adorno <[email protected]>
Reviewed-By: James M Snell <[email protected]>
Reviewed-By: Marco Ippolito <[email protected]>
PR-URL: nodejs#59234
Reviewed-By: Michaël Zasso <[email protected]>
Reviewed-By: James M Snell <[email protected]>
Reviewed-By: Filip Skokan <[email protected]>
Reviewed-By: Luigi Pinca <[email protected]>
Reviewed-By: Richard Lau <[email protected]>
Reviewed-By: Tobias Nießen <[email protected]>
PR-URL: nodejs#59234
Reviewed-By: Michaël Zasso <[email protected]>
Reviewed-By: James M Snell <[email protected]>
Reviewed-By: Filip Skokan <[email protected]>
Reviewed-By: Luigi Pinca <[email protected]>
Reviewed-By: Richard Lau <[email protected]>
Reviewed-By: Tobias Nießen <[email protected]>
Notable changes:

cli:
  * (SEMVER-MINOR) support `${pid}` placeholder in `--cpu-prof-name` (Haram Jeong) nodejs#59072
crypto:
  * (SEMVER-MINOR) add `tls.setDefaultCACertificates()` (Joyee Cheung) nodejs#58822
deps:
  * upgrade to openssl-3.5.1 (Node.js GitHub Bot) nodejs#59234
dns:
  * (SEMVER-MINOR) support max timeout (theanarkh) nodejs#58440
doc:
  * update the instruction on how to verify releases (Antoine du Hamel) nodejs#59113
esm:
  * (SEMVER-MINOR) unflag `--experimental-wasm-modules` (Guy Bedford) nodejs#57038
http,https:
  * (SEMVER-MINOR) add built-in proxy support in http/https.request and `Agent` (Joyee Cheung) nodejs#58980
net:
  * (SEMVER-MINOR) update net.blocklist to allow file save and file management (alphaleadership) nodejs#58087
test:
  * (SEMVER-MINOR) move http proxy tests to test/client-proxy (Joyee Cheung) nodejs#58980
worker:
  * (SEMVER-MINOR) add web locks api (ishabi) nodejs#58666

PR-URL: nodejs#59257
Original commit message:

    Expose dispose and asyncDispose symbols to C++

    Since `Symbol.dispose` has been exposed to JS we need to be able to
    access the native v8::Symbol too.

    Change-Id: I9111d2806630efdd8bb5f931effa9adad3c85ae5
    Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/6410112
    Commit-Queue: Erik Corry <[email protected]>
    Reviewed-by: Erik Corry <[email protected]>
    Reviewed-by: Leszek Swirski <[email protected]>
    Cr-Commit-Position: refs/heads/main@{#99590}

PR-URL: nodejs#58818
Refs: v8/v8@1c3e018
Reviewed-By: Michaël Zasso <[email protected]>
Reviewed-By: Rafael Gonzaga <[email protected]>
PR-URL: nodejs#59219
Reviewed-By: Zeyu "Alex" Yang <[email protected]>
Reviewed-By: Luigi Pinca <[email protected]>
Reviewed-By: Michaël Zasso <[email protected]>
Reviewed-By: Juan José Arboleda <[email protected]>
This commit adds support for specifying --max-old-space-size as a
percentage of system memory, in addition to the existing MB format.
A new HandleMaxOldSpaceSizePercentage method parses percentage values,
validates that they are within the 0-100% range, and provides clear
error messages for invalid input. The heap size is now calculated
based on available system memory when a percentage is used.

Test coverage has been added for both valid and invalid cases.
Documentation and the JSON schema for CLI options have been updated
with examples for both formats.

Refs: nodejs#57447
PR-URL: nodejs#59082
Reviewed-By: Chengzhong Wu <[email protected]>
Reviewed-By: James M Snell <[email protected]>
Reviewed-By: Moshe Atlow <[email protected]>
Reviewed-By: theanarkh <[email protected]>
Reviewed-By: Daeyeon Jeong <[email protected]>
PR-URL: nodejs#59177
Reviewed-By: Anna Henningsen <[email protected]>
Reviewed-By: Ilyas Shabi <[email protected]>
PR-URL: nodejs#59104
Refs: nodejs#59090
Reviewed-By: Stefan Stojanovic <[email protected]>
Reviewed-By: Kohei Ueno <[email protected]>
PR-URL: nodejs#59229
Reviewed-By: Antoine du Hamel <[email protected]>
Reviewed-By: Luigi Pinca <[email protected]>
Reviewed-By: Rafael Gonzaga <[email protected]>
Co-authored-by: Joyee Cheung <[email protected]>
PR-URL: nodejs#59026
Reviewed-By: Joyee Cheung <[email protected]>
Reviewed-By: Zeyu "Alex" Yang <[email protected]>
Reviewed-By: Luigi Pinca <[email protected]>
Corrects the misspelling of "unmask" to "umask"

PR-URL: nodejs#59180
Reviewed-By: Ulises Gascón <[email protected]>
Reviewed-By: Marco Ippolito <[email protected]>
Reviewed-By: Luigi Pinca <[email protected]>
Fixes: nodejs#57612
PR-URL: nodejs#57613
Reviewed-By: Luigi Pinca <[email protected]>
Reviewed-By: James M Snell <[email protected]>
Reviewed-By: theanarkh <[email protected]>
As a first step to porting portions of the pino structured
logger into the runtime, this commit ports the SonicBoom
module to the fs module as Utf8Stream.

This is a faithful port of the SonicBoom module with some
modern updates, such as converting to a Class and using
Symbol.dispose. The bulk of the implementation is unchanged
from the original.

PR-URL: nodejs#58897
Reviewed-By: Matteo Collina <[email protected]>
Reviewed-By: Vinícius Lourenço Claro Cardoso <[email protected]>
PR-URL: nodejs#59221
Reviewed-By: Benjamin Gruenbaum <[email protected]>
Reviewed-By: Marco Ippolito <[email protected]>
Reviewed-By: Luigi Pinca <[email protected]>
Reviewed-By: Pietro Marchini <[email protected]>
Reviewed-By: Chemi Atlow <[email protected]>
There are two phases in module linking: link, and instantiate. These
two operations are required to be separated to allow cyclic
dependencies.

`v8::Module::InstantiateModule` is only required to be invoked on the
root module. The global references created by `ModuleWrap::Link` are
only cleared at `ModuleWrap::Instantiate`. So the global references
created for depended modules are usually not cleared because
`ModuleWrap::Instantiate` is not invoked for each of depended modules,
and caused memory leak.

The change references the linked modules in an object internal slot.

This is not an issue for Node.js ESM support as these modules can not be
off-loaded. However, this could be outstanding for `vm.Module`.

PR-URL: nodejs#59117
Fixes: nodejs#50113
Reviewed-By: Joyee Cheung <[email protected]>
Reviewed-By: Matteo Collina <[email protected]>
pavelsavara and others added 25 commits May 7, 2026 14:00
…W reference

- Bump Linux container images from cbl-mariner-2.0-cross-* to azurelinux-3.0-net11.0-cross-*
- Add explicit constructors to V8 RunningLocalHeap for Apple Clang compatibility
- Remove node_etw_provider.man reference (removed in Node v22.16.0)
…names

- biarch images don't exist in azurelinux-3.0; use cross-arm64, cross-amd64-musl, cross-arm64-musl
- Clear rootfsHost for non-native targets (host compiler runs natively on azurelinux)
- Update rootfsTarget paths: /crossrootfs/x64 and /crossrootfs/arm64 (no -alpine suffix)
ICU 77's genccode requires -c <arch> when compiled with ClangCL to determine
the COFF machine type for .obj generation. Without it, strcmp on nullptr
causes std::terminate() (exit code 57005/0xDEAD).
# Conflicts:
#	tools/v8_gypfiles/directory.build.props
#	vcbuild.bat
…de-24.7.0-alex

# Conflicts:
#	eng/Version.Details.xml
#	eng/Versions.props
@akoeplinger
akoeplinger force-pushed the dotnet/bump-node-24.7.0 branch from 0f4541f to a15d55b Compare June 8, 2026 23:03
@akoeplinger
akoeplinger marked this pull request as ready for review June 9, 2026 13:13
@akoeplinger
akoeplinger merged commit c886c64 into dotnet:dotnet/main Jun 9, 2026
10 checks passed
kotlarmilos added a commit that referenced this pull request Oct 5, 2026
Backport #375 as reapplied by #388, including the dependency cleanup and brace-expansion fix. Preserve the .NET 10 SDK, Arcade, Python and LLVM package versions, feeds, and publishing configuration. Carry forward the Node 24 build prerequisites from #335.

Co-authored-by: Copilot <[email protected]>
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.