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

v8.3.0 proposal #14452

Closed
wants to merge 64 commits into from
Closed
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
64 commits
Select commit Hold shift + click to select a range
32ba8ae
repl: fix old history error handling
BridgeAR Jun 17, 2017
b5d0a03
test: fix error handling test-http-full-response
Trott Jul 15, 2017
d2121ab
doc: fix minor typo in cluster.md
lance Jul 18, 2017
72febfd
test: replace concatenation with template literals
csvwolf Jul 16, 2017
53ad91c
doc,stream: _transform happens one at a time
mcollina Jul 17, 2017
34821f6
repl: don't terminate on null thrown
Jul 16, 2017
dc0a26f
doc: replace dead link in v8 module
drboyer Jul 19, 2017
3bc7d2a
test: replace string concat in test-fs-watchfile.js
Helianthus21 Jul 16, 2017
f6a0343
docs: add note about fs.rmdir()
Oleksandr-Kushchak-i2 Jul 17, 2017
def98c6
test: replace string concatenation with template
nathansmile Jul 18, 2017
5ab4471
build,tools: do not force codesign prefix
evanlucas Jul 12, 2017
0ebb4df
build: codesign tarball binary on macOS
evanlucas Jul 12, 2017
94c7331
test: replace string concatenation with path.join
jkzing Jul 16, 2017
c866c90
test: use path.join for long path concatenation
jankjn Jul 16, 2017
9b104b4
benchmark: add assert map and set benchmarks
BridgeAR Jul 18, 2017
956a473
test: move test-fs-largefile to pummel
Trott Jul 18, 2017
b12924d
doc: add XadillaX to collaborators
XadillaX Jul 20, 2017
4be373b
doc: fixes default shell in child_process.md
henryzxu Jul 12, 2017
0197ba0
test: add comments for whatwg-url tests
gautamarora Jul 19, 2017
f1b09c0
doc: fix typo in stream.md
Jul 19, 2017
3c92b78
test: use path.join in async-hooks/test-tlswrap.js
vincentcn Jul 17, 2017
e237720
test: replace string concatenation with template
Jul 16, 2017
e54f75b
readline: remove the caching variable
Jul 16, 2017
99104e1
test: improve fs.exists coverage
jkzing Jul 16, 2017
11ae8c3
test: delete obsolete test-sendfd.js
decareano Jul 17, 2017
9b22acc
test: fix flaky test-net-write-after-close
Trott Jul 19, 2017
592787e
doc: error message are still major
refack Jul 19, 2017
953736c
test: move timing-dependent tests to sequential
aqrln Jul 19, 2017
c0ea5d8
tools: always include llvm_version in config
nanaya Jul 5, 2017
ebb9090
tools: skip workaround for newer llvm
nanaya Jul 5, 2017
3414e42
test: replace concatenation with template literals
leizongmin Jul 16, 2017
83c8e5c
doc: describe labelling process for backports
addaleax Apr 15, 2017
265f159
test: replace concatenation with template literals
4garfield Jul 16, 2017
d9273ed
deps: cherry-pick 18ea996 from c-ares upstream
addaleax Jul 15, 2017
0418a70
test: add non-internet resolveAny tests
addaleax Jun 22, 2017
6c6da38
doc: fix some links
vsemozhetbyt Jul 20, 2017
552d2be
test: improve test-util-inspect
psmarshall Jun 30, 2017
28f0693
lib: include cached modules in module.children
bnoordhuis Jul 8, 2017
fa134dd
n-api: add fast paths for integer getters
addaleax Jul 20, 2017
272f494
deps: update V8 to 5.9.211.35
targos Jun 7, 2017
613c81e
deps: limit regress/regress-crbug-514081 v8 test
mhdawson May 9, 2016
fae03e6
deps: run memory hungry V8 test in exclusive mode
targos Jun 6, 2017
ad928c0
deps: add missing include to V8 i18n.cc
targos May 22, 2017
5fb7a0b
deps: fix addons compilation with VS2013
bzoz May 23, 2017
1906077
v8: fix stack overflow in recursive method
bnoordhuis Apr 17, 2017
0be4d17
v8: fix gcc 7 build errors
targos Jun 7, 2017
6204fad
deps: cherry-pick bfae9db from upstream v8
bnoordhuis Apr 28, 2017
4c4f647
deps: cherry-pick f5fad6d from upstream v8
danbev May 2, 2017
65956e6
deps: cherry-pick 6d38f89 from upstream V8
targos May 28, 2017
83636a4
deps: backport 4fdf9fd4813 from upstream v8
jeisinger Apr 21, 2017
1e93589
v8: do not test v8 with -Werror
addaleax May 6, 2017
da35ac3
v8: backport bd59e7452be from upstream v8
mi-ac May 24, 2017
e3c1119
v8: backport a9e56f4f36d from upstream v8
psmarshall May 25, 2017
61a1f9c
v8: backport 4f82f1d948c from upstream v8
hannespayer May 8, 2017
9c7af15
v8: backport 4f82f1d948c from upstream v8
hannespayer May 8, 2017
e3fcdef
v8: backport pieces from 18a26cfe174 from upstream v8
psmarshall May 26, 2017
8e96729
deps: cherry-pick a16c3c9 from upstream V8
jeremyroman Apr 27, 2017
06d419f
deps: cherry-pick 866ee63 from upstream V8
targos Jun 12, 2017
55a1231
v8: fix debug builds on Windows
bzoz Jun 12, 2017
da93046
deps: update V8 to 5.9.211.37
targos Jun 19, 2017
da1913c
deps: cherry-pick 3f4536894ac from V8 upstream
oliverchang May 5, 2017
89961ba
src: fix process.abort() interaction with V8
addaleax Jun 29, 2017
577b4f7
deps: cherry-pick 6cb999b97b from V8 upstream
isheludko Jul 5, 2017
d4c2406
2017-07-??, Version 8.3.0 (Current)
addaleax Jul 24, 2017
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 @@ -27,7 +27,8 @@ release.
</tr>
<tr>
<td valign="top">
<b><a href="doc/changelogs/CHANGELOG_V8.md#8.2.1">8.2.1</a></b><br/>
<b><a href="doc/changelogs/CHANGELOG_V8.md#8.3.0">8.3.0</a></b><br/>
<a href="doc/changelogs/CHANGELOG_V8.md#8.2.1">8.2.1</a><br/>
<a href="doc/changelogs/CHANGELOG_V8.md#8.2.0">8.2.0</a><br/>
<a href="doc/changelogs/CHANGELOG_V8.md#8.1.4">8.1.4</a><br/>
<a href="doc/changelogs/CHANGELOG_V8.md#8.1.3">8.1.3</a><br/>
Expand Down
6 changes: 5 additions & 1 deletion Makefile
Original file line number Diff line number Diff line change
Expand Up @@ -702,7 +702,8 @@ $(PKG): release-only
--release-urlbase=$(RELEASE_URLBASE) \
$(CONFIG_FLAGS) $(BUILD_RELEASE_FLAGS)
$(MAKE) install V=$(V) DESTDIR=$(PKGDIR)
SIGN="$(CODESIGN_CERT)" PKGDIR="$(PKGDIR)" bash tools/osx-codesign.sh
SIGN="$(CODESIGN_CERT)" PKGDIR="$(PKGDIR)/usr/local" bash \
tools/osx-codesign.sh
cat tools/osx-pkg.pmdoc/index.xml.tmpl \
| sed -E "s/\\{nodeversion\\}/$(FULLVERSION)/g" \
| sed -E "s/\\{npmversion\\}/$(NPMVERSION)/g" \
Expand Down Expand Up @@ -807,6 +808,9 @@ $(BINARYTAR): release-only
cp README.md $(BINARYNAME)
cp LICENSE $(BINARYNAME)
cp CHANGELOG.md $(BINARYNAME)
ifeq ($(OSTYPE),darwin)
SIGN="$(CODESIGN_CERT)" PKGDIR="$(BINARYNAME)" bash tools/osx-codesign.sh
endif
tar -cf $(BINARYNAME).tar $(BINARYNAME)
$(RM) -r $(BINARYNAME)
gzip -c -f -9 $(BINARYNAME).tar > $(BINARYNAME).tar.gz
Expand Down
2 changes: 2 additions & 0 deletions README.md
Original file line number Diff line number Diff line change
Expand Up @@ -448,6 +448,8 @@ more information about the governance of the Node.js project, see
**Daijiro Wachi** &lt;daijiro.wachi@gmail.com&gt; (he/him)
* [whitlockjc](https://github.com/whitlockjc) -
**Jeremy Whitlock** &lt;jwhitlock@apache.org&gt;
* [XadillaX](https://github.com/XadillaX) -
**Khaidi Chu** &lt;i@2333.moe&gt; (he/him)
* [yorkie](https://github.com/yorkie) -
**Yorkie Liu** &lt;yorkiefixer@gmail.com&gt;
* [yosuke-furukawa](https://github.com/yosuke-furukawa) -
Expand Down
123 changes: 123 additions & 0 deletions benchmark/assert/deepequal-map.js
Original file line number Diff line number Diff line change
@@ -0,0 +1,123 @@
'use strict';

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

const common = require('../common.js');
const assert = require('assert');

const bench = common.createBenchmark(main, {
n: [5e2],
len: [5e2],
method: [
'deepEqual_primitiveOnly',
'deepStrictEqual_primitiveOnly',
'deepEqual_objectOnly',
'deepStrictEqual_objectOnly',
'deepEqual_mixed',
'deepStrictEqual_mixed',
'deepEqual_looseMatches',
'notDeepEqual_primitiveOnly',
'notDeepStrictEqual_primitiveOnly',
'notDeepEqual_objectOnly',
'notDeepStrictEqual_objectOnly',
'notDeepEqual_mixed',
'notDeepStrictEqual_mixed',
'notDeepEqual_looseMatches',
]
});

function benchmark(method, n, values, values2) {
const actual = new Map(values);
// Prevent reference equal elements
const deepCopy = JSON.parse(JSON.stringify(values2 ? values2 : values));
const expected = new Map(deepCopy);
bench.start();
for (var i = 0; i < n; ++i) {
method(actual, expected);
}
bench.end(n);
}

function main(conf) {
const n = +conf.n;
const len = +conf.len;

const array = Array(len).fill(1);
var values, values2;

switch (conf.method) {
case 'deepEqual_primitiveOnly':
values = array.map((_, i) => [`str_${i}`, 123]);
benchmark(assert.deepEqual, n, values);
break;
case 'deepStrictEqual_primitiveOnly':
values = array.map((_, i) => [`str_${i}`, 123]);
benchmark(assert.deepStrictEqual, n, values);
break;
case 'deepEqual_objectOnly':
values = array.map((_, i) => [[`str_${i}`, 1], 123]);
benchmark(assert.deepEqual, n, values);
break;
case 'deepStrictEqual_objectOnly':
values = array.map((_, i) => [[`str_${i}`, 1], 123]);
benchmark(assert.deepStrictEqual, n, values);
break;
case 'deepEqual_mixed':
values = array.map((_, i) => [i % 2 ? [`str_${i}`, 1] : `str_${i}`, 123]);
benchmark(assert.deepEqual, n, values);
break;
case 'deepStrictEqual_mixed':
values = array.map((_, i) => [i % 2 ? [`str_${i}`, 1] : `str_${i}`, 123]);
benchmark(assert.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);
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);
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);
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);
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);
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);
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);
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);
break;
default:
throw new Error('Unsupported method');
}
}
132 changes: 132 additions & 0 deletions benchmark/assert/deepequal-set.js
Original file line number Diff line number Diff line change
@@ -0,0 +1,132 @@
'use strict';

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

const common = require('../common.js');
const assert = require('assert');

const bench = common.createBenchmark(main, {
n: [5e2],
len: [5e2],
method: [
'deepEqual_primitiveOnly',
'deepStrictEqual_primitiveOnly',
'deepEqual_objectOnly',
'deepStrictEqual_objectOnly',
'deepEqual_mixed',
'deepStrictEqual_mixed',
'deepEqual_looseMatches',
'notDeepEqual_primitiveOnly',
'notDeepStrictEqual_primitiveOnly',
'notDeepEqual_objectOnly',
'notDeepStrictEqual_objectOnly',
'notDeepEqual_mixed',
'notDeepStrictEqual_mixed',
'notDeepEqual_looseMatches',
]
});

function benchmark(method, n, values, values2) {
const actual = new Set(values);
// Prevent reference equal elements
const deepCopy = JSON.parse(JSON.stringify(values2 ? values2 : values));
const expected = new Set(deepCopy);
bench.start();
for (var i = 0; i < n; ++i) {
method(actual, expected);
}
bench.end(n);
}

function main(conf) {
const n = +conf.n;
const len = +conf.len;

const array = Array(len).fill(1);

var values, values2;

switch (conf.method) {
case 'deepEqual_primitiveOnly':
values = array.map((_, i) => `str_${i}`);
benchmark(assert.deepEqual, n, values);
break;
case 'deepStrictEqual_primitiveOnly':
values = array.map((_, i) => `str_${i}`);
benchmark(assert.deepStrictEqual, n, values);
break;
case 'deepEqual_objectOnly':
values = array.map((_, i) => [`str_${i}`, null]);
benchmark(assert.deepEqual, n, values);
break;
case 'deepStrictEqual_objectOnly':
values = array.map((_, i) => [`str_${i}`, null]);
benchmark(assert.deepStrictEqual, n, values);
break;
case 'deepEqual_mixed':
values = array.map((_, i) => {
return i % 2 ? [`str_${i}`, null] : `str_${i}`;
});
benchmark(assert.deepEqual, n, values);
break;
case 'deepStrictEqual_mixed':
values = array.map((_, i) => {
return i % 2 ? [`str_${i}`, null] : `str_${i}`;
});
benchmark(assert.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);
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);
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);
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);
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);
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);
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);
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);
break;
default:
throw new Error('Unsupported method');
}
}
12 changes: 9 additions & 3 deletions common.gypi
Original file line number Diff line number Diff line change
Expand Up @@ -407,9 +407,15 @@
'libraries': [ '-lelf' ],
}],
['OS=="freebsd"', {
# Use this flag because on FreeBSD std::pairs copy constructor is non-trivial
# https://lists.freebsd.org/pipermail/freebsd-toolchain/2016-March/002094.html
'cflags': [ '-D_LIBCPP_TRIVIAL_PAIR_COPY_CTOR=1' ],
'conditions': [
['llvm_version < "4.0"', {
# Use this flag because on FreeBSD std::pairs copy constructor is non-trivial.
# Doesn't apply to llvm 4.0 (FreeBSD 11.1) or later.
# Refs: https://lists.freebsd.org/pipermail/freebsd-toolchain/2016-March/002094.html
# Refs: https://svnweb.freebsd.org/ports/head/www/node/Makefile?revision=444555&view=markup
'cflags': [ '-D_LIBCPP_TRIVIAL_PAIR_COPY_CTOR=1' ],
}],
],
'ldflags': [
'-Wl,--export-dynamic',
],
Expand Down
6 changes: 4 additions & 2 deletions configure
Original file line number Diff line number Diff line change
Expand Up @@ -640,12 +640,14 @@ def check_compiler(o):
# to a version that is not completely ancient.
warn('C compiler too old, need gcc 4.2 or clang 3.2 (CC=%s)' % CC)

# Need llvm_version or gas_version when openssl asm files are compiled
if is_clang:
o['variables']['llvm_version'] = get_llvm_version(CC)

# Need xcode_version or gas_version when openssl asm files are compiled.
if options.without_ssl or options.openssl_no_asm or options.shared_openssl:
return

if is_clang:
o['variables']['llvm_version'] = get_llvm_version(CC)
if sys.platform == 'darwin':
o['variables']['xcode_version'] = get_xcode_version(CC)
else:
Expand Down
13 changes: 7 additions & 6 deletions deps/cares/src/ares_parse_naptr_reply.c
Original file line number Diff line number Diff line change
Expand Up @@ -110,18 +110,19 @@ ares_parse_naptr_reply (const unsigned char *abuf, int alen,
status = ARES_EBADRESP;
break;
}
/* RR must contain at least 7 bytes = 2 x int16 + 3 x name */
if (rr_len < 7)
{
status = ARES_EBADRESP;
break;
}

/* Check if we are really looking at a NAPTR record */
if (rr_class == C_IN && rr_type == T_NAPTR)
{
/* parse the NAPTR record itself */

/* RR must contain at least 7 bytes = 2 x int16 + 3 x name */
if (rr_len < 7)
{
status = ARES_EBADRESP;
break;
}

/* Allocate storage for this NAPTR answer appending it to the list */
naptr_curr = ares_malloc_data(ARES_DATATYPE_NAPTR_REPLY);
if (!naptr_curr)
Expand Down
Loading