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

v12.15.0 release proposal #31368

Closed
wants to merge 473 commits into from
Closed
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
473 commits
Select commit Hold shift + click to select a range
16283b8
doc: fix argument type of setAAD
tniessen Dec 9, 2019
8d8c05d
http2: forward debug message in debugStreamObj
lundibundi Dec 7, 2019
2155f56
test: disable colorMode in test-console-group
Trott Dec 10, 2019
169a3d5
doc: edit colorMode information
Trott Dec 10, 2019
174e435
tools: update link to google styleguide for cpplint
danbev Dec 10, 2019
2f4615c
doc: clarify build support text
Trott Dec 11, 2019
690deaa
doc: improve doc writable streams: 'finish' event
dev-script Dec 10, 2019
1811b1a
build: fix missing x64 arch suffix in binary tar name
legendecas Dec 10, 2019
17fc4b0
console: unregister temporary error listener
ronag Dec 8, 2019
9b730ad
lib: use strict equality comparison
PW486 Dec 11, 2019
baece55
http: remove unnecessary bind
apapirovski Jun 7, 2019
01bb876
perf_hooks: remove unnecessary bind
apapirovski Jun 7, 2019
91845d8
fs: remove unnecessary bind
apapirovski Jun 7, 2019
dce435d
http2: remove unnecessary bind from setImmediate
apapirovski Jun 7, 2019
f76f143
cluster: remove unnecessary bind
apapirovski Jun 8, 2019
6f61407
src: make debug_options getters public
codebytere Nov 15, 2019
e4b3181
crypto: cast oaepLabel to unsigned char*
codebytere Dec 12, 2019
88085f0
test: improve assertion error message in test-debug-usage
Trott Dec 12, 2019
5a8a7a4
doc: fix description of N-API exception handlers
tniessen Dec 11, 2019
47067ce
tools: enable Markdown linter's usage information
DerekNonGeneric Nov 2, 2019
78cf6d0
build,win: fix goto exit in vcbuild
joaocgreis Dec 13, 2019
4651871
test: avoid leftover report file
Flarna Dec 12, 2019
c554c0e
doc: clarify expectations for PR commit messages
DerekNonGeneric Dec 12, 2019
5cb1744
test: improve dns lookup coverage
KeeReal Dec 3, 2019
9e5d39c
doc: add "Be direct." to the style guide
Trott Dec 13, 2019
9ce788e
process: fix promise catching
pd4d10 Dec 14, 2019
47b5367
benchmark: use let/const instead of var in buffers
dnlup Dec 13, 2019
5537fae
doc: explain napi_run_script
tniessen Dec 9, 2019
732780f
process: refs --unhandled-rejections documentation in warning message
aduh95 Nov 20, 2019
7bfc339
cli: add --trace-exit cli option
legendecas Nov 17, 2019
e6907f0
test: improve test coverage in child_process
juanarbol Feb 24, 2019
1333798
benchmark: update manywrites back pressure
ronag Dec 15, 2019
08186b2
doc: update message.url example in http.IncomingMessage
saitolume Dec 7, 2019
7822eb1
doc: reference worker threads on signal events
legendecas Dec 16, 2019
d04891f
src: fix compiler warning in env.cc
addaleax Dec 18, 2019
3c63af2
src: list used functions on headers
juanarbol Dec 6, 2019
2a2fe8a
test: fix flaky test-http2-client-upload
Flarna Oct 8, 2019
8c3b8e0
benchmark: add clear connections to secure-pair
DiegoTUI May 30, 2019
73701b2
test: fix long lines
cjihrig Dec 18, 2019
334fcbe
dgram: use for...of
trivikr Dec 14, 2019
734b550
test: fix common.enoughTestMem
Trott Dec 20, 2019
3c16855
test: unflake async hooks statwatcher test
lundibundi Nov 10, 2019
9d2e8c5
tools: update ESLint to 6.8.0
cjihrig Dec 20, 2019
ccf1178
deps: V8: cherry-pick d3a1a5b6c491
targos Dec 17, 2019
5622543
src,test: use v8::Global instead of v8::Persistent
addaleax Dec 18, 2019
ea5be29
doc: avoid using v8::Persistent in addon docs
addaleax Dec 18, 2019
b9c057c
tools,src: forbid usage of v8::Persistent
addaleax Dec 18, 2019
2f7bd15
doc: implement minor improvements to BUILDING.md text
Trott Dec 23, 2019
b714e94
tools: fix Raspbian armv7 build
AHgPuK Dec 20, 2019
15adbe8
benchmark: use let instead of var in child_process
dnlup Dec 20, 2019
1f0a1d5
doc: improve doc net:server.listen
dev-script Dec 23, 2019
bfccc00
tls: add PSK support
lundibundi Oct 29, 2018
bbb5707
doc: add unrepresented flags docs for configure
rexagod Jun 5, 2019
5c522dd
doc: standardize usage of hostname vs. host name
Trott Dec 23, 2019
82fbedc
src: port --bash-completion to C++
joyeecheung Feb 3, 2019
2aab93e
doc: fix anchors and subtitle in BUILDING.md
sutangu Nov 6, 2019
9c9138f
test: skip the unsupported test cases for IBM i
dmabupt Dec 6, 2019
86d1998
deps: V8: cherry-pick d406bfd64653
sam-github Dec 9, 2019
d5c0e4d
benchmark: include writev in benchmark
ronag Dec 23, 2019
f08130e
doc: add --enable-source-maps man page entry
cjihrig Dec 24, 2019
b28b16b
doc: add --force-context-aware man page entry
cjihrig Dec 24, 2019
5db6758
doc: add --inspect-publish-uid man page entry
cjihrig Dec 24, 2019
4cd459c
build: fixes build for some os versions
devnexen Oct 27, 2019
8407086
zlib: allow writes after readable 'end' to finish
addaleax Dec 24, 2019
cb35097
src: enable stack trace printing for V8 check failures
addaleax Dec 24, 2019
671a5b7
doc: update parameter type for fs.chmod()
santoshyadavdev Dec 27, 2019
6c9bc3c
doc: improve dns introduction
Trott Dec 25, 2019
9ed7d2e
test: log errors in test-http2-propagate-session-destroy-code
lundibundi Dec 23, 2019
dc8c955
benchmark: replace var with let/const in cluster benchmark
dnlup Dec 20, 2019
54cbbae
doc: update parameter type for fsPromises.chmod()
cjihrig Dec 27, 2019
a5f1434
doc: update mode type for fchmod() functions
cjihrig Dec 27, 2019
5948ff4
doc: update mode type for fs open() functions
cjihrig Dec 27, 2019
cd310e1
doc: update mode type for process.umask()
cjihrig Dec 27, 2019
cb75f56
doc: update mode type for mkdir() functions
cjihrig Dec 27, 2019
17a48f1
fs: use consistent defaults in sync stat functions
cjihrig Dec 26, 2019
91e7c14
doc: fix createDiffieHellman generator type
tniessen Dec 28, 2019
48e1dfe
meta: clarify scope of new nodejs.org issue choice
DerekNonGeneric Dec 28, 2019
bedc6e2
tools: allow the travis commit message job to fail
BridgeAR Dec 27, 2019
25fb34c
doc: de-duplicate security release processes
sam-github Dec 16, 2019
d30911e
benchmark: use let instead of var in crypto
dnlup Dec 30, 2019
e45edab
perf_hooks: move perf_hooks out of experimental
legendecas Dec 26, 2019
7aa7759
doc: clarify role of writable.cork()
GKJCJG Nov 12, 2019
b48cfcc
benchmark: add benchmark on async_hooks enabled http server
legendecas Dec 26, 2019
8ab748e
build: don't use -latomic on macOS
ryandesign Oct 23, 2019
1a0cda1
errors: support prepareSourceMap with source-maps
bcoe Dec 31, 2019
7858d65
src: suppress warning in src/node_env_var.cc
HarshithaKP Dec 30, 2019
39dbc10
doc: improve explanation of package.json "type" field
tamias May 1, 2019
4022617
test: use spread object
franher Nov 12, 2019
d905d04
deps: V8: backport a4545db
devnexen Dec 29, 2019
f281946
doc: update REPL documentation to instantiate the REPL
BridgeAR Dec 12, 2019
3fe37e6
https: prevent options object from being mutated
vighnesh153 Jan 2, 2020
b69f2dd
n-api: keep napi_env alive while it has finalizers
addaleax Dec 30, 2019
c6600d1
deps: upgrade http-parser to v2.9.1
sam-github Nov 13, 2019
25f2df4
deps,http: http_parser set max header size to 8KB
mcollina Aug 21, 2018
3a7a3be
http: opt-in insecure HTTP header parsing
sam-github Nov 20, 2019
ccf9038
test: check that --insecure-http-parser works
sam-github Jan 7, 2020
8c5e951
deps: V8: cherry-pick cc5016e1b702
mmarchini Dec 9, 2019
015671d
deps: V8: cherry-pick b38dfaf3a633
mmarchini Dec 9, 2019
6bc2ce2
Revert "src: update v8abbr.h for V8 7.7"
mmarchini Dec 27, 2019
4fd4a73
Revert "test: update postmortem metadata test for V8 7.7"
mmarchini Dec 27, 2019
536d088
stream: use more accurate end-of-stream writable and readable detection
Jan 10, 2020
ee40a00
test: use arrow functions in addons tests
GaryGSC Oct 26, 2019
ac7beba
lib: flatten access to primordials
targos Nov 22, 2019
79dd591
lib: enforce use of Array from primordials
targos Nov 23, 2019
67de744
lib: replace ArrayBuffer.isView by primordial ArrayBuffer
Kawacrepe Nov 27, 2019
61bb7b9
lib: replace Date.now function by primordial DateNow
Tchoupinax Nov 27, 2019
2e81795
lib: enforce use of Boolean from primordials
targos Nov 28, 2019
5de272c
lib: use static Number properties from primordials
targos Nov 27, 2019
d4d6172
lib: enforce use of primordial Number
Sebastien-Ahkrin Nov 28, 2019
c6535c0
lib: replace Symbol global by the primordials Symbol
Sebastien-Ahkrin Nov 30, 2019
54aa3b9
lib: replace every Symbol.for by SymbolFor primordials
Sebastien-Ahkrin Dec 8, 2019
22df5dc
lib: replace Symbol.iterator by SymbolIterator
Sebastien-Ahkrin Dec 8, 2019
d4ea392
lib: enforce use of BigInt from primordials
targos Dec 10, 2019
d1702f5
lib: update Symbol.toStringTag by SymbolToStringTag primordial
Sebastien-Ahkrin Dec 11, 2019
7c3ac42
lib: replace Symbol.toPrimitive to SymbolToPrimitive primordials
Sebastien-Ahkrin Dec 11, 2019
521458a
repl: fix autocomplete when useGlobal is false
targos Dec 10, 2019
b00fcaf
lib: add TypedArray constructors to primordials
Sebastien-Ahkrin Nov 30, 2019
74f7844
v8: use of TypedArray constructors from primordials
Sebastien-Ahkrin Nov 30, 2019
31227e6
lib: enforce use of Promise from primordials
targos Dec 13, 2019
5cfcf6f
lib: replace Symbol.asyncIterator by SymbolAsyncIterator
Sebastien-Ahkrin Dec 13, 2019
581e837
lib: replace Symbol.hasInstance by SymbolHasInstance
Sebastien-Ahkrin Dec 13, 2019
f33147b
lib: replace Symbol.species by SymbolSpecies
Sebastien-Ahkrin Dec 13, 2019
b1550a6
lib: replace Set.prototype with SetPrototype primordial
Sebastien-Ahkrin Jan 2, 2020
90196b8
lib: replace WeakMap global by the primordials
Sebastien-Ahkrin Jan 2, 2020
869cd53
lib: replace WeakSet global by the primordials
Sebastien-Ahkrin Jan 2, 2020
e5b7d64
lib: replace Set global by the primordials
Sebastien-Ahkrin Jan 2, 2020
02ed713
lib: replace use of Error with primordials
Sebastien-Ahkrin Jan 2, 2020
0dd8605
lib: replace Map global by the primordials
Sebastien-Ahkrin Jan 2, 2020
4de6097
module: reduce circular dependency of internal/modules/cjs/loader
joyeecheung Nov 10, 2019
b6ce736
wasi: introduce initial WASI support
cjihrig Sep 4, 2019
78c46c5
build: add --without-node-code-cache configure option
joyeecheung Nov 26, 2019
35ce8bb
build: do not build mksnapshot and mkcodecache for --shared
joyeecheung Nov 26, 2019
4265d57
events: add captureRejection option
mcollina May 19, 2019
fa544c8
stream: add support for captureRejection option
mcollina Aug 19, 2019
cdc33df
http: implement capture rejections for 'request' event
mcollina Sep 3, 2019
99a09a2
http: add captureRejection support to OutgoingMessage
mcollina Sep 20, 2019
5eef00a
net: implement capture rejections for 'connection' event
mcollina Oct 1, 2019
48fcd76
tls: implement capture rejections for 'secureConnection' event
mcollina Oct 1, 2019
2cc0482
http2: implement capture rection for 'request' and 'stream' events
mcollina Oct 2, 2019
81e363a
worker: add argv constructor option
legendecas Nov 20, 2019
11473cc
test: simplify tmpdir import in wasi tests
Trott Dec 2, 2019
8d0217b
test: improve wasi test coverage
Trott Dec 2, 2019
248921b
lib: delay access to CLI option to pre-execution
joyeecheung Dec 3, 2019
e5e60f5
build: remove (almost) unused macros/constants
bcoe Dec 1, 2019
d4b41f6
repl: use better uncaught exceptions indicator
BridgeAR Sep 23, 2019
1fbd7ac
util: improve inspect's customInspect performance
BridgeAR Nov 21, 2019
219c8e9
util: add more predefined color codes to inspect.colors
BridgeAR Nov 25, 2019
1f68004
assert,util: stricter type comparison using deep equal comparisons
BridgeAR Dec 2, 2019
2c27df2
test: run more assert tests
BridgeAR Dec 2, 2019
bb8b11f
test: improve WASI options validation
Trott Dec 5, 2019
808a456
src: use checked allocations in WASI::New()
cjihrig Dec 5, 2019
1148724
src: free preopen memory in WASI::New()
cjihrig Dec 5, 2019
5d545d0
deps: update uvwasi
addaleax Dec 1, 2019
2bb364a
wasi: use memory-tracking allocator
addaleax Dec 1, 2019
ec514a6
doc: deprecate http finished
ronag Jul 14, 2019
01ea5ba
lib: replace var with let/const
jens-cappelle Nov 12, 2019
ffc910f
module: fix require in node repl
ZYSzys Dec 7, 2019
76affb6
fs: only operate on buffers in rimraf
cjihrig Nov 20, 2019
fb2253e
fs: retry unlink operations in rimraf
cjihrig Dec 9, 2019
b6688ef
test: use fs rimraf to refresh tmpdir
cjihrig Aug 20, 2019
c3daa3e
fs: synchronize close with other I/O for streams
addaleax Dec 7, 2019
bf9a824
test: wait for stream close before writing to file
addaleax Dec 7, 2019
0638b78
net: remove duplicate _undestroy
ronag Dec 7, 2019
b1358d3
doc: add code example to inspector.url() method
juanarbol Sep 8, 2019
5b78bf2
test: work around ENOTEMPTY when cleaning tmp dir
bnoordhuis Dec 12, 2019
1c6e2ec
lib: refactor NativeModule
joyeecheung Dec 8, 2019
67a2a47
build: auto-load ICU data from --with-icu-default-data-dir
sgallagher Dec 6, 2019
0266d7f
lib: change var to let/const
Dec 12, 2019
8cd8cd7
stream: do not chunk strings and Buffer in Readable.from
mcollina Dec 12, 2019
ace3e70
src: unregister Isolate with platform before disposing
addaleax Dec 12, 2019
7139325
test: add test for validation for wasi.start() argument
Trott Dec 12, 2019
12e9bad
test: add missing test flags
cjihrig Dec 15, 2019
95f332f
readline: promote _getCursorPos to public api
Js-Brecht Nov 27, 2019
f6acf9a
stream: use for...of
trivikr Dec 14, 2019
5d2ae05
wasi: require CLI flag to require() wasi module
cjihrig Dec 14, 2019
299d518
test: improve WASI start() coverage
cjihrig Dec 15, 2019
d676c6c
test: simplify test-wasi-start-validation.js
cjihrig Dec 15, 2019
42ccf22
doc: add note about fs.close() about undefined behavior
ronag Dec 14, 2019
c6be79a
async_hooks: ensure proper handling in runInAsyncScope
apapirovski Dec 14, 2019
ff9b5fc
tls: for...of in _tls_common.js
trivikr Dec 14, 2019
49a9b31
http: use for...of in http library code
trivikr Dec 14, 2019
9da5444
assert: use for...of
soar-beep Dec 16, 2019
8b11954
deps,src,test: update to uvwasi 0.0.3
cjihrig Dec 15, 2019
8be52c4
doc,lib,src,test: rename WASI CLI flag
cjihrig Dec 15, 2019
e4e086a
test: remove obsolete WASI test
cjihrig Dec 15, 2019
62d3beb
events: allow monitoring error events
Flarna Dec 12, 2019
83f02c0
buffer: improve .from() error details
BridgeAR Sep 23, 2019
1c17f42
errors: improve ERR_INVALID_ARG_TYPE
BridgeAR Sep 23, 2019
57f29b7
bootstrap: use different scripts to setup different configurations
joyeecheung Dec 9, 2019
b6c815c
test: cover vm with negative tests
Dec 18, 2019
4198d9a
lib: improve spelling and grammar in comment
datatypevoid Dec 19, 2019
1d45ba3
test: get lib/wasi.js coverage to 100%
cjihrig Dec 20, 2019
b6d09e8
events: add EventEmitter.on to async iterate over events
mcollina May 30, 2019
5dd9fb2
lib: further simplify assertions in vm/module
addaleax Dec 6, 2019
ee9e817
doc,vm,test: remove _sandbox_ from vm documentation
Trott Dec 22, 2019
83f8939
dgram: test to add and to drop specific membership
universePrisoner Dec 20, 2019
a0f5207
stream: simplify isBuf
ronag Dec 23, 2019
a83c976
stream: reset flowing state if no 'readable' or 'data' listeners
ronag Dec 20, 2019
facee2a
timers: do less work in insert
apapirovski Apr 22, 2019
e5c68cd
timers: fix refresh for expired timers
apapirovski Apr 22, 2019
cc3e427
src: prevent hard coding stack trace limit
legendecas Dec 1, 2019
a9d9fdb
deps: uvwasi: cherry-pick 64e59d5
cjihrig Dec 24, 2019
6784296
deps: uvwasi: cherry-pick 75b389c
cjihrig Dec 24, 2019
e815655
wasi: throw on failed uvwasi_init()
cjihrig Dec 22, 2019
c51153c
doc,wasi: use code markup/markdown in headers
Trott Dec 25, 2019
4a7e860
lib: replace var with let/const
kresimirfranin Nov 12, 2019
80d7b6e
wasi: fix serdes bugs from snapshot1 migration
cjihrig Dec 28, 2019
61da657
zlib: use for...of
trivikr Dec 21, 2019
5edfd50
stream: group all properties using defineProperties
antsmartian Dec 31, 2019
b840eb7
http: free listeners on free sockets
ronag Aug 21, 2019
725daeb
http: http_outgoing rename var to let and const
Nov 6, 2019
4bbf584
doc: use code markup/markdown in headers
BridgeAR Jan 1, 2020
625ed70
doc: remove extra backtick
cjihrig Jan 4, 2020
4a1cb3d
lib: do not catch user errors
BridgeAR Jan 1, 2020
59e2975
perf_hooks: use for...of
trivikr Dec 21, 2019
20a8175
http2: set default enableConnectProtocol to 0
ZYSzys Jan 3, 2020
18cd002
test: change buffer offset to accommodate V8 BackingStore
thangktran Dec 24, 2019
4ee5665
benchmark: use let instead of var in dgram
dnlup Jan 3, 2020
ff47915
wasi: refactor destructuring object on constructor
himself65 Jan 4, 2020
69eaff1
lib: move initialization of APIs for changing process state
addaleax Jan 3, 2020
4c1d172
src: mark ArrayBuffers with free callbacks as untransferable
addaleax Nov 13, 2019
8252c06
buffer: release buffers with free callbacks on env exit
addaleax Nov 19, 2019
09e4182
deps: V8: cherry-pick d89f4ef1cd62
Jan 14, 2020
cad0402
module: loader getSource, getFormat, transform hooks
GeoffreyBooth Dec 15, 2019
fae517a
module: logical conditional exports ordering
guybedford Dec 17, 2019
616a4ee
module: unflag conditional exports
guybedford Dec 17, 2019
db5ec52
module: fix check exports issue in cjs module loading
guybedford Jan 20, 2020
ad4af04
test,module: add test for exports cjs loader check
Trott Jan 21, 2020
02d7283
deps: V8: cherry-pick 0dfd9ea51241
bcoe Jan 19, 2020
f63e440
http2: make HTTP2ServerResponse more streams compliant
ronag Dec 14, 2019
ea3d4e8
n-api: implement napi_is_detached_arraybuffer
lundibundi Nov 23, 2019
a1ce776
util: fix .format() not always calling toString when it should be
BridgeAR Nov 9, 2019
a1555cb
benchmark: add more util inspect and format benchmarks
BridgeAR Nov 30, 2019
a309ee1
util: improve performance inspecting proxies
BridgeAR Nov 30, 2019
bbf39bc
util: never trigger any proxy traps using `format()`
BridgeAR Dec 1, 2019
40a724c
util: fix built-in detection
BridgeAR Nov 30, 2019
b0e3aec
util: inspect (user defined) prototype properties
BridgeAR Nov 30, 2019
3b9360d
util: refactor inspect code for constistency
BridgeAR Nov 2, 2019
cc19d08
util: add (typed) array length to the default output
BridgeAR Dec 19, 2019
6f5ced6
src: accept single argument in getProxyDetails
BridgeAR Dec 8, 2019
fc0febe
util: improve prototype inspection using `inspect()` and `showHidden`
BridgeAR Dec 26, 2019
e938784
assert: fix generatedMessage property
BridgeAR Jun 14, 2019
881ebce
assert: DRY .throws code
BridgeAR Jun 14, 2019
6d8a541
doc: update assert.throws() examples
BridgeAR Jun 17, 2019
5c6a6b8
doc: make `AssertionError` a link
BridgeAR Jun 20, 2019
67ec97a
assert: implement `assert.match()` and `assert.doesNotMatch()`
BridgeAR Dec 12, 2019
b9d15b3
2020-02-12, Version 12.15.0 'Erbium' (LTS)
targos Jan 14, 2020
905d8ff
wip notable changes
targos Jan 17, 2020
8ad9952
fixup: update changelog
MylesBorins Jan 30, 2020
dc5c052
fixup: add moar commits
MylesBorins Jan 30, 2020
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
  •  
  •  
  •  
1 change: 1 addition & 0 deletions .eslintrc.js
Expand Up @@ -324,5 +324,6 @@ module.exports = {
TextEncoder: 'readable',
TextDecoder: 'readable',
queueMicrotask: 'readable',
globalThis: 'readable',
},
};
2 changes: 1 addition & 1 deletion .github/ISSUE_TEMPLATE/config.yml
Expand Up @@ -3,6 +3,6 @@ contact_links:
- name: ⁉️ Need help with Node.js?
url: https://github.com/nodejs/help
about: Please file an issue in our help repo.
- name: 🌐 Found a problem with nodejs.org?
- name: 🌐 Found a problem with nodejs.org beyond the API reference docs?
url: https://github.com/nodejs/nodejs.org/issues/new/choose
about: Please file an issue in the Node.js website repo.
1 change: 1 addition & 0 deletions .travis.yml
Expand Up @@ -88,3 +88,4 @@ jobs:
- flake8 . --count --select=E9,F63,F7,F82 --show-source --statistics
allow_failures: # TODO (cclauss): remove this when dependencies are clean
- name: "Find syntax errors in our Python dependencies"
- name: "First commit message adheres to guidelines at <a href=\"https://goo.gl/p2fr5Q\">https://goo.gl/p2fr5Q</a>"
39 changes: 17 additions & 22 deletions BUILDING.md
Expand Up @@ -23,15 +23,15 @@ file a new issue.
* [Unix and macOS](#unix-and-macos)
* [Unix prerequisites](#unix-prerequisites)
* [macOS prerequisites](#macos-prerequisites)
* [Building Node.js](#building-nodejs)
* [Building Node.js](#building-nodejs-1)
* [Running Tests](#running-tests)
* [Running Coverage](#running-coverage)
* [Building the documentation](#building-the-documentation)
* [Building a debug build](#building-a-debug-build)
* [Windows](#windows)
* [Prerequisites](#prerequisites)
* [Option 1: Manual install](#option-1-manual-install)
* [Option 1: Automated install with Boxstarter](#option-1-automated-install-with-boxstarter)
* [Option 2: Automated install with Boxstarter](#option-2-automated-install-with-boxstarter)
* [Building Node.js](#building-nodejs-1)
* [Android/Android-based devices (e.g. Firefox OS)](#androidandroid-based-devices-eg-firefox-os)
* [`Intl` (ECMA-402) support](#intl-ecma-402-support)
Expand Down Expand Up @@ -67,30 +67,25 @@ There are three support tiers:

* **Tier 1**: These platforms represent the majority of Node.js users. The
Node.js Build Working Group maintains infrastructure for full test coverage.
All commits to the Node.js repository are tested on these platforms. Test
failures on tier 1 platforms will block releases.
Test failures on tier 1 platforms will block releases.
* **Tier 2**: These platforms represent smaller segments of the Node.js user
base. The Node.js Build Working Group maintains infrastructure for full test
coverage. All commits to the Node.js repository are tested on these platforms.
Test failures on tier 2 platforms will block releases. Delays in release of
binaries for these platforms are acceptable where necessary due to
infrastructure concerns.
coverage. Test failures on tier 2 platforms will block releases.
Infrastructure issues may delay the release of binaries for these platforms.
* **Experimental**: May not compile or test suite may not pass. The core team
does not create releases for these platforms. Test failures on experimental
platforms do not block releases. Contributions to improve support for these
platforms are welcome.

Platforms may move between tiers between major release lines. The table below
will be updated to reflect those changes.
will reflect those changes.

### Platform list

Compiling and running Node.js is supported for a limited set of operating
systems, architectures and libc versions. The table below lists the
combinations that the core team has committed to supporting and the nature of
that support as per the support tiers above. A list of
[supported compile toolchains](#supported-toolchains) is also supplied for
tier 1 platforms.
Node.js compilation/execution support depends on operating system, architecture,
and libc version. The table below lists the support tier for each supported
combination. A list of [supported compile toolchains](#supported-toolchains) is
also supplied for tier 1 platforms.

**For production applications, run Node.js on supported platforms only.**

Expand All @@ -116,26 +111,26 @@ platforms. This is true regardless of entries in the table below.
| AIX | ppc64be >=power7 | >= 7.2 TL02 | Tier 2 | |
| FreeBSD | x64 | >= 11 | Experimental | Downgraded as of Node.js 12 <sup>[7](#fn7)</sup> |

<em id="fn1">1</em>: GCC 6 is not provided on the base platform, users will
<em id="fn1">1</em>: GCC 6 is not provided on the base platform. Users will
need the
[Toolchain test builds PPA](https://launchpad.net/~ubuntu-toolchain-r/+archive/ubuntu/test?field.series_filter=xenial)
or similar to source a newer compiler.

<em id="fn2">2</em>: GCC 6 is not provided on the base platform, users will
<em id="fn2">2</em>: GCC 6 is not provided on the base platform. Users will
need the
[devtoolset-6](https://www.softwarecollections.org/en/scls/rhscl/devtoolset-6/)
or later to source a newer compiler.

<em id="fn3">3</em>: Older kernel versions may work for ARM64, however the
<em id="fn3">3</em>: Older kernel versions may work for ARM64. However the
Node.js test infrastructure only tests >= 4.5.

<em id="fn4">4</em>: On Windows, running Node.js in Windows terminal emulators
like `mintty` requires the usage of [winpty](https://github.com/rprichard/winpty)
for the tty channels to work correctly (e.g. `winpty node.exe script.js`).
for the tty channels to work (e.g. `winpty node.exe script.js`).
In "Git bash" if you call the node shell alias (`node` without the `.exe`
extension), `winpty` is used automatically.

<em id="fn5">5</em>: The Windows Subsystem for Linux (WSL) is not directly
<em id="fn5">5</em>: The Windows Subsystem for Linux (WSL) is not
supported, but the GNU/Linux build process and binaries should work. The
community will only address issues that reproduce on native GNU/Linux
systems. Issues that only reproduce on WSL should be reported in the
Expand All @@ -145,11 +140,11 @@ platforms. This is true regardless of entries in the table below.

<em id="fn6">6</em>: Running Node.js on x86 Windows should work and binaries
are provided. However, tests in our infrastructure only run on WoW64.
Furthermore, compiling on x86 Windows is currently considered Experimental and
Furthermore, compiling on x86 Windows is Experimental and
may not be possible.

<em id="fn7">7</em>: The default FreeBSD 12.0 compiler is Clang 6.0.1, but
FreeBSD 12.1 upgrades to 8.0.1. Other Clang/LLVM versions are provided
FreeBSD 12.1 upgrades to 8.0.1. Other Clang/LLVM versions are available
via the system's package manager, including Clang 9.0.

### Supported toolchains
Expand Down
3 changes: 2 additions & 1 deletion CHANGELOG.md
Expand Up @@ -28,7 +28,8 @@ release.
</tr>
<tr>
<td valign="top">
<b><a href="doc/changelogs/CHANGELOG_V12.md#12.14.1">12.14.1</a></b><br/>
<b><a href="doc/changelogs/CHANGELOG_V12.md#12.15.0">12.15.0</a></b><br/>
<a href="doc/changelogs/CHANGELOG_V12.md#12.14.1">12.14.1</a><br/>
<a href="doc/changelogs/CHANGELOG_V12.md#12.14.0">12.14.0</a><br/>
<a href="doc/changelogs/CHANGELOG_V12.md#12.13.1">12.13.1</a><br/>
<a href="doc/changelogs/CHANGELOG_V12.md#12.13.0">12.13.0</a><br/>
Expand Down
13 changes: 7 additions & 6 deletions CPP_STYLE_GUIDE.md
Expand Up @@ -14,9 +14,9 @@ codebase not related to stylistic issues.
* [Align function arguments vertically](#align-function-arguments-vertically)
* [Initialization lists](#initialization-lists)
* [CamelCase for methods, functions, and classes](#camelcase-for-methods-functions-and-classes)
* [snake\_case for local variables and parameters](#snake_case-for-local-variables-and-parameters)
* [snake\_case\_ for private class fields](#snake_case_-for-private-class-fields)
* [snake\_case for C-like structs](#snake_case-for-c-like-structs)
* [`snake_case` for local variables and parameters](#snake_case-for-local-variables-and-parameters)
* [`snake_case_` for private class fields](#snake_case_-for-private-class-fields)
* [`snake_case` for C-like structs](#snake_case-for-c-like-structs)
* [Space after `template`](#space-after-template)
* [Memory Management](#memory-management)
* [Memory allocation](#memory-allocation)
Expand Down Expand Up @@ -155,15 +155,15 @@ class FooBar {
};
```

### snake\_case for local variables and parameters
### `snake_case` for local variables and parameters

```c++
int FunctionThatDoesSomething(const char* important_string) {
const char* pointer_into_string = important_string;
}
```

### snake\_case\_ for private class fields
### `snake_case_` for private class fields

```c++
class Foo {
Expand All @@ -172,7 +172,8 @@ class Foo {
};
```

### snake\_case for C-like structs
### `snake_case` for C-like structs

For plain C-like structs snake_case can be used.

```c++
Expand Down
25 changes: 25 additions & 0 deletions LICENSE
Expand Up @@ -1526,3 +1526,28 @@ The externally maintained libraries used by Node.js are:
ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF OR
IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE.
"""

- uvwasi, located at deps/uvwasi, is licensed as follows:
"""
MIT License

Copyright (c) 2019 Colin Ihrig and Contributors

Permission is hereby granted, free of charge, to any person obtaining a copy
of this software and associated documentation files (the "Software"), to deal
in the Software without restriction, including without limitation the rights
to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
copies of the Software, and to permit persons to whom the Software is
furnished to do so, subject to the following conditions:

The above copyright notice and this permission notice shall be included in all
copies or substantial portions of the Software.

THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
SOFTWARE.
"""
2 changes: 1 addition & 1 deletion Makefile
Expand Up @@ -842,6 +842,7 @@ endif
endif
endif
endif
endif
ifeq ($(DESTCPU),x64)
ARCH=x64
else
Expand Down Expand Up @@ -871,7 +872,6 @@ endif
endif
endif
endif
endif

# node and v8 use different arch names (e.g. node 'x86' vs v8 'ia32').
# pass the proper v8 arch name to $V8_ARCH based on user-specified $DESTCPU.
Expand Down
4 changes: 2 additions & 2 deletions SECURITY.md
Expand Up @@ -23,8 +23,8 @@ the HackerOne platform. See <https://hackerone.com/nodejs> for further details.
## Reporting a Bug in a third party module

Security bugs in third party modules should be reported to their respective
maintainers and should also be coordinated through the Node Ecosystem Security
Team via [HackerOne](https://hackerone.com/nodejs-ecosystem).
maintainers and should also be coordinated through the Node.js Ecosystem
Security Team via [HackerOne](https://hackerone.com/nodejs-ecosystem).

Details regarding this process can be found in the
[Security Working Group repository](https://github.com/nodejs/security-wg/blob/master/processes/third_party_vuln_process.md).
Expand Down
16 changes: 8 additions & 8 deletions benchmark/README.md
Expand Up @@ -5,7 +5,7 @@ of different Node.js implementations and different ways of
writing JavaScript run by the built-in JavaScript engine.

For a detailed guide on how to write and run benchmarks in this
directory, see [the guide on benchmarks](../doc/guides/writing-and-running-benchmarks.md).
directory, see [the guide on benchmarks](writing-and-running-benchmarks.md).

## Table of Contents

Expand Down Expand Up @@ -74,21 +74,21 @@ The common.js module is used by benchmarks for consistency across repeated
tasks. It has a number of helpful functions and properties to help with
writing benchmarks.

### createBenchmark(fn, configs\[, options\])
### `createBenchmark(fn, configs[, options])`

See [the guide on writing benchmarks](../doc/guides/writing-and-running-benchmarks.md#basics-of-a-benchmark).
See [the guide on writing benchmarks](writing-and-running-benchmarks.md#basics-of-a-benchmark).

### default\_http\_benchmarker
### `default_http_benchmarker`

The default benchmarker used to run HTTP benchmarks.
See [the guide on writing HTTP benchmarks](../doc/guides/writing-and-running-benchmarks.md#creating-an-http-benchmark).
See [the guide on writing HTTP benchmarks](writing-and-running-benchmarks.md#creating-an-http-benchmark).

### PORT
### `PORT`

The default port used to run HTTP benchmarks.
See [the guide on writing HTTP benchmarks](../doc/guides/writing-and-running-benchmarks.md#creating-an-http-benchmark).
See [the guide on writing HTTP benchmarks](writing-and-running-benchmarks.md#creating-an-http-benchmark).

### sendResult(data)
### `sendResult(data)`

Used in special benchmarks that can't use `createBenchmark` and the object
it returns to accomplish what they need. This function reports timing
Expand Down
25 changes: 22 additions & 3 deletions benchmark/_cli.js
Expand Up @@ -34,7 +34,7 @@ function CLI(usage, settings) {
if (arg === '--') {
// Only items can follow --
mode = 'item';
} else if (['both', 'option'].includes(mode) && arg[0] === '-') {
} else if ('both' === mode && arg[0] === '-') {
// Optional arguments declaration

if (arg[1] === '-') {
Expand Down Expand Up @@ -82,17 +82,36 @@ CLI.prototype.abort = function(msg) {

CLI.prototype.benchmarks = function() {
const paths = [];
const filter = this.optional.filter || false;

for (const category of this.items) {
if (benchmarks[category] === undefined)
continue;
for (const scripts of benchmarks[category]) {
if (filter && scripts.lastIndexOf(filter) === -1) continue;
if (this.shouldSkip(scripts)) continue;

paths.push(path.join(category, scripts));
}
}

return paths;
};

CLI.prototype.shouldSkip = function(scripts) {
const filters = this.optional.filter || [];
const excludes = this.optional.exclude || [];
let skip = filters.length > 0;

for (const filter of filters) {
if (scripts.lastIndexOf(filter) !== -1) {
skip = false;
}
}

for (const exclude of excludes) {
if (scripts.lastIndexOf(exclude) !== -1) {
skip = true;
}
}

return skip;
};
2 changes: 1 addition & 1 deletion benchmark/_http-benchmarkers.js
Expand Up @@ -5,7 +5,7 @@ const path = require('path');
const fs = require('fs');

const requirementsURL =
'https://github.com/nodejs/node/blob/master/doc/guides/writing-and-running-benchmarks.md#http-benchmark-requirements';
'https://github.com/nodejs/node/blob/master/benchmark/writing-and-running-benchmarks.md#http-benchmark-requirements';

// The port used by servers and wrk
exports.PORT = Number(process.env.PORT) || 12346;
Expand Down
40 changes: 40 additions & 0 deletions benchmark/async_hooks/http-server.js
@@ -0,0 +1,40 @@
'use strict';
const common = require('../common.js');

const bench = common.createBenchmark(main, {
asyncHooks: ['init', 'before', 'after', 'all', 'disabled', 'none'],
connections: [50, 500]
});

function main({ asyncHooks, connections }) {
if (asyncHooks !== 'none') {
let hooks = {
init() {},
before() {},
after() {},
destroy() {},
promiseResolve() {}
};
if (asyncHooks !== 'all' || asyncHooks !== 'disabled') {
hooks = {
[asyncHooks]: () => {}
};
}
const hook = require('async_hooks').createHook(hooks);
if (asyncHooks !== 'disabled') {
hook.enable();
}
}
const server = require('../fixtures/simple-http-server.js')
.listen(common.PORT)
.on('listening', () => {
const path = '/buffer/4/4/normal/1';

bench.http({
connections,
path,
}, () => {
server.close();
});
});
}
4 changes: 2 additions & 2 deletions benchmark/buffers/buffer-bytelength.js
Expand Up @@ -16,8 +16,8 @@ const chars = [
];

function main({ n, len, encoding }) {
var strings = [];
var results = [ len * 16 ];
let strings = [];
let results = [ len * 16 ];
if (encoding === 'buffer') {
strings = [ Buffer.alloc(len * 16, 'a') ];
} else {
Expand Down