Skip to content
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

v19.6.0 proposal #46455

Merged
merged 72 commits into from
Feb 2, 2023
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
72 commits
Select commit Hold shift + click to select a range
1ec6270
http: res.setHeaders first implementation
marco-ippolito Jan 9, 2023
fbdc3f7
test_runner: add reporters
MoLow Dec 19, 2022
3a3a6d8
module: move test reporter loading
GeoffreyBooth Dec 22, 2022
a49e17e
test_runner: report `file` in test runner events
MoLow Jan 2, 2023
8b473af
test_runner: make built in reporters internal
cjihrig Jan 6, 2023
7aac21e
esm: leverage loaders when resolving subsequent loaders
arcanis Dec 17, 2022
5ad6c20
buffer: add isAscii method
anonrig Jan 20, 2023
9675863
stream: fix readable stream as async iterator function
ErickWendel Jan 20, 2023
7cf0da0
src: use explicit C++17 fallthrough
tniessen Jan 20, 2023
312e10c
deps: update to uvwasi 0.0.15
cjihrig Jan 20, 2023
8307a4b
src: replace unreachable code with static_assert
tniessen Jan 21, 2023
398a747
test,crypto: update WebCryptoAPI WPT
panva Jan 21, 2023
7a9af38
doc: update output of example in `events.getEventListeners`
deokjinkim Jan 21, 2023
f39fb8c
doc: mark some parameters as optional in webstreams
deokjinkim Jan 21, 2023
35bf93b
src: replace custom ASCII validation with simdutf one
addaleax Jan 21, 2023
7c51457
meta: move evanlucas to emeritus
evanlucas Jan 21, 2023
e75faff
tools: allow icutrim.py to run on python2
mhdawson Jan 21, 2023
8e363cf
crypto: include `hmac.h` in `crypto_util.h`
agl Jan 21, 2023
18c95ec
src: remove unreachable UNREACHABLE
tniessen Jan 22, 2023
e2698c0
doc: fix small typo error
0xflotus Jan 12, 2023
6186b3e
benchmark: introduce benchmark combination filtering
mscdex Dec 4, 2022
f318a85
benchmark: remove buffer benchmarks redundancy
mscdex Dec 4, 2022
940484b
test: add failing test for readline with carriage return
alecmev Jan 22, 2023
fb7bee2
src: fix c++ exception on bad command line arg
bnoordhuis Jan 22, 2023
9dc026b
meta: add .mailmap entry
Trott Jan 22, 2023
c10e602
meta: update AUTHORS
nodejs-github-bot Jan 22, 2023
2b06d66
lib: cache parsed source maps to reduce memory footprint
legendecas Jan 22, 2023
747f368
test: avoid left behind child processes
richardlau Jan 22, 2023
4440b3e
tools: update lint-md-dependencies
nodejs-github-bot Jan 22, 2023
e460d16
url: refactor to use more primordials
aduh95 Jan 22, 2023
640d111
src: refactor EndsInANumber in node_url.cc and adds IsIPv4NumberValid
miguelteixeiraa Jan 23, 2023
1d44017
doc: add v8 fast api contribution guidelines
anonrig Jan 24, 2023
4ae2492
readline: fix detection of carriage return
aduh95 Jan 24, 2023
4c59b60
src: add support for ETW stack walking
jdapena Jan 24, 2023
d52f600
src,lib: add constrainedMemory API for process
theanarkh Jan 25, 2023
2e5e7a9
stream: remove brandchecks from stream duplexify
debadree25 Jan 25, 2023
b4ac794
v8: support gc profile
theanarkh Jan 25, 2023
e7b507a
src: use UNREACHABLE instead of CHECK(falsy)
tniessen Jan 25, 2023
88b904c
tools: require more trailing commas
aduh95 Jan 25, 2023
34d70ce
vm: expose cachedDataRejected for vm.compileFunction
addaleax Jan 25, 2023
360a3f3
src: get rid of fp arithmetic in ParseIPv4Host
tniessen Jan 26, 2023
9757888
doc: fix commit message using test instead of deps
tony-go Jan 27, 2023
9c2f3ce
deps: update undici to 5.15.0
nodejs-github-bot Jan 27, 2023
813b160
deps: upgrade npm to 9.4.0
npm-cli-bot Jan 27, 2023
d795d93
build: fix MSVC 2022 Release compilation
vmoroz Jan 16, 2023
a64d7f4
doc: add documentation for socket.destroySoon()
lpinca Jan 28, 2023
a1d7954
test: avoid trying to call sysctl directly
AdamMajer Jan 28, 2023
d5d837b
test: fix logInTimeout is not function
theanarkh Jan 28, 2023
7385edc
test: s390x zlib test case fixes
AdamMajer Jan 28, 2023
367dc41
test: set common.bits to 64 for loong64
shipujin Jan 28, 2023
8a45c9d
test: fix tap escaping with and without --test
pulkit-30 Jan 28, 2023
968db21
doc: add tip for session.post function
theanarkh Jan 29, 2023
a7c9daa
fs: add statfs() functions
cjihrig Jan 29, 2023
c38673d
meta: update AUTHORS
nodejs-github-bot Jan 29, 2023
524eec7
benchmark: add trailing commas
aduh95 Jan 29, 2023
b83c5d9
test: add trailing commas in `test/pseudo-tty`
aduh95 Jan 29, 2023
4cc0818
test: add trailing commas in `test/message`
aduh95 Jan 29, 2023
232bdd5
test: add trailing commas in `test/node-api`
aduh95 Jan 25, 2023
d437025
inspector: allow opening inspector when `NODE_V8_COVERAGE` is set
MoLow Jan 29, 2023
b0acf55
tools: update lint-md-dependencies to rollup@3.12.0
nodejs-github-bot Jan 29, 2023
c1f3e13
deps: update acorn to 8.8.2
nodejs-github-bot Jan 30, 2023
bf62da5
tools: update doc to unist-util-select@4.0.3 unist-util-visit@4.1.2
nodejs-github-bot Jan 30, 2023
b966ef9
lib: remove unnecessary ObjectGetValueSafe
legendecas Jan 30, 2023
891d18d
doc: pass string to `textEncoder.encode` as input
deokjinkim Jan 30, 2023
6579de8
tools: update eslint to 8.33.0
nodejs-github-bot Jan 31, 2023
729642f
esm: delete preload mock test
GeoffreyBooth Jan 31, 2023
8c6c433
build: export more OpenSSL symbols on Windows
mohd-akram Jan 31, 2023
d13116a
test,crypto: add CFRG curve vectors to wrap/unwrap tests
panva Jan 31, 2023
43cad78
src: stop tracing agent before shutting down libuv
santigimeno Jan 31, 2023
996bac0
doc: include webstreams in finished() and Duplex.from() parameters
debadree25 Jan 31, 2023
c7024ee
doc: correct the `sed` command for macOS in release process docs
juanarbol Jan 31, 2023
3ecd96f
2023-02-02, Version 19.6.0 (Current)
ruyadorno Feb 1, 2023
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: 1 addition & 1 deletion .github/workflows/build-windows.yml
Original file line number Diff line number Diff line change
Expand Up @@ -34,7 +34,7 @@ jobs:
if: github.event.pull_request.draft == false
strategy:
matrix:
windows: [windows-2019]
windows: [windows-2019, windows-2022]
fail-fast: false
runs-on: ${{ matrix.windows }}
steps:
Expand Down
2 changes: 1 addition & 1 deletion .github/workflows/coverage-windows.yml
Original file line number Diff line number Diff line change
Expand Up @@ -37,7 +37,7 @@ permissions:
jobs:
coverage-windows:
if: github.event.pull_request.draft == false
runs-on: windows-2019
runs-on: windows-2022
steps:
- uses: actions/checkout@v3
with:
Expand Down
4 changes: 2 additions & 2 deletions .github/workflows/tools.yml
Original file line number Diff line number Diff line change
Expand Up @@ -78,8 +78,8 @@ jobs:
./tools/update-undici.sh
fi
- id: postject
subsystem: deps
label: dependencies
subsystem: test
label: test
run: |
NEW_VERSION=$(npm view postject dist-tags.latest)
CURRENT_VERSION=$(node -p "require('./test/fixtures/postject-copy/node_modules/postject/package.json').version")
Expand Down
1 change: 1 addition & 0 deletions .mailmap
Original file line number Diff line number Diff line change
Expand Up @@ -4,6 +4,7 @@ Aaron Heckmann <aaron.heckmann@gmail.com> <aaron.heckmann+github@gmail.com>
Aayush Ahuja <aayush.a@directi.com>
Abe Fettig <abefettig@gmail.com> <abe@fettig.net>
Abhimanyu Vashisht <abhimanyuvashisht.av@gmail.com>
Adam Langley <agl@imperialviolet.org> <agl@google.com>
Akhil Marsonya <akhil.marsonya27@gmail.com>
Akhil Marsonya <akhil.marsonya27@gmail.com> <16393876+marsonya@users.noreply.github.com>
Akito Ito <akito0107@gmail.com> <akito_ito@r.recruit.co.jp>
Expand Down
12 changes: 11 additions & 1 deletion AUTHORS
Original file line number Diff line number Diff line change
Expand Up @@ -908,7 +908,7 @@ Jeff Harris <techjeffharris@gmail.com>
Alexander Makarenko <estliberitas@gmail.com>
Drew Folta <drew@folta.net>
Dmitriy Lazarev <wKich@users.noreply.github.com>
Adam Langley <agl@google.com>
Adam Langley <agl@imperialviolet.org>
Kári Tristan Helgason <kthelgason@gmail.com>
Manuel Valls <manolo@vlrz.es>
Prayag Verma <prayag.verma@gmail.com>
Expand Down Expand Up @@ -3595,5 +3595,15 @@ Aaron Friel <mayreply@aaronfriel.com>
Vaishno Chaitanya <vaishnochaitanya7@gmail.com>
Jonathan Diaz <50384299+jdiaz-dev@users.noreply.github.com>
Mike Roth <mike_roth@safetrekapp.com>
Almeida <almeidx@pm.me>
Kevin Eady <8634912+KevinEady@users.noreply.github.com>
Mordy Tikotzky <mordytk@gmail.com>
vitpavlenko <vitaliypavlenko01@gmail.com>
Tim Gerk <tgerk@users.noreply.github.com>
Suyash Nayan <89125422+7suyash7@users.noreply.github.com>
0xflotus <0xflotus@gmail.com>
Alec Mev <alec@mev.earth>
Miguel Teixeira <miguel.teixeira@poli.ufrj.br>
José Dapena Paz <jdapena@igalia.com>

# Generated by tools/update-authors.mjs
3 changes: 2 additions & 1 deletion CHANGELOG.md
Original file line number Diff line number Diff line change
Expand Up @@ -35,7 +35,8 @@ release.
</tr>
<tr>
<td valign="top">
<b><a href="doc/changelogs/CHANGELOG_V19.md#19.5.0">19.5.0</a></b><br/>
<b><a href="doc/changelogs/CHANGELOG_V19.md#19.6.0">19.6.0</a></b><br/>
<a href="doc/changelogs/CHANGELOG_V19.md#19.5.0">19.5.0</a><br/>
<a href="doc/changelogs/CHANGELOG_V19.md#19.4.0">19.4.0</a><br/>
<a href="doc/changelogs/CHANGELOG_V19.md#19.3.0">19.3.0</a><br/>
<a href="doc/changelogs/CHANGELOG_V19.md#19.2.0">19.2.0</a><br/>
Expand Down
4 changes: 2 additions & 2 deletions README.md
Original file line number Diff line number Diff line change
Expand Up @@ -324,8 +324,6 @@ For information about the governance of the Node.js project, see
**Adrian Estrada** <<edsadr@gmail.com>> (he/him)
* [erickwendel](https://github.com/erickwendel) -
**Erick Wendel** <<erick.workspace@gmail.com>> (he/him)
* [evanlucas](https://github.com/evanlucas) -
**Evan Lucas** <<evanlucas@me.com>> (he/him)
* [fhinkel](https://github.com/fhinkel) -
**Franziska Hinkelmann** <<franziska.hinkelmann@gmail.com>> (she/her)
* [F3n67u](https://github.com/F3n67u) -
Expand Down Expand Up @@ -512,6 +510,8 @@ For information about the governance of the Node.js project, see
**Alexander Makarenko** <<estliberitas@gmail.com>>
* [eugeneo](https://github.com/eugeneo) -
**Eugene Ostroukhov** <<eostroukhov@google.com>>
* [evanlucas](https://github.com/evanlucas) -
**Evan Lucas** <<evanlucas@me.com>> (he/him)
* [firedfox](https://github.com/firedfox) -
**Daniel Wang** <<wangyang0123@gmail.com>>
* [Fishrock123](https://github.com/Fishrock123) -
Expand Down
32 changes: 25 additions & 7 deletions benchmark/.eslintrc.yaml
Original file line number Diff line number Diff line change
Expand Up @@ -5,11 +5,29 @@ env:
es6: true

rules:
comma-dangle: [error, {
arrays: always-multiline,
exports: only-multiline,
functions: only-multiline,
imports: only-multiline,
objects: only-multiline,
}]
prefer-arrow-callback: error

overrides:
- files:
- async_hooks/*.js
- buffers/*.js
- buffers-fill/*.js
- crypto/*.js
- fs/*.js
- http/*.js
- http2/*.js
- misc/*.js
- module/*.js
- net/*.js
- path/*.js
- process/*.js
- url/*.js
- util/*.js
rules:
comma-dangle: [error, {
arrays: always-multiline,
exports: always-multiline,
functions: only-multiline,
imports: always-multiline,
objects: only-multiline,
}]
4 changes: 2 additions & 2 deletions benchmark/_http-benchmarkers.js
Original file line number Diff line number Diff line change
Expand Up @@ -106,7 +106,7 @@ class TestDoubleBenchmarker {
const scheme = options.scheme || 'http';
const env = {
test_url: `${scheme}://127.0.0.1:${options.port}${options.path}`,
...process.env
...process.env,
};

const child = child_process.fork(this.executable,
Expand Down Expand Up @@ -203,7 +203,7 @@ exports.run = function(options, callback) {
connections: 100,
duration: 5,
benchmarker: exports.default_http_benchmarker,
...options
...options,
};
if (!options.benchmarker) {
callback(new Error('Could not locate required http benchmarker. See ' +
Expand Down
4 changes: 2 additions & 2 deletions benchmark/assert/deepequal-map.js
Original file line number Diff line number Diff line change
Expand Up @@ -46,7 +46,7 @@ function main({ n, len, method, strict }) {
}
case 'deepEqual_mixed': {
const values = array.map(
(_, i) => [i % 2 ? [`str_${i}`, 1] : `str_${i}`, 123]
(_, i) => [i % 2 ? [`str_${i}`, 1] : `str_${i}`, 123],
);
benchmark(strict ? deepStrictEqual : deepEqual, n, values);
break;
Expand All @@ -67,7 +67,7 @@ function main({ n, len, method, strict }) {
}
case 'notDeepEqual_mixed': {
const values = array.map(
(_, i) => [i % 2 ? [`str_${i}`, 1] : `str_${i}`, 123]
(_, i) => [i % 2 ? [`str_${i}`, 1] : `str_${i}`, 123],
);
const values2 = values.slice(0);
values2[0] = ['w00t', 123];
Expand Down
2 changes: 1 addition & 1 deletion benchmark/blob/blob.js
Original file line number Diff line number Diff line change
Expand Up @@ -5,7 +5,7 @@ const { Blob } = require('buffer');
const bench = common.createBenchmark(main, {
bytes: [128, 1024, 1024 ** 2],
n: [1e6],
operation: ['text', 'arrayBuffer']
operation: ['text', 'arrayBuffer'],
});

async function run(n, bytes, operation) {
Expand Down
2 changes: 1 addition & 1 deletion benchmark/blob/file.js
Original file line number Diff line number Diff line change
Expand Up @@ -5,7 +5,7 @@ const { File } = require('buffer');
const bench = common.createBenchmark(main, {
bytes: [128, 1024, 1024 ** 2],
n: [1e6],
operation: ['text', 'arrayBuffer']
operation: ['text', 'arrayBuffer'],
});

const options = {
Expand Down
6 changes: 6 additions & 0 deletions benchmark/buffers/buffer-copy.js
Original file line number Diff line number Diff line change
Expand Up @@ -5,6 +5,12 @@ const bench = common.createBenchmark(main, {
bytes: [0, 8, 128, 32 * 1024],
partial: ['true', 'false'],
n: [6e6]
}, {
combinationFilter: (p) => {
return (p.partial === 'false' && p.bytes === 0) ||
(p.partial !== 'false' && p.bytes !== 0);
},
test: { partial: 'false', bytes: 0 },
});

function main({ n, bytes, partial }) {
Expand Down
7 changes: 6 additions & 1 deletion benchmark/buffers/buffer-indexof.js
Original file line number Diff line number Diff line change
Expand Up @@ -19,9 +19,14 @@ const searchStrings = [

const bench = common.createBenchmark(main, {
search: searchStrings,
encoding: ['utf8', 'ucs2'],
encoding: ['undefined', 'utf8', 'ucs2'],
type: ['buffer', 'string'],
n: [5e4]
}, {
combinationFilter: (p) => {
return (p.type === 'buffer' && p.encoding === 'undefined') ||
(p.type !== 'buffer' && p.encoding !== 'undefined');
},
});

function main({ n, search, encoding, type }) {
Expand Down
7 changes: 6 additions & 1 deletion benchmark/buffers/buffer-tostring.js
Original file line number Diff line number Diff line change
Expand Up @@ -3,10 +3,15 @@
const common = require('../common.js');

const bench = common.createBenchmark(main, {
encoding: ['utf8', 'ascii', 'latin1', 'hex', 'UCS-2'],
encoding: ['', 'utf8', 'ascii', 'latin1', 'hex', 'UCS-2'],
args: [0, 1, 3],
len: [1, 64, 1024],
n: [1e6]
}, {
combinationFilter: (p) => {
return (p.args === 0 && p.encoding === '') ||
(p.args !== 0 && p.encoding !== '');
},
});

function main({ encoding, args, len, n }) {
Expand Down
2 changes: 1 addition & 1 deletion benchmark/child_process/child-process-exec-stdout.js
Original file line number Diff line number Diff line change
Expand Up @@ -9,7 +9,7 @@ if (!isWindows) messagesLength.push(32768);

const bench = common.createBenchmark(childProcessExecStdout, {
len: messagesLength,
dur: [5]
dur: [5],
});

function childProcessExecStdout({ dur, len }) {
Expand Down
2 changes: 1 addition & 1 deletion benchmark/child_process/child-process-read-ipc.js
Original file line number Diff line number Diff line change
Expand Up @@ -15,7 +15,7 @@ if (process.argv[2] === 'child') {
64, 256, 1024, 4096, 16384, 65536,
65536 << 4, 65536 << 6 - 1,
],
dur: [5]
dur: [5],
});
const spawn = require('child_process').spawn;

Expand Down
2 changes: 1 addition & 1 deletion benchmark/child_process/child-process-read.js
Original file line number Diff line number Diff line change
Expand Up @@ -14,7 +14,7 @@ if (os.platform() !== 'win32')

const bench = common.createBenchmark(main, {
len: messagesLength,
dur: [5]
dur: [5],
});

function main({ dur, len }) {
Expand Down
2 changes: 1 addition & 1 deletion benchmark/child_process/spawn-echo.js
Original file line number Diff line number Diff line change
@@ -1,7 +1,7 @@
'use strict';
const common = require('../common.js');
const bench = common.createBenchmark(main, {
n: [1000]
n: [1000],
});

const spawn = require('child_process').spawn;
Expand Down
4 changes: 2 additions & 2 deletions benchmark/cluster/echo.js
Original file line number Diff line number Diff line change
Expand Up @@ -8,15 +8,15 @@ if (cluster.isMaster) {
payload: ['string', 'object'],
sendsPerBroadcast: [1, 10],
serialization: ['json', 'advanced'],
n: [1e5]
n: [1e5],
});

function main({
n,
workers,
sendsPerBroadcast,
payload,
serialization
serialization,
}) {
const expectedPerBroadcast = sendsPerBroadcast * workers;
let readies = 0;
Expand Down
27 changes: 24 additions & 3 deletions benchmark/common.js
Original file line number Diff line number Diff line change
Expand Up @@ -3,6 +3,10 @@
const child_process = require('child_process');
const http_benchmarkers = require('./_http-benchmarkers.js');

function allow() {
return true;
}

class Benchmark {
constructor(fn, configs, options = {}) {
// Used to make sure a benchmark only start a timer once
Expand Down Expand Up @@ -31,9 +35,17 @@ class Benchmark {
this.flags = this.flags.concat(options.flags);
}

if (typeof options.combinationFilter === 'function')
this.combinationFilter = options.combinationFilter;
else
this.combinationFilter = allow;

// The configuration list as a queue of jobs
this.queue = this._queue(this.options);

if (this.queue.length === 0)
return;

// The configuration of the current job, head of the queue
this.config = this.queue[0];

Expand Down Expand Up @@ -96,7 +108,7 @@ class Benchmark {
cliOptions[key] = [];
cliOptions[key].push(
// Infer the type from the config object and parse accordingly
typeof configs[key][0] === 'number' ? +value : value
typeof configs[key][0] === 'number' ? +value : value,
);
} else {
extraOptions[key] = value;
Expand All @@ -108,6 +120,7 @@ class Benchmark {
_queue(options) {
const queue = [];
const keys = Object.keys(options);
const { combinationFilter } = this;

// Perform a depth-first walk through all options to generate a
// configuration list that contains all combinations.
Expand All @@ -131,7 +144,15 @@ class Benchmark {
if (keyIndex + 1 < keys.length) {
recursive(keyIndex + 1, currConfig);
} else {
queue.push(currConfig);
// Check if we should allow the current combination
const allowed = combinationFilter({ ...currConfig });
if (typeof allowed !== 'boolean') {
throw new TypeError(
'Combination filter must always return a boolean',
);
}
if (allowed)
queue.push(currConfig);
}
}
}
Expand Down Expand Up @@ -162,7 +183,7 @@ class Benchmark {
}
this.config.benchmarker = used_benchmarker;
this.report(result, elapsed);
}
},
);
}

Expand Down
2 changes: 1 addition & 1 deletion benchmark/compare.js
Original file line number Diff line number Diff line change
Expand Up @@ -71,7 +71,7 @@ if (showProgress) {
const job = queue[i];

const child = fork(path.resolve(__dirname, job.filename), cli.optional.set, {
execPath: cli.optional[job.binary]
execPath: cli.optional[job.binary],
});

child.on('message', (data) => {
Expand Down
2 changes: 1 addition & 1 deletion benchmark/dgram/array-vs-concat.js
Original file line number Diff line number Diff line change
Expand Up @@ -13,7 +13,7 @@ const bench = common.createBenchmark(main, {
num: [100],
chunks: [1, 2, 4, 8],
type: ['concat', 'multi'],
dur: [5]
dur: [5],
});

function main({ dur, len, num, type, chunks }) {
Expand Down
2 changes: 1 addition & 1 deletion benchmark/dgram/multi-buffer.js
Original file line number Diff line number Diff line change
Expand Up @@ -13,7 +13,7 @@ const bench = common.createBenchmark(main, {
num: [100],
chunks: [1, 2, 4, 8],
type: ['send', 'recv'],
dur: [5]
dur: [5],
});

function main({ dur, len, num, type, chunks }) {
Expand Down
2 changes: 1 addition & 1 deletion benchmark/dgram/offset-length.js
Original file line number Diff line number Diff line change
Expand Up @@ -12,7 +12,7 @@ const bench = common.createBenchmark(main, {
len: [1, 64, 256, 1024],
num: [100],
type: ['send', 'recv'],
dur: [5]
dur: [5],
});

function main({ dur, len, num, type }) {
Expand Down
2 changes: 1 addition & 1 deletion benchmark/dgram/single-buffer.js
Original file line number Diff line number Diff line change
Expand Up @@ -12,7 +12,7 @@ const bench = common.createBenchmark(main, {
len: [1, 64, 256, 1024],
num: [100],
type: ['send', 'recv'],
dur: [5]
dur: [5],
});

function main({ dur, len, num, type }) {
Expand Down
Loading