Skip to content
Draft
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
38 commits
Select commit Hold shift + click to select a range
9cf2ce7
deps: update perfetto to 57.2
nodejs-github-bot Aug 14, 2026
38e3955
deps: cherry-pick libuv/libuv@e640dc9
Aug 14, 2026
553aec1
doc: document open pull request limit
mcollina Aug 14, 2026
bc813a7
stream: preserve falsy cancellation reasons
trivikr Aug 14, 2026
c4b755e
sqlite: reject connection access from authorizer callbacks
TrevorBurnham Aug 14, 2026
c8996ea
sqlite: add stmt persistent flag
araujogui Aug 14, 2026
4551732
stream: speed up async iteration of Readable
mcollina Aug 14, 2026
3e4d2e4
benchmark: apply `highWaterMark` in webstreams `pipe-to`
mcollina Aug 8, 2026
ec1a8df
stream: cut promise churn in webstreams hot paths
mcollina Aug 8, 2026
2929417
stream: consolidate non-op algorithm callbacks
mcollina Aug 8, 2026
91aaf05
doc: fix SQLite changeset constant descriptions
greenheadHQ Aug 15, 2026
c55fa12
test: wait for FFI background optimization
trivikr Aug 15, 2026
9ad097b
quic: fix wake up blob
martenrichter Aug 15, 2026
c2b2e3f
test: use for-of instead of forEach
devfep Aug 15, 2026
c7b962c
sqlite: add diagnostic channel
araujogui Aug 15, 2026
5615b25
test: accomodate multi-global tests in WPT{Runner,TestSpec,Report}
panva Aug 1, 2026
c757550
test: add opt-in process WPT runner
panva Aug 4, 2026
b9afdd0
worker: add support for Web Workers
avivkeller Aug 1, 2026
78cca36
test: enable multi-global WPTs
panva Aug 4, 2026
c73d0b1
worker: add wpt tests for Web Workers
avivkeller Aug 1, 2026
30bff4a
test: convert forEach to for in test-constant.js file
Nixxy25 Aug 13, 2026
8606604
cli: add No-Op `--experimental-repl-await`
avivkeller Aug 4, 2026
86c871e
test: replace `forEach()` with `for...of` in parallel tests
pmarkert Aug 15, 2026
d099639
test: convert test-async-local-storage-bind to async loop
freida-code Aug 13, 2026
04a0c27
tools: update nixpkgs-unstable to 6b5e5b7a6631f065bf6908986990b37d845
nodejs-github-bot Aug 16, 2026
46cac5a
doc: add missing `added:` tags to `fs.lchmod`
lazerg Aug 16, 2026
ad7a5b8
build: update binary-upload to use correct tarball name
sxa Aug 16, 2026
fbb6c1c
http,http2: speed up header validation and write coalescing
anonrig Aug 16, 2026
62327c4
http,http2: coalesce chunked end() and cache status lines
anonrig Aug 16, 2026
1a2c1ed
http: write coalesced chunked headers as latin1
anonrig Aug 16, 2026
69766d5
http: keep regex header-value checks
anonrig Aug 16, 2026
1ec86ff
http: keep incoming headers in C++ until accessed
anonrig Aug 16, 2026
5554cbc
http: keep incoming headers packed until accessed
anonrig Aug 16, 2026
4ca2f93
http: format and lint node_http_parser.cc
anonrig Aug 17, 2026
1663db2
http: address review feedback for packed headers
cursoragent Aug 17, 2026
df53247
http: fix lint in review-feedback follow-up
cursoragent Aug 17, 2026
855b729
test: add --expose-internals flags for packed header tests
cursoragent Aug 18, 2026
37317f2
test: cover packed-header fallbacks after materialization
cursoragent Aug 18, 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
  •  
  •  
  •  
2 changes: 2 additions & 0 deletions CONTRIBUTING.md
Original file line number Diff line number Diff line change
Expand Up @@ -47,6 +47,8 @@ See [details on our policy on Code of Conduct](./doc/contributing/code-of-conduc

Pull Requests are the way concrete changes are made to the code, documentation,
dependencies, and tools contained in the `nodejs/node` repository.
Contributors who are not Collaborators may have no more than 10 pull requests
open at a time.

* [Dependencies](./doc/contributing/pull-requests.md#dependencies)
* [Setting up your local environment](./doc/contributing/pull-requests.md#setting-up-your-local-environment)
Expand Down
16 changes: 8 additions & 8 deletions Makefile
Original file line number Diff line number Diff line change
Expand Up @@ -1449,15 +1449,15 @@ binary: $(BINARYTAR) ## Build release binary tarballs.
# Note: this is strictly for release builds on release machines only.
binary-upload: binary
ssh $(STAGINGSERVER) "mkdir -p nodejs/$(DISTTYPEDIR)/$(FULLVERSION)"
chmod 664 $(TARNAME)-$(OSTYPE)-$(ARCH).tar.gz
scp -p $(TARNAME)-$(OSTYPE)-$(ARCH).tar.gz $(STAGINGSERVER):nodejs/$(DISTTYPEDIR)/$(FULLVERSION)/$(TARNAME)-$(OSTYPE)-$(ARCH).tar.gz
ssh $(STAGINGSERVER) "rclone copyto nodejs/$(DISTTYPEDIR)/$(FULLVERSION)/$(TARNAME)-$(OSTYPE)-$(ARCH).tar.gz $(CLOUDFLARE_BUCKET)/nodejs/$(DISTTYPEDIR)/$(FULLVERSION)/$(TARNAME)-$(OSTYPE)-$(ARCH).tar.gz"
ssh $(STAGINGSERVER) "touch nodejs/$(DISTTYPEDIR)/$(FULLVERSION)/$(TARNAME)-$(OSTYPE)-$(ARCH).tar.gz.done"
chmod 664 $(BINARYNAME).tar.gz
scp -p $(BINARYNAME).tar.gz $(STAGINGSERVER):nodejs/$(DISTTYPEDIR)/$(FULLVERSION)/$(BINARYNAME).tar.gz
ssh $(STAGINGSERVER) "rclone copyto nodejs/$(DISTTYPEDIR)/$(FULLVERSION)/$(BINARYNAME).tar.gz $(CLOUDFLARE_BUCKET)/nodejs/$(DISTTYPEDIR)/$(FULLVERSION)/$(BINARYNAME).tar.gz"
ssh $(STAGINGSERVER) "touch nodejs/$(DISTTYPEDIR)/$(FULLVERSION)/$(BINARYNAME).tar.gz.done"
ifeq ($(XZ), 1)
chmod 664 $(TARNAME)-$(OSTYPE)-$(ARCH).tar.xz
scp -p $(TARNAME)-$(OSTYPE)-$(ARCH).tar.xz $(STAGINGSERVER):nodejs/$(DISTTYPEDIR)/$(FULLVERSION)/$(TARNAME)-$(OSTYPE)-$(ARCH).tar.xz
ssh $(STAGINGSERVER) "rclone copyto nodejs/$(DISTTYPEDIR)/$(FULLVERSION)/$(TARNAME)-$(OSTYPE)-$(ARCH).tar.xz $(CLOUDFLARE_BUCKET)/nodejs/$(DISTTYPEDIR)/$(FULLVERSION)/$(TARNAME)-$(OSTYPE)-$(ARCH).tar.xz"
ssh $(STAGINGSERVER) "touch nodejs/$(DISTTYPEDIR)/$(FULLVERSION)/$(TARNAME)-$(OSTYPE)-$(ARCH).tar.xz.done"
chmod 664 $(BINARYNAME).tar.xz
scp -p $(BINARYNAME).tar.xz $(STAGINGSERVER):nodejs/$(DISTTYPEDIR)/$(FULLVERSION)/$(BINARYNAME).tar.xz
ssh $(STAGINGSERVER) "rclone copyto nodejs/$(DISTTYPEDIR)/$(FULLVERSION)/$(BINARYNAME).tar.xz $(CLOUDFLARE_BUCKET)/nodejs/$(DISTTYPEDIR)/$(FULLVERSION)/$(BINARYNAME).tar.xz"
ssh $(STAGINGSERVER) "touch nodejs/$(DISTTYPEDIR)/$(FULLVERSION)/$(BINARYNAME).tar.xz.done"
endif

.PHONY: bench-all
Expand Down
1 change: 1 addition & 0 deletions benchmark/misc/startup-core.js
Original file line number Diff line number Diff line change
Expand Up @@ -64,6 +64,7 @@ function main({ n, script, mode }) {
const warmup = 3;
const state = { n, finished: -warmup };
if (mode === 'worker') {
// eslint-disable-next-line no-global-assign
Worker = require('worker_threads').Worker;
spawnWorker(script, bench, state);
} else {
Expand Down
42 changes: 42 additions & 0 deletions benchmark/sqlite/sqlite-diagnostic-channel.js
Original file line number Diff line number Diff line change
@@ -0,0 +1,42 @@
'use strict';
const common = require('../common.js');
const sqlite = require('node:sqlite');
const dc = require('node:diagnostics_channel');
const assert = require('node:assert');

const bench = common.createBenchmark(main, {
n: [1e5],
mode: ['none', 'subscribed', 'unsubscribed'],
});

function main(conf) {
const { n, mode } = conf;

const db = new sqlite.DatabaseSync(':memory:');
db.exec('CREATE TABLE t (x INTEGER)');
const insert = db.prepare('INSERT INTO t VALUES (?)');

let subscriber;
if (mode === 'subscribed') {
subscriber = () => {};
dc.subscribe('sqlite.db.query', subscriber);
} else if (mode === 'unsubscribed') {
subscriber = () => {};
dc.subscribe('sqlite.db.query', subscriber);
dc.unsubscribe('sqlite.db.query', subscriber);
}
// mode === 'none': no subscription ever made

let result;
bench.start();
for (let i = 0; i < n; i++) {
result = insert.run(i);
}
bench.end(n);

if (mode === 'subscribed') {
dc.unsubscribe('sqlite.db.query', subscriber);
}

assert.ok(result !== undefined);
}
10 changes: 4 additions & 6 deletions benchmark/webstreams/pipe-to.js
Original file line number Diff line number Diff line change
Expand Up @@ -7,29 +7,27 @@ const {

const bench = common.createBenchmark(main, {
n: [5e5],
highWaterMarkR: [512, 1024, 2048, 4096],
highWaterMarkW: [512, 1024, 2048, 4096],
highWaterMarkR: [1, 1024, 4096],
highWaterMarkW: [1, 1024, 4096],
});


async function main({ n, highWaterMarkR, highWaterMarkW }) {
const b = Buffer.alloc(1024);
let i = 0;
const rs = new ReadableStream({
highWaterMark: highWaterMarkR,
pull: function(controller) {
if (i++ < n) {
controller.enqueue(b);
} else {
controller.close();
}
},
});
}, { highWaterMark: highWaterMarkR });
const ws = new WritableStream({
highWaterMark: highWaterMarkW,
write(chunk, controller) {},
close() { bench.end(n); },
});
}, { highWaterMark: highWaterMarkW });

bench.start();
rs.pipeTo(ws);
Expand Down
20 changes: 20 additions & 0 deletions deps/perfetto/LICENSE
Original file line number Diff line number Diff line change
Expand Up @@ -224,6 +224,26 @@ Files: src/trace_processor/perfetto_sql/stdlib/chromium/*, protos/third_party/ch
OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.


------------------

Files: src/trace_processor/perfetto_sql/syntaqlite/syntaqlite_perfetto.{c, h}

Copyright 2025 The syntaqlite Authors. All rights reserved.

Machine-generated amalgamation of syntaqlite runtime + Perfetto dialect
sources (https://github.com/LalitMaganti/syntaqlite). Portions derive
from SQLite's public-domain `parse.y` grammar.

Licensed under the Apache License, Version 2.0 (the "License");
you may not use this file except in compliance with the License.

Unless required by applicable law or agreed to in writing, software
distributed under the License is distributed on an "AS IS" BASIS,
WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
See the License for the specific language governing permissions and
limitations under the License.


------------------

Files: src/trace_processor/perfetto_sql/preprocessor/preprocessor_grammar.{c, h}
Expand Down
2 changes: 1 addition & 1 deletion deps/perfetto/VERSION
Original file line number Diff line number Diff line change
@@ -1 +1 @@
54.0
57.2
Loading