| FazBrowse GitHub Viewer | Trending | | Home |
| Tools: [Download Repo ZIP] [Original HTTPS Page] |
Sorry, something went wrong.
Delegate broadcast.push() and share.pull() calls with per-consumer AbortSignals through pull(), so pending next() calls reject when the signal aborts. Signed-off-by: Kamat, Trivikram <16024985+trivikr@users.noreply.github.com> Assisted-by: openai:gpt-5.5 PR-URL: #63997 Fixes: #63302 Reviewed-By: James M Snell <jasnell@gmail.com> Reviewed-By: Filip Skokan <panva.ip@gmail.com>
Use the abort-aware iterator wrapper in the no-transform pipeTo() path so a pending source read does not block AbortSignal handling. Fixes: #64014 Signed-off-by: Kamat, Trivikram <16024985+trivikr@users.noreply.github.com> Assisted-by: openai:gpt-5.5 PR-URL: #64015 Fixes: #64014 Reviewed-By: Matteo Collina <matteo.collina@gmail.com> Reviewed-By: Filip Skokan <panva.ip@gmail.com>
PR #62782 updated the keepAliveTimeout default from 5s to 65s and correctly updated server.keepAliveTimeout (line 2006), but the http.createServer() options table at line 3775 was not updated. Fix the remaining reference to reflect the current default of 65000ms. Signed-off-by: Jahanzaib iqbal <jahanzaib@gsoftconsulting.com> PR-URL: #63974 Reviewed-By: Tim Perry <pimterry@gmail.com> Reviewed-By: Luigi Pinca <luigipinca@gmail.com>
Emit the standard JUnit timestamp (ISO 8601) on <testsuite> elements, which the reporter was omitting. The suite start time is reconstructed as end-minus-duration, because the runner reports a suite's test:start lazily (when its first subtest reports), which would otherwise record a time close to the suite's end. Fixes: #64028 Signed-off-by: sangwook <rewq5991@gmail.com> PR-URL: #64029 Reviewed-By: Moshe Atlow <moshe@atlow.co.il> Reviewed-By: Jacob Smith <jacob@frende.me>
`EncodeUtf8String`, which backs `TextEncoder.prototype.encode()`, copied
the entire source string out of the V8 heap into a `MaybeStackBuffer`
(via `WriteOneByteV2`/`WriteV2`) before encoding, allocating on the heap
for strings larger than the stack buffer. `EncodeInto` already avoids
this by reading the flat content directly through
`v8::String::ValueView`.
Read the flat content via `ValueView` instead. Because `ValueView` holds
a `DisallowGarbageCollection` scope, the backing store cannot be
allocated while it is alive, so the view is used in two short scopes:
one to validate and compute the exact UTF-8 length, and one to encode
directly into the backing store after allocation. Flattening is cached
on the string, so re-acquiring the view is cheap. The rare unpaired
surrogate path still copies into a mutable buffer for in-place
`to_well_formed_utf16`.
benchmark/util/text-encoder.js (op=encode, n=1e6, 12 runs each):
len=256 len=1024 len=8192
ascii +14.1% +23.5% +43.9%
one-byte (latin1) +14.4% +22.2% +12.3%
two-byte (utf-16) +16.7% +20.4% +15.5%
len=32 uses the unchanged small-string path (~noise). The untouched
encodeInto path stayed flat (-2.0%..+0.5%) across all configurations.
Signed-off-by: Yagiz Nizipli <yagiz@nizipli.com>
PR-URL: #63897
Reviewed-By: Anna Henningsen <anna@addaleax.net>
Reviewed-By: Filip Skokan <panva.ip@gmail.com>
Signed-off-by: Matthew Aitken <maitken033380023@gmail.com> PR-URL: #64036 Refs: w3c/FileAPI@cd1d1da Refs: nodejs/undici@0d6ecc5 Reviewed-By: René <contact.9a5d6388@renegade334.me.uk> Reviewed-By: Matteo Collina <matteo.collina@gmail.com> Reviewed-By: Gürgün Dayıoğlu <hey@gurgun.day> Reviewed-By: Luigi Pinca <luigipinca@gmail.com> Reviewed-By: Mattias Buelens <mattias@buelens.com>
PR-URL: #64039 Reviewed-By: Antoine du Hamel <duhamelantoine1995@gmail.com> Reviewed-By: Filip Skokan <panva.ip@gmail.com> Reviewed-By: Colin Ihrig <cjihrig@gmail.com> Reviewed-By: Luigi Pinca <luigipinca@gmail.com>
Merely loading the repl builtin used to eagerly require acorn and
acorn-walk (~250KB of JS) and create an entire V8 context via
vm.runInNewContext() just to enumerate global property names, even
though both are only needed once REPL input is actually parsed or
tab-completion is used.
Require acorn and acorn-walk at their function-level use sites
instead, and wrap the global builtins set in getLazy(). The cost
moves to the first preview/completion/recoverable-error check,
where the one-time ~1ms is imperceptible.
Benchmark results (Linux x64, misc/startup-core.js, 20 runs):
require-builtins.js: +3.12% ops/s (t=3.57, p<0.01)
import-builtins.mjs: +2.20% ops/s (t=3.00, p<0.01)
In isolation, require('repl') drops from 4.64ms to 2.84ms (-39%)
and interactive `node -i` startup improves by ~13%.
Signed-off-by: Daijiro Wachi <daijiro.wachi@gmail.com>
PR-URL: #63879
Reviewed-By: Yagiz Nizipli <yagiz@nizipli.com>
V8's Minor Mark-Sweep collector, enabled with the --minor-ms flag (available since Node.js 22), reports garbage collection performance entries with kind kGCTypeMinorMarkSweep (value 2). perf_hooks exposed constants for every other GC kind (major, minor, incremental, weakcb) but not this one, so consumers inspecting performanceEntry.detail.kind had no constant to compare against and saw an unmapped value. Expose it as perf_hooks.constants.NODE_PERFORMANCE_GC_MINOR_MARK_SWEEP, mirroring the existing v8::GCType mappings, and document it alongside the other GC kinds. Signed-off-by: Attila Szegedi <attila.szegedi@datadoghq.com> PR-URL: #63877 Reviewed-By: Ruben Bridgewater <ruben@bridgewater.de> Reviewed-By: Yagiz Nizipli <yagiz@nizipli.com> Reviewed-By: Ilyas Shabi <ilyasshabi94@gmail.com> Reviewed-By: Chengzhong Wu <legendecas@gmail.com>
Signed-off-by: Antoine du Hamel <duhamelantoine1995@gmail.com> PR-URL: #64047 Reviewed-By: René <contact.9a5d6388@renegade334.me.uk> Reviewed-By: Filip Skokan <panva.ip@gmail.com> Reviewed-By: Richard Lau <richard.lau@ibm.com>
The method-proxying loop in Readable.prototype.wrap() started at index 1, silently skipping streamKeys[0] and leaving a method at the first own-enumerable key unproxied. This was introduced in ee9e2a2 when ArrayPrototypeForEach( ObjectKeys(stream), ...) — which iterates from index 0 — was rewritten as a manual for loop for performance. The faithful translation starts at 0; a sibling loop converted in the same commit correctly does so. The bug stayed hidden because keys[0] is usually _events (a non-function), which the loop's typeof guard skips anyway. Signed-off-by: Daijiro Wachi <daijiro.wachi@gmail.com> PR-URL: #64048 Reviewed-By: Matteo Collina <matteo.collina@gmail.com> Reviewed-By: Mattias Buelens <mattias@buelens.com>
Reset process.exitCode before running the coverage threshold check. This lets the test verify the exit code set by that run() call without depending on process-global state from earlier coverage runs. Signed-off-by: Kamat, Trivikram <16024985+trivikr@users.noreply.github.com> PR-URL: #64051 Refs: https://github.com/nodejs/reliability/issues?q=%22test-runner-run-coverage%22 Reviewed-By: Chemi Atlow <chemi@atlow.co.il> Reviewed-By: Filip Skokan <panva.ip@gmail.com> Reviewed-By: Luigi Pinca <luigipinca@gmail.com> Reviewed-By: Jacob Smith <jacob@frende.me>
Signed-off-by: Guilherme Araújo <arauujogui@gmail.com> PR-URL: #63702 Reviewed-By: Stephen Belanger <admin@stephenbelanger.com> Reviewed-By: Gürgün Dayıoğlu <hey@gurgun.day>
Return false for Ed25519 and Ed448 one-shot verification when the public key or signature R component is a known low-order point. This keeps key import behavior unchanged while making WebCrypto verification match WPT expectations across OpenSSL variants. Remove the stale WPT expected-failure entry and add focused regression coverage for both curves. Closes: #54572 Signed-off-by: Filip Skokan <panva.ip@gmail.com> PR-URL: #64026 Fixes: #54572 Reviewed-By: Yagiz Nizipli <yagiz@nizipli.com> Reviewed-By: Tobias Nießen <tniessen@tnie.de>
Signed-off-by: Ijtihed Kilani <ijtihedk@gmail.com> PR-URL: #64022 Reviewed-By: Matteo Collina <matteo.collina@gmail.com> Reviewed-By: Ruben Bridgewater <ruben@bridgewater.de> Reviewed-By: Aviv Keller <me@aviv.sh>
Include the coverage filename when parsing V8 coverage data fails, and make test-runner coverage assertions report spawned child process output when the expected coverage report is missing. Signed-off-by: Kamat, Trivikram <16024985+trivikr@users.noreply.github.com> Assisted-by: openai:gpt-5.5 PR-URL: #64050 Refs: https://github.com/nodejs/reliability/issues?q=%22parallel%2Ftest-runner-coverage%22 Reviewed-By: Moshe Atlow <moshe@atlow.co.il> Reviewed-By: Chemi Atlow <chemi@atlow.co.il>
Disable connection pooling for the client request so server.close() does not wait on an idle keep-alive socket before retrying the test. This keeps the test focused on request timeout behavior instead of HTTP keep-alive teardown timing. Signed-off-by: Kamat, Trivikram <16024985+trivikr@users.noreply.github.com> PR-URL: #64052 Refs: https://github.com/nodejs/reliability/issues?q=%22test-http-server-consumed-timeout%22 Reviewed-By: Luigi Pinca <luigipinca@gmail.com> Reviewed-By: Filip Skokan <panva.ip@gmail.com> Reviewed-By: Gürgün Dayıoğlu <hey@gurgun.day>
Signed-off-by: Rawal27 <obviouslykamal@gmail.com> PR-URL: #63912 Reviewed-By: Luigi Pinca <luigipinca@gmail.com> Reviewed-By: Trivikram Kamat <trivikr.dev@gmail.com>
The basic.any.js test compares elapsed performance.now() with elapsed Date.now(). On macos15-x64 CI, Date.now() can shift relative to the monotonic clock and exceed the test's 30 ms tolerance. Convert the status file to .cjs so the flaky expectation is scoped to macOS 15 on x64. Signed-off-by: Kamat, Trivikram <16024985+trivikr@users.noreply.github.com> PR-URL: #64054 Refs: https://github.com/nodejs/reliability/issues?q=%22wpt%2Ftest-hr-time%22 Reviewed-By: Matteo Collina <matteo.collina@gmail.com> Reviewed-By: Filip Skokan <panva.ip@gmail.com> Reviewed-By: Daijiro Wachi <daijiro.wachi@gmail.com> Reviewed-By: Jason Zhang <xzha4350@gmail.com>
Starting with Node.js 26.0.0, official binaries for AIX are built with Clang 20.1. Signed-off-by: Richard Lau <richard.lau@ibm.com> PR-URL: #64068 Reviewed-By: Chengzhong Wu <legendecas@gmail.com> Reviewed-By: Beth Griggs <bethanyngriggs@gmail.com> Reviewed-By: Luigi Pinca <luigipinca@gmail.com> Reviewed-By: Stewart X Addison <sxa@redhat.com>
Signed-off-by: parkhojeong <parkhj062@gmail.com> PR-URL: #63403 Reviewed-By: Luigi Pinca <luigipinca@gmail.com> Reviewed-By: Deokjin Kim <deokjin81.kim@gmail.com>
Signed-off-by: parkhojeong <parkhj062@gmail.com> PR-URL: #63403 Reviewed-By: Luigi Pinca <luigipinca@gmail.com> Reviewed-By: Deokjin Kim <deokjin81.kim@gmail.com>
Add a samplePerIteration option to monitorEventLoopDelay that records event loop delay from libuv event loop iterations instead of the timer interval sampler. The default remains interval-based; existing uses of monitorEventLoopDelay() keep behaving the same unless the samplePerIteration option is passed through. Signed-off-by: Pablo Erhard <pablo.erhardhernandez@datadoghq.com> PR-URL: #62935 Reviewed-By: Bryan English <bryan@bryanenglish.com> Reviewed-By: Ruben Bridgewater <ruben@bridgewater.de> Reviewed-By: James M Snell <jasnell@gmail.com>
The close fixture expects the registered object to still be reachable when the process emits exit. Keep a strong reference outside setup() so the assertion does not depend on platform-specific GC timing. Signed-off-by: Kamat, Trivikram <16024985+trivikr@users.noreply.github.com> Assisted-by: openai:gpt-5.5 PR-URL: #64085 Refs: https://github.com/nodejs/reliability/issues?q=%22test-process-finalization%22 Reviewed-By: Luigi Pinca <luigipinca@gmail.com> Reviewed-By: Gürgün Dayıoğlu <hey@gurgun.day> Reviewed-By: Stefan Stojanovic <stefan.stojanovic@janeasystems.com>
V8’s JIT infrastructure requires binaries such as mksnapshot to be run during the build. However, these binaries must have the same bit-width as the host platform (e.g. a x86_64 build platform targeting ARMv6 needs to produce a 32-bit binary). To work around this issue, allow building the binaries for the host platform and running them on the build platform with an emulator. Based on Buildroot’s nodejs-src 0001-add-qemu-wrapper-support.patch. https://gitlab.com/buildroot.org/buildroot/-/blob/c1d5eada4d4db9eeaa1c44dd1dea95a67c8a70ca/package/nodejs/nodejs-src/0001-add-qemu-wrapper-support.patch PR-URL: #53899 Reviewed-By: Antoine du Hamel <duhamelantoine1995@gmail.com> Reviewed-By: Aviv Keller <me@aviv.sh>
Unfortunately, `std::optional<>` implements `operator<` in such a way that this check will fail for very large generators. Since `bn_g` is unsigned, if its value does not fit into a single word, we can be certain that it is at least 2. By only checking the value if it does indeed fit into a word, the check correctly ignores very large generators. Signed-off-by: Tobias Nießen <tniessen@tnie.de> PR-URL: #64092 Reviewed-By: Filip Skokan <panva.ip@gmail.com> Reviewed-By: Anna Henningsen <anna@addaleax.net>
If the exponent does not fit into a single word, previous versions of Node.js would report an incorrect value or, recently, return `null`. Change `GetExponentString()` to handle arbitrarily large RSA public exponents properly. Signed-off-by: Tobias Nießen <tniessen@tnie.de> PR-URL: #64093 Refs: #63895 Reviewed-By: Filip Skokan <panva.ip@gmail.com> Reviewed-By: Anna Henningsen <anna@addaleax.net>
Signed-off-by: Tobias Nießen <tniessen@tnie.de> PR-URL: #64094 Reviewed-By: Juan José Arboleda <soyjuanarbol@gmail.com> Reviewed-By: Filip Skokan <panva.ip@gmail.com> Reviewed-By: Luigi Pinca <luigipinca@gmail.com> Reviewed-By: Yagiz Nizipli <yagiz@nizipli.com> Reviewed-By: Anna Henningsen <anna@addaleax.net> Reviewed-By: Colin Ihrig <cjihrig@gmail.com> Reviewed-By: Edy Silva <edigleyssonsilva@gmail.com>
Signed-off-by: Antoine du Hamel <duhamelantoine1995@gmail.com> PR-URL: #64046 Reviewed-By: Paolo Insogna <paolo@cowtech.it> Reviewed-By: René <contact.9a5d6388@renegade334.me.uk>
Signed-off-by: Efe Karasakal <hi@efe.dev> PR-URL: #64275 Reviewed-By: James M Snell <jasnell@gmail.com> Reviewed-By: Jake Yuesong Li <jake.yuesong@gmail.com>
Rearm the stream's existing Timeout object instead of allocating a new Timeout and a bound callback on every setTimeout() call. The HTTP server disarms and rearms the keep-alive timeout twice per request, so this saves two allocations and the associated async resource churn on every request over a keep-alive connection. The async resource is re-initialized on reuse, so async_hooks observes the same init/destroy sequence as before. A microbenchmark of the setTimeout(msecs)/setTimeout(0) cycle improves by 2.2x (205.9ns to 92.8ns), and benchmark/http/simple.js (type=buffer len=1024 chunks=1 chunkedEnc=0 c=50) improves by 3.70% (t=2.15, 40 samples per binary with server and load generator pinned to disjoint CPU sets). Assisted-by: Claude Fable 5 (Claude Code) Signed-off-by: Matteo Collina <hello@matteocollina.com> PR-URL: #64254 Reviewed-By: Yagiz Nizipli <yagiz@nizipli.com> Reviewed-By: James M Snell <jasnell@gmail.com> Reviewed-By: Minwoo Jung <nodecorelab@gmail.com>
Signed-off-by: Renegade334 <contact.9a5d6388@renegade334.me.uk> PR-URL: #64325 Refs: #63281 Reviewed-By: Michaël Zasso <targos@protonmail.com> Reviewed-By: Richard Lau <richard.lau@ibm.com> Reviewed-By: Marco Ippolito <marcoippolito54@gmail.com> Reviewed-By: Antoine du Hamel <duhamelantoine1995@gmail.com>
|
Review requested:
|
Sorry, something went wrong.
Notable changes: buffer: * (SEMVER-MINOR) implement blob.textStream() (Matthew Aitken) #64036 esm: * (SEMVER-MINOR) add `--experimental-import-text` flag (Efe) #62300 perf_hooks: * (SEMVER-MINOR) sample delay per event loop iteration (Pablo Erhard) #62935 stream: * (SEMVER-MINOR) expose ReadableStreamTee (Matteo Collina) #64195 tls: * (SEMVER-MINOR) report negotiated TLS groups (Filip Skokan) #64119 PR-URL: #64329 Signed-off-by: Richard Lau <richard.lau@ibm.com>
Sorry, something went wrong.
$ ncu-ci citgm 3739 3740 Encrypted config detected, spawning gpg to decrypt it... -------------------------------------------------------------------------------- [1/1] Running CITGM: 3739 -------------------------------------------------------------------------------- ✔ Summary data downloaded ✔ Results data downloaded ✔ Summary data downloaded ✔ Results data downloaded ----------------------------------- Summary ------------------------------------ Result FAILURE URL https://ci.nodejs.org/job/citgm-smoker/3739/ Source https://api.github.com/repos/nodejs/node/git/refs/heads/v26.x Commit [70e75417e8c1] Working on v26.4.1 Date 2026-06-25 01:20:00 +0200 Author Antoine du Hamel <duhamelantoine1995@gmail.com> ----------------------------------- Summary ------------------------------------ Result FAILURE URL https://ci.nodejs.org/job/citgm-smoker/3740/ Source https://api.github.com/repos/nodejs/node/git/refs/heads/v26.5.0-proposal Commit [bebd1b8d92bf] 2026-07-08, Version 26.5.0 (Current) Date 2026-07-06 19:07:58 +0000 Author Richard Lau <richard.lau@ibm.com> ----------------------------------- Results ------------------------------------ FAILURE: 49 failures in 3740 not present in 3739 ┌───────────────────┬──────────────────────┬───────────────────────┬───────────────────────────┬───────────────────────────────┬───────────────────────────────┬──────────────────────┬──────────────────────┬──────────────────┬─────────────────┐ │ (index) │ 0 │ 1 │ 2 │ 3 │ 4 │ 5 │ 6 │ 7 │ 8 │ ├───────────────────┼──────────────────────┼───────────────────────┼───────────────────────────┼───────────────────────────────┼───────────────────────────────┼──────────────────────┼──────────────────────┼──────────────────┼─────────────────┤ │ rhel9-ppc64le │ 'compression-v1.8.1' │ 'crc32-stream-v7.0.1' │ 'express-session-v1.19.0' │ 'node-gyp-v13.0.1' │ 'on-finished-v2.4.1' │ 'undici-v8.7.0' │ │ │ │ │ rhel9-s390x │ 'compression-v1.8.1' │ 'crc32-stream-v7.0.1' │ 'express-session-v1.19.0' │ 'import-in-the-middle-v3.3.0' │ 'node-gyp-v13.0.1' │ 'on-finished-v2.4.1' │ 'sqlite3-v6.0.1' │ 'undici-v8.7.0' │ │ │ alpine-latest-x64 │ '@babel/core-v8.0.1' │ 'ava-v8.0.0' │ 'compression-v1.8.1' │ 'crc32-stream-v7.0.1' │ 'import-in-the-middle-v3.3.0' │ 'node-gyp-v13.0.1' │ 'on-finished-v2.4.1' │ 'sqlite3-v6.0.1' │ 'undici-v8.7.0' │ │ aix72-power9 │ 'compression-v1.8.1' │ 'crc32-stream-v7.0.1' │ 'express-session-v1.19.0' │ 'import-in-the-middle-v3.3.0' │ 'node-gyp-v13.0.1' │ 'on-finished-v2.4.1' │ 'undici-v8.7.0' │ │ │ │ debian12-x64 │ 'ava-v8.0.0' │ 'compression-v1.8.1' │ 'crc32-stream-v7.0.1' │ 'express-session-v1.19.0' │ 'node-gyp-v13.0.1' │ 'on-finished-v2.4.1' │ 'undici-v8.7.0' │ │ │ │ win-vs2022_clang │ 'compression-v1.8.1' │ 'on-finished-v2.4.1' │ 'undici-v8.7.0' │ │ │ │ │ │ │ │ ubuntu2404-x64 │ '@babel/core-v8.0.1' │ 'ava-v8.0.0' │ 'compression-v1.8.1' │ 'crc32-stream-v7.0.1' │ 'express-session-v1.19.0' │ 'node-gyp-v13.0.1' │ 'on-finished-v2.4.1' │ 'sqlite3-v6.0.1' │ 'undici-v8.7.0' │ └───────────────────┴──────────────────────┴───────────────────────┴───────────────────────────┴───────────────────────────────┴───────────────────────────────┴──────────────────────┴──────────────────────┴──────────────────┴─────────────────┘ These modules failed in all platforms: compression-v1.8.1, on-finished-v2.4.1, undici-v8.7.0
Error: WPT checkout is missing. Run `git submodule update --init --recursive test/web-platform-tests/wpt`.
ReferenceError: require is not defined in ES module scope, you can use import instead |
Sorry, something went wrong.
Notable changes: buffer: * (SEMVER-MINOR) implement blob.textStream() (Matthew Aitken) #64036 esm: * (SEMVER-MINOR) add `--experimental-import-text` flag (Efe) #62300 perf_hooks: * (SEMVER-MINOR) sample delay per event loop iteration (Pablo Erhard) #62935 stream: * (SEMVER-MINOR) expose ReadableStreamTee (Matteo Collina) #64195 tls: * (SEMVER-MINOR) report negotiated TLS groups (Filip Skokan) #64119 PR-URL: #64329 Signed-off-by: Richard Lau <richard.lau@ibm.com>
PR-URL: nodejs#64329
| Back | FazBrowse Home | New Git URL |
2026-07-08, Version 26.5.0 (Current), @richardlau
Notable Changes
New release key
Welcome to our newest releaser, Stewart X Addison. Future Node.js releases may be signed with his release key, 655F3B5C1FB3FA8D1A0CA6BDE4A7D232B936D2FD.
Other notable changes
Commits