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.15.3 proposal #26063

Merged
merged 209 commits into from
Mar 5, 2019
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
209 commits
Select commit Hold shift + click to select a range
f9fc1ea
src: use v8:: for consistency in util
ZYSzys Dec 13, 2018
fa12b24
deps: V8: backport 442977e
ofrobots Dec 27, 2018
67239ab
deps: cherry-pick d9fbfeb from upstream V8
alexkozy Sep 14, 2018
0d1500d
vm: add dynamic import support
devsnek Aug 17, 2018
46f5c32
src: re-sort the symbol macros
sam-github Nov 15, 2018
0a36fb2
test: cover tls multi-identity option mixtures
sam-github Nov 28, 2016
24d7071
test: add independent multi-alg crypto identities
sam-github Dec 20, 2016
3e31344
test: rename agent1-pfx.pem to agent1.pfx
sam-github Dec 22, 2016
9293b49
test: confirm tls server suite default is its own
sam-github Nov 28, 2016
30d04fc
n-api: handle reference delete before finalize
mhdawson Nov 16, 2018
b9204db
http: fix error check in `Execute()`
mscdex Feb 1, 2019
f9df38c
deps: V8: cherry-pick d0468de
Jan 30, 2019
21a9b1f
deps: V8: cherry-pick 3cc6919
Feb 1, 2019
a459450
src: elevate v8 namespaces of node_trace_events.cc
Jayasankar-m Nov 19, 2018
32d8622
doc: mark napi_add_finalizer experimental
mhdawson Nov 22, 2018
93ab4d2
test: replace callback with arrow functions
prodroy1 Nov 23, 2018
12ee805
doc: replace anonymous function with arrow function
yuriettys Nov 24, 2018
5babfcb
doc: use arrow function
sadnessOjisan Nov 24, 2018
5b0daaf
doc: replace anonymous function with arrow function
ka2jun8 Nov 24, 2018
50d0a99
doc: fix duplicate "this" and "the" on http2.md
kawanet Nov 24, 2018
5a85c98
test: fix the arguments order in `assert.strictEqual`
sota1235 Nov 24, 2018
98c0fac
test: fix http2-binding strictEqual order
dominikeinkemmer Nov 24, 2018
10f360c
http2: fix session[kSession] undefined issue
leeight Nov 21, 2018
3b0cc28
test: fix arguments order in assert.strictEqual
teppeis Nov 24, 2018
ef12744
src: elevate v8 namespaces for node_url.cc
Jayasankar-m Nov 23, 2018
b219131
test: fix assert.strictEqual
sakit0 Nov 24, 2018
f371321
test: cover path.basename when path and ext are the same
Nov 22, 2018
964f822
test: split out http2 from test-stream-pipeline
Trott Nov 24, 2018
748de6b
build: replace `-not` with `!` in `find`
Trott Nov 25, 2018
5d34cea
test: change anonymous function to arrow function
codegagan Nov 20, 2018
c779ca0
test: convert callback to arrow function
jamesgeorge007 Nov 23, 2018
de5d2c0
lib: fix nits in lib/internal/bootstrap/cache.js
vsemozhetbyt Nov 23, 2018
2a1e768
lib: simplify own keys retrieval
vsemozhetbyt Nov 23, 2018
5493261
tools: use print() function on both Python 2 and 3
Nov 19, 2018
96187c3
doc: revise handling-own-pull-requests text
Trott Nov 23, 2018
4c85197
doc: use arrow function for anonymous callbacks
Nov 24, 2018
6277a50
lib: change anonymous function to arrow function
taishikato Nov 24, 2018
e861bea
crypto: convert to arrow function
ota-meshi Nov 24, 2018
9e4a376
test: fix arguments order in `assert.strictEqual`
tottokotkd Nov 24, 2018
eccd8f6
lib: convert to arrow function
HisadaNaojiro Nov 24, 2018
64b1fa7
doc: clarify symlink resolution for __filename
Trott Nov 24, 2018
94e3560
lib: suppress crypto related env vars in help msg
danbev Nov 21, 2018
dfd3c58
src: simplify uptime and ppid return values
cjihrig Nov 22, 2018
7f60754
test: replace anonymous closure functions with arrow functions
tpanthera Nov 17, 2018
4dd89b3
tools,doc: fix version picker bug in html.js
Trott Nov 25, 2018
6799d3b
test: add test for socket.end callback
Ajido Nov 4, 2018
be7f1a8
doc: revise accepting-modifications in guide
Trott Nov 26, 2018
967363d
test: use arrow functions in callbacks
apoorvanand Nov 17, 2018
73cfbb0
test: fix argument order in assert.strictEqual
Nov 24, 2018
64c5f03
stream: use arrow function for callback
DoiChris Nov 24, 2018
23b289a
test: update strictEqual argument order
VeysonD Nov 24, 2018
664eed6
process: emit unhandled warning immediately
apapirovski Nov 24, 2018
b2dfddc
n-api,test: remove last argument in assert.strictEqual()
susantruong Nov 23, 2018
c58f6a9
test: fix arguments order in `assert.strictEqual`
na9amura Nov 24, 2018
db2358e
lib: convert to Arrow Function
Nov 24, 2018
5770c52
test: use arrow function
sagirk Nov 19, 2018
24701de
doc: add antsmartian to collaborators
antsmartian Nov 26, 2018
1b96d81
test: make test-uv-binding-constant JS engine neutral
Trott Nov 27, 2018
d902d7a
lib: convert to arrow function
horihiro Nov 24, 2018
b31faff
test: fix arguments order in assert.strictEqual
grimrose Nov 24, 2018
e7b8067
test: fix arguments order in `assert.strictEqual`
sota1235 Nov 24, 2018
54d847d
lib: rearm pre-existing signal event registrations
gireeshpunathil Nov 26, 2018
9a093c0
test: test and docs for detached fork process
nanomosfet Nov 20, 2018
6a80380
test: validate fs.rename() when NODE_TEST_DIR on separate mount
drewfish Nov 28, 2018
33304ab
lib: chenged anonymous function to arrow function
kojiGit55 Nov 24, 2018
403a99f
lib: change callbacks to arrow function
Naturalclar Nov 24, 2018
a06d19f
test: reach res._dump after abort ClientRequest
tadhgcreedon Nov 6, 2018
c01f040
lib: convert to arrow function in fs.js
Nov 24, 2018
1d94f3e
test: fix the arguments order in `assert.strictEqual`
rt33 Nov 24, 2018
9231b5f
test: fix the arguments order in assert.strictEqual
Nov 24, 2018
be1eea2
win, build: skip building cctest by default
bzoz Jun 19, 2018
6fe278d
build, tools, win: add .S files support to GYP
bzoz Nov 21, 2018
28aca77
test: mark test-vm-timeout-escape-nexttick flaky
gireeshpunathil Nov 29, 2018
eecb2a4
test: fix the arguments order in assert.strictEqual
pastak Nov 24, 2018
8e8035e
http2: add compat support for nested array headers
sebdeckers Nov 27, 2018
1cff573
stream: make async iterator .next() always resolve
mcollina Nov 27, 2018
cdaa2bb
test: use arrow syntax for anonymous callbacks
Shubhamurkade Nov 27, 2018
f6b3cf0
lib: move setupAllowedFlags() into per_thread.js
joyeecheung Nov 28, 2018
f3347b6
test: cover path empty string case
lakatostamas Nov 22, 2018
2911bd3
test: verify order of error in h2 server stream
MylesBorins Nov 27, 2018
a5d57e2
esm: refactor dynamic modules
MylesBorins Nov 22, 2018
f8c5820
lib: do not register DOMException in a module
joyeecheung Nov 28, 2018
ed0ced3
src: elevate v8 namespaces referenced
juanarbol Nov 26, 2018
36ace72
test: mark test_threadsafe_function/test as flaky
gireeshpunathil Nov 29, 2018
968de69
tools: check for git tag before promoting release
rvagg Nov 27, 2018
7ef612b
tools: only sign release if promotion successful
rvagg Nov 27, 2018
d6cd146
tools: don't use GH API for commit message checks
rvagg Nov 23, 2018
317d919
url: use SafeSet to filter known special protocols
mikesamuel Nov 28, 2018
9b55ee2
build: fix c++ code coverage on macOS
refack Nov 20, 2018
75e79fc
Revert "url: make the context non-enumerable"
TimothyGu Nov 13, 2018
9dde4ff
src: set HAS_USERNAME/PASSWORD more strictly
TimothyGu Nov 13, 2018
d2994c9
url: reuse existing context in href setter
TimothyGu Nov 13, 2018
f1ce130
url: simplify native URL object construction
TimothyGu Nov 20, 2018
0a9d2ca
test: minor refactoring of onticketkeycallback
danbev Nov 29, 2018
6b8e200
src: use arraysize instead of hardcode number
leeight Nov 19, 2018
074809b
doc: cookie is joined using '; '
Flarna Nov 30, 2018
850a1af
test: show stdout and stderr in test-cli-syntax when it fails
joyeecheung Nov 29, 2018
d56a5e8
http2: make compat writeHead not crash if the stream is destroyed
mcollina Nov 29, 2018
5844a06
build: add line break as soon tests are done
BridgeAR Nov 30, 2018
84353ac
build: fix line length off by one error
BridgeAR Nov 30, 2018
3acf761
crypto: harden bignum-to-binary conversions
bnoordhuis Nov 29, 2018
c0205e8
test: check invalid argument error for option
nanomosfet Nov 30, 2018
a5e9569
tools: fix eslint usage for Node.js 8 and before
BridgeAR Nov 30, 2018
aff496c
doc: make release README link be consistent with text
ZYSzys Dec 2, 2018
e7c29e0
doc: streamline Accepting Modifications in Collaborator Guide
Trott Dec 3, 2018
9a0924c
doc: fix added version of randomFill+randomFillSync
watson Dec 3, 2018
65bac1b
doc: hide undocumented object artifacts in async_hooks
gireeshpunathil Nov 30, 2018
1831cec
test: add flag scenario in test-fs-write-file-sync
gireeshpunathil Dec 1, 2018
51fdff6
test: use ES2017 syntax in test-fs-open-*
jy95 Sep 22, 2018
daaf3a4
doc: add a note on usage scope of AliasedBuffer
gireeshpunathil Nov 29, 2018
c5bf861
test: fix `common.mustNotCall()` usage in HTTP test
addaleax Nov 30, 2018
f4083ff
fs: simplify fs.promises warning logic
cjihrig Dec 2, 2018
fda55ac
dns: simplify dns.promises warning logic
cjihrig Dec 2, 2018
4adf986
doc: revise code review guidelines
Trott Dec 2, 2018
5b4a826
build: make tar.xz creation opt-out, fail if no xz
rvagg Nov 21, 2018
cc85b9c
doc: use author's titles for linked resources
Trott Dec 4, 2018
25b72c9
doc: add triaging section to releases.md
BethGriggs Apr 19, 2018
da55d16
test: add .gitignore file for node-api
Trott Dec 4, 2018
80c9282
test: remove unused addons-napi directory
Trott Dec 4, 2018
4e2b21b
build: fix check-xz for platforms defaulting to sh
rvagg Dec 4, 2018
d0a0bbd
doc: add authority and scheme psuedo headers
kenigbolo Dec 2, 2018
81d41b5
buffer: remove checkNumberType()
cjihrig Dec 3, 2018
1a25e54
doc: list all versions WHATWG URL api was added
watson Dec 5, 2018
9197b50
lib: remove some useless assignments
devsnek Sep 25, 2018
dc728b7
build: add '.git' to 'make lint-py' exclude list
Dec 3, 2018
6563627
tools: prepare tools/install.py for Python 3
Dec 3, 2018
6dc9cb3
tools: prepare tools/genv8constants.py for Python 3
Dec 3, 2018
752ef34
test: prepare test/message/testcfg.py for Python 3
Dec 3, 2018
c013a75
test: refactor test-fs-write-file-sync.js
cjihrig Dec 4, 2018
f78d5a3
process: simplify check in previousValueIsValid()
cjihrig Dec 4, 2018
b82315a
path: replace assertPath() with validator
cjihrig Dec 4, 2018
8728bc8
src: remove finalized_ member from Hash class
danbev Dec 4, 2018
28e9a16
doc: revise Waiting for Approvals documentation
Trott Dec 5, 2018
f3d17cf
tools: prepare tools/test.py for Python 3
Dec 3, 2018
49788bb
test: prepare test/pseudo-tty/testcfg.py for Python 3
Dec 2, 2018
6a72d52
tools: prepare tools/specialize_node_d.py for Python 3
Dec 3, 2018
0b7d271
tools: prepare tools/js2c.py for Python 3
Dec 3, 2018
ccb7066
src: fix warning for potential snprintf truncation
sam-github Dec 3, 2018
6c72572
src: do not alias new and old signal masks
sam-github Dec 3, 2018
56c02c5
doc: fix order of events when request is aborted
lpinca Dec 2, 2018
77e6cb0
test: improve test-net-socket-timeout
Trott Dec 5, 2018
6ec1871
test: fix wrong parameter
zhmushan Dec 5, 2018
258f95c
test: make http2 timeout test robust
Trott Dec 6, 2018
926b664
test: move http2 test to parallel
Trott Dec 6, 2018
fedb5d8
test: move test-cli-syntax to sequential
Trott Dec 8, 2018
478c191
doc: update http doc for new Agent()/support options in socket.connect()
BeniCheni Dec 5, 2018
89f071f
build: fix compiler version detection
richardlau Dec 6, 2018
6cede0c
module: use validateString in modules/cjs
ZYSzys Dec 6, 2018
9639158
doc: update "Testing and CI" in Collaborator Guide
Trott Dec 7, 2018
8aebeed
tools: do not lint tools/inspector_protocol or tools/markupsafe
Dec 7, 2018
ea87211
doc: simplify author ready
BridgeAR Dec 7, 2018
fb4ce8b
tools: update ESLint to 5.10.0
cjihrig Dec 8, 2018
4358812
tools: prepare tools/icu/icutrim.py for Python 3
Dec 7, 2018
f59c435
module: use validateString in modules/esm
ZYSzys Dec 6, 2018
52844fa
tools: prepare tools/testp.py for Python 3
Dec 7, 2018
ea50080
tools: prepare ./tools/compress_json.py for Python 3
Dec 7, 2018
a4623b4
test: prepare test/pseudo-tty/testcfg.py Python 3
Dec 7, 2018
f0df747
test: do not lint macros files (again)
Dec 7, 2018
eafe870
test: mark test-cli-syntax as flaky/unreliable
Trott Dec 11, 2018
05655ea
doc: remove bad link to irc info
richardlau Dec 11, 2018
e1e424a
doc: add class worker documentation
yoshimoto8 Dec 5, 2018
802d0a4
test: replace callback with arrows
Shubhamurkade Nov 27, 2018
2578492
src: remove use of CallOnForegroundThread()
cjihrig Dec 9, 2018
ff840f4
doc: update Useful CI Jobs section of Collaborator Guide
Trott Dec 9, 2018
a838116
stream: fix end-of-stream for HTTP/2
addaleax Dec 9, 2018
b458c9c
test: improve internet/test-dns
IlarionHalushka Dec 9, 2018
333b954
src: create env->inspector_console_api_object earlier
joyeecheung Dec 8, 2018
c9bfe43
worker: drain messages from internal message port
yaelhe Dec 10, 2018
9c8cc31
doc: fix author-ready conflict
BridgeAR Dec 13, 2018
f903686
test: from functools import reduce in test/testpy/__init__.py
Dec 11, 2018
96b57fe
doc: update a link of npm repository
watilde Dec 11, 2018
c580057
doc: revise internal vs. public API in Collaborator Guide
Trott Dec 11, 2018
196b021
test: refactor test-enable-in-init
Dec 12, 2018
fc1293d
doc: add codebytere's info to release team
codebytere Dec 13, 2018
dcb2242
src: add GetLoadedLibraries routine
gireeshpunathil Dec 4, 2018
38724f6
src: emit 'params' instead of 'data' for NodeTracing.dataCollected
kjin Dec 10, 2018
e75e1bc
process: properly close file descriptor on exit
BridgeAR Dec 11, 2018
15d3d3d
test: mark test-child-process-execsync flaky on AIX
Trott Dec 14, 2018
d9b47a5
lib: ensure readable stream flows to end
Rantanen Dec 9, 2018
3aff725
url: remove an eslint-disable comment
cjihrig Dec 12, 2018
241986d
test: mark test-worker-memory flaky on Windows CI
Trott Dec 14, 2018
0da70ee
test: mark test-child-process-exit-code flaky
Trott Dec 14, 2018
67409ce
test: mark test-child-process-execfile flaky
Trott Dec 14, 2018
1348cd5
test: adding history regression test case
antsmartian Dec 13, 2018
af89f1a
test: use blocks instead of async IIFE
addaleax Dec 12, 2018
56175a9
stream: re-use existing `once()` implementation
addaleax Dec 12, 2018
4aa0d10
build: make lint-addon-docs run only if needed
danbev Dec 12, 2018
b1d7a2f
test: remove dead code
BridgeAR Dec 13, 2018
cc7727e
test: run eslint on test file and fix errors
BridgeAR Dec 13, 2018
5ff8aeb
test: use global.gc() instead of gc()
cjihrig Dec 13, 2018
ea548d5
test: remove unnecessary linter comment
cjihrig Dec 13, 2018
cd722e2
net: use strict comparisons for fd
cjihrig Dec 13, 2018
45e12a2
doc: make README formatting more consistent
yewenjunfighting Dec 13, 2018
f38469e
doc: add EventTarget link to worker_threads
Azard Dec 15, 2018
2d54629
doc: fix node.1 --http-parser sort order
cjihrig Dec 14, 2018
7f48299
perf_hooks: make GC tracking state per-Environment
addaleax Dec 14, 2018
5f2acc0
vm: simplify Script constructor options validation
cjihrig Dec 15, 2018
5c3a739
tools: enable no-useless-constructor lint rule
cjihrig Dec 15, 2018
d3c4cab
test: merge test with unnecessary child process
sam-github Dec 13, 2018
161dca7
tls: re-define max supported version as 1.2
sam-github Nov 28, 2018
801fb66
doc: revise "Breaking Changes" section of Collaborator Guide
Trott Dec 16, 2018
ef07faa
tools: make apilinks building more robust
joyeecheung Dec 13, 2018
078a2ba
test: test internal/util/types in vm
ZYSzys Dec 15, 2018
4bc212d
doc: document fs.write limitation with TTY
mcollina Nov 22, 2018
3d6266a
process: fix omitting `--` from `process.execArgv`
addaleax Nov 26, 2018
9da4af7
assert: fix loose deepEqual map comparison
BridgeAR Nov 30, 2018
30aa8b2
assert,util: fix sparse array comparison
BridgeAR Nov 30, 2018
156e4c8
build: set `-blibpath:` for AIX
richardlau Jan 11, 2019
1a96d83
2019-03-05, Version 10.15.3 'Dubnium' (LTS)
BethGriggs Feb 12, 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
  •  
  •  
  •  
2 changes: 0 additions & 2 deletions .eslintignore
Original file line number Diff line number Diff line change
@@ -1,9 +1,7 @@
node_modules
lib/internal/v8.js
lib/internal/v8_prof_polyfill.js
lib/punycode.js
test/addons/??_*
test/es-module/test-esm-dynamic-import.js
test/fixtures
test/message/esm_display_syntax_error.mjs
tools/icu
Expand Down
6 changes: 5 additions & 1 deletion .eslintrc.js
Original file line number Diff line number Diff line change
Expand Up @@ -17,7 +17,10 @@ Module._findPath = (request, paths, isMain) => {
if (!r && hacks.includes(request)) {
try {
return require.resolve(`./tools/node_modules/${request}`);
} catch {
// Keep the variable in place to ensure that ESLint started by older Node.js
// versions work as expected.
// eslint-disable-next-line no-unused-vars
} catch (e) {
return require.resolve(
`./tools/node_modules/eslint/node_modules/${request}`);
}
Expand Down Expand Up @@ -220,6 +223,7 @@ module.exports = {
}],
'no-useless-call': 'error',
'no-useless-concat': 'error',
'no-useless-constructor': 'error',
'no-useless-escape': 'error',
'no-useless-return': 'error',
'no-void': 'error',
Expand Down
3 changes: 2 additions & 1 deletion CHANGELOG.md
Original file line number Diff line number Diff line change
Expand Up @@ -26,7 +26,8 @@ release.
</tr>
<tr>
<td valign="top">
<b><a href="doc/changelogs/CHANGELOG_V10.md#10.15.2">10.15.2</a></b><br/>
<b><a href="doc/changelogs/CHANGELOG_V10.md#10.15.3">10.15.3</a></b><br/>
<a href="doc/changelogs/CHANGELOG_V10.md#10.15.2">10.15.2</a><br/>
<a href="doc/changelogs/CHANGELOG_V10.md#10.15.1">10.15.1</a><br/>
<a href="doc/changelogs/CHANGELOG_V10.md#10.15.0">10.15.0</a><br/>
<a href="doc/changelogs/CHANGELOG_V10.md#10.14.2">10.14.2</a><br/>
Expand Down
221 changes: 88 additions & 133 deletions COLLABORATOR_GUIDE.md

Large diffs are not rendered by default.

17 changes: 17 additions & 0 deletions CPP_STYLE_GUIDE.md
Original file line number Diff line number Diff line change
Expand Up @@ -21,6 +21,7 @@
* [Use explicit pointer comparisons](#use-explicit-pointer-comparisons)
* [Ownership and Smart Pointers](#ownership-and-smart-pointers)
* [Avoid non-const references](#avoid-non-const-references)
* [Use AliasedBuffers to manipulate TypedArrays](#use-aliasedbuffers-to-manipulate-typedarrays)
* [Others](#others)
* [Type casting](#type-casting)
* [Using `auto`](#using-auto)
Expand Down Expand Up @@ -257,6 +258,21 @@ class ExampleClass {
};
```

### Use AliasedBuffers to manipulate TypedArrays

When working with typed arrays that involve direct data modification
from C++, use an `AliasedBuffer` when possible. The API abstraction and
the usage scope of `AliasedBuffer` are documented in [aliased_buffer.h][].

```c++
// Create an AliasedBuffer.
AliasedBuffer<uint32_t, v8::Uint32Array> data;
...

// Modify the data through natural operator semantics.
data[0] = 12345;
```

## Others

### Type casting
Expand Down Expand Up @@ -382,3 +398,4 @@ even `try` and `catch` **will** break.
[Run Time Type Information]: https://en.wikipedia.org/wiki/Run-time_type_information
[cppref_auto_ptr]: https://en.cppreference.com/w/cpp/memory/auto_ptr
[without C++ exception handling]: https://gcc.gnu.org/onlinedocs/libstdc++/manual/using_exceptions.html#intro.using.exception.no
[aliased_buffer.h]: https://github.com/nodejs/node/blob/master/src/aliased_buffer.h#L12
52 changes: 36 additions & 16 deletions Makefile
Original file line number Diff line number Diff line change
Expand Up @@ -647,16 +647,16 @@ out/doc/api/assets/%: doc/api_assets/% out/doc/api/assets

run-npm-ci = $(PWD)/$(NPM) ci

LINK_DATA = out/doc/apilinks.json
gen-api = tools/doc/generate.js --node-version=$(FULLVERSION) \
--apilinks=out/apilinks.json $< --output-directory=out/doc/api
gen-apilink = tools/doc/apilinks.js $(wildcard lib/*.js) > $@
--apilinks=$(LINK_DATA) $< --output-directory=out/doc/api
gen-apilink = tools/doc/apilinks.js $(LINK_DATA) $(wildcard lib/*.js)

out/apilinks.json: $(wildcard lib/*.js) tools/doc/apilinks.js
$(LINK_DATA): $(wildcard lib/*.js) tools/doc/apilinks.js
$(call available-node, $(gen-apilink))

out/doc/api/%.json out/doc/api/%.html: doc/api/%.md tools/doc/generate.js \
tools/doc/html.js tools/doc/json.js tools/doc/apilinks.js | \
out/apilinks.json
tools/doc/html.js tools/doc/json.js tools/doc/apilinks.js | $(LINK_DATA)
$(call available-node, $(gen-api))

out/doc/api/all.html: $(apidocs_html) tools/doc/allhtml.js \
Expand Down Expand Up @@ -806,13 +806,29 @@ BINARYNAME=$(TARNAME)-$(PLATFORM)-$(ARCH)
endif
BINARYTAR=$(BINARYNAME).tar
# OSX doesn't have xz installed by default, http://macpkg.sourceforge.net/
XZ=$(shell which xz > /dev/null 2>&1; echo $$?)
HAS_XZ ?= $(shell which xz > /dev/null 2>&1; [ $$? -eq 0 ] && echo 1 || echo 0)
# Supply SKIP_XZ=1 to explicitly skip .tar.xz creation
SKIP_XZ ?= 0
XZ = $(shell [ $(HAS_XZ) -eq 1 -a $(SKIP_XZ) -eq 0 ] && echo 1 || echo 0)
XZ_COMPRESSION ?= 9e
PKG=$(TARNAME).pkg
MACOSOUTDIR=out/macos

ifeq ($(SKIP_XZ), 1)
check-xz:
@echo "SKIP_XZ=1 supplied, skipping .tar.xz creation"
else
ifeq ($(HAS_XZ), 1)
check-xz:
else
check-xz:
@echo "No xz command, cannot continue"
@exit 1
endif
endif

.PHONY: release-only
release-only:
release-only: check-xz
@if [ "$(DISTTYPE)" = "release" ] && `grep -q REPLACEME doc/api/*.md`; then \
echo 'Please update REPLACEME in Added: tags in doc/api/*.md (See doc/releases.md)' ; \
exit 1 ; \
Expand Down Expand Up @@ -938,7 +954,7 @@ $(TARBALL): release-only $(NODE_EXE) doc
tar -cf $(TARNAME).tar $(TARNAME)
$(RM) -r $(TARNAME)
gzip -c -f -9 $(TARNAME).tar > $(TARNAME).tar.gz
ifeq ($(XZ), 0)
ifeq ($(XZ), 1)
xz -c -f -$(XZ_COMPRESSION) $(TARNAME).tar > $(TARNAME).tar.xz
endif
$(RM) $(TARNAME).tar
Expand All @@ -952,7 +968,7 @@ tar-upload: tar
chmod 664 $(TARNAME).tar.gz
scp -p $(TARNAME).tar.gz $(STAGINGSERVER):nodejs/$(DISTTYPEDIR)/$(FULLVERSION)/$(TARNAME).tar.gz
ssh $(STAGINGSERVER) "touch nodejs/$(DISTTYPEDIR)/$(FULLVERSION)/$(TARNAME).tar.gz.done"
ifeq ($(XZ), 0)
ifeq ($(XZ), 1)
chmod 664 $(TARNAME).tar.xz
scp -p $(TARNAME).tar.xz $(STAGINGSERVER):nodejs/$(DISTTYPEDIR)/$(FULLVERSION)/$(TARNAME).tar.xz
ssh $(STAGINGSERVER) "touch nodejs/$(DISTTYPEDIR)/$(FULLVERSION)/$(TARNAME).tar.xz.done"
Expand All @@ -978,7 +994,7 @@ $(TARBALL)-headers: release-only
tar -cf $(TARNAME)-headers.tar $(TARNAME)
$(RM) -r $(TARNAME)
gzip -c -f -9 $(TARNAME)-headers.tar > $(TARNAME)-headers.tar.gz
ifeq ($(XZ), 0)
ifeq ($(XZ), 1)
xz -c -f -$(XZ_COMPRESSION) $(TARNAME)-headers.tar > $(TARNAME)-headers.tar.xz
endif
$(RM) $(TARNAME)-headers.tar
Expand All @@ -990,7 +1006,7 @@ tar-headers-upload: tar-headers
chmod 664 $(TARNAME)-headers.tar.gz
scp -p $(TARNAME)-headers.tar.gz $(STAGINGSERVER):nodejs/$(DISTTYPEDIR)/$(FULLVERSION)/$(TARNAME)-headers.tar.gz
ssh $(STAGINGSERVER) "touch nodejs/$(DISTTYPEDIR)/$(FULLVERSION)/$(TARNAME)-headers.tar.gz.done"
ifeq ($(XZ), 0)
ifeq ($(XZ), 1)
chmod 664 $(TARNAME)-headers.tar.xz
scp -p $(TARNAME)-headers.tar.xz $(STAGINGSERVER):nodejs/$(DISTTYPEDIR)/$(FULLVERSION)/$(TARNAME)-headers.tar.xz
ssh $(STAGINGSERVER) "touch nodejs/$(DISTTYPEDIR)/$(FULLVERSION)/$(TARNAME)-headers.tar.xz.done"
Expand All @@ -1015,7 +1031,7 @@ endif
tar -cf $(BINARYNAME).tar $(BINARYNAME)
$(RM) -r $(BINARYNAME)
gzip -c -f -9 $(BINARYNAME).tar > $(BINARYNAME).tar.gz
ifeq ($(XZ), 0)
ifeq ($(XZ), 1)
xz -c -f -$(XZ_COMPRESSION) $(BINARYNAME).tar > $(BINARYNAME).tar.xz
endif
$(RM) $(BINARYNAME).tar
Expand All @@ -1030,7 +1046,7 @@ binary-upload: binary
chmod 664 $(TARNAME)-$(OSTYPE)-$(ARCH).tar.gz
scp -p $(TARNAME)-$(OSTYPE)-$(ARCH).tar.gz $(STAGINGSERVER):nodejs/$(DISTTYPEDIR)/$(FULLVERSION)/$(TARNAME)-$(OSTYPE)-$(ARCH).tar.gz
ssh $(STAGINGSERVER) "touch nodejs/$(DISTTYPEDIR)/$(FULLVERSION)/$(TARNAME)-$(OSTYPE)-$(ARCH).tar.gz.done"
ifeq ($(XZ), 0)
ifeq ($(XZ), 1)
chmod 664 $(TARNAME)-$(OSTYPE)-$(ARCH).tar.xz
scp -p $(TARNAME)-$(OSTYPE)-$(ARCH).tar.xz $(STAGINGSERVER):nodejs/$(DISTTYPEDIR)/$(FULLVERSION)/$(TARNAME)-$(OSTYPE)-$(ARCH).tar.xz
ssh $(STAGINGSERVER) "touch nodejs/$(DISTTYPEDIR)/$(FULLVERSION)/$(TARNAME)-$(OSTYPE)-$(ARCH).tar.xz.done"
Expand Down Expand Up @@ -1079,7 +1095,7 @@ tools/.docmdlintstamp: $(LINT_MD_DOC_FILES)
LINT_MD_TARGETS = src lib benchmark test tools/doc tools/icu
LINT_MD_ROOT_DOCS := $(wildcard *.md)
LINT_MD_MISC_FILES := $(shell find $(LINT_MD_TARGETS) -type f \
-not -path '*node_modules*' -not -path 'test/fixtures/*' -name '*.md') \
! -path '*node_modules*' ! -path 'test/fixtures/*' -name '*.md') \
$(LINT_MD_ROOT_DOCS)
run-lint-misc-md = tools/lint-md.js -q -f $(LINT_MD_MISC_FILES)
# Lint other changed markdown files maintained by us
Expand Down Expand Up @@ -1200,10 +1216,14 @@ tools/.cpplintstamp: $(LINT_CPP_FILES)
@$(PYTHON) tools/check-imports.py
@touch $@

lint-addon-docs: test/addons/.docbuildstamp
.PHONY: lint-addon-docs
lint-addon-docs: tools/.doclintstamp

tools/.doclintstamp: test/addons/.docbuildstamp
@echo "Running C++ linter on addon docs..."
@$(PYTHON) tools/cpplint.py $(CPPLINT_QUIET) --filter=$(ADDON_DOC_LINT_FLAGS) \
$(LINT_CPP_ADDON_DOC_FILES_GLOB)
@touch $@

cpplint: lint-cpp
@echo "Please use lint-cpp instead of cpplint"
Expand All @@ -1223,7 +1243,7 @@ ifneq ("","$(wildcard tools/pip/site-packages)")
lint-py:
PYTHONPATH=tools/pip $(PYTHON) -m flake8 . \
--count --show-source --statistics --select=E901,E999,F821,F822,F823 \
--exclude=deps,lib,src,tools/*_macros.py,tools/gyp,tools/jinja2,tools/pip
--exclude=.git,deps,lib,src,tools/*_macros.py,tools/gyp,tools/inspector_protocol,tools/jinja2,tools/markupsafe,tools/pip
else
lint-py:
@echo "Python linting with flake8 is not avalible"
Expand Down
14 changes: 9 additions & 5 deletions README.md
Original file line number Diff line number Diff line change
Expand Up @@ -50,11 +50,10 @@ If you didn't find an answer in the resources above, try these unofficial
resources:

* [Questions tagged 'node.js' on StackOverflow][]
* [#node.js channel on chat.freenode.net][]. See <http://nodeirc.info/> for more
information.
* [#node.js channel on chat.freenode.net][]
* [Node.js Discord Community](https://discordapp.com/invite/v7rrPdE)
* [Node.js Slack Community](https://node-js.slack.com/): Visit
[nodeslackers.com](http://www.nodeslackers.com/) to register.
* [Node.js Slack Community](https://node-js.slack.com/)
* To register: [nodeslackers.com](http://www.nodeslackers.com/)

GitHub issues are for tracking enhancements and bugs, not general support.

Expand Down Expand Up @@ -83,7 +82,7 @@ your expectations.
Current and LTS releases follow [Semantic Versioning](https://semver.org). A
member of the Release Team [signs](#release-keys) each Current and LTS release.
For more information, see the
[Release README](https://github.com/nodejs/Release).
[Release README](https://github.com/nodejs/Release#readme).

### Download

Expand Down Expand Up @@ -249,6 +248,8 @@ For information about the governance of the Node.js project, see
**Andreas Madsen** &lt;amwebdk@gmail.com&gt; (he/him)
* [AnnaMag](https://github.com/AnnaMag) -
**Anna M. Kedzierska** &lt;anna.m.kedzierska@gmail.com&gt;
* [antsmartian](https://github.com/antsmartian) -
**Anto Aravinth** &lt;anto.aravinth.cse@gmail.com&gt; (he/him)
* [apapirovski](https://github.com/apapirovski) -
**Anatoli Papirovski** &lt;apapirovski@mac.com&gt; (he/him)
* [aqrln](https://github.com/aqrln) -
Expand Down Expand Up @@ -550,11 +551,14 @@ GPG keys used to sign Node.js releases:
`DD8F2338BAE7501E3DD5AC78C273792F7D83545D`
* **Ruben Bridgewater** &lt;ruben@bridgewater.de&gt;
`A48C2BEE680E841632CD4E44F07496B3EB3C1762`
* **Shelley Vohr** &lt;shelley.vohr@gmail.com&gt;
`B9E2F5981AA6E0CD28160D9FF13993A75599653C`

To import the full set of trusted release keys:

```shell
gpg --keyserver pool.sks-keyservers.net --recv-keys 4ED778F539E3634C779C87C6D7062848A1AB005C
gpg --keyserver pool.sks-keyservers.net --recv-keys B9E2F5981AA6E0CD28160D9FF13993A75599653C
gpg --keyserver pool.sks-keyservers.net --recv-keys 94AE36675C464D64BAFA68DD7434390BDBE9B9C5
gpg --keyserver pool.sks-keyservers.net --recv-keys B9AE9905FFD7803F25714661B63B535A4C206CA9
gpg --keyserver pool.sks-keyservers.net --recv-keys 77984A986EBC2AA786BC0F66B01FBB92821C587A
Expand Down
24 changes: 21 additions & 3 deletions common.gypi
Original file line number Diff line number Diff line change
Expand Up @@ -33,7 +33,7 @@

# Reset this number to 0 on major V8 upgrades.
# Increment by one for each non-official patch applied to deps/v8.
'v8_embedder_string': '-node.12',
'v8_embedder_string': '-node.51',

# Enable disassembler for `--print-code` v8 options
'v8_enable_disassembler': 1,
Expand Down Expand Up @@ -117,6 +117,17 @@
'cflags': [ '-gxcoff' ],
'ldflags': [ '-Wl,-bbigtoc' ],
'conditions': [
['target_arch=="ppc64"', {
'ldflags': [
'-Wl,-blibpath:/usr/lib:/lib:'
'/opt/freeware/lib/pthread/ppc64'
],
}],
['target_arch=="ppc"', {
'ldflags': [
'-Wl,-blibpath:/usr/lib:/lib:/opt/freeware/lib/pthread'
],
}],
['"<(real_os_name)"=="OS400"', {
'ldflags': [
'-Wl,-blibpath:/QOpenSys/pkgs/lib:/QOpenSys/usr/lib',
Expand Down Expand Up @@ -421,11 +432,18 @@
'variables': {'real_os_name': '<!(uname -s)',},
'conditions': [
[ 'target_arch=="ppc"', {
'ldflags': [ '-Wl,-bmaxdata:0x60000000/dsa' ],
'ldflags': [
'-Wl,-bmaxdata:0x60000000/dsa',
'-Wl,-blibpath:/usr/lib:/lib:/opt/freeware/lib/pthread',
],
}],
[ 'target_arch=="ppc64"', {
'cflags': [ '-maix64' ],
'ldflags': [ '-maix64' ],
'ldflags': [
'-maix64',
'-Wl,-blibpath:/usr/lib:/lib:'
'/opt/freeware/lib/pthread/ppc64',
],
}],
['"<(real_os_name)"=="OS400"', {
'ldflags': [
Expand Down
9 changes: 5 additions & 4 deletions configure.py
Original file line number Diff line number Diff line change
Expand Up @@ -654,8 +654,8 @@ def try_check_compiler(cc, lang):

values = (proc.communicate()[0].split() + ['0'] * 7)[0:7]
is_clang = values[0] == '1'
gcc_version = tuple(values[1:1+3])
clang_version = tuple(values[4:4+3])
gcc_version = tuple(map(int, values[1:1+3]))
clang_version = tuple(map(int, values[4:4+3])) if is_clang else None

return (True, is_clang, clang_version, gcc_version)

Expand Down Expand Up @@ -752,6 +752,8 @@ def check_compiler(o):
ok, is_clang, clang_version, gcc_version = try_check_compiler(CXX, 'c++')
if not ok:
warn('failed to autodetect C++ compiler version (CXX=%s)' % CXX)
elif sys.platform.startswith('aix') and gcc_version < (6, 3, 0):
warn('C++ compiler too old, need g++ 6.3.0 (CXX=%s)' % CXX)
elif clang_version < (3, 4, 2) if is_clang else gcc_version < (4, 9, 4):
warn('C++ compiler too old, need g++ 4.9.4 or clang++ 3.4.2 (CXX=%s)' % CXX)

Expand Down Expand Up @@ -920,8 +922,7 @@ def gcc_version_ge(version_checked):
for compiler in [(CC, 'c'), (CXX, 'c++')]:
ok, is_clang, clang_version, compiler_version = \
try_check_compiler(compiler[0], compiler[1])
compiler_version_num = tuple(map(int, compiler_version))
if is_clang or compiler_version_num < version_checked:
if is_clang or compiler_version < version_checked:
return False
return True

Expand Down
41 changes: 41 additions & 0 deletions deps/v8/src/api.cc
Original file line number Diff line number Diff line change
Expand Up @@ -10001,6 +10001,47 @@ debug::TypeProfile::ScriptData debug::TypeProfile::GetScriptData(
return ScriptData(i, type_profile_);
}

v8::MaybeLocal<v8::Value> debug::WeakMap::Get(v8::Local<v8::Context> context,
v8::Local<v8::Value> key) {
PREPARE_FOR_EXECUTION(context, WeakMap, Get, Value);
auto self = Utils::OpenHandle(this);
Local<Value> result;
i::Handle<i::Object> argv[] = {Utils::OpenHandle(*key)};
has_pending_exception =
!ToLocal<Value>(i::Execution::Call(isolate, isolate->weakmap_get(), self,
arraysize(argv), argv),
&result);
RETURN_ON_FAILED_EXECUTION(Value);
RETURN_ESCAPED(result);
}

v8::MaybeLocal<debug::WeakMap> debug::WeakMap::Set(
v8::Local<v8::Context> context, v8::Local<v8::Value> key,
v8::Local<v8::Value> value) {
PREPARE_FOR_EXECUTION(context, WeakMap, Set, WeakMap);
auto self = Utils::OpenHandle(this);
i::Handle<i::Object> result;
i::Handle<i::Object> argv[] = {Utils::OpenHandle(*key),
Utils::OpenHandle(*value)};
has_pending_exception = !i::Execution::Call(isolate, isolate->weakmap_set(),
self, arraysize(argv), argv)
.ToHandle(&result);
RETURN_ON_FAILED_EXECUTION(WeakMap);
RETURN_ESCAPED(Local<WeakMap>::Cast(Utils::ToLocal(result)));
}

Local<debug::WeakMap> debug::WeakMap::New(v8::Isolate* isolate) {
i::Isolate* i_isolate = reinterpret_cast<i::Isolate*>(isolate);
LOG_API(i_isolate, WeakMap, New);
ENTER_V8_NO_SCRIPT_NO_EXCEPTION(i_isolate);
i::Handle<i::JSWeakMap> obj = i_isolate->factory()->NewJSWeakMap();
return ToApiHandle<debug::WeakMap>(obj);
}

debug::WeakMap* debug::WeakMap::Cast(v8::Value* value) {
return static_cast<debug::WeakMap*>(value);
}

const char* CpuProfileNode::GetFunctionNameStr() const {
const i::ProfileNode* node = reinterpret_cast<const i::ProfileNode*>(this);
return node->entry()->name();
Expand Down
1 change: 1 addition & 0 deletions deps/v8/src/api.h
Original file line number Diff line number Diff line change
Expand Up @@ -124,6 +124,7 @@ class RegisteredExtension {
V(Proxy, JSProxy) \
V(debug::GeneratorObject, JSGeneratorObject) \
V(debug::Script, Script) \
V(debug::WeakMap, JSWeakMap) \
V(Promise, JSPromise) \
V(Primitive, Object) \
V(PrimitiveArray, FixedArray) \
Expand Down
Loading