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.12.0 proposal #21593

Merged
merged 279 commits into from Sep 11, 2018
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
279 commits
Select commit Hold shift + click to select a range
06329a8
http2: remove duplicate words in comments
tniessen Jan 1, 2018
68d33c6
perf_hooks: fix scheduling regression
apapirovski Jan 9, 2018
0d2a720
src: update make for new code coverage locations
mhdawson Jan 4, 2018
5ea1492
src: fix code coverage cleanup
mhdawson Jan 10, 2018
1942440
test: refactor test-repl
addaleax Dec 31, 2017
0a3ebb0
benchmark: add JSStreamWrap benchmark
addaleax Jan 4, 2018
15c4717
src: harden JSStream callbacks
addaleax Jan 7, 2018
a8d2ab5
src: rename `On*` -> `Emit*` for stream callbacks
addaleax Dec 15, 2017
9bd5fc2
build: make gyp user defined variables lowercase
danbev Oct 16, 2017
18fd620
build: add node_lib_target_name to cctest deps
danbev Feb 5, 2018
59f1330
src: refactor callback #defines into C++ templates
addaleax Jan 13, 2018
e094275
http: simplify parser lifetime tracking
addaleax Jan 13, 2018
656ceea
deps: cherry-pick dbfe4a49d8 from upstream V8
Nov 9, 2017
d7192c4
module: Set dynamic import callback
Oct 1, 2017
0f83f25
module: enable dynamic import flag for esmodules
MylesBorins Jan 25, 2018
fceeee6
doc: Update tools/icu/README.md
srl295 Nov 10, 2017
ab967b7
tools: fix icu readme lint error
apapirovski Jan 30, 2018
af27768
stream: delete redundant code
Jan 14, 2018
c92d66a
stream: delete redundant code
Jan 15, 2018
0b2f527
n-api: take n-api out of experimental
mhdawson Mar 9, 2018
bf8068e
src: prepare v8 platform for multi-isolate support
addaleax Sep 14, 2017
e932754
src: cancel pending delayed platform tasks on exit
addaleax Oct 22, 2017
2148b19
src: use unique_ptr in platform implementation
fhinkel Nov 12, 2017
2cf2635
src: use unique_ptr for scheduled delayed tasks
fhinkel Nov 12, 2017
4f3bf04
crypto: use non-deprecated v8::Object::Set
danbev Dec 6, 2017
020057a
build: make lint-ci work properly on Linux make
rvagg Apr 2, 2018
d868eb7
deps: V8: cherry-pick 502c6ae6 from upstream
ofrobots Jun 11, 2018
e6cd7e5
deps: V8: cherry-pick 5ebd6fcd from upstream
ofrobots Jun 11, 2018
6772364
deps: upgrade npm to 6.1.0
iarna Apr 21, 2018
5362e2f
tools: fix test-npm-package
targos Mar 12, 2018
7a35e18
tools,gyp: fix regex for version matching
Trott Jun 8, 2018
2ec7dd4
build: fix configure script for double-digits
mistydemeo Jun 6, 2018
c5eb1f8
tools: update tooling to work with new macOS CLI …
Trott Jun 8, 2018
ad862a0
test: properly tag anonymous namespaces
mhdawson Feb 5, 2018
6718291
src: add "icu::" prefix before ICU symbols
srl295 Feb 8, 2018
79919a3
tools: ensure doc-only doesn't update package-lock
MylesBorins May 29, 2018
185aca0
deps: float fix on node-gyp in npm tree
MylesBorins May 10, 2018
f987a51
deps: V8: backport b49206d from upstream
ofrobots May 14, 2018
daacff8
async_hooks: deprecate unsafe emit{Before,After}
ofrobots Feb 1, 2018
7e23946
lib: provide proper deprecation code
BridgeAR Feb 10, 2018
373f4d6
async_hooks: remove runtime deprecation
ofrobots Jun 20, 2018
cf0577e
doc: remove ES6/ECMAScript 2015 from buffer.md
Trott Mar 29, 2018
41bb110
doc: Uint8Array support in Buffer functions
SheetJSDev Apr 12, 2018
0bef960
build: include the libuv and zlib into node
yhwang Jan 17, 2018
3d38bab
net: use `_final` instead of `on('finish')`
addaleax Feb 7, 2018
21cdb73
test: allow running with `NODE_PENDING_DEPRECATION`
addaleax Feb 25, 2018
a29cd25
http2: refer to stream errors by name
addaleax Feb 23, 2018
553e34e
src: simplify http2 perf tracking code
addaleax Mar 20, 2018
d38ccbb
src: use `unordered_map` for perf marks
addaleax Mar 23, 2018
3c6464a
test: add regression test for large write
addaleax Mar 24, 2018
bf09b7a
tools: treat SIGABRT as crash
addaleax Apr 12, 2018
e17f05a
src: create per-isolate strings after platform setup
ulan Apr 20, 2018
de51a83
http2: remove unused using declarations node_http2
danbev Apr 30, 2018
1cb9772
src: remove unused freelist.h header
addaleax May 5, 2018
8076a79
src: fix nullptr dereference for signal during startup
addaleax May 9, 2018
b916620
src: fix typo in util.h comment
addaleax May 10, 2018
71ee19e
test: plug AliasedBuffer cctest memory leak
addaleax May 10, 2018
87818dc
http2: destroy the socket properly and add tests
mafintosh Apr 6, 2018
342dbff
src: make `AsyncResource` destructor virtual
addaleax May 9, 2018
f0f44f6
test: check TTY mode reset on exit
addaleax May 30, 2018
2702fd7
lib: replace `eval` with `vm.runInThisContext`
MylesBorins Feb 7, 2018
29b5d39
lib: re-fix v8_prof_processor
addaleax Feb 28, 2018
b1110b2
test: fix test when NODE_OPTIONS env var is set to --trace-warnings
aks- Apr 14, 2018
9aeffab
deps: V8: cherry-pick 8361fa58 from upstream
ofrobots Jun 12, 2018
efe28b8
deps: V8: fix bug in InternalPerformPromiseThen
ofrobots Jun 20, 2018
3ad5e30
doc: remove ES6/ECMAScript 2015 from buffer.md
Trott Mar 29, 2018
e1a7244
doc: Uint8Array support in Buffer functions
SheetJSDev Apr 12, 2018
6d3cbcb
test: make test-error-reporting engine agnostic
Trott Oct 17, 2017
4709734
doc: cleanup n-api.md doc
mhdawson Apr 30, 2018
8f5e991
async_wrap: fix memory leak in AsyncResource
mhdawson May 11, 2018
0f45ecb
test: add http _dump regression test
addaleax Jun 29, 2018
ed0d939
test: remove --harmony-sharedarraybuffer usage
binji Oct 19, 2017
8e0f28b
deps: V8: backport 49712d8a from upstream
ofrobots Jun 18, 2018
8053474
test: add http2/tls destroy regression test
addaleax Jun 29, 2018
2ee4bb7
src: move `Environment` ctor/dtor into env.cc
addaleax Mar 6, 2018
9125e2b
src: add convenience ctor for async trigger id scope
addaleax Mar 7, 2018
abcc911
build: fix rm commands in tarball rule
bnoordhuis Jan 23, 2018
6f545d1
src: fix compiler warning in process.ppid
cjihrig Nov 12, 2017
ffb72f8
deps: cherry-pick 09b53ee from upstream V8
addaleax Jul 11, 2018
1fc00f0
http: do not rely on the 'agentRemove' event
lpinca May 16, 2018
0517cd8
test: fix test-cluster-send-handle-large-payload
Trott Mar 13, 2018
4911c4e
n-api: improve runtime perf of n-api func call
kenny-y Jun 7, 2018
54ea1cc
src: refactor bootstrap to use bootstrap object
jasnell Jul 13, 2018
0321afe
src: add node_process.cc
jasnell Jul 13, 2018
eaf99d9
src: add node_encoding.cc
jasnell Jul 13, 2018
1e25f00
test: move http-client-timeout-agent to sequential
Trott Apr 4, 2018
d0588f1
test: fix flaky http-client-timeout-agent
santigimeno Apr 6, 2018
1cf17df
tls: accept array of protocols in TLSSocket
qubyte Oct 31, 2017
7033bba
n-api: throw when entry point is null
May 16, 2018
9a9ea0d
test: bypass dns for IPv6 net tests
refack Nov 12, 2017
7c43099
http, http2: add 103 Early Hints status code
yosuke-furukawa Oct 31, 2017
76805f0
cluster: support windowsHide option for workers
toddwong Dec 1, 2017
dc000a5
cluster: add cwd to cluster.settings
cjihrig Jan 26, 2018
bb85fd6
doc: add missing metadata for cluster.settings.cwd
tniessen Mar 24, 2018
531cb62
doc: add missing metadata for settings.windowsHide
tniessen Mar 24, 2018
b4192b0
perf_hooks: add warning when too many entries in the timeline
jasnell Jan 10, 2018
74ca456
deps: upgrade npm to 6.2.0
zkat Jul 18, 2018
3188336
deps: cherry-pick 0c35b72 from upstream V8
devsnek Jan 8, 2018
e98efcf
test: replace assert.equal with assert.strictEqual
Jan 12, 2018
25ce5c3
test: introduce SetUpTestCase/TearDownTestCase
danbev Feb 3, 2018
3cdae15
test: remove NodeTestFixture from Env constructor
danbev Feb 3, 2018
4eca50a
test: fix flaky repl-timeout-throw
santigimeno Feb 10, 2018
7f1a942
tools: fix eslint isRequired
BridgeAR Feb 12, 2018
bbc7443
test: fix and improve error message
kcaulfield94 Feb 1, 2018
1654b12
test: fix missing param in benchmark-timers
apapirovski Feb 12, 2018
1d90700
child_process: fix stdio sockets creation
santigimeno Feb 6, 2018
c4716dc
tools, test: fix prof polyfill readline
killagu Feb 11, 2018
c32b087
tools: auto fix custom crypto-check eslint rule
shobhitchittora Oct 31, 2017
817f436
tools: custom eslint autofix for inspector-check.js
shobhitchittora Oct 31, 2017
60733a7
deps: upgrade libuv to 1.19.2
cjihrig Feb 21, 2018
ce62e14
tools: ignore VS compiler output in deps/v8
targos Feb 23, 2018
812b97c
deps: fix typo in openssl upgrading doc
danbev Apr 4, 2018
d9ab189
deps: cherry-pick b767cde1e7 from upstream V8
bnoordhuis Mar 30, 2018
bf2daab
deps: Upgrade node-inspect to 1.11.5
May 31, 2018
a26454e
doc: add error check to fs example
evanlucas Feb 9, 2018
6bc307f
test: add useful info to error msg and refactor
chinhuang007 Feb 2, 2018
0b6ab53
test: add crypto check to test-benchmark-tls
danbev Feb 12, 2018
1169590
test: add multiline repl input regression test
cjihrig Feb 11, 2018
9c52231
doc: update crypo Certficate class.
antoine-amara Feb 11, 2018
0977f04
test: add lib path env when node_shared=true
yhwang Feb 2, 2018
d0083cb
test: wrap countdown callback in common.mustCall
Bamieh Nov 21, 2017
a5ee6ee
doc: remove extra space in README.md
Feb 16, 2018
29009ae
test: try to connect after server was closed
Leko Jan 19, 2018
ecf3616
test: reduce benchmark test run time
juggernaut451 Feb 14, 2018
f534bd8
test: make tls test more rigorous
bnoordhuis Feb 15, 2018
35e691c
test: refactor parallel/test-tls-addca
juggernaut451 Feb 15, 2018
d55e4ad
test,benchmark,doc: enable dot-notation rule
BridgeAR Feb 13, 2018
adca631
doc: note that linting is required in releases.md
gibfahn Feb 14, 2018
ebd73ad
doc: activate `no-multiple-empty-lines` rule
BridgeAR Feb 13, 2018
161869e
src: allow --perf-(basic-)?prof in NODE_OPTIONS
Leko Dec 11, 2017
fc34f5c
crypto: allow passing null as IV unless required
tniessen Feb 7, 2018
b7f9334
async_hooks: rename PromiseWrap.parentId
ofrobots Feb 8, 2018
e25d5d0
fs: support as and as+ flags in stringToFlags()
SirR4T Feb 15, 2018
f57c53c
doc: add missing metadata for fs.open
tniessen Mar 25, 2018
1f49de4
tls: expose Finished messages in TLSSocket
codedot Mar 2, 2018
35a1bd9
fs,net: emit 'ready' for fs streams and sockets
sameer-coder Mar 17, 2018
2cbeea0
doc: add Yihong Wang to collaborators
yhwang Feb 16, 2018
4a267f0
net: simplify net.Socket#end()
addaleax Feb 11, 2018
488e1bb
test: refactor parallel/test-tls-0-dns-altname
juggernaut451 Feb 15, 2018
83e704d
test: stdio pipe behavior tests
bzoz Feb 7, 2018
399ba4b
doc: mark accessing IPC channel fd as undefined
bzoz Dec 8, 2017
ffa7b50
test: refactor parallel/test-tls-pause
juggernaut451 Feb 11, 2018
8c5ad68
doc: fix broken link in pull-requests.md
justin0022 Feb 19, 2018
a1902ca
doc: improved documentation for fs.unlink()
dustinnewman Feb 18, 2018
cd44b82
test: http2 client operations after destroy
trivikr Feb 18, 2018
901f579
test: http2 client settings invalid callback
trivikr Feb 18, 2018
a8ae04d
test: http2 client ping errors
trivikr Feb 18, 2018
8fad7af
doc: fix nits in tools/doc/README.md
vsemozhetbyt Feb 19, 2018
2f6866e
test: check symbols in shared lib
yhwang Feb 15, 2018
e194c37
src: fix deprecation warning in node_perf.cc
danbev Feb 20, 2018
78e79c7
test: fix deprecation warning in binding.cc
danbev Feb 20, 2018
8af6b75
src: add public API for managing NodePlatform
zcbenz Nov 13, 2017
5a3dc37
crypto: Use math.h definitions of isnan and isinf
jer-gentoo Mar 7, 2018
ae63db8
deps: backport 804a693 from upstream V8
Jul 17, 2018
07e2bd4
doc: remove CII badge in README
silverwind Feb 21, 2018
8140211
tools: fix custom eslint rule errors
BridgeAR Feb 18, 2018
4b43839
test: http2 compat response.write() error checks
trivikr Feb 18, 2018
f876887
doc: update description of 'clientError' event
lpinca Feb 20, 2018
69efa9f
src: remove node namespace qualifiers
danbev Feb 23, 2018
2ec981b
process: use more direct sync I/O for stdio
addaleax Dec 30, 2017
cbe9239
src: use `DoTryWrite()` for not-all-Buffer writev()s too
addaleax Jan 10, 2018
7d4d96b
tools: bump remark-cli to 4.0
refack Nov 14, 2017
9fdba04
tty: fix console printing on Windows
addaleax Jan 17, 2018
cf833e4
lib: change hook -> hooks in code comment
danbev Feb 28, 2018
7d0f02e
test: fix flaky inspector-stop-profile-after-done
Trott Mar 2, 2018
eae80e4
doc: add MoonBall to collaborators
MoonBall Mar 3, 2018
4009e3f
buffer: fix typo in lib/buffer.js
ryzokuken Mar 4, 2018
905c350
test: remove assert message and add block scope
wuweiweiwu Feb 28, 2018
d7b657f
test: refactor test-async-wrap-getasyncid
santigimeno Feb 12, 2018
20d805e
build: disable openssl build warnings on macos
bnoordhuis Feb 27, 2018
20a4ec8
test: rename test-regress-GH-1726
ryzokuken Mar 6, 2018
6417564
test: rename test-regress-GH-1697
ryzokuken Mar 6, 2018
6092060
test: rename test-regress-GH-4015
ryzokuken Mar 6, 2018
b70dd35
test: rename test-regress-GH-4027
ryzokuken Mar 6, 2018
d76a96c
test: rename tests to remove "regress" keyword
ryzokuken Mar 6, 2018
3793630
test: address nits and rename the corresponding fixture
ryzokuken Mar 6, 2018
67bdb35
test: rename test-regress-GH-784.js
ryzokuken Mar 6, 2018
812c950
test: rename test-regress-GH-877.js
ryzokuken Mar 6, 2018
b9b422a
doc: add watson to collaborators
watson Mar 8, 2018
20ee726
doc: remove superfluous adverb from style guide
Trott Mar 8, 2018
274b2d2
doc: remove confusing "cats" from style guide
Trott Mar 8, 2018
98fe68f
doc: add pronouns to readme
not-an-aardvark Jul 31, 2018
4df93dc
tools,bootstrap: preprocess gypi files to json
devsnek Mar 5, 2018
ab559b8
doc: add trivikr to collaborators
trivikr Mar 16, 2018
e1c28b6
tools: fix logic nit in tools/doc/generate.js
vsemozhetbyt Mar 20, 2018
2fb47a5
tools: fix nits in tools/doc/preprocess.js
vsemozhetbyt Mar 20, 2018
aa3be00
tools: make metadata parsing less permissive
tniessen Mar 21, 2018
11b8d47
tools: shorten metadata parsing
tniessen Mar 21, 2018
fe4e511
tools: fix nits in tools/doc/common.js
vsemozhetbyt Mar 25, 2018
4a1b064
tools: simplify tools/doc/preprocess.js
vsemozhetbyt Mar 22, 2018
eb5f085
tools: fix nits in tools/doc/type-parser.js
vsemozhetbyt Mar 26, 2018
59b99e8
tools: fix comment nits in tools/doc/*.js files
vsemozhetbyt Mar 30, 2018
ff4c30e
tools: dry utility function in tools/doc/json.js
vsemozhetbyt Mar 30, 2018
36ffc3b
tools: remove src dir from JS editorconfig rule
tniessen Mar 21, 2018
cf2a7e9
tools: apply editorconfig rules to tools also
tniessen Mar 21, 2018
fc41817
tools: don’t emit illegal utf-8 from icutrim/iculslocs
srl295 Apr 2, 2018
8a5c100
win, tools: add nasm to boxstarter script
bzoz Apr 11, 2018
f391181
doc: update tools/doc/README.md
vsemozhetbyt Apr 15, 2018
14a5dd4
doc: add tools/doc/README link in doc/STYLE_GUIDE
vsemozhetbyt Apr 16, 2018
ac05c2b
tools: modernize and optimize doc/addon-verify.js
vsemozhetbyt Apr 21, 2018
1241b90
tools: simplify HTML generation
vsemozhetbyt Apr 25, 2018
24a105f
doc: remove eu-strip from tarball
jvelezpo Apr 25, 2018
246c2d1
tools: fix TypeError from `test.py --time`
richardlau Apr 27, 2018
4a795dd
doc: improve buf.lastIndexOf() text
Trott Apr 9, 2018
11e53cd
tools: include exit code in test failures
Trott Apr 6, 2018
f8c5042
tools: include exit code in TAP log
refack Apr 6, 2018
422b6e8
tools: show stdout/stderr for timed out tests
Trott Apr 24, 2018
c56aafd
tools: add log output to crashes
BridgeAR Apr 25, 2018
35a8ff7
n-api: create functions directly
Jul 6, 2018
01e2eba
test: move test-timers-throw-reschedule to sequential
MylesBorins Aug 17, 2018
5294919
deps: V8: cherry-pick 9040405 from upstream
Aug 17, 2018
f82d58d
deps: upgrade npm to 6.4.1
zkat Aug 29, 2018
d478bc7
src: fix bootstrap_node on bsd
sylkat Sep 2, 2018
ec1828c
v8: add new to the throw statement
BridgeAR Jun 21, 2017
711098e
process: Send signal name to signal handlers
robertrossmann Sep 25, 2017
dc6dadd
doc: `readable.push(undefined)` in non-object mode
Jan 21, 2018
dbc5bed
doc: add process.debugPort to doc/api/process.md
flickz Feb 11, 2018
68e78e8
doc: make the background section concise and improve its formality
Feb 22, 2018
02ea033
src: fix error message in async_hooks constructor
danbev Feb 26, 2018
c4fa1f7
http: prevent aborted event when already completed
billywhizz Feb 17, 2018
68a810c
http: prevent aborted event when already completed
billywhizz Feb 17, 2018
85aa639
test: refactor test after review
billywhizz Feb 27, 2018
61dd5b7
test: specify 'dir' for directory symlinks
kfarnung Feb 27, 2018
ce66b02
doc: add RegExp Unicode Property Escapes to intl
vsemozhetbyt Feb 28, 2018
7f6e0b3
doc: Readable unpipe on Writable error event
GeorgeSapkin Feb 8, 2018
c2978ac
doc: update list of re-exported symbols
richardlau Feb 26, 2018
d9895c4
doc: add URL.format() example
zeke Feb 20, 2018
e2190ad
doc: add simple example to rename function
punteek Feb 16, 2018
d141375
doc: remove tentativeness in pull-requests.md
Trott Mar 4, 2018
369e1ef
doc: remove subsystem from pull request template
Trott Mar 4, 2018
21be127
test: move require http2 to after crypto check
danbev Mar 3, 2018
f33f323
src: #include <stdio.h>" to iculslocs
srl295 Mar 5, 2018
1a1288d
perf_hooks: fix timing
TimothyGu Feb 25, 2018
f64100a
test: add more information to assert.strictEqual
ryzokuken Mar 6, 2018
1116d32
doc: make suggestion more direct in stream.md
Trott Mar 4, 2018
d3a10c7
test: skip postmortem metadata test when nm fails
joyeecheung Mar 3, 2018
94d27e2
doc: add inspector usage example
ofrobots Mar 6, 2018
7ed297d
doc: remove warning against readable/readable.read
Trott Mar 7, 2018
4d5cb4c
crypto: use bool over int consistently
tniessen Mar 8, 2018
e1e6a09
test: refactor http-https-default-ports
ken23421 Mar 4, 2018
8adb0b3
test: address unreliable test-performance
Trott Mar 8, 2018
e6131c2
test: do not check text for engine-generated error
Trott Mar 8, 2018
cae60ca
doc: add warning to assert.doesNotThrow()
BridgeAR Feb 10, 2018
a6fca75
repl: better handling of recoverable errors
princejwesley Feb 21, 2018
a0fd0b6
test: Remove unnecessary asserion messages in test-crypto-hash.js
pgrzesik Feb 25, 2018
9c781f0
test: fix test-abort-backtrace in shared lib build
yhwang Mar 7, 2018
a023193
doc: fix/add link to Android info
vsemozhetbyt Feb 26, 2018
50316e2
doc,tools: formalize, unify, codify default values
vsemozhetbyt Apr 2, 2018
66343c5
src: add environment cleanup hooks
addaleax Aug 21, 2018
731eed2
2018-09-11, Version 8.12.0 'Carbon' (LTS)
MylesBorins Jun 29, 2018
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Jump to
The table of contents is too big for display.
Diff view
Diff view
  •  
  •  
  •  
The diff you're trying to view is too large. We only load the first 3000 changed files.
4 changes: 2 additions & 2 deletions .editorconfig
Expand Up @@ -9,7 +9,7 @@ insert_final_newline = true
[vcbuild.bat]
end_of_line = crlf

[{lib,src,test}/**.js]
[{lib,test,tools}/**.js]
indent_style = space
indent_size = 2

Expand All @@ -29,7 +29,7 @@ indent_size = 2
indent_style = tab
indent_size = 8

[{deps,tools}/**]
[{deps}/**]
indent_style = ignore
indent_size = ignore
end_of_line = ignore
Expand Down
1 change: 1 addition & 0 deletions .eslintignore
@@ -1,6 +1,7 @@
lib/internal/v8_prof_polyfill.js
lib/punycode.js
test/addons/??_*
test/es-module/test-esm-dynamic-import.js
test/fixtures
tools/eslint
tools/icu
Expand Down
1 change: 1 addition & 0 deletions .eslintrc.yaml
Expand Up @@ -44,6 +44,7 @@ rules:
# http://eslint.org/docs/rules/#best-practices
accessor-pairs: error
dot-location: [error, property]
dot-notation: error
eqeqeq: [error, smart]
no-fallthrough: error
no-global-assign: error
Expand Down
3 changes: 0 additions & 3 deletions .github/PULL_REQUEST_TEMPLATE.md
Expand Up @@ -14,6 +14,3 @@ Contributors guide: https://github.com/nodejs/node/blob/master/CONTRIBUTING.md
- [ ] tests and/or benchmarks are included
- [ ] documentation is changed or added
- [ ] commit message follows [commit guidelines](https://github.com/nodejs/node/blob/master/doc/guides/contributing/pull-requests.md#commit-message-guidelines)

##### Affected core subsystem(s)
<!-- Provide affected core subsystem(s) (like doc, cluster, crypto, etc). -->
10 changes: 8 additions & 2 deletions .gitignore
Expand Up @@ -106,8 +106,8 @@ deps/npm/node_modules/.bin/

# test artifacts
tools/faketime
tools/remark-cli
tools/remark-preset-lint-node
tools/remark-cli/node_modules
tools/remark-preset-lint-node/node_modules
icu_config.gypi
*.tap

Expand All @@ -122,3 +122,9 @@ deps/uv/docs/src/guide/

# do not override V8's .gitignore
!deps/v8/**
# ignore VS compiler output unhandled by V8's .gitignore
deps/v8/src/Debug/
deps/v8/src/Release/
deps/v8/src/inspector/Debug/
deps/v8/src/inspector/Release/
deps/v8/third_party/eu-strip/
3 changes: 2 additions & 1 deletion CHANGELOG.md
Expand Up @@ -27,7 +27,8 @@ release.
</tr>
<tr>
<td valign="top">
<b><a href="doc/changelogs/CHANGELOG_V8.md#8.11.4">8.11.4</a></b><br/>
<b><a href="doc/changelogs/CHANGELOG_V8.md#8.12.0">8.12.0</a></b><br/>
<a href="doc/changelogs/CHANGELOG_V8.md#8.11.4">8.11.4</a><br/>
<a href="doc/changelogs/CHANGELOG_V8.md#8.11.3">8.11.3</a><br/>
<a href="doc/changelogs/CHANGELOG_V8.md#8.11.2">8.11.2</a><br/>
<a href="doc/changelogs/CHANGELOG_V8.md#8.11.1">8.11.1</a><br/>
Expand Down
59 changes: 40 additions & 19 deletions Makefile
Expand Up @@ -137,12 +137,14 @@ check: test
coverage-clean:
if [ -d lib_ ]; then $(RM) -r lib; mv lib_ lib; fi
$(RM) -r node_modules
$(RM) -r gcovr testing
$(RM) -r gcovr build
$(RM) -r out/$(BUILDTYPE)/.coverage
$(RM) -r .cov_tmp
$(RM) out/$(BUILDTYPE)/obj.target/node/{src,gen}/*.gcda
$(RM) out/$(BUILDTYPE)/obj.target/node/gen/*.gcda
$(RM) out/$(BUILDTYPE)/obj.target/node/src/*.gcda
$(RM) out/$(BUILDTYPE)/obj.target/node/src/tracing/*.gcda
$(RM) out/$(BUILDTYPE)/obj.target/node/{src,gen}/*.gcno
$(RM) out/$(BUILDTYPE)/obj.target/node/gen/*.gcno
$(RM) out/$(BUILDTYPE)/obj.target/node/src/*.gcno
$(RM) out/$(BUILDTYPE)/obj.target/node/src/tracing/*.gcno
$(RM) out/$(BUILDTYPE)/obj.target/cctest/src/*.gcno
$(RM) out/$(BUILDTYPE)/obj.target/cctest/test/cctest/*.gcno
Expand All @@ -162,11 +164,11 @@ coverage-build: all
$(NODE) ./deps/npm install nyc --no-save --no-package-lock; fi
if [ ! -d gcovr ]; then git clone --depth=1 \
--single-branch git://github.com/gcovr/gcovr.git; fi
if [ ! -d testing ]; then git clone --depth=1 \
--single-branch https://github.com/nodejs/testing.git; fi
if [ ! -d build ]; then git clone --depth=1 \
--single-branch https://github.com/nodejs/build.git; fi
if [ ! -f gcovr/scripts/gcovr.orig ]; then \
(cd gcovr && patch -N -p1 < \
"$(CURDIR)/testing/coverage/gcovr-patches.diff"); fi
"$(CURDIR)/build/jenkins/scripts/coverage/gcovr-patches.diff"); fi
if [ -d lib_ ]; then $(RM) -r lib; mv lib_ lib; fi
mv lib lib_
$(NODE) ./node_modules/.bin/nyc instrument --extension .js --extension .mjs lib_/ lib/
Expand All @@ -175,7 +177,8 @@ coverage-build: all
coverage-test: coverage-build
$(RM) -r out/$(BUILDTYPE)/.coverage
$(RM) -r .cov_tmp
$(RM) out/$(BUILDTYPE)/obj.target/node/{src,gen}/*.gcda
$(RM) out/$(BUILDTYPE)/obj.target/node/gen/*.gcda
$(RM) out/$(BUILDTYPE)/obj.target/node/src/*.gcda
$(RM) out/$(BUILDTYPE)/obj.target/node/src/tracing/*.gcda
-$(MAKE) $(COVTESTS)
mv lib lib__
Expand Down Expand Up @@ -260,6 +263,7 @@ test-check-deopts: all
$(PYTHON) tools/test.py --mode=release --check-deopts parallel sequential -J

benchmark/misc/function_call/build/Release/binding.node: all \
benchmark/misc/function_call/napi_binding.c \
benchmark/misc/function_call/binding.cc \
benchmark/misc/function_call/binding.gyp
$(NODE) deps/npm/node_modules/node-gyp/bin/node-gyp rebuild \
Expand Down Expand Up @@ -592,14 +596,14 @@ available-node = \
exit 1; \
fi;

run-npm-install = $(PWD)/$(NPM) install --production
run-npm-install = $(PWD)/$(NPM) install --production --no-package-lock

tools/doc/node_modules/js-yaml/package.json:
cd tools/doc && $(call available-node,$(run-npm-install))

gen-json = tools/doc/generate.js --format=json $< > $@
gen-html = tools/doc/generate.js --node-version=$(FULLVERSION) --format=html \
--template=doc/template.html --analytics=$(DOCS_ANALYTICS) $< > $@
--analytics=$(DOCS_ANALYTICS) $< > $@

out/doc/api/%.json: doc/api/%.md
$(call available-node, $(gen-json))
Expand Down Expand Up @@ -853,15 +857,32 @@ $(TARBALL): release-only $(NODE_EXE) doc
mkdir -p $(TARNAME)/doc/api
cp doc/node.1 $(TARNAME)/doc/node.1
cp -r out/doc/api/* $(TARNAME)/doc/api/
$(RM) -r $(TARNAME)/deps/v8/{test,samples,tools/profviz,tools/run-tests.py}
$(RM) -r $(TARNAME)/doc/images # too big
$(RM) -r $(TARNAME)/deps/uv/{docs,samples,test}
$(RM) -r $(TARNAME)/deps/openssl/openssl/{doc,demos,test}
$(RM) -r $(TARNAME)/.editorconfig
$(RM) -r $(TARNAME)/.git*
$(RM) -r $(TARNAME)/.mailmap
$(RM) -r $(TARNAME)/deps/openssl/openssl/demos
$(RM) -r $(TARNAME)/deps/openssl/openssl/doc
$(RM) -r $(TARNAME)/deps/openssl/openssl/test
$(RM) -r $(TARNAME)/deps/uv/docs
$(RM) -r $(TARNAME)/deps/uv/samples
$(RM) -r $(TARNAME)/deps/uv/test
$(RM) -r $(TARNAME)/deps/v8/samples
$(RM) -r $(TARNAME)/deps/v8/test
$(RM) -r $(TARNAME)/deps/v8/tools/profviz
$(RM) -r $(TARNAME)/deps/v8/tools/run-tests.py
$(RM) -r $(TARNAME)/deps/zlib/contrib # too big, unused
$(RM) -r $(TARNAME)/.{editorconfig,git*,mailmap}
$(RM) -r $(TARNAME)/tools/{eslint,eslint-rules,osx-pkg.pmdoc,pkgsrc,remark-cli,remark-preset-lint-node}
$(RM) -r $(TARNAME)/tools/{osx-*,license-builder.sh,cpplint.py}
$(RM) -r $(TARNAME)/doc/images # too big
$(RM) -r $(TARNAME)/test*.tap
$(RM) -r $(TARNAME)/tools/cpplint.py
$(RM) -r $(TARNAME)/tools/eslint
$(RM) -r $(TARNAME)/tools/eslint-rules
$(RM) -r $(TARNAME)/tools/license-builder.sh
$(RM) -r $(TARNAME)/tools/node_modules
$(RM) -r $(TARNAME)/tools/osx-*
$(RM) -r $(TARNAME)/tools/osx-pkg.pmdoc
$(RM) -r $(TARNAME)/tools/pkgsrc
$(RM) -r $(TARNAME)/tools/remark-cli
$(RM) -r $(TARNAME)/tools/remark-preset-lint-node
find $(TARNAME)/ -name ".eslint*" -maxdepth 2 | xargs $(RM)
find $(TARNAME)/ -type l | xargs $(RM) # annoying on windows
tar -cf $(TARNAME).tar $(TARNAME)
Expand Down Expand Up @@ -1072,7 +1093,8 @@ lint-js-ci:
jslint-ci: lint-js-ci
@echo "Please use lint-js-ci instead of jslint-ci"

LINT_CPP_ADDON_DOC_FILES = $(wildcard test/addons/??_*/*.cc test/addons/??_*/*.h)
LINT_CPP_ADDON_DOC_FILES_GLOB = test/addons/??_*/*.cc test/addons/??_*/*.h
LINT_CPP_ADDON_DOC_FILES = $(wildcard $(LINT_CPP_ADDON_DOC_FILES_GLOB))
LINT_CPP_EXCLUDE ?=
LINT_CPP_EXCLUDE += src/node_root_certs.h
LINT_CPP_EXCLUDE += $(LINT_CPP_ADDON_DOC_FILES)
Expand Down Expand Up @@ -1113,7 +1135,7 @@ tools/.cpplintstamp: $(LINT_CPP_FILES)

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

cpplint: lint-cpp
@echo "Please use lint-cpp instead of cpplint"
Expand All @@ -1123,7 +1145,6 @@ lint: ## Run JS, C++, MD and doc linters.
@EXIT_STATUS=0 ; \
$(MAKE) lint-js || EXIT_STATUS=$$? ; \
$(MAKE) lint-cpp || EXIT_STATUS=$$? ; \
$(MAKE) lint-md || EXIT_STATUS=$$? ; \
$(MAKE) lint-addon-docs || EXIT_STATUS=$$? ; \
$(MAKE) lint-md || EXIT_STATUS=$$? ; \
exit $$EXIT_STATUS
Expand Down
15 changes: 10 additions & 5 deletions README.md
Expand Up @@ -3,9 +3,6 @@
<img alt="Node.js" src="https://nodejs.org/static/images/logo-light.svg" width="400"/>
</a>
</p>
<p align="center">
<a title="CII Best Practices" href="https://bestpractices.coreinfrastructure.org/projects/29"><img src="https://bestpractices.coreinfrastructure.org/projects/29/badge"></a>
</p>

Node.js is a JavaScript runtime built on Chrome's V8 JavaScript engine. For
more information on using Node.js, see the
Expand Down Expand Up @@ -427,13 +424,15 @@ For more information about the governance of the Node.js project, see
* [misterdjules](https://github.com/misterdjules) -
**Julien Gilli** &lt;jgilli@nodejs.org&gt;
* [mmarchini](https://github.com/mmarchini) -
**Matheus Marchini** &lt;matheus@sthima.com&gt;
**Matheus Marchini** &lt;matheus@sthima.com&gt;
* [MoonBall](https://github.com/MoonBall) -
**Chen Gang** &lt;gangc.cxy@foxmail.com&gt;
* [mscdex](https://github.com/mscdex) -
**Brian White** &lt;mscdex@mscdex.net&gt;
* [MylesBorins](https://github.com/MylesBorins) -
**Myles Borins** &lt;myles.borins@gmail.com&gt; (he/him)
* [not-an-aardvark](https://github.com/not-an-aardvark) -
**Teddy Katz** &lt;teddy.katz@gmail.com&gt;
**Teddy Katz** &lt;teddy.katz@gmail.com&gt; (he/him)
* [ofrobots](https://github.com/ofrobots) -
**Ali Ijaz Sheikh** &lt;ofrobots@google.com&gt;
* [orangemocha](https://github.com/orangemocha) -
Expand Down Expand Up @@ -498,6 +497,8 @@ For more information about the governance of the Node.js project, see
**Tobias Nießen** &lt;tniessen@tnie.de&gt;
* [trevnorris](https://github.com/trevnorris) -
**Trevor Norris** &lt;trev.norris@gmail.com&gt;
* [trivikr](https://github.com/trivikr) -
**Trivikram Kamat** &lt;trivikr.dev@gmail.com&gt;
* [Trott](https://github.com/Trott) -
**Rich Trott** &lt;rtrott@gmail.com&gt; (he/him)
* [tunniclm](https://github.com/tunniclm) -
Expand All @@ -510,10 +511,14 @@ For more information about the governance of the Node.js project, see
**Vse Mozhet Byt** &lt;vsemozhetbyt@gmail.com&gt; (he/him)
* [watilde](https://github.com/watilde) -
**Daijiro Wachi** &lt;daijiro.wachi@gmail.com&gt; (he/him)
* [watson](https://github.com/watson) -
**Thomas Watson** &lt;w@tson.dk&gt;
* [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)
* [yhwang](https://github.com/yhwang) -
**Yihong Wang** &lt;yh.wang@ibm.com&gt;
* [yorkie](https://github.com/yorkie) -
**Yorkie Liu** &lt;yorkiefixer@gmail.com&gt;
* [yosuke-furukawa](https://github.com/yosuke-furukawa) -
Expand Down
4 changes: 4 additions & 0 deletions benchmark/misc/function_call/binding.gyp
@@ -1,5 +1,9 @@
{
'targets': [
{
'target_name': 'napi_binding',
'sources': [ 'napi_binding.c' ]
},
{
'target_name': 'binding',
'sources': [ 'binding.cc' ]
Expand Down
13 changes: 11 additions & 2 deletions benchmark/misc/function_call/index.js
Expand Up @@ -19,6 +19,15 @@ try {
}
const cxx = binding.hello;

let napi_binding;
try {
napi_binding = require('./build/Release/napi_binding');
} catch (er) {
console.error('misc/function_call/index.js NAPI-Binding failed to load');
process.exit(0);
}
const napi = napi_binding.hello;

var c = 0;
function js() {
return c++;
Expand All @@ -27,14 +36,14 @@ function js() {
assert(js() === cxx());

const bench = common.createBenchmark(main, {
type: ['js', 'cxx'],
type: ['js', 'cxx', 'napi'],
millions: [1, 10, 50]
});

function main(conf) {
const n = +conf.millions * 1e6;

const fn = conf.type === 'cxx' ? cxx : js;
const fn = conf.type === 'cxx' ? cxx : conf.type === 'napi' ? napi : js;
bench.start();
for (var i = 0; i < n; i++) {
fn();
Expand Down
28 changes: 28 additions & 0 deletions benchmark/misc/function_call/napi_binding.c
@@ -0,0 +1,28 @@
#include <assert.h>
#include <node_api.h>

static int32_t increment = 0;

static napi_value Hello(napi_env env, napi_callback_info info) {
napi_value result;
napi_status status = napi_create_int32(env, increment++, &result);
assert(status == napi_ok);
return result;
}

static napi_value Init(napi_env env, napi_value exports) {
napi_value hello;
napi_status status =
napi_create_function(env,
"hello",
NAPI_AUTO_LENGTH,
Hello,
NULL,
&hello);
assert(status == napi_ok);
status = napi_set_named_property(env, exports, "hello", hello);
assert(status == napi_ok);
return exports;
}

NAPI_MODULE(NODE_GYP_MODULE_NAME, Init)
2 changes: 2 additions & 0 deletions benchmark/misc/object-property-bench.js
@@ -1,5 +1,7 @@
'use strict';

/* eslint-disable dot-notation */

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

const bench = common.createBenchmark(main, {
Expand Down