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

v13.4.0 proposal #30937

Merged
merged 117 commits into from
Dec 17, 2019
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
117 commits
Select commit Hold shift + click to select a range
220a600
events: add captureRejection option
mcollina May 19, 2019
89bc571
stream: add support for captureRejection option
mcollina Aug 19, 2019
33a6bf3
http: implement capture rejections for 'request' event
mcollina Sep 3, 2019
334d4f6
http: add captureRejection support to OutgoingMessage
mcollina Sep 20, 2019
4eecee0
net: implement capture rejections for 'connection' event
mcollina Oct 1, 2019
5ad3efb
tls: implement capture rejections for 'secureConnection' event
mcollina Oct 1, 2019
c3ac4c8
http2: implement capture rection for 'request' and 'stream' events
mcollina Oct 2, 2019
50ab1fa
test: change common.PORT to arbitrary port
Trott Dec 1, 2019
9bd5c72
test: move test-child-process-fork-getconnections to parallel
Trott Dec 1, 2019
145f881
doc: update status of Python 3 support
mhdawson Nov 29, 2019
a0fa327
test: use block-scoping in test-net-server-address
Trott Dec 1, 2019
b51b26f
src: fix node_dir.cc memory allocation
piyukore06 Dec 1, 2019
cb69ff4
src: improve node_crypto.cc memory allocation
piyukore06 Dec 1, 2019
66db874
src: remove redundant cast in node_dir.cc
gengjiawen Dec 1, 2019
838ae10
src: delete redundant method in node_dir.h
gengjiawen Dec 1, 2019
8369562
doc: clarify text about using 'session' event for compatibility
Trott Dec 1, 2019
9428304
doc: Buffer.toString(): add note about invalid data
jgehrcke Nov 28, 2019
255cd7e
tls: expose IETF name for current cipher suite
sam-github Jun 3, 2019
71d43a5
worker: add argv constructor option
legendecas Nov 20, 2019
60b1e1a
fs: fix existsSync for invalid symlink at win32
pd4d10 Nov 22, 2019
2c0f1ed
doc: adds assert doc for strict mode with pointer to strict equality
shobhitchittora Nov 14, 2019
543bf9d
doc: fix up N-API doc
NickNaso Nov 26, 2019
510eb3a
doc: revise addons introduction for brevity and clarity
Trott Dec 2, 2019
7cb84fd
doc: remove usage of "Node" in favor of "Node.js"
Trott Dec 2, 2019
d3f0dd2
inspector: do not access queueMicrotask from global
targos Nov 30, 2019
54a266c
test: increase debugging information in subprocess test
Trott Dec 2, 2019
7b9400c
tools: update ESLint to 6.7.2
Trott Dec 2, 2019
eb4f443
esm: make specifier flag clearly experimental
MylesBorins Nov 27, 2019
55a270b
test: remove duplicate entries from root.status
richardlau Dec 2, 2019
851f313
module: add warnings for experimental flags
pd4d10 Nov 24, 2019
67823e8
doc: remove imprecise and redundant testing text
Trott Dec 2, 2019
fb31ab5
test: simplify tmpdir import in wasi tests
Trott Dec 2, 2019
30756e3
test: improve wasi test coverage
Trott Dec 2, 2019
94f237e
lib,test: improves ERR_REQUIRE_ESM message
juanarbol Nov 28, 2019
bd2f127
module: ignore resolution failures for inspect-brk
arcanis Nov 8, 2019
a7ec78f
module: fixup lint and test regressions
guybedford Dec 5, 2019
1d5c4e2
doc: add documentation about node_mksnapshot and mkcodecache
joyeecheung Dec 3, 2019
5067463
test: use callback arguments in getconnections test
Trott Dec 3, 2019
325128e
lib: delay access to CLI option to pre-execution
joyeecheung Dec 3, 2019
1baa6ab
doc: improve napi formatting
BridgeAR Nov 30, 2019
bbbba76
doc,benchmark: move benchmark guide to benchmark directory
Trott Dec 3, 2019
43e947a
build: remove (almost) unused macros/constants
bcoe Dec 1, 2019
3840abe
http2: small clean up in OnStreamRead
lundibundi Nov 10, 2019
71bb026
http2: streamline OnStreamRead streamline memory accounting
lundibundi Dec 1, 2019
c440f3f
repl: use better uncaught exceptions indicator
BridgeAR Sep 23, 2019
0cb7720
tools: update icu to 65.1
albertyw Nov 3, 2019
4588606
deps: fix OPENSSLDIR on Windows
shigeki Sep 5, 2019
2b687af
tools: update remark-preset-lint-node to 1.11.0
Trott Dec 4, 2019
ca47f72
deps: upgrade to libuv 1.34.0
cjihrig Dec 4, 2019
77ffd54
util: improve inspect's customInspect performance
BridgeAR Nov 21, 2019
608d720
util: add more predefined color codes to inspect.colors
BridgeAR Nov 25, 2019
ad4d52d
benchmark: add more util inspect and format benchmarks
BridgeAR Nov 30, 2019
eeaeb51
util: improve performance inspecting proxies
BridgeAR Nov 30, 2019
3898b23
util: never trigger any proxy traps using `format()`
BridgeAR Dec 1, 2019
1c4b2f1
assert,util: stricter type comparison using deep equal comparisons
BridgeAR Dec 2, 2019
3557659
test: run more assert tests
BridgeAR Dec 2, 2019
d4aa656
module: fix dynamic import from eval
coreyfarrell Nov 23, 2019
dc69cbe
util: add internal sleep() function
cjihrig Dec 4, 2019
a574cb0
test: remove common.busyLoop()
cjihrig Dec 4, 2019
d9d6475
lib: add warning on dynamic import es modules
juanarbol Nov 29, 2019
2c439bb
lib: add parent to ERR_UNKNOWN_FILE_EXTENSION
qualitymanifest Nov 30, 2019
1ed1a64
tools: use CC instead of CXX when pointing to gcc
Dec 6, 2019
25e3696
test: improve WASI options validation
Trott Dec 5, 2019
e6e379e
src: use checked allocations in WASI::New()
cjihrig Dec 5, 2019
8ad53ab
src: free preopen memory in WASI::New()
cjihrig Dec 5, 2019
2f1ae4f
readline: eagerly load string_decoder
BridgeAR Dec 5, 2019
4dc9d8d
test: mark addons/openssl-bindings/test flaky on arm
richardlau Dec 7, 2019
ccf0917
src: don't use deprecated OpenSSL APIs
neheb Dec 5, 2019
041daaa
src: port memory-tracking allocator from QUIC repo
addaleax Dec 1, 2019
8a9f57d
http2: use shared memory tracking implementation
addaleax Sep 21, 2019
d17ea8f
http2: track nghttp2-allocated memory in heap snapshot
addaleax Dec 1, 2019
13fe9f7
deps: update uvwasi
addaleax Dec 1, 2019
14269d1
wasi: use memory-tracking allocator
addaleax Dec 1, 2019
2123d53
doc: include line/cursor in readline documentation
Js-Brecht Nov 23, 2019
305e45a
test: mark tests as flaky
joaocgreis Dec 8, 2019
7ed867d
src: improve checked uv loop close output
addaleax Dec 5, 2019
af01417
lib: replace Symbol global by the primordials Symbol
Sebastien-Ahkrin Nov 30, 2019
97e0efe
test: scale keepalive timeouts for slow machines
bnoordhuis Dec 7, 2019
5523950
fs: add synchronous retries to rimraf
cjihrig Dec 4, 2019
7e1dee3
fs: reduce unnecessary sync rimraf retries
cjihrig Dec 8, 2019
daca078
http: llhttp opt-in insecure HTTP header parsing
sam-github Nov 20, 2019
e551c16
repl: support previews by eager evaluating input
BridgeAR Dec 5, 2019
6088603
src: fix the false isatty() issue on IBMi
dmabupt Dec 7, 2019
5ae3a85
test: refactor test-accessor-properties
himself65 Oct 13, 2019
0022d75
doc: improve doc Http2Stream: FrameError, Timeout and Trailers
dev-script Nov 12, 2019
93ca4f4
doc: deprecate http finished
ronag Jul 14, 2019
0a34fcb
lib: replace var with let/const
jens-cappelle Nov 12, 2019
8e16093
module: fix require in node repl
ZYSzys Dec 7, 2019
5e98de1
fs: only operate on buffers in rimraf
cjihrig Nov 20, 2019
18758ef
fs: retry unlink operations in rimraf
cjihrig Dec 9, 2019
cc4a6ed
test: use fs rimraf to refresh tmpdir
cjihrig Aug 20, 2019
6c07a72
fs: synchronize close with other I/O for streams
addaleax Dec 7, 2019
3d05d4b
build: ease DragonFlyBSD build
devnexen Nov 1, 2019
78eaf50
benchmark: improve `--filter` pattern matching
mmarchini Oct 15, 2019
ce21fc7
test: wait for stream close before writing to file
addaleax Dec 7, 2019
123327d
net: remove duplicate _undestroy
ronag Dec 7, 2019
1cce000
doc: add code example to inspector.url() method
juanarbol Sep 8, 2019
39898a9
lib: replace every Symbol.for by SymbolFor primordials
Sebastien-Ahkrin Dec 8, 2019
64ab5c9
lib: replace Symbol.iterator by SymbolIterator
Sebastien-Ahkrin Dec 8, 2019
9d1c793
doc: clarify Tier 2 implications in BUILDING.md
Trott Dec 9, 2019
5f42b1f
test: assert: fix deepStrictEqual comparing a real array and fake array
ljharb Dec 1, 2019
5ab3ca4
url: declare iterator inside loop
trivikr Nov 17, 2019
de36820
src: accept single argument in getProxyDetails
BridgeAR Dec 8, 2019
dfd3a4d
build: add flag to enable pointer compression
mcollina Nov 13, 2019
0379fb6
deps: update npm to 6.13.4
isaacs Dec 11, 2019
d1c4fcc
build: fix library version and compile flags on Android
gcampax Sep 24, 2017
d90815d
build: on Android, use android log library to print stack traces
gcampax Sep 24, 2017
df9df18
doc: fix argument type of setAAD
tniessen Dec 9, 2019
822fb00
http2: forward debug message in debugStreamObj
lundibundi Dec 7, 2019
eb6e32c
test: disable colorMode in test-console-group
Trott Dec 10, 2019
8bf0da6
doc: edit colorMode information
Trott Dec 10, 2019
1b534d5
test: work around ENOTEMPTY when cleaning tmp dir
bnoordhuis Dec 12, 2019
e61f4ea
module: conditional exports import condition
guybedford Dec 5, 2019
5203ffb
tools: update link to google styleguide for cpplint
danbev Dec 10, 2019
71c6d44
lib: enforce use of BigInt from primordials
targos Dec 10, 2019
b3ae532
doc: clarify build support text
Trott Dec 11, 2019
f15fe94
2019-12-17, Version 13.4.0 (Current)
MylesBorins Dec 13, 2019
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
  •  
  •  
  •  
39 changes: 13 additions & 26 deletions BUILDING.md
Original file line number Diff line number Diff line change
Expand Up @@ -69,14 +69,11 @@ There are three support tiers:

* **Tier 1**: These platforms represent the majority of Node.js users. The
Node.js Build Working Group maintains infrastructure for full test coverage.
All commits to the Node.js repository are tested on these platforms. Test
failures on tier 1 platforms will block releases.
Test failures on tier 1 platforms will block releases.
* **Tier 2**: These platforms represent smaller segments of the Node.js user
base. The Node.js Build Working Group maintains infrastructure for full test
coverage. All commits to the Node.js repository are tested on these platforms.
Test failures on tier 2 platforms will block releases. Delays in release of
binaries for these platforms are acceptable where necessary due to
infrastructure concerns.
coverage. Test failures on tier 2 platforms will block releases.
Infrastructure issues may delay the release of binaries for these platforms.
* **Experimental**: May not compile or test suite may not pass. The core team
does not create releases for these platforms. Test failures on experimental
platforms do not block releases. Contributions to improve support for these
Expand All @@ -87,12 +84,10 @@ will be updated to reflect those changes.

### Platform list

Compiling and running Node.js is supported for a limited set of operating
systems, architectures and libc versions. The table below lists the
combinations that the core team has committed to supporting and the nature of
that support as per the support tiers above. A list of
[supported compile toolchains](#supported-toolchains) is also supplied for
tier 1 platforms.
Node.js compilation/execution support depends on operating system, architecture,
and libc version. The table below lists the support tier for each supported
combination. A list of [supported compile toolchains](#supported-toolchains) is
also supplied for tier 1 platforms.

**For production applications, run Node.js on supported platforms only.**

Expand Down Expand Up @@ -227,18 +222,10 @@ Consult previous versions of this document for older versions of Node.js:

### Note about Python 2 and Python 3

The Node.js project uses Python as part of its build process and has
historically only been Python 2 compatible.

Python 2 will reach its _end-of-life_ at the end of 2019 at which point the
interpreter will cease receiving updates. See https://python3statement.org/
for more information.

The Node.js project is in the process of transitioning its Python code to
Python 3 compatibility. Installing both versions of Python while building
and testing Node.js allows developers and end users to test, benchmark,
and debug Node.js running on both versions to ensure a smooth and complete
transition before the year-end deadline.
The Node.js project supports both Python 3 and Python 2 for building.
If both are installed Python 3 will be used. If only Python 2 is available
it will be used instead. When possible we recommend that you build and
test with Python 3.

### Unix and macOS

Expand All @@ -248,7 +235,7 @@ transition before the year-end deadline.
* GNU Make 3.81 or newer
* Python (see note above)
* Python 2.7
* Python 3.5, 3.6, 3.7, and 3.8 are experimental.
* Python 3.5, 3.6, 3.7, and 3.8.

Installation via Linux package manager can be achieved with:

Expand All @@ -264,7 +251,7 @@ FreeBSD and OpenBSD users may also need to install `libexecinfo`.
* Xcode Command Line Tools >= 10 for macOS
* Python (see note above)
* Python 2.7
* Python 3.5, 3.6, 3.7, and 3.8 are experimental.
* Python 3.5, 3.6, 3.7, and 3.8.

macOS users can install the `Xcode Command Line Tools` by running
`xcode-select --install`. Alternatively, if you already have the full Xcode
Expand Down
3 changes: 2 additions & 1 deletion CHANGELOG.md
Original file line number Diff line number Diff line change
Expand Up @@ -30,7 +30,8 @@ release.
</tr>
<tr>
<td valign="top">
<b><a href="doc/changelogs/CHANGELOG_V13.md#13.3.0">13.3.0</a></b><br/>
<b><a href="doc/changelogs/CHANGELOG_V13.md#13.4.0">13.4.0</a></b><br/>
<a href="doc/changelogs/CHANGELOG_V13.md#13.3.0">13.3.0</a><br/>
<a href="doc/changelogs/CHANGELOG_V13.md#13.2.0">13.2.0</a><br/>
<a href="doc/changelogs/CHANGELOG_V13.md#13.1.0">13.1.0</a><br/>
<a href="doc/changelogs/CHANGELOG_V13.md#13.0.1">13.0.1</a><br/>
Expand Down
4 changes: 2 additions & 2 deletions SECURITY.md
Original file line number Diff line number Diff line change
Expand Up @@ -23,8 +23,8 @@ the HackerOne platform. See <https://hackerone.com/nodejs> for further details.
## Reporting a Bug in a third party module

Security bugs in third party modules should be reported to their respective
maintainers and should also be coordinated through the Node Ecosystem Security
Team via [HackerOne](https://hackerone.com/nodejs-ecosystem).
maintainers and should also be coordinated through the Node.js Ecosystem
Security Team via [HackerOne](https://hackerone.com/nodejs-ecosystem).

Details regarding this process can be found in the
[Security Working Group repository](https://github.com/nodejs/security-wg/blob/master/processes/third_party_vuln_process.md).
Expand Down
8 changes: 4 additions & 4 deletions benchmark/README.md
Original file line number Diff line number Diff line change
Expand Up @@ -5,7 +5,7 @@ of different Node.js implementations and different ways of
writing JavaScript run by the built-in JavaScript engine.

For a detailed guide on how to write and run benchmarks in this
directory, see [the guide on benchmarks](../doc/guides/writing-and-running-benchmarks.md).
directory, see [the guide on benchmarks](writing-and-running-benchmarks.md).

## Table of Contents

Expand Down Expand Up @@ -76,17 +76,17 @@ writing benchmarks.

### createBenchmark(fn, configs\[, options\])

See [the guide on writing benchmarks](../doc/guides/writing-and-running-benchmarks.md#basics-of-a-benchmark).
See [the guide on writing benchmarks](writing-and-running-benchmarks.md#basics-of-a-benchmark).

### default\_http\_benchmarker

The default benchmarker used to run HTTP benchmarks.
See [the guide on writing HTTP benchmarks](../doc/guides/writing-and-running-benchmarks.md#creating-an-http-benchmark).
See [the guide on writing HTTP benchmarks](writing-and-running-benchmarks.md#creating-an-http-benchmark).

### PORT

The default port used to run HTTP benchmarks.
See [the guide on writing HTTP benchmarks](../doc/guides/writing-and-running-benchmarks.md#creating-an-http-benchmark).
See [the guide on writing HTTP benchmarks](writing-and-running-benchmarks.md#creating-an-http-benchmark).

### sendResult(data)

Expand Down
25 changes: 22 additions & 3 deletions benchmark/_cli.js
Original file line number Diff line number Diff line change
Expand Up @@ -34,7 +34,7 @@ function CLI(usage, settings) {
if (arg === '--') {
// Only items can follow --
mode = 'item';
} else if (['both', 'option'].includes(mode) && arg[0] === '-') {
} else if ('both' === mode && arg[0] === '-') {
// Optional arguments declaration

if (arg[1] === '-') {
Expand Down Expand Up @@ -82,17 +82,36 @@ CLI.prototype.abort = function(msg) {

CLI.prototype.benchmarks = function() {
const paths = [];
const filter = this.optional.filter || false;

for (const category of this.items) {
if (benchmarks[category] === undefined)
continue;
for (const scripts of benchmarks[category]) {
if (filter && scripts.lastIndexOf(filter) === -1) continue;
if (this.shouldSkip(scripts)) continue;

paths.push(path.join(category, scripts));
}
}

return paths;
};

CLI.prototype.shouldSkip = function(scripts) {
const filters = this.optional.filter || [];
const excludes = this.optional.exclude || [];
let skip = filters.length > 0;

for (const filter of filters) {
if (scripts.lastIndexOf(filter) !== -1) {
skip = false;
}
}

for (const exclude of excludes) {
if (scripts.lastIndexOf(exclude) !== -1) {
skip = true;
}
}

return skip;
};
2 changes: 1 addition & 1 deletion benchmark/_http-benchmarkers.js
Original file line number Diff line number Diff line change
Expand Up @@ -5,7 +5,7 @@ const path = require('path');
const fs = require('fs');

const requirementsURL =
'https://github.com/nodejs/node/blob/master/doc/guides/writing-and-running-benchmarks.md#http-benchmark-requirements';
'https://github.com/nodejs/node/blob/master/benchmark/writing-and-running-benchmarks.md#http-benchmark-requirements';

// The port used by servers and wrk
exports.PORT = Number(process.env.PORT) || 12346;
Expand Down
7 changes: 5 additions & 2 deletions benchmark/compare.js
Original file line number Diff line number Diff line change
Expand Up @@ -18,10 +18,13 @@ const cli = CLI(`usage: ./node compare.js [options] [--] <category> ...
--new ./new-node-binary new node binary (required)
--old ./old-node-binary old node binary (required)
--runs 30 number of samples
--filter pattern string to filter benchmark scripts
--filter pattern includes only benchmark scripts matching
<pattern> (can be repeated)
--exclude pattern excludes scripts matching <pattern> (can be
repeated)
--set variable=value set benchmark variable (can be repeated)
--no-progress don't show benchmark progress indicator
`, { arrayArgs: ['set'], boolArgs: ['no-progress'] });
`, { arrayArgs: ['set', 'filter', 'exclude'], boolArgs: ['no-progress'] });

if (!cli.optional.new || !cli.optional.old) {
cli.abort(cli.usage);
Expand Down
7 changes: 5 additions & 2 deletions benchmark/run.js
Original file line number Diff line number Diff line change
Expand Up @@ -8,10 +8,13 @@ const cli = CLI(`usage: ./node run.js [options] [--] <category> ...
Run each benchmark in the <category> directory a single time, more than one
<category> directory can be specified.

--filter pattern string to filter benchmark scripts
--filter pattern includes only benchmark scripts matching <pattern>
(can be repeated)
--exclude pattern excludes scripts matching <pattern> (can be
repeated)
--set variable=value set benchmark variable (can be repeated)
--format [simple|csv] optional value that specifies the output format
`, { arrayArgs: ['set'] });
`, { arrayArgs: ['set', 'filter', 'exclude'] });
const benchmarks = cli.benchmarks();

if (benchmarks.length === 0) {
Expand Down
2 changes: 2 additions & 0 deletions benchmark/util/format.js
Original file line number Diff line number Diff line change
Expand Up @@ -13,6 +13,8 @@ const inputs = {
'no-replace-2': ['foobar', 'yeah', 'mensch', 5],
'only-objects': [{ msg: 'This is an error' }, { msg: 'This is an error' }],
'many-%': ['replace%%%%s%%%%many%s%s%s', 'percent'],
'object-to-string': ['foo %s bar', { toString() { return 'bla'; } }],
'object-%s': ['foo %s bar', { a: true, b: false }],
};

const bench = common.createBenchmark(main, {
Expand Down
18 changes: 13 additions & 5 deletions benchmark/util/inspect-proxy.js
Original file line number Diff line number Diff line change
Expand Up @@ -3,13 +3,21 @@
const util = require('util');
const common = require('../common.js');

const bench = common.createBenchmark(main, { n: [2e4] });
const bench = common.createBenchmark(main, {
n: [1e5],
showProxy: [0, 1],
isProxy: [0, 1]
});

function main({ n }) {
const proxyA = new Proxy({}, { get: () => {} });
const proxyB = new Proxy(() => {}, {});
function main({ n, showProxy, isProxy }) {
let proxyA = {};
let proxyB = () => {};
if (isProxy) {
proxyA = new Proxy(proxyA, { get: () => {} });
proxyB = new Proxy(proxyB, {});
}
bench.start();
for (let i = 0; i < n; i += 1)
util.inspect({ a: proxyA, b: proxyB }, { showProxy: true });
util.inspect({ a: proxyA, b: proxyB }, { showProxy });
bench.end(n);
}
Original file line number Diff line number Diff line change
Expand Up @@ -8,6 +8,7 @@
* [Running benchmarks](#running-benchmarks)
* [Running individual benchmarks](#running-individual-benchmarks)
* [Running all benchmarks](#running-all-benchmarks)
* [Filtering benchmarks](#filtering-benchmarks)
* [Comparing Node.js versions](#comparing-nodejs-versions)
* [Comparing parameters](#comparing-parameters)
* [Running Benchmarks on the CI](#running-benchmarks-on-the-ci)
Expand Down Expand Up @@ -149,6 +150,87 @@ It is possible to execute more groups by adding extra process arguments.
$ node benchmark/run.js assert async_hooks
```

#### Filtering benchmarks

`benchmark/run.js` and `benchmark/compare.js` have `--filter pattern` and
`--exclude pattern` options, which can be used to run a subset of benchmarks or
to exclude specific benchmarks from the execution, respectively.

```console
$ node benchmark/run.js --filter "deepequal-b" assert

assert/deepequal-buffer.js
assert/deepequal-buffer.js method="deepEqual" strict=0 len=100 n=20000: 773,200.4995493788
assert/deepequal-buffer.js method="notDeepEqual" strict=0 len=100 n=20000: 964,411.712953848

$ node benchmark/run.js --exclude "deepequal-b" assert

assert/deepequal-map.js
assert/deepequal-map.js method="deepEqual_primitiveOnly" strict=0 len=500 n=500: 20,445.06368453332
assert/deepequal-map.js method="deepEqual_objectOnly" strict=0 len=500 n=500: 1,393.3481642240833
...

assert/deepequal-object.js
assert/deepequal-object.js method="deepEqual" strict=0 size=100 n=5000: 1,053.1950937538475
assert/deepequal-object.js method="notDeepEqual" strict=0 size=100 n=5000: 9,734.193251965213
...
```

`--filter` and `--exclude` can be repeated to provide multiple patterns.

```console
$ node benchmark/run.js --filter "deepequal-b" --filter "deepequal-m" assert

assert/deepequal-buffer.js
assert/deepequal-buffer.js method="deepEqual" strict=0 len=100 n=20000: 773,200.4995493788
assert/deepequal-buffer.js method="notDeepEqual" strict=0 len=100 n=20000: 964,411.712953848

assert/deepequal-map.js
assert/deepequal-map.js method="deepEqual_primitiveOnly" strict=0 len=500 n=500: 20,445.06368453332
assert/deepequal-map.js method="deepEqual_objectOnly" strict=0 len=500 n=500: 1,393.3481642240833

$ node benchmark/run.js --exclude "deepequal-b" --exclude "deepequal-m" assert

assert/deepequal-object.js
assert/deepequal-object.js method="deepEqual" strict=0 size=100 n=5000: 1,053.1950937538475
assert/deepequal-object.js method="notDeepEqual" strict=0 size=100 n=5000: 9,734.193251965213
...

assert/deepequal-prims-and-objs-big-array-set.js
assert/deepequal-prims-and-objs-big-array-set.js method="deepEqual_Array" strict=0 len=20000 n=25 primitive="string": 865.2977195251661
assert/deepequal-prims-and-objs-big-array-set.js method="notDeepEqual_Array" strict=0 len=20000 n=25 primitive="string": 827.8297281403861
assert/deepequal-prims-and-objs-big-array-set.js method="deepEqual_Set" strict=0 len=20000 n=25 primitive="string": 28,826.618268696366
...
```

If `--filter` and `--exclude` are used together, `--filter` is applied first,
and `--exclude` is applied on the result of `--filter`:

```console
$ node benchmark/run.js --filter "bench-" process

process/bench-env.js
process/bench-env.js operation="get" n=1000000: 2,356,946.0770617095
process/bench-env.js operation="set" n=1000000: 1,295,176.3266261867
process/bench-env.js operation="enumerate" n=1000000: 24,592.32231990992
process/bench-env.js operation="query" n=1000000: 3,625,787.2150573144
process/bench-env.js operation="delete" n=1000000: 1,521,131.5742806569

process/bench-hrtime.js
process/bench-hrtime.js type="raw" n=1000000: 13,178,002.113936031
process/bench-hrtime.js type="diff" n=1000000: 11,585,435.712423025
process/bench-hrtime.js type="bigint" n=1000000: 13,342,884.703919787

$ node benchmark/run.js --filter "bench-" --exclude "hrtime" process

process/bench-env.js
process/bench-env.js operation="get" n=1000000: 2,356,946.0770617095
process/bench-env.js operation="set" n=1000000: 1,295,176.3266261867
process/bench-env.js operation="enumerate" n=1000000: 24,592.32231990992
process/bench-env.js operation="query" n=1000000: 3,625,787.2150573144
process/bench-env.js operation="delete" n=1000000: 1,521,131.5742806569
```

### Comparing Node.js versions

To compare the effect of a new Node.js version use the `compare.js` tool. This
Expand Down
11 changes: 4 additions & 7 deletions common.gypi
Original file line number Diff line number Diff line change
Expand Up @@ -73,9 +73,6 @@
# TODO(refack): make v8-perfetto happen
'v8_use_perfetto': 0,

'v8_enable_pointer_compression': 0,
'v8_enable_31bit_smis_on_64bit_arch': 0,

##### end V8 defaults #####

'conditions': [
Expand Down Expand Up @@ -130,8 +127,8 @@
'ldflags': [ '-Wl,-bbigtoc' ],
}],
['OS == "android"', {
'cflags': [ '-fPIE' ],
'ldflags': [ '-fPIE', '-pie' ]
'cflags': [ '-fPIC' ],
'ldflags': [ '-fPIC' ]
}],
],
'msvs_settings': {
Expand Down Expand Up @@ -190,8 +187,8 @@
],
},],
['OS == "android"', {
'cflags': [ '-fPIE' ],
'ldflags': [ '-fPIE', '-pie' ]
'cflags': [ '-fPIC' ],
'ldflags': [ '-fPIC' ]
}],
],
'msvs_settings': {
Expand Down
Loading