Skip to content
Closed
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
107 commits
Select commit Hold shift + click to select a range
916cc82
test: assert: fix deepStrictEqual comparing a real array and fake array
ljharb Dec 1, 2019
9c32b24
url: declare iterator inside loop
trivikr Nov 17, 2019
fb14ed4
src: accept single argument in getProxyDetails
BridgeAR Dec 8, 2019
086c7b4
build: add flag to enable pointer compression
mcollina Nov 13, 2019
d8fc0ae
deps: update npm to 6.13.4
isaacs Dec 11, 2019
99fe9dd
build: fix library version and compile flags on Android
gcampax Sep 24, 2017
73df09e
build: on Android, use android log library to print stack traces
gcampax Sep 24, 2017
d776992
doc: fix argument type of setAAD
tniessen Dec 9, 2019
2dff8dd
http2: forward debug message in debugStreamObj
lundibundi Dec 7, 2019
4f523c2
src: migrate to new V8 ArrayBuffer API
thangktran Dec 3, 2019
82d477a
test: disable colorMode in test-console-group
Trott Dec 10, 2019
973b5c0
doc: edit colorMode information
Trott Dec 10, 2019
edf654d
test: work around ENOTEMPTY when cleaning tmp dir
bnoordhuis Dec 12, 2019
357a992
module: conditional exports import condition
guybedford Dec 5, 2019
afa9a72
tools: update link to google styleguide for cpplint
danbev Dec 10, 2019
923d8bc
lib: enforce use of BigInt from primordials
targos Dec 10, 2019
6143e00
doc: clarify build support text
Trott Dec 11, 2019
654d22c
build,win: support building MSI with VS2019
joaocgreis Dec 11, 2019
28ee032
util: fix built-in detection
BridgeAR Nov 30, 2019
fb8b483
util: inspect (user defined) prototype properties
BridgeAR Nov 30, 2019
ac1cc5c
lib: update Symbol.toStringTag by SymbolToStringTag primordial
Sebastien-Ahkrin Dec 11, 2019
08728a1
doc: improve doc writable streams: 'finish' event
dev-script Dec 10, 2019
e490b2c
lib: replace Symbol.toPrimitive to SymbolToPrimitive primordials
Sebastien-Ahkrin Dec 11, 2019
8e58c75
repl: fix autocomplete when useGlobal is false
targos Dec 10, 2019
1807c3e
build: fix missing x64 arch suffix in binary tar name
legendecas Dec 10, 2019
e4e5a83
lib: refactor NativeModule
joyeecheung Dec 8, 2019
d502b83
build: auto-load ICU data from --with-icu-default-data-dir
sgallagher Dec 6, 2019
d06efaf
src: explicitly allocate backing stores for v8 stat buffers
addaleax Dec 13, 2019
d64c1dc
console: unregister temporary error listener
ronag Dec 8, 2019
9c460e1
lib: use strict equality comparison
PW486 Dec 11, 2019
e17403e
http,https: increase server headers timeout
timcosta Oct 22, 2019
fea1f1c
http: remove unnecessary bind
apapirovski Jun 7, 2019
4547574
perf_hooks: remove unnecessary bind
apapirovski Jun 7, 2019
d00d81e
fs: remove unnecessary bind
apapirovski Jun 7, 2019
af6c88c
http2: remove unnecessary bind from setImmediate
apapirovski Jun 7, 2019
2e738fb
cluster: remove unnecessary bind
apapirovski Jun 8, 2019
ccdd6ef
src: make debug_options getters public
codebytere Nov 15, 2019
6480882
stream: make all streams error in a pipeline
mcollina Dec 9, 2019
cb76f27
crypto: cast oaepLabel to unsigned char*
codebytere Dec 12, 2019
1ddcb6d
test: delay loading 'os' in test/common module
Trott Dec 12, 2019
917d896
test: make test-os-checked-function work without test harness
Trott Dec 12, 2019
31b8f44
test: improve assertion error message in test-debug-usage
Trott Dec 12, 2019
952b90c
lib: change var to let/const
Dec 12, 2019
8dea6dc
doc: fix description of N-API exception handlers
tniessen Dec 11, 2019
e13a37e
stream: ensure finish is emitted in next tick
ronag Nov 30, 2019
f8018f2
stream: do not chunk strings and Buffer in Readable.from
mcollina Dec 12, 2019
25447d8
src: unregister Isolate with platform before disposing
addaleax Dec 12, 2019
decc5f5
test: add test for validation for wasi.start() argument
Trott Dec 12, 2019
e902fad
stream: do not throw multiple callback errors in writable
ronag Nov 23, 2019
2097a6f
test: add missing test flags
cjihrig Dec 15, 2019
80fb153
tools: enable Markdown linter's usage information
DerekNonGeneric Nov 2, 2019
3ead1c2
build,win: fix goto exit in vcbuild
joaocgreis Dec 13, 2019
b2bfacb
test: avoid leftover report file
Flarna Dec 12, 2019
eeae598
util: refactor inspect code for constistency
BridgeAR Nov 2, 2019
ab59989
util: add Set and map size to inspect output
BridgeAR Nov 2, 2019
b428140
doc: clarify expectations for PR commit messages
DerekNonGeneric Dec 12, 2019
2d13896
test: improve dns lookup coverage
KeeReal Dec 3, 2019
67ed526
stream: error state cleanup
ronag Dec 8, 2019
7327f39
repl: remove dead code
BridgeAR Dec 10, 2019
37f6a42
repl: simplify repl autocompletion
BridgeAR Dec 10, 2019
1aab392
repl: simplify code
BridgeAR Dec 10, 2019
8f9cd38
readline: update ansi-regex
BridgeAR Dec 11, 2019
52e5eb7
repl,readline: refactor common code
BridgeAR Dec 11, 2019
af5c8af
repl,readline: refactor for simplicity
BridgeAR Dec 11, 2019
6c542d1
repl: improve completion
BridgeAR Dec 11, 2019
21ecaa4
repl: add completion preview
BridgeAR Dec 11, 2019
2986068
repl: fix preview bug in case of long lines
BridgeAR Dec 11, 2019
ba29e27
test: add multiple repl preview tests
BridgeAR Dec 13, 2019
3743fe1
doc: add "Be direct." to the style guide
Trott Dec 13, 2019
e9f2d7c
lib: add TypedArray constructors to primordials
Sebastien-Ahkrin Nov 30, 2019
c88ace4
v8: use of TypedArray constructors from primordials
Sebastien-Ahkrin Nov 30, 2019
7e5bf80
lib: enforce use of Promise from primordials
targos Dec 13, 2019
593240d
lib: replace Symbol.asyncIterator by SymbolAsyncIterator
Sebastien-Ahkrin Dec 13, 2019
48d986c
lib: replace Symbol.hasInstance by SymbolHasInstance
Sebastien-Ahkrin Dec 13, 2019
437b6d5
lib: replace Symbol.species by SymbolSpecies
Sebastien-Ahkrin Dec 13, 2019
81e3bca
process: fix promise catching
pd4d10 Dec 14, 2019
bfce726
benchmark: use let/const instead of var in buffers
dnlup Dec 13, 2019
0007524
doc: explain napi_run_script
tniessen Dec 9, 2019
a68729c
readline: promote _getCursorPos to public api
Js-Brecht Nov 27, 2019
024b658
process: refs --unhandled-rejections documentation in warning message
aduh95 Nov 20, 2019
d957541
stream: add Transform.by utility function
Jun 25, 2019
9005e46
docs: stream.Transform.by typo
Jul 1, 2019
944f228
stream: Transform.by SourceIterator next optimization
Jul 1, 2019
84c84c9
docs: Transform.by doc tweaks
davidmarkclements Jul 2, 2019
a1937c7
docs: sort type-parser types alphabetically within their groups
davidmarkclements Jul 2, 2019
ad35382
docs: sort type-parser types alphabetically within their groups
davidmarkclements Jul 2, 2019
8d82c5b
docs: typo
davidmarkclements Jul 2, 2019
7a1ef77
docs: Transform.by clarify as async iterable
davidmarkclements Jul 2, 2019
5707445
stream: Transform. by remove unnecessary defensive code
davidmarkclements Jul 2, 2019
970ed3d
stream: Transform.by code style
davidmarkclements Jul 2, 2019
6e67a85
stream: Transform.by minor refactoring
Jul 3, 2019
98aebc5
streams: Transform.by check fn return value instead of fn instance
Jul 5, 2019
eee19c5
docs: emphasize Transform.by objectMode default behaviour
Jul 7, 2019
26e96be
docs: Transform.by function naming convention
davidmarkclements Jul 7, 2019
185a6f4
docs: add transform content to streams <-> async generators compatibi…
Jul 7, 2019
8e73c51
docs: includemissing parens
Jul 7, 2019
b73347f
tests: preempt conflict with #28566
Jul 7, 2019
9789a5b
tests: fix transform async iterator test
Jul 12, 2019
bad0bfd
docs: add meta data to Transform.by
davidmarkclements Jul 15, 2019
f2c8b22
stream: error handling bug fix, ensure stream is destroyed after proc…
Jul 15, 2019
001fe01
Update doc/api/stream.md
davidmarkclements Aug 5, 2019
9545ee0
Update doc/api/stream.md
davidmarkclements Aug 5, 2019
f0fa8b6
Update doc/api/stream.md
davidmarkclements Aug 5, 2019
b504b15
Update doc/api/stream.md
davidmarkclements Aug 5, 2019
447a895
streams: Transform.by, rm unncessary check
Sep 9, 2019
2fe96e4
lint fixes
Dec 13, 2019
e6cef99
fixup: simplify
ronag Dec 16, 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
  •  
  •  
  •  
5 changes: 5 additions & 0 deletions .gitignore
Original file line number Diff line number Diff line change
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
10 changes: 4 additions & 6 deletions BUILDING.md
Original file line number Diff line number Diff line change
Expand Up @@ -84,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
2 changes: 1 addition & 1 deletion Makefile
Original file line number Diff line number Diff line change
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
Original file line number Diff line number Diff line change
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
Original file line number Diff line number Diff line change
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
Original file line number Diff line number Diff line change
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
Original file line number Diff line number Diff line change
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
Original file line number Diff line number Diff line change
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
Original file line number Diff line number Diff line change
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
Original file line number Diff line number Diff line change
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
Original file line number Diff line number Diff line change
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
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
23 changes: 21 additions & 2 deletions configure.py
Original file line number Diff line number Diff line change
Expand Up @@ -346,6 +346,11 @@
dest='trace_maps',
help='Enable the --trace-maps flag in V8 (use at your own risk)')

parser.add_option('--experimental-enable-pointer-compression',
action='store_true',
dest='enable_pointer_compression',
help='[Experimental] Enable V8 pointer compression (limits max heap to 4GB and breaks ABI compatibility)')

parser.add_option('--v8-options',
action='store',
dest='v8_options',
Expand Down Expand Up @@ -445,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 @@ -1117,14 +1130,17 @@ def configure_node(o):
o['variables']['node_shared'] = b(options.shared)
node_module_version = getmoduleversion.get_version()

if sys.platform == 'darwin':
if options.dest_os == 'android':
shlib_suffix = 'so'
elif sys.platform == 'darwin':
shlib_suffix = '%s.dylib'
elif sys.platform.startswith('aix'):
shlib_suffix = '%s.a'
else:
shlib_suffix = 'so.%s'
if '%s' in shlib_suffix:
shlib_suffix %= node_module_version

shlib_suffix %= node_module_version
o['variables']['node_module_version'] = int(node_module_version)
o['variables']['shlib_suffix'] = shlib_suffix

Expand Down Expand Up @@ -1192,6 +1208,8 @@ def configure_v8(o):
o['variables']['v8_random_seed'] = 0 # Use a random seed for hash tables.
o['variables']['v8_promise_internal_field_count'] = 1 # Add internal field to promises for async hooks.
o['variables']['v8_use_siphash'] = 0 if options.without_siphash else 1
o['variables']['v8_enable_pointer_compression'] = 1 if options.enable_pointer_compression else 0
o['variables']['v8_enable_31bit_smis_on_64bit_arch'] = 1 if options.enable_pointer_compression else 0
o['variables']['v8_trace_maps'] = 1 if options.trace_maps else 0
o['variables']['node_use_v8_platform'] = b(not options.without_v8_platform)
o['variables']['node_use_bundled_v8'] = b(not options.without_bundled_v8)
Expand Down Expand Up @@ -1384,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
5 changes: 5 additions & 0 deletions deps/npm/AUTHORS
Original file line number Diff line number Diff line change
Expand Up @@ -672,3 +672,8 @@ Amal Hussein <amal@npmjs.com>
Brett Zamir <brettz9@yahoo.com>
Menelaos Kotsollaris <mkotsollaris@users.noreply.github.com>
Mehdi Hasan Khan <mhasan@omicronlab.com>
Craig Loewen <crloewen@microsoft.com>
Fighting-Jack <574637316@qq.com>
Bakel, Roel van <roel.vanbakel@oce.com>
Charlie West-Toebe <38671683+Hoidberg@users.noreply.github.com>
Richard Lau <riclau@uk.ibm.com>
Loading