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

V18.15.0 proposal #46920

Merged
merged 93 commits into from
Mar 7, 2023
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
93 commits
Select commit Hold shift + click to select a range
3ea53c5
deps: V8: cherry-pick c875e86df1d7
sepehrst Feb 4, 2023
5019b54
http: res.setHeaders first implementation
marco-ippolito Jan 9, 2023
8adaa13
src: use CreateEnvironment instead of inlining its code where possible
addaleax Dec 21, 2022
5453cd9
deps: V8: cherry-pick bf0bd4868dde
targos Dec 19, 2022
23b8758
test_runner: update comment to comply with eslint no-fallthrough rule
aduh95 Jan 19, 2023
b7950f5
tools: update eslint to 8.32.0
nodejs-github-bot Jan 18, 2023
91ece41
crypto: avoid hang when no algorithm available
richardlau Jan 19, 2023
75b8db4
test: reduce `fs-write-optional-params` flakiness
LiviaMedeiros Jan 17, 2023
cb5bb12
buffer: add isAscii method
anonrig Jan 20, 2023
3acfe9b
stream: fix readable stream as async iterator function
ErickWendel Jan 20, 2023
f389b2f
src: use explicit C++17 fallthrough
tniessen Jan 20, 2023
8582f99
deps: update to uvwasi 0.0.15
cjihrig Jan 20, 2023
cde3755
src: replace unreachable code with static_assert
tniessen Jan 21, 2023
f328f7b
test,crypto: update WebCryptoAPI WPT
panva Jan 21, 2023
5adb743
doc: update output of example in `events.getEventListeners`
deokjinkim Jan 21, 2023
94421b4
doc: mark some parameters as optional in webstreams
deokjinkim Jan 21, 2023
18c4dd0
src: replace custom ASCII validation with simdutf one
addaleax Jan 21, 2023
5ed6794
meta: move evanlucas to emeritus
evanlucas Jan 21, 2023
60d714e
tools: allow icutrim.py to run on python2
mhdawson Jan 21, 2023
0f5f2d4
crypto: include `hmac.h` in `crypto_util.h`
agl Jan 21, 2023
14da89f
src: remove unreachable UNREACHABLE
tniessen Jan 22, 2023
dbf082d
doc: fix small typo error
0xflotus Jan 12, 2023
6468f30
benchmark: introduce benchmark combination filtering
mscdex Dec 4, 2022
d0b9be2
benchmark: remove buffer benchmarks redundancy
mscdex Dec 4, 2022
837ddcb
test: add failing test for readline with carriage return
alecmev Jan 22, 2023
26f41b0
src: fix c++ exception on bad command line arg
bnoordhuis Jan 22, 2023
8865424
meta: add .mailmap entry
Trott Jan 22, 2023
795251b
meta: update AUTHORS
nodejs-github-bot Jan 22, 2023
041aac3
test: avoid left behind child processes
richardlau Jan 22, 2023
03e244a
tools: update lint-md-dependencies
nodejs-github-bot Jan 22, 2023
08bafc8
url: refactor to use more primordials
aduh95 Jan 22, 2023
b06298c
src: refactor EndsInANumber in node_url.cc and adds IsIPv4NumberValid
miguelteixeiraa Jan 23, 2023
d153a93
doc: add v8 fast api contribution guidelines
anonrig Jan 24, 2023
2f7319e
readline: fix detection of carriage return
aduh95 Jan 24, 2023
116a336
src: add support for ETW stack walking
jdapena Jan 24, 2023
f09b838
src,lib: add constrainedMemory API for process
theanarkh Jan 25, 2023
63e92ea
stream: remove brandchecks from stream duplexify
debadree25 Jan 25, 2023
02632b4
v8: support gc profile
theanarkh Jan 25, 2023
bdb793a
src: use UNREACHABLE instead of CHECK(falsy)
tniessen Jan 25, 2023
a977746
tools: require more trailing commas
aduh95 Jan 25, 2023
110ead9
vm: expose cachedDataRejected for vm.compileFunction
addaleax Jan 25, 2023
1508d90
src: get rid of fp arithmetic in ParseIPv4Host
tniessen Jan 26, 2023
fc15ac9
doc: fix commit message using test instead of deps
tony-go Jan 27, 2023
7bae433
build: fix MSVC 2022 Release compilation
vmoroz Jan 16, 2023
919e581
doc: add documentation for socket.destroySoon()
lpinca Jan 28, 2023
d05b077
test: avoid trying to call sysctl directly
AdamMajer Jan 28, 2023
ed3fb52
test: fix logInTimeout is not function
theanarkh Jan 28, 2023
9d40aef
test: s390x zlib test case fixes
AdamMajer Jan 28, 2023
e4437dd
test: set common.bits to 64 for loong64
shipujin Jan 28, 2023
129dccf
doc: add tip for session.post function
theanarkh Jan 29, 2023
643545a
fs: add statfs() functions
cjihrig Jan 29, 2023
92f0747
meta: update AUTHORS
nodejs-github-bot Jan 29, 2023
6f91c8e
benchmark: add trailing commas
aduh95 Jan 29, 2023
ed564a9
test: add trailing commas in `test/pseudo-tty`
aduh95 Jan 29, 2023
f2ebe66
test: add trailing commas in `test/message`
aduh95 Jan 29, 2023
f2bba1b
test: add trailing commas in `test/node-api`
aduh95 Jan 25, 2023
76622c4
inspector: allow opening inspector when `NODE_V8_COVERAGE` is set
MoLow Jan 29, 2023
1eaafc7
tools: update lint-md-dependencies to rollup@3.12.0
nodejs-github-bot Jan 29, 2023
732c77e
deps: update acorn to 8.8.2
nodejs-github-bot Jan 30, 2023
37a6ce1
tools: update doc to unist-util-select@4.0.3 unist-util-visit@4.1.2
nodejs-github-bot Jan 30, 2023
8113220
doc: pass string to `textEncoder.encode` as input
deokjinkim Jan 30, 2023
00c5495
tools: update eslint to 8.33.0
nodejs-github-bot Jan 31, 2023
4e88c7c
esm: delete preload mock test
GeoffreyBooth Jan 31, 2023
ec61bb0
build: export more OpenSSL symbols on Windows
mohd-akram Jan 31, 2023
c0d3fda
test,crypto: add CFRG curve vectors to wrap/unwrap tests
panva Jan 31, 2023
30d783f
src: stop tracing agent before shutting down libuv
santigimeno Jan 31, 2023
c04808d
doc: correct the `sed` command for macOS in release process docs
juanarbol Jan 31, 2023
5fdf374
test_runner: avoid swallowing of asynchronously thrown errors
fossamagna Nov 7, 2022
4d50db1
test_runner: add reporters
MoLow Dec 19, 2022
403df21
module: move test reporter loading
GeoffreyBooth Dec 22, 2022
79f4b42
test_runner: report `file` in test runner events
MoLow Jan 2, 2023
0d999e3
test_runner: make built in reporters internal
cjihrig Jan 6, 2023
28a775b
test_runner: add initial code coverage support
cjihrig Dec 21, 2022
63563f8
doc,lib,src,test: rename --test-coverage
cjihrig Jan 8, 2023
32b020c
test: fix tap escaping with and without --test
pulkit-30 Jan 28, 2023
c5f16fb
test_runner: top-level diagnostics not ommited when running with --test
pulkit-30 Feb 2, 2023
ba784e8
test_runner: fix missing test diagnostics
MoLow Feb 2, 2023
4f5aff2
test: fix tap parser fails if a test logs a number
pulkit-30 Feb 6, 2023
391ff0d
test_runner: allow nesting test within describe
MoLow Feb 17, 2023
5b3c606
test_runner: flatten TAP output when running using `--test`
MoLow Feb 18, 2023
894d711
test_runner: parse non-ascii character correctly
mertcanaltin Feb 18, 2023
0898145
test_runner: display skipped tests in spec reporter output
richiemccoll Feb 18, 2023
c19fa45
test_runner: centralize CLI option handling
cjihrig Feb 20, 2023
cd3aaa8
test_runner: emit test-only diagnostic warning
richiemccoll Feb 21, 2023
28a1317
test_runner: bootstrap reporters before running tests
MoLow Feb 19, 2023
0a690ef
test_runner: add `describe.only` and `it.only` shorthands
richiemccoll Feb 21, 2023
1ef3c53
test_runner: better handle async bootstrap errors
cjihrig Feb 24, 2023
73a8f46
Revert "src: let http2 streams end after session close"
santigimeno Jan 18, 2023
492fc95
deps: V8: cherry-pick 90be99fab31c
targos Feb 20, 2023
5f422c4
test: add WPTRunner support for variants and generating WPT reports
panva Feb 3, 2023
162e340
test: fix default WPT titles
panva Feb 22, 2023
de64315
test: fix WPT title when no META title is present
panva Feb 25, 2023
a94966f
2023-03-07, Version 18.15.0 'Hydrogen' (LTS)
juanarbol Mar 5, 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 @@ -33,7 +33,8 @@ release.
</tr>
<tr>
<td valign="top">
<b><a href="doc/changelogs/CHANGELOG_V18.md#18.14.2">18.14.2</a></b><br/>
<b><a href="doc/changelogs/CHANGELOG_V18.md#18.15.0">18.15.0</a></b><br/>
<a href="doc/changelogs/CHANGELOG_V18.md#18.14.2">18.14.2</a><br/>
<a href="doc/changelogs/CHANGELOG_V18.md#18.14.1">18.14.1</a><br/>
<a href="doc/changelogs/CHANGELOG_V18.md#18.14.0">18.14.0</a><br/>
<a href="doc/changelogs/CHANGELOG_V18.md#18.13.0">18.13.0</a><br/>
Expand Down
6 changes: 6 additions & 0 deletions Makefile
Original file line number Diff line number Diff line change
Expand Up @@ -595,6 +595,12 @@ test-message: test-build
test-wpt: all
$(PYTHON) tools/test.py $(PARALLEL_ARGS) wpt

.PHONY: test-wpt-report
test-wpt-report:
$(RM) -r out/wpt
mkdir -p out/wpt
WPT_REPORT=1 $(PYTHON) tools/test.py --shell $(NODE) $(PARALLEL_ARGS) wpt

.PHONY: test-simple
test-simple: | cctest # Depends on 'all'.
$(PYTHON) tools/test.py $(PARALLEL_ARGS) parallel sequential
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
Loading