Skip to content
Permalink
master
Switch branches/tags
Go to file
Notable changes:

Deprecations and Removals:

- **(SEMVER-MAJOR)** **fs**: remove permissive rmdir recursive
  (Antoine du Hamel) [#37216]
- **(SEMVER-MAJOR)** **fs**: runtime deprecate rmdir recursive option
  (Antoine du Hamel) [#37302]
- **(SEMVER-MAJOR)** **lib**: runtime deprecate access to
  process.binding('http_parser') (James M Snell) [#37813]
- **(SEMVER-MAJOR)** **lib**: runtime deprecate access to
  process.binding('url') (James M Snell) [#37799]
- **(SEMVER-MAJOR)** **lib**: make process.binding('util') return only
  type checkers (Anna Henningsen) [#37819]
- **(SEMVER-MAJOR)** **lib**: runtime deprecate access to
  process.binding('crypto') (James M Snell) [#37790]
- **(SEMVER-MAJOR)** **lib**: runtime deprecate access to
  process.binding('signal_wrap') (James M Snell) [#37800]
- **(SEMVER-MAJOR)** **lib**: runtime deprecate access to
  process.binding('v8') (James M Snell) [#37789]
- **(SEMVER-MAJOR)** **lib**: runtime deprecate access to
  process.binding('async_wrap') (James M Snell) [#37576]
- **(SEMVER-MAJOR)** **module**: remove module.createRequireFromPath
  (Antoine du Hamel) [#37201]
- **(SEMVER-MAJOR)** **module**: runtime deprecate subpath folder
  mappings (Antoine du Hamel) [#37215]
- **(SEMVER-MAJOR)** **module**: runtime deprecate "main" index and
  extension lookups (Antoine du Hamel) [#37206]
- **(SEMVER-MAJOR)** **module**: runtime deprecate invalid package.json
  main entries (Antoine du Hamel) [#37204]
- **(SEMVER-MAJOR)** **process**: runtime deprecate changing
  process.config (James M Snell) [#36902]

Stable Timers Promises API:

The Timers Promises API provides an alternative set of timer functions
that return Promise objects. Added in Node.js v15.0.0, in this release
they graduate from experimental status to stable.

Contributed by James Snell - [#38112]

Toolchain and Compiler Upgrades:

Node.js v16.0.0 will be the first release where we ship prebuilt
binaries for Apple Silicon. While we’ll be providing separate tarballs
for the Intel (`darwin-x64`) and ARM (`darwin-arm64`) architectures the
macOS installer (`.pkg`) will be shipped as a ‘fat’ (multi-architecture)
binary.

- **(SEMVER-MAJOR)** **build**: remove support for Python 2 (Christian
  Clauss) [#36691]
- **(SEMVER-MAJOR)** **build**: default PYTHON to python3 in Makefile
  (Michaël Zasso) [#37764]
- **build**: update Makefile to support fat binary (Ash Cripps)
  [#37861]
- **(SEMVER-MAJOR)** **build**: enable ASLR (PIE) on OS X (woodfairy)
  [#35704]
- **build**: warn for gcc versions earlier than 8.3.0 (Richard Lau)
  [#37935]
- **(SEMVER-MAJOR)** **doc**: update minimum supported Xcode to 11
  (Michaël Zasso) [#37872]
- **(SEMVER-MAJOR)** **doc**: update minimum supported GCC to 8.3
  (Michaël Zasso) [#37871]
- **(SEMVER-MAJOR)** **doc**: update AIX to GCC8 for v16.x (Ash Cripps)
  [#37677]
- **tools**: set arch in Distribution.xml (Ash Cripps)
  [#38261]

V8 9.0:

The V8 JavaScript engine is updated to V8 9.0, including performance
tweaks and improvements.

This update also brings the ECMAScript RegExp Match Indices, which
provide the start and end indices of the captured string. The indices
array is available via the `.indices` property on match objects when the
regular expression has the `/d` flag.

Contributed by Michaël Zasso - [#37587]

Other Notable Changes:

- **(SEMVER-MINOR)** **assert**: graduate assert.match and
  assert.doesNotMatch (James M Snell) [#38111]
- **(SEMVER-MAJOR)** **buffer**: expose btoa and atob as globals
  (James M Snell) [#37786]
- **(SEMVER-MAJOR)** **deps**: bump minimum ICU version to 68
  (Michaël Zasso) [#37330]
- **deps**: update ICU to 69.1 (Michaël Zasso)
  [#38178]
- **deps**: update llhttp to 6.0.0 (Fedor Indutny)
  [#38277]
- **deps**: upgrade npm to 7.10.0 (Ruy Adorno)
  [#38254]
- **(SEMVER-MINOR)** **http**: add http.ClientRequest.getRawHeaderNames()
  (simov) [#37660]
- **(SEMVER-MAJOR)** **lib,src**: update cluster to use Parent
  (Michael Dawson) [#36478]
- **(SEMVER-MINOR)** **module**: add support for `node:`‑prefixed
  `require(…)` calls (ExE Boss) [#37246]
- **(SEMVER-MINOR)** **perf_hooks**: add histogram option to timerify
  (James M Snell) [#37475]
- **(SEMVER-MINOR)** **repl**: add auto‑completion for `node:`‑prefixed
  `require(…)` calls (ExE Boss) [#37246]
- **(SEMVER-MINOR)** **util**: add getSystemErrorMap() impl
  (eladkeyshawn) [#38101]

Semver-Major Commits:

- **(SEMVER-MAJOR)** **async_hooks**: add thisArg to AsyncResource.bind
  (James M Snell) [#36782]
- **(SEMVER-MAJOR)** **buffer**: expose btoa and atob as globals
  (James M Snell) [#37786]
- **(SEMVER-MAJOR)** **build**: remove support for Python 2
  (Christian Clauss) [#36691]
- **(SEMVER-MAJOR)** **build**: default PYTHON to python3 in Makefile
  (Michaël Zasso) [#37764]
- **(SEMVER-MAJOR)** **build**: update Makefile to support fat binary
  (Ash Cripps) [#37861]
- **(SEMVER-MAJOR)** **build**: include minimal V8 headers in
  distribution (Michaël Zasso) [#37570]
- **(SEMVER-MAJOR)** **build**: use C++11 ABI with libstdc++
  (Anna Henningsen) [#36634]
- **(SEMVER-MAJOR)** **build**: enable ASLR (PIE) on OS X (woodfairy)
  [#35704]
- **(SEMVER-MAJOR)** **deps**: update V8 to 9.0.257.11 (Michaël Zasso)
  [#37587]
- **(SEMVER-MAJOR)** **deps**: bump minimum ICU version to 68
  (Michaël Zasso) [#37330]
- **(SEMVER-MAJOR)** **deps**: update V8 to 8.9.255.19 (Michaël Zasso)
  [#37330]
- **(SEMVER-MAJOR)** **deps**: update V8 to 8.8.278.17 (Michaël Zasso)
  [#36139]
- **(SEMVER-MAJOR)** **deps**: update V8 to 8.7.220 (Michaël Zasso)
  [#35700]
- **(SEMVER-MAJOR)** **dns**: use url module instead of punycode for
  IDNA (Antoine du Hamel) [#35091]
- **(SEMVER-MAJOR)** **doc**: update minimum supported Xcode to 11
  (Michaël Zasso) [#37872]
- **(SEMVER-MAJOR)** **doc**: update minimum supported GCC to 8.3
  (Michaël Zasso) [#37871]
- **(SEMVER-MAJOR)** **doc**: update AIX to GCC8 for v16.x (Ash Cripps)
  [#37677]
- **(SEMVER-MAJOR)** **doc**: add http.IncomingMessage#connection
  (Pranshu Srivastava) [#33768]
- **(SEMVER-MAJOR)** **events**: change EventTarget handler exception
  behavior (Nitzan Uziely) [#37237]
- **(SEMVER-MAJOR)** **fs**: remove permissive rmdir recursive
  (Antoine du Hamel) [#37216]
- **(SEMVER-MAJOR)** **fs**: add validation for fd and path
  (Dylan Elliott) [#35187]
- **(SEMVER-MAJOR)** **fs**: runtime deprecate rmdir recursive option
  (Antoine du Hamel) [#37302]
- **(SEMVER-MAJOR)** **fs**: fix flag and mode validation
  (James M Snell) [#37480]
- **(SEMVER-MAJOR)** **http**: use objects with null prototype in Agent
  (Michaël Zasso) [#36409]
- **(SEMVER-MAJOR)** **lib**: runtime deprecate access to
  process.binding('http_parser') (James M Snell)
  [#37813]
- **(SEMVER-MAJOR)** **lib**: runtime deprecate access to
  process.binding('url') (James M Snell)
  [#37799]
- **(SEMVER-MAJOR)** **lib**: make process.binding('util') return only
  type checkers (Anna Henningsen) [#37819]
- **(SEMVER-MAJOR)** **lib**: runtime deprecate access to
  process.binding('crypto') (James M Snell) [#37790]
- **(SEMVER-MAJOR)** **lib**: runtime deprecate access to
  process.binding('signal_wrap') (James M Snell) [#37800]
- **(SEMVER-MAJOR)** **lib**: runtime deprecate access to
  process.binding('v8') (James M Snell) [#37789]
- **(SEMVER-MAJOR)** **lib**: aggregate errors to avoid error swallowing
  (Antoine du Hamel) [#37460]
- **(SEMVER-MAJOR)** **lib**: runtime deprecate access to
  process.binding('async_wrap') (James M Snell) [#37576]
- **(SEMVER-MAJOR)** **lib**: remove usage of url.parse
  (raisinten) [#36853]
- **(SEMVER-MAJOR)** **lib**: add error handling for input stream
  (rexagod) [#31603]
- **(SEMVER-MAJOR)** **lib,src**: update cluster to use Parent
  (Michael Dawson) [#36478]
- **(SEMVER-MAJOR)** **module**: runtime deprecate subpath folder
  mappings (Antoine du Hamel) [#37215]
- **(SEMVER-MAJOR)** **module**: runtime deprecate "main" index and
  extension lookups (Antoine du Hamel) [#37206]
- **(SEMVER-MAJOR)** **module**: runtime deprecate invalid package.json
  main entries (Antoine du Hamel) [#37204]
- **(SEMVER-MAJOR)** **module**: remove module.createRequireFromPath
  (Antoine du Hamel) [#37201]
- **(SEMVER-MAJOR)** **module**: only set cache when finding module
  succeeds (Yongsheng Zhang) [#36642]
- **(SEMVER-MAJOR)** **perf_hooks**: make performance a global (James M
  Snell) [#37970]
- **(SEMVER-MAJOR)** **perf_hooks**: complete overhaul of the
  implementation (James M Snell) [#37136]
- **(SEMVER-MAJOR)** **process**: disallow adding options to
  process.allowedNodeEnvironmentFlags (Antoine du Hamel)
  [#36660]
- **(SEMVER-MAJOR)** **process**: runtime deprecate changing
  process.config (James M Snell) [#36902]
- **(SEMVER-MAJOR)** **readline**: cursorTo throw error on NaN
  (Zijian Liu) [#36379]
- **(SEMVER-MAJOR)** **src**: mark internally exported functions as
  explicitly internal (Tyler Ang-Wanek) [#37000]
- **(SEMVER-MAJOR)** **src**: inline AsyncCleanupHookHandle in headers
  (Tyler Ang-Wanek) [#37000]
- **(SEMVER-MAJOR)** **src**: clean up embedder API (Anna Henningsen)
  [#35897]
- **(SEMVER-MAJOR)** **worker**: send correct error status for worker
  init (Yash Ladha) [#36242]

PR-URL: #37678
12 contributors

Users who have contributed to this file

@targos @BethGriggs @BridgeAR @MylesBorins @codebytere @XhmikosR @richardlau @nschonni @iShibi @TheUnlocked @ruyadorno @devsnek
6088 lines (5678 sloc) 903 KB

Node.js 12 ChangeLog

LTS 'Erbium' Current
12.22.1
12.22.0
12.21.0
12.20.2
12.20.1
12.20.0
12.19.1
12.19.0
12.18.4
12.18.3
12.18.2
12.18.1
12.18.0
12.17.0
12.16.3
12.16.2
12.16.1
12.16.0
12.15.0
12.14.1
12.14.0
12.13.1
12.13.0
12.12.0
12.11.1
12.11.0
12.10.0
12.9.1
12.9.0
12.8.1
12.8.0
12.7.0
12.6.0
12.5.0
12.4.0
12.3.1
12.3.0
12.2.0
12.1.0
12.0.0

2021-04-06, Version 12.22.1 'Erbium' (LTS), @mylesborins

This is a security release.

Notable Changes

Vulnerabilities fixed:

  • CVE-2021-3450: OpenSSL - CA certificate check bypass with X509_V_FLAG_X509_STRICT (High)
  • CVE-2021-3449: OpenSSL - NULL pointer deref in signature_algorithms processing (High)
  • CVE-2020-7774: npm upgrade - Update y18n to fix Prototype-Pollution (High)

Commits

2021-03-30, Version 12.22.0 'Erbium' (LTS), @richardlau

Notable changes

The legacy HTTP parser is runtime deprecated

The legacy HTTP parser, selected by the --http-parser=legacy command line option, is deprecated with the pending End-of-Life of Node.js 10.x (where it is the only HTTP parser implementation provided) at the end of April 2021. It will now warn on use but otherwise continue to function and may be removed in a future Node.js 12.x release.

The default HTTP parser based on llhttp is not affected. By default it is stricter than the now deprecated legacy HTTP parser. If interoperability with HTTP implementations that send invalid HTTP headers is required, the HTTP parser can be started in a less secure mode with the --insecure-http-parser command line option.

Contributed by Beth Griggs #37603.

ES Modules

ES Modules are now considered stable.

Contributed by Guy Bedford #35781

node-api

Updated to node-api version 8 and added an experimental API to allow retrieval of the add-on file name.

Contributed by Gabriel Schulhof #37652 and #37195.

New API's to control code coverage data collection

v8.stopCoverage() and v8.takeCoverage() have been added.

Contributed by Joyee Cheung #33807.

New API to monitor event loop utilization by Worker threads

worker.performance.eventLoopUtilization() has been added.

Contributed by Trevor Norris #35664.

Commits

  • [1872625990] - (SEMVER-MINOR) deps: update to cjs-module-lexer@1.1.0 (Guy Bedford) #37712
  • [dfa04d9035] - deps: V8: cherry-pick beebee4f80ff (Peter Marshall) #37293
  • [bf8733fe22] - doc: mark modules implementation as stable (Guy Bedford) #35781
  • [0a35d49f56] - Revert "embedding: make Stop() stop Workers" (Anna Henningsen) #32623
  • [a0b610450a] - (SEMVER-MINOR) http: runtime deprecate legacy HTTP parser (Beth Griggs) #37603
  • [2da24ac302] - lib: add URI handling functions to primordials (Antoine du Hamel) #37394
  • [7b0ed4ba92] - module: improve support of data: URLs (Antoine du Hamel) #37392
  • [93dd799a86] - (SEMVER-MINOR) node-api: define version 8 (Gabriel Schulhof) #37652
  • [f5692093d3] - (SEMVER-MINOR) node-api: allow retrieval of add-on file name (Gabriel Schulhof) #37195
  • [6cef0e3678] - src,test: add regression test for nested Worker termination (Anna Henningsen) #32623
  • [364bf03a68] - test: fix races in test-performance-eventlooputil (Gerhard Stoebich) #36028
  • [d7a4ccdf09] - test: correct test-worker-eventlooputil (Gerhard Stoebich) #35891
  • [0f6d44500c] - test: add cpu-profiler-crash test (Santiago Gimeno) #37293
  • [86f34ee18c] - (SEMVER-MINOR) v8: implement v8.stopCoverage() (Joyee Cheung) #33807
  • [8ddea3f16d] - (SEMVER-MINOR) v8: implement v8.takeCoverage() (Joyee Cheung) #33807
  • [eec7542781] - (SEMVER-MINOR) worker: add eventLoopUtilization() (Trevor Norris) #35664

2021-02-23, Version 12.21.0 'Erbium' (LTS), @richardlau

This is a security release.

Notable changes

Vulnerabilities fixed:

  • CVE-2021-22883: HTTP2 'unknownProtocol' cause Denial of Service by resource exhaustion
    • Affected Node.js versions are vulnerable to denial of service attacks when too many connection attempts with an 'unknownProtocol' are established. This leads to a leak of file descriptors. If a file descriptor limit is configured on the system, then the server is unable to accept new connections and prevent the process also from opening, e.g. a file. If no file descriptor limit is configured, then this lead to an excessive memory usage and cause the system to run out of memory.
  • CVE-2021-22884: DNS rebinding in --inspect
    • Affected Node.js versions are vulnerable to denial of service attacks when the whitelist includes “localhost6”. When “localhost6” is not present in /etc/hosts, it is just an ordinary domain that is resolved via DNS, i.e., over network. If the attacker controls the victim's DNS server or can spoof its responses, the DNS rebinding protection can be bypassed by using the “localhost6” domain. As long as the attacker uses the “localhost6” domain, they can still apply the attack described in CVE-2018-7160.
  • CVE-2021-23840: OpenSSL - Integer overflow in CipherUpdate

Commits

2021-02-10, Version 12.20.2 'Erbium' (LTS), @ruyadorno

Notable changes

  • deps:
    • upgrade npm to 6.14.11 (Ruy Adorno) #37173

Commits

  • [e8a4e560ea] - async_hooks: fix leak in AsyncLocalStorage exit (Stephen Belanger) #35779
  • [427968d266] - deps: upgrade npm to 6.14.11 (Ruy Adorno) #37173
  • [cd9a8106be] - http: do not loop over prototype in Agent (Michaël Zasso) #36410
  • [4ac8f37800] - http2: check write not scheduled in scope destructor (David Halls) #36241

2021-01-04, Version 12.20.1 'Erbium' (LTS), @richardlau

Notable changes

This is a security release.

Vulnerabilities fixed:

  • CVE-2020-8265: use-after-free in TLSWrap (High) Affected Node.js versions are vulnerable to a use-after-free bug in its TLS implementation. When writing to a TLS enabled socket, node::StreamBase::Write calls node::TLSWrap::DoWrite with a freshly allocated WriteWrap object as first argument. If the DoWrite method does not return an error, this object is passed back to the caller as part of a StreamWriteResult structure. This may be exploited to corrupt memory leading to a Denial of Service or potentially other exploits
  • CVE-2020-8287: HTTP Request Smuggling in nodejs Affected versions of Node.js allow two copies of a header field in a http request. For example, two Transfer-Encoding header fields. In this case Node.js identifies the first header field and ignores the second. This can lead to HTTP Request Smuggling (https://cwe.mitre.org/data/definitions/444.html).
  • CVE-2020-1971: OpenSSL - EDIPARTYNAME NULL pointer de-reference (High) This is a vulnerability in OpenSSL which may be exploited through Node.js. You can read more about it in https://www.openssl.org/news/secadv/20201208.txt

Commits

2020-11-24, Version 12.20.0 'Erbium' (LTS), @mylesborins

Notable Changes

Commits

2020-11-16, Version 12.19.1 'Erbium' (LTS), @BethGriggs

Notable changes

This is a security release.

Vulnerabilities fixed:

  • CVE-2020-8277: Denial of Service through DNS request (High). A Node.js application that allows an attacker to trigger a DNS request for a host of their choice could trigger a Denial of Service by getting the application to resolve a DNS record with a larger number of responses.

Commits

2020-10-06, Version 12.19.0 'Erbium' (LTS), @codebytere

Notable Changes

Commits

  • [27ceec0bc6] - Forces Powershell to use tls1.2 (Bartosz Sosnowski) #33609
  • [d73b8346b8] - (SEMVER-MINOR) assert: port common.mustCall() to assert (ConorDavenport) #31982
  • [148383fdc3] - async_hooks: avoid GC tracking of AsyncResource in ALS (Gerhard Stoebich) #34653
  • [0a4401713a] - async_hooks: avoid unneeded AsyncResource creation (Gerhard Stoebich) #34616
  • [07968ac456] - async_hooks: improve property descriptors in als.bind (Gerhard Stoebich) #34620
  • [45d2f4dd3c] - (SEMVER-MINOR) async_hooks: add AsyncResource.bind utility (James M Snell) #34574
  • [61683e1763] - async_hooks: don't read resource if ALS is disabled (Gerhard Stoebich) #34617
  • [95e0f8ef52] - async_hooks: execute destroy hooks earlier (Gerhard Stoebich) #34342
  • [cfc769b048] - async_hooks: fix resource stack for deep stacks (Anna Henningsen) #34573
  • [b2241e9fc1] - async_hooks: improve resource stack performance (Anna Henningsen) #34319
  • [24fddba59b] - benchmark: add benchmark script for resourceUsage (Yash Ladha) #34691
  • [145691b83e] - benchmark: always throw the same Error instance (Anna Henningsen) #34523
  • [7bc26c2e8c] - bootstrap: correct --frozen-intrinsics override fix (Guy Bedford) #35041
  • [6ee800f0c3] - (SEMVER-MINOR) buffer: also alias BigUInt methods (Anna Henningsen) #34960
  • [9d07217d2c] - (SEMVER-MINOR) buffer: alias UInt ➡️ Uint in buffer methods (Anna Henningsen) #34729
  • [8f2d2aa9e3] - build: increase API requests for stale action (Phillip Johnsen) #35235
  • [ff0b1000d1] - build: filter issues & PRs to auto close by matching on stalled label (Phillip Johnsen) #35159
  • [06c5120eef] - (SEMVER-MINOR) build: add build flag for OSS-Fuzz integration (davkor) #34761
  • [9107595acd] - build: comment about auto close when stalled via with github action (Phillip Johnsen) #34555
  • [60774c08e3] - build: close stalled issues and PRs with github action (Phillip Johnsen) #34555
  • [9bb681458c] - build: use autorebase option for git node land (Denys Otrishko) #34969
  • [8d27998bd6] - build: use latest node-core-utils from npm (Denys Otrishko) #34969
  • [d2f44a74f8] - build: add support for build on arm64 (Evan Lucas) #34238
  • [ea56aea452] - build: run link checker in linter workflow (Richard Lau) #34810
  • [9e1f8fcb65] - build: implement a Commit Queue in Actions (Mary Marchini) #34112
  • [380600dbe5] - build: set --v8-enable-object-print by default (Mary Marchini) #34705
  • [191d0ae311] - build: add flag to build V8 with OBJECT_PRINT (Mary Marchini) #32834
  • [f6ad59b60f] - build: do not run auto-start-ci on forks (Evan Lucas) #34650
  • [90a44e198b] - build: increase startCI verbosity and fix job name (Mary Marchini) #34635
  • [7886e763f5] - build: don't run auto-start-ci on push (Mary Marchini) #34588
  • [544a722de4] - build: fix auto-start-ci script path (Mary Marchini) #34588
  • [e51b2680a8] - build: auto start Jenkins CI via PR labels (Mary Marchini) #34089
  • [343894f990] - build: toolchain.gypi and node_gyp.py cleanup (iandrc) #34268
  • [e7252df0b9] - build: fix test-ci-js task in Makefile (Rich Trott) #34433
  • [833474f844] - build: do not run benchmark tests on 'make test' (Rich Trott) #34434
  • [f14775e492] - build: add benchmark tests to CI runs (Rich Trott) #34288
  • [acf63b009d] - build,deps: add gen-openssl target (Evan Lucas) #34642
  • [b977672edc] - build,tools: fix cmd_regen_makefile (Daniel Bevenius) #34255
  • [17a098b9e6] - (SEMVER-MINOR) cli: add alias for report-directory to make it consistent (Ash Cripps) #33587
  • [b329a95c01] - console: document the behavior of console.assert() (iandrc) #34501
  • [ed72d83802] - crypto: simplify KeyObject constructor (Rich Trott) #35064
  • [b828560908] - (SEMVER-MINOR) crypto: allow KeyObjects in postMessage (Tobias Nießen) #33360
  • [2b7273b2ad] - crypto: improve invalid arg type message for randomInt() (Rich Trott) #35089
  • [bf5a85b43a] - crypto: improve randomInt out-of-range error message (Rich Trott) #35088
  • [5ef9ee4254] - crypto: fix randomInt range check (Tobias Nießen) #35052
  • [921129c1d8] - crypto: align parameter names with documentation (Rich Trott) #35054
  • [53c9975673] - (SEMVER-MINOR) crypto: add randomInt function (Oli Lalonde) #34600
  • [39dc4086fe] - crypto: avoid unitializing ECDH objects on error (Tobias Nießen) #34302
  • [865f8e85c4] - crypto: add OP flag constants added in OpenSSL v1.1.1 (Mateusz Krawczuk) #33929
  • [bf4e778e50] - crypto: move typechecking for timingSafeEqual into C++ (Anna Henningsen) #34141
  • [4ff6c77e17] - deps: V8: cherry-pick e06ace6b5cdb (Anna Henningsen) #34673
  • [5db8b357ce] - deps: V8: cherry-pick eec10a2fd8fa (Stephen Belanger) #33778
  • [e9e3390b18] - deps: V8: backport 3f071e3e7e15 (Milad Fa) #35305
  • [57564eb86d] - deps: V8: cherry-pick 71736859756b2bd0444bdb0a87a (Daniel Bevenius) #35205
  • [481cced20e] - deps: update brotli to v1.0.9 (Anna Henningsen) #34937
  • [f6c0b270e0] - deps: add openssl support for arm64 (Evan Lucas) #34238
  • [9b53b4ddf2] - deps: upgrade to libuv 1.39.0 (Colin Ihrig) #34915
  • [f87b6c0f7c] - deps: upgrade npm to 6.14.8 (Ruy Adorno) #34834
  • [f710dbf1b7] - deps: update to uvwasi 0.0.10 (Colin Ihrig) #34623
  • [7ef1f6a71d] - deps: upgrade npm to 6.14.7 (claudiahdz) #34468
  • [e9a514d13e] - deps: upgrade to libuv 1.38.1 (Colin Ihrig) #34187
  • [60b697de30] - deps: V8: cherry-pick 7889803e82d3 (Zhao Jiazhong) #34214
  • [de174cd1bc] - (SEMVER-MINOR) dgram: add IPv6 scope id suffix to received udp6 dgrams (Pekka Nikander) #14500
  • [be6aee9f53] - (SEMVER-MINOR) dgram: allow typed arrays in .send() (Sarat Addepalli) #22413
  • [1a8669d6ec] - (SEMVER-MINOR) doc: Add maxTotalSockets option to agent constructor (rickyes) #33617
  • [05da376c05] - doc: remove errors that were never released (Rich Trott) #34197
  • [831328bdb2] - doc: add note about multiple sync events and once (James M Snell) #34220
  • [a9f0fc9896] - doc: document behavior for once(ee, 'error') (James M Snell) #34225
  • [ed055c010d] - doc: replace http to https of link urls (sapics) #34158
  • [cef9921c74] - doc: specify how fs.WriteStream/ReadStreams are created (James M Snell) #34188
  • [4277d952c0] - doc: mark assert.CallTracker experimental (Ruben Bridgewater) #33124
  • [1a7082052f] - (SEMVER-MINOR) doc: add basic embedding example documentation (Anna Henningsen) #30467
  • [55dc7aaaa3] - doc: standardize on _backward_ (Rich Trott) #35243
  • [746517aad5] - doc: revise stability section of values doc (Rich Trott) #35242
  • [1018e520d6] - doc: remove excessive formatting in dgram.md (Rich Trott) #35234
  • [e026ce9b82] - doc: sort repl references in ASCII order (Rich Trott) #35230
  • [6669effc4d] - doc: clarify use of NAPI_EXPERIMENTAL (Michael Dawson) #35195
  • [89636e3257] - doc: update attributes used by n-api samples (#35220) (Gerhard Stoebich)
  • [e21d1cd58f] - doc: add issue labels sections to release guide (Michaël Zasso) #35224
  • [f050ecc3b1] - doc: fix small grammatical issues in timers.md (Turner Jabbour) #35203
  • [d81db1dcb9] - doc: add technical values document (Michael Dawson) #35145
  • [ee1bcdbe0d] - doc: remove "end user" (Rich Trott) #35200
  • [3ffaf66886] - doc: replace "you should do X" with "do X" (Rich Trott) #35194
  • [c606ed761c] - doc: fix missing word in dgram.md (Tom Atkinson) #35231
  • [3094ace6b0] - doc: fix deprecation documentation inconsistencies (Antoine du HAMEL) #35082
  • [2b86032728] - doc: fix broken link in crypto.md (Rich Trott) #35181
  • [4af4a809c2] - doc: remove problematic auto-linking of curl man pages (Rich Trott) #35174
  • [d94dac467b] - doc: update process.release (schamberg97) #35167
  • [52eba5b542] - doc: add missing copyFile change history (Shelley Vohr) #35056
  • [799fad73e9] - doc: perform cleanup on security-release-process.md (Rich Trott) #35154
  • [62436e6bab] - doc: fix minor punctuation issue in path.md (Amila Welihinda) #35127
  • [23dcfe52ac] - doc: fix left nav color contrast (Rich Trott) #35141
  • [745987e9f5] - doc: update contact info for Ash Cripps (Ash Cripps) #35139
  • [f3f72fd951] - doc: update my email address (Michael Dawson) #35121
  • [0f9908beef] - doc: add missing changes entry for breakEvalOnSigint REPL option (Anna Henningsen) #35143
  • [f0b9866a93] - doc: update security process (Michael Dawson) #35107
  • [255d47a6b1] - doc: fix broken link in perf_hooks.md (Rich Trott) #35113
  • [1e3982047d] - doc: fix broken link in http2.md (Rich Trott) #35112
  • [ec5a0ada51] - doc: fix broken link in fs.md (Rich Trott) #35111
  • [55b8caa958] - doc: fix broken links in deprecations.md (Rich Trott) #35109
  • [3954b8f12d] - doc: add note about path.basename on Windows (Tobias Nießen) #35065
  • [bf39354cbc] - doc: add link to safe integer definition (Tobias Nießen) #35049
  • [8ed4ab5ac4] - doc: format exponents better (Tobias Nießen) #35050
  • [b117467a77] - doc: improve link-local text in dgram.md (Rich Trott) #34868
  • [14d4bfa7c8] - doc: use _Static method_ instead of _Class Method_ (Rich Trott) #34659
  • [d05f615896] - doc: tidy some addons.md text (Rich Trott) #34654
  • [5846befacb] - doc: use _Class Method_ in async_hooks.md (Rich Trott) #34626
  • [2302dff635] - doc: fix typo in cli.md for report-dir (Ash Cripps) #33725
  • [65b7bf40b8] - doc: restore color for visited links (Rich Trott) #35108
  • [ef8d3731eb] - doc: change stablility-2 color for accessibility (Rich Trott) #35061
  • [7c947b26e8] - doc: add deprecated badge to legacy URL methods (Antoine du HAMEL) #34931
  • [fb1a1339de] - doc: spruce up user journey to local docs browsing (Derek Lewis) #34986
  • [08b56130db] - doc: update syntax highlighting color for accessibility (Rich Trott) #35063
  • [1ce26fe50c] - doc: remove style for empty links (Antoine du HAMEL) #35034
  • [3c984115a0] - doc: fix certificate display in tls doc (Rich Trott) #35032
  • [d7989bd1d7] - doc: use consistent header typography (Rich Trott) #35030
  • [80fa1f5722] - doc: fix malformed hashes in assert.md (Rich Trott) #35028
  • [2529ba261b] - doc: change color contrast for accessibility (Rich Trott) #35047
  • [8cc7a730a5] - doc: revise commit-queue.md (Rich Trott) #35006
  • [e7c74ebee2] - doc: change effected to affected (Turner Jabbour) #34989
  • [c68c6cd485] - doc: drop the --production flag for installing windows-build-tools (DeeDeeG) #34979
  • [4d28435104] - doc: fix broken link to response.writableFinished in deprecations doc (Rich Trott) #34983
  • [23389a082f] - doc: fix broken link to response.finished in deprecations doc (Rich Trott) #34982
  • [4e2415fc6a] - doc: fix broken link to writableEnded in deprecations doc (Rich Trott) #34984
  • [b575e6341c] - doc: fix typos in buffer doc (Robert Williams) #34981
  • [0695e243de] - doc: make minor improvements to query string sentence in http2.md (Rich Trott) #34929
  • [a5b4526f5d] - doc: simplify "make use of" to "use" (Rich Trott) #34861
  • [1e33bfcc6a] - doc: make minor fixes to maintaining-openssl.md (Rich Trott) #34926
  • [533d00d05d] - doc: fix CHANGELOG.md parsing issue (Juan José Arboleda) #34923
  • [1b27f098bd] - doc: provide more guidance about process.version (Rich Trott) #34909
  • [f50fec605d] - doc: use consistent typography for node-addon-api (Rich Trott) #34910
  • [222fcb1e66] - doc: use "previous"/"preceding" instead of "above" as modifier (Rich Trott) #34877
  • [961844d25b] - doc: improve fs doc intro (James M Snell) #34843
  • [26b060f4cd] - doc: indicate the format of process.version (Danny Guo) #34872
  • [da150f4e1e] - doc: fix ESM/CJS wrapper example (Maksim Sinik) #34853
  • [3ea7e03ae4] - doc: adopt Microsoft Style Guide officially (Rich Trott) #34821
  • [5f09f45d1f] - doc: use 'console' info string for console output (Rich Trott) #34837
  • [9d52480396] - doc: move addaleax to TSC emeritus (Anna Henningsen) #34809
  • [6d9e6f6186] - doc: remove space above version picker (Justice Almanzar) #34768
  • [c53c34c045] - doc: reorder deprecated tls docs (Jerome T.K. Covington) #34687
  • [edda492a94] - doc: fix file name to main.mjs and not main.js in esm.md (Frank Lemanschik) #34786
  • [3abcc74882] - doc: improve async_hooks snippets (Andrey Pechkurov) #34829
  • [fd4f561ce4] - doc: fix some typos and grammar mistakes (Hilla Shahrabani) #34800
  • [7a983f5f1d] - doc: remove "is recommended from crypto legacy API text (Rich Trott) #34697
  • [c7fc16e10a] - doc: fix broken links in commit-queue.md (Luigi Pinca) #34789
  • [09687b85f7] - doc: avoid _may_ in collaborator guide (Rich Trott) #34749
  • [f295869ba3] - doc: use sentence-casing for headers in collaborator guide (Rich Trott) #34713
  • [94039b75d3] - doc: edit (general) collaborator guide (Rich Trott) #34712
  • [653d88ac13] - doc: reduce repetitiveness on Consensus Seeking (Mary Marchini) #34702
  • [b28a6a57c4] - doc: remove typo in crypto.md (Rich Trott) #34698
  • [c189832647] - doc: n-api environment life cycle APIs are stable (Jim Schlight) #34641
  • [898947b5b1] - doc: add padding in the sidebar column (Antoine du HAMEL) #34665
  • [75ea463c25] - doc: use semantically appropriate tag for lines (Antoine du HAMEL) #34660
  • [0da5ac805c] - doc: add HPE_UNEXPECTED_CONTENT_LENGTH error description (Nikolay Krashnikov) #34596
  • [75ed2f6e2e] - doc: update http server response 'close' event (Renato Mariscal) #34472
  • [0ba9052b57] - doc: add writable and readable options to Duplex docs (Priyank Singh) #34383
  • [d0bf0f9c00] - doc: harden policy around objections (Mary Marchini) #34639
  • [e9a8f0c127] - doc: add Ricky Zhou to collaborators (rickyes) #34676
  • [fc612d5635] - doc: edit process.title note for brevity and clarity (Rich Trott) #34627
  • [3dda55aedf] - doc: update fs.watch() availability for IBM i (iandrc) #34611
  • [dc6e7f8584] - doc: fix typo in path.md (aetheryx) #34550
  • [260914c432] - doc: add release key for Ruy Adorno (Ruy Adorno) #34628
  • [e67bd9e050] - doc: clarify process.title inconsistencies (Corey Butler) #34557
  • [c56a29178b] - doc: document the connection event for HTTP2 & TLS servers (Tim Perry) #34531
  • [059db0591c] - doc: mention null special-case for napi\_typeof (Renée Kooi) #34577
  • [39f90346f8] - doc: add DerekNonGeneric to collaborators (Derek Lewis) #34602
  • [65a0ddbfc3] - doc: use consistent spelling for "falsy" (Rich Trott) #34545
  • [261fd11d4b] - doc: simplify and clarify console.assert() documentation (Rich Trott) #34544
  • [b4b2057fb6] - doc: use consistent capitalization for addons (Rich Trott) #34536
  • [2410a0f7cb] - doc: add mmarchini pronouns (Mary Marchini) #34586
  • [de03d635d4] - doc: update mmarchini contact info (Mary Marchini) #34586
  • [873e84366c] - doc: update .mailmap for mmarchini (Mary Marchini) #34586
  • [f350b512e7] - doc: use sentence-case for headers in SECURITY.md (Rich Trott) #34525
  • [057613c464] - Revert "doc: move ronkorving to emeritus" (Rich Trott) #34507
  • [9c725919fc] - doc: use sentence-case for GOVERNANCE.md headers (Rich Trott) #34503
  • [c95964afd6] - doc: revise onboarding-extras (Rich Trott) #34496
  • [3db13a8043] - doc: remove breaking-change-helper from onboarding-extras (Rich Trott) #34497
  • [cef1284a22] - doc: add Triagers section to table of contents in GOVERNANCE.md (Rich Trott) #34504
  • [8c0a781ee0] - doc: onboarding process extras (Gireesh Punathil) #34455
  • [b37b3f017f] - doc: mention triage in GOVERNANCE.md (Gireesh Punathil) #34426
  • [dfdedfd67a] - doc: move thefourtheye to emeritus (Rich Trott) #34471
  • [56d5ba852f] - doc: move ronkorving to emeritus (Rich Trott) #34471
  • [f70cbc63b8] - doc: match link text in index to doc headline (Rich Trott) #34449
  • [437b092eed] - doc: add AshCripps to collaborators (Ash Cripps) #34494
  • [c91e31ded2] - doc: add author-ready label ref to onboarding doc (Ruy Adorno) #34381
  • [319d570a47] - doc: add HarshithaKP to collaborators (Harshitha K P) #34417
  • [ae60f50a69] - doc: add rexagod to collaborators (Pranshu Srivastava) #34457
  • [8ee83a9d58] - doc: add statement of purpose to documentation style guide (Rich Trott) #34424
  • [39dea8f70d] - doc: add release key for Richard Lau (Richard Lau) #34397
  • [e15dc5f6ea] - doc: use correct identifier for callback argument (Rich Trott) #34405
  • [88bd124d5c] - doc: add changes metadata to TLS newSession event (Tobias Nießen) #34294
  • [0f050d4597] - doc: introduce a triager role (Gireesh Punathil) #34295
  • [857ba90138] - doc: strengthen suggestion in errors.md (Rich Trott) #34390
  • [7c7d3e3697] - doc: strengthen wording about fs.access() misuse (Rich Trott) #34352
  • [1d64c2c345] - doc: fix typo in assert.md (Ye-hyoung Kang) #34316
  • [7be8dded52] - doc: clarify conditional exports guidance (Guy Bedford) #34306
  • [c1b5c89e60] - doc: reword warnings about sockets passed to subprocesses (Rich Trott) #34273
  • [a2107101be] - doc: add danielleadams to collaborators (Danielle Adams) #34360
  • [eff1febe9e] - doc: buffer documentation improvements (James M Snell) #34230
  • [ba7ba4fe14] - doc: improve text in fs docs about omitting callbacks (Rich Trott) #34307
  • [c4f0cb65a1] - doc: add sxa as collaborator (Stewart X Addison) #34338
  • [513ad146c8] - doc: move sebdeckers to emeritus (Rich Trott) #34298
  • [a04d76d2ad] - doc: add ruyadorno to collaborators (Ruy Adorno) #34297
  • [3064755d31] - doc: move kfarnung to collaborator emeriti list (Rich Trott) #34258
  • [ea33e738fb] - doc: specify encoding in text/html examples (James M Snell) #34222
  • [2615e55d93] - doc: document the ready event for Http2Stream (James M Snell) #34221
  • [fbb36ed5c4] - doc: add comment to example about 2xx status codes (James M Snell) #34223
  • [f2f1537ea0] - doc: document that whitespace is ignored in base64 decoding (James M Snell) #34227
  • [0ebb30bb88] - doc: document security issues with url.parse() (James M Snell) #34226
  • [b60b6d7404] - doc: move digitalinfinity to emeritus (Rich Trott) #34191
  • [e65d6fddaf] - doc: move gibfahn to emeritus (Rich Trott) #34190
  • [c62941e84c] - doc: remove parenthetical \r\n comment in http and http2 docs (Rich Trott) #34178
  • [9bb70a498d] - doc: remove stability from unreleased errors (Rich Trott) #33764
  • [a7a564b418] - doc: util.debuglog callback (Bradley Meck) #33856
  • [089a4479a4] - doc: update wording in "Two reading modes" (Julien Poissonnier) #34119
  • [32ef1b3347] - doc: clarify that the ctx argument is optional (Luigi Pinca) #34097
  • [8960a63312] - doc: add a reference to the list of OpenSSL flags. (Mateusz Krawczuk) #34050
  • [4ac0df9160] - doc: no longer maintain a CNA structure (Sam Roberts) #33639
  • [75637e6867] - doc: use consistent naming in stream doc (Saleem) #30506
  • [71664158fc] - doc: clarify how to read process.stdin (Anentropic) #27350
  • [25939ccded] - doc: fix entry for napi\_create\_external\_buffer (Gabriel Schulhof) #34125
  • [5f131f71e9] - doc: fix source link margin to sub-header mark (Rodion Abdurakhimov) #33664
  • [f12c6f406a] - doc: improve async_hooks asynchronous context example (Denys Otrishko) #33730
  • [8fb265d03c] - doc: clarify esm conditional exports prose (Derek Lewis) #33886
  • [49383c8a25] - doc: improve triaging text in issues.md (Rich Trott) #34164
  • [a9302b50c9] - doc: simply dns.ADDRCONFIG language (Rich Trott) #34155
  • [1d25e70392] - doc: remove "considered" in errors.md (Rich Trott) #34152
  • [f6dff0a57e] - doc: simplify and clarify ReferenceError material in errors.md (Rich Trott) #34151
  • [e2fff1b1b0] - doc: add http highlight grammar (Derek Lewis) #33785
  • [19bfc012d1] - doc: move sam-github to TSC Emeriti (Sam Roberts) #34095
  • [c78ef2d35c] - doc: change "considered experimental" to "experimental" in n-api.md (Rich Trott) #34129
  • [3d5f7674e7] - doc: changed "considered experimental" to "experimental" in cli.md (Rich Trott) #34128
  • [6c739aac55] - doc: improve text in issues.md (falguniraina) #33973
  • [0672384be9] - doc: change "currently not considered public" to "not supported" (Rich Trott) #34114
  • [64e182553e] - doc: clarify that APIs are no longer experimental (Rich Trott) #34113
  • [e4ac393383] - doc: clarify O_EXCL text in fs.md (Rich Trott) #34096
  • [d67cb7ed0f] - doc: clarify ambiguous rdev description (Rich Trott) #34094
  • [c6ea3d6616] - doc: make minor improvements to paragraph in child_process.md (Rich Trott) #34063
  • [21b0132eec] - doc: improve paragraph in esm.md (Rich Trott) #34064
  • [66cd7bf69d] - doc: clarify require/import mutual exclusivity (Guy Bedford) #33832
  • [5ba0ba4b69] - doc: add dynamic source code links (Alec Davidson) #33996
  • [51cdd10ea5] - doc: mention errors thrown by methods called on an unbound dgram.Socket (Mateusz Krawczuk) #33983
  • [6d22ae3630] - doc: document n-api callback scope usage (Gabriel Schulhof) #33915
  • [e4854de18c] - doc: standardize constructor doc header layout (Rich Trott) #33781
  • [79c4c73f4c] - doc: split process.umask() entry into two (Rich Trott) #32711
  • [0a927216cf] - (SEMVER-MAJOR) doc: deprecate process.umask() with no arguments (Colin Ihrig) #32499
  • [05dae0231b] - doc,lib: remove unused error code (Rich Trott) #34792
  • [e8ddaa3f0e] - doc,n-api: add link to n-api tutorial website (Jim Schlight) #34870
  • [b47172d2ed] - doc,test: specify and test CLI option precedence rules (Anna Henningsen) #35106
  • [3975dd3525] - doc,tools: remove malfunctioning Linux manpage linker (Rich Trott) #34985
  • [f57104bb1a] - doc,tools: annotate broken links in actions workflow (Richard Lau) #34810
  • [7b29c91944] - doc,tools: syntax highlight api docs at compile-time (Francisco Ryan Tolmasky I) #34148
  • [7a8f59f1d6] - (SEMVER-MINOR) embedding: make Stop() stop Workers (Anna Henningsen) #32531
  • [ff0a0366f7] - (SEMVER-MINOR) embedding: provide hook for custom process.exit() behaviour (Anna Henningsen) #32531
  • [5c968a0f92] - errors: use ErrorPrototypeToString from primordials object (ExE Boss) #34891
  • [bf7b796491] - esm: better package.json parser errors (Guy Bedford) #35117
  • [9159649395] - esm: shorten ERR_UNSUPPORTED_ESM_URL_SCHEME message (Rich Trott) #34836
  • [551be2aeb9] - esm: improve error message of ERR_UNSUPPORTED_ESM_URL_SCHEME (Denys Otrishko) #34795
  • [5c3c8b3029] - events: variable originalListener is useless (fuxingZhang) #33596
  • [ff7fbc38f1] - events: improve listeners() performance (Brian White) #33863
  • [830574f199] - events: improve arrayClone performance (Brian White) #33774
  • [a19933f7fc] - (SEMVER-MINOR) fs: implement lutimes (Maël Nison) #33399
  • [3d1bdc254c] - (SEMVER-MINOR) http: add maxTotalSockets to agent class (rickyes) #33617
  • [fb68487b8c] - (SEMVER-MINOR) http: return this from IncomingMessage#destroy() (Colin Ihrig) #32789
  • [388d125a64] - (SEMVER-MINOR) http: expose host and protocol on ClientRequest (wenningplus) #33803
  • [756ac65218] - http: fix crash for sync write errors during header parsing (Anna Henningsen) #34251
  • [10815c4eff] - http: provide keep-alive timeout response header (Robert Nagy) #34561
  • [e52cc24e31] - http: don't write error to socket (Robert Nagy) #34465
  • [4e07faa7cf] - http: add note about timer unref (Robert Nagy) #34143
  • [1a09b4d2ca] - http: fixes memory retention issue with FreeList and HTTPParser (John Leidegren) #33190
  • [ec1df7b4c9] - http: fix incorrect headersTimeout measurement (Alex R) #32329
  • [ca836344fa] - http: don't throw on Uint8Arrays for http.ServerResponse#write (Pranshu Srivastava) #33155
  • [4079cdd5f2] - http2: fix Http2Response.sendDate (João Lucas Lucchetta) #34850
  • [7551a8be47] - (SEMVER-MINOR) http2: return this for Http2ServerRequest#setTimeout (Pranshu Srivastava) #33994
  • [4d0129aefb] - (SEMVER-MINOR) http2: do not modify explicity set date headers (Pranshu Srivastava) #33160
  • [45d712c6f6] - http2: add maxHeaderSize option to http2 (Priyank Singh) #33636
  • [4a2accb3d0] - internal: rename error-serdes for consistency (Evan Lucas) #33793
  • [9f16b7f332] - lib: improve debuglog() performance (Brian White) #32260
  • [efd46e3b61] - lib: always initialize esm loader callbackMap (Shelley Vohr) #34127
  • [f29ab4092f] - lib: add UNC support to url.pathToFileURL() (Matthew McEachen) #34743
  • [176f8c35c5] - lib: use non-symbols in isURLInstance check (Shelley Vohr) #34622
  • [633b4d5e62] - lib: absorb path error cases (Gireesh Punathil) #34519
  • [6054e213f9] - lib: simplify assignment (sapics) #33718
  • [32c51c6c7d] - lib: replace http to https of comment link urls (sapics) #34158
  • [d1be44c705] - meta: update module pages in CODEOWNERS (Antoine du Hamel) #34932
  • [09100ce4ce] - meta: add links to OpenJSF Slack (Mary Marchini) #35128
  • [c7eb462bde] - meta: update my collab entry (devsnek) #35160
  • [2b3d4bd550] - meta: remove non-existent quic from CODEOWNERS (Richard Lau) #34947
  • [36c705d83b] - meta: enable wasi for CODEOWNERS (gengjiawen) #34889
  • [fb98e762ce] - meta: fix codeowners docs path (Mary Marchini) #34811
  • [5119586c0b] - meta: add TSC as owner of governance-related docs (Mary Marchini) #34737
  • [6d6bd2dc3b] - meta: uncomment all codeowners (Mary Marchini) #34670
  • [ac0b9496e5] - meta: enable http2 team for CODEOWNERS (Rich Trott) #34534
  • [2ac653dc1a] - meta: make issue template mobile friendly and address nits (Derek Lewis) #34243
  • [6319c8f8bb] - meta: add N-API to codeowners coverage (Michael Dawson) #34039
  • [78ee480469] - meta: fixup CODEOWNERS so it hopefully works (James M Snell) #34147
  • [ed3278d55d] - module: fix crash on multiline named cjs imports (Christoph Tavan) #35275
  • [89a58f61d7] - module: use isURLInstance instead of instanceof (Antoine du HAMEL) #34951
  • [fc93cc95d8] - module: drop -u alias for --conditions (Richard Lau) #34935
  • [740c95819f] - module: fix check for package.json at volume root (Derek Lewis) #34595
  • [cecc193abc] - module: share CJS/ESM resolver fns, refactoring (Guy Bedford) #34744
  • [d9857fdbc2] - module: custom --conditions flag option (Guy Bedford) #34637
  • [3ad146d474] - module: use cjsCache over esm injection (Guy Bedford) #34605
  • [00aa935f5c] - module: self referential modules in repl or -r (Daniele Belardi) #32261
  • [d065334d42] - (SEMVER-MINOR) module: package "imports" field (Guy Bedford) #34117
  • [c9bd1a7d8a] - (SEMVER-MINOR) module: deprecate module.parent (Antoine du HAMEL) #32217
  • [b9d0f73c7c] - (SEMVER-MINOR) n-api: create N-API version 7 (Gabriel Schulhof) #35199
  • [a5aa3ddacf] - n-api: re-implement async env cleanup hooks (Gabriel Schulhof) #34819
  • [c440748779] - n-api: fix use-after-free with napi_remove_async_cleanup_hook (Anna Henningsen) #34662
  • [e7486d4df6] - (SEMVER-MINOR) n-api: support type-tagging objects (Gabriel Schulhof) #28237
  • [a6b655614f] - n-api: handle weak no-finalizer refs correctly (Gabriel Schulhof) #34839
  • [02fe75026e] - n-api: simplify bigint-from-word creation (Gabriel Schulhof) #34554
  • [ba2e341f1d] - n-api: run all finalizers via SetImmediate() (Gabriel Schulhof) #34386
  • [2cf231678b] - (SEMVER-MINOR) n-api,src: provide asynchronous cleanup hooks (Anna Henningsen) #34572
  • [3c4abe0e91] - net: replace usage of internal stream state with public api (Denys Otrishko) #34885
  • [6b5d679c80] - net: validate custom lookup() output (Colin Ihrig) #34813
  • [09056fdf38] - net: don't return the stream object from onStreamRead (Robey Pointer) #34375
  • [76ba129151] - net: allow wider regex in interface name (Stewart X Addison) #34364
  • [ce5d0db34b] - net: fix bufferSize (Robert Nagy) #34088
  • [2c409a2853] - (SEMVER-MINOR) perf_hooks: add idleTime and event loop util (Trevor Norris) #34938
  • [35ff592613] - policy: increase tests via permutation matrix (Bradley Meck) #34404
  • [0ede223fa8] - policy: add startup benchmark and make SRI lazier (Bradley Farias) #29527
  • [53eae0dafd] - process: correctly parse Unicode in NODE_OPTIONS (Bartosz Sosnowski) #34476
  • [6ccacdfddb] - querystring: manage percent character at unescape (Daijiro Wachi) #35013
  • [b7be751447] - repl: support --loader option in builtin REPL (Michaël Zasso) #33437
  • [63cd05b1d6] - src: fix ParseEncoding (sapics) #33957
  • [090f86955f] - src: fix minor comment typo in KeyObjectData (Daniel Bevenius) #34167
  • [50b1cde872] - (SEMVER-MINOR) src: store key data in separate class (Tobias Nießen) #33360
  • [bf3aaa31d0] - (SEMVER-MINOR) src: add NativeKeyObject base class (Tobias Nießen) #33360
  • [91978820fa] - (SEMVER-MINOR) src: rename internal key handles to KeyObjectHandle (Tobias Nießen) #33360
  • [667d520148] - (SEMVER-MINOR) src: introduce BaseObject base FunctionTemplate (Anna Henningsen) #33772
  • [3e21dd91c1] - (SEMVER-MINOR) src: add option to track unmanaged file descriptors (Anna Henningsen) #34303
  • [0affe8622e] - (SEMVER-MINOR) src: add public APIs to manage v8::TracingController (Anna Henningsen) #33850
  • [b7e4d5fc0e] - src: shutdown libuv before exit() (Anna Henningsen) #35021
  • [5e28660121] - (SEMVER-MINOR) src: allow embedders to disable esm loader (Shelley Vohr) #34060
  • [7e2cd728bb] - src: add callback scope for native immediates (Anna Henningsen) #34366
  • [147440510f] - src: flush V8 interrupts from Environment dtor (Anna Henningsen) #32523
  • [29620c41fb] - src: use env->RequestInterrupt() for inspector MainThreadInterface (Anna Henningsen) #32523
  • [2e4536e701] - src: use env->RequestInterrupt() for inspector io thread start (Anna Henningsen) #32523
  • [4704e586dc] - src: fix cleanup hook removal for InspectorTimer (Anna Henningsen) #32523
  • [4513b6a3df] - src: make Environment::interrupt\_data\_ atomic (Anna Henningsen) #32523
  • [1066341cd9] - src: initialize inspector before RunBootstrapping() (Anna Henningsen) #32672
  • [b8c9048a87] - (SEMVER-MINOR) src: shutdown platform from FreePlatform() (Anna Henningsen) #30467
  • [a28c990061] - (SEMVER-MINOR) src: fix what a dispose without checking (Jichan) #30467
  • [2f8f76736b] - (SEMVER-MINOR) src: allow non-Node.js TracingControllers (Anna Henningsen) #30467
  • [9b84ee6480] - (SEMVER-MINOR) src: add ability to look up platform based on Environment\* (Anna Henningsen) #30467
  • [a770a35f61] - (SEMVER-MINOR) src: make InitializeNodeWithArgs() official public API (Anna Henningsen) #30467
  • [8005e637b1] - (SEMVER-MINOR) src: add unique_ptr equivalent of CreatePlatform (Anna Henningsen) #30467
  • [4a6748d2c3] - (SEMVER-MINOR) src: add LoadEnvironment() variant taking a string (Anna Henningsen) #30467
  • [c5aa3f4adb] - (SEMVER-MINOR) src: provide a variant of LoadEnvironment taking a callback (Anna Henningsen) #30467
  • [808dedc4b3] - (SEMVER-MINOR) src: align worker and main thread code with embedder API (Anna Henningsen) #30467
  • [e809a5cd6b] - (SEMVER-MINOR) src: associate is_main_thread() with worker_context() (Anna Henningsen) #30467
  • [b7350e8c6e] - (SEMVER-MINOR) src: move worker_context from Environment to IsolateData (Anna Henningsen) #30467
  • [9a5cec3466] - (SEMVER-MINOR) src: fix memory leak in CreateEnvironment when bootstrap fails (Anna Henningsen) #30467
  • [7d92ac7a35] - (SEMVER-MINOR) src: make FreeEnvironment() perform all necessary cleanup (Anna Henningsen) #30467
  • [1d3638b189] - src: use enum for refed flag on native immediates (Anna Henningsen) #33444
  • [18e8687923] - (SEMVER-MINOR) src: allow preventing SetPromiseRejectCallback (Shelley Vohr) #34387
  • [403deb71d5] - (SEMVER-MINOR) src: allow setting a dir for all diagnostic output (Ash Cripps) #33584
  • [19b55be03b] - (SEMVER-MINOR) src: add equality operators for BaseObjectPtr (Anna Henningsen) #33772
  • [5eb1c9cee0] - src: add get/set pair for env context awareness (Shelley Vohr) #35024
  • [00e020b841] - src: disallow JS execution during exit() (Anna Henningsen) #35020
  • [26a596bf29] - src: fix abort on uv_loop_init() failure (Ben Noordhuis) #34874
  • [d953fa3038] - src: usage of modernize-use-equals-default (Yash Ladha) #34807
  • [541fb1b001] - src: prefer C++ empty() in boolean expressions (Tobias Nießen) #34432
  • [1549048307] - src: spin shutdown loop while immediates are pending (Anna Henningsen) #34662
  • [dabd04d79b] - src: fix size underflow in CallbackQueue (Anna Henningsen) #34662
  • [c0a961efc7] - src: fix unused namespace member in node_util (Andrey Pechkurov) #34565
  • [9f465009b1] - src: skip weak references for memory tracking (Anna Henningsen) #34469
  • [c302cae814] - src: remove unused variable in node_file.cc (sapics) #34317
  • [5a16a671ef] - src: avoid strcmp in SecureContext::Init (Tobias Nießen) #34329
  • [007b4c1ac9] - src: refactor CertCbDone to avoid goto statement (Tobias Nießen) #34325
  • [a2141d32ed] - src: remove redundant snprintf (Anna Henningsen) #34282
  • [6ddeee4b8d] - src: use FromMaybe instead of ToLocal in GetCert (Daniel Bevenius) #34276
  • [3901c7fd30] - src: add GetCipherValue function (Daniel Bevenius) #34287
  • [c1901896b7] - src: add encoding_type variable in WritePrivateKey (Daniel Bevenius) #34181
  • [00835434ef] - src: fix unused namespace member (Nikola Glavina) #34212
  • [88d12c00da] - src: remove unnecessary ToLocalChecked call (Daniel Bevenius) #33902
  • [a1da012f6b] - src: do not crash if ToggleAsyncHook fails during termination (Anna Henningsen) #34362
  • [2a7c65acaf] - src,doc: fix wording to refer to context, not environment (Turner Jabbour) #34880
  • [302d38974d] - src,doc: rephrase for clarity (Turner Jabbour) #34879
  • [4af336d741] - (SEMVER-MINOR) src,test: add full-featured embedder API test (Anna Henningsen) #30467
  • [d44b05b18c] - stream: allow using .push()/.unshift() during once('data') (Anna Henningsen) #34957
  • [2e77a10d9c] - stream: pipeline should use req.abort() to destroy response (Robert Nagy) #31054
  • [2f67e99a0b] - test: add arrayOfStreams to pipeline (rickyes) #34156
  • [3598056ac1] - test: add vm crash regression test (Anna Henningsen) #34673
  • [8545fb2aa9] - test: add common/udppair utility (James M Snell) #33380
  • [232f6e1154] - test: AsyncLocalStorage works with thenables (Gerhard Stoebich) #34008
  • [4cd7f5f147] - test: add non-ASCII character embedding test (Anna Henningsen) #33972
  • [b0c1acafda] - test: verify threadId in reports (Dylan Coakley) #31556
  • [bd71cdf153] - test: use common.buildType in embedding test (Anna Henningsen) #32422
  • [bdf6d41c72] - test: use InitializeNodeWithArgs in cctest (Anna Henningsen) #32406
  • [61eec0c6c7] - test: wait for message from parent in embedding cctest (Anna Henningsen) #32563
  • [cb635c2dc0] - (SEMVER-MINOR) test: add extended embedder cctest (Anna Henningsen) #30467
  • [f325c9544f] - (SEMVER-MINOR) test: re-enable cctest that was commented out (Anna Henningsen) #30467
  • [5a6bdd040d] - test: improve assertions in pummel/test-timers (Rich Trott) #35216
  • [942551e46f] - test: improve pummel/test-timers.js (Rich Trott) #35175
  • [43c0174867] - test: revise test-policy-integrity (Rich Trott) #35101
  • [d60c487c53] - test: remove setMaxListeners in test-crypto-random (Tobias Nießen) #35079
  • [867c4516af] - test: add regression tests for HTTP parser crash (Anna Henningsen) #34251
  • [627e484e62] - test: use mustCall() in test-http-timeout (Pooja D.P) #34996
  • [cd4b2aa891] - test: change var to let (Pooja D.P) #34902
  • [0bd176896e] - test: remove incorrect debug() in test-policy-integrity (Rich Trott) #34961
  • [327d00997d] - test: fix typo in test/parallel/test-icu-punycode.js (Daijiro Wachi) #34934
  • [3fd7889e30] - test: add readline test for escape sequence (Rich Trott) #34952
  • [46f94f9111] - test: make test-tls-reuse-host-from-socket pass without internet (Rich Trott) #34953
  • [76d991cf6b] - test: simplify test-vm-memleak (Rich Trott) #34881
  • [d016cdcaa9] - test: fix test-cluster-net-listen-relative-path.js to run in / (Rich Trott) #34820
  • [cc98103802] - test: run REPL preview test regardless of terminal type (Rich Trott) #34798
  • [4661b887cf] - test: modernize test-cluster-master-error (Anna Henningsen) #34685
  • [a4d50de661] - test: move test-inspector-already-activated-cli to parallel (Rich Trott) #34755
  • [4b22d335d1] - test: move execution of WPT to worker threads (Michaël Zasso) #34796
  • [ac776f43f4] - test: convert assertion that always fails to assert.fail() (Rich Trott) #34793
  • [a0ba41685b] - test: remove common.rootDir (Rich Trott) #34772
  • [5352cde7ee] - test: allow ENOENT in test-worker-init-failure (Rich Trott) #34769
  • [238d01f62f] - test: allow ENFILE in test-worker-init-failure (Rich Trott) #34769
  • [9cde4eb73a] - test: use process.env.PYTHON to spawn python (Anna Henningsen) #34700
  • [b4d9e0da6b] - test: remove error message checking in test-worker-init-failure (Rich Trott) #34727
  • [335b61ac74] - test: skip node-api/test_worker_terminate_finalization (Anna Henningsen) #34732
  • [e23f7ee1b9] - test: fix test_worker_terminate_finalization (Anna Henningsen) #34726
  • [b77309fe37] - test: split test-crypto-dh-hash (Rich Trott) #34631
  • [aa24b4a69d] - test: use block-scoping in test/pummel/test-timers.js (Rich Trott) #34630
  • [e30ddacddb] - test: remove test-child-process-fork-args flaky designation (Rich Trott) #34684
  • [7eb80403b5] - test: add debugging for callbacks in test-https-foafssl.js (Rich Trott) #34603
  • [4dbc787a2f] - test: add debugging for test-https-foafssl.js (Rich Trott) #34603
  • [71ee48863a] - test: change Fixes: to Refs: (Rich Trott) #34568
  • [09a6cefa94] - test: remove unneeded flag check in test-vm-memleak (Rich Trott) #34528
  • [17973b7d7c] - test: add ref comment to test-regress-GH-814_2 (Rich Trott) #34516
  • [f6c674029d] - test: add ref comment to test-regress-GH-814 (Rich Trott) #34516
  • [d8c5bdaa08] - test: remove superfluous check in pummel/test-timers (Rich Trott) #34488
  • [afd6e46772] - test: fix test-heapdump-zlib (Andrey Pechkurov) #34499
  • [72e0df3734] - test: remove duplicate checks in pummel/test-timers (Rich Trott) #34473
  • [4d4aa9a859] - test: delete invalid test (Anna Henningsen) #34445
  • [967334b9dc] - test: fixup worker + source map test (Anna Henningsen) #34446
  • [26c5f9febd] - test: force resigning of app (Colin Ihrig) #34331
  • [8cb306e5a4] - test: fix flaky test-watch-file (Rich Trott) #34420
  • [cc2643188f] - test: fix flaky test-heapdump-http2 (Rich Trott) #34415
  • [2137024a55] - test: do not write to fixtures dir in test-watch-file (Rich Trott) #34376
  • [95b2a39cf6] - test: remove common.localhostIPv6 (Rich Trott) #34373
  • [2ab3fccdbc] - test: fix test-net-pingpong pummel test for non-IPv6 hosts (Rich Trott) #34359
  • [c3ac5e945c] - test: fix flaky test-net-connect-econnrefused (Rich Trott) #34330
  • [bd3cef7e0f] - test: use mustCall() in pummel test (Rich Trott) #34327
  • [9741510336] - test: fix flaky test-http2-reset-flood (Rich Trott) #34318
  • [ed651374a4] - test: add n-api null checks for conversions (Gabriel Schulhof) #34142
  • [55ba743600] - test: add WASI test for file resizing (Colin Ihrig) #31617
  • [4ae34e8ea8] - test: skip an ipv6 test on IBM i (Xu Meng) #34209
  • [b7ae73bfe2] - test: add regression test for C++-created Buffer transfer (Anna Henningsen) #34140
  • [235417039f] - test: replace deprecated function call from test-repl-history-navigation (Rich Trott) #34199
  • [44246e6701] - test: skip some IBM i unsupported test cases (Xu Meng) #34118
  • [bb542176b0] - test: report actual error code on failure (Richard Lau) #34134
  • [09a12892e1] - test: update test-child-process-spawn-loop for Python 3 (Richard Lau) #34071
  • [26ede7f295] - test,doc: add missing uv_setup_args() calls (Colin Ihrig) #34751
  • [987e0cb785] - (SEMVER-MINOR) timers: allow timers to be used as primitives (Denys Otrishko) #34017
  • [9b27933549] - (SEMVER-MINOR) tls: make 'createSecureContext' honor more options (Mateusz Krawczuk) #33974
  • [c059d3d287] - tls: enable renegotiation when using BoringSSL (Jeremy Rose) #34832
  • [bcc0913564] - tls: remove setMaxSendFragment guards (Tobias Nießen) #34323
  • [68654da30d] - tls: remove unnecessary close listener (Robert Nagy) #34105
  • [55ed2d2280] - tools: update ESLint to 7.9.0 (Colin Ihrig) #35170
  • [a3c59d8707] - tools: fix docopen target (Antoine du HAMEL) #35062
  • [6d6c6fa929] - tools: fix doc build targets (Antoine du HAMEL) #35060
  • [1dce35d04a] - tools: add banner to lint-md.js by rollup.config.js (KuthorX) #34233
  • [0f6102065e] - tools: update ESLint to 7.8.1 (Colin Ihrig) #35004
  • [eeb8a4aaa0] - tools: update ESLint to 7.8.0 (Colin Ihrig) #35004
  • [b4b0dcd43e] - tools: add debug entitlements for macOS 10.15+ (Gabriele Greco) #34378
  • [a92aec137e] - tools: update ESLint to 7.6.0 (Colin Ihrig) #34589
  • [155f706ad0] - tools: add meta.fixable to fixable lint rules (Colin Ihrig) #34589
  • [aa15abb2be] - tools: update ESLint to 7.5.0 (Colin Ihrig) #34423
  • [0507535277] - tools: remove lint-js.js (Rich Trott) #30955
  • [fed08a8e49] - tools,doc: allow page titles to contain inline code (Antoine du HAMEL) #35003
  • [0ec3e6138e] - tools,doc: fix global table of content active element (Antoine du Hamel) #34976
  • [4a0c01e3d5] - tools,doc: remove "toc" anchor name (Rich Trott) #34893
  • [8d0c21fd24] - util: restrict custom inspect function + vm.Context interaction (Anna Henningsen) #33690
  • [9027a87f62] - util: print External address from inspect (unknown) #34398
  • [58cd76cb04] - util: improve getStringWidth performance (Ruben Bridgewater) #33674
  • [7f51e79511] - vm: add tests for function declarations using [[DefineOwnProperty]] (ExE Boss) #34032
  • [4913051ba6] - wasi: add __wasi_fd_filestat_set_times() test (Colin Ihrig) #34623
  • [2e95550476] - wasi: add reactor support (Gus Caplan) #34046
  • [139442c34e] - (SEMVER-MINOR) worker: add public method for marking objects as untransferable (Anna Henningsen) #33979
  • [44864d7385] - worker: do not crash when JSTransferable lists untransferable value (Anna Henningsen) #34766
  • [dafa380732] - (SEMVER-MINOR) worker: emit 'messagerror' events for failed deserialization (Anna Henningsen) #33772
  • [0d35eaa034] - (SEMVER-MINOR) worker: allow passing JS wrapper objects via postMessage (Anna Henningsen) #33772
  • [8e1698a784] - (SEMVER-MINOR) worker: allow transferring/cloning generic BaseObjects (Anna Henningsen) #33772
  • [b4819dba5c] - (SEMVER-MINOR) worker: add option to track unmanaged file descriptors (Anna Henningsen) #34303
  • [5e9f0cfa62] - worker: fix --abort-on-uncaught-exception handling (Anna Henningsen) #34724
  • [9173b09445] - (SEMVER-MINOR) worker: add stack size resource limit option (Anna Henningsen) #33085
  • [18ecaebdbb] - worker: unify custom error creation (Anna Henningsen) #33084
  • [c31b6bff34] - worker: fix nested uncaught exception handling (Anna Henningsen) #34310
  • [dd51ba3f93] - (SEMVER-MINOR) worker,fs: make FileHandle transferable (Anna Henningsen) #33772
  • [1b24d3a552] - zlib: remove redundant variable in zlibBufferOnEnd (Andrey Pechkurov) #34072
  • [33b22d7c4f] - (SEMVER-MINOR) zlib: add maxOutputLength option (unknown) #33516
  • [cda459ecb0] - zlib: replace usage of internal stream state with public api (Denys Otrishko) #34884
  • [d60b13f2e3] - zlib: switch to lazy init for zlib streams (Andrey Pechkurov) #34048

2020-09-15, Version 12.18.4 'Erbium' (LTS), @BethGriggs prepared by @targos

Notable Changes

This is a security release.

Vulnerabilities fixed:

  • CVE-2020-8201: HTTP Request Smuggling due to CR-to-Hyphen conversion (High).
  • CVE-2020-8252: fs.realpath.native on may cause buffer overflow (Medium).

Commits

2020-07-22, Version 12.18.3 'Erbium' (LTS), @codebytere

Notable Changes

  • deps:
    • upgrade npm to 6.14.6 (claudiahdz) #34246
    • update node-inspect to v2.0.0 (Jan Krems) #33447
    • uvwasi: cherry-pick 9e75217 (Colin Ihrig) #33521

Commits

  • [0d79c533ef] - async_hooks: callback trampoline for MakeCallback (Stephen Belanger) #33801
  • [bfffb977ad] - benchmark: fix async-resource benchmark (Anna Henningsen) #33642
  • [09277fa5e4] - benchmark: fixing http_server_for_chunky_client.js (Adrian Estrada) #33271
  • [5a6d80f25f] - buffer: remove hoisted variable (Nikolai Vavilov) #33470
  • [e057189ee8] - build: configure byte order for mips targets (Ben Noordhuis) #33898
  • [d77eaeefb8] - build: add target specific build_type variable (Daniel Bevenius) #33925
  • [d56585ec8d] - build: add LINT_CPP_FILES to checkimports check (Daniel Bevenius) #33697
  • [a5ce90c46b] - build: add --v8-lite-mode flag (Maciej Kacper Jagiełło) #33541
  • [11dad02e50] - build: fix python-version selection with actions (Richard Lau) #33589
  • [bba41bf6e1] - build: fix makefile script on windows (Thomas) #33136
  • [817f6593ee] - configure: account for CLANG_VENDOR when checking for llvm version (Nathan Blair) #33860
  • [a9c5b3348c] - console: name console functions appropriately (Ruben Bridgewater) #33524
  • [d8365bc71e] - console: mark special console properties as non-enumerable (Ruben Bridgewater) #33524
  • [80782cb261] - console: remove dead code (Ruben Bridgewater) #33524
  • [18dc03d6a5] - crypto: fix wrong error message (Ben Bucksch) #33482
  • [b64963e5c3] - deps: upgrade npm to 6.14.6 (claudiahdz) #34246
  • [9ee9688fe0] - deps: uvwasi: cherry-pick 9e75217 (Colin Ihrig) #33521
  • [8803d7e8cf] - deps: update node-inspect to v2.0.0 (Jan Krems) #33447
  • [5d3f818e9e] - dns: make dns.Resolver timeout configurable (Ben Noordhuis) #33472
  • [10b88cb117] - dns: use ternary operator simplify statement (Wenning Zhang) #33234
  • [fbd6fe5839] - doc: update code language flag for internal doc (Rich Trott) #33852
  • [24fd15778a] - doc: specify maxHeaderCount alias for maxHeaderListPairs (Pranshu Srivastava) #33519
  • [04ceeaf5eb] - doc: add allowed info strings to style guide (Derek Lewis) #34024
  • [ee36c87fd7] - doc: clarify thread-safe function references (legendecas) #33871
  • [30b5e76ffd] - doc: use npm team for npm upgrades in collaborator guide (Rich Trott) #33999
  • [06937249d0] - doc: correct default values in http2 docs (Rich Trott) #33997
  • [498dfba33a] - doc: use a single space between sentences (Rich Trott) #33995
  • [47ea3067d0] - doc: revise text in dns module documentation introduction (Rich Trott) #33986
  • [f29f77f111] - doc: update fs.md (Shakil-Shahadat) #33820
  • [ddc5afdddc] - doc: warn that tls.connect() doesn't set SNI (Alba Mendez) #33855
  • [732b80b474] - doc: fix lexical sorting of bottom-references in dns doc (Rich Trott) #33987
  • [6af2ed3fdc] - doc: change "GitHub Repo" to "Code repository" (Rich Trott) #33985
  • [322a51e582] - doc: use Class: consistently (Rich Trott) #33978
  • [410b23398d] - doc: update WASM code sample (Pragyan Das) #33626
  • [335f405f1b] - doc: link readable._read in stream.md (Pranshu Srivastava) #33767
  • [3789c28c89] - doc: specify default encoding in writable.write (Pranshu Srivastava) #33765
  • [5609b17e2d] - doc: move --force-context-aware option in cli.md (Daniel Bevenius) #33823
  • [f39ee7d245] - doc: add snippet for AsyncResource and EE integration (Andrey Pechkurov) #33751
  • [f8baeccaaa] - doc: use single quotes in --tls-cipher-list (Daniel Bevenius) #33709
  • [4654e2321b] - doc: fix misc. mislabeled code block info strings (Derek Lewis) #33548
  • [046dee6eb3] - doc: update V8 inspector example (Colin Ihrig) #33758
  • [d547d1c1bc] - doc: fix linting in doc-style-guide.md (Pranshu Srivastava) #33787
  • [3b437416d5] - doc: add formatting for version numbers to doc-style-guide.md (Rich Trott) #33755
  • [b00996ce35] - doc: remove "currently" from repl.md (Rich Trott) #33756
  • [7595d15286] - doc: remove "currently" from vm.md (Rich Trott) #33756
  • [36a8af7a5e] - doc: remove "currently" from addons.md (Rich Trott) #33756
  • [27e797687f] - doc: remove "currently" from util.md (Rich Trott) #33756
  • [94ac13678d] - doc: change "pre Node.js v0.10" to "prior to Node.js 0.10" (Rich Trott) #33754
  • [f1a810880e] - doc: normalize C++ code block info strings (Derek Lewis) #33483
  • [289d0bf105] - doc: remove default parameter value from header (Rich Trott) #33752
  • [35cee03849] - doc: remove shell dollar signs without output (Nick Schonning) #33692
  • [d10fac73a3] - doc: add lint disabling comment for collaborator list (Rich Trott) #33719
  • [8dbf3349d0] - doc: fix urls to avoid redirection (sapics) #33614
  • [5416635677] - doc: improve buffer.md a tiny bit (Tom Nagle) #33547
  • [a3b6095db1] - doc: normalize Markdown code block info strings (Derek Lewis) #33542
  • [4fcbfdc45c] - doc: normalize JavaScript code block info strings (Derek Lewis) #33531
  • [543605782d] - doc: outline when origin is set to unhandledRejection (Ruben Bridgewater) #33530
  • [7dc28ab4d3] - doc: update txt fandamental and raw code blocks (Zeke Sikelianos) #33028
  • [cf82adf87f] - doc: normalize Bash code block info strings (Derek Lewis) #33510
  • [7ea6b07b90] - doc: normalize shell code block info strings (Derek Lewis) #33486
  • [74a1493441] - doc: normalize C code block info strings (Derek Lewis) #33507
  • [281d7f74d8] - doc: correct tls.rootCertificates to match implementation (Eric Bickle) #33313
  • [6133639d53] - doc: fix Buffer.from(object) documentation (Nikolai Vavilov) #33327
  • [b599037f78] - doc: fix typo in pathToFileURL example (Antoine du HAMEL) #33418
  • [78734c2698] - doc: eliminate dead space in API section's sidebar (John Gardner) #33469
  • [c76ec4d007] - doc: fixed a grammatical error in path.md (Deep310) #33489
  • [1b76377bce] - doc: correct CommonJS self-resolve spec (Guy Bedford) #33391
  • [70d025f510] - doc: standardize on sentence case for headers (Rich Trott) #33889
  • [3e68d21c6f] - doc: use sentence-case for headings in docs (Rich Trott) #33889
  • [dfa8028254] - doc: fix readline key binding documentation (Ruben Bridgewater) #33361
  • [6f8b7a85d2] - doc,tools: properly syntax highlight API ref docs (Derek Lewis) #33442
  • [43d1d89d27] - domain: fix unintentional deprecation warning (Anna Henningsen) #34245
  • [ba476326dd] - domain: remove native domain code (Stephen Belanger) #33801
  • [76b06e53c6] - errors: fully inspect errors on exit (Ruben Bridgewater) #33523
  • [9111fab663] - esm: fix loader hooks doc annotations (Derek Lewis) #33563
  • [3559471153] - esm: share package.json cache between ESM and CJS loaders (Kirill Shatskiy) #33229
  • [d09f6d55c7] - esm: doc & validate source values for formats (Bradley Farias) #32202
  • [a76fa60c63] - fs: fix readdir failure when libuv returns UV_DIRENT_UNKNOWN (Kirill Shatskiy) #33395
  • [b92c0cb15c] - fs: fix realpath inode link caching (Denys Otrishko) #33945
  • [04fa6d675f] - fs: close file descriptor of promisified truncate (João Reis) #34239
  • [c9cf41d841] - fs: support util.promisify for fs.readv (Lucas Holmquist) #33590
  • [adb93f153b] - fs: unify style in preprocessSymlinkDestination (Bartosz Sosnowski) #33496
  • [5fb1cc8cc1] - fs: replace checkPosition with validateInteger (rickyes) #33277
  • [75107e23a8] - http2: always call callback on Http2ServerResponse#end (Pranshu Srivastava) #33911
  • [0f0720a665] - http2: add writable* properties to compat api (Pranshu Srivastava) #33506
  • [8def93429e] - http2: add type checks for Http2ServerResponse.end (Pranshu Srivastava) #33146
  • [a3b7e5992d] - http2: use Object.create(null) for getHeaders (Pranshu Srivastava) #33188
  • [bcdf4c808d] - http2: reuse ._onTimeout() in Http2Session and Http2Stream classes (rickyes) #33354
  • [103a9af673] - inspector: drop 'chrome-' from inspector url (Colin Ihrig) #33758
  • [0941635bb5] - inspector: throw error when activating an already active inspector (Joyee Cheung) #33015
  • [0197ea4e56] - lib: replace charCodeAt with fixed Unicode (rickyes) #32758
  • [69291e4b7d] - lib: add Int16Array primordials (Sebastien Ahkrin) #31205
  • [83c9364bf1] - lib: update TODO comments (Ruben Bridgewater) #33361
  • [a94e7dabcc] - lib: update executionAsyncId/triggerAsyncId comment (Daniel Bevenius) #33396
  • [857ff68485] - meta: introduce codeowners again (James M Snell) #33895
  • [f534ac06bd] - meta: fix a typo in the flaky test template (Colin Ihrig) #33677
  • [1376c3bab2] - meta: wrap flaky test template at 80 characters (Colin Ihrig) #33677
  • [b7ea7be2a8] - meta: add flaky test issue template (Ash Cripps) #33500
  • [0867ab7da5] - module: fix error message about importing names from cjs (Fábio Santos) #33882
  • [47f5eeb0d5] - n-api: add version to wasm registration (Gus Caplan) #34045
  • [2e97d82509] - n-api: document nextTick timing in callbacks (Mathias Buus) #33804
  • [90ddf0aa2e] - n-api: ensure scope present for finalization (Michael Dawson) #33508
  • [ed741ecb1e] - n-api: remove napi_env::CallIntoModuleThrow (Gabriel Schulhof) #33570
  • [0a949c3f93] - napi: add __wasm32__ guards (Gus Caplan) #33597
  • [7c7f5c8869] - net: refactor check for Windows (rickyes) #33497
  • [578e731321] - querystring: fix stringify for empty array (sapics) #33918
  • [13b693fd54] - querystring: improve stringify() performance (Brian White) #33669
  • [d3737a1c32] - src: add errorProperties on process.report (himself65) #28426
  • [b57778ff26] - src: tolerate EPERM returned from tcsetattr (patr0nus) #33944
  • [9e1185afee] - src: clang_format base_object (Yash Ladha) #33680
  • [69f962953c] - src: remove unnecessary calculation in base64.h (sapics) #33839
  • [b1c9f75a20] - src: use ToLocal in node_os.cc (wenningplus) #33939
  • [153f292a97] - src: handle empty Maybe(Local) in node_util.cc (Anna Henningsen) #33867
  • [6d5383de35] - src: improve indention for upd_wrap.cc (gengjiawen) #33976
  • [437f387de9] - src: reduce scope of code cache mutex (Anna Henningsen) #33980
  • [9199808355] - src: do not track BaseObjects via cleanup hooks (Anna Henningsen) #33809
  • [5b987c46b7] - src: remove ref to tools/generate_code_cache.js (Daniel Bevenius) #33825
  • [185657dfd7] - src: remove unused vector include in string_bytes (Daniel Bevenius) #33824
  • [ec2452c4af] - src: avoid unnecessary ToLocalChecked calls (Daniel Bevenius) #33824
  • [74843db28c] - src: simplify format in node_file.cc (himself65) #33660
  • [86283aaa6a] - src: handle missing TracingController everywhere (Anna Henningsen) #33815
  • [e07c1c2508] - src: simplify Reindent function in json_utils.cc (sapics) #33722
  • [449d9ec1c5] - src: add "missing" bash completion options (Daniel Bevenius) #33744
  • [4b4fb1381b] - src: use Check() instead of FromJust in environment (Daniel Bevenius) #33706
  • [6f1d38cd8f] - src: use ToLocal in SafeGetenv (Daniel Bevenius) #33695
  • [5b8cac8cf5] - src: remove unnecessary ToLocalChecked call (Daniel Bevenius) #33683
  • [eb8d6f5fd8] - src: simplify MaybeStackBuffer::capacity() (Ben Noordhuis) #33602
  • [e3beb781e0] - src: avoid OOB read in URL parser (Anna Henningsen) #33640
  • [99371ade2a] - src: use MaybeLocal.ToLocal instead of IsEmpty worker (Daniel Bevenius) #33599
  • [9c69296990] - src: don't use semicolon outside function (Shelley Vohr) #33592
  • [41d879616f] - src: remove unused using declarations (Daniel Bevenius) #33268
  • [103479a0c5] - src: use MaybeLocal.ToLocal instead of IsEmpty (Daniel Bevenius) #33554
  • [05cbd8f6f2] - src: use const in constant args.Length() (himself65) #33555
  • [48035a2a35] - src: use MaybeLocal::FromMaybe to return exception (Daniel Bevenius) #33514
  • [e1050344f8] - Revert "src: fix missing extra ca in tls.rootCertificates" (Eric Bickle) #33313
  • [77b6298b67] - src: remove BeforeExit callback list (Ben Noordhuis) #33386
  • [a522c0e2c7] - src: use MaybeLocal.ToLocal instead of IsEmpty (Daniel Bevenius) #33457
  • [0837c2cc99] - src: remove unused headers in src/util.h (Juan José Arboleda) #33070
  • [6f6fb1fcf5] - src: prefer make_unique (Michael Dawson) #33378
  • [c697b96dea] - src: remove unnecessary else in base_object-inl.h (Daniel Bevenius) #33413
  • [abf04b245a] - src,build: add --openssl-default-cipher-list (Daniel Bevenius) #33708
  • [62edaaefc2] - stream: fix the spellings (antsmartian) #33635
  • [998b22cbbc] - test: add test for Http2ServerResponse#[writableCorked,cork,uncork] (Pranshu Srivastava) #33956
  • [9b8695fb35] - test: account for non-node basename (Shelley Vohr) #33952
  • [b9f8034f95] - test: fix typo in common/index.js (gengjiawen) #33976
  • [7744f66e0d] - test: print arguments passed to mustNotCall function (Denys Otrishko) #33951
  • [b5113d0b53] - test: temporarily exclude test on arm (Michael Dawson) #33814
  • [c50bd2f954] - test: fix invalid regular expressions in case test-trace-exit (legendecas) #33769
  • [d374e76428] - test: changed function to arrow function (Sagar Jadhav) #33711
  • [0982bf4234] - test: uv_tty_init now returns EINVAL on IBM i (Xu Meng) #33629
  • [3032f0f38d] - test: make flaky test stricter (Robert Nagy) #33539
  • [ef27e6ce57] - test: mark test-dgram-multicast-ssmv6-multi-process flaky (AshCripps) #33498
  • [a131c72586] - tools: enable no-else-return lint rule (Luigi Pinca) #32667
  • [6651bde34e] - tools: update remark-preset-lint-node@1.15.1 to 1.16.0 (Rich Trott) #33852
  • [2e38f0dafd] - tools: remove superfluous regex in tools/doc/json.js (Rich Trott) #33998
  • [ba813dd0dd] - tools: prevent js2c from running if nothing changed (Daniel Bevenius) #33844
  • [fd5ab63d96] - tools: remove unused vector include in mkdcodecache (Daniel Bevenius) #33828
  • [54a4a816a4] - tools: update ESLint to 7.2.0 (Colin Ihrig) #33776
  • [5328089c91] - tools: remove unused using declarations code_cache (Daniel Bevenius) #33697
  • [2f02fbac3a] - tools: update remark-preset-lint-node from 1.15.0 to 1.15.1 (Rich Trott) #33727
  • [3d05e3d861] - tools: fix check-imports.py to match on word boundaries (Richard Lau) #33268
  • [ff4f9a9247] - tools: update ESLint to 7.1.0 (Colin Ihrig) #33526
  • [f495ab3dcb] - tools: add docserve target (Antoine du HAMEL) #33221
  • [a9dbb224af] - util: fix width detection for DEL without ICU (Ruben Bridgewater) #33650
  • [02ae3f5625] - util: support Combining Diacritical Marks for Symbols (Ruben Bridgewater) #33650
  • [524b230143] - util: gracefully handle unknown colors (Ruben Bridgewater) #33797
  • [e3533ab337] - util: mark classes while inspecting them (Ruben Bridgewater) #32332
  • [c4129f91e8] - vm: allow proxy callbacks to throw (Gus Caplan) #33808
  • [8adfb542eb] - wasi: allow WASI stdio to be configured (Colin Ihrig) #33544
  • [33984d6e4d] - wasi: simplify WASI memory management (Colin Ihrig) #33525
  • [5e5be9929b] - wasi: refactor and enable poll_oneoff() test (Colin Ihrig) #33521
  • [383c5b3962] - wasi: relax WebAssembly.Instance type check (Ben Noordhuis) #33431
  • [7df79f498c] - wasi,worker: handle termination exception (Ben Noordhuis) #33386
  • [3b46e7f148] - win,fs: use namespaced path in absolute symlinks (Bartosz Sosnowski) #33351
  • [4388dad537] - win,msi: add arm64 config for windows msi (Dennis Ameling) #33689
  • [032c64f1e4] - worker: fix variable referencing in template string (Harshitha KP) #33467
  • [1c64bc5e34] - worker: perform initial port.unref() before preload modules (Anna Henningsen) #33455
  • [c502384ab7] - worker: use _writev in internal communication (Anna Henningsen) #33454

2020-06-30, Version 12.18.2 'Erbium' (LTS), @BethGriggs

Notable changes

  • deps: V8: backport fb26d0bb1835 (Matheus Marchini) #33573
    • Fixes memory leak in PrototypeUsers::Add
  • src: use symbol to store AsyncWrap resource (Anna Henningsen) #31745
    • Fixes reported memory leak in #33468

Commits

2020-06-17, Version 12.18.1 'Erbium' (LTS), @codebytere

Notable Changes

  • deps:
    • V8: cherry-pick 548f6c81d424 (Dominykas Blyžė) #33484
    • update to uvwasi 0.0.9 (Colin Ihrig) #33445
    • upgrade to libuv 1.38.0 (Colin Ihrig) #33446
    • upgrade npm to 6.14.5 (Ruy Adorno) #33239

Commits

  • [ba93c8d87d] - async_hooks: clear async_id_stack for terminations in more places (Anna Henningsen) #33347
  • [964adfafa5] - buffer: improve copy() performance (Nikolai Vavilov) #33214
  • [af95bd70bd] - deps: V8: cherry-pick 548f6c81d424 (Dominykas Blyžė) #33484
  • [5c7176bf90] - deps: update to uvwasi 0.0.9 (Colin Ihrig) #33445
  • [402aa1b840] - deps: upgrade to libuv 1.38.0 (Colin Ihrig) #33446
  • [4d6f56a76a] - deps: upgrade npm to 6.14.5 (Ruy Adorno) #33239
  • [98a7026311] - doc: document module.path (Antoine du Hamel) #33323
  • [9572701705] - doc: add fs.open() multiple constants example (Ethan Arrowood) #33281
  • [7d8a226958] - doc: fix typos in handle scope descriptions (Tobias Nießen) #33267
  • [0c9b826ef8] - doc: update function description for decipher.setAAD (Jonathan Buhacoff) #33095
  • [4749156f4b] - doc: add comment about highWaterMark limit (Benjamin Gruenbaum) #33432
  • [a48aeb3f74] - doc: clarify about the Node.js-only extensions in perf_hooks (Joyee Cheung) #33199
  • [a9ed287f00] - doc: fix extension in esm example (Gus Caplan) #33408
  • [d2897a2836] - doc: enhance guides by fixing and making grammar more consistent (Chris Holland) #33152
  • [3d8ba292e2] - doc: add examples for implementing ESM (unknown) #33168
  • [318fcf8188] - doc: add note about clientError writable handling (Paolo Insogna) #33308
  • [30c9cb556f] - doc: fix typo in n-api.md (Daniel Bevenius) #33319
  • [9dde1db332] - doc: add warning for socket.connect reuse (Robert Nagy) #33204
  • [0c7cf24431] - doc: correct description of decipher.setAuthTag in crypto.md (Jonathan Buhacoff)
  • [59619b0c9a] - doc: mention python3-distutils dependency in BUILDING.md (osher) #33174
  • [0cee4c3eae] - doc: removed unnecessary util imports from vm examples (Karol Walasek) #33179
  • [903862089b] - doc: update Buffer(size) documentation (Nikolai Vavilov) #33198
  • [8b44be9b26] - doc: add Uint8Array to end and write (Pranshu Srivastava) #33217
  • [4a584200f8] - doc: specify unit of time passed to fs.utimes (Simen Bekkhus) #33230
  • [ad7a890597] - doc: add troubleshooting guide for AsyncLocalStorage (Andrey Pechkurov) #33248
  • [2262962ab7] - doc: remove AsyncWrap mentions from async_hooks.md (Andrey Pechkurov) #33249
  • [ac5cdd682a] - doc: add warnings about transferring Buffers and ArrayBuffer (James M Snell) #33252
  • [033bc96ec1] - doc: update napi_async_init documentation (Michael Dawson) #33181
  • [ea3a68f74f] - doc: doc and test URLSearchParams discrepancy (James M Snell) #33236
  • [c6cf0483f2] - doc: explicitly doc package.exports is breaking (Myles Borins) #33074
  • [e572cf93e5] - doc: fix style and grammer in buffer.md (Nikolai Vavilov) #33194
  • [5d80576889] - errors: skip fatal error highlighting on windows (Thomas) #33132
  • [a029dca90e] - esm: improve commonjs hint on module not found (Antoine du Hamel) #33220
  • [c129e8809e] - fs: forbid concurrent operations on Dir handle (Anna Henningsen) #33274
  • [aa4611cccb] - fs: clean up Dir.read() uv_fs_t data before calling into JS (Anna Henningsen) #33274
  • [fa4a37c57b] - http2: comment on usage of Object.create(null) (Pranshu Srivastava) #33183
  • [66dbaff848] - http2: add bytesWritten test for Http2Stream (Pranshu Srivastava) #33162
  • [59769c4d14] - lib: fix typo in timers insert function comment (Daniel Bevenius) #33301
  • [6881410951] - lib: refactored scheduling policy assignment (Yash Ladha) #32663
  • [9017bce54b] - lib: fix grammar in internal/bootstrap/loaders.js (szTheory) #33211
  • [d64dbfa1e7] - meta: add issue template for API reference docs (Derek Lewis) #32944
  • [4f6e4ae49d] - module: add specific error for dir import (Antoine du HAMEL) #33220
  • [77caf92314] - module: better error for named exports from cjs (Myles Borins) #33256
  • [82da74b1cd] - n-api: add uint32 test for -1 (Gabriel Schulhof)
  • [68551d22d2] - perf_hooks: fix error message for invalid entryTypes (Michaël Zasso) #33285
  • [e67df04df2] - src: use BaseObjectPtr in StreamReq::Dispose (James M Snell) #33102
  • [c797c7c7ab] - src: reduce duplication in RegisterHandleCleanups (Daniel Bevenius) #33421
  • [548db2e5b9] - src: remove unused IsolateSettings variable (Daniel Bevenius) #33417
  • [e668376b5b] - src: remove unused misc variable (Daniel Bevenius) #33417
  • [9883ba6ddd] - src: add promise_resolve to SetupHooks comment (Daniel Bevenius) #33365
  • [b924910fe7] - src: distinguish refed/unrefed threadsafe Immediates (Anna Henningsen) #33320
  • [29d24db914] - src: add #include <string> in json_utils.h (Cheng Zhao) #33332
  • [a0bc2e3b64] - src: replace to CHECK_NOT_NULL in node_crypto (himself65) #33383
  • [1f159e45f2] - src: add primordials to arguments comment (Daniel Bevenius) #33318
  • [fe780a5fe0] - src: remove unused using declarations in node.cc (Daniel Bevenius) #33261
  • [82c43d1594] - src: delete unused variables to resolve compile time print warning (rickyes) #33358
  • [548672d39c] - src: use MaybeLocal.ToLocal instead of IsEmpty (Daniel Bevenius) #33312
  • [f27ae6ef46] - src: fix typo in comment in async_wrap.cc (Daniel Bevenius) #33350
  • [b6300793fb] - src: remove unnecessary Isolate::GetCurrent() calls (Anna Henningsen) #33298
  • [642f81317e] - src: fix invalid windowBits=8 gzip segfault (Ben Noordhuis) #33045
  • [a5e8c5ce0d] - src: split out callback queue implementation from Environment (Anna Henningsen) #33272
  • [ed62d43e79] - src: clean up large pages code (Gabriel Schulhof) #33255
  • [c05483483f] - Revert "src: add test/abort build tasks" (Richard Lau) #33196
  • [b43fc64aa7] - Revert "src: add aliased-buffer-overflow abort test" (Richard Lau) #33196
  • [edf75e4299] - src: use basename(argv0) for --trace-uncaught suggestion (Anna Henningsen) #32798
  • [4294d92b26] - stream: make from read one at a time (Robert Nagy) #33201
  • [194789f25b] - stream: make all streams error in a pipeline (Matteo Collina) #30869
  • [5da7d52a9f] - test: regression tests for async_hooks + Promise + Worker interaction (Anna Henningsen) #33347
  • [9f594be75a] - test: fix test-dns-idna2008 (Rich Trott) #33367
  • [33a787873f] - test: refactor WPTRunner (Joyee Cheung) #33297
  • [fa1631355f] - test: update WPT interfaces and hr-time (Joyee Cheung) #33297
  • [c459832e4b] - test: fix test-net-throttle (Rich Trott) #33329
  • [cd92052935] - test: add hr-time Web platform tests (Michaël Zasso) #33287
  • [0177cbf9e0] - test: rename test-lookupService-promises (rickyes) #33100
  • [139eb6bd68] - test: skip some console tests on dumb terminal (Adam Majer) #33165
  • [1766514c5b] - test: add tests for options.fs in fs streams (Julian Duque) #33185
  • [7315c2288a] - tls: fix --tls-keylog option (Alba Mendez) #33366
  • [e240d56983] - tools: update dependencies for markdown linting (Rich Trott) #33412
  • [2645b1c85b] - tools: update ESLint to 7.0.0 (Colin Ihrig) #33316
  • [cdd7d3a66d] - tools: remove obsolete no-restricted-syntax eslint rules (Ruben Bridgewater) #32161
  • [5d5e66c10c] - tools: add eslint rule to only pass through 'test' to debuglog (Ruben Bridgewater) #32161
  • [22f2c2c871] - wasi: fix poll_oneoff memory interface (Colin Ihrig) #33250
  • [33aacbefb1] - wasi: prevent syscalls before start (Tobias Nießen) #33235
  • [5eed20b3b7] - worker: fix race condition in node_messaging.cc (Anna Henningsen) #33429
  • [b4d903402b] - worker: fix crash when .unref() is called during exit (Anna Henningsen) #33394
  • [8a926982e5] - worker: call CancelTerminateExecution() before exiting Locker (Anna Henningsen) #33347
  • [631e433cf5] - zlib: reject windowBits=8 when mode=GZIP (Ben Noordhuis) #33045

2020-06-02, Version 12.18.0 'Erbium' (LTS), @targos

Notable changes

This is a security release.

Vulnerabilities fixed:

  • CVE-2020-8172: TLS session reuse can lead to host certificate verification bypass (High).
  • CVE-2020-11080: HTTP/2 Large Settings Frame DoS (Low).
  • CVE-2020-8174: napi_get_value_string_*() allows various kinds of memory corruption (High).

Commits

2020-05-26, Version 12.17.0 'Erbium' (LTS), @targos

Notable Changes

ECMAScript Modules - --experimental-modules flag removal

As of Node.js 12.17.0, the --experimental-modules flag is no longer necessary to use ECMAScript modules (ESM). However, the ESM implementation in Node.js remains experimental. As per our stability index: “The feature is not subject to Semantic Versioning rules. Non-backward compatible changes or removal may occur in any future release.” Users should be cautious when using the feature in production environments.

Unlike Node.js 14, using ESM will still emit a runtime experimental warning, either when a module is used at the application's entrypoint or the first time dynamic import() is called.

Please keep in mind that the implementation of ESM in Node.js differs from the developer experience you might be familiar with. Most transpilation workflows support features such as named exports from CommonJS module imports, optional file extensions or JSON modules that the Node.js ESM implementation does not support. It is highly likely that modules from transpiled environments will require a certain degree of refactoring to work in Node.js. It is worth mentioning that many of our design decisions were made with two primary goals. Spec compliance and Web Compatibility. It is our belief that the current implementation offers a future proof model to authoring ESM modules that paves the path to Universal JavaScript. Please read more in our documentation.

The ESM implementation in Node.js is still experimental but we do believe that we are getting very close to being able to call ESM in Node.js “stable”. Removing the flag is a huge step in that direction.

We expect to remove the warning Node.js 12 later this year, possibly in late October, when Node.js 14 will become LTS.

AsyncLocalStorage API (experimental)

The AsyncLocalStorage class has been introduced in the Async Hooks module.

This API allows keeping a context across asynchronous operations. For instance, if a sequence id is stored within an instance of AsyncLocalStorage for each HTTP request entering in a server, it will be possible to retrieve this id without having access the current HTTP request:

const http = require('http');
const { AsyncLocalStorage } = require('async_hooks');

const asyncLocalStorage = new AsyncLocalStorage();

function logWithId(msg) {
  const id = asyncLocalStorage.getStore();
  console.log(`${id !== undefined ? id : '-'}: `, msg);
}

let idSeq = 0;
http.createServer((req, res) => {
  asyncLocalStorage.run(idSeq++, () => {
    logWithId('start');
    // Imagine any chain of async operations here.
    setImmediate(() => {
      logWithId('finish');
      res.end();
    });
  });
}).listen(8080);

In this example, the logWithId function will always know what the current request id is, even when there are multiple requests in parallel.

What can this API be used for

Use cases of this API include:

  • Logging
  • User identification
  • Performance tracking
  • Error tracking and handling
  • Much more!

Note: This API is still experimental and some methods might change in future releases of Node.js

Contributed by Vladimir de Turckheim - #26540.

REPL previews

If further input is predicable, a suggestion is inserted as preview.

The REPL now supports previews similar to the Chrome DevTools console. An input suggestion is inserted as preview in case further input is predicable. The suggestion may be accepted by either pressing <TAB> or <RIGHT> at the end of the input. On top of that, output is previewed when entering variable names or function calls that have no side effect.

image image

Check the preview in action and try it out on your own. Just access the REPL on your terminal by starting the Node.js executable without any further command.

Contributed by Ruben Bridgewater - #30907, #30811.

REPL reverse-i-search

The REPL supports bi-directional reverse-i-search similar to ZSH. It is triggered with <ctrl> + R to search backwards and <ctrl> + S to search forwards.

Entries are accepted as soon as any button is pressed that doesn't correspond with the reverse search. Cancelling is possible by pressing escape or <ctrl> + C.

Changing the direction immediately searches for the next entry in the expected direction from the current position on.

image

Reverse-i-search in action.

Contributed by Ruben Bridgewater - #31006.

REPL substring-based search

It is now possible to access former history entries very fast by writing the first characters of the formerly entered code you are looking for. Then push <UP> or <DOWN> to go through the history entries that start with those characters.

It works similar to the Fish Shell substring-based history search.

Contributed by Ruben Bridgewater - #31112.

Error monitoring

Monitoring error events

It is now possible to monitor 'error' events on an EventEmitter without consuming the emitted error by installing a listener using the symbol EventEmitter.errorMonitor:

const myEmitter = new MyEmitter();

myEmitter.on(EventEmitter.errorMonitor, (err) => {
  MyMonitoringTool.log(err);
});

myEmitter.emit('error', new Error('whoops!'));
// Still throws and crashes Node.js

Contributed by Gerhard Stoebich - #30932.

Monitoring uncaught exceptions

It is now possible to monitor 'uncaughtException' events without overriding the default behavior that exits the process by installing an 'uncaughtExceptionMonitor' listener:

process.on('uncaughtExceptionMonitor', (err, origin) => {
  MyMonitoringTool.logSync(err, origin);
});

// Intentionally cause an exception, but do not catch it.
nonexistentFunc();
// Still crashes Node.js

Contributed by Gerhard Stoebich - #31257.

File system APIs

New function: fs.readv

This new function (along with its sync and promisified versions) takes an array of ArrayBufferView elements and will write the data it reads sequentially to the buffers.

Contributed by Sk Sajidul Kadir - #32356.

Optional parameters in fs.read

A new overload is available for fs.read (along with its sync and promisified versions), which allows to optionally pass any of the offset, length and position parameters.

Contributed by Lucas Holmquist - #31402.

Console groupIndentation option

The Console constructor (require('console').Console) now supports different group indentations.

This is useful in case you want different grouping width than 2 spaces.

const { Console } = require('console');
const customConsole = new Console({
  stdout: process.stdout,
  stderr: process.stderr,
  groupIndentation: 10
});

customConsole.log('foo');
// 'foo'
customConsole.group();
customConsole.log('foo');
//           'foo'

Contributed by rickyes - #32964.

maxStringLength option for util.inspect()

It is now possible to limit the length of strings while inspecting objects. This is possible by passing through the maxStringLength option similar to:

const { inspect } = require('util');

const string = inspect(['a'.repeat(1e8)], { maxStringLength: 10 });

console.log(string);
// "[ 'aaaaaaaaaa'... 99999990 more characters ]"

Contributed by rosaxny - #32392.

Stable N-API release 6

The following N-API features are now stable as part of the N-API 6 release:

Stable diagnostic reports

The Diagnostic Report feature is now stable and supports a new --report-compact flag to write the reports in a compact, single-line JSON format, more easily consumable by log processing systems than the default multi-line format designed for human consumption.

Increase of the default server headers timeout

The default value of server.headersTimeout for http and https servers was increased from 40000 to 60000 (60 seconds). This to accomodate for systems like AWS ELB that have a timeout of 60 seconds.

Contributed by Tim Costa - #30071.

Other changes

  • cli:
    • Added a --trace-sigint CLI flag that will print the current execution stack on SIGINT (legendecas) #29207.
  • crypto:
    • Various crypto APIs now support Diffie-Hellman secrets (Tobias Nießen) #31178.
  • dns:
    • Added the dns.ALL flag, that can be passed to dns.lookup() with dns.V4MAPPED to return resolved IPv6 addresses as well as IPv4 mapped IPv6 addresses (murgatroid99) #32183.
  • module
    • Added a new experimental API to interact with Source Map V3 data (Benjamin Coe) #31132.
  • worker:
    • Added support for passing a transferList along with workerData to the Worker constructor (Juan José Arboleda) #32278.

Commits

Semver-minor commits

  • [a35e88caf5] - (SEMVER-MINOR) async_hooks: merge run and exit methods (Andrey Pechkurov) #31950
  • [3eb34068a2] - (SEMVER-MINOR) async_hooks: prevent sync methods of async storage exiting outer context (Stephen Belanger) #31950
  • [22db34caa7] - (SEMVER-MINOR) async_hooks: add sync enterWith to ALS (Stephen Belanger) #31945
  • [16e8b11708] - (SEMVER-MINOR) async_hooks: introduce async-context API (Vladimir de Turckheim) #26540
  • [f7adfcc1df] - (SEMVER-MINOR) async_hooks: add executionAsyncResource (Matteo Collina) #30959
  • [984ae304f2] - (SEMVER-MINOR) build: make --without-report a no-op (Colin Ihrig) #32242
  • [e67b97ee53] - (SEMVER-MINOR) cli: allow --huge-max-old-generation-size in NODE_OPTIONS (Anna Henningsen) #32251
  • [154b18ffca] - (SEMVER-MINOR) console: support console constructor groupIndentation option (rickyes) #32964
  • [40253cc1c8] - (SEMVER-MINOR) crypto: add crypto.diffieHellman (Tobias Nießen) #31178
  • [1977136a19] - (SEMVER-MINOR) crypto: add DH support to generateKeyPair (Tobias Nießen) #31178
  • [9f85585b13] - (SEMVER-MINOR) crypto: add key type 'dh' (Tobias Nießen) #31178
  • [6ffe4ed3b5] - (SEMVER-MINOR) deps: upgrade to libuv 1.37.0 (Colin Ihrig) #32866
  • [2d7a7592ec] - (SEMVER-MINOR) deps: upgrade to libuv 1.36.0 (Colin Ihrig) #32866
  • [ae83f0f993] - (SEMVER-MINOR) deps: upgrade to libuv 1.35.0 (Colin Ihrig) #32204
  • [b7d264edaf] - (SEMVER-MINOR) dns: add dns.ALL hints flag constant (murgatroid99) #32183
  • [fd2486ea44] - (SEMVER-MINOR) doc: update stability of report features (Colin Ihrig) #32242
  • [90d35adccd] - (SEMVER-MINOR) doc,lib,src,test: make --experimental-report a nop (Colin Ihrig) #32242
  • [93226a5097] - (SEMVER-MINOR) esm: unflag --experimental-modules (Guy Bedford) #29866
  • [8c497f8969] - (SEMVER-MINOR) events: allow monitoring error events (Gerhard Stoebich) #30932
  • [a100709fa8] - (SEMVER-MINOR) fs: make parameters optional for readSync (Lucas Holmquist) #32460
  • [6601fac06a] - (SEMVER-MINOR) fs: add fs.readv() (Sk Sajidul Kadir) #32356
  • [16a913f702] - (SEMVER-MINOR) fs: make fs.read params optional (Lucas Holmquist) #31402
  • [7260ede9e6] - (SEMVER-MINOR) fs: return first folder made by mkdir recursive (Benjamin Coe) #31530
  • [a15e712ef6] - (SEMVER-MINOR) fs: allow overriding fs for streams (Robert Nagy) #29083
  • [b5983213c1] - (SEMVER-MINOR) lib: add option to disable __proto__ (Gus Caplan) #32279
  • [784fb8f08c] - (SEMVER-MINOR) module: add API for interacting with source maps (Benjamin Coe) #31132
  • [e22d853c5d] - (SEMVER-MINOR) n-api: define release 6 (Gabriel Schulhof) #32058
  • [f56c4dd933] - (SEMVER-MINOR) n-api: add napi_get_all_property_names (himself65) #30006
  • [9eeee0d9f2] - (SEMVER-MINOR) perf_hooks: add property flags to GCPerformanceEntry (Kirill Fomichev) #29547
  • [5ec9295034] - (SEMVER-MINOR) process: report ArrayBuffer memory in memoryUsage() (Anna Henningsen) #31550
  • [de3603f0a6] - (SEMVER-MINOR) process: allow monitoring uncaughtException (Gerhard Stoebich) #31257
  • [cf28afeeb6] - (SEMVER-MINOR) readline,repl: improve history up/previous (Ruben Bridgewater) #31112
  • [a0eb3e4ed2] - (SEMVER-MINOR) readline,repl: skip history entries identical to the current line (Ruben Bridgewater) #31112
  • [d7e153bddb] - (SEMVER-MINOR) readline,repl: add substring based history search (Ruben Bridgewater) #31112
  • [936c85c309] - (SEMVER-MINOR) repl: implement reverse search (Ruben Bridgewater) #31006
  • [bf9ff16412] - (SEMVER-MINOR) repl: add completion preview (Ruben Bridgewater) #30907
  • [b14440fb5c] - (SEMVER-MINOR) repl: support previews by eager evaluating input (Ruben Bridgewater) #30811
  • [0b310df532] - (SEMVER-MINOR) src: unconditionally include report feature (Colin Ihrig) #32242
  • [394487e3e8] - (SEMVER-MINOR) src: create a getter for kernel version (Juan José Arboleda) #31732
  • [4ec25b4865] - (SEMVER-MINOR) src,cli: support compact (one-line) JSON reports (Sam Roberts) #32254
  • [b038ad91f5] - (SEMVER-MINOR) src,lib: make ^C print a JS stack trace (legendecas) #29207
  • [6348fae690] - (SEMVER-MINOR) tls: expose SSL_export_keying_material (simon) #31814
  • [6aa3869688] - (SEMVER-MINOR) util: add maxStrLength option to inspect function (unknown) #32392
  • [eda6665799] - (SEMVER-MINOR) vm: add code cache support for SourceTextModule (Gus Caplan) #31278
  • [5c81b8d814] - (SEMVER-MINOR) wasi: add returnOnExit option (Colin Ihrig) #32101
  • [ca4e65273f] - (SEMVER-MINOR) worker: support MessagePort to workers data (Juan José Arboleda) #32278
  • [217e3dfea6] - (SEMVER-MINOR) worker: allow URL in Worker constructor (Antoine du HAMEL) #31664
  • [ab8f38b551] - (SEMVER-MINOR) worker: add ability to take heap snapshot from parent thread (Anna Henningsen) #31569

Semver-patch commits

  • [06d607d50f] - async_hooks: fix ctx loss after nested ALS calls (Andrey Pechkurov) #32085
  • [96d1f14005] - async_hooks: add store arg in AsyncLocalStorage (Andrey Pechkurov) #31930
  • [b4ca132254] - async_hooks: executionAsyncResource matches in hooks (Gerhard Stoebich) #31821
  • [02f99d289d] - buffer: add type check in bidirectionalIndexOf (Gerhard Stoebich) #32770
  • [b53193a33b] - buffer: mark pool ArrayBuffer as untransferable (Anna Henningsen) #32759
  • [b555a772cc] - build: fix vcbuild error for missing Visual Studio (Thomas) #32658
  • [6f1931de25] - build: remove .git folders when testing V8 (Richard Lau) #32877
  • [c0805f0cab] - build: add configure flag to build V8 with DCHECKs (Anna Henningsen) #32787
  • [60660c35ee] - build: use same flags as V8 for ASAN (Matheus Marchini) #32776
  • [26fee8b323] - build: remove .txt files from .gitignore (Rich Trott) #32710
  • [70eaba12a1] - build: remove node_report option in node.gyp (Colin Ihrig) #32242
  • [e765d597fd] - build: add missing comma in node.gyp (Colin Ihrig) #31959
  • [49ddd36f13] - build: fix building with ninja (Richard Lau) #32071
  • [e097980cfe] - build: warn upon --use-largepages config option (Gabriel Schulhof) #31103
  • [c3efd2cb9a] - build: switch realpath to pwd (Benjamin Coe) #31095
  • [0190a62f58] - build: re-introduce --use-largepages as no-op (Gabriel Schulhof)
  • [e2a090b693] - build: enable loading internal modules from disk (Gus Caplan) #31321
  • [c4da682437] - cli, report: move --report-on-fatalerror to stable (Colin Ihrig) #32496
  • [e05c29db3f] - cluster: fix error on worker disconnect/destroy (Santiago Gimeno) #32793
  • [d217b792bc] - cluster: removed unused addressType argument from constructor (Yash Ladha) #32963
  • [71bccdde76] - crypto: check DiffieHellman p and g params (Ben Noordhuis) #32739
  • [c1b767471a] - crypto: generator must be int32 in DiffieHellman() (Ben Noordhuis) #32739
  • [4236175878] - crypto: key size must be int32 in DiffieHellman() (Ben Noordhuis) #32739
  • [0847bc3788] - crypto: simplify exportKeyingMaterial (Tobias Nießen) #31922
  • [907252d4cf] - crypto: improve errors in DiffieHellmanGroup (Tobias Nießen) #31445
  • [30633acf20] - crypto: assign and use ERR_CRYPTO_UNKNOWN_CIPHER (Tobias Nießen) #31437
  • [5dab489d50] - crypto: simplify DH groups (Tobias Nießen) #31178
  • [5c0232a632] - deps: backport ICU-21081 for ICU 67.x (constexpr) (Steven R. Loomis) #33337
  • [2d76ae7497] - deps: update to ICU 67.1 (Michaël Zasso) #33337
  • [e073da095e] - deps: update to uvwasi 0.0.8 (Colin Ihrig) #33078
  • [eb33d523da] - deps: V8: backport 3f8dc4b2e5ba (Ujjwal Sharma) #32993
  • [56313daff6] - deps: V8: cherry-pick e1eac1b16c96 (Milad Farazmand) #32974
  • [65db9b210d] - deps: fix zlib compilation for CPUs without SIMD features (Anna Henningsen) #32627
  • [1b53e179b8] - deps: update zlib to upstream d7f3ca9 (Sam Roberts) #31800
  • [9a89718410] - deps: move zlib maintenance info to guides (Sam Roberts) #31800
  • [9e33f97c4e] - deps: switch to chromium's zlib implementation (Brian White) #31201
  • [322a9986fe] - dgram: make UDPWrap more reusable (Anna Henningsen) #31871
  • [ea4302bd46] - errors: drop pronouns from ERR_WORKER_PATH message (Colin Ihrig) #32285
  • [daf1d842cc] - esm: improve commonjs hint on module not found (Daniele Belardi) #31906
  • [7410e8d63a] - esm: port loader code to JS (Anna Henningsen) #32201
  • [3241aee0f7] - events: convert errorMonitor to a normal property (Gerhard Stoebich) #31848
  • [2093f13333] - fs: update validateOffsetLengthRead in utils.js (daemon1024) #32896
  • [9c18838e8e] - fs: remove unnecessary else statement (Jesus Hernandez) #32662
  • [6d6bb2a3dc] - fs: use finished over destroy w/ cb (Robert Nagy) #32809
  • [bde08377a1] - fs: fix fs.read when passing null value (himself65) #32479
  • [ebd9090240] - http: disable headersTimeout check when set to zero (Paolo Insogna) #33307
  • [a3decf5e59] - http: simplify sending header (Robert Nagy) #33200
  • [12b8345db8] - http, async_hooks: remove unneeded reference to wrapping resource (Gerhard Stoebich) #32054
  • [d60988161d] - http,https: increase server headers timeout (Tim Costa) #30071
  • [d883024884] - http2: wait for secureConnect before initializing (Benjamin Coe) #32958
  • [79e95e49f7] - inspector: only write coverage in fully bootstrapped Environments (Joyee Cheung) #32960
  • [9570644194] - lib: cosmetic change to builtinLibs list for maintainability (James M Snell) #33106
  • [6356ad42ab] - lib: fix validateport error message when allowZero is false (rickyes) #32861
  • [698e21b346] - lib: add warning on dynamic import es modules (Juan José Arboleda) #30720
  • [4dba3fcafd] - lib: unnecessary const assignment for class (Yash Ladha) #32962
  • [84571cec7e] - lib: remove unnecesary else block (David Daza) #32644
  • [5885b37bcc] - lib: created isValidCallback helper (Yash Ladha) #32665
  • [5b1c34651e] - lib: removed unused error code (Yash Ladha) #32481
  • [965452dbad] - lib: replace Array to ArrayIsArray by primordials (himself65) #32258
  • [434ca8766a] - lib: move isLegalPort to validators, refactor (James M Snell) #31851
  • [65ebfb2f12] - lib: delete dead code in SourceMap (Justin Ridgewell) #31512
  • [b1f08b8359] - module: no type module resolver side effects (Guy Bedford) #33086
  • [a1fa180079] - module: partial doc removal of --experimental-modules (Myles Borins) #32915
  • [195043f910] - module: refactor condition (Myles Borins) #32989
  • [1811a10415] - module: exports not exported for null resolutions (Guy Bedford) #32838
  • [3dc3772bb0] - module: improve error for invalid package targets (Myles Borins) #32052
  • [6489a5b1d8] - module: fix memory leak when require error occurs (Qinhui Chen) #32837
  • [b62910c851] - module: expose exports conditions to loaders (Jan Krems) #31303
  • [b62db597af] - module: port source map sort logic from chromium (Benjamin Coe) #31927
  • [4d7f9869f3] - n-api: simplify uv_idle wrangling (Ben Noordhuis) #32997
  • [d08be9c8ca] - n-api: fix false assumption on napi_async_context structures (legendecas) #32928
  • [fbd39436a0] - n-api: fix comment on expected N-API version (Michael Dawson) #32236
  • [d50fe6c1ea] - path: fix comment grammar (thecodrr) #32942
  • [8dcb22f735] - perf_hooks: remove unnecessary assignment when name is undefined (rickyes) #32910
  • [f537377957] - process: fix two overflow cases in SourceMap VLQ decoding (Justin Ridgewell) #31490
  • [7582bce58d] - readline: improve unicode support and tab completion (Ruben Bridgewater) #31288
  • [5231c84396] - readline: move charLengthLeft() and charLengthAt() (Ruben Bridgewater) #31112
  • [03efa716f0] - readline: improve getStringWidth() (Ruben Bridgewater) #31112
  • [e894eeb22d] - readline: set null as callback return in case there's no error (Ruben Bridgewater) #31006
  • [3946cadf89] - readline: small refactoring (Ruben Bridgewater) #31006
  • [0bafe087e4] - readline: update ansi-regex (Ruben Bridgewater) #30907
  • [4e9e4402c5] - readline,repl: support tabs properly (Ruben Bridgewater) #31112
  • [3903aec0b4] - repl: align preview with the actual executed code (Ruben Bridgewater) #32154
  • [709d3e5eb3] - repl: eager-evaluate input in parens (Shelley Vohr) #31943
  • [ce5c9d771c] - repl: do not preview while pasting code (Ruben Bridgewater) #31315
  • [3867f2095e] - repl: fix preview cursor position (Ruben Bridgewater) #31293
  • [ee40b67413] - repl: change preview default in case of custom eval functions (Ruben Bridgewater) #31259
  • [a4ca3787ea] - repl: activate previews for lines exceeding the terminal columns (Ruben Bridgewater) #31112
  • [a892b4d00c] - repl: improve preview length calculation (Ruben Bridgewater) #31112
  • [9abe0e32d8] - repl: use public getCursorPos() (Colin Ihrig) #31091
  • [85f8654415] - repl: fix preview of lines that exceed the terminal columns (Ruben Bridgewater) #31006
  • [47dfa22adb] - repl: fix preview bug in case of long lines (Ruben Bridgewater) #30907
  • [7131de5f77] - repl: improve completion (Ruben Bridgewater) #30907
  • [61886507ce] - repl: simplify code (Ruben Bridgewater) #30907
  • [9b893e1bee] - repl: simplify repl autocompletion (Ruben Bridgewater) #30907
  • [78dcdee35f] - repl: remove dead code (Ruben Bridgewater) #30907
  • [f588301f2d] - repl,readline: clean up code (Ruben Bridgewater) #31288
  • [8be00314a6] - repl,readline: refactor for simplicity (Ruben Bridgewater) #30907
  • [6eda28c69f] - repl,readline: refactor common code (Ruben Bridgewater) #30907
  • [f945a5e3e1] - report: fix stderr matching for fatal error (gengjiawen) #32699
  • [4b96fc522c] - report: add missing locks for report_on_fatalerror accessors (Anna Henningsen) #32535
  • [c126d28c2e] - report: handle on-fatalerror better (Harshitha KP) #32207
  • [85ef383bc5] - src: remove unused v8 Message namespace (Adrian Estrada) #33180
  • [ffca498ca2] - src: use unique_ptr for CachedData in ContextifyScript::New (Anna Henningsen) #33113
  • [b3f0417830] - src: return undefined when validation err == 0 (James M Snell) #33107
  • [1436977984] - src: crypto::UseSNIContext to use BaseObjectPtr (James M Snell) #33107
  • [6b1e2359c2] - src: separate out NgLibMemoryManagerBase (James M Snell) #33104
  • [8864353c6e] - src: remove unnecessary fully qualified names (rickyes) #33077
  • [62f29534de] - src: add AsyncWrapObject constructor template factory (Stephen Belanger) #33051
  • [08b66f223d] - src: do not compare against wide characters (Christopher Beeson) #32921
  • [60db9afde5] - src: fix empty-named env var assertion failure (Christopher Beeson) #32921
  • [b893c5b7ba] - src: assignment to valid type (Yash Ladha) #32879
  • [846d7bdbbf] - src: delete MicroTaskPolicy namespace (Juan José Arboleda) #32853
  • [05059a2469] - src: use using NewStringType (rickyes) #32843
  • [cf16cb7ed5] - src: fix null deref in AllocatedBuffer::clear (Matt Kulukundis) #32892
  • [0745f8884c] - src: remove validation of unreachable code (Juan José Arboleda) #32818
  • [9c216640d7] - src: elevate v8 namespaces (Nimit) #32872
  • [71bdcaeac7] - src: remove redundant v8::HeapSnapshot namespace (Juan José Arboleda) #32854
  • [bb1481fd23] - src: remove unused using in node_worker.cc (Daniel Bevenius) #32840
  • [8a38726826] - src: ignore GCC -Wcast-function-type for v8.h (Daniel Bevenius) #32679
  • [c26637b7da] - src: remove unused v8 Array namespace (Juan José Arboleda) #32749
  • [c0d3fc28ec] - src: sync access for report and openssl options (Sam Roberts) #32618
  • [9a010a3ea5] - src: munmap(2) upon class instance destructor (Gabriel Schulhof) #32570
  • [06953df051] - src: fix extra includes of "env.h" and "env-inl.h" (Nick Kreeger) #32293
  • [7432d0a170] - src: avoid using elevated v8 namespaces in node_perf.h (James M Snell) #32468
  • [6175a22b87] - src: avoid using elevated v8 namespaces in node_errors.h (James M Snell) #32468
  • [464ff85ddd] - src: remove loop_init_failed_ from Worker class (Anna Henningsen) #32562
  • [9f6ed724e0] - src: clean up worker thread creation code (Anna Henningsen) #32562
  • [73c55d39f3] - src: include AsyncWrap provider strings in snapshot (Anna Henningsen) #32572
  • [29eca36ea8] - src: move JSONWriter into its own file (Anna Henningsen) #32552
  • [8e3dd47db7] - src: handle report options on fatalerror (Sam Roberts) #32497
  • [e0351945bc] - src: refactoring and cleanup of node_i18n (James M Snell) #32438
  • [23f8f35022] - src: unify Linux and FreeBSD large pages implem (Gabriel Schulhof) #32534
  • [16d85d9328] - src: fix compiler warnings in node_report_module (Daniel Bevenius) #32498
  • [58aadcdacf] - src: simplify large pages mapping code (Gabriel Schulhof) #32396
  • [2da974e15e] - src: use single ObjectTemplate for TextDecoder (Anna Henningsen) #32426
  • [8f7f4e5aba] - src: avoid Isolate::GetCurrent() for platform implementation (Anna Henningsen) #32269
  • [df046dec97] - src: add debug option to report large page stats (Gabriel Schulhof) #32331
  • [43e9ae8317] - src: prefer OnScopeLeave over shared_ptr<void> (Anna Henningsen) #32247
  • [2f976d783f] - src: find .text section using dl_iterate_phdr (Gabriel Schulhof) #32244
  • [40c5d58095] - Revert "src: keep main-thread Isolate attached to platform during Dispose" (Anna Henningsen) #31853
  • [51a345674e] - src: handle NULL env scenario (Harshitha KP) #31899
  • [154da1f0d3] - src: add missing namespace using statements in node_watchdog.h (legendecas) #32117
  • [83c47b6079] - src: introduce node_sockaddr (James M Snell) #32070
  • [c979aeaf26] - src: improve handling of internal field counting (James M Snell) #31960
  • [38de40ac50] - src: do not unnecessarily re-assign uv handle data (Anna Henningsen) #31696
  • [e204dba3f3] - src: pass resource object along with InternalMakeCallback (Anna Henningsen) #32063
  • [ffefb059e2] - src: move InternalCallbackScope to StartExecution (Shelley Vohr) #31944
  • [178c682ad1] - src: start the .text section with an asm symbol (Gabriel Schulhof) #31981
  • [809d8b5036] - src: include large pages source unconditionally (Gabriel Schulhof) #31904
  • [5ea3d60db1] - src: use __executable_start for linux hugepages (Ben Noordhuis) #31547
  • [1e95bb85a9] - src: make large_pages node.cc include conditional (Denys Otrishko) #31078
  • [6dcb868a0a] - src: make --use-largepages a runtime option (Gabriel Schulhof) #30954
  • [f3fb6a11fe] - src: change GetStringWidth's expand_emoji_sequence option default (Ruben Bridgewater) #31112
  • [4f6300f804] - src: improve GetColumnWidth performance (Ruben Bridgewater) #31112
  • [98297b92f5] - src: inline SetSNICallback (Anna Henningsen) #30548
  • [ce8d8c06ac] - src: use BaseObjectPtr to store SNI context (Anna Henningsen) #30548
  • [c86883e4fe] - stream: add null check in Readable.from (Pranshu Srivastava) #32873
  • [5df8ab16f2] - stream: close iterator in Readable.from (Vadzim Zieńka) #32844
  • [c8b4ab0978] - stream: fix readable state awaitDrain increase in recursion (ran) #27572
  • [becbe9e246] - tls: move getAllowUnauthorized to internal/options (James M Snell) #32917
  • [dec8a21cc8] - tls: provide default cipher list from command line (Anna Henningsen) #32760
  • [8961d33aff] - tls: add memory tracking support to SSLWrap (Anna Henningsen) #30548
  • [1b41829828] - util: improve unicode support (Ruben Bridgewater) #31319
  • [a0b1a06fff] - util: add todo comments for inspect to add unicode support (Ruben Bridgewater) #31112
  • [e0e8a9af6f] - util,readline: NFC-normalize strings before getStringWidth (Anna Henningsen) #33052
  • [6a9f867e56] - vm: throw error when duplicated exportNames in SyntheticModule (himself65) #32810
  • [02de66a110] - vm: lazily initialize primordials for vm contexts (Joyee Cheung) #31738
  • [843a54fd33] - wasi: use free() to release preopen array (Anna Henningsen) #33110
  • [7f845e614b] - wasi: update start() behavior to match spec (Colin Ihrig) #33073
  • [e1fe0b66b5] - wasi: rename __wasi_unstable_reactor_start() (Colin Ihrig) #33073
  • [7c723af3ae] - wasi: clean up options validation (Denys Otrishko) #31797
  • [9ce6e363f4] - worker: fix process.env var empty key access (Christopher Beeson) #32921
  • [57cd7d2faa] - worker: fix type check in receiveMessageOnPort (Anna Henningsen) #32745
  • [ade4ec6f9a] - worker: runtime error on pthread creation (Harshitha KP) #32344

Documentation commits

Other commits

  • [cdf4f4875d] - benchmark: use let instead of var in worker (Daniele Belardi) #31794
  • [c572218552] - benchmark: use let instead of var in util (Daniele Belardi) #31794
  • [862aeae238] - benchmark: use let instead of var in url (Daniele Belardi) #31794
  • [e68c21f079] - benchmark: use let instead of var in tls (Daniele Belardi) #31794
  • [f3ef8946d0] - benchmark: use let instead of var in timers (Daniele Belardi) #31794
  • [33858fa917] - benchmark: use let instead of var in run.js (Daniele Belardi) #31794
  • [a05f22647a] - benchmark: use let instead of var in dns (Daniele Belardi) #31794
  • [2d7c52d729] - benchmark: use let instead of var in common.js (Daniele Belardi) #31794
  • [d205bc91d4] - benchmark: use const instead of var in async_hooks (Daniele Belardi) #31794
  • [d7f1add038] - benchmark: add no-var rule in .eslintrc.yaml (Daniele Belardi) #31794
  • [b4a6351634] - benchmark: remove special test entries (Ruben Bridgewater) #31755
  • [71397885b2] - benchmark: add test and all options and improve errors" (Ruben Bridgewater) #31755
  • [011e3dec00] - benchmark: refactor helper into a class (Ruben Bridgewater) #31755
  • [cf2ca11828] - Revert "benchmark: refactor helper into a class" (Anna Henningsen) #31722
  • [ef80c02794] - Revert "benchmark: remove special test entries" (Anna Henningsen) #31722
  • [3861c69b02] - benchmark: fix error on server close in AsyncLocalStorage benchmark (Andrey Pechkurov) #32503
  • [daf6e1702f] - benchmark: use let instead of var in zlib (Daniele Belardi) #31794
  • [6b02359dbf] - test: update c8 ignore comment (Benjamin Coe) #33151
  • [d7b13abbf8] - test: skip memory usage tests when ASAN is enabled (Anna Henningsen) #33129
  • [238353839c] - test: move test-process-title to sequential (Anna Henningsen) #33150
  • [13cae34484] - test: fix out-of-bound reads from invalid sizeof usage (Anna Henningsen) #33115
  • [08e01a12d0] - test: add missing calls to napi_async_destroy (Anna Henningsen) #33114
  • [3015887019] - test: check args on SourceTextModule cachedData (Juan José Arboleda) #32956
  • [dad82173cd] - test: mark test flaky on freebsd (Sam Roberts) #32849
  • [4ab6643abb] - test: flaky test-stdout-close-catch on freebsd (Sam Roberts) #32849
  • [60550f35ac] - test: refactor test-async-hooks-constructor (himself65) #33063
  • [83520451cc] - test: remove timers-blocking-callback (Jeremiah Senkpiel) #32870
  • [579f68c5fd] - test: better error validations for event-capture (Adrian Estrada) #32771
  • [dacd27927a] - test: refactor events tests for invalid listeners (Adrian Estrada) #32769
  • [4c67568148] - test: test-async-wrap-constructor prefer forEach (Daniel Estiven Rico Posada) #32631
  • [0bae243438] - test: mark test-child-process-fork-args as flaky on Windows (Andrey Pechkurov) #32950
  • [f181b5996a] - test: changed function to arrow function (Nimit) #32875
  • [68e3954d1a] - test: replace console.log/error() with debuglog (daemon1024) #32692
  • [c566906789] - test: only detect uname on supported os (Xu Meng) #32833
  • [50130f0e23] - test: mark cpu-prof-dir-worker flaky on all (Sam Roberts) #32828
  • [96c93113a8] - test: replace equal with strictEqual (Jesus Hernandez) #32727
  • [e839a71ca8] - test: mark test-worker-prof flaky on arm (Sam Roberts) #32826
  • [44ca47904d] - test: mark test-http2-reset-flood flaky on all (Sam Roberts) #32825
  • [271b309c91] - test: cover node entry type in perf_hooks (Julian Duque) #32751
  • [769ac24eba] - test: use symlinks to copy shells (John Kleinschmidt) #32129
  • [b3ac840b97] - test: save test file in temporary directory (Luigi Pinca) #32670
  • [c5e0615942] - test: refactor test-worker (himself65) #32509
  • [8eb6807dfe] - test: replace flag expose_internals to expose-internals (Juan José Arboleda) #32542
  • [5598dd14df] - test: fix a typo on test-fs-read-optional-params (himself65) #32461
  • [30207985cc] - test: als variant of test-timers-clearImmediate (Harshitha KP) #32303
  • [e3baee6c3d] - test: refactoring / cleanup on child-process tests (James M Snell) #32078
  • [6a0bc83370] - test: remove common.skipIfReportDisabled() (Colin Ihrig) #32242
  • [4a08b85fc8] - test: make test-memory-usage predictable (Matheus Marchini) #32239
  • [efc844d00d] - test: verify that WASI errors are rethrown (Colin Ihrig) #32157
  • [10ee89a8d5] - test: refactor and simplify test-repl-preview (Ruben Bridgewater) #32154
  • [5a8e54b6de] - test: refactor all benchmark tests to use the new test option (Ruben Bridgewater) #31755
  • [d1d22fa86e] - test: add secp224k1 check in crypto-dh-stateless (Daniel Bevenius) #31715
  • [8a044cb9ae] - test: fix flaky parallel/test-repl-history-navigation test (Ruben Bridgewater) #31708
  • [2fc72cac97] - test: fix flaky test-trace-sigint-on-idle (Anna Henningsen) #31645
  • [a4ee930d71] - test: improve logged errors (Ruben Bridgewater) #31425
  • [4aaf4075e9] - test: show child stderr output in largepages test (Ben Noordhuis) #31612
  • [2508e1321f] - test: add new scenario for async-local storage (Harshitha KP) #32082
  • [52a11544cf] - test: add GC test for disabled AsyncLocalStorage (Andrey Pechkurov) #31995
  • [98ece74dc7] - test: improve disable AsyncLocalStorage test (Andrey Pechkurov) #31998
  • [e5a64e5def] - test: fix flaky test-memory-usage (Anna Henningsen) #31602
  • [02ec03ce27] - test: cover property n-api null cases (Gabriel Schulhof) #31488
  • [733002b081] - test: skip keygen tests on arm systems (Tobias Nießen) #31178
  • [5e5d053585] - test: add repl tests to verify unicode support in previews (Ruben Bridgewater) #31112
  • [f1624bbafa] - test: add multiple repl preview tests (Ruben Bridgewater) #30907
  • [9dcf137623] - test,benchmark: fix test-benchmark-zlib (Rich Trott) #31538
  • [94e4847142] - tools: bump remark-preset-lint-node to 1.15.0 (Rich Trott) #33157
  • [58bd92aa26] - tools: update remark-preset-lint-node@1.14.0 (Rich Trott) #33072
  • [b9d9c24cfc] - tools: update broken types in type parser (Colin Ihrig) #33068
  • [3dafc1460d] - tools: fix mkcodecache when run with ASAN (Anna Henningsen) #32850
  • [1c010b41a1] - tools: update ESLint to 7.0.0-rc.0 (himself65) #33062
  • [5f79ab2239] - tools: remove unused code in doc generation tool (Rich Trott) #32913
  • [576a62688f] - tools: decrease timeout in test.py (Anna Henningsen) #32868
  • [9cf9cb436b] - tools: remove prefer-common-expectserror lint rule (Colin Ihrig) #31147

2020-04-28, Version 12.16.3 'Erbium' (LTS), @targos

Notable Changes

  • Dependencies:
    • Updated OpenSSL to 1.1.1g (Hassaan Pasha) #32971.
    • Updated c-ares to 1.16.0 (Anna Henningsen) #32246.
    • Updated experimental uvwasi to 0.0.6 (Colin Ihrig) #32309.
  • ESM (experimental):
    • Additional warnings are no longer printed for modules that use conditional exports or package name self resolution (Guy Bedford) #31845.

Commits

  • [2c5b0147fa] - async_hooks: use hasHooks function internally (rickyes) #32656
  • [28abbfd594] - async_hooks: move to lazy destroy hook registration in AsyncResource (Andrey Pechkurov) #32429
  • [146ad4eaae] - async_hooks: avoid resource reuse by FileHandle (Gerhard Stoebich) #31972
  • [39a3cc13dc] - buffer,n-api: fix double ArrayBuffer::Detach() during cleanup (Anna Henningsen) #33039
  • [20f3e9d836] - build: output dots instead of tap in GitHub actions (Michaël Zasso) #32714
  • [c98aa9312e] - build: move doc versions JSON file out of out/doc (Richard Lau) #32728
  • [546a9ea998] - build: fix LINT_MD_NEWER assignment (Rich Trott) #32712
  • [ae772b7c6a] - build: log detected compilers in --verbose mode (Richard Lau) #32715
  • [43055519d3] - build: use tabs for indentation in Makefile (Luigi Pinca) #32614
  • [2e31ac96f3] - build: remove make lint on lint-py (himself65) #32599
  • [d8a948f0fc] - build: disable -Wattributes warnings on aix (Ben Noordhuis) #32419
  • [a3848e51aa] - build: expand ASAN acronym in configure help (Sam Roberts) #32325
  • [c8541a7d7a] - build: disable libstdc++ debug containers globally (Ben Noordhuis) #30147
  • [d3c9a82a6e] - build: remove empty line on node.gyp file (Juan José Arboleda) #31952
  • [e65586985f] - build: support android build on ndk version equal or above 23 (forfun414) #31521
  • [790841597d] - console: fixup error message (James M Snell) #32475
  • [d19251630e] - crypto: clear openssl error stack after en/decrypt (Ben Noordhuis) #32248
  • [51f05d2f3d] - deps: update archs files for OpenSSL-1.1.1g (Hassaan Pasha) #32971
  • [a89744f4e0] - deps: upgrade openssl sources to 1.1.1g (Hassaan Pasha) #32971
  • [80c89d4ec7] - deps: update archs files for OpenSSL-1.1.1f (Hassaan Pasha) #32583
  • [c9cc38114a] - deps: upgrade openssl sources to 1.1.1f (Hassaan Pasha) #32583
  • [fedcb16144] - deps: update acorn to v7.1.1 (Ruben Bridgewater) #32310
  • [37476a339a] - deps: upgrade to c-ares v1.16.0 (Anna Henningsen) #32246
  • [fe0e1dbd13] - deps: update to uvwasi 0.0.6 (Colin Ihrig) #32309
  • [2e92cb476d] - deps: V8: cherry-pick f9257802c1c0 (Matheus Marchini) #32180
  • [0e922440d6] - deps,doc: move openssl maintenance guide to doc (Sam Roberts) #32209
  • [06d16cf9ef] - dns: remove duplicate code (rickyes) #32664
  • [af392a114b] - doc: add link to code ide configs (Robert Nagy) #32767
  • [b1790fbf4b] - doc: replace node-test-pull-request-lite-pipeline from onboarding (Juan José Arboleda) #32736
  • [00ce6a3240] - doc: add useful v8 option section (Nimit) #32262
  • [c78019d792] - doc: add himself65 to collaborators (himself65) #32734
  • [16126328ac] - doc: clarify behavior of napi_get_typedarray_info (Michael Dawson) #32603
  • [a5fd29b024] - doc: remove optional parameter from markdown anchor link (Rich Trott) #32671
  • [d2c86a9dfc] - doc: clarify listening event (Harshitha KP) #32581
  • [9039c03967] - doc: update Ninja information in build guide (Adrian Estrada) #32629
  • [1d563a646e] - doc: correct version metadata for Readable.from (Dave Vandyke) #32639
  • [5e2791ee84] - doc: adjust paths in openssl maintenance guide (Hassaan Pasha) #32593
  • [21c3685623] - doc: clarify docs fs.watch exception may be emitted (Juan José Arboleda) #32513
  • [c3d91eb94d] - doc: add unreachable code on events example (himself65) #32364
  • [b4ba9b8bef] - doc: clarify length param in buffer.write (Harshitha KP) #32119
  • [5996df3c39] - doc: document that server.address() can return null (Thomas Watson Steen) #32519
  • [a299e9cf28] - doc: return type of crypto.getFips() may change (Richard Lau) #32580
  • [4604127697] - doc: fix return type of crypto.getFips() (Richard Lau) #32580
  • [f2235f68aa] - doc: clarify requireManualDestroy option (Harshitha KP) #32514
  • [7e952f2d38] - doc: fix wordy sentence (Moni) #32567
  • [f93b770bda] - doc: fix more links (Alba Mendez) #32586
  • [d764414706] - doc: improve markdown link checker (Alba Mendez) #32586
  • [3d36458cc6] - doc: add flarna to collaborators (Gerhard Stoebich) #32620
  • [4b417f87bd] - doc: improve fs.read documentation (Hachimi Aa (Sfeir)) #29270
  • [959055f225] - doc: add ASAN build instructions (gengjiawen) #32436
  • [f1552f830f] - doc: update context-aware section of addon doc (Gabriel Schulhof) #28659
  • [d0d414d98c] - doc: update AUTHORS list (Luigi Pinca) #32222
  • [e51c42dc52] - doc: tests local links in markdown documents (Antoine du HAMEL) #32359
  • [8b355eab57] - doc: fix profile type of --heap-prof-name (Syohei YOSHIDA) #32404
  • [59a8dbebc2] - doc: use uppercase on windows path (himself65) #32294
  • [fa9b10cebe] - doc: rename cve_management_process.md to fit doc style guide (Ling Samuel) #32456
  • [3ed9fcd784] - doc: add mildsunrise to collaborators (Alba Mendez) #32525
  • [5d15dd3fe3] - doc: add link to DNS definition (unknown) #32228
  • [8d27eb94d1] - doc: remove extraneous sentence in events.md (Rich Trott) #32457
  • [1c84d85437] - doc: trim wording in n-api.md text about exceptions (Rich Trott) #32457
  • [bba8dd3344] - doc: simplify and correct example descriptions in net.md (Rich Trott) #32451
  • [2976ac6c2e] - doc: add new TSC members (Michael Dawson) #32473
  • [3d752cd3b9] - doc: improve wording in vm.md (Rich Trott) #32427
  • [80a8e20826] - doc: update security release process (Sam Roberts) #31679
  • [80493f54c8] - doc: fix some 404 links (Thomas Watson Steen) #32200
  • [76e2455b06] - doc: expand fs.watch caveats (Bartosz Sosnowski) #32176
  • [c1c3aa1b5f] - doc: add Ruben to TSC (Michael Dawson) #32213
  • [385faf7721] - doc: include the error type in the request.resolve doc (Joe Pea) #32152
  • [11899f647a] - doc: clear up child_process command resolution (Denys Otrishko) #32091
  • [e33e989f20] - doc: clarify windows specific behaviour (Sam Roberts) #32079
  • [860239255b] - doc: improve Buffer documentation (Anna Henningsen) #32086
  • [ab1136a7ed] - doc: add support encoding link on string_decoder.md (himself65) #31911
  • [c439d83dbf] - doc: add entry for AsyncHook class (Harshitha KP) #31865
  • [e6e38ecf64] - doc: prevent tables from shrinking page (David Gilbertson) #31859
  • [6e68d9816d] - doc: fix anchor for ERR_TLS_INVALID_CONTEXT (Tobias Nießen) #31915
  • [d3b9a8810c] - doc,crypto: clarify oaepHash option's impact (Filip Skokan) #32340
  • [b85bc0cc02] - fs: fixup error message for invalid options.recursive (James M Snell) #32472
  • [010814856a] - fs: fix writeFile[Sync] for non-seekable files (Alba Mendez) #32006
  • [225ddd5f42] - http: move free socket error handling to agent (Robert Nagy) #32003
  • [3b0204245d] - http: don't emit 'readable' after 'close' (Robert Nagy) #32277
  • [52a52d2664] - http: fixup options.method error message (James M Snell) #32471
  • [cf47bb9818] - http: don't emit 'finish' after 'error' (Robert Nagy) #32276
  • [f9123eb91b] - http: fix socket re-use races (Robert Nagy) #32000
  • [e54eb46cdb] - http2: rename counter in mapToHeaders inner loop (Mateusz Krawczuk) #32012
  • [0db58753db] - lib: fix return type of setTimeout in net.Socket (龙腾道) #32722
  • [a152792590] - lib: removes unnecessary params (Jesus Hernandez) #32694
  • [7dd001c1db] - lib: changed functional logic in cluster schedulers (Yash Ladha) #32505
  • [5a671772a2] - lib: use spread operator on cluster (himself65) #32125
  • [4d0be3dce5] - meta: move inactive collaborators to emeriti (Rich Trott) #32151
  • [ecddf6519f] - module: disable conditional exports, self resolve warnings (Guy Bedford) #31845
  • [717f9c5905] - module: path-only CJS exports extension searching (Guy Bedford) #32351
  • [ff5ab6f925] - net: fix crash if POLLHUP is received (Santiago Gimeno) #32590
  • [ed21d32a7c] - net: wait for shutdown to complete before closing (Robert Nagy) #32491
  • [7d66ceadbb] - perf,src: add HistogramBase and internal/histogram.js (James M Snell) #31988
  • [f302ac9ae4] - perf_hooks: allow omitted parameters in 'performance.measure' (himself65) #32651
  • [7c0c4e9a7e] - repl: fixup error message (James M Snell) #32474
  • [522101dbca] - src: removes unused v8::Integer and v8::Array namespace (Jesus Hernandez) #32779
  • [f9d94143fb] - src: remove unused v8::TryCatch namespace (Juan José Arboleda) #32729
  • [d0d7ebc2a6] - src: remove duplicated code (himself65) #32719
  • [a50220955e] - src: refactor to avoid goto in node_file.cc (Tobias Nießen) #32637
  • [fabb53ed79] - src: fix warnings on SPrintF (himself65) #32558
  • [3605a9d67a] - src: replace goto with lambda in options parser (Tobias Nießen) #32635
  • [872f893e0f] - src: align PerformanceState class name with conventions (Anna Henningsen) #32539
  • [191cde0e4d] - src: remove unnecessary 'Local.As' operation (himself65) #32286
  • [6d71eb5b5b] - src: add test/abort build tasks (Christian Niederer) #31740
  • [0dfb9514de] - src: add aliased-buffer-overflow abort test (Christian Niederer) #31740
  • [28cfaa837e] - src: check for overflow when extending AliasedBufferBase (Christian Niederer) #31740
  • [4155358031] - src: replace handle dereference with ContainerOf (Harshitha KP) #32298
  • [c9b22c8d6d] - src: enhance template function 'MakeUtf8String' (himself65) #32322
  • [ad347f4cbb] - src: remove excess v8 namespace (himself65) #32191
  • [12d83b3242] - src: clean v8 namespaces in env.cc file (Juan José Arboleda) #32374
  • [13a7e0546f] - src: check for empty maybe local (Xavier Stouder) #32339
  • [aaf94fd6bb] - src: cleanup DestroyParam when Environment exits (Anna Henningsen) #32421
  • [4b5fd24855] - src: enhance C++ sprintf utility (himself65) #32385
  • [46e68bb445] - src: simplify IsolateData shortcut accesses (Anna Henningsen) #32407
  • [7aa2ee2bd8] - src: delete CallbackInfo when cleared from cleanup hook (Anna Henningsen) #32405
  • [7a346f63d6] - src: update comment for SetImmediate() (Anna Henningsen) #32300
  • [46c751e7f1] - src: handle NULL env scenario (himself65) #32230
  • [9b6f678751] - src: fix warn_unused_result compiler warning (Colin Ihrig) #32241
  • [4e268314b5] - src: refactor to more safe method (gengjiawen) #32087
  • [f223d2c7e4] - src: fix spawnSync CHECK when SIGKILL fails (Ben Noordhuis) #31768
  • [5b2f698b32] - src: fix missing extra ca in tls.rootCertificates (Eric Bickle) #32075
  • [a53980d947] - src: fix -Wmaybe-uninitialized compiler warning (Ben Noordhuis) #31809
  • [a2d961da23] - src: remove unused include from node_file.cc (Ben Noordhuis) #31809
  • [8fe70e88fe] - src: elevate v8 namespace (RamanandPatil) #32041
  • [7e5e34d01e] - src: simplify node_worker.cc using new KVStore API (Denys Otrishko) #31773
  • [7152fe3180] - src: improve KVStore API (Denys Otrishko) #31773
  • [3bf21b096e] - src: fix minor typo in base_object.h (Daniel Bevenius) #31535
  • [8d1eeb1ae5] - stream: combine properties using defineProperties (antsmartian) #31187
  • [d07dd313ae] - stream: add regression test for async iteration completion (Matteo Collina) #31508
  • [2f72054ec7] - test: replace console.log/error with debuglog (Agustin Daguerre) #32695
  • [bc9453a870] - test: make sure that inspector tests finish (Anna Henningsen) #32673
  • [2cf7381a87] - test: fix check error name on error instance (himself65) #32508
  • [e4174165f3] - Revert "test: mark empty udp tests flaky on OS X" (Luigi Pinca) #32489
  • [6feed98f33] - test: remove unused variables on async hook test (Julian Duque) #32630
  • [b0386b4aaf] - test: check that --expose-internals is disallowed in NODE_OPTIONS (Juan José Arboleda) #32554
  • [0adc867d59] - test: add Worker initialization failure test case (Harshitha KP) #31929
  • [73221278d7] - test: fix tool path in test-doctool-versions.js (Richard Lau) #32645
  • [90a5b9d964] - test: copy addons .gitignore to test/abort/ (Anna Henningsen) #32624
  • [39be571a3f] - test: refactor test-http2-buffersize (Rich Trott) #32540
  • [f71007ff39] - test: skip crypto test on arm buildbots (Ben Noordhuis) #32636
  • [4e405ee899] - test: replace console.error() with debuglog calls (Rich Trott) #32588
  • [8083d452e6] - test: add a missing common.mustCall (Harshitha KP) #32305
  • [416531227e] - test: remove unnecessary console.log() calls (Juan José Arboleda) #32541
  • [30d21fb6e6] - test: replace console.log() with debuglog() (Juan José Arboleda) #32550
  • [fcf1123052] - test: validate util.format when the value is 'Infinity' (Andrés M. Gómez) #32573
  • [e2174e4e3c] - test: fix fs test-fs-utimes strictEqual arg order (Ben Noordhuis) #32420
  • [32ab30cc35] - test: use common.mustCall in test-worker-esm-exit (himself65) #32544
  • [a0552441fa] - test: use template strings in parallel tests (Daniel Estiven Rico Posada) #32549
  • [d53d152da3] - test: add known issues test for #31733 (Ben Noordhuis) #31734
  • [d6f6623243] - test: refactor test-http-information-processing (Rich Trott) #32547
  • [b6e739a6b3] - test: skip a wasi test on IBMi PASE (Xu Meng) #32459
  • [a40e7daf3c] - test: harden the tick sampling logic (Harshitha KP) #32190
  • [9c84d7773a] - test: skip some binding tests on IBMi PASE (Xu Meng) #31967
  • [afc0c708a2] - test: revise test-http-response-multi-content-length (Rich Trott) #32526
  • [df890ad3d2] - test: remove a duplicated test (himself65) #32453
  • [fa4de53a3e] - test: check bundled binaries are signed on macOS (Richard Lau) #32522
  • [d9abea5e3f] - test: unflake async-hooks/test-statwatcher (Bartosz Sosnowski) #32484
  • [5cae1b7a53] - test: use Promise.all() in test-cluster-net-listen-ipv6only-false (Rich Trott) #32398
  • [60db56ddba] - test: replace Map with Array in test-cluster-net-listen-ipv6only-false (Rich Trott) #32398
  • [565f0f73e2] - test: revise test-http-client-default-headers-exist (Rich Trott) #32493
  • [7f5b89c307] - test: use mustCall in place of countdown in timers test (Rich Trott) #32416
  • [97e352d1a6] - test: replace countdown with Promise.all() in cluster-net-listen tests (Rich Trott) #32381
  • [1b79174203] - test: replace Map with Array in cluster-net-listen tests (Rich Trott) #32381
  • [85ae5661df] - test: uv_tty_init returns EBADF on IBM i (Xu Meng) #32338
  • [8dbd7cf0e4] - test: use Promise.all() in test-hash-seed (Rich Trott) #32273
  • [92a207cd2d] - test: workaround for V8 8.1 inspector pause issue (Matheus Marchini) #32234
  • [776905ef99] - test: use portable EOL (Harshitha KP) #32104
  • [914edddd79] - test: buffer.write with longer string scenario (Harshitha KP) #32123
  • [7060ed1176] - test: fix test-tls-env-extra-ca-file-load (Eric Bickle) #32073
  • [bee009d271] - test: improve test-fs-existssync-false.js (himself65) #31883
  • [0403f00321] - test: mark test-timers-blocking-callback flaky on osx (Myles Borins) #32189
  • [fa7e975d2f] - test: warn when inspector process crashes (Matheus Marchini) #32133
  • [4a94179a3c] - tools: update Boxstarter script and document (himself65) #32299
  • [8bc53d1298] - tools: update ESLint to 7.0.0-alpha.3 (Colin Ihrig) #32533
  • [baf56f8135] - tools: fixup icutrim.py use of string and bytes objects (Jonathan MERCIER) #31659
  • [540a024057] - tools: update to acorn@7.1.1 (Rich Trott) #32259
  • [ecf842ec27] - tools: enable no-useless-backreference lint rule (Colin Ihrig) #31400
  • [bcf152e2d0] - tools: enable default-case-last lint rule (Colin Ihrig) #31400
  • [5dacfa76f2] - tools: update ESLint to 7.0.0-alpha.2 (Colin Ihrig) #31400
  • [e641b3c6b6] - tools: update ESLint to 7.0.0-alpha.1 (Colin Ihrig) #31400
  • [394fa1f356] - tools: update ESLint to 7.0.0-alpha.0 (Colin Ihrig) #31400
  • [848df6f6cc] - tracing: do not attempt to call into JS when disallowed (Anna Henningsen) #32548
  • [12fe985154] - util: only inspect error properties that are not visible otherwise (Ruben Bridgewater) #32327
  • [eccd2a7740] - util: fix inspecting document.all (Gus Caplan) #31938
  • [58c6422f83] - util: text decoding allows SharedArrayBuffer (Bradley Farias) #32203
  • [10c525f38d] - win,build: set exit_code on configure failure (Bartlomiej Brzozowski) #32205
  • [aeea7d9c1f] - worker: do not emit 'exit' events during process.exit() (Anna Henningsen) #32546
  • [28cb7e78ff] - worker: improve MessagePort performance (Anna Henningsen) #31605

2020-04-08, Version 12.16.2 'Erbium' (LTS), @codebytere

Notable Changes

  • doc:
    • add ronag to collaborators (Robert Nagy) #31498
    • add GeoffreyBooth to collaborators (Geoffrey Booth) #31306
  • deps:
    • upgrade npm to 6.13.6 (Ruy Adorno) #31304
    • update openssl to 1.1.1e (Hassaan Pasha) #32328

Commits

  • [f756c809e0] - assert: align character indicators properly (Ruben Bridgewater) #31429
  • [597431b1f2] - async_hooks: remove internal only error checking (Anatoli Papirovski) #30967
  • [35f107da53] - benchmark: remove problematic tls params (Brian White) #31816
  • [0b7579022c] - benchmark: use let instead of var (Daniele Belardi) #31592
  • [7173b285e7] - benchmark: swap var for let in benchmarks (Alex Ramirez) #28958
  • [c18cec7593] - benchmark: remove special test entries (Ruben Bridgewater) #31396
  • [19fbe55451] - benchmark: refactor helper into a class (Ruben Bridgewater) #31396
  • [a305ae2308] - benchmark: check for and fix multiple end() (Brian White) #31624
  • [7f828a4dd0] - benchmark: clean up config resolution in multiple benchmarks (Denys Otrishko) #31581
  • [4e40c77dc7] - benchmark: add MessagePort benchmark (Anna Henningsen) #31568
  • [2973c1fabf] - benchmark: use let and const instead of var (Daniele Belardi) #31518
  • [393b48e744] - benchmark: fix getStringWidth() benchmark (Rich Trott) #31476
  • [267a01f4eb] - benchmark: add default type in getstringwidth.js (Rich Trott) #31377
  • [4f9d57d01e] - benchmark: benchmarking impacts of async hooks on promises (legendecas) #31188
  • [06bc2ded77] - buffer: improve from() performance (Brian White) #31615
  • [22a37d6847] - buffer: improve concat() performance (Brian White) #31522
  • [1849c2cc99] - buffer: improve fill(number) performance (Brian White) #31489
  • [45d05e1cf6] - build: add mjs extension to lint-js (Nick Schonning) #32145
  • [fae680f740] - build: drop Travis in favor of Actions (Christian Clauss) #32450
  • [a50648975d] - build: annotate markdown lint failures in pull requests (Richard Lau) #32391
  • [c42cb79bb7] - build: build docs in GitHub Actions CI workflow (Richard Lau) #31504
  • [46f83df2fd] - build: do not use setup-node in build workflows (Richard Lau) #31349
  • [ad12c82e37] - build: fix macos runner type in GitHub Action (扩散性百万甜面包) #31327
  • [df701f3b12] - build: fix step name in GitHub Actions workflow (Richard Lau) #31323
  • [d190ee06b4] - build: add GitHub actions to run linters (Richard Lau) #31323
  • [7d3910d078] - build: macOS package notarization (Rod Vagg) #31459
  • [36ae81a52a] - build: allow use of system-installed brotli (André Draszik) #32046
  • [6605bba0b8] - build: allow passing multiple libs to pkg_config (André Draszik) #32046
  • [8a0b0a76c0] - build: enable backtrace when V8 is built for PPC and S390x (Michaël Zasso) #32113
  • [4dddb56178] - build: only lint markdown files that have changed (POSIX-only) (Rich Trott) #31923
  • [4f36bf78ea] - build: add configure option to debug only Node.js part of the binary (Anna Henningsen) #31644
  • [a53500e26b] - build: ignore all the "Debug","Release" folders (ConorDavenport) #31565
  • [038fd25ef8] - build: fix zlib tarball generation (Shelley Vohr) #32094
  • [e79f368783] - build: remove enable_vtune from vcbuild.bat (Richard Lau) #31338
  • [8296224e41] - build: add vs2019 to vcbuild.bat help (Richard Lau) #31338
  • [93a7f91b52] - build: silence OpenSSL Windows compiler warnings (Richard Lau) #31311
  • [a89893f3df] - build: silence c-ares Windows compiler warnings (Richard Lau) #31311
  • [f6a6638d0c] - build: test Python 3 using GitHub Actions-based CI (Christian Clauss) #29474
  • [aec22268af] - cli: allow --jitless V8 flag in NODE_OPTIONS (Andrew Neitsch) #32100
  • [70dc1cefea] - cli: --perf-prof only works on Linux (Shelley Vohr) #31892
  • [f9113fd7c2] - crypto: turn impossible DH errors into assertions (Tobias Nießen) #31934
  • [c6bbae44a9] - crypto: fix ieee-p1363 for createVerify (Tobias Nießen) #31876
  • [b84fd947d2] - crypto: fix performance regression (Robert Nagy) #31742
  • [9a3760d2fa] - crypto: improve randomBytes() performance (Brian White) #31519
  • [a1be32752c] - deps: V8: backport 07ee86a5a28b (Milad Farazmand) #32619
  • [a83fc49717] - deps: V8: cherry-pick cb1c2b0fbfe7 (Gerhard Stoebich) #31939
  • [784df12494] - deps: revert whitespace changes on V8 (Matheus Marchini) #32605
  • [6db190bb1c] - deps: upgrade npm to 6.14.4 (Ruy Adorno) #32495
  • [652ffa5470] - deps: update term-size with signed version (Rod Vagg) #31459
  • [f55d071bfd] - deps: remove *.pyc files from deps/npm (Ben Noordhuis) #32387
  • [c419cd21e3] - deps: update npm to 6.14.3 (Myles Borins) #32368
  • [17217a5275] - deps: upgrade npm to 6.14.1 (Isaac Z. Schlueter) #31977
  • [260bd810e9] - deps: update archs files for OpenSSL-1.1.1e (Hassaan Pasha) #32328
  • [e96e8afead] - deps: adjust openssl configuration for 1.1.1e (Hassaan Pasha) #32328
  • [4de1afd32d] - deps: upgrade openssl sources to 1.1.1e (Hassaan Pasha) #32328
  • [e2c40ccb78] - deps: V8: backport f7771e5b0cc4 (Matheus Marchini) #31957
  • [78d9a50c83] - deps: openssl: cherry-pick 4dcb150ea30f (Adam Majer) #32002
  • [ff1e5e01f4] - deps: upgrade npm to 6.13.7 (Michael Perrotte) #31558
  • [48e4d45cca] - deps: uvwasi: cherry-pick 7b5b6f9 (Colin Ihrig) #31495
  • [604ce0aa5a] - deps: upgrade to libuv 1.34.2 (Colin Ihrig) #31477
  • [3fb3079337] - deps: uvwasi: cherry-pick eea4508 (Colin Ihrig) #31432
  • [3bd1c02941] - deps: uvwasi: cherry-pick c3bef8e (Colin Ihrig) #31432
  • [12949019de] - deps: uvwasi: cherry-pick ea73af5 (Colin Ihrig) #31432
  • [ada070eed4] - deps: update to uvwasi 0.0.5 (Colin Ihrig) #31432
  • [8cf2666248] - deps: uvwasi: cherry-pick 941bedf (Colin Ihrig) #31363
  • [ef5517aa0c] - deps: port uvwasi@676ba9a to gyp (Colin Ihrig) #31363
  • [bbb8ae7bd0] - deps: upgrade to libuv 1.34.1 (Colin Ihrig) #31332
  • [7a8963bc75] - deps: upgrade npm to 6.13.6 (Ruy Adorno) #31304
  • [676e3c3c38] - deps,test: update to uvwasi 0.0.4 (Colin Ihrig) #31363
  • [e88960d1f4] - doc: esm spec bug (Myles Borins) #32610
  • [155a6c397d] - doc: update conditional exports recommendations (Guy Bedford) #32098
  • [7e56e3dee3] - doc: remove unnecessary "obvious(ly)" modifiers in esm.md (Rich Trott) #32457
  • [61f44c94ae] - doc: fix lint warning in doc/api/esm.md (Richard Lau) #32462
  • [d8e17bf12a] - doc: improve wording in esm.md (Rich Trott) #32427
  • [8b961347fe] - doc: import clarifications with links to MDN (Eric Dobbertin) #31479
  • [f58594b8ec] - doc: update releaser list in README.md (Myles Borins) #32577
  • [885c88ee5b] - doc: official macOS builds now on 10.15 + Xcode 11 (Rod Vagg) #31459
  • [efd20f08e8] - doc: link setRawMode() from signal docs (Anna Henningsen) #32088
  • [3f1b9162f6] - doc: document self-referencing a package name (Gil Tayar) #31680
  • [f820ce6e50] - doc: add AsyncResource + Worker pool example (Anna Henningsen) #31601
  • [df8d51b411] - doc: document fs.watchFile() bigint option (Colin Ihrig) #32128
  • [eaf615709f] - doc: fix broken links in benchmark README (Rich Trott) #32121
  • [047bd9d38e] - doc: update email address in authors (Yael Hermon) #32026
  • [c20f2cd41d] - doc: update maintaining-V8.md (kenzo-spaulding) #31503
  • [05fbc80f45] - doc: visibility of Worker threads cli options (Harshitha KP) #31380
  • [224a17e202] - doc: improve doc/markdown file organization coherence (ConorDavenport) #31792
  • [df54a1932a] - doc: revise --zero-fill-buffers text in buffer.md (Rich Trott) #32019
  • [9161b7e5c3] - doc: add link to sem-ver info (unknown) #31985
  • [1630320781] - doc: update zlib doc (James M Snell) #31665
  • [a1c0d467ef] - doc: clarify http2.connect authority details (James M Snell) #31828
  • [ed86854025] - doc: updated YAML version representation in readline.md (Rich Trott) #31924
  • [370653f1a0] - doc: update releases guide re pushing tags (Myles Borins) #31855
  • [ab735d0144] - doc: update assert.rejects() docs with a validation function example (Eric Eastwood) #31271
  • [911dfc5099] - doc: add note about ssh key to releases (Shelley Vohr) #31856
  • [e83af20b70] - doc: add note in BUILDING.md about running make distclean (Swagat Konchada) #31542
  • [17882ac83d] - doc: reword possessive form of Node.js in adding-new-napi-api.md (Rich Trott) #31748
  • [648f83135e] - doc: reword possessive form of Node.js in http.md (Rich Trott) #31748
  • [d034eb41f2] - doc: reword possessive form of Node.js in process.md (Rich Trott) #31748
  • [b8d2997950] - doc: reword possessive form of Node.js in debugger.md (Rich Trott) #31748
  • [aebaeadf05] - doc: move gireeshpunathil to TSC emeritus (Gireesh Punathil) #31770
  • [88a6d9b077] - doc: pronouns for @Fishrock123 (Jeremiah Senkpiel) #31725
  • [b3d0795a4a] - doc: move @Fishrock123 to TSC Emeriti (Jeremiah Senkpiel) #31725
  • [e65c1c25fc] - doc: move @Fishrock123 to a previous releaser (Jeremiah Senkpiel) #31725
  • [38d3f56ea3] - doc: fix typos in doc/api/https.md (Jeff) #31793
  • [de275d0e0b] - doc: guide - using valgrind to debug memory leaks (Michael Dawson) #31501
  • [82defc0d15] - doc: add glossary.md (gengjiawen) #27517
  • [01ec7221e6] - doc: add prerequisites information for Arch (Ujjwal Sharma) #31669
  • [a7a6261fa4] - doc: fix typo on fs docs (Juan José Arboleda) #31620
  • [d4c1a8cc7b] - doc: update contact email for @ryzokuken (Ujjwal Sharma) #31670
  • [86686ccbab] - doc: fix default server timeout description for https (Andrey Pechkurov) #31692
  • [448fe39c35] - doc: add directions to mark a release line as lts (Danielle Adams) #31724
  • [dbe2da65c9] - doc: expand C++ README with information about exception handling (Anna Henningsen) #31720
  • [236943ac5b] - doc: update foundation name in onboarding (Tobias Nießen) #31719
  • [165047a787] - doc: reword possessive form of Node.js in zlib.md (Rich Trott) #31713
  • [d3201d7933] - doc: reword possessive form of Node.js in modules.md (Rich Trott) #31713
  • [4c65d0a3d3] - doc: reword possessive form of Node.js in repl.md (Rich Trott) #31713
  • [4c5c340d28] - doc: reword section title in addons.md (Rich Trott) #31713
  • [1db85aa71c] - doc: revise deepEqual() legacy assertion mode text (Rich Trott) #31704
  • [aadd8cac4b] - doc: improve strict assertion mode color text (Rich Trott) #31703
  • [708aff953a] - doc: consolidate introductory text (Rich Trott) #31667
  • [959fa8ff9d] - doc: simplify async_hooks overview (Rich Trott) #31660
  • [28657cc614] - doc: clarify Worker exit/message event ordering (Anna Henningsen) #31642
  • [cb75ca1a51] - doc: update TSC name in "Release Process" (Tobias Nießen) #31652
  • [76b500218b] - doc: remove .github/ISSUE_TEMPLATE.md in favor of the template folder (Joyee Cheung) #31656
  • [55c7b9f94a] - doc: correct getting an ArrayBuffer's length (tsabolov) #31632
  • [afeaec7d6f] - doc: ask more questions in the bug report template (Joyee Cheung) #31611
  • [06d5a9c0a0] - doc: add example to fs.promises.readdir (Conor ONeill) #31552
  • [351c86310b] - doc: fix numbering (Steffen) #31575
  • [356e505ab0] - doc: clarify socket.setNoDelay() explanation (Rusty Conover) #31541
  • [b2e571ea65] - doc: clarify require() OS independence (Denys Otrishko) #31571
  • [1759f0ab52] - doc: add protocol option in http2.connect() (Michael Lumish) #31560
  • [f5663d92b8] - doc: clarify that v8.serialize() is not deterministic (Anna Henningsen) #31548
  • [af61c5d1b2] - doc: update job reference in COLLABORATOR_GUIDE.md (Richard Lau) #31557
  • [f4bdcf86ce] - doc: simultaneous blog and email of sec announce (Sam Roberts) #31483
  • [5286ccc1dc] - doc: update collaborator guide citgm instructions (Robert Nagy) #31549
  • [1cf450c51f] - doc: change error message testing policy (Tobias Nießen) #31421
  • [d978bb56dd] - doc: remove redundant properties from headers (XhmikosR) #31492
  • [e48f874afd] - doc: enable visual code indication in headers (Rich Trott) #31493
  • [8c78b87d97] - doc: clean up and streamline vm.md examples (Denys Otrishko) #31474
  • [821b9ac007] - doc: further fix async iterator example (Robert Nagy) #31367
  • [f0b5f9fb94] - doc: add ronag to collaborators (Robert Nagy) #31498
  • [37754bab2d] - doc: fix code display in header glitch (Rich Trott) #31460
  • [40480e0c0d] - doc: fix syntax in N-API documentation (Tobias Nießen) #31466
  • [11dbdcb839] - doc: add explanatory to path.resolve description (Yakov Litvin) #31430
  • [5e8f8b8320] - doc: document process.std*.fd (Harshitha KP) #31395
  • [c7f03ad8ca] - doc: fix several child_process doc typos (Colin Ihrig) #31393
  • [2d9f111011] - doc: correct added version for --abort-on-uncaught-exception (Anna Henningsen) #31360
  • [d944fa71dd] - doc: explain hex encoding in Buffer API (Harshitha KP) #31352
  • [ff8f0bc3cc] - doc: explain _writev() API (Harshitha KP) #31356
  • [b4d15a9adc] - doc: document missing properties in child_process (Harshitha KP) #31342
  • [9aa4fcc052] - doc: standardize on "host name" in deprecations.md (Rich Trott) #31326
  • [175a5ec795] - doc: standardize on "host name" in url.md (Rich Trott) #31326
  • [5f45eaf390] - doc: standardize on "host name" in tls.md (Rich Trott) #31326
  • [54b5346392] - doc: standardize on "host name" in os.md (Rich Trott) #31326
  • [ac3d0c90f5] - doc: standardize on "host name" in net.md (Rich Trott) #31326
  • [9217b7a639] - doc: standardize on "host name" in https.md (Rich Trott) #31326
  • [9bca4514bf] - doc: standardize on "host name" in http2.md (Rich Trott) #31326
  • [a419698b18] - doc: standardize on "host name" in fs.md (Rich Trott) #31326
  • [d4a0300424] - doc: standardize on "host name" in errors.md (Rich Trott) #31326
  • [ad701329d6] - doc: standardize on "host name" in dgram.md (Rich Trott) #31326
  • [0eba07b267] - doc: standardize on "host name" in async_hooks.md (Rich Trott) #31326
  • [52a4a44b76] - doc: fix a code example in crypto.md (himself65) #31313
  • [6598a08308] - doc: add an example for util.types.isExternal (Harshitha KP) #31173
  • [760bedee44] - doc: fix example of parsing request.url (Egor Pavlov) #31302
  • [fa0762d663] - doc: improve doc v8.getHeapSpaceStatistics() 'GetHeapSpaceStatistics' (dev-313) #31274
  • [cb40a1a90f] - doc: update README to make Node.js description clearer (carterbancroft) #31266
  • [dd9a6c6c22] - doc: fix a code example in zlib.md (Alexander Wang) #31264
  • [97c12f120e] - doc: add GeoffreyBooth to collaborators (Geoffrey Booth) #31306
  • [63af1ab60f] - doc: update description of External (Anna Henningsen) #31255
  • [e398137020] - doc: rename iterator to iterable in examples (Robert Nagy) #31252
  • [4922184310] - doc: fix stream async iterator sample (Robert Nagy) #31252
  • [623e1118a0] - doc: correct filehandle.[read|write|append]File() (Bryan English) #31235
  • [60e35d454c] - doc: prefer server vs srv and client vs clt (Andrew Hughes) #31224
  • [6cfc4dcfb4] - doc: explain native external types (Harshitha KP) #31214
  • [ebc47f8b52] - doc: remove em dashes (Rich Trott) #32146
  • [db125c5618] - doc: fix missing changelog corrections (Myles Borins) #31854
  • [8f75c7497e] - doc,assert: rename "mode" to "assertion mode" (Rich Trott) #31635
  • [fd5aa41178] - doc,crypto: re-document oaepLabel option (Ben Noordhuis) #31825
  • [8f9f92fb33] - doc,net: reword Unix domain path paragraph in net.md (Rich Trott) #31684
  • [073b4f2750] - doc,src: clarify that one napi_env is per-module (legendecas) #31102
  • [844f893e4e] - doc,util: revise util.md introductory paragraph (Rich Trott) #31685
  • [b1517a4f6c] - errors: make use of "cannot" consistent (Tobias Nießen) #31420
  • [7231090a5d] - errors: remove dead code in ERR_INVALID_ARG_TYPE (Gerhard Stoebich) #31322
  • [0e513b2ae7] - esm: remove unused parameter on module.instantiate (himself65) #32147
  • [05091d48e3] - esm: import.meta.resolve with nodejs: builtins (Guy Bedford) #31032
  • [400083b9f5] - events: fix removeListener for Symbols (zfx) #31847
  • [de5d162c60] - fs: fix valid id range on chown, lchown, fchown (himself65) #31694
  • [d36699662f] - fs: set path when mkdir recursive called on file (Benjamin Coe) #31607
  • [3d8e850d31] - fs: bail on permission error in recursive directory creation (Benjamin Coe) #31505
  • [fc9c6c3227] - fs: do not emit 'close' twice if emitClose enabled (Robert Nagy) #31383
  • [ca951e182e] - fs: unset FileHandle fd after close (Anna Henningsen) #31389
  • [1fe0065a51] - fs: add missing HandleScope to FileHandle.close (Anna Henningsen) #31276
  • [73c4729652] - fs: use async writeFile in FileHandle#appendFile (Bryan English) #31235
  • [4745ac4fd7] - http2: use custom BaseObject smart pointers (Anna Henningsen) #30374
  • [76a0ba689a] - http2: make compat finished match http/1 (Robert Nagy) #24347
  • [f910f645b9] - http2: skip creating native ShutdownWrap (Anna Henningsen) #31283
  • [d00a1b9ad2] - lib: replace BigInt64Array global by the primordials (Sebastien Ahkrin) #31193
  • [2147c29de0] - lib: add Uint16Array primordials (Sebastien Ahkrin) #31210
  • [bc4cbe3f50] - lib: add RegExp primordials (Sebastien Ahkrin) #31208
  • [41f0fa742e] - lib: replace Float32Array global by the primordials (Sebastien Ahkrin) #31195
  • [68d48fead3] - lib: replace BigUInt64Array global by the primordials (Sebastien Ahkrin) #31194
  • [a0ad12bd7d] - lib,tools,test: remove custom number-isnan rule (Colin Ihrig) #31211
  • [a6f56bb11e] - meta: move thefourtheye to TSC Emeritus (Rich Trott) #32059
  • [ae9f58cbdd] - meta: move not-an-aardvark to emeritus (Rich Trott) #31928
  • [553d62c26d] - meta: move aqrln to emeritus (Rich Trott) #31997
  • [a44fb3fabf] - meta: move jbergstroem to emeritus (Rich Trott) #31996
  • [a75aa93b2d] - meta: move maclover7 to Emeritus (Rich Trott) #31994
  • [fd5c3a749a] - meta: move Glen Keane to Collaborator Emeritus (Rich Trott) #31993
  • [9251307570] - meta: move julianduque to emeritus (Rich Trott) #31863
  • [2a4d31ae23] - meta: move eljefedelrodeodeljefe to emeritus (Rich Trott) #31735
  • [c222d561c6] - meta: move princejwesley to emeritus (Rich Trott) #31730
  • [3e7e9fdca9] - meta: move vkurchatkin to emeritus (Rich Trott) #31729
  • [ca52b5b1e3] - meta: move calvinmetcalf to emeritus (Rich Trott) #31736
  • [c892d410bb] - meta: fix collaborator list errors in README.md (James M Snell) #31655
  • [62b5bd4ca0] - module: add hook for global preload code (Jan Krems) #32068
  • [c537afb18c] - module: package "exports" error refinements (Guy Bedford) #31625
  • [4ee41c572c] - module: drop support for extensionless main entry points in esm (Geoffrey Booth) #31415
  • [08e09eca34] - n-api: free instance data as reference (Gabriel Schulhof) #31638
  • [16c690373a] - n-api: rename 'promise' parameter to 'value' (Tobias Nießen) #31544
  • [3a84634cc1] - n-api: return napi_invalid_arg on napi_create_bigint_words (legendecas) #31312
  • [0d30546329] - net: track state of setNoDelay() and prevent unnecessary system calls (Rusty Conover) #31543
  • [87cfbb2da1] - report: add support for Workers (Anna Henningsen) #31386
  • [782f5dbddd] - src: add build Github Action (gengjiawen) #31153
  • [fbd5be6734] - src: delete BaseObjectWeakPtr data when pointee is gone (Anna Henningsen) #32393
  • [56a45095b7] - src: harden running native SetImmediate()s slightly (Anna Henningsen) #31468
  • [cb16aabd15] - src: simplify native immediate queue running (Anna Henningsen) #31502
  • [c2176e15ea] - src: move MemoryInfo() for worker code to .cc files (Anna Henningsen) #31386
  • [22bf867149] - src: add interrupts to Environments/Workers (Anna Henningsen) #31386
  • [7c2c068aeb] - src: remove AsyncRequest (Anna Henningsen) #31386
  • [748a530046] - src: add a threadsafe variant of SetImmediate() (Anna Henningsen) #31386
  • [aafb224147] - src: exclude C++ SetImmediate() from count (Anna Henningsen) #31386
  • [5df969826d] - src: better encapsulate native immediate list (Anna Henningsen) #31386
  • [2625244111] - src: run native immediates during Environment cleanup (Anna Henningsen) #30666
  • [5b65348fed] - src: no SetImmediate from destructor in stream_pipe code (Anna Henningsen) #30666
  • [51230f71ff] - src: add more can\_call\_into\_js() guards (Anna Henningsen) #30666
  • [7647bfe3fc] - src: keep object alive in stream_pipe code (Anna Henningsen) #30666
  • [5f95e69f4d] - src: remove HandleWrap instances from list once closed (Anna Henningsen) #30374
  • [e17d314a21] - src: remove keep alive option from SetImmediate() (Anna Henningsen) #30374
  • [6db84d3e50] - src: use BaseObjectPtr for keeping channel alive in dns bindings (Anna Henningsen) #30374
  • [c60780ff52] - src: introduce custom smart pointers for BaseObjects (Anna Henningsen) #30374
  • [17e10dd3cb] - src: use C++ style for struct with initializers (Sam Roberts) #32134
  • [b5c6230258] - src: implement per-process native Debug() printer (Joyee Cheung) #31884
  • [b95e8eafa5] - src: refactor debug category parsing (Joyee Cheung) #31884
  • [19f3c0adc2] - src: make aliased_buffer.h self-contained (Joyee Cheung) #31884
  • [908f634110] - src: discard tasks posted to platform TaskRunner during shutdown (Anna Henningsen) #31853
  • [808379c379] - src: Handle bad callback in asyc_wrap (Harshitha KP) #31946
  • [a6a41f4c77] - src: add node_crypto_common and refactor (James M Snell) #32016
  • [0b327bd81d] - src: enable StreamPipe for generic StreamBases (Anna Henningsen) #31869
  • [bd92243ddf] - src: elevate v8 namespaces (Harshitha KP) #31901
  • [3b2bbbdeca] - src: allow unique_ptrs with custom deleter in memory tracker (Anna Henningsen) #31870
  • [9ab4a7e5ce] - src: move BaseObject subclass dtors/ctors out of node_crypto.h (Anna Henningsen) #31872
  • [041408d513] - src: don't run bootstrapper in CreateEnvironment (Shelley Vohr) #31910
  • [e6debf5c25] - src: prefer 3-argument Array::New() (Anna Henningsen) #31775
  • [98640f7a6d] - src: use hex not decimal in IsArrayIndex (Shelley Vohr) #31758
  • [75971009d0] - src: wrap HostPort in ExclusiveAccess (Ben Noordhuis) #31717
  • [01da65644e] - src: add ExclusiveAccess class (Ben Noordhuis) #31717
  • [28289eaeb8] - src: allow to reuse env options handling (Denys Otrishko) #31711
  • [249a0fe61d] - src: fix compile warnings in node_url.cc (Anna Henningsen) #31689
  • [bf729d02b7] - src: modernized unique_ptr construction (Yuhanun Citgez) #31654
  • [6e3e158f51] - src: remove dead code in InternalMakeCallback (Gerhard Stoebich) #31622
  • [c34672a3b0] - src: remove fixed-size GetHumanReadableProcessName (Ben Noordhuis) #31633
  • [57d1d73b47] - src: fix OOB reads in process.title getter (Ben Noordhuis) #31633
  • [5e68a13d53] - src: various minor improvements to node_url (James M Snell) #31651
  • [2cdd57ab67] - src: fix inspecting MessagePort from init async hook (Anna Henningsen) #31600
  • [753db6aee2] - src: remove unused Worker::child\_port\_ member (Anna Henningsen) #31599
  • [7e52e39385] - src: change Fill() to use ParseArrayIndex() (ConorDavenport) #31591
  • [79a6872809] - src: remove duplicate field env in CryptoJob class (ConorDavenport) #31554
  • [5e19c4a9d4] - src: fix console debug output on Windows (Denys Otrishko) #31580
  • [9c9dc4b184] - src: remove preview for heap dump utilities (Anna Henningsen) #31570
  • [91dd1018ac] - src: fix debug crash handling null strings (Rusty Conover) #31523
  • [fb32043e6a] - src: define noreturn attribute for windows (Alexander Smarus) #31467
  • [ce6b9d15d2] - src: reduce code duplication in BootstrapNode (Denys Otrishko) #31465
  • [a309af0f52] - src: use custom fprintf alike to write errors to stderr (Anna Henningsen) #31446
  • [7bdd29fa21] - src: add C++-style sprintf utility (Anna Henningsen) #31446
  • [8f88d62a31] - src: reduce large pages code duplication (Gabriel Schulhof) #31385
  • [de6d5523a1] - src: fix ignore GCC -Wcast-function-type for older compilers (Denys Otrishko) #31524
  • [a8d9c0f8b6] - src: ignore GCC -Wcast-function-type for v8.h (Daniel Bevenius) #31475
  • [a2f1825cb5] - src: fix performance regression in node_file.cc (Ben Noordhuis) #31343
  • [1d075cfd7f] - src: use uv_guess_handle() to detect TTYs (Colin Ihrig) #31333
  • [21bcc96f92] - src: include uv.h in node_binding header (Shelley Vohr) #31265
  • [d77a1b088f] - src: remove node::InitializeV8Platform() (Ben Noordhuis) #31245
  • [fe1ac496f7] - src: remove uses of node::InitializeV8Platform() (Ben Noordhuis) #31245
  • [8aa7bf2d23] - src: clean up large_pages code (Denys Otrishko) #31196
  • [12253f8c74] - stream: sync stream unpipe resume (Robert Nagy) #31191
  • [6e76752a7b] - stream: simplify push (Robert Nagy) #31150
  • [8973209ad0] - stream: clean up definition using defineProperties (antsmartian) #31236
  • [a987972bde] - stream: replace Function.prototype with primordial (Sebastien Ahkrin) #31204
  • [e685f12ee6] - test: restore --jitless test on AIX (Richard Lau) #32619
  • [eee587b847] - test: fix test-http2-reset-flood flakiness (Anna Henningsen) #32607
  • [d568efcd22] - test: refactor common.expectsError (Ruben Bridgewater) #31092
  • [e4f9360287] - test: mark test-http2-reset-flood flaky on bsd (Myles Borins) #32595
  • [6f50b60018] - test: add test-worker-prof to the SLOW list for debug (Myles Borins) #32589
  • [7123c0f042] - test: always skip vm-timeout-escape-queuemicrotask (Denys Otrishko) #31980
  • [bb947ce3c2] - test: improve test-debug-usage (Rich Trott) #32141
  • [7c8a7b4c7d] - test: end tls connection with some data (Sam Roberts) #32328
  • [f4bd01c816] - test: discard data received by client (Hassaan Pasha) #32328
  • [7a14ddf104] - test: increase test timeout to prevent flakiness (Ruben Bridgewater) #31716
  • [147045716b] - test: use index.js if package.json "main" is empty (Ben Noordhuis) #32040
  • [03aa2e1b7b] - test: changed function to arrow function (ProdipRoy89) #32045
  • [b4c407fecc] - test: allow EAI_FAIL in test-net-dns-error.js (Vita Batrla) #31780
  • [2582083f63] - test: remove superfluous checks in test-net-reconnect-error (Rich Trott) #32120
  • [f365e5c262] - test: apply camelCase in test-net-reconnect-error (Rich Trott) #32120
  • [256bc4412c] - test: update tests for larger Buffers (Jakob Kummerow) #32114
  • [96c7226897] - test: remove common.port from test-tls-securepair-client (Rich Trott) #32024
  • [1318662ff7] - test: add WASI test for path_link() (Colin Ihrig) #32132
  • [55214628af] - test: move test-inspector-module to parallel (Rich Trott) #32025
  • [3574116887] - test: fix flaky test-dns-any.js (Rich Trott) #32017
  • [d62538404e] - test: fix flaky test-gc-net-timeout (Robert Nagy) #31918
  • [2bf9a2d84c] - test: change test to not be sensitive to buffer send size (Rusty Conover) #31499
  • [b1cf56f5db] - test: remove sequential/test-https-keep-alive-large-write.js (Rusty Conover) #31499
  • [67c3a95f7d] - test: validate common property usage (Denys Otrishko) #31933
  • [26d9f4c160] - test: fix usage of invalid common properties (Denys Otrishko) #31933
  • [086e14d251] - test: increase timeout in vm-timeout-escape-queuemicrotask (Denys Otrishko) #31966
  • [c2ffef8678] - test: add documentation for common.enoughTestCpu (Rich Trott) #31931
  • [0c6fdfc4ac] - test: fix typo in common/index.js (Rich Trott) #31931
  • [3deee057b3] - test: remove common.PORT from assorted pummel tests (Rich Trott) #31897
  • [bde5a9bda8] - test: remove flaky designation for test-net-connect-options-port (Rich Trott) #31841
  • [c386f7568c] - test: remove common.PORT from test-net-write-callbacks.js (Rich Trott) #31839
  • [709256346c] - test: remove common.PORT from test-net-pause (Rich Trott) #31749
  • [61de609ac8] - test: remove common.PORT from test-tls-server-large-request (Rich Trott) #31749
  • [33d3cccb98] - test: remove common.PORT from test-net-throttle (Rich Trott) #31749
  • [d172cc1474] - test: remove common.PORT from test-net-timeout (Rich Trott) #31749
  • [1109124313] - test: add known issue test for sync writable callback (James M Snell) #31756
  • [aa5afd013b] - test: mark test-fs-stat-bigint flaky on FreeBSD (Rich Trott) #31728
  • [3f43c5f508] - test: improve test-fs-stat-bigint (Rich Trott) #31726
  • [3f6805f0e7] - test: remove flaky designation for test-fs-stat-bigint (Rich Trott) #30437
  • [7d71465194] - test: fix flaky test-fs-stat-bigint (Duncan Healy) #30437
  • [ca6fce0cbb] - test: add debugging output to test-net-listen-after-destroy-stdin (Rich Trott) #31698
  • [59eba1177b] - test: improve assertion message in test-dns-any (Rich Trott) #31697
  • [61e534baa0] - test: stricter assert color test (Ruben Bridgewater) #31429
  • [bdd1133451] - test: fix test-benchmark-http (Rich Trott) #31686
  • [795a21d53a] - test: fix flaky test-inspector-connect-main-thread (Anna Henningsen) #31637
  • [297fb67304] - test: add test-dns-promises-lookupService (Rich Trott) #31640
  • [02c2396976] - test: fix flaky test-http2-stream-destroy-event-order (Anna Henningsen) #31610
  • [d2fbe80a4a] - test: unset NODE_OPTIONS for cctest (Anna Henningsen) #31594
  • [944f1a345a] - test: simplify test-https-simple.js (Sam Roberts) #31584
  • [0eb2dbb24e] - test: mark additional tests as flaky on Windows (Anna Henningsen) #31606
  • [0bc3bd7c11] - test: remove --experimental-worker flag comment (Harshitha KP) #31563
  • [baa14c9e39] - test: make test-http2-buffersize more correct (Anna Henningsen) #31502
  • [e3e056d5cd] - test: fix test-heapdump-worker (Anna Henningsen) #31494
  • [48f4212286] - test: add tests for main() argument handling (Colin Ihrig) #31426
  • [dbe2d85f66] - test: add wasi test for freopen() (Colin Ihrig) #31432
  • [a8e2f405f2] - test: remove bluebird remnants from test fixture (Rich Trott) #31435
  • [8438d1498d] - test: improve wasi stat test (Colin Ihrig) #31413
  • [596920dbf4] - test: add wasi test for symlink() and readlink() (Colin Ihrig) #31403
  • [2750e65f5c] - test: update postmortem test with v12 constants (Matheus Marchini) #31391
  • [642f8c0eb9] - test: export public symbols in addons tests (Ben Noordhuis) #28717
  • [20167fec5f] - test: stricten readline keypress failure test condition (Ruben Bridgewater) #31300
  • [c719f7ab36] - test: allow disabling crypto tests (Shelley Vohr) #31268
  • [31a13dc3a4] - test: fix recursive rm test to actually use tmpdir (Denys Otrishko) #31250
  • [320ac13452] - test: remove unused symlink loop (Colin Ihrig) #31267
  • [f3af68ea80] - test: prefer server over srv (Andrew Hughes) #31224
  • [04e2f41783] - test: fix unit test logging with python3 (Adam Majer) #31156
  • [5a537babe1] - test: mark empty udp tests flaky on OS X (Sam Roberts) #32146
  • [99cfab2594] - test,dns: add coverage for dns exception (Rich Trott) #31678
  • [54395c60eb] - tls: reduce memory copying and number of BIO buffer allocations (Rusty Conover) #31499
  • [4f177c4f63] - tls: simplify errors using ThrowCryptoError (Tobias Nießen) #31436
  • [c0e6e60cb1] - tools: update minimist@1.2.5 (Rich Trott) #32274
  • [dca3d298dd] - tools: update icu to 65.1 (Albert Wang) #30232
  • [d57719098c] - tools: only fetch previous versions when necessary (Richard Lau) #32518
  • [61d54e7716] - tools: use per-process native Debug() printer in mkcodecache (Joyee Cheung) #31884
  • [1060a2bba9] - tools: add NODE_TEST_NO_INTERNET to the doc builder (Joyee Cheung) #31849
  • [aa8a435e17] - tools: sync gyp code base with node-gyp repo (Michaël Zasso) #30563
  • [6b1a5518e0] - tools: update lint-md task to lint for possessives of Node.js (Rich Trott) #31862
  • [b657df4759] - tools: update Markdown linter to be cross-platform (Derek Lewis) #31239
  • [289f3dc538] - tools: replace deprecated iteritems() for items() (Giovanny Andres Gongora Granada (Gioyik)) #31528
  • [77e6700b03] - tools: remove obsolete dependencies (Rich Trott) #31359
  • [c7b1f1df3b] - tools: update remark-preset-lint-node to 1.12.0 (Rich Trott) #31359
  • [20f857fa01] - tools: update JSON header parsing for backticks (Rich Trott) #31294
  • [0f4a9e26ef] - tools: ensure consistent perms of signed release files (Rod Vagg) #29350
  • [6f71efa0ed] - tools: add clang-tidy rule in src (gengjiawen) #26840
  • [3a1566a267] - tools: unify make-v8.sh for ppc64le and s390x (Richard Lau) #31628
  • [fbc0bd95ec] - tty: do not end in an infinite warning recursion (Ruben Bridgewater) #31429
  • [32c0449141] - (SEMVER-MINOR) util: use a global symbol for util.promisify.custom (ExE Boss) #31672
  • [f4e5404b5d] - util: throw if unreachable TypedArray checking code is reached (Rich Trott) #31737
  • [785417aeda] - util: add coverage for util.inspect.colors alias setter (Rich Trott) #31743
  • [c9fa2d1fbf] - util: throw if unreachable code is reached (Rich Trott) #31712
  • [51d8fbf31f] - util: fix inspection of typed arrays with unusual length (Ruben Bridgewater) #31458
  • [f068788f59] - util: add colors to debuglog() (Ruben Bridgewater) #30930
  • [a91a824108] - wasi: improve use of primordials (Colin Ihrig) #31212
  • [2029c10196] - win: change to use Python in install tool (gengjiawen) #31221
  • [c5de212039] - worker: move JoinThread() back into exit callback (Anna Henningsen) #31468
  • [65729f966e] - worker: emit runtime error on loop creation failure (Harshitha KP) #31621
  • [ea989e160e] - worker: unroll file extension regexp (Anna Henningsen) #31779
  • [9f8d315a09] - worker: add support for .cjs extension (Antoine du HAMEL) #31662
  • [30dbc84642] - worker: properly handle env and NODE_OPTIONS in workers (Denys Otrishko) #31711
  • [0697f65f70] - worker: reset Isolate stack limit after entering Locker (Anna Henningsen) #31593
  • [5500521804] - worker: remove redundant closing of child port (aaccttrr) #31555

2020-02-18, Version 12.16.1 'Erbium' (LTS), @MylesBorins

Notable changes

Node.js 12.16.0 included 6 regressions that are being fixed in this release

Accidental Unflagging of Self Resolving Modules:

12.16.0 included a large update to the ESM implementation. One of the new features, Self Referential Modules, was accidentally released without requiring the --experimental-modules flag. This release is being made to appropriately flag the feature.

Process Cleanup Changed Introduced WASM-Related Assertion:

A change during Node.js process cleanup led to a crash in combination with specific usage of WASM. This has been fixed by partially reverted said change. A regression test and a full fix are being worked on and will likely be included in future 12.x and 13.x releases.

Use Largepages Runtime Option Introduced Linking Failure:

A Semver-Minor change to introduce --use-largepages as a runtime option introduced a linking failure. This had been fixed in master but regressed as the fix has not yet gone out in a Current release. The feature has been reverted, but will be able to reland with a fix in a future Semver-Minor release.

Async Hooks was Causing an Exception When Handling Errors:

Changes in async hooks internals introduced a case where an internal api call could be called with undefined causing a process to crash. The change to async hooks was reverted. A regression test and fix has been proposed and the change could re-land in a future Semver-Patch release if the regression is reliably fixed.

New Enumerable Read-Only Property on EventEmitter breaks @types/extend

A new property for enumerating events was added to the EventEmitter class. This broke existing code that was using the @types/extend module for extending classses as @types/extend was attemping to write over the existing field which the new change made read-only. As this is the first property on EventEmitter that is read-only this feature could be considered Semver-Major. The new feature has been reverted but could re-land in a future Semver-Minor release if a non breaking way of applying it is found.

Exceptions in the HTTP parser were not emitting an uncaughtException

A refactoring to Node.js interanls resulted in a bug where errors in the HTTP parser were not being emitted by process.on('uncaughtException') when the async_hooks after hook exists. The fix to this bug has been included in this release.

Commits

  • [51fdd759b9] - async_hooks: ensure event after been emitted on runInAsyncScope (legendecas) #31784
  • [7a1b0ac06f] - Revert "build: re-introduce --use-largepages as no-op" (Myles Borins) #31782
  • [a53eeca2a9] - Revert "build: switch realpath to pwd" (Myles Borins) #31782
  • [6d432994e6] - Revert "build: warn upon --use-largepages config option" (Myles Borins) #31782
  • [a5bc00af12] - Revert "events: allow monitoring error events" (Myles Borins)
  • [f0b2d875d9] - module: 12.x self resolve flag as experimental modules (Guy Bedford) #31757
  • [42b68a4e24] - src: inform callback scopes about exceptions in HTTP parser (Anna Henningsen) #31801
  • [065a32f064] - Revert "src: make --use-largepages a runtime option" (Myles Borins) #31782
  • [3d5beebc62] - Revert "src: make large_pages node.cc include conditional" (Myles Borins) #31782
  • [43d02e20e0] - src: keep main-thread Isolate attached to platform during Dispose (Anna Henningsen) #31795
  • [7a5954ef26] - src: fix -Winconsistent-missing-override warning (Colin Ihrig) #30549

2020-02-11, Version 12.16.0 'Erbium' (LTS), @targos

Notable changes

New assert APIs

The assert module now provides experimental assert.match() and assert.doesNotMatch() methods. They will validate that the first argument is a string and matches (or does not match) the provided regular expression:

const assert = require('assert').strict;

assert.match('I will fail', /pass/);
// AssertionError [ERR_ASSERTION]: The input did not match the regular ...

assert.doesNotMatch('I will fail', /fail/);
// AssertionError [ERR_ASSERTION]: The input was expected to not match the ...

This is an experimental feature.

Ruben Bridgewater #30929.

Advanced serialization for IPC

The child_process and cluster modules now support a serialization option to change the serialization mechanism used for IPC. The option can have one of two values:

  • 'json' (default): JSON.stringify() and JSON.parse() are used. This is how message serialization was done before.
  • 'advanced': The serialization API of the v8 module is used. It is based on the HTML structured clone algorithm and is able to serialize more built-in JavaScript object types, such as BigInt, Map, Set etc. as well as circular data structures.

Anna Henningsen #30162.

CLI flags

The new --trace-exit CLI flag makes Node.js print a stack trace whenever the Node.js environment is exited proactively (i.e. by invoking the process.exit() function or pressing Ctrl+C).

legendecas #30516.


The new --trace-uncaught CLI flag makes Node.js print a stack trace at the time of throwing uncaught exceptions, rather than at the creation of the Error object, if there is any. This option is not enabled by default because it may affect garbage collection behavior negatively.

Anna Henningsen #30025.


The --disallow-code-generation-from-strings V8 CLI flag is now whitelisted in the NODE_OPTIONS environment variable.

Shelley Vohr #30094.

New crypto APIs

For DSA and ECDSA, a new signature encoding is now supported in addition to the existing one (DER). The verify and sign methods accept a dsaEncoding option, which can have one of two values:

  • 'der' (default): DER-encoded ASN.1 signature structure encoding (r, s).
  • 'ieee-p1363': Signature format r || s as proposed in IEEE-P1363.

Tobias Nießen #29292.


A new method was added to Hash: Hash.prototype.copy. It makes it possible to clone the internal state of a Hash object into a new Hash object, allowing to compute the digest between updates:

// Calculate a rolling hash.
const crypto = require('crypto');
const hash = crypto.createHash('sha256');

hash.update('one');
console.log(hash.copy().digest('hex'));

hash.update('two');
console.log(hash.copy().digest('hex'));

hash.update('three');
console.log(hash.copy().digest('hex'));

// Etc.

Ben Noordhuis #29910.

Dependency updates

libuv was updated to 1.34.0. This includes fixes to uv_fs_copyfile() and uv_interface_addresses() and adds two new functions: uv_sleep() and uv_fs_mkstemp().

Colin Ihrig #30783.


V8 was updated to 7.8.279.23. This includes performance improvements to object destructuring, RegExp match failures and WebAssembly startup time. The official release notes are available at https://v8.dev/blog/v8-release-78.

Michaël Zasso #30109.

New EventEmitter APIs

The new EventEmitter.on static method allows to async iterate over events:

const { on, EventEmitter } = require('events');

(async () => {

  const ee = new EventEmitter();

  // Emit later on
  process.nextTick(() => {
    ee.emit('foo', 'bar');
    ee.emit('foo', 42);
  });

  for await (const event of on(ee, 'foo')) {
    // The execution of this inner block is synchronous and it
    // processes one event at a time (even with await). Do not use
    // if concurrent execution is required.
    console.log(event); // prints ['bar'] [42]
  }

})();

Matteo Collina #27994.


It is now possible to monitor 'error' events on an EventEmitter without consuming the emitted error by installing a listener using the symbol EventEmitter.errorMonitor:

const myEmitter = new MyEmitter();

myEmitter.on(EventEmitter.errorMonitor, (err) => {
  MyMonitoringTool.log(err);
});

myEmitter.emit('error', new Error('whoops!'));
// Still throws and crashes Node.js

Gerhard Stoebich #30932.


Using async functions with event handlers is problematic, because it can lead to an unhandled rejection in case of a thrown exception:

const ee = new EventEmitter();

ee.on('something', async (value) => {
  throw new Error('kaboom');
});

The experimental captureRejections option in the EventEmitter constructor or the global setting change this behavior, installing a .then(undefined, handler) handler on the Promise. This handler routes the exception asynchronously to the Symbol.for('nodejs.rejection') method if there is one, or to the 'error' event handler if there is none.

const ee1 = new EventEmitter({ captureRejections: true });
ee1.on('something', async (value) => {
  throw new Error('kaboom');
});

ee1.on('error', console.log);

const ee2 = new EventEmitter({ captureRejections: true });
ee2.on('something', async (value) => {
  throw new Error('kaboom');
});

ee2[Symbol.for('nodejs.rejection')] = console.log;

Setting EventEmitter.captureRejections = true will change the default for all new instances of EventEmitter.

EventEmitter.captureRejections = true;
const ee1 = new EventEmitter();
ee1.on('something', async (value) => {
  throw new Error('kaboom');
});

ee1.on('error', console.log);

This is an experimental feature.

Matteo Collina #27867.

Performance Hooks are no longer experimental

The perf_hooks module is now considered a stable API.

legendecas #31101.

Introduction of experimental WebAssembly System Interface (WASI) support

A new core module, wasi, is introduced to provide an implementation of the WebAssembly System Interface specification. WASI gives sandboxed WebAssembly applications access to the underlying operating system via a collection of POSIX-like functions.

This is an experimental feature.

Colin Ihrig #30258.

Commits

  • [fc7b27ea78] - (SEMVER-MINOR) assert: implement assert.match() and assert.doesNotMatch() (Ruben Bridgewater) #30929
  • [7d6c963b9d] - assert: DRY .throws code (Ruben Bridgewater) #28263
  • [749bc16cca] - assert: fix generatedMessage property (Ruben Bridgewater) #28263
  • [6909e3e656] - assert: use for...of (Soar) #30983
  • [b4e8f0de12] - assert: fix line number calculation after V8 upgrade (Michaël Zasso) #29694
  • [a0f338ecc1] - assert,util: stricter type comparison using deep equal comparisons (Ruben Bridgewater) #30764
  • [a9fad8524c] - async_hooks: ensure proper handling in runInAsyncScope (Anatoli Papirovski) #30965
  • [73e3c15a70] - benchmark: add more util inspect and format benchmarks (Ruben Bridgewater) #30767
  • [634389b3ee] - benchmark: use let instead of var in dgram (dnlup) #31175
  • [b55420889c] - benchmark: add benchmark on async_hooks enabled http server (legendecas) #31100
  • [1c97163f76] - benchmark: use let instead of var in crypto (dnlup) #31135
  • [3de7713aa5] - benchmark: replace var with let/const in cluster benchmark (dnlup) #31042
  • [471c59b4ba] - benchmark: include writev in benchmark (Robert Nagy) #31066
  • [c73256460d] - benchmark: use let instead of var in child_process (dnlup) #31043
  • [aa973c5cd9] - benchmark: add clear connections to secure-pair (Diego Lafuente) #27971
  • [d5bebc3be8] - benchmark: update manywrites back pressure (Robert Nagy) #30977
  • [baabf3e764] - benchmark: use let/const instead of var in buffers (dnlup) #30945
  • [667471ee8b] - benchmark: improve --filter pattern matching (Matheus Marchini) #29987
  • [b4509170f4] - bootstrap: use different scripts to setup different configurations (Joyee Cheung) #30862
  • [655d0685c4] - buffer: release buffers with free callbacks on env exit (Anna Henningsen) #30551
  • [ae3459af9f] - buffer: improve .from() error details (Ruben Bridgewater) #29675
  • [ada7624e6b] - build: auto-load ICU data from --with-icu-default-data-dir (Stephen Gallagher) #30825
  • [d66996ce0d] - build: remove (almost) unused macros/constants (Benjamin Coe) #30755
  • [ca432d756e] - build: do not build mksnapshot and mkcodecache for --shared (Joyee Cheung) #30647
  • [30096ef5a4] - build: add --without-node-code-cache configure option (Joyee Cheung) #30647
  • [cb89fbcafc] - build: don't use -latomic on macOS (Ryan Schmidt) #30099
  • [b1b7f6746c] - build: fixes build for some os versions (David Carlier)
  • [dc7a2320ff] - build: fix missing x64 arch suffix in binary tar name (legendecas) #30877
  • [ebe6a55ba8] - build: on Android, use android log library to print stack traces (Giovanni Campagna) #29388
  • [fbf5beee56] - build: fix library version and compile flags on Android (Giovanni Campagna) #29388
  • [c8c22b8d4c] - build: ease DragonFlyBSD build (David Carlier) #30201
  • [766c2abff3] - build: warn upon --use-largepages config option (Gabriel Schulhof) #31103
  • [e67b3608af] - build: switch realpath to pwd (Benjamin Coe) #31095
  • [332b343f50] - build: re-introduce --use-largepages as no-op (Gabriel Schulhof)
  • [a91ed2eada] - build: reset embedder string to "-node.0" (Michaël Zasso) #30109
  • [0b3951a8e7] - build,win: fix goto exit in vcbuild (João Reis) #30931
  • [df1e183e3f] - child_process,cluster: allow using V8 serialization API (Anna Henningsen) #30162
  • [8dc4e4ecb7] - cli: add --trace-exit cli option (legendecas) #30516
  • [ba289ffb4e] - cli: whitelist new V8 flag in NODE_OPTIONS (Shelley Vohr) #30094
  • [dc58731e28] - cli: add --trace-uncaught flag (Anna Henningsen) #30025
  • [2d23502121] - cluster: remove unnecessary bind (Anatoli Papirovski) #28131
  • [f54dc362a9] - console: unregister temporary error listener (Robert Nagy) #30852
  • [9bc5c9fbc3] - crypto: cast oaepLabel to unsigned char* (Shelley Vohr) #30917
  • [dd118b7272] - crypto: automatically manage memory for ECDSA_SIG (Tobias Nießen) #30641
  • [df54ec3eb2] - crypto: add support for IEEE-P1363 DSA signatures (Tobias Nießen) #29292
  • [5dd72a67c4] - crypto: add Hash.prototype.copy() method (Ben Noordhuis) #29910
  • [e2cd110c0a] - deps: V8: cherry-pick 0dfd9ea51241 (Benjamin Coe) #30713
  • [b724eaf66d] - deps: V8: cherry-pick d89f4ef1cd62 (Milad Farazmand) #31354
  • [6de77d3f09] - deps: uvwasi: cherry-pick 75b389c (Colin Ihrig) #31076
  • [8f4339b8af] - deps: uvwasi: cherry-pick 64e59d5 (Colin Ihrig) #31076
  • [63f85d52de] - deps: update uvwasi (Anna Henningsen) #30745
  • [317c3dffbb] - deps: V8: cherry-pick b38dfaf3a633 (Matheus Marchini) #30870
  • [554c7c2c98] - deps: V8: cherry-pick cc5016e1b702 (Matheus Marchini) #30870
  • [250198220d] - deps: V8: backport a4545db (David Carlier) #31127
  • [76eaf24f8f] - deps: V8: cherry-pick d406bfd64653 (Sam Roberts) #30819
  • [c004cf51c6] - deps: V8: cherry-pick d3a1a5b6c491 (Michaël Zasso) #31005
  • [850cb15ae8] - deps: upgrade to libuv 1.34.0 (Colin Ihrig) #30783
  • [ff82ccb151] - deps: fix OPENSSLDIR on Windows (Shigeki Ohtsu) #29456
  • [6bee6878ba] - deps: V8: cherry-pick ca5b0ec (Anna Henningsen) #30708
  • [c4074e37e2] - deps: V8: backport 777fa98 (Michaël Zasso) #30062
  • [45240a1325] - deps: V8: cherry-pick 53e62af (Michaël Zasso) #29898
  • [b335529803] - deps: patch V8 to be API/ABI compatible with 7.4 (from 7.7) (Michaël Zasso) #29241
  • [499ccdcf03] - deps: patch V8 to be API/ABI compatible with 7.4 (from 7.6) (Michaël Zasso) #28955
  • [bb616bb06b] - deps: patch V8 to be API/ABI compatible with 7.4 (from 7.5) (Michaël Zasso) #28005
  • [18c713da2c] - deps: update V8's postmortem script (Colin Ihrig) #29694
  • [593d989e8e] - deps: V8: cherry-pick a7dffcd767be (Christian Clauss) #30218
  • [5e1da86d9b] - deps: V8: cherry-pick 0a055086c377 (Michaël Zasso) #30109
  • [25dd890847] - deps: V8: cherry-pick e5dbc95 (Gabriel Schulhof) #30130
  • [98dfe272b0] - deps: V8: cherry-pick ed40ab1 (Michaël Zasso) #30064
  • [4cdccbda80] - deps: V8: cherry-pick 716875d (Myles Borins) #29694
  • [667b9a409b] - deps: V8: cherry-pick 35c6d4d (Sam Roberts) #29585
  • [c43f5be7cf] - deps: V8: cherry-pick deac757 (Benjamin Coe) #29626
  • [d89f874871] - deps: V8: fix linking issue for MSVS (Refael Ackermann) #28016
  • [0d20a85b8e] - deps: V8: fix BUILDING_V8_SHARED issues (Refael Ackermann) #27375
  • [3d11924917] - deps: V8: add workaround for MSVC optimizer bug (Refael Ackermann) #28016
  • [9135bc219b] - deps: V8: use ATOMIC_VAR_INIT instead of std::atomic_init (Refael Ackermann) #27375
  • [d98789b348] - deps: V8: forward declaration of Rtl\*FunctionTable (Refael Ackermann) #27375
  • [5a31dc8177] - deps: V8: patch register-arm64.h (Refael Ackermann) #27375
  • [fe18796b03] - deps: V8: silence irrelevant warning (Michaël Zasso) #26685
  • [4bf6e025a7] - deps: V8: un-cherry-pick bd019bd (Refael Ackermann) #26685
  • [fdad5b6f38] - deps: V8: fix filename manipulation for Windows (Refael Ackermann) #28016
  • [35f289260e] - (SEMVER-MINOR) deps: update V8 to 7.8.279.23 (Michaël Zasso) #30109
  • [614ce0c51a] - deps,http: http_parser set max header size to 8KB (Matteo Collina) nodejs-private/node-private#143
  • [8d336ff796] - deps,src: patch V8 to be API/ABI compatible with 7.4 (from 7.8) (Anna Henningsen) #30109
  • [bf4f516eea] - deps,src,test: update to uvwasi 0.0.3 (Colin Ihrig) #30980
  • [25d96ecd4b] - dgram: test to add and to drop specific membership (A. Volgin) #31047
  • [b7ff93f45d] - dgram: use for...of (Trivikram Kamat) #30999
  • [b560f7b9d6] - (SEMVER-MINOR) dgram: add source-specific multicast support (Lucas Pardue) #15735
  • [9a6aff8517] - doc: make AssertionError a link (Ruben Bridgewater) #28263
  • [08b5a2fcb4] - doc: update assert.throws() examples (Ruben Bridgewater) #28263
  • [fd78d04188] - doc: remove extra backtick (Colin Ihrig) #31186
  • [808f025bea] - doc: use code markup/markdown in headers (Ruben Bridgewater) #31149
  • [95eb1c2884] - doc: add note about fs.close() about undefined behavior (Robert Nagy) #30966
  • [cfe30aebe1] - doc: add code example to inspector.url() method (Juan José Arboleda) #29496
  • [79521d304c] - doc: deprecate http finished (Robert Nagy) #28679
  • [2c85dd91d6] - doc: update REPL documentation to instantiate the REPL (Ruben Bridgewater) #30928
  • [deb1a591f5] - doc: improve explanation of package.json "type" field (Ronald J Kimball) #27516
  • [37560cdf81] - doc: clarify role of writable.cork() (Colin Grant) #30442
  • [5648f5ec6e] - doc: de-duplicate security release processes (Sam Roberts) #30996
  • [2d9d59f427] - doc: fix createDiffieHellman generator type (Tobias Nießen) #31121
  • [6df270451a] - doc: update mode type for mkdir() functions (Colin Ihrig) #31115
  • [1d7ff3d673] - doc: update mode type for process.umask() (Colin Ihrig) #31115
  • [f851d9fbd8] - doc: update mode type for fs open() functions (Colin Ihrig) #31115
  • [e104e72f58] - doc: update mode type for fchmod() functions (Colin Ihrig) #31115
  • [13fe137791] - doc: update parameter type for fsPromises.chmod() (Colin Ihrig) #31115
  • [ddad6eb90f] - doc: improve dns introduction (Rich Trott) #31090
  • [a192afc2aa] - doc: update parameter type for fs.chmod() (Santosh Yadav) #31085
  • [fd0565c91c] - doc: add --inspect-publish-uid man page entry (Colin Ihrig) #31077
  • [39e2af67e2] - doc: add --force-context-aware man page entry (Colin Ihrig) #31077
  • [1d28db1007] - doc: add --enable-source-maps man page entry (Colin Ihrig) #31077
  • [5796ec757f] - doc: fix anchors and subtitle in BUILDING.md (sutangu) #30296
  • [4f95213b83] - doc: standardize usage of hostname vs. host name (Rich Trott) #31073
  • [7b567bdd49] - doc: add unrepresented flags docs for configure (Pranshu Srivastava) #28069
  • [f0994940f0] - doc: improve doc net:server.listen (dev-313) #31064
  • [f8530128bd] - doc: implement minor improvements to BUILDING.md text (Rich Trott) #31070
  • [53403619ad] - doc: avoid using v8::Persistent in addon docs (Anna Henningsen) #31018
  • [d3c969547a] - doc: reference worker threads on signal events (legendecas) #30990
  • [55360487b7] - doc: update message.url example in http.IncomingMessage (Tadao Iseki) #30830
  • [178acac7d5] - doc: explain napi_run_script (Tobias Nießen) #30918
  • [fb3af1b23a] - doc: add "Be direct." to the style guide (Rich Trott) #30935
  • [0688c99823] - doc: clarify expectations for PR commit messages (Derek Lewis) #30922
  • [28a8247918] - doc: fix description of N-API exception handlers (Tobias Nießen) #30893
  • [be4fffe396] - doc: improve doc writable streams: 'finish' event (dev-313) #30889
  • [21ea47a08e] - doc: clarify build support text (Rich Trott) #30899
  • [fc0c7286c8] - doc: edit colorMode information (Rich Trott) #30887
  • [22f83598d9] - doc: fix argument type of setAAD (Tobias Nießen) #30863
  • [7b3e26987d] - doc: clarify Tier 2 implications in BUILDING.md (Rich Trott) #30866
  • [e0811cd8cc] - doc: improve doc Http2Stream: FrameError, Timeout and Trailers (dev-313) #30373
  • [6db2562796] - doc: include line/cursor in readline documentation (Jeremy Albright) #30667
  • [5d56e85f84] - doc: improve napi formatting (Ruben Bridgewater) #30772
  • [998d04d792] - doc: add documentation about node_mksnapshot and mkcodecache (Joyee Cheung) #30773
  • [73427af3c8] - doc: remove imprecise and redundant testing text (Rich Trott) #30763
  • [6418b939e3] - doc: remove usage of "Node" in favor of "Node.js" (Rich Trott) #30758
  • [a500eee3e7] - doc: revise addons introduction for brevity and clarity (Rich Trott) #30756
  • [005b601aa1] - doc: fix up N-API doc (NickNaso) #30656
  • [420d793f9a] - doc: adds assert doc for strict mode with pointer to strict equality (Shobhit Chittora) #30486
  • [ab7304767e] - doc: Buffer.toString(): add note about invalid data (Jan-Philip Gehrcke) #30706
  • [a152458e6e] - doc: clarify text about using 'session' event for compatibility (Rich Trott) #30746
  • [c79f485af9] - doc: fix worker.resourceLimits indentation (Daniel Nalborczyk) #30663
  • [1a6443dfde] - doc: fix worker.resourceLimits type (Daniel Nalborczyk) #30664
  • [b7bd84f7d2] - doc: simplify "is recommended" language in assert documentation (Rich Trott) #30558
  • [9b7bde14c3] - doc: update http.md mention of socket (Jesse O'Connor) #30155
  • [2cbb358c23] - doc: clarify required flag for extensionless esm (Lucas Azzola) #30657
  • [de3fdfaa6f] - doc: avoid proposal syntax in code example (Alex Zherdev) #30685
  • [138a905b15] - doc: esm: improve dual package hazard docs (Geoffrey Booth) #30345
  • [5687a3178d] - doc: fix some recent doc nits (vsemozhetbyt) #30341
  • [007dab8f25] - doc: update outdated commonjs compat info (Geoffrey Booth) #30512
  • [d0f4a2f14a] - doc: update divergent specifier hazard guidance (Geoffrey Booth) #30051
  • [1f46eea24d] - doc: include --experimental-resolve-self in manpage (Guy Bedford) #29978
  • [30edcc03aa] - doc: update vm.md for link linting (Rich Trott) #29982
  • [426ed0dffa] - doc: make YAML matter consistent in crypto.md (Rich Trott) #30016
  • [2d5aec013c] - doc: fix numbering in require algorithm (Jan Krems) #30117
  • [9023c59a8d] - doc: use code markup/markdown in headers in globals documentation (Rich Trott) #31086
  • [448a1178fa] - doc: use code markup/markdown in headers in deprecations documentation (Rich Trott) #31086
  • [b5a19bcf65] - doc: use code markup/markdown in headers in addons documentation (Rich Trott) #31086
  • [2f2f79d8eb] - doc: allow <code> in header elements (Rich Trott) #31086
  • [2885bdbc56] - doc,assert: use code markup/markdown in headers (Rich Trott) #31086
  • [da25662fc8] - doc,async_hooks: use code markup/markdown in headers (Rich Trott) #31086
  • [54c60d2e57] - doc,benchmark: move benchmark guide to benchmark directory (Rich Trott) #30781
  • [a96590a69f] - doc,buffer: use code markup/markdown in headers (Rich Trott) #31086
  • [8a5fe08fd4] - doc,child_process: use code markup/markdown in headers (Rich Trott) #31086
  • [8eecc56cd3] - doc,cluster: use code markup/markdown in headers (Rich Trott) #31086
  • [54e41cebbd] - doc,console: use code markup/markdown in headers (Rich Trott) #31086
  • [67637c652b] - doc,crypto: use code markup/markdown in headers (Rich Trott) #31086
  • [c2ad43af89] - doc,dgram: use code markup/markdown in headers (Rich Trott) #31086
  • [135097f845] - doc,dns: use code markup/markdown in headers (Rich Trott) #31086
  • [0a29db286d] - doc,domain: use code markup/markdown in headers (Rich Trott) #31086
  • [69da6110ab] - doc,errors: use code markup/markdown in headers (Rich Trott) #31086
  • [c4503ea987] - doc,esm: use code markup/markdown in headers (Rich Trott) #31086
  • [c4c10d1c09] - doc,events: use code markup/markdown in headers (Rich Trott) #31086
  • [8848062bc4] - doc,fs: use code markup/markdown in headers (Rich Trott) #31086
  • [25b30e4b61] - doc,http: use code markup/markdown in headers (Rich Trott) #31086
  • [be7d4dea4b] - doc,http2: use code markup/markdown in headers (Rich Trott) #31086
  • [2449d5fee6] - doc,https: use code markup/markdown in headers (Rich Trott) #31086
  • [f7255c12a8] - doc,inspector: use code markup/markdown in headers (Rich Trott) #31086
  • [3454f65ebe] - doc,lib,src,test: rename WASI CLI flag (Colin Ihrig) #30980
  • [bd5ae0a140] - doc,module: use code markup/markdown in headers (Rich Trott) #31086
  • [2697c0d008] - doc,n-api: mark napi_detach_arraybuffer as experimental (legendecas) #30703
  • [bff03ca2cb] - doc,net: use code markup/markdown in headers (Rich Trott) #31086
  • [4fa99591b0] - doc,os: use code markup/markdown in headers (Rich Trott) #31086
  • [b18c128aff] - doc,path: use code markup/markdown in headers (Rich Trott) #31086
  • [77813e0426] - doc,perf_hooks: use code markup/markdown in headers (Rich Trott) #31086
  • [84e3a86bd5] - doc,process: use code markup/markdown in headers (Rich Trott) #31086
  • [7f2625f5df] - doc,punycode: use code markup/markdown in headers (Rich Trott) #31086
  • [6de05ecf23] - doc,querystring: use code markup/markdown in headers (Rich Trott) #31086
  • [4dc930cdd9] - doc,readline: use code markup/markdown in headers (Rich Trott) #31086
  • [55a269ce7c] - doc,repl: use code markup/markdown in headers (Rich Trott) #31086
  • [8a98243fc6] - doc,stream: use code markup/markdown in headers (Rich Trott) #31086
  • [b0e4a02dca] - doc,string_decoder: use code markup/markdown in headers (Rich Trott) #31086
  • [ad48c27fe9] - doc,timers: use code markup/markdown in headers (Rich Trott) #31086
  • [fd0a3cbfd1] - doc,tls: use code markup/markdown in headers (Rich Trott) #31086
  • [38bcd45b4c] - doc,tty: use code markup/markdown in headers (Rich Trott) #31086
  • [4f564e77f7] - doc,url: use code markup/markdown in headers (Rich Trott) #31086
  • [1b2c0a9c43] - doc,util: use code markup/markdown in headers (Rich Trott) #31086
  • [9dfe436588] - doc,v8: use code markup/markdown in headers (Rich Trott) #31086
  • [930cf99345] - doc,vm: use code markup/markdown in headers (Rich Trott) #31086
  • [ffe92267fc] - doc,vm,test: remove _sandbox_ from vm documentation (Rich Trott) #31057
  • [255e3cdd40] - doc,wasi: use code markup/markdown in headers (Rich Trott) #31086
  • [a361a7356d] - doc,worker: use code markup/markdown in headers (Rich Trott) #31086
  • [367143ee33] - doc,zlib: use code markup/markdown in headers (Rich Trott) #31086
  • [df94cfb67c] - errors: improve ERR_INVALID_ARG_TYPE (Ruben Bridgewater) #29675
  • [2986982459] - errors: support prepareSourceMap with source-maps (Benjamin Coe) #31143
  • [a2ac9d3098] - esm: better error message for unsupported URL (Thomas) #31129
  • [298fdbe442] - esm: empty ext from pkg type/main doesnt affect format (Bradley Farias) #31021
  • [fa96f54028] - esm: make specifier flag clearly experimental (Myles Borins) #30678
  • [05172951ac] - esm: data URLs should ignore unknown parameters (Bradley Farias) #30593
  • [2275da52a0] - esm: disable non-js exts outside package scopes (Guy Bedford) #30501
  • [7b46b20947] - esm: exit the process with an error if loader has an issue (Michaël Zasso) #30219
  • [d6e69fbd25] - (SEMVER-MINOR) esm: unflag --experimental-exports (Guy Bedford) #29867
  • [eb82683538] - (SEMVER-MINOR) events: add EventEmitter.on to async iterate over events (Matteo Collina) #27994
  • [5cb0de948d] - (SEMVER-MINOR) events: allow monitoring error events (Gerhard Stoebich) #30932
  • [9f81da5883] - (SEMVER-MINOR) events: add captureRejection option (Matteo Collina) #27867
  • [578d12fa10] - fs: synchronize close with other I/O for streams (Anna Henningsen) #30837
  • [55c5baf413] - fs: retry unlink operations in rimraf (Colin Ihrig) #30569
  • [edc9efa5c8] - fs: only operate on buffers in rimraf (Colin Ihrig) #30569
  • [465a1cf8b9] - fs: use consistent defaults in sync stat functions (Colin Ihrig) #31097
  • [cc9712d7b3] - fs: remove unnecessary bind (Anatoli Papirovski) #28131
  • [1d4e3d50ab] - fs: reduce unnecessary sync rimraf retries (Colin Ihrig) #30785
  • [5d39527b22] - fs: add synchronous retries to rimraf (Colin Ihrig) #30785
  • [366a45be2a] - fs: fix existsSync for invalid symlink at win32 (Rongjian Zhang) #30556
  • [4fffb42939] - fs: add ENFILE to rimraf retry logic (Colin Ihrig) #30644
  • [f9d8494410] - fs: add retryDelay option to rimraf (Colin Ihrig) #30644
  • [7a321989ac] - fs: remove rimraf's emfileWait option (Colin Ihrig) #30644
  • [ccc228b438] - fs: make rimraf default to 0 retries (Colin Ihrig) #30644
  • [3a70185c16] - fs: rename rimraf's maxBusyTries to maxRetries (Colin Ihrig) #30644
  • [785aa86b94] - (SEMVER-MINOR) fs: add bufferSize option to fs.opendir() (Anna Henningsen) #30114
  • [73717f2d7e] - http: http_outgoing rename var to let and const (telenord) #30284
  • [350cfa7333] - http: free listeners on free sockets (Robert Nagy) #29259
  • [4cc10d5fd4] - http: use for...of in http library code (Trivikram Kamat) #30958
  • [35a33f6e01] - http: add captureRejection support to OutgoingMessage (Matteo Collina) #27867
  • [f7d128ad48] - http: implement capture rejections for 'request' event (Matteo Collina) #27867
  • [8111d69635] - http: remove unnecessary bind (Anatoli Papirovski) #28131
  • [4f85f52933] - http: improve performance caused by primordials (Lucas Recknagel) #30416
  • [db8144be31] - (SEMVER-MINOR) http: outgoing cork (Robert Nagy) #29053
  • [86369e4ac5] - (SEMVER-MINOR) http: support readable hwm in IncomingMessage (Colin Ihrig) #30135
  • [b9ffca1a00] - (SEMVER-MINOR) http: add reusedSocket property on client request (themez) #29715
  • [2445bc0d48] - http: fix monkey-patching of http_parser (Jimb Esser) #30222
  • [92a9dacce9] - http2: make HTTP2ServerResponse more streams compliant (Robert Nagy)
  • [5dd7c92b41] - http2: set default enableConnectProtocol to 0 (Yongsheng Zhang) #31174
  • [d7d7cf7513] - http2: implement capture rection for 'request' and 'stream' events (Matteo Collina) #27867
  • [84603ec3ee] - http2: remove unnecessary bind from setImmediate (Anatoli Papirovski) #28131
  • [081e488871] - http2: forward debug message in debugStreamObj (Denys Otrishko) #30840
  • [b2a2c6c032] - http2: track nghttp2-allocated memory in heap snapshot (Anna Henningsen) #30745
  • [9be789e632] - http2: use shared memory tracking implementation (Anna Henningsen) #30745
  • [53c691c390] - http2: streamline OnStreamRead streamline memory accounting (Denys Otrishko) #30351
  • [da9fffa6a0] - http2: small clean up in OnStreamRead (Denys Otrishko) #30351
  • [a4ae272c5b] - (SEMVER-MINOR) http2: make maximum tolerated rejected streams configurable (Denys Otrishko) #30534
  • [7b2660630c] - (SEMVER-MINOR) http2: allow to configure maximum tolerated invalid frames (Denys Otrishko) #30534
  • [7998fbb7e9] - http2: replace direct array usage with struct for js_fields_ (Denys Otrishko) #30534
  • [06bcd1ab9b] - https: prevent options object from being mutated (Vighnesh Raut) #31151
  • [dbee78caa4] - (SEMVER-MINOR) https: add client support for TLS keylog events (Sam Roberts) #30053
  • [9908bd0dc2] - inspector: do not access queueMicrotask from global (Michaël Zasso) #30732
  • [367484dbe1] - lib: move initialization of APIs for changing process state (Anna Henningsen) #31172
  • [7f70c2431c] - lib: do not catch user errors (Ruben Bridgewater) #31159
  • [59101b5a2a] - lib: replace var with let/const (kresimirfranin) #30394
  • [e7829758dd] - lib: further simplify assertions in vm/module (Anna Henningsen) #30815
  • [02fc95d3d7] - lib: improve spelling and grammar in comment (David Newman) #31026
  • [d19316d2d9] - lib: change var to let/const (rene.herrmann) #30910
  • [84c9e4f1b5] - lib: refactor NativeModule (Joyee Cheung) #30856
  • [168dd92537] - lib: replace var with let/const (jens-cappelle) #30384
  • [abfb8c11b5] - lib: delay access to CLI option to pre-execution (Joyee Cheung) #30778
  • [947d066da7] - lib: replace Map global by the primordials (Sebastien Ahkrin) #31155
  • [dc9a51d72b] - lib: replace use of Error with primordials (Sebastien Ahkrin) #31163
  • [131d961845] - lib: replace Set global by the primordials (Sebastien Ahkrin) #31154
  • [e955606a1e] - lib: replace WeakSet global by the primordials (Sebastien Ahkrin) #31157
  • [d5d0744d1a] - lib: replace WeakMap global by the primordials (Sebastien Ahkrin) #31158
  • [61e794b243] - lib: replace Set.prototype with SetPrototype primordial (Sebastien Ahkrin) #31161
  • [0229a24b47] - lib: replace Symbol.species by SymbolSpecies (Sebastien Ahkrin) #30950
  • [e01433db8b] - lib: replace Symbol.hasInstance by SymbolHasInstance (Sebastien Ahkrin) #30948
  • [497a1c8405] - lib: replace Symbol.asyncIterator by SymbolAsyncIterator (Sebastien Ahkrin) #30947
  • [a8a04efac8] - lib: enforce use of Promise from primordials (Michaël Zasso) #30936
  • [1092e0b6fb] - lib: add TypedArray constructors to primordials (Sebastien Ahkrin) #30740
  • [3348fe40e4] - lib: replace Symbol.toPrimitive to SymbolToPrimitive primordials (Sebastien Ahkrin) #30905
  • [06776496b4] - lib: update Symbol.toStringTag by SymbolToStringTag primordial (Sebastien Ahkrin) #30908
  • [b92511d8e6] - lib: enforce use of BigInt from primordials (Michaël Zasso) #30882
  • [fb18ad4e60] - lib: replace Symbol.iterator by SymbolIterator (Sebastien Ahkrin) #30859
  • [993c419ce7] - lib: replace every Symbol.for by SymbolFor primordials (Sebastien Ahkrin) #30857
  • [b95c50b392] - lib: replace Symbol global by the primordials Symbol (Sebastien Ahkrin) #30737
  • [8f911fe747] - lib: enforce use of primordial Number (Sebastien Ahkrin) #30700
  • [099edea144] - lib: use static Number properties from primordials (Michaël Zasso) #30686
  • [41510491f2] - lib: enforce use of Boolean from primordials (Michaël Zasso) #30698
  • [d3e1c5864b] - lib: replace Date.now function by primordial DateNow (Tchoupinax) #30689
  • [e53f5afdbe] - lib: replace ArrayBuffer.isView by primordial ArrayBuffer (Vincent Dhennin) #30692
  • [9260844e91] - lib: enforce use of Array from primordials (Michaël Zasso) #30635
  • [e2ae4c1aa1] - lib: flatten access to primordials (Michaël Zasso) #30610
  • [1c2d699ed8] - lib: use strict equality comparison (Donggeon Lim) #30898
  • [1698a53ed1] - lib: add parent to ERR_UNKNOWN_FILE_EXTENSION (qualitymanifest) #30728
  • [bcd27f7300] - lib: no need to strip BOM or shebang for scripts (Refael Ackermann) #27375
  • [1c50714729] - lib: rework logic of stripping BOM+Shebang from commonjs (Gus Caplan) #27768
  • [e98509b67c] - lib,test: improves ERR_REQUIRE_ESM message (Juan José Arboleda) #30694
  • [1607d38b22] - meta: clarify scope of new nodejs.org issue choice (Derek Lewis) #31123
  • [624ed0eed4] - module: fix check exports issue in cjs module loading (Guy Bedford) #31427
  • [60490f441a] - (SEMVER-MINOR) module: unflag conditional exports (Guy Bedford) #31001
  • [fcbc7756fe] - module: logical conditional exports ordering (Guy Bedford) #31008
  • [c6300e15bc] - module: loader getSource, getFormat, transform hooks (Geoffrey Booth) #30986
  • [e5437ef355] - module: fix require in node repl (Yongsheng Zhang) #30835
  • [3d1ca78144] - module: reduce circular dependency of internal/modules/cjs/loader (Joyee Cheung) #30349
  • [cad5c2bc6e] - module: fix dynamic import from eval (Corey Farrell) #30624
  • [77c69f51a3] - module: fixup lint and test regressions (Guy Bedford) #30802
  • [d65566a052] - module: fix specifier resolution algorithm (Rongjian Zhang) #30574
  • [657a8af8a9] - module: unflag resolve self (Guy Bedford) #31002
  • [7f4ee67435] - module: self resolve bug fix and esm ordering (Guy Bedford) #31009
  • [bb06225341] - module: conditional exports import condition (Guy Bedford) #30799
  • [b830f44ade] - module: ignore resolution failures for inspect-brk (Maël Nison) #30336
  • [dc084f9e33] - module: add warnings for experimental flags (Rongjian Zhang) #30617
  • [680ae770ab] - module: conditional exports with flagged conditions (Guy Bedford) #29978
  • [02c4d27007] - module: refactor modules bootstrap (Bradley Farias) #29937
  • [121c845714] - (SEMVER-MINOR) module: resolve self-references (Jan Krems) #29327
  • [b5d42aeac4] - (SEMVER-MINOR) n-api: implement napi_is_detached_arraybuffer (Denys Otrishko) #30613
  • [af5c489f39] - n-api: keep napi_env alive while it has finalizers (Anna Henningsen) #31140
  • [cab905f5ef] - (SEMVER-MINOR) n-api: add napi\_detach\_arraybuffer (legendecas) #29768
  • [7952154e5e] - net: remove duplicate _undestroy (Robert Nagy) #30833
  • [75972da470] - net: implement capture rejections for 'connection' event (Matteo Collina) #27867
  • [35b7ba6e7a] - perf_hooks: use for...of (Trivikram Kamat) #31049
  • [61a8af78fe] - (SEMVER-MINOR) perf_hooks: move perf_hooks out of experimental (legendecas) #31101
  • [25ba7f4d7c] - perf_hooks: remove unnecessary bind (Anatoli Papirovski) #28131
  • [1bcbc70ea8] - process: refs --unhandled-rejections documentation in warning message (Antoine du HAMEL) #30564
  • [5eafe3b5cb] - process: fix promise catching (Rongjian Zhang) #30957
  • [7a8232a041] - (SEMVER-MINOR) readline: promote _getCursorPos to public api (Jeremy Albright) #30687
  • [835151dadd] - readline: eagerly load string_decoder (Ruben Bridgewater) #30807
  • [c978396ee1] - repl: use better uncaught exceptions indicator (Ruben Bridgewater) #29676
  • [5ee105c9af] - repl: fix autocomplete when useGlobal is false (Michaël Zasso) #30883
  • [106e5ce581] - repl: fix referrer for dynamic import (Corey Farrell) #30609
  • [7fc6984c83] - (SEMVER-MINOR) repl: check for NODE_REPL_EXTERNAL_MODULE (Gus Caplan) #29778
  • [7a855f57b8] - src: accept single argument in getProxyDetails (Ruben Bridgewater) #30858
  • [9d60499bfb] - src: mark ArrayBuffers with free callbacks as untransferable (Anna Henningsen) #30475
  • [a4c7eba474] - src: prevent hard coding stack trace limit (legendecas) #30752
  • [65e5a8a90c] - src: unregister Isolate with platform before disposing (Anna Henningsen) #30909
  • [bf789145d9] - src: free preopen memory in WASI::New() (Colin Ihrig) #30809
  • [e9bda6618d] - src: use checked allocations in WASI::New() (Colin Ihrig) #30809
  • [29608beb82] - Revert "src: update v8abbr.h for V8 7.7" (Matheus Marchini) #30870
  • [5edd1a229b] - src: suppress warning in src/node_env_var.cc (Harshitha KP) #31136
  • [1b04e678ed] - src: enable stack trace printing for V8 check failures (Anna Henningsen) #31079
  • [715c158f2c] - src: port --bash-completion to C++ (Joyee Cheung) #25901
  • [f71b09fb27] - src: list used functions on headers (Juan José Arboleda) #30827
  • [91b72b3794] - src: fix compiler warning in env.cc (Anna Henningsen) #31020
  • [24a5929fae] - src: make debug_options getters public (Shelley Vohr) #30494
  • [e00c4e41b8] - src: fix the false isatty() issue on IBMi (Xu Meng) #30829
  • [d3c792997a] - src: improve checked uv loop close output (Anna Henningsen) #30814
  • [0c066dc610] - src: port memory-tracking allocator from QUIC repo (Anna Henningsen) #30745
  • [721ebf0487] - src: don't use deprecated OpenSSL APIs (Rosen Penev) #30812
  • [b233c36c10] - src: delete redundant method in node_dir.h (gengjiawen) #30747
  • [214042cd2f] - src: remove redundant cast in node_dir.cc (gengjiawen) #30747
  • [bd380d55d0] - src: improve node_crypto.cc memory allocation (Priyanka Kore) #30751
  • [19eb8e0268] - src: fix node_dir.cc memory allocation (Priyanka Kore) #30750
  • [78098d3859] - src: change header file in node_stat_watcher.cc (Reza Fatahi) #29976
  • [33064a14e4] - src: clean up node_file.h (Anna Henningsen) #30530
  • [3513243998] - src: fix -Wsign-compare warnings (Colin Ihrig) #30565
  • [50b7f840a1] - src: use uv_async_t for WeakRefs (Anna Henningsen) #30616
  • [8d6a90384d] - (SEMVER-MINOR) src: expose ArrayBuffer version of Buffer::New() (Anna Henningsen) #30476
  • [a81eae67ec] - (SEMVER-MINOR) src: expose ability to set options (Shelley Vohr) #30466
  • [af787b87ae] - (SEMVER-MINOR) src: allow adding linked bindings to Environment (Anna Henningsen) #30274
  • [60ac18ccd7] - (SEMVER-MINOR) src: deprecate two- and one-argument AtExit() (Anna Henningsen) #30227
  • [455a643c33] - (SEMVER-MINOR) src: expose granular SetIsolateUpForNode (Shelley Vohr) #30150
  • [a5d2b66bdc] - src: do not use std::function for OnScopeLeave (Anna Henningsen) #30134
  • [08e55e302b] - src: remove AsyncScope and AsyncCallbackScope (Anna Henningsen) #30236
  • [ce13d43819] - src: use callback scope for main script (Anna Henningsen) #30236
  • [e11a376677] - src: fix crash with SyntheticModule#setExport (Michaël Zasso) #30062
  • [e7c9042c72] - src: implement v8 host weakref hooks (Gus Caplan) #29874
  • [330eb10404] - src: make large_pages node.cc include conditional (Denys Otrishko) #31078
  • [84863994a3] - src: make --use-largepages a runtime option (Gabriel Schulhof) #30954
  • [ec3c39f54b] - src,test: use v8::Global instead of v8::Persistent (Anna Henningsen) #31018
  • [aad2578325] - stream: group all properties using defineProperties (antsmartian) #31144
  • [823ee2be05] - stream: reset flowing state if no 'readable' or 'data' listeners (Robert Nagy) #31036
  • [b12b9305f0] - stream: simplify isBuf (Robert Nagy) #31067
  • [3872a02020] - stream: use for...of (Trivikram Kamat) #30960
  • [322912aa65] - stream: do not chunk strings and Buffer in Readable.from (Matteo Collina) #30912
  • [d627724e9d] - stream: add support for captureRejection option (Matteo Collina) #27867
  • [369b7c235f] - stream: use more accurate end-of-stream writable and readable detection (Stewart X Addison) #29409
  • [55ca3a86b7] - (SEMVER-MINOR) stream: add writableCorked to Duplex (Anna Henningsen) #29053
  • [af960d7f22] - (SEMVER-MINOR) stream: add writableCorked property (Robert Nagy) #29012
  • [6e17ea4788] - test: change buffer offset to accommodate V8 BackingStore (Thang Tran) #31171
  • [b3e0bc2e91] - test: get lib/wasi.js coverage to 100% (Colin Ihrig) #31039
  • [07d195ab5f] - test: cover vm with negative tests (Andrew Kuzmenko) #31028
  • [b2caac25a7] - test: remove obsolete WASI test (Colin Ihrig) #30980
  • [ceca54940b] - test: simplify test-wasi-start-validation.js (Colin Ihrig) #30972
  • [be3fd2e714] - test: improve WASI start() coverage (Colin Ihrig) #30972
  • [a4b6668877] - test: add missing test flags (Colin Ihrig) #30971
  • [8f5ffffb61] - test: add test for validation for wasi.start() argument (Rich Trott) #30919
  • [5fff46a531] - test: work around ENOTEMPTY when cleaning tmp dir (Ben Noordhuis) #30849
  • [5bffe11cab] - test: wait for stream close before writing to file (Anna Henningsen) #30836
  • [6725fa11c7] - test: use fs rimraf to refresh tmpdir (Colin Ihrig) #30569
  • [b5d59a726b] - test: improve WASI options validation (Rich Trott) #30800
  • [6086a1dd61] - test: run more assert tests (Ruben Bridgewater) #30764
  • [45b74fbb5b] - test: improve wasi test coverage (Rich Trott) #30770
  • [fd33df7f33] - test: simplify tmpdir import in wasi tests (Rich Trott) #30770
  • [25b88acd0f] - test: use arrow functions in addons tests (garygsc) #30131
  • [023a802f20] - Revert "test: update postmortem metadata test for V8 7.7" (Matheus Marchini) #30870
  • [05ef4bdd35] - test: use spread object (Fran Herrero) #30423
  • [1d3405b05a] - test: log errors in test-http2-propagate-session-destroy-code (Denys Otrishko) #31072
  • [c7dafd8958] - test: skip the unsupported test cases for IBM i (Xu Meng) #30819
  • [2de25f18cd] - test: unflake async hooks statwatcher test (Denys Otrishko) #30362
  • [e68d86c195] - test: fix common.enoughTestMem (Rich Trott) #31035
  • [027a2dc3ec] - test: fix long lines (Colin Ihrig) #31014
  • [fa677ca5c5] - test: fix flaky test-http2-client-upload (Gerhard Stoebich) #29889
  • [d633ba07e3] - test: improve test coverage in child_process (Juan José Arboleda) #26282
  • [87543f024b] - test: improve dns lookup coverage (Kirill Ponomarev) #30777
  • [54a1078e76] - test: avoid leftover report file (Gerhard Stoebich) #30925
  • [d75a3f61d7] - test: improve assertion error message in test-debug-usage (Rich Trott) #30913
  • [768a53f219] - test: disable colorMode in test-console-group (Rich Trott) #30886
  • [a22d5e78e1] - test: assert: fix deepStrictEqual comparing a real array and fake array (Jordan Harband) #30743
  • [0dae8feefd] - test: refactor test-accessor-properties (himself65) #29943
  • [55a1a90fed] - test: scale keepalive timeouts for slow machines (Ben Noordhuis) #30834
  • [2d39ed97b9] - test: mark tests as flaky (João Reis) #30848
  • [fe3818e016] - test: mark addons/openssl-bindings/test flaky on arm (Richard Lau) #30838
  • [d15a2b6c19] - test: remove common.busyLoop() (Colin Ihrig) #30787
  • [4bb8d6aa03] - test: use callback arguments in getconnections test (Rich Trott) #30775
  • [35919999ce] - test: remove duplicate entries from root.status (Richard Lau) #30769
  • [d3004aacbf] - test: increase debugging information in subprocess test (Rich Trott) #30761
  • [7dc8237de1] - test: use block-scoping in test-net-server-address (Rich Trott) #30754
  • [13629368a4] - test: move test-child-process-fork-getconnections to parallel (Rich Trott) #30749
  • [096e3378ec] - test: change common.PORT to arbitrary port (Rich Trott) #30749
  • [860139408d] - test: update and harden http2-reset-flood (Denys Otrishko) #30534
  • [24f7335772] - test: cover 'close' method in Dir class (Artem Maksimov) #30310
  • [b87ae6dd43] - test: use tmpdir.refresh() in test-esm-windows.js (Richard Lau) #30997
  • [0ca80446c4] - test: make test-os-checked-function work without test harness (Rich Trott) #30914
  • [20c8a0a5ac] - test: delay loading 'os' in test/common module (Rich Trott) #30914
  • [71a3f485ba] - test: remove AtExit() addon test (Anna Henningsen) #30275
  • [e0eb670f0e] - test: revert 6d022c13 (Anna Henningsen) #30708
  • [ac9a8933c9] - test,module: add test for exports cjs loader check (Rich Trott) #31427
  • [f86862a2f5] - timers: fix refresh for expired timers (Anatoli Papirovski) #27345
  • [a4cbd57356] - timers: do less work in insert (Anatoli Papirovski) #27345
  • [cd700ffcba] - tls: for...of in _tls_common.js (Trivikram Kamat) #30961
  • [ba18406402] - tls: implement capture rejections for 'secureConnection' event (Matteo Collina) #27867
  • [b94172c9f7] - (SEMVER-MINOR) tls: add PSK support (Denys Otrishko) #23188
  • [693099cfae] - (SEMVER-MINOR) tls: expose IETF name for current cipher suite (Sam Roberts) #30637
  • [8a9243afce] - tls: introduce ERR_TLS_INVALID_CONTEXT (Rich Trott) #30718
  • [e80103a4cb] - (SEMVER-MINOR) tls: cli option to enable TLS key logging to file (Sam Roberts) #30055
  • [1974fd94ed] - tools: allow the travis commit message job to fail (Ruben Bridgewater) #31116
  • [340ce925a8] - tools: fix Raspbian armv7 build (Andrey Hohutkin) #31041
  • [56fb29a146] - tools: update ESLint to 6.8.0 (Colin Ihrig) #31044
  • [f2cc093d4a] - tools: enable Markdown linter's usage information (Derek Lewis) #30216
  • [7fabf77f7d] - tools: update link to google styleguide for cpplint (Daniel Bevenius) #30876
  • [21ccbddd5a] - tools: use CC instead of CXX when pointing to gcc (Milad Farazmand) #30817
  • [1f138f3450] - tools: update remark-preset-lint-node to 1.11.0 (Rich Trott) #30789
  • [fcecd09d6d] - tools: update ESLint to 6.7.2 (Rich Trott) #30762
  • [b09eda55f7] - tools: update remark-preset-lint-node to 1.10.1 (Rich Trott) #29982
  • [9acff553f9] - tools: update remark-preset-lint-node to 1.10.0 (Rich Trott) #29594
  • [e8176b0841] - tools: apply more stringent blank-line linting for markdown files (Rich Trott) #29447
  • [a19e9bd933] - tools: patch V8 to run on older XCode versions (Ujjwal Sharma) #29694
  • [0df49106d5] - tools: update V8 gypfiles (Michaël Zasso) #29694
  • [9b1aff4448] - tools,src: forbid usage of v8::Persistent (Anna Henningsen) #31018
  • [6d674d476e] - url: declare iterator inside loop (Trivikram Kamat) #30509
  • [a1d36db9d8] - util: improve prototype inspection using inspect() and showHidden (Ruben Bridgewater) #31113
  • [d3c0f46054] - util: add (typed) array length to the default output (Ruben Bridgewater) #31027
  • [19a3f8b8b5] - util: refactor inspect code for constistency (Ruben Bridgewater) #30225
  • [7686865174] - (SEMVER-MINOR) util: inspect (user defined) prototype properties (Ruben Bridgewater) #30768
  • [0376e1cf4d] - util: fix built-in detection (Ruben Bridgewater) #30768
  • [c6193fe009] - util: never trigger any proxy traps using format() (Ruben Bridgewater) #30767
  • [963c14c05c] - util: improve performance inspecting proxies (Ruben Bridgewater) #30767
  • [0074790b9c] - util: fix .format() not always calling toString when it should be (Ruben Bridgewater) #30343
  • [6a5580299e] - (SEMVER-MINOR) util: add more predefined color codes to inspect.colors (Ruben Bridgewater) #30659
  • [68f6841ca1] - (SEMVER-MINOR) util: improve inspect's customInspect performance (Ruben Bridgewater) #30659
  • [fe0c830864] - util: add internal sleep() function (Colin Ihrig) #30787
  • [fbd9ea8471] - v8: use of TypedArray constructors from primordials (Sebastien Ahkrin) #30740
  • [c802c998bf] - (SEMVER-MINOR) vm: add Synthetic modules (Gus Caplan) #29864
  • [8c34a14d89] - wasi: refactor destructuring object on constructor (himself65) #31185
  • [6bec620efc] - wasi: fix serdes bugs from snapshot1 migration (Colin Ihrig) #31122
  • [0d212fc9c1] - wasi: throw on failed uvwasi_init() (Colin Ihrig) #31076
  • [d31e6d9ee6] - wasi: require CLI flag to require() wasi module (Colin Ihrig) #30963
  • [bf789b5e3c] - wasi: use memory-tracking allocator (Anna Henningsen) #30745
  • [e2cb5d0754] - (SEMVER-MINOR) wasi: introduce initial WASI support (Colin Ihrig) #30258
  • [4ea1b816a4] - (SEMVER-MINOR) worker: add argv constructor option (legendecas) #30559
  • [7a8b659379] - (SEMVER-MINOR) worker: allow specifying resource limits (Anna Henningsen) #26628
  • [a2fa0318be] - zlib: use for...of (Trivikram Kamat) #31051
  • [7cad756e0c] - zlib: allow writes after readable 'end' to finish (Anna Henningsen) #31082

2020-02-06, Version 12.15.0 'Erbium' (LTS), @BethGriggs

Notable changes

This is a security release.

Vulnerabilities fixed:

  • CVE-2019-15606: HTTP header values do not have trailing OWS trimmed.
  • CVE-2019-15605: HTTP request smuggling using malformed Transfer-Encoding header.
  • CVE-2019-15604: Remotely trigger an assertion on a TLS server with a malformed certificate string.

Also, HTTP parsing is more strict to be more secure. Since this may cause problems in interoperability with some non-conformant HTTP implementations, it is possible to disable the strict checks with the --insecure-http-parser command line flag, or the insecureHTTPParser http option. Using the insecure HTTP parser should be avoided.

Commits

2020-01-07, Version 12.14.1 'Erbium' (LTS), @BethGriggs

Notable changes

  • crypto: fix key requirements in asymmetric cipher (Tobias Nießen) #30249
  • deps:
    • update llhttp to 2.0.1 (Fedor Indutny) #30553
    • update nghttp2 to 1.40.0 (gengjiawen) #30493
  • v8: mark serdes API as stable (Anna Henningsen) #30234

Commits

2019-12-17, Version 12.14.0 'Erbium' (LTS), @MylesBorins

This is a security release.

For more details about the vulnerability please consult the npm blog:

https://blog.npmjs.org/post/189618601100/binary-planting-with-the-npm-cli

Notable changes

  • deps: update npm to 6.13.4 #30904

Commits

2019-11-19, Version 12.13.1 'Erbium' (LTS), @targos

Notable changes

  • Experimental support for building Node.js with Python 3 is improved.
  • ICU time zone data is updated to version 2019c. This fixes the date offset in Brazil.

Commits

  • [56be32d22d] - async_hooks: only emit after for AsyncResource if stack not empty (Anna Henningsen) #30087
  • [e16e3d5b90] - benchmark: remove double word "then" in comments (Nick Schonning) #29823
  • [dcdb96c7bb] - benchmark: add benchmark for vm.createContext (Joyee Cheung) #29845
  • [680e9cc7e1] - buffer: improve performance caused by primordials (Jizu Sun) #30235
  • [bcd2238b3e] - build: add workaround for WSL (gengjiawen) #30221
  • [c5d312f821] - build: find Python syntax errors in dependencies (Christian Clauss) #30143
  • [468f203809] - build: fix pkg-config search for libnghttp2 (Ben Noordhuis) #30145
  • [0415dd7cb3] - build: python3 support for configure (Rod Vagg) #30047
  • [032c23d360] - build: make linter failures fail test-doc target (Richard Lau) #30012
  • [a86648c8d2] - build: log the found compiler version if too old (Richard Lau) #30028
  • [02f6e5cc40] - build: fix version checks in configure.py (Michaël Zasso) #29965
  • [a1adce1b4f] - build: build benchmark addons like test addons (Richard Lau) #29995
  • [735ec1bf96] - build: fix version checks in gyp files (Ben Noordhuis) #29931
  • [8da83e8c24] - build: always use strings for compiler version in gyp files (Michaël Zasso) #29897
  • [b7bdfd346c] - crypto: guard with OPENSSL_NO_GOST (Shelley Vohr) #30050
  • [e175d0beb6] - crypto: reject public keys properly (Tobias Nießen) #29913
  • [b1529c6bc2] - deps: V8: cherry-pick a7dffcd767be (Christian Clauss) #30218
  • [6bc7a6db0e] - deps: V8: cherry-pick e5dbc95 (Gabriel Schulhof) #30130
  • [b88314f735] - deps: update npm to 6.12.1 (Michael Perrotte) #30164
  • [ce49a412ef] - deps: V8: cherry-pick c721203 (Michaël Zasso) #30065
  • [d2756fd14d] - deps: V8: cherry-pick ed40ab1 (Michaël Zasso) #30064
  • [58c585e3ed] - deps: npm: patch support for 13.x (Jordan Harband) #30079
  • [2764567f90] - deps: upgrade to libuv 1.33.1 (Colin Ihrig) #29996
  • [33bd1281fc] - doc: add missing hash for header link (Nick Schonning) #30188
  • [b159b91798] - doc: linkify .setupMaster() in cluster doc (Trivikram Kamat) #30204
  • [9c4a9e7337] - doc: explain http2 aborted event callback (dev-313) #30179
  • [d7bfc6c987] - doc: linkify .fork() in cluster documentation (Anna Henningsen) #30163
  • [a71f210206] - doc: update AUTHORS list (Michaël Zasso) #30142
  • [7b5047454b] - doc: improve doc Http2Session:Timeout (dev-313) #30161
  • [0efe9a0c97] - doc: move inactive Collaborators to emeriti (Rich Trott) #30177
  • [98d31da342] - doc: add options description for send APIs (dev-313) #29868
  • [d0f5bc1aa7] - doc: fix an error in resolution algorithm steps (Alex Zherdev) #29940
  • [28db99932a] - doc: remove incorrect and outdated example (Tobias Nießen) #30138
  • [c2108d4919] - doc: adjust code sample for stream.finished (Cotton Hou) #29983
  • [2ac76e3055] - doc: remove "it is important to" phrasing (Rich Trott) #30108
  • [ec992878e8] - doc: revise os.md (Rich Trott) #30102
  • [a56e78c8c8] - doc: delete "a number of" things in the docs (Rich Trott) #30103
  • [ee954d5570] - doc: remove dashes (Rich Trott) #30101
  • [c4c8e01af1] - doc: add legendecas to collaborators (legendecas) #30115
  • [22e10fd15a] - doc: --enable-source-maps and prepareStackTrace are incompatible (Benjamin Coe) #30046
  • [870c320f31] - doc: join parts of disrupt section in cli.md (vsemozhetbyt) #30038
  • [8df5bdbd66] - doc: update collaborator email address (Minwoo Jung) #30007
  • [d9b5508fc8] - doc: fix tls version typo (akitsu-sanae) #29984
  • [5616f22839] - doc: clarify readable.unshift null/EOF (Robert Nagy) #29950
  • [b57fe3b370] - doc: remove unused Markdown reference links (Nick Schonning) #29961
  • [12f24542b8] - doc: re-enable passing remark-lint rule (Nick Schonning) #29961
  • [c0cbfae0e3] - doc: add server header into the discarded list of http message.headers (Huachao Mao) #29962
  • [a23b5cbf61] - doc: prepare miscellaneous docs for new markdown lint rules (Rich Trott) #29963
  • [c66bc20bbf] - doc: fix some recent nits in fs.md (vsemozhetbyt) #29906
  • [1fefd7fddc] - doc: fs dir modifications may not be reflected by dir.read (Anna Henningsen) #29893
  • [66c6818473] - doc,meta: prefer aliases and stubs over Runtime Deprecations (Rich Trott) #30153
  • [5ade490505] - doc,meta: reduce npm PR wait period to one week (Rich Trott) #29922
  • [0ec63ee27a] - doc,n-api: sort bottom-of-the-page references (Gabriel Schulhof) #30124
  • [8a333a4519] - domain: do not import util for a simple type check (Ruben Bridgewater) #29825
  • [94ac44f3fc] - esm: modify resolution order for specifier flag (Myles Borins) #29974
  • [216e200fa9] - fs: buffer dir entries in opendir() (Anna Henningsen) #29893
  • [5959023b76] - http2: fix file close error condition at respondWithFd (Anna Henningsen) #29884
  • [4277066afd] - inspector: turn platform tasks that outlive Agent into no-ops (Anna Henningsen) #30031
  • [b0837fead3] - meta: use contact_links instead of issue templates (Michaël Zasso) #30172
  • [2695f822bc] - module: warn on require of .js inside type: module (Guy Bedford) #29909
  • [ee3c3ad0f5] - n-api,doc: add info about building n-api addons (Jim Schlight) #30032
  • [da58301054] - net: treat ENOTCONN at shutdown as success (Anna Henningsen) #29912
  • [62bc80c906] - process: add lineLength to source-map-cache (Benjamin Coe) #29863
  • [ab03c29587] - src: isolate->Dispose() order consistency (Shelley Vohr) #30181
  • [c52b292adf] - src: change env.h includes for forward declarations (Alexandre Ferrando) #30133
  • [b215b1665a] - src: split up InitializeContext (Shelley Vohr) #30067
  • [d586070388] - src: allow inspector without v8 platform (Shelley Vohr) #30049
  • [f6655b41fa] - src: remove unnecessary std::endl usage (Daniel Bevenius) #30003
  • [abfac9640e] - src: make implementing CancelPendingDelayedTasks for platform optional (Anna Henningsen) #30034
  • [693bf73b06] - src: expose ListNode<T>::prev_ on postmortem metadata (legendecas) #30027
  • [4b57088c25] - src: fewer uses of NODE_USE_V8_PLATFORM (Shelley Vohr) #30029
  • [6269a3c92a] - src: remove unused iomanip include (Daniel Bevenius) #30004
  • [aa0aacbba9] - src: initialize openssl only once (Sam Roberts) #29999
  • [45c5ad7922] - src: refine maps parsing for large pages (Gabriel Schulhof) #29973
  • [aac2476346] - src: render N-API weak callbacks as cleanup hooks (Gabriel Schulhof) #28428
  • [f3115c4d62] - src: fix largepages regression (Gabriel Schulhof) #29914
  • [ddbf150edb] - src: remove unused using declarations in worker.cc (Daniel Bevenius) #29883
  • [8a31136a95] - stream: extract Readable.from in its own file (Matteo Collina) #30140
  • [21a43bd2fd] - stream: simplify uint8ArrayToBuffer helper (Luigi Pinca) #30041
  • [ae390393b6] - stream: remove dead code (Luigi Pinca) #30041
  • [56e986aa23] - test: do not run release-npm test without crypto (Michaël Zasso) #30265
  • [d96e8b662e] - test: use arrow functions for callbacks (Minuk Park) #30069
  • [00dab3495d] - test: verify npm compatibility with releases (Michaël Zasso) #30082
  • [ecf6ae89f4] - test: expand Worker test for non-shared ArrayBuffer (Anna Henningsen) #30044
  • [2ebd1a0d3f] - test: fix test runner for Python 3 on Windows (Michaël Zasso) #30023
  • [9fed62f7cb] - test: remove common.skipIfInspectorEnabled() (Rich Trott) #29993
  • [3e39909022] - test: add cb error test for fs.close() (Matteo Rossi) #29970
  • [b93c8a77a3] - test: fix flaky doctool and test (Rich Trott) #29979
  • [aec8e77ae1] - test: fix fs benchmark test (Rich Trott) #29967
  • [b9fd18f9fb] - tools: pull xcode_emulation.py from node-gyp (Christian Clauss) #30272
  • [2810f1aec3] - tools: update tzdata to 2019c (Myles Borins) #30478
  • [41d1f166bc] - tools: fix Python 3 deprecation warning in test.py (Loris Zinsou) #30208
  • [b6546736a0] - tools: fix Python 3 syntax error in mac_tool.py (Christian Clauss) #30146
  • [87cb6b2418] - tools: use print() function in buildbot_run.py (Christian Clauss) #30148
  • [309c395aba] - tools: undefined name opts -> args in gyptest.py (Christian Clauss) #30144
  • [df0fbf2e46] - tools: git rm -r tools/v8_gypfiles/broken (Christian Clauss) #30149
  • [375f349760] - tools: update ESLint to 6.6.0 (Colin Ihrig) #30123
  • [0b6fb3d1db] - tools: doc: improve async workflow of generate.js (Theotime Poisseau) #30106
  • [8d030131a4] - tools: fix test runner in presence of NODE_REPL_EXTERNAL_MODULE (Gus Caplan) #29956
  • [59033f618a] - tools: fix GYP MSVS solution generator for Python 3 (Michaël Zasso) #29897
  • [41430bea3c] - tools: port Python 3 compat patches from node-gyp to gyp (Michaël Zasso) #29897

2019-10-21, Version 12.13.0 'Erbium' (LTS), @targos

This release marks the transition of Node.js 12.x into Long Term Support (LTS) with the codename 'Erbium'. The 12.x release line now moves into "Active LTS" and will remain so until October 2020. After that time, it will move into "Maintenance" until end of life in April 2022.

Notable changes

npm was updated to 6.12.0. It now includes a version of node-gyp that supports Python 3 for building native modules.

Commits

  • [b59209b118] - deps: update npm to 6.12.0 (isaacs) #29885
  • [1dde617491] - doc: fix --enable-source-maps flag in v12.12.0 changelog (Unlocked) #29960
  • [e5e2dfabdc] - doc: nest code fence under unordered list (Nick Schonning) #29915
  • [5b0c993d4c] - doc: remove double word "where" (Nick Schonning) #29915
  • [ad318c6cec] - doc: add brackets to implicit markdown links (Nick Schonning)