Daijiro Wachi
846806bdb4
doc: fix duplicate word "for for" in compile cache
...
PR-URL: https://github.com/nodejs/node/pull/62917
Reviewed-By: Marco Ippolito <marcoippolito54@gmail.com >
Reviewed-By: Jacob Smith <jacob@frende.me >
Reviewed-By: Daeyeon Jeong <daeyeon.dev@gmail.com >
Reviewed-By: Darshan Sen <raisinten@gmail.com >
Reviewed-By: Luigi Pinca <luigipinca@gmail.com >
Reviewed-By: Stephen Belanger <admin@stephenbelanger.com >
2026-04-26 21:16:57 +09:00
Daijiro Wachi
11f76b45ab
tools: consolidate and simplify .editorconfig deps section
...
PR-URL: https://github.com/nodejs/node/pull/62887
Reviewed-By: Chengzhong Wu <legendecas@gmail.com >
Reviewed-By: Luigi Pinca <luigipinca@gmail.com >
2026-04-26 19:00:37 +09:00
Gürgün Dayıoğlu
c20269679e
url: optimize URLSearchParams set/delete duplicate handling
...
PR-URL: https://github.com/nodejs/node/pull/62266
Reviewed-By: Matteo Collina <matteo.collina@gmail.com >
Reviewed-By: Aviv Keller <me@aviv.sh >
2026-04-26 09:04:48 +00:00
Gürgün Dayıoğlu
44f9fc3643
process: handle rejections only when needed
...
Signed-off-by: Gürgün Dayıoğlu <hey@gurgun.day >
PR-URL: https://github.com/nodejs/node/pull/62919
Reviewed-By: Stephen Belanger <admin@stephenbelanger.com >
Reviewed-By: Matteo Collina <matteo.collina@gmail.com >
Reviewed-By: Ilyas Shabi <ilyasshabi94@gmail.com >
2026-04-26 08:39:10 +00:00
Filip Skokan
0f684239c7
tools: add non-default OpenSSL versions to the test-shared workflow
...
Signed-off-by: Filip Skokan <panva.ip@gmail.com >
PR-URL: https://github.com/nodejs/node/pull/62862
Reviewed-By: Yagiz Nizipli <yagiz@nizipli.com >
Reviewed-By: Antoine du Hamel <duhamelantoine1995@gmail.com >
2026-04-26 02:54:37 +00:00
Daijiro Wachi
34adeebaaf
doc: fix doubled word typo in stream_iter.md
...
PR-URL: https://github.com/nodejs/node/pull/62916
Reviewed-By: Richard Lau <richard.lau@ibm.com >
Reviewed-By: Deokjin Kim <deokjin81.kim@gmail.com >
Reviewed-By: Luigi Pinca <luigipinca@gmail.com >
2026-04-25 18:26:01 +00:00
Daeyeon Jeong
42a154bad1
stream: validate ReadableStream.from iterator objects
...
Signed-off-by: Daeyeon Jeong <daeyeon.dev@gmail.com >
PR-URL: https://github.com/nodejs/node/pull/62911
Reviewed-By: Filip Skokan <panva.ip@gmail.com >
Reviewed-By: Matthew Aitken <maitken033380023@gmail.com >
Reviewed-By: Mattias Buelens <mattias@buelens.com >
2026-04-25 14:31:42 +00:00
Matteo Collina
21436f0405
http: make req.headers have a null prototype
...
Makes IncomingMessage.prototype.headers and trailers have a null
prototype, matching the existing behavior of headersDistinct and
trailersDistinct.
Fixes prototype pollution concerns where headers like __proto__
could be interpreted as prototype manipulation.
Refs: https://github.com/nodejs/node/issues/61771
PR-URL: https://github.com/nodejs/node/pull/62900
Reviewed-By: Jordan Harband <ljharb@gmail.com >
Reviewed-By: Stephen Belanger <admin@stephenbelanger.com >
Reviewed-By: Gürgün Dayıoğlu <hey@gurgun.day >
Reviewed-By: Tim Perry <pimterry@gmail.com >
Reviewed-By: Filip Skokan <panva.ip@gmail.com >
Reviewed-By: Daijiro Wachi <daijiro.wachi@gmail.com >
Reviewed-By: René <contact.9a5d6388@renegade334.me.uk >
Reviewed-By: Luigi Pinca <luigipinca@gmail.com >
Reviewed-By: Marco Ippolito <marcoippolito54@gmail.com >
2026-04-25 09:28:53 +00:00
Daijiro Wachi
10ae641e6c
lib: fix FLOAT_32 and FLOAT_64 type constants in ffi
...
PR-URL: https://github.com/nodejs/node/pull/62892
Reviewed-By: Anna Henningsen <anna@addaleax.net >
Reviewed-By: Bryan English <bryan@bryanenglish.com >
2026-04-25 18:26:05 +09:00
Filip Skokan
ce21c870d9
crypto: remove Argon2 KDF derivation from its job setup
...
Fixes: https://github.com/nodejs/node/issues/62861
Signed-off-by: Filip Skokan <panva.ip@gmail.com >
PR-URL: https://github.com/nodejs/node/pull/62863
Fixes: https://github.com/nodejs/node/issues/62861
Reviewed-By: Yagiz Nizipli <yagiz@nizipli.com >
Reviewed-By: Сковорода Никита Андреевич <chalkerx@gmail.com >
2026-04-25 09:00:29 +00:00
skooch
da7f2c8ccf
deps: cherry-pick libuv/libuv@439a54b
...
Original commit message:
unix: treat futimens() as best-effort in copyfile
futimens() may fail with EPERM on CIFS/SMB shares that do not
support setting timestamps. Since preserving timestamps during
copyfile is best-effort, ignore the return value unconditionally.
Refs: https://github.com/libuv/libuv/pull/4396
Fixes: https://github.com/nodejs/node/issues/56248
PR-URL: https://github.com/nodejs/node/pull/62881
Refs: https://github.com/libuv/libuv/pull/5053
Refs: https://github.com/libuv/libuv/pull/4396
Reviewed-By: Luigi Pinca <luigipinca@gmail.com >
Reviewed-By: Santiago Gimeno <santiago.gimeno@gmail.com >
2026-04-25 08:14:31 +00:00
Filip Skokan
8f348bc968
crypto: reject duplicate ML-KEM JWK key_ops
...
Signed-off-by: Filip Skokan <panva.ip@gmail.com >
PR-URL: https://github.com/nodejs/node/pull/62905
Reviewed-By: Yagiz Nizipli <yagiz@nizipli.com >
Reviewed-By: Сковорода Никита Андреевич <chalkerx@gmail.com >
2026-04-25 07:14:57 +00:00
Filip Skokan
fe7ebccd0c
crypto: deduplicate and canonicalize CryptoKey usages
...
Fixes: https://github.com/nodejs/node/issues/62899
Signed-off-by: Filip Skokan <panva.ip@gmail.com >
PR-URL: https://github.com/nodejs/node/pull/62902
Fixes: https://github.com/nodejs/node/issues/62899
Reviewed-By: Yagiz Nizipli <yagiz@nizipli.com >
Reviewed-By: Сковорода Никита Андреевич <chalkerx@gmail.com >
Reviewed-By: Daeyeon Jeong <daeyeon.dev@gmail.com >
2026-04-25 07:14:46 +00:00
Matteo Collina
4744070f51
fs: add followSymlinks option to glob
...
PR-URL: https://github.com/nodejs/node/pull/62695
Reviewed-By: Moshe Atlow <moshe@atlow.co.il >
2026-04-24 21:52:52 +00:00
Robert Nagy
8176c2ce8d
buffer: fix end parameter bugs in indexOf/lastIndexOf
...
- Fix FastIndexOfNumber parameter order mismatch (end_i64 and
is_forward were swapped vs the JS call site and slow path)
- Clamp negative end values to 0 to prevent size_t overflow in
IndexOfString, IndexOfBuffer, and IndexOfNumberImpl
- Clamp empty needle result to search_end
Signed-off-by: Robert Nagy <ronagy@icloud.com >
Assisted-by: Claude Opus 4.6 (1M context) <noreply@anthropic.com >
PR-URL: https://github.com/nodejs/node/pull/62711
Fixes: https://github.com/nodejs/node/issues/62873
Reviewed-By: Filip Skokan <panva.ip@gmail.com >
Reviewed-By: Yagiz Nizipli <yagiz@nizipli.com >
2026-04-24 19:41:22 +00:00
Michaël Zasso
fcff458145
test: skip wasm allocation tests in workers
...
Refs: https://github.com/nodejs/node/issues/62870
PR-URL: https://github.com/nodejs/node/pull/61898
Reviewed-By: Antoine du Hamel <duhamelantoine1995@gmail.com >
Reviewed-By: Filip Skokan <panva.ip@gmail.com >
Reviewed-By: Rafael Gonzaga <rafael.nunu@hotmail.com >
Reviewed-By: Chengzhong Wu <legendecas@gmail.com >
2026-04-24 18:01:37 +02:00
Michaël Zasso
61c9b76b32
test: update wpt Wasm jsapi expectations
...
PR-URL: https://github.com/nodejs/node/pull/61898
Reviewed-By: Antoine du Hamel <duhamelantoine1995@gmail.com >
Reviewed-By: Filip Skokan <panva.ip@gmail.com >
Reviewed-By: Rafael Gonzaga <rafael.nunu@hotmail.com >
Reviewed-By: Chengzhong Wu <legendecas@gmail.com >
2026-04-24 18:01:37 +02:00
Joyee Cheung
4f3e6a433a
build: enable V8_VERIFY_WRITE_BARRIERS in debug build
...
PR-URL: https://github.com/nodejs/node/pull/61898
Reviewed-By: Antoine du Hamel <duhamelantoine1995@gmail.com >
Reviewed-By: Filip Skokan <panva.ip@gmail.com >
Reviewed-By: Rafael Gonzaga <rafael.nunu@hotmail.com >
Reviewed-By: Chengzhong Wu <legendecas@gmail.com >
2026-04-24 18:01:36 +02:00
Michaël Zasso
492d65a9e4
tools: remove v8_initializers_slow workaround from v8.gyp
...
PR-URL: https://github.com/nodejs/node/pull/61898
Reviewed-By: Antoine du Hamel <duhamelantoine1995@gmail.com >
Reviewed-By: Filip Skokan <panva.ip@gmail.com >
Reviewed-By: Rafael Gonzaga <rafael.nunu@hotmail.com >
Reviewed-By: Chengzhong Wu <legendecas@gmail.com >
2026-04-24 18:01:36 +02:00
Michaël Zasso
f59bd6b186
test: support presence of Temporal global
...
PR-URL: https://github.com/nodejs/node/pull/61898
Reviewed-By: Antoine du Hamel <duhamelantoine1995@gmail.com >
Reviewed-By: Filip Skokan <panva.ip@gmail.com >
Reviewed-By: Rafael Gonzaga <rafael.nunu@hotmail.com >
Reviewed-By: Chengzhong Wu <legendecas@gmail.com >
2026-04-24 18:01:36 +02:00
gahaas
9b67b06c69
test: add type tags to uses of v8::External
...
PR-URL: https://github.com/nodejs/node/pull/61898
Reviewed-By: Antoine du Hamel <duhamelantoine1995@gmail.com >
Reviewed-By: Filip Skokan <panva.ip@gmail.com >
Reviewed-By: Rafael Gonzaga <rafael.nunu@hotmail.com >
Reviewed-By: Chengzhong Wu <legendecas@gmail.com >
2026-04-24 18:01:36 +02:00
gahaas
49c2b4b7cf
src: replace uses of deprecated v8::External APIs
...
PR-URL: https://github.com/nodejs/node/pull/61898
Reviewed-By: Antoine du Hamel <duhamelantoine1995@gmail.com >
Reviewed-By: Filip Skokan <panva.ip@gmail.com >
Reviewed-By: Rafael Gonzaga <rafael.nunu@hotmail.com >
Reviewed-By: Chengzhong Wu <legendecas@gmail.com >
2026-04-24 18:01:36 +02:00
Igor Sheludko
8aea917381
src: stop using v8::PropertyCallbackInfo<T>::This()
...
Refs: https://github.com/nodejs/node/issues/60616
PR-URL: https://github.com/nodejs/node/pull/61898
Reviewed-By: Antoine du Hamel <duhamelantoine1995@gmail.com >
Reviewed-By: Filip Skokan <panva.ip@gmail.com >
Reviewed-By: Rafael Gonzaga <rafael.nunu@hotmail.com >
Reviewed-By: Chengzhong Wu <legendecas@gmail.com >
2026-04-24 18:01:35 +02:00
Clemens Backes
f3e0b791bb
src: avoid deprecated Wasm API
...
Use the new API which gets a `ModuleCachingCallback` parameter.
Refs: https://crrev.com/c/7078551
PR-URL: https://github.com/nodejs/node/pull/61898
Reviewed-By: Antoine du Hamel <duhamelantoine1995@gmail.com >
Reviewed-By: Filip Skokan <panva.ip@gmail.com >
Reviewed-By: Rafael Gonzaga <rafael.nunu@hotmail.com >
Reviewed-By: Chengzhong Wu <legendecas@gmail.com >
2026-04-24 18:01:35 +02:00
Clemens Backes
fafe164991
src: avoid deprecated FixedArray::Get
...
Use the method without context parameter; the old API is deprecated.
Refs: https://crrev.com/c/7141498
PR-URL: https://github.com/nodejs/node/pull/61898
Reviewed-By: Antoine du Hamel <duhamelantoine1995@gmail.com >
Reviewed-By: Filip Skokan <panva.ip@gmail.com >
Reviewed-By: Rafael Gonzaga <rafael.nunu@hotmail.com >
Reviewed-By: Chengzhong Wu <legendecas@gmail.com >
2026-04-24 18:01:35 +02:00
Richard Lau
bbae66f8f5
tools: add Rust args to tools/make-v8.sh
...
Add args to `tools/make-v8.sh` for compiling Rust-based components,
such as Temporal, for the Linux on ppc64le and s390x V8 CI builds.
PR-URL: https://github.com/nodejs/node/pull/61898
Reviewed-By: Antoine du Hamel <duhamelantoine1995@gmail.com >
Reviewed-By: Filip Skokan <panva.ip@gmail.com >
Reviewed-By: Rafael Gonzaga <rafael.nunu@hotmail.com >
Reviewed-By: Chengzhong Wu <legendecas@gmail.com >
2026-04-24 18:01:35 +02:00
Michaël Zasso
db03be7fc6
tools: update V8 gypfiles for 14.6
...
Refs: https://github.com/v8/v8/commit/51d20674162731ffe3a191cf6a2369b1655cadaf
PR-URL: https://github.com/nodejs/node/pull/61898
Reviewed-By: Antoine du Hamel <duhamelantoine1995@gmail.com >
Reviewed-By: Filip Skokan <panva.ip@gmail.com >
Reviewed-By: Rafael Gonzaga <rafael.nunu@hotmail.com >
Reviewed-By: Chengzhong Wu <legendecas@gmail.com >
2026-04-24 18:01:34 +02:00
Michaël Zasso
6f9100cf91
tools: update V8 gypfiles for 14.5
...
PR-URL: https://github.com/nodejs/node/pull/61898
Reviewed-By: Antoine du Hamel <duhamelantoine1995@gmail.com >
Reviewed-By: Filip Skokan <panva.ip@gmail.com >
Reviewed-By: Rafael Gonzaga <rafael.nunu@hotmail.com >
Reviewed-By: Chengzhong Wu <legendecas@gmail.com >
2026-04-24 18:01:34 +02:00
Michaël Zasso and StefanStojanovic
b5031b3205
tools: update V8 gypfiles for 14.4
...
Co-Authored-By: StefanStojanovic <stefan.stojanovic@janeasystems.com >
PR-URL: https://github.com/nodejs/node/pull/61898
Reviewed-By: Antoine du Hamel <duhamelantoine1995@gmail.com >
Reviewed-By: Filip Skokan <panva.ip@gmail.com >
Reviewed-By: Rafael Gonzaga <rafael.nunu@hotmail.com >
Reviewed-By: Chengzhong Wu <legendecas@gmail.com >
2026-04-24 18:01:34 +02:00
Joyee Cheung
fff9a8aa03
build,test: test array index hash collision
...
This enables v8_enable_seeded_array_index_hash and add a test for it.
deps: V8: backport 0a8b1cdcc8b2
Original commit message:
implement rapidhash secret generation
Bug: 409717082
Change-Id: I471f33d66de32002f744aeba534c1d34f71e27d2
Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/6733490
Reviewed-by: Leszek Swirski <leszeks@chromium.org >
Commit-Queue: snek <snek@chromium.org >
Cr-Commit-Position: refs/heads/main@{#101499}
deps: V8: backport 185f0fe09b72
Original commit message:
[numbers] Refactor HashSeed as a lightweight view over ByteArray
Instead of copying the seed and secrets into a struct with value
fields, HashSeed now stores a pointer pointing either into the
read-only ByteArray, or the static default seed for off-heap
HashSeed::Default() calls. The underlying storage is always
8-byte aligned so we can cast it directly into a struct.
Change-Id: I5896a7f2ae24296eb4c80b757a5d90ac70a34866
Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/7609720
Reviewed-by: Leszek Swirski <leszeks@chromium.org >
Commit-Queue: Joyee Cheung <joyee@igalia.com >
Cr-Commit-Position: refs/heads/main@{#105531}
deps: V8: backport 1361b2a49d02
Original commit message:
[strings] improve array index hash distribution
Previously, the hashes stored in a Name's raw_hash_field for decimal
numeric strings (potential array indices) consist of the literal
integer value along with the length of the string. This means
consecutive numeric strings can have consecutive hash values, which
can lead to O(n^2) probing for insertion in the worst case when e.g.
a non-numeric string happen to land in the these buckets.
This patch adds a build-time flag v8_enable_seeded_array_index_hash
that scrambles the 24-bit array-index value stored in a Name's
raw_hash_field to improve the distribution.
x ^= x >> kShift; x = (x * m1) & kMask; // round 1
x ^= x >> kShift; x = (x * m2) & kMask; // round 2
x ^= x >> kShift; // finalize
To decode, apply the same steps with the modular inverses of m1
and m2 in reverse order.
x ^= x >> kShift; x = (x * m2_inv) & kMask; // round 1
x ^= x >> kShift; x = (x * m1_inv) & kMask; // round 2
x ^= x >> kShift; // finalize
where kShift = kArrayIndexValueBits / 2, kMask = kArrayIndexValueMask,
m1, m2 (both odd) are the lower bits of the rapidhash secrets, m1_inv,
m2_inv (modular inverses) are precomputed modular inverse of m1 and m2.
The pre-computed values are appended to the hash_seed ByteArray in
ReadOnlyRoots and accessed in generated code to reduce overhead.
In call sites that don't already have access to the seeds, we read them
from the current isolate group/isolate's read only roots.
To consolidate the code that encode/decode these hashes, this patch
adds MakeArrayIndexHash/DecodeArrayIndexFromHashField in C++ and CSA
that perform seeding/unseeding if enabled, and updates places where
encoding/decoding of array index is needed to use them.
Bug: 477515021
Change-Id: I350afe511951a54c4378396538152cc56565fd55
Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/7564330
Reviewed-by: Leszek Swirski <leszeks@chromium.org >
Commit-Queue: Joyee Cheung <joyee@igalia.com >
Cr-Commit-Position: refs/heads/main@{#105596}
deps: V8: cherry-pick aac14dd95e5b
Original commit message:
[string] add 3rd round to seeded array index hash
Since we already have 3 derived secrets, and arithmetics are
relatively cheap, add a 3rd round to the xorshift-multiply
seeding scheme. This brings the bias from ~3.4 to ~0.4.
Bug: 477515021
Change-Id: I1ef48954bcee8768d8c90db06ac8adb02f06cebf
Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/7655117
Reviewed-by: Chengzhong Wu <cwu631@bloomberg.net >
Commit-Queue: Joyee Cheung <joyee@igalia.com >
Reviewed-by: Leszek Swirski <leszeks@chromium.org >
Cr-Commit-Position: refs/heads/main@{#105824}
PR-URL: https://github.com/nodejs-private/node-private/pull/834
CVE-ID: CVE-2026-21717
deps: V8: backport 185f0fe09b72
Original commit message:
[numbers] Refactor HashSeed as a lightweight view over ByteArray
Instead of copying the seed and secrets into a struct with value
fields, HashSeed now stores a pointer pointing either into the
read-only ByteArray, or the static default seed for off-heap
HashSeed::Default() calls. The underlying storage is always
8-byte aligned so we can cast it directly into a struct.
Change-Id: I5896a7f2ae24296eb4c80b757a5d90ac70a34866
Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/7609720
Reviewed-by: Leszek Swirski <leszeks@chromium.org >
Commit-Queue: Joyee Cheung <joyee@igalia.com >
Cr-Commit-Position: refs/heads/main@{#105531}
deps: V8: backport 1361b2a49d02
Original commit message:
[strings] improve array index hash distribution
Previously, the hashes stored in a Name's raw_hash_field for decimal
numeric strings (potential array indices) consist of the literal
integer value along with the length of the string. This means
consecutive numeric strings can have consecutive hash values, which
can lead to O(n^2) probing for insertion in the worst case when e.g.
a non-numeric string happen to land in the these buckets.
This patch adds a build-time flag v8_enable_seeded_array_index_hash that
scrambles the 24-bit array-index value stored in a Name's raw_hash_field
to improve the distribution.
x ^= x >> kShift; x = (x * m1) & kMask; // round 1
x ^= x >> kShift; x = (x * m2) & kMask; // round 2
x ^= x >> kShift; // finalize
To decode, apply the same steps with the modular inverses of m1 and m2
in reverse order.
x ^= x >> kShift; x = (x * m2_inv) & kMask; // round 1
x ^= x >> kShift; x = (x * m1_inv) & kMask; // round 2
x ^= x >> kShift; // finalize
where kShift = kArrayIndexValueBits / 2, kMask = kArrayIndexValueMask,
m1, m2 (both odd) are the lower bits of the rapidhash secrets, m1_inv,
m2_inv (modular inverses) are precomputed modular inverse of m1 and m2.
The pre-computed values are appended to the hash_seed ByteArray in
ReadOnlyRoots and accessed in generated code to reduce overhead.
In call sites that don't already have access to the seeds, we read them
from the current isolate group/isolate's read only roots.
To consolidate the code that encode/decode these hashes, this patch
adds MakeArrayIndexHash/DecodeArrayIndexFromHashField in C++ and CSA
that perform seeding/unseeding if enabled, and updates places where
encoding/decoding of array index is needed to use them.
Bug: 477515021
Change-Id: I350afe511951a54c4378396538152cc56565fd55
Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/7564330
Reviewed-by: Leszek Swirski <leszeks@chromium.org >
Commit-Queue: Joyee Cheung <joyee@igalia.com >
Cr-Commit-Position: refs/heads/main@{#105596}
deps: V8: cherry-pick aac14dd95e5b
Original commit message:
[string] add 3rd round to seeded array index hash
Since we already have 3 derived secrets, and arithmetics are
relatively cheap, add a 3rd round to the xorshift-multiply
seeding scheme. This brings the bias from ~3.4 to ~0.4.
Bug: 477515021
Change-Id: I1ef48954bcee8768d8c90db06ac8adb02f06cebf
Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/7655117
Reviewed-by: Chengzhong Wu <cwu631@bloomberg.net >
Commit-Queue: Joyee Cheung <joyee@igalia.com >
Reviewed-by: Leszek Swirski <leszeks@chromium.org >
Cr-Commit-Position: refs/heads/main@{#105824}
Co-authored-by: Joyee Cheung <joyeec9h3@gmail.com >
Refs: https://hackerone.com/reports/3511792
Refs: https://github.com/v8/v8/commit/aac14dd95e5be0d487eba6bcdaf9cef4f8bd806c
PR-URL: https://github.com/nodejs/node/pull/61898
Reviewed-By: Antoine du Hamel <duhamelantoine1995@gmail.com >
Reviewed-By: Filip Skokan <panva.ip@gmail.com >
Reviewed-By: Rafael Gonzaga <rafael.nunu@hotmail.com >
Reviewed-By: Chengzhong Wu <legendecas@gmail.com >
2026-04-24 18:01:34 +02:00
Abdirahim Musse
b07bc44831
deps: fix V8 race condition for AIX
...
aix: simplify OS::DecommitPages implementation
Replace complex mmap/munmap retry logic with mprotect + madvise
approach.
This fixes a race condition that was causing test failures in Node.js.
Node.js stress test was run with this fix and testing shows
0 failures out of 1000 runs of wpt/test-wasm-jsapi with this
patch compared to 224 failures without it.
Refs: https://github.com/nodejs/node/issues/62647
Refs: https://chromium-review.googlesource.com/c/v8/v8/+/7780464
PR-URL: https://github.com/nodejs/node/pull/61898
Reviewed-By: Antoine du Hamel <duhamelantoine1995@gmail.com >
Reviewed-By: Filip Skokan <panva.ip@gmail.com >
Reviewed-By: Rafael Gonzaga <rafael.nunu@hotmail.com >
Reviewed-By: Chengzhong Wu <legendecas@gmail.com >
2026-04-24 18:01:33 +02:00
LuYahan
8405ee9fe4
deps: V8: cherry-pick cd2c216e7658
...
Original commit message:
[riscv][jspi] Clear EPT entry on stack return
Port commit 54cf5fa964f0734a8277ea2837aa2e4168e3240a
Bug: 485784597
Change-Id: I4a7e12d9047f7a4257be4711d9d6645d42f02a38
Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/7608971
Commit-Queue: Ji Qiu <qiuji@iscas.ac.cn >
Reviewed-by: Ji Qiu <qiuji@iscas.ac.cn >
Cr-Commit-Position: refs/heads/main@{#105464}
Refs: https://github.com/v8/v8/commit/cd2c216e7658c19bc6501fc785ac2f4be1a3734f
PR-URL: https://github.com/nodejs/node/pull/61898
Reviewed-By: Antoine du Hamel <duhamelantoine1995@gmail.com >
Reviewed-By: Filip Skokan <panva.ip@gmail.com >
Reviewed-By: Rafael Gonzaga <rafael.nunu@hotmail.com >
Reviewed-By: Chengzhong Wu <legendecas@gmail.com >
2026-04-24 18:01:33 +02:00
Igor Sheludko and Michaël Zasso
4dafa6891a
deps: V8: backport 088b7112e7ab
...
Original commit message:
[runtime] Fix contextual stores to global with interceptor
According to the spec, contextual store in strict mode must first
check whether property exists and if not, the ReferenceError
should be thrown instead of calling the interceptor setter. See
https://tc39.es/ecma262/#sec-object-environment-records-setmutablebinding-n-v-s
Drive-by:
- introduce new Api v8::Object::GetPropertyAttributes(..) which is
able to return "property does not exist" result, which wasn't
possible with the existing GetPropertyAttributes(..) Api,
- update GenericInterceptor* callbacks in test-api-interceptors.cc
to better suite for implementing a proxy-like interceptor.
Bug: 455600234
Change-Id: I0986c18c406844f58c453e7aa7513c52a9097e04
Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/7718821
Reviewed-by: Leszek Swirski <leszeks@chromium.org >
Commit-Queue: Igor Sheludko <ishell@chromium.org >
Cr-Commit-Position: refs/heads/main@{#106322}
Refs: https://github.com/v8/v8/commit/088b7112e7ab9a38431ca15674890b7c00b7a38d
Co-authored-by: Michaël Zasso <targos@protonmail.com >
PR-URL: https://github.com/nodejs/node/pull/61898
Reviewed-By: Antoine du Hamel <duhamelantoine1995@gmail.com >
Reviewed-By: Filip Skokan <panva.ip@gmail.com >
Reviewed-By: Rafael Gonzaga <rafael.nunu@hotmail.com >
Reviewed-By: Chengzhong Wu <legendecas@gmail.com >
2026-04-24 18:01:33 +02:00
Joyee Cheung
2387042c11
deps: V8: cherry-pick 00f6e834029f
...
Original commit message:
[runtime] always sort transition arrays during rehashing
After rehashing, the arrays are no longer in hash-sorted order.
In this case, we need to force a re-sort even for small arrays,
so that subsequent linear searches can find the correct transition
and avoid inserting duplicates.
Refs: https://github.com/nodejs/node/pull/61898#issuecomment-4168690640
Change-Id: Ia813d1fb9d23e08012811d672052d235c0e0bf4d
Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/7723678
Commit-Queue: Joyee Cheung <joyee@igalia.com >
Reviewed-by: Igor Sheludko <ishell@chromium.org >
Cr-Commit-Position: refs/heads/main@{#106255}
Refs: https://github.com/v8/v8/commit/00f6e834029f472ac98514b16a61b5393eb591d9
PR-URL: https://github.com/nodejs/node/pull/61898
Reviewed-By: Antoine du Hamel <duhamelantoine1995@gmail.com >
Reviewed-By: Filip Skokan <panva.ip@gmail.com >
Reviewed-By: Rafael Gonzaga <rafael.nunu@hotmail.com >
Reviewed-By: Chengzhong Wu <legendecas@gmail.com >
2026-04-24 18:01:33 +02:00
Joyee Cheung and Joyee Cheung
13fb819110
deps: V8: backport bef0d9c1bc90
...
Original commit message:
[api] Add V8::GetWasmMemoryReservationSizeInBytes()
When the system does not have enough virtual memory for the wasm
cage, installing the trap handler would cause any code allocating
wasm memory to throw. Therefore it's useful for the embedder to
know when the system doesn't have enough virtual address space
to allocate enough wasm cages and in that case, skip the
trap handler installation so that wasm code can at least work
(even not at the maximal performance).
Node.js previously has a command line option
--disable-wasm-trap-handler to fully disable trap-based bound checks,
this new API would allow it to adapt automatically while keeping the
optimization in the happy path, since it's not always possible for
end users to opt-into disabling trap-based bound checks (for example,
when a VS Code Server is loaded in a remote server for debugging).
Refs: https://github.com/nodejs/node/pull/62132
Refs: https://github.com/microsoft/vscode/issues/251777
Change-Id: I345c076af2b2b47700e5716b49c3133fdf8a0981
Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/7638233
Reviewed-by: Jakob Kummerow <jkummerow@chromium.org >
Reviewed-by: Michael Lippautz <mlippautz@chromium.org >
Commit-Queue: Joyee Cheung <joyee@igalia.com >
Reviewed-by: Clemens Backes <clemensb@chromium.org >
Cr-Commit-Position: refs/heads/main@{#105702}
Refs: https://github.com/v8/v8/commit/bef0d9c1bc90357ef5e654b25fcb4ef9f74b591c
Co-authored-by: Joyee Cheung <joyeec9h3@gmail.com >
Refs: https://github.com/microsoft/vscode/issues/251777
Refs: https://chromium-review.googlesource.com/c/v8/v8/+/7638233
PR-URL: https://github.com/nodejs/node/pull/61898
Reviewed-By: Antoine du Hamel <duhamelantoine1995@gmail.com >
Reviewed-By: Filip Skokan <panva.ip@gmail.com >
Reviewed-By: Rafael Gonzaga <rafael.nunu@hotmail.com >
Reviewed-By: Chengzhong Wu <legendecas@gmail.com >
2026-04-24 18:01:32 +02:00
Richard Lau
cc5a331715
deps: V8: cherry-pick cf1bce40a5ef
...
Original commit message:
[wasm] Fix S128Const on big endian
Since http://crrev.com/c/2944437 globals are no longer little endian
enforced.
S128Const handling in the initializer needs to take this into account
and byte reverse values which are hard coded in little endian order.
This is currently causing failures on Node.js upstream:
https://github.com/nodejs/node/pull/59034#issuecomment-4129144461
Change-Id: Ifcc9ade93ee51565ab19b16e9dadf0ff5752f7a6
Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/7704213
Commit-Queue: Milad Farazmand <mfarazma@ibm.com >
Reviewed-by: Manos Koukoutos <manoskouk@chromium.org >
Cr-Commit-Position: refs/heads/main@{#106082}
Refs: https://github.com/v8/v8/commit/cf1bce40a5ef4c7c1da351754f5bf526c0c96463
Refs: https://github.com/v8/v8/commit/cf1bce40a5ef4c7c1da351754f5bf526c0c96463
PR-URL: https://github.com/nodejs/node/pull/61898
Reviewed-By: Antoine du Hamel <duhamelantoine1995@gmail.com >
Reviewed-By: Filip Skokan <panva.ip@gmail.com >
Reviewed-By: Rafael Gonzaga <rafael.nunu@hotmail.com >
Reviewed-By: Chengzhong Wu <legendecas@gmail.com >
2026-04-24 18:01:32 +02:00
Milad Fa
e6f9cd58a7
deps: V8: cherry-pick daf4656ba85e
...
Original commit message:
Mark MemCopyAndSwitchEndianness src input as `const`
Needed after this CL: http://crrev.com/c/7600437
Currently getting the following error:
```
candidate function not viable: no known conversion from 'const unsigned char *' to 'void *'
```
Change-Id: I0c0f065b822e0f95ffd06207d280fc8b7bab4403
Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/7601332
Reviewed-by: Clemens Backes <clemensb@chromium.org >
Commit-Queue: Milad Farazmand <mfarazma@ibm.com >
Cr-Commit-Position: refs/heads/main@{#105413}
Refs: https://github.com/v8/v8/commit/daf4656ba85e7b9bf63ff5e95cb757406eec20fd
PR-URL: https://github.com/nodejs/node/pull/61898
Reviewed-By: Antoine du Hamel <duhamelantoine1995@gmail.com >
Reviewed-By: Filip Skokan <panva.ip@gmail.com >
Reviewed-By: Rafael Gonzaga <rafael.nunu@hotmail.com >
Reviewed-By: Chengzhong Wu <legendecas@gmail.com >
2026-04-24 18:01:32 +02:00
Joyee Cheung and René
d40be95a2b
deps: V8: cherry-pick d83f479604c8
...
Original commit message:
Fix compilation for older version of libstdc++
On older versions of libstdc++, cmath didn't expose std::powl.
Use std::pow instead.
Co-Authored-By: René <contact.9a5d6388@renegade334.me.uk >
Refs: https://gcc.gnu.org/pipermail/libstdc++/2023-February/055493.html
Refs: https://github.com/nodejs/node/pull/61898
Change-Id: I4587e14525cae68a05eda03c36b0af40759d9b64
Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/7666244
Commit-Queue: Joyee Cheung <joyee@igalia.com >
Reviewed-by: Jakob Linke <jgruber@chromium.org >
Cr-Commit-Position: refs/heads/main@{#105884}
Refs: https://github.com/v8/v8/commit/d83f479604c8cf0e74b7e73e795adbd6f86549f2
PR-URL: https://github.com/nodejs/node/pull/61898
Reviewed-By: Antoine du Hamel <duhamelantoine1995@gmail.com >
Reviewed-By: Filip Skokan <panva.ip@gmail.com >
Reviewed-By: Rafael Gonzaga <rafael.nunu@hotmail.com >
Reviewed-By: Chengzhong Wu <legendecas@gmail.com >
2026-04-24 18:01:32 +02:00
Joyee Cheung
38d98c3754
deps: V8: cherry-pick edeb0a4fa181
...
Original commit message:
Zero-initialize proxy padding
So that snapshots with proxies can be reproducible.
Refs: https://github.com/nodejs/node/pull/61898
Change-Id: I01fac5e18c73cd482a1ae63750dbadf42a12e08a
Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/7666243
Reviewed-by: Jakob Kummerow <jkummerow@chromium.org >
Commit-Queue: Joyee Cheung <joyee@igalia.com >
Cr-Commit-Position: refs/heads/main@{#105830}
Refs: https://github.com/v8/v8/commit/edeb0a4fa181d2eace3c3d2fa039584dc6ac2ea6
PR-URL: https://github.com/nodejs/node/pull/61898
Reviewed-By: Antoine du Hamel <duhamelantoine1995@gmail.com >
Reviewed-By: Filip Skokan <panva.ip@gmail.com >
Reviewed-By: Rafael Gonzaga <rafael.nunu@hotmail.com >
Reviewed-By: Chengzhong Wu <legendecas@gmail.com >
2026-04-24 18:01:32 +02:00
Richard Lau
ec508ddf38
deps: V8: cherry-pick aa0b288f87cc
...
Original commit message:
PPC/S390: [wasm] Fix jump table offset when patching
... need to make sure patching of target occurs at the correct spot
based on what `EmitFarJumpSlot` emits. Also mask the branch offset in
PPC64 EmitJumpSlot to match `Assembler::b()`.
Change-Id: I5a8079d0079d8ad427034761d42c90b64d5746dd
Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/7642190
Reviewed-by: John <junyan1@ibm.com >
Commit-Queue: Milad Farazmand <mfarazma@ibm.com >
Reviewed-by: Clemens Backes <clemensb@chromium.org >
Cr-Commit-Position: refs/heads/main@{#105646}
Refs: https://github.com/v8/v8/commit/aa0b288f87ccfc2ad25f5d828af6627a7dccc9cb
PR-URL: https://github.com/nodejs/node/pull/61898
Reviewed-By: Antoine du Hamel <duhamelantoine1995@gmail.com >
Reviewed-By: Filip Skokan <panva.ip@gmail.com >
Reviewed-By: Rafael Gonzaga <rafael.nunu@hotmail.com >
Reviewed-By: Chengzhong Wu <legendecas@gmail.com >
2026-04-24 18:01:31 +02:00
StefanStojanovic
512c5aae35
deps: patch V8 to fix Windows build
...
PR-URL: https://github.com/nodejs/node/pull/61898
Reviewed-By: Antoine du Hamel <duhamelantoine1995@gmail.com >
Reviewed-By: Filip Skokan <panva.ip@gmail.com >
Reviewed-By: Rafael Gonzaga <rafael.nunu@hotmail.com >
Reviewed-By: Chengzhong Wu <legendecas@gmail.com >
2026-04-24 18:01:31 +02:00
Richard Lau
4ec8aa0422
deps: V8: cherry-pick highway@989a498fdf3
...
Original commit message:
GCC 15 removed avx10.2-512 target
PiperOrigin-RevId: 823560321
Refs: https://github.com/google/highway/commit/989a498fdf3e2b758c48998e87a2807a1a53e494
Fixes: https://github.com/nodejs/node/issues/60566
PR-URL: https://github.com/nodejs/node/pull/61898
Reviewed-By: Antoine du Hamel <duhamelantoine1995@gmail.com >
Reviewed-By: Filip Skokan <panva.ip@gmail.com >
Reviewed-By: Rafael Gonzaga <rafael.nunu@hotmail.com >
Reviewed-By: Chengzhong Wu <legendecas@gmail.com >
2026-04-24 18:01:31 +02:00
Dan McDonald
2bae6acd77
deps: support madvise(3C) across ALL illumos revisions
...
In illumos, madvise(3C) now takes `void *` for its first argument
post-illumos#14418, but uses `caddr_t` pre-illumos#14418. This fix will
detect if the illumos mman.h file in use is pre-or-post-illumos#14418 so
builds can work either way.
PR-URL: https://github.com/nodejs/node/pull/61898
Reviewed-By: Antoine du Hamel <duhamelantoine1995@gmail.com >
Reviewed-By: Filip Skokan <panva.ip@gmail.com >
Reviewed-By: Rafael Gonzaga <rafael.nunu@hotmail.com >
Reviewed-By: Chengzhong Wu <legendecas@gmail.com >
2026-04-24 18:01:31 +02:00
Dan McDonald
593bb51f92
deps: patch V8 for illumos
...
illumos pointers are VA48, can allocate from the top of the 64-bit range
as well.
PR-URL: https://github.com/nodejs/node/pull/61898
Reviewed-By: Antoine du Hamel <duhamelantoine1995@gmail.com >
Reviewed-By: Filip Skokan <panva.ip@gmail.com >
Reviewed-By: Rafael Gonzaga <rafael.nunu@hotmail.com >
Reviewed-By: Chengzhong Wu <legendecas@gmail.com >
2026-04-24 18:01:31 +02:00
Michaël Zasso
232fc89433
deps: remove problematic comment from v8-internal
...
GCC emits warnings because of the trailing backslashes.
PR-URL: https://github.com/nodejs/node/pull/61898
Reviewed-By: Antoine du Hamel <duhamelantoine1995@gmail.com >
Reviewed-By: Filip Skokan <panva.ip@gmail.com >
Reviewed-By: Rafael Gonzaga <rafael.nunu@hotmail.com >
Reviewed-By: Chengzhong Wu <legendecas@gmail.com >
2026-04-24 18:01:30 +02:00
Stefan Stojanovic
add506a7a1
deps: define V8_PRESERVE_MOST as no-op on Windows
...
It's causing linker errors with node.lib in node-gyp and potentially
breaks other 3rd party tools
Refs: https://github.com/nodejs/node/pull/55784
PR-URL: https://github.com/nodejs/node/pull/61898
Reviewed-By: Antoine du Hamel <duhamelantoine1995@gmail.com >
Reviewed-By: Filip Skokan <panva.ip@gmail.com >
Reviewed-By: Rafael Gonzaga <rafael.nunu@hotmail.com >
Reviewed-By: Chengzhong Wu <legendecas@gmail.com >
2026-04-24 18:01:30 +02:00
Michaël Zasso
b6a9674ffb
deps: patch V8 to avoid duplicated zlib symbol
...
PR-URL: https://github.com/nodejs/node/pull/61898
Reviewed-By: Antoine du Hamel <duhamelantoine1995@gmail.com >
Reviewed-By: Filip Skokan <panva.ip@gmail.com >
Reviewed-By: Rafael Gonzaga <rafael.nunu@hotmail.com >
Reviewed-By: Chengzhong Wu <legendecas@gmail.com >
2026-04-24 18:01:30 +02:00
Michaël Zasso
34408ae12c
src: update NODE_MODULE_VERSION to 147
...
Major V8 updates are usually API/ABI incompatible with previous
versions. This commit adapts NODE_MODULE_VERSION for V8 14.6.
Refs: https://github.com/nodejs/CTC/blob/master/meetings/2016-09-28.md
PR-URL: https://github.com/nodejs/node/pull/61898
Reviewed-By: Antoine du Hamel <duhamelantoine1995@gmail.com >
Reviewed-By: Filip Skokan <panva.ip@gmail.com >
Reviewed-By: Rafael Gonzaga <rafael.nunu@hotmail.com >
Reviewed-By: Chengzhong Wu <legendecas@gmail.com >
2026-04-24 18:01:30 +02:00
Michaël Zasso
72bc9b4c5f
build: reset embedder string to "-node.0"
...
PR-URL: https://github.com/nodejs/node/pull/61898
Reviewed-By: Antoine du Hamel <duhamelantoine1995@gmail.com >
Reviewed-By: Filip Skokan <panva.ip@gmail.com >
Reviewed-By: Rafael Gonzaga <rafael.nunu@hotmail.com >
Reviewed-By: Chengzhong Wu <legendecas@gmail.com >
2026-04-24 18:01:30 +02:00
Michaël Zasso
f1e0b83e7b
deps: update V8 to 14.6.202.33
...
PR-URL: https://github.com/nodejs/node/pull/61898
Reviewed-By: Antoine du Hamel <duhamelantoine1995@gmail.com >
Reviewed-By: Filip Skokan <panva.ip@gmail.com >
Reviewed-By: Rafael Gonzaga <rafael.nunu@hotmail.com >
Reviewed-By: Chengzhong Wu <legendecas@gmail.com >
2026-04-24 18:01:28 +02:00