Skip to content

2025-06-09, Version 24.2.0 (Current) #58635

New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Open
wants to merge 156 commits into
base: v24.x
Choose a base branch
from
Open

Conversation

github-actions[bot]
Copy link
Contributor

@github-actions github-actions bot commented Jun 8, 2025

Remove support for HTTP/2 priority signaling

The support for priority signaling has been removed in nghttp2, following its
deprecation in the RFC 9113.
As a consequence of this, priority signaling is deprecated on all release lines of Node.js,
and removed from Node.js 24 so we can include latest updates from nghttp2.

Contributed by Matteo Collina and Antoine du Hamel in #58293.

import.meta.main is now available

Boolean value available in ECMAScript modules, which can be used to detect
whether the current module was the entry point of the current process.

export function foo() {
  return 'Hello, world';
}

function main() {
  const message = foo();
  console.log(message);
}

if (import.meta.main) main();
// `foo` can be imported from another module without possible side-effects from `main`

Contributed by Joe and Antoine du Hamel in #57804.

Other Notable Changes

  • [984894b38c] - doc: deprecate util.isNativeError in favor of Error.isError (Miguel Marcondes Filho) #58262
  • [d261274b0f] - doc: deprecate passing an empty string to options.shell (Antoine du Hamel) #58564
  • [510872a522] - (SEMVER-MINOR) doc: graduate Symbol.dispose/asyncDispose from experimental (James M Snell) #58467
  • [6f4c9dd423] - (SEMVER-MINOR) fs: add autoClose option to FileHandle readableWebStream (James M Snell) #58548
  • [32efb63242] - http: deprecate instantiating classes without new (Yagiz Nizipli) #58518
  • [0234a8ef53] - (SEMVER-MINOR) http2: add diagnostics channel http2.server.stream.finish (Darshan Sen) #58560
  • [0f1e94f731] - (SEMVER-MINOR) lib: graduate error codes that have been around for years (James M Snell) #58541
  • [13abca3c26] - (SEMVER-MINOR) perf_hooks: make event loop delay histogram disposable (James M Snell) #58384
  • [8ea1fc5f3b] - (SEMVER-MINOR) src: support namespace options in configuration file (Pietro Marchini) #58073
  • [5936cef60a] - (SEMVER-MINOR) test: add disposable histogram test (James M Snell) #58384
  • [7a91f4aaa1] - (SEMVER-MINOR) test: add test for async disposable worker thread (James M Snell) #58385
  • [532c173cf2] - (SEMVER-MINOR) util: add none style to styleText (James M Snell) #58437
  • [aeb9ab4c4c] - (SEMVER-MINOR) worker: make Worker async disposable (James M Snell) #58385
Commits
  • [6c92329b1b] - Revert "benchmark: fix broken fs.cpSync benchmark" (Yuesong Jake Li) #58476
  • [8bc045264e] - benchmark: fix broken fs.cpSync benchmark (Dario Piotrowicz) #58472
  • [46aa079cce] - benchmark: add callback-based fs.glob to glob benchmark (Livia Medeiros) #58417
  • [a57b05e105] - benchmark: add more options to cp-sync (Sonny) #58278
  • [8b5ada4b31] - buffer: use Utf8LengthV2() instead of Utf8Length() (Tobias Nießen) #58156
  • [22e97362f3] - build: search for libnode.so in multiple places (Jan Staněk) #58213
  • [0b4056c573] - build: add support for OpenHarmony operating system (hqzing) #58350
  • [db7f413dd3] - build: fix pointer compression builds (Joyee Cheung) #58171
  • [7ff37183e5] - build: fix defaults for shared llhttp (Antoine du Hamel) #58269
  • [b8c33190fe] - build,win: fix dll build (Stefan Stojanovic) #58357
  • [ef9ecbe8a6] - child_process: give names to ChildProcess functions (Livia Medeiros) #58370
  • [cec9d9d016] - crypto: forward auth tag to OpenSSL immediately (Tobias Nießen) #58547
  • [9fccb0609f] - crypto: expose crypto.constants.OPENSSL_IS_BORINGSSL (Shelley Vohr) #58387
  • [e7c69b9345] - deps: update nghttp2 to 1.65.0 (Node.js GitHub Bot) #57269
  • [d0b89598a3] - deps: use proper C standard when building libuv (Yaksh Bariya) #58587
  • [8a1fe7bc6a] - deps: update simdjson to 3.12.3 (Node.js GitHub Bot) #57682
  • [36b639b1eb] - deps: update googletest to e9092b1 (Node.js GitHub Bot) #58565
  • [f8a2a1ef52] - deps: update corepack to 0.33.0 (Node.js GitHub Bot) #58566
  • [efb28f7895] - deps: V8: cherry-pick 249de887a8d3 (Michaël Zasso) #58561
  • [88e621ea97] - deps: update sqlite to 3.50.0 (Node.js GitHub Bot) #58272
  • [8d2ba386f1] - deps: update OpenSSL gen container to Ubuntu 22.04 (Michaël Zasso) #58432
  • [7e62a77a7f] - deps: update undici to 7.10.0 (Node.js GitHub Bot) #58445
  • [87eebd7bad] - deps: keep required OpenSSL doc files (Michaël Zasso) #58431
  • [10910660f6] - deps: update undici to 7.9.0 (Node.js GitHub Bot) #58268
  • [5e27078ca2] - deps: update ada to 3.2.4 (Node.js GitHub Bot) #58152
  • [3b1e4bdbbb] - deps: update libuv to 1.51.0 (Node.js GitHub Bot) #58124
  • [6bddf587ae] - dns: fix dns query cache implementation (Ethan Arrowood) #58404
  • [984894b38c] - doc: deprecate utilisNativeError in favor of ErrorisError (Miguel Marcondes Filho) #58262
  • [377ef3ce3a] - doc: add support link for panva (Filip Skokan) #58591
  • [33a69ff9e4] - doc: update metadata for _transformState deprecation (James M Snell) #58530
  • [d261274b0f] - doc: deprecate passing an empty string to options.shell (Antoine du Hamel) #58564
  • [447ca11010] - doc: correct formatting of example definitions for --test-shard (Jacob Smith) #58571
  • [2f555e0e19] - doc: clarify DEP0194 scope (Antoine du Hamel) #58504
  • [af0446edcb] - doc: deprecate HTTP/2 priority signaling (Matteo Collina) #58313
  • [80cc17f1ec] - doc: explain child_process code and signal null values everywhere (Darshan Sen) #58479
  • [e13930bbe0] - doc: add Filip Skokan to TSC (Rafael Gonzaga) #58499
  • [5f3f045ecc] - doc: update git node release example (Antoine du Hamel) #58475
  • [4bbd026cde] - doc: add missing options.info for ZstdOptions (Jimmy Leung) #58360
  • [a6d0d2a0d7] - doc: add missing options.info for BrotliOptions (Jimmy Leung) #58359
  • [510872a522] - (SEMVER-MINOR) doc: graduate Symbol.dispose/asyncDispose from experimental (James M Snell) #58467
  • [08685256cd] - doc: clarify x509.checkIssued only checks metadata (Filip Skokan) #58457
  • [095794fc24] - doc: add links to parent class for node:zlib classes (Antoine du Hamel) #58433
  • [7acac70bce] - doc: remove remaining uses of @@wellknown syntax (René) #58413
  • [62056d40c7] - doc: clarify behavior of --watch-path and --watch flags (Juan Ignacio Benito) #58136
  • [e6e6ae887d] - doc: fix the order of process.md sections (Allon Murienik) #58403
  • [d2f6c82c0f] - doc,lib: update source map links to ECMA426 (Chengzhong Wu) #58597
  • [a994d3d51a] - doc,src,test: fix typos (Noritaka Kobayashi) #58477
  • [252acc1e89] - errors: show url of unsupported attributes in the error message (Aditi) #58303
  • [767e88cbc3] - esm: unwrap WebAssembly.Global on Wasm Namespaces (Guy Bedford) #57525
  • [adef9af3ae] - (SEMVER-MINOR) esm: implement import.meta.main (Joe) #57804
  • [308f4cac4b] - esm: add support for dynamic source phase hook (Guy Bedford) #58147
  • [fcef56cb05] - fs: improve cpSync no-filter copyDir performance (Dario Piotrowicz) #58461
  • [996fdb05ab] - fs: fix cp handle existing symlinks (Yuesong Jake Li) #58476
  • [d2931e50e3] - fs: fix cpSync handle existing symlinks (Yuesong Jake Li) #58476
  • [6f4c9dd423] - (SEMVER-MINOR) fs: add autoClose option to FileHandle readableWebStream (James M Snell) #58548
  • [8870bb8677] - fs: improve cpSync dest overriding performance (Dario Piotrowicz) #58160
  • [f2e2301559] - fs: unexpose internal constants (Chengzhong Wu) #58327
  • [32efb63242] - http: deprecate instantiating classes without new (Yagiz Nizipli) #58518
  • [0b987e5741] - (SEMVER-MAJOR) http2: remove support for priority signaling (Matteo Collina) #58293
  • [44ca874b2c] - http2: add lenient flag for RFC-9113 (Carlos Fuentes) #58116
  • [0234a8ef53] - (SEMVER-MINOR) http2: add diagnostics channel 'http2.server.stream.finish' (Darshan Sen) #58560
  • [2b868e8aa7] - http2: add diagnostics channel 'http2.server.stream.error' (Darshan Sen) #58512
  • [b4df8d38cd] - http2: add diagnostics channel 'http2.server.stream.start' (Darshan Sen) #58449
  • [d86ff608bb] - http2: remove no longer userful options.selectPadding (Jimmy Leung) #58373
  • [13dbbdc8a8] - http2: add diagnostics channel 'http2.server.stream.created' (Darshan Sen) #58390
  • [08855464ec] - http2: add diagnostics channel 'http2.client.stream.close' (Darshan Sen) #58329
  • [566fc567b8] - http2: add diagnostics channel 'http2.client.stream.finish' (Darshan Sen) #58317
  • [f30b9117d4] - http2: add diagnostics channel 'http2.client.stream.error' (Darshan Sen) #58306
  • [79b852a692] - inspector: add mimeType and charset support to Network.Response (Shima Ryuhei) #58192
  • [402ac8b1d8] - inspector: add protocol method Network.dataReceived (Chengzhong Wu) #58001
  • [29f34a7f86] - lib: disable REPL completion on proxies and getters (Dario Piotrowicz) #57909
  • [0f1e94f731] - (SEMVER-MINOR) lib: graduate error codes that have been around for years (James M Snell) #58541
  • [cc1aacabb0] - lib: make ERM functions into wrappers returning undefined (Livia Medeiros) #58400
  • [8df4dee38c] - lib: remove no-mixed-operators eslint rule (Ruben Bridgewater) #58375
  • [104d173f58] - meta: bump github/codeql-action from 3.28.16 to 3.28.18 (dependabot[bot]) #58552
  • [b454e8386c] - meta: bump codecov/codecov-action from 5.4.2 to 5.4.3 (dependabot[bot]) #58551
  • [f31e014b81] - meta: bump step-security/harden-runner from 2.11.0 to 2.12.0 (dependabot[bot]) #58109
  • [4da920cc13] - meta: bump ossf/scorecard-action from 2.4.1 to 2.4.2 (dependabot[bot]) #58550
  • [eb9bb95fe2] - meta: bump rtCamp/action-slack-notify from 2.3.2 to 2.3.3 (dependabot[bot]) #58108
  • [27ada1f18c] - meta: move one or more collaborators to emeritus (Node.js GitHub Bot) #58456
  • [4606a6792b] - meta: bump github/codeql-action from 3.28.11 to 3.28.16 (dependabot[bot]) #58112
  • [7dfe448b7f] - meta: bump codecov/codecov-action from 5.4.0 to 5.4.2 (dependabot[bot]) #58110
  • [18bb5f7e7e] - meta: bump actions/download-artifact from 4.2.1 to 4.3.0 (dependabot[bot]) #58106
  • [72f2a22889] - module: clarify cjs global-like error on ModuleJobSync (Carlos Espa) #56491
  • [b0e0b1afae] - net: always publish to 'net.client.socket' diagnostics channel (Darshan Sen) #58349
  • [f373d6a540] - node-api: use WriteOneByteV2 in napi_get_value_string_latin1 (Chengzhong Wu) #58325
  • [429c38db1b] - node-api: use WriteV2 in napi_get_value_string_utf16 (Tobias Nießen) #58165
  • [b882148999] - path: improve path.resolve() performance when used as process.cwd() (Ruben Bridgewater) #58362
  • [13abca3c26] - (SEMVER-MINOR) perf_hooks: make event loop delay histogram disposable (James M Snell) #58384
  • [1cd417d823] - permission: remove useless conditional (Juan José) #58514
  • [462c4b0c24] - readline: add stricter validation for functions called after closed (Dario Piotrowicz) #58283
  • [e3e36f902c] - repl: extract and standardize history from both repl and interface (Giovanni Bucci) #58225
  • [cbb2a0172f] - report: use uv_getrusage_thread in report (theanarkh) #58405
  • [3a6bd9c4c4] - sqlite: handle thrown errors in result callback (Colin Ihrig) #58426
  • [0d761bbccd] - src: env_vars caching and local variable scope optimization (Mert Can Altin) #57624
  • [8ea1fc5f3b] - (SEMVER-MINOR) src: support namespace options in configuration file (Pietro Marchini) #58073
  • [f72ce2ef75] - src: remove fast API for InternalModuleStat (Joyee Cheung) #58489
  • [8a1eaea151] - src: update std::vector<v8::Local<T>> to use v8::LocalVector<T> (Aditi) #58500
  • [d99d657842] - src: fix FIPS init error handling (Tobias Nießen) #58379
  • [11e4cd698b] - src: fix possible dereference of null pointer (Eusgor) #58459
  • [ca0f5a0188] - src: add env->cppgc_allocation_handle() convenience method (James M Snell) #58483
  • [440d4f42bd] - src: fix -Wreturn-stack-address error (Shelley Vohr) #58439
  • [08615b1020] - src: prepare for v8 sandboxing (James M Snell) #58376
  • [63f643e844] - src: reorganize ContextifyFunction methods (Chengzhong Wu) #58434
  • [3b6895a506] - src: improve CompileFunctionAndCacheResult error handling (Chengzhong Wu) #58434
  • [7f1c95aee8] - src: make a number of minor improvements to buffer (James M Snell) #58377
  • [ce081bcb9a] - src: fix build when using shared simdutf (Antoine du Hamel) #58407
  • [a35cc216e5] - src: track cppgc wrappers with a list in Realm (Joyee Cheung) #56534
  • [947c1c2cd5] - src,lib: obtain sourceURL in magic comments from V8 (Chengzhong Wu) #58389
  • [d6ea36ad6c] - src,permission: implicit allow-fs-read to app entrypoint (Rafael Gonzaga) #58579
  • [e8a07f2198] - stream: making DecompressionStream spec compilent for trailing junk (0hm☘️) #58316
  • [3caa2f71c1] - stream: test explicit resource management implicitly (LiviaMedeiros) #58296
  • [9ccdf4fdb4] - test: improve flakiness detection on stack corruption tests (Darshan Sen) #58601
  • [d3fea003df] - test: mark timeouts & flaky test as flaky on IBM i (Abdirahim Musse) #58583
  • [8347ef6b53] - test: dispose of filehandles in filehandle.read tests (Livia Medeiros) #58543
  • [34e86f91aa] - test: rewrite test-child-process-spawn-args (Michaël Zasso) #58546
  • [d7a2458a58] - test: make sqlite-database-sync tests work with system sqlite (Jelle Licht) #58507
  • [4d9d6830e0] - test: force slow JSON.stringify path for overflow (Shelley Vohr) #58181
  • [bef67e45e3] - test: account for truthy signal in flaky async_hooks tests (Darshan Sen) #58478
  • [007c82f206] - test: mark test-http2-debug as flaky on LinuxONE (Richard Lau) #58494
  • [21f6400098] - test: update WPT for WebCryptoAPI to 591c95ce61 (Node.js GitHub Bot) #58176
  • [1deb5f06a5] - test: remove --no-warnings flag (Tobias Nießen) #58424
  • [beba631a10] - test: add tests ensuring worker threads cannot access internals (Joe) #58332
  • [5936cef60a] - (SEMVER-MINOR) test: add disposable histogram test (James M Snell) #58384
  • [7a91f4aaa1] - (SEMVER-MINOR) test: add test for async disposable worker thread (James M Snell) #58385
  • [5fc4706280] - test: leverage process.features.openssl_is_boringssl in test (Shelley Vohr) #58421
  • [4629b18397] - test: fix test-buffer-tostring-range on allocation failure (Joyee Cheung) #58416
  • [4c445a8c85] - test: skip in test-buffer-tostring-rangeerror on allocation failure (Joyee Cheung) #58415
  • [53cb29898b] - test: fix missing edge case in test-blob-slice-with-large-size (Joyee Cheung) #58414
  • [89fdfdedc1] - test: make crypto tests work with BoringSSL (Shelley Vohr) #58117
  • [3b5d0e62b1] - test: test reordering of setAAD and setAuthTag (Tobias Nießen) #58396
  • [029440bec5] - test: switch from deprecated optparse to argparse (Aviv Keller) #58224
  • [d05263edcc] - test: do not skip OCB decryption in FIPS mode (Tobias Nießen) #58382
  • [23474cb257] - test: show more information in test-http2-debug upon failure (Joyee Cheung) #58391
  • [d0302e7b3d] - test: remove loop over single element (Tobias Nießen) #58368
  • [33f615897d] - test: add chacha20-poly1305 to auth tag order test (Tobias Nießen) #58367
  • [8f09a1f502] - test: skip wasm-allocation tests for pointer compression builds (Joyee Cheung) #58171
  • [4ae6a1a5ed] - test: remove references to create(De|C)ipher (Tobias Nießen) #58363
  • [4d647271b2] - test_runner: emit event when file changes in watch mode (Jacopo Martinelli) #57903
  • [1eda87c365] - test_runner: add level parameter to reporter.diagnostic (Jacopo Martinelli) #57923
  • [13377512be] - tools: bump the eslint group in /tools/eslint with 6 updates (dependabot[bot]) #58549
  • [fcc881de0d] - tools: support DisposableStack and AsyncDisposableStack in linter (LiviaMedeiros) #58454
  • [208d6a5754] - tools: support explicit resource management in eslint (LiviaMedeiros) #58296
  • [32070f304a] - tools: add missing highway defines for IBM i (Abdirahim Musse) #58335
  • [ddab63a323] - tty: improve color terminal color detection (Ruben Bridgewater) #58146
  • [c094bea8d9] - tty: use terminal VT mode on Windows (Anna Henningsen) #58358
  • [dc21054a1e] - typings: add inspector internalBinding typing (Shima Ryuhei) #58492
  • [3499285904] - typings: remove no longer valid FixedSizeBlobCopyJob type (Dario Piotrowicz) #58305
  • [1ed2deb2c8] - typings: remove no longer valid revokeDataObject type (Dario Piotrowicz) #58305
  • [532c173cf2] - (SEMVER-MINOR) util: add 'none' style to styleText (James M Snell) #58437
  • [2d5a1ef528] - vm: import call should return a promise in the current context (Chengzhong Wu) #58309
  • [588c2449f2] - win,tools: use Azure Trusted Signing (Stefan Stojanovic) #58502
  • [aeb9ab4c4c] - (SEMVER-MINOR) worker: make Worker async disposable (James M Snell) #58385
  • [23416cce0a] - worker: give names to MessagePort functions (Livia Medeiros) #58307
  • [44df21b7fb] - zlib: remove mentions of unexposed Z_TREES constant (Jimmy Leung) #58371

Ceres6 and others added 30 commits May 31, 2025 13:21
PR-URL: #56491
Reviewed-By: James M Snell <[email protected]>
Reviewed-By: Joyee Cheung <[email protected]>
Reviewed-By: Jacob Smith <[email protected]>
PR-URL: #58124
Reviewed-By: Anna Henningsen <[email protected]>
Reviewed-By: Colin Ihrig <[email protected]>
Reviewed-By: Rafael Gonzaga <[email protected]>
Reviewed-By: Santiago Gimeno <[email protected]>
Reviewed-By: Juan José Arboleda <[email protected]>
Reviewed-By: Antoine du Hamel <[email protected]>
A `import` call should returns a promise created in the context where
the `import` was called, not the context of `importModuleDynamically`
callback.

PR-URL: #58309
Fixes: #53575
Reviewed-By: Antoine du Hamel <[email protected]>
Reviewed-By: Marco Ippolito <[email protected]>
Signed-off-by: Darshan Sen <[email protected]>
PR-URL: #58306
Reviewed-By: Luigi Pinca <[email protected]>
Reviewed-By: Tierney Cyren <[email protected]>
Reviewed-By: Debadree Chatterjee <[email protected]>
PR-URL: #58269
Reviewed-By: James M Snell <[email protected]>
Reviewed-By: Richard Lau <[email protected]>
Since `String::Write()` is deprecated, use `String::Write2()` instead.
That requires us to compute the correct number of characters ahead of
time but removes the need for dealing with the return value.

PR-URL: #58165
Reviewed-By: Juan José Arboleda <[email protected]>
Reviewed-By: James M Snell <[email protected]>
Reviewed-By: Vladimir Morozov <[email protected]>
Reviewed-By: Chengzhong Wu <[email protected]>
Reviewed-By: Michael Dawson <[email protected]>
PR-URL: #58325
Reviewed-By: Yagiz Nizipli <[email protected]>
Reviewed-By: Michael Dawson <[email protected]>
`EXTENSIONLESS_FORMAT_JAVASCRIPT` and `EXTENSIONLESS_FORMAT_WASM` are
only used internally through binding `getFormatOfExtensionlessFile`.
They should not be exposed publicly.

PR-URL: #58327
Reviewed-By: Yagiz Nizipli <[email protected]>
Reviewed-By: LiviaMedeiros <[email protected]>
Reviewed-By: Matteo Collina <[email protected]>
Reviewed-By: Juan José Arboleda <[email protected]>
This was added for AIX but should have included IBM i as well.

PR-URL: #58335
Reviewed-By: Richard Lau <[email protected]>
Reviewed-By: Michaël Zasso <[email protected]>
Reviewed-By: Luigi Pinca <[email protected]>
Reviewed-By: Michael Dawson <[email protected]>
PR-URL: #58296
Reviewed-By: James M Snell <[email protected]>
Reviewed-By: Luigi Pinca <[email protected]>
PR-URL: #58296
Reviewed-By: James M Snell <[email protected]>
Reviewed-By: Luigi Pinca <[email protected]>
PR-URL: #58307
Reviewed-By: Chengzhong Wu <[email protected]>
Reviewed-By: Dario Piotrowicz <[email protected]>
`Utf8Length()` is deprecated and was replaced during the V8 update, but
a subsequent commit introduced a new occurrence.

Refs: #58070
Refs: #58048
PR-URL: #58156
Reviewed-By: Gerhard Stöbich <[email protected]>
Reviewed-By: Colin Ihrig <[email protected]>
Reviewed-By: Yagiz Nizipli <[email protected]>
Reviewed-By: James M Snell <[email protected]>
Signed-off-by: Darshan Sen <[email protected]>
PR-URL: #58317
Reviewed-By: Santiago Gimeno <[email protected]>
Reviewed-By: Marco Ippolito <[email protected]>
Reviewed-By: Luigi Pinca <[email protected]>
PR-URL: #58152
Reviewed-By: Yagiz Nizipli <[email protected]>
Reviewed-By: Ulises Gascón <[email protected]>
Reviewed-By: Rafael Gonzaga <[email protected]>
Reviewed-By: Michaël Zasso <[email protected]>
Previously, the 'net.client.socket' diagnostics channel was only
published to when `net.connect()` was called. This change ensures the
message is also published for the following calls:

- net.createConnection()
- net.Socket#connect()
- tls.connect()

Signed-off-by: Darshan Sen <[email protected]>
PR-URL: #58349
Reviewed-By: Luigi Pinca <[email protected]>
Reviewed-By: theanarkh <[email protected]>
Reviewed-By: Paolo Insogna <[email protected]>
PR-URL: #58268
Reviewed-By: Matthew Aitken <[email protected]>
Reviewed-By: Michaël Zasso <[email protected]>
Both `createCipher()` and `createDecipher()` were removed in Node.js 22.

PR-URL: #58363
Reviewed-By: Marco Ippolito <[email protected]>
Reviewed-By: Michaël Zasso <[email protected]>
Reviewed-By: Filip Skokan <[email protected]>
Reviewed-By: Mohammed Keyvanzadeh <[email protected]>
Reviewed-By: Luigi Pinca <[email protected]>
As of 0315283, the libuv `UV_TTY_MODE_RAW_VT` flag is available for
applications on Windows in order to have the terminal itself translate
keypresses into control sequences, rather than libuv.
This aligns the TTY setup more closely with POSIX platforms, and
enables handling of control sequences in applications which libuv
is not able to emit at all.

Since the Node.js `readline` implementation already handles divergences
between different control character sequences for the same keypresses
(e.g. `<ESC>[[A` vs `<ESC>OP` for the F1 key), this should not present
a visible change for typical Node.js TTY applications.

Testing is handled on the libuv side, and not easily feasible with
Node.js’s current TTY test setup.

PR-URL: #58358
Reviewed-By: Colin Ihrig <[email protected]>
Reviewed-By: Juan José Arboleda <[email protected]>
Reviewed-By: Luigi Pinca <[email protected]>
Reviewed-By: Chengzhong Wu <[email protected]>
- Remove usage of deprecated V8::InitializeSandbox().
- External code space and pointer compression shared cage must
  be enabled when pointer compression builds are enabled.
- We cannot enable the sandbox because that requires allocating
  the array buffer backing stores in the sandbox - we currently
  have many backing stores tied to pointers from C++ land that
  are not even necessarily dynamic (e.g. in static storage).
  Until we manage to get rid of all those, sandbox cannot be
  enabled. Note that enabling pointer compression without
  enabling sandbox is unsupported by V8, and can be broken
  at any time.

PR-URL: #58171
Reviewed-By: Michaël Zasso <[email protected]>
Reviewed-By: Juan José Arboleda <[email protected]>
Reviewed-By: James M Snell <[email protected]>
V8 isolate group initialization forces allocation of the virtual
memory cage with pointer compression builds and simply would not
work when there is a smaller hard limit on the virtual memory.

PR-URL: #58171
Reviewed-By: Michaël Zasso <[email protected]>
Reviewed-By: Juan José Arboleda <[email protected]>
Reviewed-By: James M Snell <[email protected]>
Signed-off-by: Darshan Sen <[email protected]>
PR-URL: #58329
Reviewed-By: Luigi Pinca <[email protected]>
Reviewed-By: Kohei Ueno <[email protected]>
Reviewed-By: Rafael Gonzaga <[email protected]>
Added a parameter to allow severity-based formatting for
diagnostic messages. Defaults to 'info'.
This update enables better control over message presentation
(e.g., coloring) based on severity levels such as 'info', 'warn',
and 'error'.

Refs: #55922
PR-URL: #57923
Reviewed-By: Pietro Marchini <[email protected]>
Reviewed-By: James M Snell <[email protected]>
Add ChaCha20-Poly1305 to the algorithms for which we ensure that the
authentication tag can be set either before or after calling `update()`.

PR-URL: #58367
Reviewed-By: Luigi Pinca <[email protected]>
Reviewed-By: Filip Skokan <[email protected]>
`path.resolve()` and `path.resolve('.')` is frequently called as
alternative to process.cwd(). This minimized overhead for these
specific cases.

PR-URL: #58362
Reviewed-By: Jordan Harband <[email protected]>
Reviewed-By: Yagiz Nizipli <[email protected]>
Reviewed-By: Marco Ippolito <[email protected]>
Reviewed-By: Matteo Collina <[email protected]>
Reviewed-By: Mohammed Keyvanzadeh <[email protected]>
Reviewed-By: Benjamin Gruenbaum <[email protected]>
Reviewed-By: Rafael Gonzaga <[email protected]>
Reviewed-By: Ulises Gascón <[email protected]>
This loop used to iterate over two elements, but since commit
215f4d0, it only iterates over
a single element. Therefore, move the test out of the loop body
and remove the loop itself.

Refs: #50973
PR-URL: #58368
Reviewed-By: Filip Skokan <[email protected]>
Reviewed-By: Luigi Pinca <[email protected]>
Reviewed-By: LiviaMedeiros <[email protected]>
Reviewed-By: Mohammed Keyvanzadeh <[email protected]>
Reviewed-By: Juan José Arboleda <[email protected]>
This allows us to perform cleanups of cppgc wrappers that rely on a
living Realm during Realm shutdown. Otherwise the cleanup may happen
during object destruction, which can be triggered by GC after Realm
shutdown, leading to invalid access to Realm.

The general pattern for this type of non-trivial destruction is
designed to be:

```
class MyWrap final : CPPGC_MIXIN(MyWrap) {
    public:
    ~MyWrap() { this->Finalize(); }
    void Clean(Realm* realm) override {
        // Do cleanup that relies on a living Realm. This would be
        // called by CppgcMixin::Finalize() first during Realm
        // shutdown, while the Realm is still alive. If the destructor
        // calls Finalize() again later during garbage collection that
        // happens after Realm shutdown, Clean() would be skipped,
        // preventing invalid access to the Realm.
    }
}
```

In addition, this allows us to trace external memory held by the
wrappers in the heap snapshots if we add synthethic edges between the
wrappers and other nodes in the embdder graph callback, or to perform
snapshot serialization for them.

PR-URL: #56534
Reviewed-By: Chengzhong Wu <[email protected]>
Reviewed-By: James M Snell <[email protected]>
Reviewed-By: Matteo Collina <[email protected]>
Use spawnSyncAndAssert() so that the stderr is logged when it
doesn't match expectations.

PR-URL: #58391
Refs: #58353
Reviewed-By: Richard Lau <[email protected]>
Reviewed-By: Luigi Pinca <[email protected]>
jakecastelli and others added 17 commits June 7, 2025 10:24
This reverts commit 52430b9.

PR-URL: #58476
Fixes: #58468
Reviewed-By: Dario Piotrowicz <[email protected]>
PR-URL: #58476
Fixes: #58468
Reviewed-By: Dario Piotrowicz <[email protected]>
PR-URL: #58476
Fixes: #58468
Reviewed-By: Dario Piotrowicz <[email protected]>
Bumps [step-security/harden-runner](https://github.com/step-security/harden-runner) from 2.11.0 to 2.12.0.
- [Release notes](https://github.com/step-security/harden-runner/releases)
- [Commits](step-security/harden-runner@4d991eb...0634a26)

---
updated-dependencies:
- dependency-name: step-security/harden-runner
  dependency-version: 2.12.0
  dependency-type: direct:production
  update-type: version-update:semver-minor
...

Signed-off-by: dependabot[bot] <[email protected]>
PR-URL: #58109
Reviewed-By: Antoine du Hamel <[email protected]>
Bumps [codecov/codecov-action](https://github.com/codecov/codecov-action) from 5.4.2 to 5.4.3.
- [Release notes](https://github.com/codecov/codecov-action/releases)
- [Changelog](https://github.com/codecov/codecov-action/blob/main/CHANGELOG.md)
- [Commits](codecov/codecov-action@ad3126e...18283e0)

---
updated-dependencies:
- dependency-name: codecov/codecov-action
  dependency-version: 5.4.3
  dependency-type: direct:production
  update-type: version-update:semver-patch
...

Signed-off-by: dependabot[bot] <[email protected]>
PR-URL: #58551
Reviewed-By: Luigi Pinca <[email protected]>
Reviewed-By: Michaël Zasso <[email protected]>
Bumps [github/codeql-action](https://github.com/github/codeql-action) from 3.28.16 to 3.28.18.
- [Release notes](https://github.com/github/codeql-action/releases)
- [Changelog](https://github.com/github/codeql-action/blob/main/CHANGELOG.md)
- [Commits](github/codeql-action@28deaed...ff0a06e)

---
updated-dependencies:
- dependency-name: github/codeql-action
  dependency-version: 3.28.18
  dependency-type: direct:production
  update-type: version-update:semver-patch
...

Signed-off-by: dependabot[bot] <[email protected]>
PR-URL: #58552
Reviewed-By: Luigi Pinca <[email protected]>
Reviewed-By: Michaël Zasso <[email protected]>
PR-URL: #58565
Reviewed-By: Luigi Pinca <[email protected]>
Reviewed-By: Michaël Zasso <[email protected]>
PR-URL: #57682
Reviewed-By: Luigi Pinca <[email protected]>
Reviewed-By: Rafael Gonzaga <[email protected]>
Reviewed-By: Ulises Gascón <[email protected]>
Reviewed-By: Marco Ippolito <[email protected]>
Reviewed-By: James M Snell <[email protected]>
Reviewed-By: Michaël Zasso <[email protected]>
This commit automatically includes in the allow-fs-read
list all the app's entrypoints.

`--require` and user entry point

Signed-off-by: RafaelGSS <[email protected]>
PR-URL: #58579
Reviewed-By: James M Snell <[email protected]>
Reviewed-By: Trivikram Kamat <[email protected]>
Reviewed-By: Marco Ippolito <[email protected]>
move the logic in `cpSync` that copies a directory from
src to dest from JavaScript to C++ increasing its performance

Note: this improvement is not applied if the filter option is
      provided, such optimization will be looked into separately
PR-URL: #58461
Reviewed-By: Yagiz Nizipli <[email protected]>
Upstream libuv commits:
libuv/libuv@bb706f5
libuv/libuv@018363a

libuv was updated to 1.51.0 in 0315283.
v1.51.0 was the release updating from c90 to c11.
The standard was back then also updated from c89 to c90. and C89 was
never an official standard to begin with. So, I wonder how this managed
to stay without breaking anyone's builds for this long. This atleast
breaks the builds for Android using NDK r28b and r28a, as LLONG_MAX is
not defined by the Clang compiler for older C standards.

Fixes:
../../deps/uv/src/unix/linux.c:2331:36:
error: use of undeclared identifier 'LLONG_MAX'
 2331 |     constraint->quota_per_period = LLONG_MAX;
      |                                    ^
1 error generated.

PR-URL: #58587
Reviewed-By: Luigi Pinca <[email protected]>
Reviewed-By: Anna Henningsen <[email protected]>
Reviewed-By: Juan José Arboleda <[email protected]>
Signed-off-by: Matteo Collina <[email protected]>
Co-authored-by: Antoine du Hamel <[email protected]>
Refs: https://datatracker.ietf.org/doc/html/rfc9113#section-5.3.1
PR-URL: #58293
Reviewed-By: James M Snell <[email protected]>
Reviewed-By: Michaël Zasso <[email protected]>
Reviewed-By: Darshan Sen <[email protected]>
Reviewed-By: Yagiz Nizipli <[email protected]>
Reviewed-By: Tim Perry <[email protected]>
Reviewed-By: Filip Skokan <[email protected]>
Reviewed-By: Michael Dawson <[email protected]>
Reviewed-By: Rafael Gonzaga <[email protected]>
Reviewed-By: Benjamin Gruenbaum <[email protected]>
PR-URL: #57269
Reviewed-By: Michaël Zasso <[email protected]>
Reviewed-By: Rafael Gonzaga <[email protected]>
Reviewed-By: Luigi Pinca <[email protected]>
Reviewed-By: Antoine du Hamel <[email protected]>
PR-URL: #58591
Reviewed-By: James M Snell <[email protected]>
Reviewed-By: Chengzhong Wu <[email protected]>
Reviewed-By: Darshan Sen <[email protected]>
Reviewed-By: Luigi Pinca <[email protected]>
Reviewed-By: Ulises Gascón <[email protected]>
PR-URL: #58262
Reviewed-By: Yagiz Nizipli <[email protected]>
Reviewed-By: Jordan Harband <[email protected]>
Reviewed-By: James M Snell <[email protected]>
Reviewed-By: Ulises Gascón <[email protected]>
Reviewed-By: LiviaMedeiros <[email protected]>
Reviewed-By: Edy Silva <[email protected]>
PR-URL: #58597
Reviewed-By: Marco Ippolito <[email protected]>
Reviewed-By: Yagiz Nizipli <[email protected]>
Reviewed-By: James M Snell <[email protected]>
This change skips asserting the exit code of the child process with the
corrupted async hooks stack only on those platforms where termination
via a signal has been observed.

Refs: #58478 (comment)
Signed-off-by: Darshan Sen <[email protected]>
PR-URL: #58601
Reviewed-By: Juan José Arboleda <[email protected]>
Reviewed-By: Joyee Cheung <[email protected]>
Reviewed-By: Rafael Gonzaga <[email protected]>
Reviewed-By: Luigi Pinca <[email protected]>
@github-actions github-actions bot added release Issues and PRs related to Node.js releases. v24.x v24.x v24.x Issues that can be reproduced on v24.x or PRs targeting the v24.x-staging branch. labels Jun 8, 2025
nodejs-github-bot added a commit that referenced this pull request Jun 8, 2025
Notable changes:

doc:
  * deprecate utilisNativeError in favor of ErrorisError (Miguel Marcondes Filho) #58262
  * deprecate passing an empty string to `options.shell` (Antoine du Hamel) #58564
  * deprecate HTTP/2 priority signaling (Matteo Collina) #58313
  * (SEMVER-MINOR) graduate Symbol.dispose/asyncDispose from experimental (James M Snell) #58467
esm:
  * (SEMVER-MINOR) implement import.meta.main (Joe) #57804
fs:
  * (SEMVER-MINOR) add autoClose option to FileHandle readableWebStream (James M Snell) #58548
http:
  * deprecate instantiating classes without new (Yagiz Nizipli) #58518
http2:
  * (SEMVER-MINOR) add diagnostics channel 'http2.server.stream.finish' (Darshan Sen) #58560
lib:
  * (SEMVER-MINOR) graduate error codes that have been around for years (James M Snell) #58541
perf_hooks:
  * (SEMVER-MINOR) make event loop delay histogram disposable (James M Snell) #58384
src:
  * (SEMVER-MINOR) support namespace options in configuration file (Pietro Marchini) #58073
test:
  * (SEMVER-MINOR) add disposable histogram test (James M Snell) #58384
  * (SEMVER-MINOR) add test for async disposable worker thread (James M Snell) #58385
util:
  * (SEMVER-MINOR) add 'none' style to styleText (James M Snell) #58437
worker:
  * (SEMVER-MINOR) make Worker async disposable (James M Snell) #58385

PR-URL: #58635
@nodejs-github-bot
Copy link
Collaborator

Review requested:

  • @nodejs/actions
  • @nodejs/gyp
  • @nodejs/net
  • @nodejs/performance
  • @nodejs/security-wg
  • @nodejs/url

@aduh95 aduh95 force-pushed the v24.2.0-proposal branch from dedfc09 to 6fde40c Compare June 8, 2025 19:05
aduh95 pushed a commit that referenced this pull request Jun 8, 2025
Notable changes:

doc:
  * deprecate `util.isNativeError` in favor of `Error.isError` (Miguel Marcondes Filho) #58262
  * deprecate passing an empty string to `options.shell` (Antoine du Hamel) #58564
  * deprecate HTTP/2 priority signaling (Matteo Collina) #58313
  * (SEMVER-MINOR) graduate `Symbol.dispose`/`asyncDispose` from experimental (James M Snell) #58467
esm:
  * (SEMVER-MINOR) implement import.meta.main (Joe) #57804
fs:
  * (SEMVER-MINOR) add `autoClose` option to `FileHandle` `readableWebStream` (James M Snell) #58548
http:
  * deprecate instantiating classes without new (Yagiz Nizipli) #58518
http2:
  * (SEMVER-MINOR) add diagnostics channel 'http2.server.stream.finish' (Darshan Sen) #58560
  * (SEMVER-MAJOR) remove support for priority signaling (Matteo Collina) #58293
lib:
  * (SEMVER-MINOR) graduate error codes that have been around for years (James M Snell) #58541
perf_hooks:
  * (SEMVER-MINOR) make event loop delay histogram disposable (James M Snell) #58384
src:
  * (SEMVER-MINOR) support namespace options in configuration file (Pietro Marchini) #58073
test:
  * (SEMVER-MINOR) add disposable histogram test (James M Snell) #58384
  * (SEMVER-MINOR) add test for async disposable worker thread (James M Snell) #58385
util:
  * (SEMVER-MINOR) add 'none' style to styleText (James M Snell) #58437
worker:
  * (SEMVER-MINOR) make Worker async disposable (James M Snell) #58385

PR-URL: #58635
@aduh95 aduh95 marked this pull request as ready for review June 8, 2025 19:28
Notable changes:

doc:
  * deprecate `util.isNativeError` in favor of `Error.isError` (Miguel Marcondes Filho) #58262
  * deprecate passing an empty string to `options.shell` (Antoine du Hamel) #58564
  * deprecate HTTP/2 priority signaling (Matteo Collina) #58313
  * (SEMVER-MINOR) graduate `Symbol.dispose`/`asyncDispose` from experimental (James M Snell) #58467
esm:
  * (SEMVER-MINOR) implement import.meta.main (Joe) #57804
fs:
  * (SEMVER-MINOR) add `autoClose` option to `FileHandle` `readableWebStream` (James M Snell) #58548
http:
  * deprecate instantiating classes without new (Yagiz Nizipli) #58518
http2:
  * (SEMVER-MINOR) add diagnostics channel 'http2.server.stream.finish' (Darshan Sen) #58560
  * (SEMVER-MAJOR) remove support for priority signaling (Matteo Collina) #58293
lib:
  * (SEMVER-MINOR) graduate error codes that have been around for years (James M Snell) #58541
perf_hooks:
  * (SEMVER-MINOR) make event loop delay histogram disposable (James M Snell) #58384
src:
  * (SEMVER-MINOR) support namespace options in configuration file (Pietro Marchini) #58073
test:
  * (SEMVER-MINOR) add disposable histogram test (James M Snell) #58384
  * (SEMVER-MINOR) add test for async disposable worker thread (James M Snell) #58385
util:
  * (SEMVER-MINOR) add 'none' style to styleText (James M Snell) #58437
worker:
  * (SEMVER-MINOR) make Worker async disposable (James M Snell) #58385

PR-URL: #58635
@aduh95 aduh95 force-pushed the v24.2.0-proposal branch from 6fde40c to 58d0c9b Compare June 8, 2025 21:07
@nodejs-github-bot
Copy link
Collaborator

nodejs-github-bot commented Jun 8, 2025

Copy link

codecov bot commented Jun 8, 2025

Codecov Report

Attention: Patch coverage is 94.69469% with 53 lines in your changes missing coverage. Please review.

Project coverage is 90.17%. Comparing base (587a88b) to head (58d0c9b).
Report is 1 commits behind head on v24.x.

Files with missing lines Patch % Lines
lib/internal/repl/history.js 91.80% 29 Missing ⚠️
lib/internal/fs/cp/cp-sync.js 75.00% 7 Missing ⚠️
lib/internal/webstreams/compression.js 71.42% 4 Missing ⚠️
lib/internal/readline/interface.js 97.26% 2 Missing ⚠️
lib/internal/test_runner/reporter/utils.js 77.77% 2 Missing ⚠️
lib/internal/http2/util.js 88.88% 1 Missing ⚠️
lib/internal/inspector/network_http.js 93.33% 1 Missing ⚠️
lib/internal/inspector/network_undici.js 94.73% 1 Missing ⚠️
lib/internal/main/embedding.js 50.00% 1 Missing ⚠️
lib/internal/main/worker_thread.js 92.85% 1 Missing ⚠️
... and 4 more
Additional details and impacted files
@@            Coverage Diff             @@
##            v24.x   #58635      +/-   ##
==========================================
- Coverage   90.24%   90.17%   -0.07%     
==========================================
  Files         632      635       +3     
  Lines      187024   188278    +1254     
  Branches    36711    36935     +224     
==========================================
+ Hits       168775   169779    +1004     
- Misses      11043    11246     +203     
- Partials     7206     7253      +47     
Files with missing lines Coverage Δ
lib/_http_server.js 97.07% <100.00%> (+0.08%) ⬆️
lib/dgram.js 97.61% <100.00%> (ø)
lib/https.js 99.30% <100.00%> (ø)
lib/inspector.js 96.92% <100.00%> (+0.01%) ⬆️
lib/internal/bootstrap/node.js 99.57% <100.00%> (+<0.01%) ⬆️
lib/internal/child_process.js 95.06% <100.00%> (ø)
lib/internal/errors.js 97.48% <100.00%> (+<0.01%) ⬆️
lib/internal/fs/cp/cp.js 91.45% <100.00%> (+1.13%) ⬆️
lib/internal/fs/dir.js 94.56% <100.00%> (+0.10%) ⬆️
lib/internal/fs/promises.js 98.09% <100.00%> (-0.15%) ⬇️
... and 87 more

... and 46 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.

@nodejs-github-bot
Copy link
Collaborator

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
release Issues and PRs related to Node.js releases. v24.x v24.x v24.x Issues that can be reproduced on v24.x or PRs targeting the v24.x-staging branch.
Projects
None yet
Development

Successfully merging this pull request may close these issues.