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

v10.4.0 proposal #21167

Merged
merged 93 commits into from
Jun 6, 2018
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
edf4298
test: fix worker send error
gireeshpunathil May 26, 2018
ab43581
doc: make constants enumeration consistent
DiegoRBaquero May 28, 2018
d4f507b
src: remove unused req_wrap-inl.h
danbev May 28, 2018
8dc7c88
doc: improve note on zlib APIs threadpool usage
lpinca Apr 28, 2018
c2ae93d
doc: add missing link for 10.3.0 changelog
MylesBorins May 29, 2018
ebbd036
src: remove unused private data member
bnoordhuis May 24, 2018
04af697
test: mark test-child-process-fork-net as flaky
May 29, 2018
44ef458
fs: ensure options.flag defaults to 'r' in readFile
bdistin May 9, 2018
ff5f20f
test: add test for fs.promises.lchmod
May 7, 2018
adbbf0d
test: mark test-fs-readfile-tostring-fail as flaky
May 29, 2018
b2808ed
util: fix inspection of module namespaces
devsnek May 25, 2018
1b8e8e9
doc: make minor improvements to fs.realpath() docs
Trott May 24, 2018
45eeea4
src: implement debug output utilities
addaleax May 27, 2018
182c73b
http2: switch to new runtime-controlled debugging system
addaleax May 27, 2018
af06581
src: restore stdio on program exit
bnoordhuis Dec 12, 2017
d1e81b0
stream: ensure Stream.pipeline re-throws errors without callback
phated Apr 26, 2018
bb8d341
doc: better font stack for monospace in docs
silverwind May 30, 2018
b5b7459
trace_events: add version metadata
jasnell May 20, 2018
4012e05
doc: fix typo in n-api.md
ohbarye May 31, 2018
2bbd99c
test: check TTY mode reset on exit
addaleax May 30, 2018
7e1f610
test: fix flaky test-domain-timers
apapirovski May 29, 2018
2a9912c
http2: delay closing stream
apapirovski May 28, 2018
d4787cf
http2: force through RST_STREAM in destroy
apapirovski May 29, 2018
46d1025
net: use object destructuring
starkwang May 25, 2018
ea81d42
test: show actual error in next-tick-when-exiting
thatshailesh May 25, 2018
da8ad4a
deps: update V8 to 6.7.288.43
targos May 31, 2018
bad3c92
build: reset embedder string to "-node.0"
targos May 31, 2018
fed1d18
deps: update v8.gyp
targos Mar 13, 2018
a7aff77
deps: cherry-pick 39d546a from upstream V8
devsnek Apr 13, 2018
ec05819
v8: backport 9fb02b526f1cd3b859a530a01adb08bc0d089f4f
devsnek May 7, 2018
40c8bbe
deps: cherry-pick 23652c5f from upstream V8
eugeneo May 16, 2018
fb26861
deps: cherry-pick ff0a9793334 from upstream V8
addaleax May 18, 2018
4e788dc
deps: backport 91ddb65d from upstream V8
MayaLekova May 14, 2018
35d6661
deps: cherry-pick 6989b3f6d7 from V8 upstream
TimothyGu May 18, 2018
4c48b69
util: add type check function for BigIntObject
targos Mar 13, 2018
af62a16
Revert "src: fix GetCpuProfiler() deprecation warning"
targos Apr 12, 2018
2d3137c
src: fix GetCpuProfiler() deprecation warning
targos Mar 23, 2018
aa08f64
test: add read_only_space heap space
cjihrig Mar 27, 2018
df97791
test: update postmortem metadata test
cjihrig Mar 27, 2018
7c0c61b
src: update postmortem constant name
cjihrig Apr 4, 2018
f2c9e5a
lib: introduce internal/validators
targos Jun 5, 2018
e4224fd
test: improve path tests
Shivang44 May 25, 2018
d84aa51
test: removed message from strictEqual
lliepert May 26, 2018
f79096a
src: do not cache `NumberOfHeapSpaces()` globally
addaleax May 25, 2018
4cd4420
doc: remove invalid `vm.Script` arguments
SimenB May 26, 2018
fd201e0
doc: add guides on writing tests involving promises
joyeecheung May 27, 2018
09aec43
doc: remove vestigial onboarding section
Trott May 30, 2018
f5bf2c8
doc: move upstream information to onboarding doc
Trott May 30, 2018
b1f0907
doc: use "is" rather than "has been"
Trott May 30, 2018
c74c83a
test: avoid empty fixture in fs test
Trott May 30, 2018
f7886ab
test: avoid empty fixture in module test
Trott May 30, 2018
60abd08
test: remove unused empty fixture
Trott May 30, 2018
2edf172
doc: fix typos on `e.g.` abbreviations
Trott May 30, 2018
261ef1d
doc: remove POST_STATUS_TO_PR from onboarding.md
Trott May 30, 2018
a30bf55
lib: use focused ESLint disabling in util.js
Trott May 30, 2018
29c35bd
doc: remove link prediction from STYLE_GUIDE.md
Trott May 30, 2018
be249d9
benchmark: fix "comparisons"' typo
hiroppy Jun 1, 2018
15aa3c1
doc: add notable-change to onboarding.md exercise
Trott May 30, 2018
a3fdd2e
test: add option to test-benchmark-timers
Trott May 30, 2018
c8ee379
test: run crypto benchmark only once in tests
Trott May 30, 2018
90d8658
benchmark: refactor deepequal-buffer
Trott May 30, 2018
9b0fc59
benchmark: refactor deepequal-map
Trott May 30, 2018
4d71442
benchmark: refactor deepequal-object
Trott May 30, 2018
6fbb00e
benchmark: refactor prims-and-objs-big-array-set
Trott May 30, 2018
56c6759
benchmark: refactor prims-and-objs-big-loop
Trott May 30, 2018
686587b
benchmark: refactor deepequal-set
Trott May 30, 2018
b8470b9
benchmark: refactor deepequal-typedarrays
Trott May 30, 2018
9ada68b
benchmark: refactor benchmark/assert/throws.js
Trott May 30, 2018
44fe78b
stream: inline needMoreData function
kodemill May 28, 2018
c4fc1ff
test: fix flaky async-hooks/test-zlib.zlib-binding.deflate
addaleax Jun 1, 2018
bd0d19d
test: minor adjustments to test-http2-respond-file
addaleax Jun 2, 2018
8e3e18e
test: unmark test-zlib.zlib-binding.deflate flaky
apapirovski Jun 3, 2018
341b2c2
http2: fix premature destroy
apapirovski May 31, 2018
fda8654
test: log before and after RSS in memory leak test
bnoordhuis Jun 1, 2018
c60810a
test: increase slop limit in memory leak test
bnoordhuis Jun 2, 2018
66f4c7b
src: fix typo string_search.h comment
Jun 3, 2018
28f2dcb
test: update test-dns error message
Trott Jun 3, 2018
1e607d0
test: add source for test.wasm
danbev Jun 1, 2018
ba71fe8
timers: check can_call_into_js in Immediates
apapirovski May 31, 2018
1733ef9
test: make handling of noWarnCode stricter
tniessen May 31, 2018
2d36150
test: string-decorater.lastChar
Jun 1, 2018
820236f
test: mark test-trace-events-fs-sync as flaky
May 30, 2018
9d41ab4
test: refactor child-process-fork-net
Trott Jun 2, 2018
8862f0a
src: store pointer to Environment on DestroyParam
apapirovski Jun 2, 2018
1c211ec
inspector: code cleanup
eugeneo May 31, 2018
e2a7928
doc: add offboarding doc
Trott Jun 2, 2018
8161287
test: move benchmark-dgram to sequential
apapirovski Jun 4, 2018
1d22254
https: removed extra _http_server require
ErnestoSalazar May 31, 2018
48aa4c3
zlib: removed extra util require
ErnestoSalazar May 31, 2018
2c671ab
doc: fix typo in addons.md
Trott Jun 4, 2018
afc811c
src: break out of timers loop if `!can_call_into_js()`
addaleax May 18, 2018
440e899
tools: ensure doc-only doesn't update package-lock
MylesBorins May 29, 2018
1e88953
2018-06-06, Version 10.4.0 (Current)
MylesBorins Jun 6, 2018
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
  •  
  •  
  •  
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_V10.md#10.3.0">10.3.0</a></b><br/>
<b><a href="doc/changelogs/CHANGELOG_V10.md#10.4.0">10.4.0</a></b><br/>
<a href="doc/changelogs/CHANGELOG_V10.md#10.3.0">10.3.0</a><br/>
<a href="doc/changelogs/CHANGELOG_V10.md#10.2.1">10.2.1</a><br/>
<a href="doc/changelogs/CHANGELOG_V10.md#10.2.0">10.2.0</a><br/>
<a href="doc/changelogs/CHANGELOG_V10.md#10.1.0">10.1.0</a><br/>
Expand Down
2 changes: 1 addition & 1 deletion Makefile
Original file line number Diff line number Diff line change
Expand Up @@ -643,7 +643,7 @@ available-node = \
exit 1; \
fi;

run-npm-install = $(PWD)/$(NPM) install --production
run-npm-install = $(PWD)/$(NPM) install --production --no-package-lock

tools/doc/node_modules/js-yaml/package.json:
cd tools/doc && $(call available-node,$(run-npm-install))
Expand Down
5 changes: 3 additions & 2 deletions benchmark/assert/deepequal-buffer.js
Original file line number Diff line number Diff line change
Expand Up @@ -14,6 +14,8 @@ const bench = common.createBenchmark(main, {
});

function main({ len, n, method }) {
if (!method)
method = 'deepEqual';
const data = Buffer.allocUnsafe(len + 1);
const actual = Buffer.alloc(len);
const expected = Buffer.alloc(len);
Expand All @@ -22,8 +24,7 @@ function main({ len, n, method }) {
data.copy(expected);
data.copy(expectedWrong);

// eslint-disable-next-line no-restricted-properties
const fn = method !== '' ? assert[method] : assert.deepEqual;
const fn = assert[method];
const value2 = method.includes('not') ? expectedWrong : expected;

bench.start();
Expand Down
33 changes: 16 additions & 17 deletions benchmark/assert/deepequal-map.js
Original file line number Diff line number Diff line change
@@ -1,9 +1,8 @@
'use strict';

/* eslint-disable no-restricted-properties */

const common = require('../common.js');
const assert = require('assert');
const { deepEqual, deepStrictEqual, notDeepEqual, notDeepStrictEqual } =
require('assert');

const bench = common.createBenchmark(main, {
n: [5e2],
Expand Down Expand Up @@ -47,74 +46,74 @@ function main({ n, len, method }) {
// Empty string falls through to next line as default, mostly for tests.
case 'deepEqual_primitiveOnly':
values = array.map((_, i) => [`str_${i}`, 123]);
benchmark(assert.deepEqual, n, values);
benchmark(deepEqual, n, values);
break;
case 'deepStrictEqual_primitiveOnly':
values = array.map((_, i) => [`str_${i}`, 123]);
benchmark(assert.deepStrictEqual, n, values);
benchmark(deepStrictEqual, n, values);
break;
case 'deepEqual_objectOnly':
values = array.map((_, i) => [[`str_${i}`, 1], 123]);
benchmark(assert.deepEqual, n, values);
benchmark(deepEqual, n, values);
break;
case 'deepStrictEqual_objectOnly':
values = array.map((_, i) => [[`str_${i}`, 1], 123]);
benchmark(assert.deepStrictEqual, n, values);
benchmark(deepStrictEqual, n, values);
break;
case 'deepEqual_mixed':
values = array.map((_, i) => [i % 2 ? [`str_${i}`, 1] : `str_${i}`, 123]);
benchmark(assert.deepEqual, n, values);
benchmark(deepEqual, n, values);
break;
case 'deepStrictEqual_mixed':
values = array.map((_, i) => [i % 2 ? [`str_${i}`, 1] : `str_${i}`, 123]);
benchmark(assert.deepStrictEqual, n, values);
benchmark(deepStrictEqual, n, values);
break;
case 'deepEqual_looseMatches':
values = array.map((_, i) => [i, i]);
values2 = values.slice().map((v) => [String(v[0]), String(v[1])]);
benchmark(assert.deepEqual, n, values, values2);
benchmark(deepEqual, n, values, values2);
break;
case 'notDeepEqual_primitiveOnly':
values = array.map((_, i) => [`str_${i}`, 123]);
values2 = values.slice(0);
values2[Math.floor(len / 2)] = ['w00t', 123];
benchmark(assert.notDeepEqual, n, values, values2);
benchmark(notDeepEqual, n, values, values2);
break;
case 'notDeepStrictEqual_primitiveOnly':
values = array.map((_, i) => [`str_${i}`, 123]);
values2 = values.slice(0);
values2[Math.floor(len / 2)] = ['w00t', 123];
benchmark(assert.notDeepStrictEqual, n, values, values2);
benchmark(notDeepStrictEqual, n, values, values2);
break;
case 'notDeepEqual_objectOnly':
values = array.map((_, i) => [[`str_${i}`, 1], 123]);
values2 = values.slice(0);
values2[Math.floor(len / 2)] = [['w00t'], 123];
benchmark(assert.notDeepEqual, n, values, values2);
benchmark(notDeepEqual, n, values, values2);
break;
case 'notDeepStrictEqual_objectOnly':
values = array.map((_, i) => [[`str_${i}`, 1], 123]);
values2 = values.slice(0);
values2[Math.floor(len / 2)] = [['w00t'], 123];
benchmark(assert.notDeepStrictEqual, n, values, values2);
benchmark(notDeepStrictEqual, n, values, values2);
break;
case 'notDeepEqual_mixed':
values = array.map((_, i) => [i % 2 ? [`str_${i}`, 1] : `str_${i}`, 123]);
values2 = values.slice(0);
values2[0] = ['w00t', 123];
benchmark(assert.notDeepEqual, n, values, values2);
benchmark(notDeepEqual, n, values, values2);
break;
case 'notDeepStrictEqual_mixed':
values = array.map((_, i) => [i % 2 ? [`str_${i}`, 1] : `str_${i}`, 123]);
values2 = values.slice(0);
values2[0] = ['w00t', 123];
benchmark(assert.notDeepStrictEqual, n, values, values2);
benchmark(notDeepStrictEqual, n, values, values2);
break;
case 'notDeepEqual_looseMatches':
values = array.map((_, i) => [i, i]);
values2 = values.slice().map((v) => [String(v[0]), String(v[1])]);
values2[len - 1] = [String(len + 1), String(len + 1)];
benchmark(assert.notDeepEqual, n, values, values2);
benchmark(notDeepEqual, n, values, values2);
break;
default:
throw new Error(`Unsupported method ${method}`);
Expand Down
6 changes: 4 additions & 2 deletions benchmark/assert/deepequal-object.js
Original file line number Diff line number Diff line change
Expand Up @@ -29,13 +29,15 @@ function main({ size, n, method }) {
// TODO: Fix this "hack". `n` should not be manipulated.
n = n / size;

if (!method)
method = 'deepEqual';

const source = Array.apply(null, Array(size));
const actual = createObj(source);
const expected = createObj(source);
const expectedWrong = createObj(source, '4');

// eslint-disable-next-line no-restricted-properties
const fn = method !== '' ? assert[method] : assert.deepEqual;
const fn = assert[method];
const value2 = method.includes('not') ? expectedWrong : expected;

bench.start();
Expand Down
23 changes: 10 additions & 13 deletions benchmark/assert/deepequal-prims-and-objs-big-array-set.js
Original file line number Diff line number Diff line change
@@ -1,7 +1,8 @@
'use strict';

const common = require('../common.js');
const assert = require('assert');
const { deepEqual, deepStrictEqual, notDeepEqual, notDeepStrictEqual } =
require('assert');

const primValues = {
'null': null,
Expand Down Expand Up @@ -61,32 +62,28 @@ function main({ n, len, primitive, method }) {
// Empty string falls through to next line as default, mostly for tests.
case '':
case 'deepEqual_Array':
// eslint-disable-next-line no-restricted-properties
run(assert.deepEqual, n, actual, expected);
run(deepEqual, n, actual, expected);
break;
case 'deepStrictEqual_Array':
run(assert.deepStrictEqual, n, actual, expected);
run(deepStrictEqual, n, actual, expected);
break;
case 'notDeepEqual_Array':
// eslint-disable-next-line no-restricted-properties
run(assert.notDeepEqual, n, actual, expectedWrong);
run(notDeepEqual, n, actual, expectedWrong);
break;
case 'notDeepStrictEqual_Array':
run(assert.notDeepStrictEqual, n, actual, expectedWrong);
run(notDeepStrictEqual, n, actual, expectedWrong);
break;
case 'deepEqual_Set':
// eslint-disable-next-line no-restricted-properties
run(assert.deepEqual, n, actualSet, expectedSet);
run(deepEqual, n, actualSet, expectedSet);
break;
case 'deepStrictEqual_Set':
run(assert.deepStrictEqual, n, actualSet, expectedSet);
run(deepStrictEqual, n, actualSet, expectedSet);
break;
case 'notDeepEqual_Set':
// eslint-disable-next-line no-restricted-properties
run(assert.notDeepEqual, n, actualSet, expectedWrongSet);
run(notDeepEqual, n, actualSet, expectedWrongSet);
break;
case 'notDeepStrictEqual_Set':
run(assert.notDeepStrictEqual, n, actualSet, expectedWrongSet);
run(notDeepStrictEqual, n, actualSet, expectedWrongSet);
break;
default:
throw new Error(`Unsupported method "${method}"`);
Expand Down
5 changes: 3 additions & 2 deletions benchmark/assert/deepequal-prims-and-objs-big-loop.js
Original file line number Diff line number Diff line change
Expand Up @@ -25,13 +25,14 @@ const bench = common.createBenchmark(main, {
});

function main({ n, primitive, method }) {
if (!method)
method = 'deepEqual';
const prim = primValues[primitive];
const actual = prim;
const expected = prim;
const expectedWrong = 'b';

// eslint-disable-next-line no-restricted-properties
const fn = method !== '' ? assert[method] : assert.deepEqual;
const fn = assert[method];
const value2 = method.includes('not') ? expectedWrong : expected;

bench.start();
Expand Down
33 changes: 16 additions & 17 deletions benchmark/assert/deepequal-set.js
Original file line number Diff line number Diff line change
@@ -1,9 +1,8 @@
'use strict';

/* eslint-disable no-restricted-properties */

const common = require('../common.js');
const assert = require('assert');
const { deepEqual, deepStrictEqual, notDeepEqual, notDeepStrictEqual } =
require('assert');

const bench = common.createBenchmark(main, {
n: [5e2],
Expand Down Expand Up @@ -48,82 +47,82 @@ function main({ n, len, method }) {
// Empty string falls through to next line as default, mostly for tests.
case 'deepEqual_primitiveOnly':
values = array.map((_, i) => `str_${i}`);
benchmark(assert.deepEqual, n, values);
benchmark(deepEqual, n, values);
break;
case 'deepStrictEqual_primitiveOnly':
values = array.map((_, i) => `str_${i}`);
benchmark(assert.deepStrictEqual, n, values);
benchmark(deepStrictEqual, n, values);
break;
case 'deepEqual_objectOnly':
values = array.map((_, i) => [`str_${i}`, null]);
benchmark(assert.deepEqual, n, values);
benchmark(deepEqual, n, values);
break;
case 'deepStrictEqual_objectOnly':
values = array.map((_, i) => [`str_${i}`, null]);
benchmark(assert.deepStrictEqual, n, values);
benchmark(deepStrictEqual, n, values);
break;
case 'deepEqual_mixed':
values = array.map((_, i) => {
return i % 2 ? [`str_${i}`, null] : `str_${i}`;
});
benchmark(assert.deepEqual, n, values);
benchmark(deepEqual, n, values);
break;
case 'deepStrictEqual_mixed':
values = array.map((_, i) => {
return i % 2 ? [`str_${i}`, null] : `str_${i}`;
});
benchmark(assert.deepStrictEqual, n, values);
benchmark(deepStrictEqual, n, values);
break;
case 'deepEqual_looseMatches':
values = array.map((_, i) => i);
values2 = values.slice().map((v) => String(v));
benchmark(assert.deepEqual, n, values, values2);
benchmark(deepEqual, n, values, values2);
break;
case 'notDeepEqual_primitiveOnly':
values = array.map((_, i) => `str_${i}`);
values2 = values.slice(0);
values2[Math.floor(len / 2)] = 'w00t';
benchmark(assert.notDeepEqual, n, values, values2);
benchmark(notDeepEqual, n, values, values2);
break;
case 'notDeepStrictEqual_primitiveOnly':
values = array.map((_, i) => `str_${i}`);
values2 = values.slice(0);
values2[Math.floor(len / 2)] = 'w00t';
benchmark(assert.notDeepStrictEqual, n, values, values2);
benchmark(notDeepStrictEqual, n, values, values2);
break;
case 'notDeepEqual_objectOnly':
values = array.map((_, i) => [`str_${i}`, null]);
values2 = values.slice(0);
values2[Math.floor(len / 2)] = ['w00t'];
benchmark(assert.notDeepEqual, n, values, values2);
benchmark(notDeepEqual, n, values, values2);
break;
case 'notDeepStrictEqual_objectOnly':
values = array.map((_, i) => [`str_${i}`, null]);
values2 = values.slice(0);
values2[Math.floor(len / 2)] = ['w00t'];
benchmark(assert.notDeepStrictEqual, n, values, values2);
benchmark(notDeepStrictEqual, n, values, values2);
break;
case 'notDeepEqual_mixed':
values = array.map((_, i) => {
return i % 2 ? [`str_${i}`, null] : `str_${i}`;
});
values2 = values.slice();
values2[0] = 'w00t';
benchmark(assert.notDeepEqual, n, values, values2);
benchmark(notDeepEqual, n, values, values2);
break;
case 'notDeepStrictEqual_mixed':
values = array.map((_, i) => {
return i % 2 ? [`str_${i}`, null] : `str_${i}`;
});
values2 = values.slice();
values2[0] = 'w00t';
benchmark(assert.notDeepStrictEqual, n, values, values2);
benchmark(notDeepStrictEqual, n, values, values2);
break;
case 'notDeepEqual_looseMatches':
values = array.map((_, i) => i);
values2 = values.slice().map((v) => String(v));
values2[len - 1] = String(len + 1);
benchmark(assert.notDeepEqual, n, values, values2);
benchmark(notDeepEqual, n, values, values2);
break;
default:
throw new Error(`Unsupported method "${method}"`);
Expand Down
5 changes: 3 additions & 2 deletions benchmark/assert/deepequal-typedarrays.js
Original file line number Diff line number Diff line change
Expand Up @@ -25,15 +25,16 @@ const bench = common.createBenchmark(main, {
});

function main({ type, n, len, method }) {
if (!method)
method = 'deepEqual';
const clazz = global[type];
const actual = new clazz(len);
const expected = new clazz(len);
const expectedWrong = Buffer.alloc(len);
const wrongIndex = Math.floor(len / 2);
expectedWrong[wrongIndex] = 123;

// eslint-disable-next-line no-restricted-properties
const fn = method !== '' ? assert[method] : assert.deepEqual;
const fn = assert[method];
const value2 = method.includes('not') ? expectedWrong : expected;

bench.start();
Expand Down
Loading