Skip to content
Closed
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
83 commits
Select commit Hold shift + click to select a range
d6be715
test: relax min assertion in test-performance-eventloopdelay
marcopiraccini May 17, 2026
bc90667
stream: fix merge handling for object-like sources
trivikr May 17, 2026
1f371fc
stream: add sync iterable fast path to pipeTo
trivikr May 17, 2026
debe2ed
test_runner: avoid hanging on incomplete v8 frames
thisalihassan May 18, 2026
3b19867
benchmark: respect stream/iter broadcast backpressure
trivikr May 18, 2026
f2aaf63
test: fix flaky test-watch-mode-inspect timeout
mcollina May 18, 2026
155268f
doc: add Rust toolchain manual installation instructions Windows
MikeMcC399 May 18, 2026
4ee7567
fs: add `Temporal.Instant` support to `Stats` and `BigIntStats`
LiviaMedeiros May 18, 2026
55920df
deps: update corepack to 0.35.0
nodejs-github-bot May 19, 2026
2ebf533
tools: update nixpkgs-unstable to d233902339c02a9c334e7e593de68855ad2
nodejs-github-bot May 19, 2026
783b382
stream: align `Readable.toWeb` termination with eos
ikeyan May 19, 2026
d2b6840
tools: update gyp-next to 0.22.2
nodejs-github-bot May 19, 2026
216718a
tools: bump the eslint group in /tools/eslint with 4 updates
dependabot[bot] May 19, 2026
f352556
stream: disallow writing string chunk with 'buffer' encoding
Renegade334 May 19, 2026
21a92e8
deps: update undici to 8.3.0
nodejs-github-bot May 19, 2026
7acaa0f
crypto: align verifyOneShot accepted types
Anshikakalpana May 19, 2026
57ee682
test: deflake watch mode worker test
trivikr May 19, 2026
b1387e6
lib: use `Object.freeze` to avoid defensive cloning in `SourceMap`
watilde May 19, 2026
0b5b189
test: avoid repeated writes in watch helper
trivikr May 19, 2026
46e17c7
build,win: add Rust toolchain automated configuration Windows
MikeMcC399 May 19, 2026
5605f6b
doc: update http2's `push` and `trailers` events with `rawHeaders` param
samuel871211 May 19, 2026
4f4077a
doc: remove the bi-monthly contributor spotlight section
ovflowd May 19, 2026
0c7034f
doc: fix article usage before vowel-sound acronyms
joao-oliveira-softtor May 19, 2026
f868543
test: deflake connection refused proxy tests
trivikr May 20, 2026
0e8fb91
test: disable Maglev in near-heap-limit worker test
trivikr May 20, 2026
09b369f
meta: move one or more collaborators to emeritus
nodejs-github-bot May 20, 2026
701f735
doc: fix promise nomenclature in `stream_iter.md`
aduh95 May 20, 2026
59e8484
doc: remove unsupported template type from v8.md
Renegade334 May 20, 2026
d955896
2026-05-20, Version 26.2.0 (Current)
aduh95 May 20, 2026
b5659d1
test: update WPT for WebCryptoAPI to 97bbc7247a
nodejs-github-bot May 20, 2026
614050b
build,win: replace LTCG with Thin LTO for releases
StefanStojanovic May 20, 2026
61d66c3
test: unskip snapshot reproducibility test
joyeecheung May 21, 2026
a29a118
gyp: update deps gypfiles
nadalaba May 21, 2026
1455277
test_runner: preserve run duration when using test-rerun
MoLow May 19, 2026
5c87012
test_runner: show replayed-from-attempt hint in spec reporter
MoLow May 19, 2026
0d6541a
2026-05-21, Version 24.16.0 'Krypton' (LTS)
nodejs-github-bot May 12, 2026
d92ee51
src: expose `node::RegisterContext` to make a node managed context
legendecas May 21, 2026
9fc42e3
test: wait for ok before initial break after restart
inoway46 May 21, 2026
7e8641a
doc: fix typo in deprecations
watilde May 21, 2026
e6e6700
test_runner: add parentId to test events with testId
MoLow May 21, 2026
9c60b08
doc: update toolchain for official releases
richardlau May 21, 2026
436748f
src,lib: implement experimental DTLS API
jasnell May 8, 2026
067d2a2
src, lib: add stats to dtls
jasnell May 10, 2026
f835cc4
src,lib: add dtls interop tests
jasnell May 10, 2026
22b987c
meta: add additional gitignore entries
jasnell May 12, 2026
ff8aa78
quic: improve backend quic packet processing
jasnell May 12, 2026
60ba1b3
test: fixup quic tests
jasnell May 12, 2026
9968679
quic: improve batching of packet sending
jasnell May 12, 2026
567ac2d
quic: add support for future ECN marking
jasnell May 12, 2026
f341ad7
quic: cache the timestamp on send and receive
jasnell May 12, 2026
b6c6a83
quic: eliminate per-received datagram allocation
jasnell May 12, 2026
fcddd35
quic: fix crash in early handshake failure
jasnell May 12, 2026
554b208
quic: fixup linting issue after other changes
jasnell May 12, 2026
befc5f9
quic: implement rate limiting for version nego and immediate close
jasnell May 12, 2026
4eae6f1
quic: add handshake timeout and default connection limits
jasnell May 12, 2026
fdbfb68
quic: add aliased struct arenas
jasnell May 13, 2026
e56badc
quic: improve internal structure of QuicStream
jasnell May 13, 2026
fb49d36
quic: improve the quic js structure
jasnell May 14, 2026
5b3c053
quic: fix UAF in Application::OnTimeout()
jasnell May 14, 2026
b621fb3
quic: fixup UAFs in bindingdata, streams, and app
jasnell May 14, 2026
5d1ea79
quic: fix premature unref of endpoint when listening
jasnell May 14, 2026
f1fdf91
quic: fixup some v8:: qualifiers
jasnell May 14, 2026
137f7ae
quic: fix tests that are missing serverEndpoint close
jasnell May 14, 2026
0163847
quic: apply multiple additional minor improvements
jasnell May 15, 2026
3c42f78
quic: coalesce received data into fewer buffers
jasnell May 15, 2026
add5210
quic: add reusePort option to QuicEndpoint
jasnell May 16, 2026
320a3a2
quic: improve stream header collection performance
jasnell May 16, 2026
1776f3f
quic: enable recvmmsg batching in Endpoint
jasnell May 16, 2026
8a598fd
quic: add initial RTT option to session options
jasnell May 16, 2026
1d9b449
quic: improve recv coalescing test sizes
jasnell May 16, 2026
4aea61d
quic: add getters for local and remote transport parameters
jasnell May 16, 2026
2f56cd2
quic: add applicationOptions to session
jasnell May 16, 2026
7e7bde8
stream: fix Writable.toWeb() hang on synchronous drain
Han5991 May 22, 2026
e11b945
test: isolate rerun-failures state file under tmpdir
atlowChemi May 22, 2026
3553a34
debugger: surface inspector failures in probe mode
joyeecheung May 22, 2026
10f8a83
doc: add Rust toolchain general install instructions
MikeMcC399 May 22, 2026
5ff701a
doc: fix "options" to "option" in tls.createServer
watilde May 22, 2026
ca37665
ffi: move DynamicLibrary disposer to native layer
Renegade334 May 22, 2026
11ea171
tools: mock some Python utils in `v8.nix` to reuse builds
aduh95 May 22, 2026
fa0aadc
deps: upgrade npm to 11.15.0
npm-cli-bot May 22, 2026
a7d5446
stream: propagate abort reason in share and broadcast
trivikr May 23, 2026
8d3245e
stream: avoid duplicate writes in toWritable
trivikr May 23, 2026
e665005
Create node.js.yml
Premiermoney May 23, 2026
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
The table of contents is too big for display.
Diff view
Diff view
  •  
  •  
  •  
9 changes: 8 additions & 1 deletion .configurations/configuration.dsc.yaml
Original file line number Diff line number Diff line change
Expand Up @@ -35,6 +35,13 @@ properties:
- Microsoft.VisualStudio.Workload.NativeDesktop
- Microsoft.VisualStudio.Component.VC.Llvm.Clang
- Microsoft.VisualStudio.Component.VC.Llvm.ClangToolset
- resource: Microsoft.WinGet.DSC/WinGetPackage
id: rustPackage
directives:
description: Install Rust with MSVC toolchain
settings:
id: Rustlang.Rust.MSVC
source: winget
- resource: Microsoft.WinGet.DSC/WinGetPackage
id: gitPackage
directives:
Expand All @@ -51,4 +58,4 @@ properties:
settings:
id: Nasm.Nasm
source: winget
configurationVersion: 0.1.1
configurationVersion: 0.2.0
9 changes: 8 additions & 1 deletion .configurations/configuration.vsBuildTools.dsc.yaml
Original file line number Diff line number Diff line change
Expand Up @@ -35,6 +35,13 @@ properties:
- Microsoft.VisualStudio.Workload.VCTools
- Microsoft.VisualStudio.Component.VC.Llvm.Clang
- Microsoft.VisualStudio.Component.VC.Llvm.ClangToolset
- resource: Microsoft.WinGet.DSC/WinGetPackage
id: rustPackage
directives:
description: Install Rust with MSVC toolchain
settings:
id: Rustlang.Rust.MSVC
source: winget
- resource: Microsoft.WinGet.DSC/WinGetPackage
id: gitPackage
directives:
Expand All @@ -51,4 +58,4 @@ properties:
settings:
id: Nasm.Nasm
source: winget
configurationVersion: 0.1.1
configurationVersion: 0.2.0
9 changes: 8 additions & 1 deletion .configurations/configuration.vsEnterprise.dsc.yaml
Original file line number Diff line number Diff line change
Expand Up @@ -35,6 +35,13 @@ properties:
- Microsoft.VisualStudio.Workload.NativeDesktop
- Microsoft.VisualStudio.Component.VC.Llvm.Clang
- Microsoft.VisualStudio.Component.VC.Llvm.ClangToolset
- resource: Microsoft.WinGet.DSC/WinGetPackage
id: rustPackage
directives:
description: Install Rust with MSVC toolchain
settings:
id: Rustlang.Rust.MSVC
source: winget
- resource: Microsoft.WinGet.DSC/WinGetPackage
id: gitPackage
directives:
Expand All @@ -51,4 +58,4 @@ properties:
settings:
id: Nasm.Nasm
source: winget
configurationVersion: 0.1.1
configurationVersion: 0.2.0
9 changes: 8 additions & 1 deletion .configurations/configuration.vsProfessional.dsc.yaml
Original file line number Diff line number Diff line change
Expand Up @@ -35,6 +35,13 @@ properties:
- Microsoft.VisualStudio.Workload.NativeDesktop
- Microsoft.VisualStudio.Component.VC.Llvm.Clang
- Microsoft.VisualStudio.Component.VC.Llvm.ClangToolset
- resource: Microsoft.WinGet.DSC/WinGetPackage
id: rustPackage
directives:
description: Install Rust with MSVC toolchain
settings:
id: Rustlang.Rust.MSVC
source: winget
- resource: Microsoft.WinGet.DSC/WinGetPackage
id: gitPackage
directives:
Expand All @@ -51,4 +58,4 @@ properties:
settings:
id: Nasm.Nasm
source: winget
configurationVersion: 0.1.1
configurationVersion: 0.2.0
52 changes: 52 additions & 0 deletions .github/workflows/node.js.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,52 @@
# Docker has specific installation instructions for each operating system.
# Please refer to the official documentation at https://docker.com/get-started/

# Pull the Node.js Docker image:
docker pull node:26-slim

# Create a Node.js container and start a Shell session:
docker run -it --rm --entrypoint sh node:26-slim

# Verify the Node.js version:
node -v # Should print "v26.2.0".

# Install Corepack:
npm install -g corepack

# Download and install pnpm:
corepack enable pnpm

# Verify pnpm version:
pnpm -v

# This workflow will do a clean installation of node dependencies, cache/restore them, build the source code and run tests across different versions of node
# For more information see: https://docs.github.com/en/actions/automating-builds-and-tests/building-and-testing-nodejs

name: Node.js CI

on:
push:
branches: [ "main" ]
pull_request:
branches: [ "main" ]

jobs:
build:

runs-on: ubuntu-latest

strategy:
matrix:
node-version: [18.x, 20.x, 22.x]
# See supported Node.js release schedule at https://nodejs.org/en/about/releases/

steps:
- uses: actions/checkout@v4
- name: Use Node.js ${{ matrix.node-version }}
uses: actions/setup-node@v4
with:
node-version: ${{ matrix.node-version }}
cache: 'npm'
- run: npm ci
- run: npm run build --if-present
- run: npm test
1 change: 1 addition & 0 deletions .gitignore
Original file line number Diff line number Diff line change
Expand Up @@ -31,6 +31,7 @@
/tags
/tags.*
/doc/api.xml
/docs/
/node
/node_g
/gon-config.json
Expand Down
30 changes: 25 additions & 5 deletions BUILDING.md
Original file line number Diff line number Diff line change
Expand Up @@ -175,10 +175,10 @@ Binaries at <https://nodejs.org/download/release/> are produced on:
| aix-ppc64 | AIX 7.2 TL04 on PPC64BE with GCC 12[^5] |
| darwin-x64 | macOS 15, Xcode 16 with -mmacosx-version-min=13.5 |
| darwin-arm64 (and .pkg) | macOS 15 (arm64), Xcode 16 with -mmacosx-version-min=13.5 |
| linux-arm64 | RHEL 8 with Clang 19.1 and gcc-toolset-14-libatomic-devel[^6] |
| linux-ppc64le | RHEL 8 with Clang 19.1 and gcc-toolset-14-libatomic-devel[^6] |
| linux-s390x | RHEL 8 with Clang 19.1 and gcc-toolset-14-libatomic-devel[^6] |
| linux-x64 | RHEL 8 with Clang 19.1 and gcc-toolset-14-libatomic-devel[^6] |
| linux-arm64 | RHEL 8 with Clang 20.1 and gcc-toolset-14-libatomic-devel[^6] |
| linux-ppc64le | RHEL 8 with Clang 20.1 and gcc-toolset-14-libatomic-devel[^6] |
| linux-s390x | RHEL 8 with Clang 20.1 and gcc-toolset-14-libatomic-devel[^6] |
| linux-x64 | RHEL 8 with Clang 20.1 and gcc-toolset-14-libatomic-devel[^6] |
| win-arm64 | Windows Server 2022 (x64) with Visual Studio 2022 |
| win-x64 | Windows Server 2022 (x64) with Visual Studio 2022 |

Expand Down Expand Up @@ -237,10 +237,23 @@ tarball and/or browse the git repository checked out at the relevant tag.
### Prerequisites

* [A supported version of Python][Python versions] for building and testing.
* Memory: at least 8GB of RAM is typically required when compiling with 4 parallel jobs (e.g: `make -j4`)
* A Rust toolchain if [building Node.js with Temporal support](#building-nodejs-with-temporal-support)
is required (enabled by default starting in Node.js 26).
* Memory: at least 8GB of RAM is typically required when compiling with 4 parallel jobs (e.g: `make -j4`).

### Unix and macOS

Consult the official [Install Rust](https://rust-lang.org/tools/install/)
instructions to install a Rust toolchain, required for Temporal support introduced in Node.js 25.4.0.
Individual packages such as `rust` and `cargo` in some operating system distributions may be considered
as an alternative, for example in CI environments.
Consult with relevant operating system documentation to ensure that packages
meet the minimum version specified in the
[Building Node.js with Temporal support](#building-nodejs-with-temporal-support) section,
as packaged versions may lag behind the `stable` version installed by the official instructions.
Avoid mixing `rustup` together with `rust` and `cargo` package installations, due to
potential version conflicts.

#### Unix prerequisites

* `gcc` and `g++` >= 13.2 or `clang` and `clang++` >= 19.1
Expand Down Expand Up @@ -755,6 +768,10 @@ Refs:
* As an alternative to Visual Studio 2026, download Visual Studio 2022 Current channel Version 17.14 from the
[Evergreen bootstrappers](https://learn.microsoft.com/en-us/visualstudio/releases/2022/release-history#evergreen-bootstrappers)
table and install using the same workload and optional component selection as described above.
* To install the Rust toolchain, required for Temporal support introduced in Node.js 26,
ensure Visual Studio is already installed, then run `rustup-init.exe` downloaded from
[Install Rust](https://rust-lang.org/tools/install/),
choosing the default: "Proceed with standard installation".
* Basic Unix tools required for some tests,
[Git for Windows](https://git-scm.com/download/win) includes Git Bash
and tools which can be included in the global `PATH`.
Expand Down Expand Up @@ -792,6 +809,7 @@ easily. These files will install the following
* `Python 3.14`
* `Visual Studio 2022` (Build Tools, Community, Professional or Enterprise Edition) and
"Desktop development with C++" workload, Clang and ClangToolset optional components
* `Rust Toolchain MSVC`
* `NetWide Assembler`

The following Desired State Configuration (DSC) files are available:
Expand Down Expand Up @@ -1051,6 +1069,8 @@ requires a Rust toolchain:
* rustc >= 1.82 (with LLVM >= 19)
* cargo >= 1.82

Refer to [Install Rust](https://rust-lang.org/tools/install/) for instructions.

If `--v8-enable-temporal-support` and `--v8-disable-temporal-support` are both
omitted, `configure.py` probes for `cargo` and `rustc`. If either is missing,
a warning is printed and Temporal support is disabled.
Expand Down
6 changes: 4 additions & 2 deletions CHANGELOG.md
Original file line number Diff line number Diff line change
Expand Up @@ -42,7 +42,8 @@ release.
</tr>
<tr>
<td valign="top">
<b><a href="doc/changelogs/CHANGELOG_V26.md#26.1.0">26.1.0</a></b><br/>
<b><a href="doc/changelogs/CHANGELOG_V26.md#26.2.0">26.2.0</a></b><br/>
<a href="doc/changelogs/CHANGELOG_V26.md#26.1.0">26.1.0</a><br/>
<a href="doc/changelogs/CHANGELOG_V26.md#26.0.0">26.0.0</a><br/>
</td>
<td valign="top">
Expand All @@ -62,7 +63,8 @@ release.
<a href="doc/changelogs/CHANGELOG_V25.md#25.0.0">25.0.0</a><br/>
</td>
<td valign="top">
<b><a href="doc/changelogs/CHANGELOG_V24.md#24.15.0">24.15.0</a></b><br/>
<b><a href="doc/changelogs/CHANGELOG_V24.md#24.16.0">24.16.0</a></b><br/>
<a href="doc/changelogs/CHANGELOG_V24.md#24.15.0">24.15.0</a><br/>
<a href="doc/changelogs/CHANGELOG_V24.md#24.14.1">24.14.1</a><br/>
<a href="doc/changelogs/CHANGELOG_V24.md#24.14.0">24.14.0</a><br/>
<a href="doc/changelogs/CHANGELOG_V24.md#24.13.1">24.13.1</a><br/>
Expand Down
8 changes: 4 additions & 4 deletions README.md
Original file line number Diff line number Diff line change
Expand Up @@ -317,8 +317,6 @@ For information about the governance of the Node.js project, see
**Daeyeon Jeong** <<daeyeon.dev@gmail.com>> (he/him)
* [dario-piotrowicz](https://github.com/dario-piotrowicz) -
**Dario Piotrowicz** <<dario.piotrowicz@gmail.com>> (he/him)
* [debadree25](https://github.com/debadree25) -
**Debadree Chatterjee** <<debadree333@gmail.com>> (he/him)
* [deokjinkim](https://github.com/deokjinkim) -
**Deokjin Kim** <<deokjin81.kim@gmail.com>> (he/him)
* [edsadr](https://github.com/edsadr) -
Expand Down Expand Up @@ -365,8 +363,6 @@ For information about the governance of the Node.js project, see
**James M Snell** <<jasnell@gmail.com>> (he/him)
* [jazelly](https://github.com/jazelly) -
**Jason Zhang** <<xzha4350@gmail.com>> (he/him)
* [JonasBa](https://github.com/JonasBa) -
**Jonas Badalic** <<jonas.badalic@gmail.com>> (he/him)
* [joyeecheung](https://github.com/joyeecheung) -
**Joyee Cheung** <<joyeec9h3@gmail.com>> (she/her)
* [juanarbol](https://github.com/juanarbol) -
Expand Down Expand Up @@ -507,6 +503,8 @@ For information about the governance of the Node.js project, see
**David Cai** <<davidcai1993@yahoo.com>> (he/him)
* [davisjam](https://github.com/davisjam) -
**Jamie Davis** <<davisjam@vt.edu>> (he/him)
* [debadree25](https://github.com/debadree25) -
**Debadree Chatterjee** <<debadree333@gmail.com>> (he/him)
* [devnexen](https://github.com/devnexen) -
**David Carlier** <<devnexen@gmail.com>>
* [devsnek](https://github.com/devsnek) -
Expand Down Expand Up @@ -571,6 +569,8 @@ For information about the governance of the Node.js project, see
**João Reis** <<reis@janeasystems.com>>
* [joesepi](https://github.com/joesepi) -
**Joe Sepi** <<sepi@joesepi.com>> (he/him)
* [JonasBa](https://github.com/JonasBa) -
**Jonas Badalic** <<jonas.badalic@gmail.com>> (he/him)
* [joshgav](https://github.com/joshgav) -
**Josh Gavant** <<josh.gavant@outlook.com>>
* [julianduque](https://github.com/julianduque) -
Expand Down
6 changes: 4 additions & 2 deletions benchmark/streams/iter-throughput-broadcast.js
Original file line number Diff line number Diff line change
Expand Up @@ -128,9 +128,11 @@ function benchIter(chunk, numConsumers, datasize, n, totalOps) {
let remaining = datasize;
while (remaining > 0) {
const size = Math.min(remaining, chunk.length);
remaining -= size;
const buf = size === chunk.length ? chunk : chunk.subarray(0, size);
writer.writeSync(buf);
if (!writer.writeSync(buf)) {
await writer.write(buf);
}
remaining -= size;
}
writer.endSync();

Expand Down
27 changes: 26 additions & 1 deletion benchmark/streams/iter-throughput-pipeto.js
Original file line number Diff line number Diff line change
Expand Up @@ -6,7 +6,7 @@ const common = require('../common.js');
const { Readable, Writable, pipeline } = require('stream');

const bench = common.createBenchmark(main, {
api: ['classic', 'webstream', 'iter', 'iter-sync'],
api: ['classic', 'webstream', 'iter', 'iter-sync-source', 'iter-sync'],
datasize: [1024 * 1024, 16 * 1024 * 1024, 64 * 1024 * 1024],
n: [5],
}, {
Expand All @@ -26,6 +26,8 @@ function main({ api, datasize, n }) {
return benchWebStream(chunk, datasize, n, totalOps);
case 'iter':
return benchIter(chunk, datasize, n, totalOps);
case 'iter-sync-source':
return benchIterSyncSource(chunk, datasize, n, totalOps);
case 'iter-sync':
return benchIterSync(chunk, datasize, n, totalOps);
}
Expand Down Expand Up @@ -101,6 +103,29 @@ function benchIter(chunk, datasize, n, totalOps) {
})();
}

function benchIterSyncSource(chunk, datasize, n, totalOps) {
const { pipeTo } = require('stream/iter');

async function run() {
let remaining = datasize;
function* source() {
while (remaining > 0) {
const size = Math.min(remaining, chunk.length);
remaining -= size;
yield size === chunk.length ? chunk : chunk.subarray(0, size);
}
}
const writer = { write() {}, writeSync() { return true; } };
await pipeTo(source(), writer);
}

(async () => {
bench.start();
for (let i = 0; i < n; i++) await run();
bench.end(totalOps);
})();
}

function benchIterSync(chunk, datasize, n, totalOps) {
const { pipeToSync } = require('stream/iter');

Expand Down
7 changes: 7 additions & 0 deletions common.gypi
Original file line number Diff line number Diff line change
Expand Up @@ -272,6 +272,13 @@
},
},
},],
['(enable_thin_lto=="true" or enable_lto=="true") and lto_jobs!=""', {
'msvs_settings': {
'VCLinkerTool': {
'AdditionalOptions': ['/opt:lldltojobs=<(lto_jobs)'],
},
},
},],
],
'target_conditions': [
['_toolset=="target"', {
Expand Down
20 changes: 20 additions & 0 deletions configure.py
Original file line number Diff line number Diff line change
Expand Up @@ -225,6 +225,14 @@
help="Enable compiling with thin lto of a binary. This feature is only available "
"on windows.")

parser.add_argument("--lto-jobs",
action="store",
dest="lto_jobs",
default=None,
help="Set the number of parallel LTO code generation jobs during linking. "
"Defaults to the number of CPU cores. Lower values reduce peak memory "
"usage at the cost of longer link times. Only effective with LTO enabled.")

parser.add_argument("--link-module",
action="append",
dest="linked_module",
Expand Down Expand Up @@ -1065,6 +1073,12 @@
default=None,
help='build with experimental QUIC support')

parser.add_argument('--experimental-dtls',
action='store_true',
dest='experimental_dtls',
default=None,
help='build with experimental DTLS support')

parser.add_argument('--ninja',
action='store_true',
dest='use_ninja',
Expand Down Expand Up @@ -1995,6 +2009,7 @@ def configure_node(o):

o['variables']['enable_lto'] = b(options.enable_lto)
o['variables']['enable_thin_lto'] = b(options.enable_thin_lto)
o['variables']['lto_jobs'] = options.lto_jobs or ''

if options.node_use_large_pages or options.node_use_large_pages_script_lld:
warn('''The `--use-largepages` and `--use-largepages-script-lld` options
Expand Down Expand Up @@ -2353,6 +2368,10 @@ def configure_quic(o):
o['variables']['node_use_quic'] = b(options.experimental_quic and
not options.without_ssl)

def configure_dtls(o):
o['variables']['node_use_dtls'] = b(options.experimental_dtls and
not options.without_ssl)

def configure_static(o):
if options.fully_static or options.partly_static:
if flavor == 'mac':
Expand Down Expand Up @@ -2811,6 +2830,7 @@ def make_bin_override():
configure_v8(output, configurations)
configure_openssl(output)
configure_quic(output)
configure_dtls(output)
configure_intl(output)
configure_static(output)
configure_inspector(output)
Expand Down
Loading
Loading