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.5.0 proposal #31010

Merged
merged 70 commits into from Dec 18, 2019
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
70 commits
Select commit Hold shift + click to select a range
f371562
build,win: support building MSI with VS2019
joaocgreis Dec 11, 2019
453be95
util: fix built-in detection
BridgeAR Nov 30, 2019
8dec909
util: inspect (user defined) prototype properties
BridgeAR Nov 30, 2019
0d2172f
lib: update Symbol.toStringTag by SymbolToStringTag primordial
Sebastien-Ahkrin Dec 11, 2019
b53e2a8
doc: improve doc writable streams: 'finish' event
dev-script Dec 10, 2019
a326309
lib: replace Symbol.toPrimitive to SymbolToPrimitive primordials
Sebastien-Ahkrin Dec 11, 2019
e11acc5
repl: fix autocomplete when useGlobal is false
targos Dec 10, 2019
60225c1
build: fix missing x64 arch suffix in binary tar name
legendecas Dec 10, 2019
30d3249
lib: refactor NativeModule
joyeecheung Dec 8, 2019
00cbf5b
build: auto-load ICU data from --with-icu-default-data-dir
sgallagher Dec 6, 2019
4f3eca5
console: unregister temporary error listener
ronag Dec 8, 2019
2430dd8
lib: use strict equality comparison
PW486 Dec 11, 2019
1722280
http,https: increase server headers timeout
timcosta Oct 22, 2019
7a756cb
http: remove unnecessary bind
apapirovski Jun 7, 2019
4e67d38
perf_hooks: remove unnecessary bind
apapirovski Jun 7, 2019
ad5b715
fs: remove unnecessary bind
apapirovski Jun 7, 2019
52aab47
http2: remove unnecessary bind from setImmediate
apapirovski Jun 7, 2019
30e2d28
cluster: remove unnecessary bind
apapirovski Jun 8, 2019
c43461a
src: make debug_options getters public
codebytere Nov 15, 2019
663a6b4
stream: make all streams error in a pipeline
mcollina Dec 9, 2019
a221017
crypto: cast oaepLabel to unsigned char*
codebytere Dec 12, 2019
7e6510b
test: delay loading 'os' in test/common module
Trott Dec 12, 2019
b7a0574
test: make test-os-checked-function work without test harness
Trott Dec 12, 2019
7a25c2c
test: improve assertion error message in test-debug-usage
Trott Dec 12, 2019
cbe29ce
lib: change var to let/const
Dec 12, 2019
df5ae1a
doc: fix description of N-API exception handlers
tniessen Dec 11, 2019
0c18c49
stream: do not chunk strings and Buffer in Readable.from
mcollina Dec 12, 2019
d456aa0
src: unregister Isolate with platform before disposing
addaleax Dec 12, 2019
60485dc
test: add test for validation for wasi.start() argument
Trott Dec 12, 2019
51d1a91
test: add missing test flags
cjihrig Dec 15, 2019
b20ddde
tools: enable Markdown linter's usage information
DerekNonGeneric Nov 2, 2019
10a77d3
build,win: fix goto exit in vcbuild
joaocgreis Dec 13, 2019
b6b917d
test: avoid leftover report file
Flarna Dec 12, 2019
f830a7d
util: refactor inspect code for constistency
BridgeAR Nov 2, 2019
f62a767
util: add Set and map size to inspect output
BridgeAR Nov 2, 2019
eb6443d
doc: clarify expectations for PR commit messages
DerekNonGeneric Dec 12, 2019
69aaab0
test: improve dns lookup coverage
KeeReal Dec 3, 2019
d549dae
repl: remove dead code
BridgeAR Dec 10, 2019
f7eeb8c
repl: simplify repl autocompletion
BridgeAR Dec 10, 2019
8b92223
repl: simplify code
BridgeAR Dec 10, 2019
424c37b
readline: update ansi-regex
BridgeAR Dec 11, 2019
f6f298e
repl,readline: refactor common code
BridgeAR Dec 11, 2019
3906e14
repl,readline: refactor for simplicity
BridgeAR Dec 11, 2019
1a8f828
repl: improve completion
BridgeAR Dec 11, 2019
6a3e79f
repl: add completion preview
BridgeAR Dec 11, 2019
02f3fe4
repl: fix preview bug in case of long lines
BridgeAR Dec 11, 2019
f30b771
test: add multiple repl preview tests
BridgeAR Dec 13, 2019
559284b
doc: add "Be direct." to the style guide
Trott Dec 13, 2019
698e0a2
lib: add TypedArray constructors to primordials
Sebastien-Ahkrin Nov 30, 2019
2b0e2c2
v8: use of TypedArray constructors from primordials
Sebastien-Ahkrin Nov 30, 2019
19f05ca
lib: enforce use of Promise from primordials
targos Dec 13, 2019
92475e9
lib: replace Symbol.asyncIterator by SymbolAsyncIterator
Sebastien-Ahkrin Dec 13, 2019
f51b5bd
lib: replace Symbol.hasInstance by SymbolHasInstance
Sebastien-Ahkrin Dec 13, 2019
88731ad
lib: replace Symbol.species by SymbolSpecies
Sebastien-Ahkrin Dec 13, 2019
954793f
process: fix promise catching
pd4d10 Dec 14, 2019
b6ddbc1
benchmark: use let/const instead of var in buffers
dnlup Dec 13, 2019
13b5ace
doc: explain napi_run_script
tniessen Dec 9, 2019
5b49ded
readline: promote _getCursorPos to public api
Js-Brecht Nov 27, 2019
510edea
process: refs --unhandled-rejections documentation in warning message
aduh95 Nov 20, 2019
d8ce9a0
cli: add --trace-exit cli option
legendecas Nov 17, 2019
5ca29d8
stream: use for...of
trivikr Dec 14, 2019
54d51db
wasi: require CLI flag to require() wasi module
cjihrig Dec 14, 2019
72b4aee
test: improve test coverage in child_process
juanarbol Feb 24, 2019
c2d9552
test: improve WASI start() coverage
cjihrig Dec 15, 2019
5e268b8
test: simplify test-wasi-start-validation.js
cjihrig Dec 15, 2019
3abcb69
doc: add note about fs.close() about undefined behavior
ronag Dec 14, 2019
e10917f
async_hooks: ensure proper handling in runInAsyncScope
apapirovski Dec 14, 2019
956dec8
tls: for...of in _tls_common.js
trivikr Dec 14, 2019
3bc9b09
http: use for...of in http library code
trivikr Dec 14, 2019
2e222e6
2019-12-18, Version 13.5.0 (Current)
MylesBorins Dec 17, 2019
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Jump to
Jump to file
Failed to load files.
Diff view
Diff view
5 changes: 5 additions & 0 deletions .gitignore
Expand Up @@ -37,6 +37,8 @@
/*.swp
/out
/*.txt
/*.msi
/*.wixpdb

# === Rules for artifacts of `./configure` ===
/icu_config.gypi
Expand All @@ -58,6 +60,9 @@ _UpgradeReport_Files/
*.wixobj
/tools/msvs/genfiles/
/npm.wxs
/tools/msvs/msi/Release/
/tools/msvs/msi/obj/
/tools/msvs/msi/x64/
# Exclude MSVS files used for .msi file generation
!tools/msvs/msi/custom_actions.vcxproj
!tools/msvs/msi/nodemsi.sln
Expand Down
3 changes: 2 additions & 1 deletion CHANGELOG.md
Expand Up @@ -30,7 +30,8 @@ release.
</tr>
<tr>
<td valign="top">
<b><a href="doc/changelogs/CHANGELOG_V13.md#13.4.0">13.4.0</a></b><br/>
<b><a href="doc/changelogs/CHANGELOG_V13.md#13.5.0">13.5.0</a></b><br/>
<a href="doc/changelogs/CHANGELOG_V13.md#13.4.0">13.4.0</a><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/>
Expand Down
2 changes: 1 addition & 1 deletion Makefile
Expand Up @@ -842,6 +842,7 @@ endif
endif
endif
endif
endif
ifeq ($(DESTCPU),x64)
ARCH=x64
else
Expand Down Expand Up @@ -871,7 +872,6 @@ endif
endif
endif
endif
endif

# node and v8 use different arch names (e.g. node 'x86' vs v8 'ia32').
# pass the proper v8 arch name to $V8_ARCH based on user-specified $DESTCPU.
Expand Down
4 changes: 2 additions & 2 deletions benchmark/buffers/buffer-bytelength.js
Expand Up @@ -16,8 +16,8 @@ const chars = [
];

function main({ n, len, encoding }) {
var strings = [];
var results = [ len * 16 ];
let strings = [];
let results = [ len * 16 ];
if (encoding === 'buffer') {
strings = [ Buffer.alloc(len * 16, 'a') ];
} else {
Expand Down
11 changes: 5 additions & 6 deletions benchmark/buffers/buffer-compare-instance-method.js
Expand Up @@ -12,47 +12,46 @@ function main({ n, size, args }) {
const b1 = Buffer.alloc(size, 'a');
const b0Len = b0.length;
const b1Len = b1.length;
var i;

b1[size - 1] = 'b'.charCodeAt(0);

switch (args) {
case 2:
b0.compare(b1, 0);
bench.start();
for (i = 0; i < n; i++) {
for (let i = 0; i < n; i++) {
b0.compare(b1, 0);
}
bench.end(n);
break;
case 3:
b0.compare(b1, 0, b1Len);
bench.start();
for (i = 0; i < n; i++) {
for (let i = 0; i < n; i++) {
b0.compare(b1, 0, b1Len);
}
bench.end(n);
break;
case 4:
b0.compare(b1, 0, b1Len, 0);
bench.start();
for (i = 0; i < n; i++) {
for (let i = 0; i < n; i++) {
b0.compare(b1, 0, b1Len, 0);
}
bench.end(n);
break;
case 5:
b0.compare(b1, 0, b1Len, 0, b0Len);
bench.start();
for (i = 0; i < n; i++) {
for (let i = 0; i < n; i++) {
b0.compare(b1, 0, b1Len, 0, b0Len);
}
bench.end(n);
break;
default:
b0.compare(b1);
bench.start();
for (i = 0; i < n; i++) {
for (let i = 0; i < n; i++) {
b0.compare(b1);
}
bench.end(n);
Expand Down
5 changes: 2 additions & 3 deletions benchmark/buffers/buffer-hex.js
Expand Up @@ -9,16 +9,15 @@ const bench = common.createBenchmark(main, {

function main({ len, n }) {
const buf = Buffer.alloc(len);
var i;

for (i = 0; i < buf.length; i++)
for (let i = 0; i < buf.length; i++)
buf[i] = i & 0xff;

const hex = buf.toString('hex');

bench.start();

for (i = 0; i < n; i += 1)
for (let i = 0; i < n; i += 1)
Buffer.from(hex, 'hex');

bench.end(n);
Expand Down
2 changes: 1 addition & 1 deletion benchmark/buffers/buffer-indexof.js
Expand Up @@ -25,7 +25,7 @@ const bench = common.createBenchmark(main, {
});

function main({ n, search, encoding, type }) {
var aliceBuffer = fs.readFileSync(
let aliceBuffer = fs.readFileSync(
path.resolve(__dirname, '../fixtures/alice.html')
);

Expand Down
8 changes: 4 additions & 4 deletions benchmark/buffers/buffer-iterate.js
Expand Up @@ -29,23 +29,23 @@ function main({ size, type, method, n }) {
}

function benchFor(buffer, n) {
for (var k = 0; k < n; k++) {
for (var i = 0; i < buffer.length; i++) {
for (let k = 0; k < n; k++) {
for (let i = 0; i < buffer.length; i++) {
assert(buffer[i] === 0);
}
}
}

function benchForOf(buffer, n) {
for (var k = 0; k < n; k++) {
for (let k = 0; k < n; k++) {
for (const b of buffer) {
assert(b === 0);
}
}
}

function benchIterator(buffer, n) {
for (var k = 0; k < n; k++) {
for (let k = 0; k < n; k++) {
const iter = buffer[Symbol.iterator]();
let cur = iter.next();

Expand Down
4 changes: 2 additions & 2 deletions benchmark/buffers/buffer-swap.js
Expand Up @@ -36,7 +36,7 @@ Buffer.prototype.htons = function htons() {
Buffer.prototype.htonl = function htonl() {
if (this.length % 4 !== 0)
throw new RangeError();
for (var i = 0; i < this.length; i += 4) {
for (let i = 0; i < this.length; i += 4) {
swap(this, i, i + 3);
swap(this, i + 1, i + 2);
}
Expand Down Expand Up @@ -66,7 +66,7 @@ function createBuffer(len, aligned) {
function genMethod(method) {
const fnString = `
return function ${method}(n, buf) {
for (var i = 0; i <= n; i++)
for (let i = 0; i <= n; i++)
buf.${method}();
}`;
return (new Function(fnString))();
Expand Down
9 changes: 4 additions & 5 deletions benchmark/buffers/buffer-tostring.js
Expand Up @@ -15,29 +15,28 @@ function main({ encoding, args, len, n }) {
if (encoding.length === 0)
encoding = undefined;

var i;
switch (args) {
case 1:
bench.start();
for (i = 0; i < n; i += 1)
for (let i = 0; i < n; i += 1)
buf.toString(encoding);
bench.end(n);
break;
case 2:
bench.start();
for (i = 0; i < n; i += 1)
for (let i = 0; i < n; i += 1)
buf.toString(encoding, 0);
bench.end(n);
break;
case 3:
bench.start();
for (i = 0; i < n; i += 1)
for (let i = 0; i < n; i += 1)
buf.toString(encoding, 0, len);
bench.end(n);
break;
default:
bench.start();
for (i = 0; i < n; i += 1)
for (let i = 0; i < n; i += 1)
buf.toString();
bench.end(n);
break;
Expand Down
14 changes: 6 additions & 8 deletions benchmark/buffers/buffer-write-string.js
Expand Up @@ -15,21 +15,19 @@ function main({ len, n, encoding, args }) {
let start = 0;
const buf = Buffer.allocUnsafe(len);

var i;

switch (args) {
case 'offset':
string = 'a'.repeat(Math.floor(len / 2));
start = len - string.length;
if (encoding) {
bench.start();
for (i = 0; i < n; ++i) {
for (let i = 0; i < n; ++i) {
buf.write(string, start, encoding);
}
bench.end(n);
} else {
bench.start();
for (i = 0; i < n; ++i) {
for (let i = 0; i < n; ++i) {
buf.write(string, start);
}
bench.end(n);
Expand All @@ -39,13 +37,13 @@ function main({ len, n, encoding, args }) {
string = 'a'.repeat(len);
if (encoding) {
bench.start();
for (i = 0; i < n; ++i) {
for (let i = 0; i < n; ++i) {
buf.write(string, 0, buf.length, encoding);
}
bench.end(n);
} else {
bench.start();
for (i = 0; i < n; ++i) {
for (let i = 0; i < n; ++i) {
buf.write(string, 0, buf.length);
}
bench.end(n);
Expand All @@ -55,13 +53,13 @@ function main({ len, n, encoding, args }) {
string = 'a'.repeat(len);
if (encoding) {
bench.start();
for (i = 0; i < n; ++i) {
for (let i = 0; i < n; ++i) {
buf.write(string, encoding);
}
bench.end(n);
} else {
bench.start();
for (i = 0; i < n; ++i) {
for (let i = 0; i < n; ++i) {
buf.write(string);
}
bench.end(n);
Expand Down
9 changes: 9 additions & 0 deletions configure.py
Expand Up @@ -450,6 +450,14 @@
'the icu4c source archive. '
'v%d.x or later recommended.' % icu_versions['minimum_icu'])

intl_optgroup.add_option('--with-icu-default-data-dir',
action='store',
dest='with_icu_default_data_dir',
help='Path to the icuXXdt{lb}.dat file. If unspecified, ICU data will '
'only be read if the NODE_ICU_DATA environment variable or the '
'--icu-data-dir runtime argument is used. This option has effect '
'only when Node.js is built with --with-intl=small-icu.')

parser.add_option('--with-ltcg',
action='store_true',
dest='with_ltcg',
Expand Down Expand Up @@ -1394,6 +1402,7 @@ def write_config(data, name):
locs.add('root') # must have root
o['variables']['icu_locales'] = ','.join(str(loc) for loc in locs)
# We will check a bit later if we can use the canned deps/icu-small
o['variables']['icu_default_data'] = options.with_icu_default_data_dir or ''
elif with_intl == 'full-icu':
# full ICU
o['variables']['v8_enable_i18n_support'] = 1
Expand Down
7 changes: 6 additions & 1 deletion doc/STYLE_GUIDE.md
Expand Up @@ -55,10 +55,15 @@
* OK: JavaScript, Google's V8
<!--lint disable prohibited-strings remark-lint-->
* NOT OK: Javascript, Google's v8

* Use _Node.js_ and not _Node_, _NodeJS_, or similar variants.
<!-- lint enable prohibited-strings remark-lint-->
* When referring to the executable, _`node`_ is acceptable.
* Be direct.
* OK: The return value is a string.
<!-- lint disable prohibited-strings remark-lint-->
* NOT OK: It is important to note that, in all cases, the return value will be
a string regardless.
<!-- lint enable prohibited-strings remark-lint-->

See also API documentation structure overview in [doctools README][].

Expand Down
9 changes: 9 additions & 0 deletions doc/api/cli.md
Expand Up @@ -784,6 +784,14 @@ added: v7.7.0

Enables the collection of trace event tracing information.

### `--trace-exit`
<!-- YAML
added: v13.5.0
-->

Prints a stack trace whenever an environment is exited proactively,
i.e. invoking `process.exit()`.

### `--trace-sync-io`
<!-- YAML
added: v2.1.0
Expand Down Expand Up @@ -1112,6 +1120,7 @@ Node.js options that are allowed are:
* `--trace-event-categories`
* `--trace-event-file-pattern`
* `--trace-events-enabled`
* `--trace-exit`
* `--trace-sync-io`
* `--trace-tls`
* `--trace-uncaught`
Expand Down
6 changes: 6 additions & 0 deletions doc/api/fs.md
Expand Up @@ -1533,6 +1533,9 @@ changes:
Asynchronous close(2). No arguments other than a possible exception are given
to the completion callback.

Calling `fs.close()` on any file descriptor (`fd`) that is currently in use
through any other `fs` operation may lead to undefined behavior.

## fs.closeSync(fd)
<!-- YAML
added: v0.1.21
Expand All @@ -1542,6 +1545,9 @@ added: v0.1.21

Synchronous close(2). Returns `undefined`.

Calling `fs.closeSync()` on any file descriptor (`fd`) that is currently in use
through any other `fs` operation may lead to undefined behavior.

## fs.constants

* {Object}
Expand Down
2 changes: 1 addition & 1 deletion doc/api/http.md
Expand Up @@ -1107,7 +1107,7 @@ Stops the server from accepting new connections. See [`net.Server.close()`][].
added: v11.3.0
-->

* {number} **Default:** `40000`
* {number} **Default:** `60000`

Limit the amount of time the parser will wait to receive the complete HTTP
headers.
Expand Down
2 changes: 1 addition & 1 deletion doc/api/https.md
Expand Up @@ -94,7 +94,7 @@ See [`server.close()`][`http.close()`] from the HTTP module for details.
added: v11.3.0
-->

* {number} **Default:** `40000`
* {number} **Default:** `60000`

See [`http.Server#headersTimeout`][].

Expand Down