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

[v6.x backport] deps: ICU 60.2, 60.1, and 59.1 backports #18240

Closed
wants to merge 31 commits into from
Closed
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
31 commits
Select commit Hold shift + click to select a range
6014d66
crypto: add randomFill and randomFillSync
evanlucas Dec 9, 2016
631b441
doc: improve randomfill and fix broken link
thefourtheye Apr 20, 2017
4afecfc
lib: return this from net.Socket.end()
sam-github Jun 5, 2017
19955c6
net: return this from getConnections()
sam-github Jun 7, 2017
5c18651
repl: improve require() autocompletion
aqrln Jul 21, 2017
79a3e37
console: add console.count() and console.clear()
jasnell Apr 26, 2017
5c20548
dgram: added setMulticastInterface()
lostnet Jul 23, 2016
0912453
test: don't skip when common.mustCall() is pending
cjihrig Sep 14, 2017
d7ac63e
test: crypto createClass instanceof Class
bengl Aug 19, 2016
809858c
crypto: expose ECDH class
bengl Aug 19, 2016
542f13f
test: fix flaky test-crypto-classes.js
bengl Sep 28, 2017
23ad5cb
tools, build: refactor macOS installer
jpwesselink Sep 4, 2017
1558a90
deps: upgrade libuv to 1.16.1
cjihrig Nov 10, 2017
61728e7
src: add process.ppid
cjihrig Oct 30, 2017
dd2102d
src: add --use-bundled-ca --use-openssl-ca check
danbev Mar 28, 2017
c3d5fb3
src: guard bundled_ca/openssl_ca with HAVE_OPENSSL
danbev Apr 10, 2017
8e89616
src: fix incorrect macro comment
danbev Apr 27, 2017
3c4bb3c
crypto: remove BIO_set_shutdown
danbev Dec 7, 2017
ba2af51
src: clean up MaybeStackBuffer
TimothyGu Nov 28, 2017
df835c4
test: add common.hasIntl
jasnell Oct 23, 2016
5a13d1a
url: update IDNA handling
TimothyGu Jun 1, 2017
3639d0c
url: adding WHATWG URL support
jasnell Nov 28, 2017
3e7f0fc
promises: more robust stringification
TimothyGu Jun 19, 2017
f374d60
test: fix truncation of argv
danbev Mar 29, 2017
b8e561e
http: overridable keep-alive behavior of `Agent`
indutny Jan 15, 2018
a511b49
src: add openssl-system-ca-path configure option
danbev Nov 6, 2017
ae9af7a
module: add builtinModules
maclover7 Nov 24, 2017
9f571ef
deps: ICU 59.1 bump
srl295 Apr 13, 2017
a164c9a
deps: ICU 60 bump
srl295 Sep 21, 2017
c0aee51
deps: ICU 60.2 bump
srl295 Dec 14, 2017
f14a715
fixup: potential hack for null_ptr
MylesBorins Feb 2, 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: 1 addition & 2 deletions .gitignore
Original file line number Diff line number Diff line change
Expand Up @@ -68,11 +68,9 @@ ipch/
/config_fips.gypi
*-nodegyp*
/gyp-mac-tool
/dist-osx
/npm.wxs
/tools/msvs/npm.wixobj
/tools/msvs/genfiles/
/tools/osx-pkg.pmdoc/index.xml
/test/addons/??_*/
email.md
deps/v8-*
Expand Down Expand Up @@ -100,6 +98,7 @@ deps/npm/node_modules/.bin/

# build/release artifacts
/*.tar.*
/*.pkg
/SHASUMS*.txt*

# test artifacts
Expand Down
4 changes: 2 additions & 2 deletions LICENSE
Original file line number Diff line number Diff line change
Expand Up @@ -100,7 +100,7 @@ The externally maintained libraries used by Node.js are:
"""
COPYRIGHT AND PERMISSION NOTICE (ICU 58 and later)

Copyright © 1991-2016 Unicode, Inc. All rights reserved.
Copyright © 1991-2017 Unicode, Inc. All rights reserved.
Distributed under the Terms of Use in http://www.unicode.org/copyright.html

Permission is hereby granted, free of charge, to any person obtaining
Expand Down Expand Up @@ -231,7 +231,7 @@ The externally maintained libraries used by Node.js are:
# ---------COPYING.libtabe ---- BEGIN--------------------
#
# /*
# * Copyrighy (c) 1999 TaBE Project.
# * Copyright (c) 1999 TaBE Project.
# * Copyright (c) 1999 Pai-Hsiang Hsiao.
# * All rights reserved.
# *
Expand Down
57 changes: 43 additions & 14 deletions Makefile
Original file line number Diff line number Diff line change
Expand Up @@ -530,8 +530,7 @@ BINARYTAR=$(BINARYNAME).tar
XZ=$(shell which xz > /dev/null 2>&1; echo $$?)
XZ_COMPRESSION ?= 9e
PKG=$(TARNAME).pkg
PACKAGEMAKER ?= /Developer/Applications/Utilities/PackageMaker.app/Contents/MacOS/PackageMaker
PKGDIR=out/dist-osx
MACOSOUTDIR=out/macos

release-only:
@if [ "$(DISTTYPE)" != "nightly" ] && [ "$(DISTTYPE)" != "next-nightly" ] && \
Expand Down Expand Up @@ -561,24 +560,54 @@ release-only:
fi

$(PKG): release-only
$(RM) -r $(PKGDIR)
$(RM) -r out/deps out/Release
$(RM) -r $(MACOSOUTDIR)
mkdir -p $(MACOSOUTDIR)/installer/productbuild
cat tools/macos-installer/productbuild/distribution.xml.tmpl \
| sed -E "s/\\{nodeversion\\}/$(FULLVERSION)/g" \
| sed -E "s/\\{npmversion\\}/$(NPMVERSION)/g" \
>$(MACOSOUTDIR)/installer/productbuild/distribution.xml ; \

@for dirname in tools/macos-installer/productbuild/Resources/*/; do \
lang=$$(basename $$dirname) ; \
mkdir -p $(MACOSOUTDIR)/installer/productbuild/Resources/$$lang ; \
printf "Found localization directory $$dirname\n" ; \
cat $$dirname/welcome.html.tmpl \
| sed -E "s/\\{nodeversion\\}/$(FULLVERSION)/g" \
| sed -E "s/\\{npmversion\\}/$(NPMVERSION)/g" \
>$(MACOSOUTDIR)/installer/productbuild/Resources/$$lang/welcome.html ; \
cat $$dirname/conclusion.html.tmpl \
| sed -E "s/\\{nodeversion\\}/$(FULLVERSION)/g" \
| sed -E "s/\\{npmversion\\}/$(NPMVERSION)/g" \
>$(MACOSOUTDIR)/installer/productbuild/Resources/$$lang/conclusion.html ; \
done
$(PYTHON) ./configure \
--dest-cpu=x64 \
--tag=$(TAG) \
--release-urlbase=$(RELEASE_URLBASE) \
$(CONFIG_FLAGS) $(BUILD_RELEASE_FLAGS)
$(MAKE) install V=$(V) DESTDIR=$(PKGDIR)
SIGN="$(CODESIGN_CERT)" PKGDIR="$(PKGDIR)/usr/local" bash \
$(MAKE) install V=$(V) DESTDIR=$(MACOSOUTDIR)/dist/node
SIGN="$(CODESIGN_CERT)" PKGDIR="$(MACOSOUTDIR)/dist/node/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" \
> tools/osx-pkg.pmdoc/index.xml
$(PACKAGEMAKER) \
--id "org.nodejs.pkg" \
--doc tools/osx-pkg.pmdoc \
--out $(PKG)
mkdir -p $(MACOSOUTDIR)/dist/npm/usr/local/lib/node_modules
mkdir -p $(MACOSOUTDIR)/pkgs
mv $(MACOSOUTDIR)/dist/node/usr/local/lib/node_modules/npm \
$(MACOSOUTDIR)/dist/npm/usr/local/lib/node_modules
unlink $(MACOSOUTDIR)/dist/node/usr/local/bin/npm
unlink $(MACOSOUTDIR)/dist/node/usr/local/bin/npx
$(NODE) tools/license2rtf.js < LICENSE > \
$(MACOSOUTDIR)/installer/productbuild/Resources/license.rtf
cp doc/osx_installer_logo.png $(MACOSOUTDIR)/installer/productbuild/Resources
pkgbuild --version $(FULLVERSION) \
--identifier org.nodejs.node.pkg \
--root $(MACOSOUTDIR)/dist/node $(MACOSOUTDIR)/pkgs/node-$(FULLVERSION).pkg
pkgbuild --version $(NPMVERSION) \
--identifier org.nodejs.npm.pkg \
--root $(MACOSOUTDIR)/dist/npm \
--scripts ./tools/macos-installer/pkgbuild/npm/scripts \
$(MACOSOUTDIR)/pkgs/npm-$(NPMVERSION).pkg
productbuild --distribution $(MACOSOUTDIR)/installer/productbuild/distribution.xml \
--resources $(MACOSOUTDIR)/installer/productbuild/Resources \
--package-path $(MACOSOUTDIR)/pkgs ./$(PKG)
SIGN="$(PRODUCTSIGN_CERT)" PKG="$(PKG)" bash tools/osx-productsign.sh

pkg: $(PKG)
Expand Down
97 changes: 97 additions & 0 deletions benchmark/url/legacy-vs-whatwg-url-get-prop.js
Original file line number Diff line number Diff line change
@@ -0,0 +1,97 @@
'use strict';
const common = require('../common.js');
const url = require('url');
const URL = url.URL;
const assert = require('assert');
const inputs = require('../fixtures/url-inputs.js').urls;

const bench = common.createBenchmark(main, {
type: Object.keys(inputs),
method: ['legacy', 'whatwg'],
n: [1e5]
});

// At the time of writing, when using a passed property name to index
// the object, Crankshaft would generate a LoadKeyedGeneric even when it
// remains a constant in the function, so here we must use the literal
// instead to get a LoadNamedField.
function useLegacy(n, input) {
const obj = url.parse(input);
const noDead = {
protocol: obj.protocol,
auth: obj.auth,
host: obj.host,
hostname: obj.hostname,
port: obj.port,
pathname: obj.pathname,
search: obj.search,
hash: obj.hash
};
// It's necessary to assign the values to an object
// to avoid loop invariant code motion.
bench.start();
for (var i = 0; i < n; i += 1) {
noDead.protocol = obj.protocol;
noDead.auth = obj.auth;
noDead.host = obj.host;
noDead.hostname = obj.hostname;
noDead.port = obj.port;
noDead.pathname = obj.pathname;
noDead.search = obj.search;
noDead.hash = obj.hash;
}
bench.end(n);
return noDead;
}

function useWHATWG(n, input) {
const obj = new URL(input);
const noDead = {
protocol: obj.protocol,
auth: `${obj.username}:${obj.password}`,
host: obj.host,
hostname: obj.hostname,
port: obj.port,
pathname: obj.pathname,
search: obj.search,
hash: obj.hash
};
bench.start();
for (var i = 0; i < n; i += 1) {
noDead.protocol = obj.protocol;
noDead.auth = `${obj.username}:${obj.password}`;
noDead.host = obj.host;
noDead.hostname = obj.hostname;
noDead.port = obj.port;
noDead.pathname = obj.pathname;
noDead.search = obj.search;
noDead.hash = obj.hash;
}
bench.end(n);
return noDead;
}

function main(conf) {
const type = conf.type;
const n = conf.n | 0;
const method = conf.method;

const input = inputs[type];
if (!input) {
throw new Error('Unknown input type');
}

var noDead; // Avoid dead code elimination.
switch (method) {
case 'legacy':
noDead = useLegacy(n, input);
break;
case 'whatwg':
noDead = useWHATWG(n, input);
break;
default:
throw new Error('Unknown method');
}

assert.ok(noDead);
}
57 changes: 57 additions & 0 deletions benchmark/url/legacy-vs-whatwg-url-parse.js
Original file line number Diff line number Diff line change
@@ -0,0 +1,57 @@
'use strict';
const common = require('../common.js');
const url = require('url');
const URL = url.URL;
const assert = require('assert');
const inputs = require('../fixtures/url-inputs.js').urls;

const bench = common.createBenchmark(main, {
type: Object.keys(inputs),
method: ['legacy', 'whatwg'],
n: [1e5]
});

function useLegacy(n, input) {
var noDead = url.parse(input);
bench.start();
for (var i = 0; i < n; i += 1) {
noDead = url.parse(input);
}
bench.end(n);
return noDead;
}

function useWHATWG(n, input) {
var noDead = new URL(input);
bench.start();
for (var i = 0; i < n; i += 1) {
noDead = new URL(input);
}
bench.end(n);
return noDead;
}

function main(conf) {
const type = conf.type;
const n = conf.n | 0;
const method = conf.method;

const input = inputs[type];
if (!input) {
throw new Error('Unknown input type');
}

var noDead; // Avoid dead code elimination.
switch (method) {
case 'legacy':
noDead = useLegacy(n, input);
break;
case 'whatwg':
noDead = useWHATWG(n, input);
break;
default:
throw new Error('Unknown method');
}

assert.ok(noDead);
}
51 changes: 51 additions & 0 deletions benchmark/url/legacy-vs-whatwg-url-searchparams-parse.js
Original file line number Diff line number Diff line change
@@ -0,0 +1,51 @@
'use strict';
const common = require('../common.js');
const { URLSearchParams } = require('url');
const querystring = require('querystring');
const inputs = require('../fixtures/url-inputs.js').searchParams;

const bench = common.createBenchmark(main, {
type: Object.keys(inputs),
method: ['legacy', 'whatwg'],
n: [1e6]
});

function useLegacy(n, input) {
querystring.parse(input);
bench.start();
for (var i = 0; i < n; i += 1) {
querystring.parse(input);
}
bench.end(n);
}

function useWHATWG(n, input) {
new URLSearchParams(input);
bench.start();
for (var i = 0; i < n; i += 1) {
new URLSearchParams(input);
}
bench.end(n);
}

function main(conf) {
const type = conf.type;
const n = conf.n | 0;
const method = conf.method;

const input = inputs[type];
if (!input) {
throw new Error('Unknown input type');
}

switch (method) {
case 'legacy':
useLegacy(n, input);
break;
case 'whatwg':
useWHATWG(n, input);
break;
default:
throw new Error('Unknown method');
}
}
53 changes: 53 additions & 0 deletions benchmark/url/legacy-vs-whatwg-url-searchparams-serialize.js
Original file line number Diff line number Diff line change
@@ -0,0 +1,53 @@
'use strict';
const common = require('../common.js');
const { URLSearchParams } = require('url');
const querystring = require('querystring');
const inputs = require('../fixtures/url-inputs.js').searchParams;

const bench = common.createBenchmark(main, {
type: Object.keys(inputs),
method: ['legacy', 'whatwg'],
n: [1e6]
});

function useLegacy(n, input, prop) {
const obj = querystring.parse(input);
querystring.stringify(obj);
bench.start();
for (var i = 0; i < n; i += 1) {
querystring.stringify(obj);
}
bench.end(n);
}

function useWHATWG(n, input, prop) {
const obj = new URLSearchParams(input);
obj.toString();
bench.start();
for (var i = 0; i < n; i += 1) {
obj.toString();
}
bench.end(n);
}

function main(conf) {
const type = conf.type;
const n = conf.n | 0;
const method = conf.method;

const input = inputs[type];
if (!input) {
throw new Error('Unknown input type');
}

switch (method) {
case 'legacy':
useLegacy(n, input);
break;
case 'whatwg':
useWHATWG(n, input);
break;
default:
throw new Error('Unknown method');
}
}
Loading