Node.js Changelog

What's new in Node.js 20.12.2 LTS

Apr 10, 2024
  • CVE-2024-27980 - Command injection via args parameter of child_process.spawn without shell option enabled on Windows

New in Node.js 21.7.3 (Apr 10, 2024)

  • Command injection via args parameter of child_process.spawn without shell option enabled on Windows.

New in Node.js 20.12.1 LTS (Apr 4, 2024)

  • Notable Changes:
  • CVE-2024-27983 - Assertion failed in node::http2::Http2Session::~Http2Session() leads to HTTP/2 server crash- (High)
  • CVE-2024-27982 - HTTP Request Smuggling via Content Length Obfuscation - (Medium)
  • llhttp version 9.2.1
  • undici version 5.28.4
  • Commits:
  • [bd8f10a257] - deps: update undici to v5.28.4 (Matteo Collina) nodejs-private/node-private#576
  • [5e34540a96] - http: do not allow OBS fold in headers by default (Paolo Insogna) nodejs-private/node-private#557
  • [ba1ae6d188] - src: ensure to close stream when destroying session (Anna Henningsen) nodejs-private/node-private#561

New in Node.js 21.7.2 (Apr 3, 2024)

  • CVE-2024-27983 - Assertion failed in node::http2::Http2Session::~Http2Session() leads to HTTP/2 server crash- (High)
  • CVE-2024-27982 - HTTP Request Smuggling via Content Length Obfuscation- (Medium)
  • llhttp version 9.2.1
  • undici version 6.11.1

New in Node.js 20.12.0 LTS (Mar 26, 2024)

  • (SEMVER-MINOR) build: build opt to set local location of headers (Michael Dawson) #51525
  • [ccdb01187b] - doc: add zcbenz to collaborators (Cheng Zhao) #51812
  • [481af53aea] - doc: add lemire to collaborators (Daniel Lemire) #51572
  • [5ba4d96525] - (SEMVER-MINOR) http2: add h2 compat support for appendHeader (Tim Perry) #51412
  • [0861498e8b] - (SEMVER-MINOR) http2: add server handshake utility (snek) #51172
  • [6b08d006ee] - (SEMVER-MINOR) http2: receive customsettings (Marten Richter) #51323
  • [7894989bf0] - (SEMVER-MINOR) lib: move encodingsMap to internal/util (Joyee Cheung) #51044
  • [a58c98ea85] - (SEMVER-MINOR) src: print string content better in BlobDeserializer (Joyee Cheung) #50960
  • [c3c0a3ee5c] - (SEMVER-MINOR) src: support multi-line values for .env file (IlyasShabi) #51289
  • [2a921966c6] - (SEMVER-MINOR) src: do not coerce dotenv paths (Tobias Nießen) #51425
  • [0dee86f295] - (SEMVER-MINOR) src: support configurable snapshot (Joyee Cheung) #50453
  • [ade6614067] - (SEMVER-MINOR) stream: add support for deflate-raw format to webstreams compression (Damian

New in Node.js 21.6.2 (Feb 14, 2024)

  • Notable changes:
  • CVE-2024-21892 - Code injection and privilege escalation through Linux capabilities- (High)
  • CVE-2024-22019 - http: Reading unprocessed HTTP request with unbounded chunk extension allows DoS attacks- (High)
  • CVE-2024-21896 - Path traversal by monkey-patching Buffer internals- (High)
  • CVE-2024-22017 - setuid() does not drop all privileges due to io_uring - (High)
  • CVE-2023-46809 - Node.js is vulnerable to the Marvin Attack (timing variant of the Bleichenbacher attack against PKCS#1 v1.5 padding) - (Medium)
  • CVE-2024-21891 - Multiple permission model bypasses due to improper path traversal sequence sanitization - (Medium)
  • CVE-2024-21890 - Improper handling of wildcards in --allow-fs-read and --allow-fs-write (Medium)
  • CVE-2024-22025 - Denial of Service by resource exhaustion in fetch() brotli decoding - (Medium)
  • undici version 5.28.3
  • libuv version 1.48.0
  • OpenSSL version 3.0.13+quic1

New in Node.js 21.6.1 (Jan 22, 2024)

  • Notable Changes:
  • This release fixes a bug in undici using WebStreams
  • Commits:
  • Revert "stream: fix cloned webstreams not being unref'd" (Matteo Collina) #51491
  • Test: add regression test for 51586 (Matteo Collina) #51491

New in Node.js 21.6.0 (Jan 15, 2024)

  • (SEMVER-MINOR) timers: export timers.promises.

New in Node.js 21.5.0 (Dec 19, 2023)

  • Notable Changes:
  • [0dd53da722] - (SEMVER-MINOR) deps: add simdjson (Yagiz Nizipli) #50322
  • [9f54987fbc] - module: merge config with package_json_reader (Yagiz Nizipli) #50322
  • [45e4f82912] - src: move package resolver to c++ (Yagiz Nizipli) #50322
  • Deprecations:
  • [26ed4ad01f] - doc: deprecate hash constructor (Marco Ippolito) #51077
  • [58ca66a1a7] - doc: deprecate dirent.path (Antoine du Hamel) #51020
  • Commits:
  • [1bbdbdfbeb] - benchmark: update iterations in benchmark/perf_hooks (Lei Shi) #50869
  • [087fb0908e] - benchmark: update iterations in benchmark/crypto/aes-gcm-throughput.js (Lei Shi) #50929
  • [53b16c71fb] - benchmark: update iteration and size in benchmark/crypto/randomBytes.js (Lei Shi) #50868
  • [38fd0ca753] - benchmark: add undici websocket benchmark (Chenyu Yang) #50586
  • [b148c43244] - benchmark: add create-hash benchmark (Joyee Cheung) #51026
  • [fdd8c18f96] - benchmark: update interations and len in benchmark/util/text-decoder.js (Lei Shi) #50938
  • [a9972057ac] - benchmark: update iterations of benchmark/util/type-check.js (Lei Shi) #50937
  • [b80bb1329b] - benchmark: update iterations in benchmark/util/normalize-encoding.js (Lei Shi) #50934
  • [dbee03d646] - benchmark: update iterations in benchmark/util/inspect-array.js (Lei Shi) #50933
  • [f2d83a3a84] - benchmark: update iterations in benchmark/util/format.js (Lei Shi) #50932
  • [2581fce553] - bootstrap: improve snapshot unsupported builtin warnings (Joyee Cheung) #50944
  • [735bad3694] - build: fix warnings from uv for gn build (Cheng Zhao) #51069
  • [8da9d969f9] - deps: V8: cherry-pick 0fd478bcdabd (Joyee Cheung) #50572
  • [429fbb37c1] - deps: update simdjson to v3.6.2 (Yagiz Nizipli) #50986
  • [9950103253] - deps: update zlib to 1.3-22124f5 (Node.js GitHub Bot) #50910
  • [0b61823e8b] - deps: update undici to 5.28.2 (Node.js GitHub Bot) #51024
  • [95d8a273cc] - deps: cherry-pick bfbe4e38d7 from libuv upstream (Abdirahim Musse) #50650
  • [06038a489e] - deps: update libuv to 1.47.0 (Node.js GitHub Bot) #50650
  • [0dd53da722] - (SEMVER-MINOR) deps: add simdjson (Yagiz Nizipli) #50322
  • [04eaa5cdd7] - doc: run license-builder (github-actions[bot]) #51111
  • [26ed4ad01f] - doc: deprecate hash constructor (Marco Ippolito) #51077
  • [637ffce4c4] - doc: add note regarding --experimental-detect-module (Shubherthi Mitra) #51089
  • [838179b096] - doc: correct tracingChannel.traceCallback() (Gerhard Stöbich) #51068
  • [539bee4f0a] - doc: use length argument in pbkdf2Key (Tobias Nießen) #51066
  • [c45a9a3187] - doc: add deprecation notice to dirent.path (Antoine du Hamel) #51059
  • [58ca66a1a7] - doc: deprecate dirent.path (Antoine du Hamel) #51020
  • [c2b6edf9ab] - esm: fix hook name in error message (Bruce MacNaughton) #50466
  • [35e8f26f07] - fs: throw fchownSync error from c++ (Yagiz Nizipli) #51075
  • [c3c8237089] - fs: update params in jsdoc for createReadStream and createWriteStream (Jungku Lee) #51063
  • [3f7f3ce8c9] - fs: improve error performance of readvSync (IlyasShabi) #50100
  • [7f95926f17] - http: handle multi-value content-disposition header (Arsalan Ahmad) #50977
  • [7a8a2d5632] - lib: don't parse windows drive letters as schemes (华) #50580
  • [aa2be4bb76] - module: load source maps in commonjs translator (Hiroki Osame) #51033
  • [c0e5e74876] - module: document parentURL in register options (Hiroki Osame) #51039
  • [4eedf5e694] - module: fix recently introduced coverity warning (Michael Dawson) #50843
  • [9f54987fbc] - module: merge config with package_json_reader (Yagiz Nizipli) #50322
  • [5f95dca638] - node-api: introduce experimental feature flags (Gabriel Schulhof) #50991
  • [3fb7fc909e] - quic: further implementation details (James M Snell) #48244
  • [fa25e069fc] - src: implement countObjectsWithPrototype (Joyee Cheung) #50572
  • [abe90527e4] - src: register udp_wrap external references (Joyee Cheung) #50943
  • [84e2f51d14] - src: register spawn_sync external references (Joyee Cheung) #50943
  • [2cfee53d7b] - src: register process_wrap external references (Joyee Cheung) #50943
  • [9b7f79a8bd] - src: fix double free reported by coverity (Michael Dawson) #51046
  • [fc5503246e] - src: remove unused headers in node_file.cc (Jungku Lee) #50927
  • [c3abdc58af] - src: implement --trace-promises (Joyee Cheung) #50899
  • [f90fc83e97] - src: fix dynamically linked zlib version (Richard Lau) #51007
  • [9bf144379f] - src: omit bool values of package.json main field (Yagiz Nizipli) #50965

New in Node.js 21.4.0 (Dec 5, 2023)

  • Notable Changes:
  • This release fixes a regression introduced in v21.3.0 that caused the fs.writeFileSync
  • method to throw when called with 'utf8' encoding, no flag option, and if the target file didn't exist yet.
  • [32acafeeb6] - (SEMVER-MINOR) fs: introduce dirent.parentPath (Antoine du Hamel) #50976
  • [724548674d] - fs: use default w flag for writeFileSync with utf8 encoding (Murilo Kakazu) #50990
  • Commits:
  • [b24ee15fb2] - benchmark: update iterations in benchmark/crypto/hkdf.js (Lei Shi) #50866
  • [f79b54e60e] - benchmark: update iterations in benchmark/crypto/get-ciphers.js (Lei Shi) #50863
  • [dc049acbbb] - benchmark: update number of iterations for util.inspect (kylo5aby) #50651
  • [d7c562ae38] - deps: update googletest to 76bb2af (Node.js GitHub Bot) #50555
  • [59a45ddbef] - deps: update googletest to b10fad3 (Node.js GitHub Bot) #50555
  • [099ebdb781] - deps: update undici to 5.28.1 (Node.js GitHub Bot) #50975
  • [4b1bed04f7] - deps: update undici to 5.28.0 (Node.js GitHub Bot) #50915
  • [b281e98b1e] - doc: add additional details about --input-type (Shubham Pandey) #50796
  • [b7036f2028] - doc: add procedure when CVEs don't get published (Rafael Gonzaga) #50945
  • [7adf239af0] - doc: fix some errors in esm resolution algorithms (Christopher Jeffrey (JJ)) #50898
  • [759ebcaead] - doc: reserve 121 for Electron 29 (Shelley Vohr) #50957
  • [cedc3427fa] - doc: run license-builder (github-actions[bot]) #50926
  • [30a6f19769] - doc: document non-node_modules-only runtime deprecation (Joyee Cheung) #50748
  • [eecab883f0] - doc: add doc for Unix abstract socket (theanarkh) #50904
  • [ec74b93b38] - doc: remove flicker on page load on dark theme (Dima Demakov) #50942
  • [724548674d] - fs: use default w flag for writeFileSync with utf8 encoding (Murilo Kakazu) #50990
  • [32acafeeb6] - (SEMVER-MINOR) fs: introduce dirent.parentPath (Antoine du Hamel) #50976
  • [c1ee506454] - fs: remove workaround for esm package (Yagiz Nizipli) #50907
  • [1cf087dfb3] - lib: refactor to use validateFunction in diagnostics_channel (Deokjin Kim) #50955
  • [c37d18d5e1] - lib: streamline process.binding() handling (Joyee Cheung) #50773
  • [246cf73631] - lib,src: replace toUSVString with toWellFormed() (Yagiz Nizipli) #47342
  • [9bc79173a0] - loader: speed up line length calc used by moduleProvider (Mudit) #50969
  • [812ab9e4f8] - meta: bump step-security/harden-runner from 2.6.0 to 2.6.1 (dependabot[bot]) #50999
  • [1dbe1af19a] - meta: bump github/codeql-action from 2.22.5 to 2.22.8 (dependabot[bot]) #50998
  • [bed1b93f8a] - meta: move one or more collaborators to emeritus (Node.js GitHub Bot) #50931
  • [1e7d101428] - src: make ModifyCodeGenerationFromStrings more robust (Joyee Cheung) #50763
  • [709ac479eb] - src: disable uncaught exception abortion for ESM syntax detection (Yagiz Nizipli) #50987
  • [f6ff11c9f9] - src: fix backtrace with tail [[noreturn]] abort (Chengzhong Wu) #50849
  • [74f5a1cbc9] - src: print MKSNAPSHOT debug logs to stderr (Joyee Cheung) #50759
  • [3a1c664a97] - test: replace forEach to for.. test-webcrypto-export-import-cfrg.js (Angelo Parziale) #50785
  • [ac3a6eefe3] - test: log more information in SEA tests (Joyee Cheung) #50759
  • [94462d42f5] - test: consolidate utf8 text fixtures in tests (Joyee Cheung) #50732
  • [8e1a70a347] - tools: add triggers to update release links workflow (Moshe Atlow) #50974
  • [ca10cbb774] - tools: update lint-md-dependencies to [email protected] (Node.js GitHub Bot) #50913
  • [1e40c4a366] - tools: fix current version check (Marco Ippolito) #50951
  • [3faed331e1] - typings: fix JSDoc in internal/modules/esm/hooks (Alex Yang) #50887
  • [6a087ceffa] - url: throw error if argument length of revokeObjectURL is 0 (DylanTet) #50433

New in Node.js 20.10.0 LTS (Nov 22, 2023)

  • The new flag --experimental-default-type can be used to flip the default
  • module system used by Node.js. Input that is already explicitly defined as ES
  • modules or CommonJS, such as by a package.json "type" field or .mjs/.cjs
  • file extension or the --input-type flag, is unaffected. What is currently
  • implicitly CommonJS would instead be interpreted as ES modules under
  • --experimental-default-type=module:
  • String input provided via --eval or STDIN, if --input-type is unspecified.
  • Files ending in .js or with no extension, if there is no package.json file
  • present in the same folder or any parent folder.
  • Files ending in .js or with no extension, if the nearest parent
  • package.json field lacks a type field; unless the folder is inside a
  • node_modules folder.

New in Node.js 21.2.0 (Nov 15, 2023)

  • Notable Changes:
  • [e25c65ee2f] - doc: add MrJithil to collaborators (Jithil P Ponnan) #50666
  • [f2366573f9] - doc: add Ethan-Arrowood as a collaborator (Ethan Arrowood) #50393
  • [eac9cc5fcb] - (SEMVER-MINOR) esm: add import.meta.dirname and import.meta.filename (James Sumners) #48740
  • [7e151114b1] - fs: add stacktrace to fs/promises (? / green) #49849
  • [6dbb280733] - (SEMVER-MINOR) lib: add --no-experimental-global-navigator CLI flag (Antoine du Hamel) #50562
  • [03c730b931] - (SEMVER-MINOR) lib: add navigator.language & navigator.languages (Aras Abbasi) #50303
  • [f932f4c518] - (SEMVER-MINOR) lib: add navigator.platform (Aras Abbasi) #50385
  • [91f37d1dc3] - (SEMVER-MINOR) stream: add support for deflate-raw format to webstreams compression (Damian Krzeminski) #50097
  • [65850a67c7] - stream: use Array for Readable buffer (Robert Nagy) #50341
  • [e433fa54b7] - stream: optimize creation (Robert Nagy) #50337
  • [c9b92bba58] - (SEMVER-MINOR) test_runner: adds built in lcov reporter (Phil Nash) #50018
  • [f6c496563e] - (SEMVER-MINOR) test_runner: add Date to the supported mock APIs (Lucas Santos) #48638
  • [05e8b6ef20] - (SEMVER-MINOR) test_runner, cli: add --test-timeout flag (Shubham Pandey) #50443
  • Commits:
  • [065d8844c5] - benchmark: change iterations in benchmark/es/string-concatenations.js (Liu Jia) #50585
  • [3f37ed9f0f] - benchmark: add benchmarks for encodings (Aras Abbasi) #50348
  • [c4b6e1e9e4] - benchmark: add more cases to Readable.from (Raz Luvaton) #50351
  • [2006b57a9a] - benchmark: skip test-benchmark-os on IBMi (Michael Dawson) #50286
  • [800206b04a] - benchmark: move permission-fs-read to permission-processhas-fs-read (Aki Hasegawa-Johnson) #49770
  • [3bedaf9405] - buffer: improve Buffer.equals performance (kylo5aby) #50621
  • [b9f3613908] - build: add GN build files (Cheng Zhao) #47637
  • [22eb0257d8] - build: fix build with Python 3.12 (Luigi Pinca) #50582
  • [642c057299] - build: support Python 3.12 (Shi Pujin) #50209
  • [54ebfc10cb] - build: fix building when there is only python3 (Cheng Zhao) #48462
  • [5073a3e16d] - deps: update base64 to 0.5.1 (Node.js GitHub Bot) #50629
  • [f70a59f4fa] - deps: update corepack to 0.23.0 (Node.js GitHub Bot) #50563
  • [78b3432be5] - deps: V8: cherry-pick 13192d6e10fa (Levi Zim) #50552
  • [93e3cc3907] - deps: upgrade npm to 10.2.3 (npm team) #50531
  • [189e5e5326] - deps: update nghttp2 to 1.58.0 (Node.js GitHub Bot) #50441
  • [57bfe53095] - deps: update zlib to 1.2.13.1-motley-dfc48fc (Node.js GitHub Bot) #50456
  • [1e6922e67a] - deps: patch V8 to 11.8.172.17 (Michaël Zasso) #50292
  • [28453ff966] - deps: update acorn to 8.11.2 (Node.js GitHub Bot) #50460
  • [0a793a2566] - deps: update undici to 5.27.0 (Node.js GitHub Bot) #50463
  • [a90c6d669c] - deps: update archs files for openssl-3.0.12+quic1 (Node.js GitHub Bot) #50411
  • [a64217c116] - deps: upgrade openssl sources to quictls/openssl-3.0.12+quic1 (Node.js GitHub Bot) #50411
  • [62515e118c] - deps: update llhttp to 9.1.3 (Node.js GitHub Bot) #50080
  • [d6f49c7bdc] - deps: update googletest to 116b7e5 (Node.js GitHub Bot) #50324
  • [e25c65ee2f] - doc: add MrJithil to collaborators (Jithil P Ponnan) #50666
  • [8be0efd68f] - doc: fix typo in fs.md (fwio) #50570
  • [a656bf2dee] - doc: add missing description of argument in subtle.encrypt (Deokjin Kim) #50578
  • [4cbe44ed6f] - doc: update pm documentation to include resource (Ranieri Innocenti Spada) #50601
  • [479c1ea9fe] - doc: correct attribution in v20.6.0 changelog (Jacob Smith) #50564
  • [1668798902] - doc: update to align console.table row to the left (Jungku Lee) #50553
  • [886fc48f87] - doc: underline links (Rich Trott) #50481
  • [98cfa3a72b] - doc: recommend supported Python versions (Luigi Pinca) #50407
  • [921e36ece9] - doc: remove duplicate word (Gerhard Stöbich) #50475
  • [43074ee21c] - doc: fix typo in webstreams.md (André Santos) #50426
  • [0b11bf16e8] - doc: update notable changes in v21.1.0 (Joyee Cheung) #50388
  • [d62e81229c] - doc: add information about Node-API versions >=9 (Michael Dawson) #50168
  • [f2366573f9] - doc: add Ethan-Arrowood as a collaborator (Ethan Arrowood) #50393
  • [d9f92bc042] - doc: fix TOC in releases.md (Bryce Seefieldt) #50372
  • [14e3675b13] - errors: improve hideStackFrames (Aras Abbasi) #49990
  • [09c02ed26b] - esm: bypass CJS loader in default load under --default-type=module (Antoine du Hamel) #50004
  • [eac9cc5fcb] - (SEMVER-MINOR) esm: add import.meta.dirname

New in Node.js 21.1.0 (Oct 24, 2023)

  • [3729e33358] - doc: add H4ad to collaborators (Vinícius Lourenço) #50217
  • [18862e4d5d] - (SEMVER-MINOR) fs: add flush option to appendFile() functions (Colin Ihrig) #50095
  • [5a52c518ef] - (SEMVER-MINOR) lib: add navigator.userAgent (Yagiz Nizipli) #50200
  • [789372a072] - (SEMVER-MINOR) stream: allow pass stream class to stream.compose (Alex Yang) #50187
  • [f3a9ea0bc4] - stream: improve performance of readable stream reads (Raz Luvaton) #50173
  • [dda33c2bf1] - vm: reject in importModuleDynamically without --experimental-vm-modules (Joyee Cheung) #50137
  • [3999362c59] - vm: use internal versions of compileFunction and Script (Joyee Cheung) #50137
  • [a54179f0e0] - vm: unify host-defined option generation in vm.compileFunction (Joyee Cheung) #50137

New in Node.js 21.0.0 (Oct 17, 2023)

  • Other Notable Changes:
  • [740ca5423a] - doc: promote fetch/webstreams from experimental to stable (Steven) #45684
  • [85301803e1] - esm: --experimental-default-type flag to flip module defaults (Geoffrey Booth) #49869
  • [705e623ac4] - esm: remove globalPreload hook (superseded by initialize) (Jacob Smith) #49144
  • [e01c1d700d] - fs: add flush option to writeFile() functions (Colin Ihrig) #50009
  • [1948dce707] - (SEMVER-MAJOR) fs: add globSync implementation (Moshe Atlow) #47653
  • [e28dbe1c2b] - (SEMVER-MINOR) lib: add WebSocket client (Matthew Aitken) #49830
  • [95b8f5dcab] - stream: optimize Writable (Robert Nagy) #50012
  • [7cd4e70948] - (SEMVER-MAJOR) test_runner: support passing globs (Moshe Atlow) #47653
  • [1d220b55ac] - vm: use default HDO when importModuleDynamically is not set (Joyee Cheung) #49950
  • Semver-Major Commits:
  • [ac2a68c76b] - (SEMVER-MAJOR) build: drop support for Visual Studio 2019 (Michaël Zasso) #49051
  • [4e3983031a] - (SEMVER-MAJOR) build: bump supported macOS and Xcode versions (Michaël Zasso) #49164
  • [5a0777776d] - (SEMVER-MAJOR) crypto: do not overwrite _writableState.defaultEncoding (Tobias Nießen) #49140
  • [162a0652ab] - (SEMVER-MAJOR) deps: bump minimum ICU version to 73 (Michaël Zasso) #49639
  • [17a74ddd3d] - (SEMVER-MAJOR) deps: update V8 to 11.8.172.13 (Michaël Zasso) #49639
  • [e9ff81016d] - (SEMVER-MAJOR) deps: update llhttp to 9.1.2 (Paolo Insogna) #48981
  • [7ace5aba75] - (SEMVER-MAJOR) events: validate options of on and once (Deokjin Kim) #46018
  • [b3ec13d449] - (SEMVER-MAJOR) fs: adjust position validation in reading methods (Livia Medeiros) #42835
  • [1948dce707] - (SEMVER-MAJOR) fs: add globSync implementation (Moshe Atlow) #47653
  • [d68d0eacaa] - (SEMVER-MAJOR) http: reduce parts in chunked response when corking (Robert Nagy) #50167
  • [c5b0b894ed] - (SEMVER-MAJOR) lib: mark URL/URLSearchParams as uncloneable and untransferable (Chengzhong Wu) #47497
  • [3205b1936a] - (SEMVER-MAJOR) lib: remove aix directory case for package reader (Yagiz Nizipli) #48605
  • [b40f0c3074] - (SEMVER-MAJOR) lib: add navigator.hardwareConcurrency (Yagiz Nizipli) #47769
  • [4b08c4c047] - (SEMVER-MAJOR) lib: runtime deprecate punycode (Yagiz Nizipli) #47202
  • [3ce51ae9c0] - (SEMVER-MAJOR) module: harmonize error code between ESM and CJS (Antoine du Hamel) #48606
  • [7202859402] - (SEMVER-MAJOR) net: do not treat server.maxConnections=0 as Infinity (ignoramous) #48276
  • [c15bafdaf4] - (SEMVER-MAJOR) net: only defer _final call when connecting (Jason Zhang) #47385
  • [6ffacbf0f9] - (SEMVER-MAJOR) node-api: rename internal NAPI_VERSION definition (Chengzhong Wu) #48501
  • [11af089b14] - (SEMVER-MAJOR) src: update NODE_MODULE_VERSION to 120 (Michaël Zasso) #49639
  • [d920b7c94b] - (SEMVER-MAJOR) src: throw DOMException on cloning non-serializable objects (Chengzhong Wu) #47839
  • [64549731b6] - (SEMVER-MAJOR) src: throw DataCloneError on transfering untransferable objects (Chengzhong Wu) #47604
  • [dac8de689b] - (SEMVER-MAJOR) stream: use private properties for strategies (Yagiz Nizipli) #47218
  • [1fa084ecdf] - (SEMVER-MAJOR) stream: use private properties for encoding (Yagiz Nizipli) #47218
  • [4e93247079] - (SEMVER-MAJOR) stream: use private properties for compression (Yagiz Nizipli) #47218
  • [527589b755] - (SEMVER-MAJOR) test_runner: disallow array in run options (Raz Luvaton) #49935
  • [7cd4e70948] - (SEMVER-MAJOR) test_runner: support passing globs (Moshe Atlow) #47653
  • [2ef170254b] - (SEMVER-MAJOR) tls: use validateNumber for options.minDHSize (Deokjin Kim) #49973
  • [092fb9f541] - (SEMVER-MAJOR) tls: use validateFunction for options.checkServerIdentity (Deokjin Kim) #49896
  • [ccca547e28] - (SEMVER-MAJOR) util: runtime deprecate promisify-ing a function returning a Promise (Antoine du Hamel) #49609
  • [4038cf0513] - (SEMVER-MAJOR) vm: freeze dependencySpecifiers array (Antoine du Hamel) #49720
  • Semver-Minor Commits:
  • [3227d7327c] - (SEMVER-MINOR) deps: update uvwasi to 0.0.19 (Node.js GitHub Bot) #49908
  • [e28dbe1c2b] - (SEMVER-MINOR) lib: add WebSocket client (Matthew Aitken) #49830
  • [9f9c58212e] - (SEMVER-MINOR) test_runner, cli: add --test-concurrency flag (Colin Ihrig) #49996
  • [d37b0d267f] - (SEMVER-MINOR) wasi: updates required for latest uvwasi version (Michael Dawson) #49908
  • Semver-Patch Commits:
  • [33c87ec096] - benchmark: fix race condition on fs benchs (Vinicius Lourenço) #50035
  • [3c0ec61c4b] - benchmark: add warmup to accessSync bench (Rafael Gonzaga) #50073
  • [1a839f388e] - benchmark: improved config for blob,file benchmark (Vinícius Lourenço) #49730
  • [86fe5a80f3] - benchmark: added new benchmarks for blob (Vinícius Lourenço) #49730
  • [6322d4f587] - build: fix IBM i build with Python 3.9 (Richard Lau) #48056
  • [17c55d176b] - build: reset embedder string to "-node.0" (Michaël Zasso) #49639
  • [f10928f926] - crypto: use X509_ALGOR accessors instead of reaching into X509_ALGOR (David Benjamin) #50057
  • [136a96722a] - crypto: account for disabled SharedArrayBuffer (Shelley Vohr) #50034
  • [17b9925393] - crypto: return clear errors when loading invalid PFX data (Tim Perry) #49566
  • [ca25d564c6] - deps: upgrade npm to 10.2.0 (npm team) #50027
  • [f23a9353ae] - deps: update corepack to 0.21.0 (Node.js GitHub Bot) #50088
  • [ceedb3a509] - deps: update simdutf to 3.2.18 (Node.js GitHub Bot) #50091
  • [0522ac086c] - deps: update zlib to 1.2.13.1-motley-fef5869 (Node.js GitHub Bot) #50085
  • [4f8c5829da] - deps: update googletest to 2dd1c13 (Node.js GitHub Bot) #50081
  • [588784ea30] - deps: update undici to 5.25.4 (Node.js GitHub Bot) #50025
  • [c9eef0c3c4] - deps: update googletest to e47544a (Node.js GitHub Bot) #49982
  • [23cb478398] - deps: update ada to 2.6.10 (Node.js GitHub Bot) #49984
  • [61411bb323] - deps: fix call to undeclared functions 'ntohl' and 'htons' (MatteoBax) #49979
  • [49cf182e30] - deps: update ada to 2.6.9 (Node.js GitHub Bot) #49340
  • [ceb6df0f22] - deps: update ada to 2.6.8 (Node.js GitHub Bot) #49340
  • [b73e18b5dc] - deps: update ada to 2.6.7 (Node.js GitHub Bot) #49340
  • [baf2256617] - deps: update ada to 2.6.5 (Node.js GitHub Bot) #49340
  • [a20a328a9b] - deps: update ada to 2.6.3 (Node.js GitHub Bot) #49340
  • [3838b579e4] - deps: V8: cherry-pick 8ec2651fbdd8 (Abdirahim Musse) #49862
  • [668437ccad] - deps: V8: cherry-pick b60a03df4ceb (Joyee Cheung) #49491
  • [f970087147] - deps: V8: backport 93b1a74cbc9b (Joyee Cheung) #49419
  • [4531c154e5] - deps: V8: cherry-pick 8ec2651fbdd8 (Michaël Zasso) #49639
  • [9ad0e2cacc] - deps: V8: cherry-pick 89b3702c92b0 (Michaël Zasso) #49639
  • [dfc9c86868] - deps: V8: cherry-pick de9a5de2274f (Michaël Zasso) #49639
  • [186b36efba] - deps: V8: cherry-pick b5b5d6c31bb0 (Michaël Zasso) #49639
  • [867586ce95] - deps: V8: cherry-pick 93b1a74cbc9b (Michaël Zasso) #49639
  • [4ad3479ba7] - deps: V8: cherry-pick 1a3ecc2483b2 (Michaël Zasso) #49639
  • [660f902f16] - deps: patch V8 to avoid duplicated zlib symbol (Michaël Zasso) #49639
  • [f7c1d410ad] - deps: remove usage of a C++20 feature from V8 (Michaël Zasso) #49639
  • [9c4030bfb9] - deps: avoid compilation error with ASan (Michaël Zasso) #49639
  • [5f05cc15e6] - deps: disable V8 concurrent sparkplug compilation (Michaël Zasso) #49639
  • [42cd952dbd] - deps: silence irrelevant V8 warning (Michaël Zasso) #49639
  • [88cf90f9c4] - deps: always define V8_EXPORT_PRIVATE as no-op (Michaël Zasso) #49639
  • [8609915951] - doc: improve ccache explanation (Chengzhong Wu) #50133
  • [91d21324a9] - doc: move danielleadams to TSC non-voting member (Danielle Adams) #50142
  • [34fa7043a2] - doc: fix description of fs.readdir recursive option (RamdohokarAngha) #48902
  • [81e4d2ec2f] - doc: mention files read before env setup (Rafael Gonzaga) #50072
  • [0ce37ed8e9] - doc: move permission model to Active Development (Rafael Gonzaga) #50068
  • [3c430212c3] - doc: add command to get patch minors and majors (Rafael Gonzaga) #50067
  • [e43bf4c31d] - doc: use precise promise terminology in fs (Benjamin Gruenbaum) #50029
  • [d3a5f1fb5f] - doc: use precise terminology in test runner (Benjamin Gruenbaum) #50028
  • [24dea2348d] - doc: clarify explaination text on how to run the example (Anshul Sinha) #39020
  • [f3ed57bd8b] - doc: reserve 119 for Electron 28 (David Sanders) #50020
  • [85c09f178c] - doc: update Collaborator pronouns (Tierney Cyren) #50005
  • [099e2f7bce] - doc: update link to Abstract Modules Records spec (Rich Trott) #49961
  • [47b2883673] - doc: updated building docs for windows (Claudio W) #49767
  • [7b624c30b2] - doc: update CHANGELOG_V20 about vm fixes (Joyee Cheung) #49951
  • [1dc0667aa6] - doc: document dangerous symlink behavior (Tobias Nießen) #49154
  • [bc056c2426] - doc: add main ARIA landmark to API docs (Rich Trott) #49882
  • [f416a0f555] - doc: add navigation ARIA landmark to doc ToC (Rich Trott) #49882
  • [740ca5423a] - doc: promote fetch/webstreams from experimental to stable (Steven) #45684
  • [f802aa0645] - doc: fix 'partial' typo (Colin Ihrig) #48657
  • [6fda81d4f5] - doc: mention Navigator is a partial implementation (Moshe Atlow) #48656
  • [6aa2aeedcb] - doc: mark Node.js 19 as End-of-Life (Richard Lau) #48283
  • [0ee9c83ffc] - errors: improve performance of determine-specific-type (Aras Abbasi) #49696
  • [4f84a3d200] - errors: improve formatList in errors.js (Aras Abbasi) #49642
  • [cc725a653a] - errors: improve performance of instantiation (Aras Abbasi) #49654
  • [d1ef6aa2db] - esm: use import attributes instead of import assertions (Antoine du Hamel) #50140
  • [19b470f866] - esm: bypass CommonJS loader under --default-type (Geoffrey Booth) #49986
  • [9c683204db] - esm: unflag extensionless javascript and wasm in module scope (Geoffrey Booth) #49974
  • [05be31d5de] - esm: improve getFormatOfExtensionlessFile speed (Yagiz Nizipli) #49965
  • [aadfea4979] - esm: improve JSDoc annotation of internal functions (Antoine du Hamel) #49959
  • [7f0e36af52] - esm: fix cache collision on JSON files using file: URL (Antoine du Hamel) #49887
  • [85301803e1] - esm: --experimental-default-type flag to flip module defaults (Geoffrey Booth) #49869
  • [f42a103991] - esm: require braces for modules code (Geoffrey Booth) #49657
  • [705e623ac4] - esm: remove globalPreload hook (superseded by initialize) (Jacob Smith) #49144
  • [18a818744f] - fs: improve error performance of readdirSync (Yagiz Nizipli) #50131
  • [d3985296a9] - fs: fix unlinkSync typings (Yagiz Nizipli) #49859
  • [6bc7fa7906] - fs: improve error perf of sync chmod+fchmod (CanadaHonk) #49859
  • [6bd77db41f] - fs: improve error perf of sync *times (CanadaHonk) #49864
  • [bf0f0789da] - fs: improve error performance of writevSync (IlyasShabi) #50038
  • [8a49735bae] - fs: add flush option to createWriteStream() (Colin Ihrig) #50093
  • [ed49722a8a] - fs: improve error performance for ftruncateSync (André Alves) #50032
  • [e01c1d700d] - fs: add flush option to writeFile() functions (Colin Ihrig) #50009
  • [f7a160d5b4] - fs: improve error performance for fdatasyncSync (Jungku Lee) #49898
  • [813713f211] - fs: throw errors from sync branches instead of separate implementations (Joyee Cheung) #49913
  • [b866e38192] - http: refactor to make servername option normalization testable (Rongjian Zhang) #38733
  • [2990390359] - inspector: simplify dispatchProtocolMessage (Daniel Lemire) #49780
  • [d4c5fe488e] - lib: fix compileFunction throws range error for negative numbers (Jithil P Ponnan) #49855
  • [589ac5004c] - lib: faster internal createBlob (Vinícius Lourenço) #49730
  • [952cf0d17a] - lib: reduce overhead of validateObject (Vinicius Lourenço) #49928
  • [fa250fdec1] - lib: make fetch sync and return a Promise (Matthew Aitken) #49936
  • [1b96975f27] - lib: fix primordials typings (Sam Verschueren) #49895
  • [6aa7101960] - lib: update params in jsdoc for HTTPRequestOptions (Jungku Lee) #49872
  • [a4fdb1abe0] - lib,test: do not hardcode Buffer.kMaxLength (Michaël Zasso) #49876
  • [fd21429ef5] - lib: update usage of always on Atomics API (Michaël Zasso) #49639
  • [bac85be22d] - meta: ping TSC for offboarding (Tobias Nießen) #50147
  • [609b13e6c2] - meta: bump actions/upload-artifact from 3.1.2 to 3.1.3 (dependabot[bot]) #50000
  • [3825464ef4] - meta: bump actions/cache from 3.3.1 to 3.3.2 (dependabot[bot]) #50003
  • [49f0f9ca11] - meta: bump github/codeql-action from 2.21.5 to 2.21.9 (dependabot[bot]) #50002
  • [f156427244] - meta: bump actions/checkout from 3.6.0 to 4.1.0 (dependabot[bot]) #50001
  • [0fe673c7e6] - meta: update website team with new name (Rich Trott) #49883
  • [51f4ff2450] - module: move helpers out of cjs loader (Geoffrey Booth) #49912
  • [7517c9f95b] - module, esm: jsdoc for modules files (Geoffrey Booth) #49523
  • [b55adfb4f1] - node-api: update headers for better wasm support (Toyo Li) #49037
  • [b38e312486] - node-api: run finalizers directly from GC (Vladimir Morozov) #42651
  • [0f0dd1a493] - os: cache homedir, remove getCheckedFunction (Aras Abbasi) #50037
  • [0e507d30ac] - perf_hooks: reduce overhead of new user timings (Vinicius Lourenço) #49914
  • [328bdac7f0] - perf_hooks: reducing overhead of performance observer entry list (Vinicius Lourenço) #50008
  • [e6e320ecc7] - perf_hooks: reduce overhead of new resource timings (Vinicius Lourenço) #49837
  • [971af4b211] - quic: fix up coverity warning in quic/session.cc (Michael Dawson) #49865
  • [546797f2b1] - quic: prevent copying ngtcp2_cid (Tobias Nießen) #48561
  • [ac6f594c97] - quic: address new coverity warning (Michael Dawson) #48384
  • [4ee8ef269b] - quic: prevent copying ngtcp2_cid_token (Tobias Nießen) #48370
  • [6d2811fbf2] - quic: add additional implementation (James M Snell) #47927
  • [0b3fcfcf35] - quic: fix typo in endpoint.h (Tobias Nießen) #47911
  • [76044c4e2b] - quic: add additional QUIC implementation (James M Snell) #47603
  • [78a15702dd] - src: avoid making JSTransferable wrapper object weak (Chengzhong Wu) #50026
  • [387e2929fe] - src: generate default snapshot with --predictable (Joyee Cheung) #48749
  • [1643adf771] - src: fix TLSWrap lifetime bug in ALPN callback (Ben Noordhuis) #49635
  • [66776d8665] - src: set port in node_options to uint16_t (Yagiz Nizipli) #49151
  • [55ff64001a] - src: name scoped lock (Mohammed Keyvanzadeh) #50010
  • [b903a710f4] - src: use exact return value for uv_os_getenv (Yagiz Nizipli) #49149
  • [43500fa646] - src: move const variable in node_file.h to node_file.cc (Jungku Lee) #49688
  • [36ab510da7] - src: remove unused variable (Michaël Zasso) #49665
  • [23d65e7281] - src: revert IS_RELEASE to 0 (Rafael Gonzaga) #49084
  • [38dee8a1c0] - src: distinguish HTML transferable and cloneable (Chengzhong Wu) #47956
  • [586fcff061] - src: fix logically dead code reported by Coverity (Mohammed Keyvanzadeh) #48589
  • [7f2c810814] - src,tools: initialize cppgc (Daryl Haresign) #45704
  • [aad8002b88] - stream: use private symbol for bitmap state (Robert Nagy) #49993
  • [a85e4186e5] - stream: reduce overhead of transfer (Vinicius Lourenço) #50107
  • [e9bda11761] - stream: lazy allocate back pressure buffer (Robert Nagy) #50013
  • [557044af40] - stream: avoid unnecessary drain for sync stream (Robert Nagy) #50014
  • [95b8f5dcab] - stream: optimize Writable (Robert Nagy) #50012
  • [5de25deeb9] - stream: avoid tick in writable hot path (Robert Nagy) #49966
  • [53b5545672] - stream: writable state bitmap (Robert Nagy) #49899
  • [d4e99b1a66] - stream: remove asIndexedPairs (Chemi Atlow) #48150
  • [41e4174945] - test: replace forEach with for..of in test-net-isipv6.js (Niya Shiyas) #49823
  • [f0e720a7fa] - test: add EOVERFLOW as an allowed error (Abdirahim Musse) #50128
  • [224f3ae974] - test: reduce number of repetition in test-heapdump-shadowrealm.js (Chengzhong Wu) #50104
  • [76004f3e56] - test: replace forEach with for..of in test-parse-args.mjs (Niya Shiyas) #49824
  • [fce8fbadcd] - test: replace forEach with for..of in test-process-env (Niya Shiyas) #49825
  • [24492476a7] - test: replace forEach with for..of in test-http-url (Niya Shiyas) #49840
  • [2fe511ba23] - test: replace forEach() in test-net-perf_hooks with for of (Narcisa Codreanu) #49831
  • [42c37f28e6] - test: change forEach to for...of (Tiffany Lastimosa) #49799
  • [6c9625dca4] - test: update skip for moved test-wasm-web-api (Richard Lau) #49958
  • [f05d6d090c] - Revert "test: mark test-runner-output as flaky" (Luigi Pinca) #49905
  • [035e06317a] - test: disambiguate AIX and IBM i (Richard Lau) #48056
  • [4d0aeed4a6] - test: deflake test-perf-hooks.js (Joyee Cheung) #49892
  • [853f57239c] - test: migrate message error tests from Python to JS (Yiyun Lei) #49721
  • [a71e3a65bb] - test: fix edge snapshot stack traces (Geoffrey Booth) #49659
  • [6b76b7782c] - test: skip v8-updates/test-linux-perf (Michaël Zasso) #49639
  • [c13c98dd38] - test: skip test-tick-processor-arguments on SmartOS (Michaël Zasso) #49639
  • [738aa304b3] - test: adapt REPL test to V8 changes (Michaël Zasso) #49639
  • [de5c009252] - test: adapt test-fs-write to V8 internal changes (Michaël Zasso) #49639
  • [8c36168b42] - test: update flag to disable SharedArrayBuffer (Michaël Zasso) #49639
  • [6ccb15f7ef] - test: adapt debugger tests to V8 11.4 (Philip Pfaffe) #49639
  • [c5de3b49e8] - test,crypto: update WebCryptoAPI WPT (Filip Skokan) #50039
  • [4b35a9cfda] - test_runner: add test location for FileTests (Colin Ihrig) #49999
  • [c935d4c8fa] - test_runner: replace spurious if with else (Colin Ihrig) #49943
  • [a4c7f81241] - test_runner: catch reporter errors (Moshe Atlow) #49646
  • [bb52656fc6] - Revert "test_runner: run global after() hook earlier" (Joyee Cheung) #49110
  • [6346bdc526] - test_runner: run global after() hook earlier (Colin Ihrig) #49059
  • [0d8faf2952] - test_runner,test: fix flaky test-runner-cli-concurrency.js (Colin Ihrig) #50108
  • [b1ada0ad55] - tls: handle cases where the raw socket is destroyed (Luigi Pinca) #49980
  • [fae1af0a75] - tls: ciphers allow bang syntax (Chemi Atlow) #49712
  • [766198b9e1] - tools: fix comments referencing dep_updaters scripts (Keksonoid) #50165
  • [760b5dd259] - tools: remove no-return-await lint rule (翠 / green) #50118
  • [a0a5b751fb] - tools: update lint-md-dependencies (Node.js GitHub Bot) #50083
  • [69fb55e6b9] - tools: update eslint to 8.51.0 (Node.js GitHub Bot) #50084
  • [f73650ea52] - tools: remove genv8constants.py (Ben Noordhuis) #50023
  • [581434e54f] - tools: update eslint to 8.50.0 (Node.js GitHub Bot) #49989
  • [344d3c4b7c] - tools: update lint-md-dependencies (Node.js GitHub Bot) #49983
  • [7f06c270c6] - tools: add navigation ARIA landmark to generated API ToC (Rich Trott) #49882
  • [e97d25687b] - tools: use osx notarytool for future releases (Ulises Gascon) #48701
  • [3f1936f698] - tools: update github_reporter to 1.5.3 (Node.js GitHub Bot) #49877
  • [8568de3da6] - tools: add new V8 headers to distribution (Michaël Zasso) #49639
  • [86cb23d09f] - tools: update V8 gypfiles for 11.8 (Michaël Zasso) #49639
  • [9c6219c7e2] - tools: update V8 gypfiles for 11.7 (Michaël Zasso) #49639
  • [73ddf50163] - tools: update V8 gypfiles for 11.6 (Michaël Zasso) #49639
  • [817ef255ea] - tools: update V8 gypfiles for 11.5 (Michaël Zasso) #49639
  • [f34a3a9861] - tools: update V8 gypfiles for 11.4 (Michaël Zasso) #49639
  • [9df864ddeb] - typings: use Symbol.dispose and Symbol.asyncDispose in types (Niklas Mollenhauer) #50123
  • [54bb691c0b] - util: lazy parse mime parameters (Aras Abbasi) #49889
  • [1d220b55ac] - vm: use default HDO when importModuleDynamically is not set (Joyee Cheung) #49950
  • [c1a3a98560] - wasi: address coverity warning (Michael Dawson) #49866
  • [9cb8eb7177] - wasi: fix up wasi tests for ibmi (Michael Dawson) #49953
  • [16ac5e1ca8] - zlib: fix discovery of cpu-features.h for android (MatteoBax) #49828

New in Node.js 20.8.1 (Oct 14, 2023)

  • Notable Changes:
  • The following CVEs are fixed in this release:
  • CVE-2023-44487: nghttp2 Security Release (High)
  • CVE-2023-45143: undici Security Release (High)
  • CVE-2023-39332: Path traversal through path stored in Uint8Array (High)
  • CVE-2023-39331: Permission model improperly protects against path traversal (High)
  • CVE-2023-38552: Integrity checks according to policies can be circumvented (Medium)
  • CVE-2023-39333: Code injection via WebAssembly export names (Low)

New in Node.js 18.18.1 LTS (Oct 11, 2023)

  • This release addresses some regressions that appeared in Node.js 18.18.0:
  • (Windows) FS can not handle certain characters in file name #48673
  • 18 and 20 node images give error - Text file busy (after re-build images) nodejs/docker-node#1968
  • libuv update in 18.18.0 breaks webpack's thread-loader #49911

New in Node.js 20.8.0 (Sep 29, 2023)

  • Stream performance improvements
  • Performance improvements to writable and readable streams, improving the creation and destruction by ±15% and reducing the memory overhead each stream takes in Node.js
  • Contributed by Benjamin Gruenbaum in #49745 and Raz Luvaton in #49834.
  • Performance improvements for readable webstream, improving readable stream async iterator consumption by ±140% and improving readable stream pipeTo consumption by ±60%
  • Contributed by Raz Luvaton in #49662 and #49690.
  • Rework of memory management in vm APIs with the importModuleDynamically option
  • This rework addressed a series of long-standing memory leaks and use-after-free issues in the following APIs that support

New in Node.js 20.7.0 (Sep 18, 2023)

  • Notable Changes:
  • [022f1b70c1] - src: support multiple --env-file declarations (Yagiz Nizipli) #49542
  • [4a1d1cad61] - crypto: update root certificates to NSS 3.93 (Node.js GitHub Bot) #49341
  • [a1a65f593c] - deps: upgrade npm to 10.1.0 (npm team) #49570
  • [6c2480cad9] - (SEMVER-MINOR) deps: upgrade npm to 10.0.0 (npm team) #49423
  • [bef900e56b] - doc: move and rename loaders section (Geoffrey Booth) #49261
  • [db4ce8a593] - doc: add release key for Ulises Gascon (Ulises Gascón) #49196
  • [11c85ffa98] - (SEMVER-MINOR) lib: add api to detect whether source-maps are enabled (翠 / green) #46391
  • [ec51e25ed7] - src,permission: add multiple allow-fs-* flags (Carlos Espa) #49047
  • [efdc95fbc0] - (SEMVER-MINOR) test_runner: expose location of tests (Colin Ihrig) #48975
  • Commits:
  • [e84515594e] - benchmark: use tmpdir.resolve() (Livia Medeiros) #49137
  • [f37444e896] - bootstrap: build code cache from deserialized isolate (Joyee Cheung) #49099
  • [af6dc1754d] - bootstrap: do not generate code cache in an unfinalized isolate (Joyee Cheung) #49108
  • [cade5716df] - build: add symlink to compile_commands.json file if needed (Juan José) #49260
  • [34a2590b05] - build: expand when we run internet tests (Michael Dawson) #49218
  • [f637fd46ab] - build: fix typo libray -> library (configure.py) (michalbiesek) #49106
  • [ef3d8dd493] - crypto: remove webcrypto EdDSA key checks and properties (Filip Skokan) #49408
  • [4a1d1cad61] - crypto: update root certificates to NSS 3.93 (Node.js GitHub Bot) #49341
  • [7eb10a38ea] - crypto: remove getDefaultEncoding() (Tobias Nießen) #49170
  • [772496c030] - crypto: remove default encoding from DiffieHellman (Tobias Nießen) #49169
  • [c795083232] - crypto: remove default encoding from Hash/Hmac (Tobias Nießen) #49167
  • [08197aa010] - crypto: remove default encoding from sign/verify (Tobias Nießen) #49145
  • [a1a65f593c] - deps: upgrade npm to 10.1.0 (npm team) #49570
  • [6c2480cad9] - (SEMVER-MINOR) deps: upgrade npm to 10.0.0 (npm team) #49423
  • [84195d9584] - deps: add missing thread-common.c in uv.gyp (Santiago Gimeno) #49410
  • [5b70b68b3d] - deps: V8: cherry-pick eadaef581c29 (Adam Majer) #49401
  • [fe34d632e8] - deps: update zlib to 1.2.13.1-motley-f5fd0ad (Node.js GitHub Bot) #49252
  • [db4ce8a593] - doc: add release key for Ulises Gascon (Ulises Gascón) #49196
  • [e5f3a694cf] - doc: fix node-api call example (Chengzhong Wu) #49395
  • [021345a724] - doc: add news issue for Diagnostics WG (Michael Dawson) #49306
  • [f82347266b] - doc: clarify policy expectations (Rafael Gonzaga) #48947
  • [73cfd9c895] - doc: add print results for examples in StringDecoder (Jungku Lee) #49326
  • [63ab591416] - doc: update outdated reference to NIST SP 800-131A (Tobias Nießen) #49316
  • [935dfe2afd] - doc: use cjs as block code's type in MockTimers (Deokjin Kim) #49309
  • [7c0cd2fb87] - doc: update options.filter description for fs.cp (Shubham Pandey) #49289
  • [f72e79ea67] - doc: add riscv64 to list of architectures (Stewart X Addison) #49284
  • [d19c710064] - doc: avoid "not currently recommended" (Tobias Nießen) #49300
  • [ae656101c0] - doc: update module hooks docs (Geoffrey Booth) #49265
  • [fefbdb92f2] - doc: modify param description for end(),write() in StringDecoder (Jungku Lee) #49285
  • [59e66a1ebe] - doc: use NODE_API_SUPPORTED_VERSION_MAX in release doc (Cheng Zhao) #49268
  • [ac3b88449b] - doc: fix typo in stream.finished documentation (Antoine du Hamel) #49271
  • [7428ebf6c3] - doc: update description for percent_encode sets in WHATWG API (Jungku Lee) #49258
  • [bef900e56b] - doc: move and rename loaders section (Geoffrey Booth) #49261
  • [a22e0d9696] - doc: clarify use of Uint8Array for n-api (Fedor Indutny) #48742
  • [1704f24cb9] - doc: add signature for module.register (Geoffrey Booth) #49251
  • [5a363bb01b] - doc: caveat unavailability of import.meta.resolve in custom loaders (Jacob Smith) #49242
  • [8101f2b259] - doc: use same name in the doc as in the code (Hyunjin Kim) #49216
  • [edf278d60d] - doc: add notable-change label mention to PR template (Rafael Gonzaga) #49188
  • [3df2251a6a] - doc: add h1 summary to security release process (Rafael Gonzaga) #49112
  • [9fcd99a744] - doc: update to semver-minor releases by default (Rafael Gonzaga) #49175
  • [777931f499] - doc: fix wording in napi_async_init (Tobias Nießen) #49180
  • [f45c8e10c0] - doc,test: add known path resolution issue in permission model (Tobias Nießen) #49155
  • [a6cfea3f74] - esm: align sync and async load implementations (Antoine du Hamel) [#49152](https://github.com/nodejs/node...

New in Node.js 20.6.0 (Sep 4, 2023)

  • Starting from Node.js v20.6.0, Node.js supports .env files for configuring environment variables.
  • Your configuration file should follow the INI file format, with each line containing a key-value pair for an environment variable.
  • To initialize your Node.js application with predefined configurations, use the following CLI command: node --env-file=config.env index.js.
  • Other notable changes:
  • [d6862b085c] - deps: V8: cherry-pick 93275031284c (Joyee Cheung) #48660
  • [00fc8bb8b3] - doc: add rluvaton to collaborators (Raz Luvaton) #49215
  • [d649339abd] - doc: add new TSC members (Michael Dawson) #48841
  • [67f9896247] - (SEMVER-MINOR) inspector: open add SymbolDispose (Chemi Atlow) #48765
  • [5aef593db3] - module: implement register utility (João Lenon) #46826
  • Commits:
  • [771abcb5da] - benchmark: add benchmarks for the test_runner (Raz Luvaton) #48931
  • [6b27bb0dab] - benchmark: add pm startup benchmark (Rafael Gonzaga) #48905
  • [1f35c0ca55] - child_process: harden against prototype pollution (Livia Medeiros) #48726
  • [d6862b085c] - deps: V8: cherry-pick 93275031284c (Joyee Cheung) #48660
  • [f71e383948] - deps: update simdutf to 3.2.17 (Node.js GitHub Bot) #49019
  • [e14f0456ae] - deps: update googletest to 7e33b6a (Node.js GitHub Bot) #49034
  • [bfaa0fb500] - deps: update zlib to 1.2.13.1-motley-526382e (Node.js GitHub Bot) #49033
  • [b79c652c85] - deps: update undici to 5.23.0 (Node.js GitHub Bot) #49021
  • [6ead86145c] - deps: update googletest to c875c4e (Node.js GitHub Bot) #48964
  • [4b0e50501e] - deps: update ada to 2.6.0 (Node.js GitHub Bot) #48896
  • [d960ee0ba3] - deps: upgrade npm to 9.8.1 (npm team) #48838
  • [d92b0139ca] - deps: update zlib to 1.2.13.1-motley-61dc0bd (Node.js GitHub Bot) #48788
  • [2a7835c376] - deps: V8: cherry-pick 9f4b7699f68e (Joyee Cheung) #48830
  • [c8e17829ac] - deps: V8: cherry-pick c1a54d5ffcd1 (Joyee Cheung) #48830
  • [318e075b6f] - deps: update googletest to cc36671 (Node.js GitHub Bot) #48789
  • [114e088267] - diagnostics_channel: fix last subscriber removal (Gabriel Schulhof) #48933
  • [00fc8bb8b3] - doc: add rluvaton to collaborators (Raz Luvaton) #49215
  • [21949c45b6] - doc: add print results for examples in WebStreams (Jungku Lee) #49143
  • [032107a6fe] - doc: fix Type notation in webstreams (Deokjin Kim) #49121
  • [91d41e7c5a] - doc: fix name of the flag in initialize() docs (Antoine du Hamel) #49158

New in Node.js 20.5.0 (Jul 21, 2023)

  • Notable Changes:
  • [45be29d89f] - doc: add atlowChemi to collaborators (atlowChemi) #48757
  • [a316808136] - (SEMVER-MINOR) events: allow safely adding listener to abortSignal (Chemi Atlow) #48596
  • [986b46a567] - fs: add a fast-path for readFileSync utf-8 (Yagiz Nizipli) #48658
  • [0ef73ff6f0] - (SEMVER-MINOR) test_runner: add shards support (Raz Luvaton) #48639
  • Commits:
  • [eb0aba59b8] - bootstrap: use correct descriptor for Symbol.{dispose,asyncDispose} (Jordan Harband) #48703
  • [e2d0195dcf] - bootstrap: hide experimental web globals with flag kNoBrowserGlobals (Chengzhong Wu) #48545
  • [67a1018389] - build: do not pass target toolchain flags to host toolchain (Ivan Trubach) #48597
  • [7d843bb942] - child_process: use addAbortListener (atlowChemi) #48550
  • [4e08160f8c] - child_process: support Symbol.dispose (Moshe Atlow) #48551
  • [ef7728bf36] - deps: update nghttp2 to 1.55.1 (Node.js GitHub Bot) #48790
  • [1454f02499] - deps: update nghttp2 to 1.55.0 (Node.js GitHub Bot) #48746
  • [fa94debf46] - deps: update minimatch to 9.0.3 (Node.js GitHub Bot) #48704
  • [c73cfcc144] - deps: update acorn to 8.10.0 (Node.js GitHub Bot) #48713
  • [b7a076a052] - deps: V8: cherry-pick cb00db4dba6c (Keyhan Vakil) #48671
  • [150e15536b] - deps: upgrade npm to 9.8.0 (npm team) #48665
  • [c47b2cbd35] - dgram: socket add asyncDispose (atlowChemi) #48717
  • [002ce31cca] - dgram: use addAbortListener (atlowChemi) #48550
  • [45be29d89f] - doc: add atlowChemi to collaborators (atlowChemi) #48757
  • [69b55d2261] - doc: fix ambiguity in http.md and https.md (an5er) #48692
  • [caccb051c7] - doc: clarify transform._transform() callback argument logic (Rafael Sofi-zada) #48680
  • [999ae0c8c3] - doc: fix copy node executable in Windows (Yoav Vainrich) #48624
  • [7daefaeb44] - doc: drop <b> of v20 changelog (Rafael Gonzaga) #48649
  • [dd7ea3e1df] - doc: mention git node release prepare (Rafael Gonzaga) #48644
  • [cc7809df21] - esm: fix emit deprecation on legacy main resolve (Antoine du Hamel) #48664
  • [67b13d1dba] - events: fix bug listenerCount don't compare wrapped listener (yuzheng14) #48592
  • [a316808136] - (SEMVER-MINOR) events: allow safely adding listener to abortSignal (Chemi Atlow) #48596
  • [986b46a567] - fs: add a fast-path for readFileSync utf-8 (Yagiz Nizipli) #48658
  • [e4333ac41f] - http2: use addAbortListener (atlowChemi) #48550
  • [4a0b66e4f9] - http2: send RST code 8 on AbortController signal (Devraj Mehta) #48573
  • [1295c76fce] - lib: use addAbortListener (atlowChemi) #48550
  • [dff6c25a36] - meta: bump actions/checkout from 3.5.2 to 3.5.3 (dependabot[bot]) #48625
  • [b5cb69ceaa] - meta: bump step-security/harden-runner from 2.4.0 to 2.4.1 (dependabot[bot]) #48626
  • [332e480b46] - meta: bump ossf/scorecard-action from 2.1.3 to 2.2.0 (dependabot[bot]) #48628
  • [25c5a0aaee] - meta: bump github/codeql-action from 2.3.6 to 2.20.1 (dependabot[bot]) #48627
  • [6406f50ab1] - module: add SourceMap.lineLengths (Isaac Z. Schlueter) #48461
  • [cfa69bd48c] - net: server add asyncDispose (atlowChemi) #48717
  • [ac11264cc5] - net: use addAbortListener (atlowChemi) #48550
  • [82d6b13bf6] - permission: add debug log when inserting fs nodes (Rafael Gonzaga) #48677
  • [f4333b1cdd] - permission: v8.writeHeapSnapshot and process.report (Rafael Gonzaga) #48564
  • [f691dca6c9] - readline: use addAbortListener (atlowChemi) #48550
  • [227e6bd898] - src: pass syscall on fs.readFileSync fail operation (Yagiz Nizipli) #48815
  • [a9a4b73653] - src: make BaseObject iteration order deterministic (Joyee Cheung) #48702
  • [d99ea4845a] - src: remove kEagerCompile for CompileFunction (Keyhan Vakil) #48671
  • [df363d0010] - src: deduplicate X509 getter implementations (Tobias Nießen) #48563
  • [9cf2e1f55b] - src,lib: reducing C++ calls of esm legacy main resolve (Vinicius Lourenço) #48325
  • [daeb21dde9] - stream: fix deadlock when pipeing to full sink (Robert Nagy) #48691
  • [5a382d02d6] - stream: use addAbortListener (atlowChemi) #48550
  • [6e82077dd4] - test: deflake test-net-throttle (Luigi Pinca) #48599
  • [d378b2c822] - test: move test-net-throttle to parallel (Luigi Pinca) #48599
  • [dfa0aee5bf] - Revert "test: remove test-crypto-keygen flaky designation" (Luigi Pinca) #48652
  • [0ef73ff6f0] - (SEMVER-MINOR) test_runner: add shards support (Raz Luvaton) #48639
  • [e2442bb7ef] - timers: support Symbol.dispose (Moshe Atlow) #48633
  • [4398ade426] - tools: run fetch_deps.py with Python 3 (Richard Lau)

New in Node.js 20.5.0 (Jul 21, 2023)

  • Notable Changes:
  • [45be29d89f] - doc: add atlowChemi to collaborators (atlowChemi) #48757
  • [a316808136] - (SEMVER-MINOR) events: allow safely adding listener to abortSignal (Chemi Atlow) #48596
  • [986b46a567] - fs: add a fast-path for readFileSync utf-8 (Yagiz Nizipli) #48658
  • [0ef73ff6f0] - (SEMVER-MINOR) test_runner: add shards support (Raz Luvaton) #48639
  • Commits:
  • [eb0aba59b8] - bootstrap: use correct descriptor for Symbol.{dispose,asyncDispose} (Jordan Harband) #48703
  • [e2d0195dcf] - bootstrap: hide experimental web globals with flag kNoBrowserGlobals (Chengzhong Wu) #48545
  • [67a1018389] - build: do not pass target toolchain flags to host toolchain (Ivan Trubach) #48597
  • [7d843bb942] - child_process: use addAbortListener (atlowChemi) #48550
  • [4e08160f8c] - child_process: support Symbol.dispose (Moshe Atlow) #48551
  • [ef7728bf36] - deps: update nghttp2 to 1.55.1 (Node.js GitHub Bot) #48790
  • [1454f02499] - deps: update nghttp2 to 1.55.0 (Node.js GitHub Bot) #48746
  • [fa94debf46] - deps: update minimatch to 9.0.3 (Node.js GitHub Bot) #48704
  • [c73cfcc144] - deps: update acorn to 8.10.0 (Node.js GitHub Bot) #48713
  • [b7a076a052] - deps: V8: cherry-pick cb00db4dba6c (Keyhan Vakil) #48671
  • [150e15536b] - deps: upgrade npm to 9.8.0 (npm team) #48665
  • [c47b2cbd35] - dgram: socket add asyncDispose (atlowChemi) #48717
  • [002ce31cca] - dgram: use addAbortListener (atlowChemi) #48550
  • [45be29d89f] - doc: add atlowChemi to collaborators (atlowChemi) #48757
  • [69b55d2261] - doc: fix ambiguity in http.md and https.md (an5er) #48692
  • [caccb051c7] - doc: clarify transform._transform() callback argument logic (Rafael Sofi-zada) #48680
  • [999ae0c8c3] - doc: fix copy node executable in Windows (Yoav Vainrich) #48624
  • [7daefaeb44] - doc: drop <b> of v20 changelog (Rafael Gonzaga) #48649
  • [dd7ea3e1df] - doc: mention git node release prepare (Rafael Gonzaga) #48644
  • [cc7809df21] - esm: fix emit deprecation on legacy main resolve (Antoine du Hamel) #48664
  • [67b13d1dba] - events: fix bug listenerCount don't compare wrapped listener (yuzheng14) #48592
  • [a316808136] - (SEMVER-MINOR) events: allow safely adding listener to abortSignal (Chemi Atlow) #48596
  • [986b46a567] - fs: add a fast-path for readFileSync utf-8 (Yagiz Nizipli) #48658
  • [e4333ac41f] - http2: use addAbortListener (atlowChemi) #48550
  • [4a0b66e4f9] - http2: send RST code 8 on AbortController signal (Devraj Mehta) #48573
  • [1295c76fce] - lib: use addAbortListener (atlowChemi) #48550
  • [dff6c25a36] - meta: bump actions/checkout from 3.5.2 to 3.5.3 (dependabot[bot]) #48625
  • [b5cb69ceaa] - meta: bump step-security/harden-runner from 2.4.0 to 2.4.1 (dependabot[bot]) #48626
  • [332e480b46] - meta: bump ossf/scorecard-action from 2.1.3 to 2.2.0 (dependabot[bot]) #48628
  • [25c5a0aaee] - meta: bump github/codeql-action from 2.3.6 to 2.20.1 (dependabot[bot]) #48627
  • [6406f50ab1] - module: add SourceMap.lineLengths (Isaac Z. Schlueter) #48461
  • [cfa69bd48c] - net: server add asyncDispose (atlowChemi) #48717
  • [ac11264cc5] - net: use addAbortListener (atlowChemi) #48550
  • [82d6b13bf6] - permission: add debug log when inserting fs nodes (Rafael Gonzaga) #48677
  • [f4333b1cdd] - permission: v8.writeHeapSnapshot and process.report (Rafael Gonzaga) #48564
  • [f691dca6c9] - readline: use addAbortListener (atlowChemi) #48550
  • [227e6bd898] - src: pass syscall on fs.readFileSync fail operation (Yagiz Nizipli) #48815
  • [a9a4b73653] - src: make BaseObject iteration order deterministic (Joyee Cheung) #48702
  • [d99ea4845a] - src: remove kEagerCompile for CompileFunction (Keyhan Vakil) #48671
  • [df363d0010] - src: deduplicate X509 getter implementations (Tobias Nießen) #48563
  • [9cf2e1f55b] - src,lib: reducing C++ calls of esm legacy main resolve (Vinicius Lourenço) #48325
  • [daeb21dde9] - stream: fix deadlock when pipeing to full sink (Robert Nagy) #48691
  • [5a382d02d6] - stream: use addAbortListener (atlowChemi) #48550
  • [6e82077dd4] - test: deflake test-net-throttle (Luigi Pinca) #48599
  • [d378b2c822] - test: move test-net-throttle to parallel (Luigi Pinca) #48599
  • [dfa0aee5bf] - Revert "test: remove test-crypto-keygen flaky designation" (Luigi Pinca) #48652
  • [0ef73ff6f0] - (SEMVER-MINOR) test_runner: add shards support (Raz Luvaton) #48639
  • [e2442bb7ef] - timers: support Symbol.dispose (Moshe Atlow) #48633
  • [4398ade426] - tools: run fetch_deps.py with Python 3 (Richard Lau)

New in Node.js 20.3.1 (Jun 20, 2023)

  • Notable Changes:
  • CVE-2023-30581: mainModule.__proto__ Bypass Experimental Policy Mechanism (High)
  • CVE-2023-30584: Path Traversal Bypass in Experimental Permission Model (High)
  • CVE-2023-30587: Bypass of Experimental Permission Model via Node.js Inspector (High)
  • CVE-2023-30582: Inadequate Permission Model Allows Unauthorized File Watching (Medium)
  • CVE-2023-30583: Bypass of Experimental Permission Model via fs.openAsBlob() (Medium)
  • CVE-2023-30585: Privilege escalation via Malicious Registry Key manipulation during Node.js installer repair process (Medium)
  • CVE-2023-30586: Bypass of Experimental Permission Model via Arbitrary OpenSSL Engines (Medium)
  • CVE-2023-30588: Process interuption due to invalid Public Key information in x509 certificates (Medium)
  • CVE-2023-30589: HTTP Request Smuggling via Empty headers separated by CR (Medium)
  • CVE-2023-30590: DiffieHellman does not generate keys after setting a private key (Medium)
  • OpenSSL Security Releases
  • OpenSSL security advisory 28th March.
  • OpenSSL security advisory 20th April.
  • OpenSSL security advisory 30th May
  • Commits:
  • [cdac08dafc9] - crypto: handle cert with invalid SPKI gracefully (Tobias Nießen) nodejs-private/node-private#393
  • [d274c3babc] - crypto,https,tls: disable engines if perms enabled (Tobias Nießen) nodejs-private/node-private#409
  • [5621c1de38] - deps: update archs files for openssl-3.0.9-quic1 (Node.js GitHub Bot) #48402
  • [771caa9f1c] - deps: upgrade openssl sources to quictls/openssl-3.0.9-quic1 (Node.js GitHub Bot) #48402
  • [0459bf9c99] - doc,test: clarify behavior of DH generateKeys (Tobias Nießen) nodejs-private/node-private#426
  • [27e20501aa] - http: disable request smuggling via empty headers (Paolo Insogna) nodejs-private/node-private#427
  • [9c17e335f1] - msi: do not create AppDataRoamingnpm (Tobias Nießen) nodejs-private/node-private#408
  • [b51124c637] - permission: handle fs path traversal (RafaelGSS) nodejs-private/node-private#403
  • [ebc5927adc] - permission: handle fs.openAsBlob (RafaelGSS) nodejs-private/node-private#405
  • [c39a43bff5] - permission: handle fs.watchFile (RafaelGSS) nodejs-private/node-private#404
  • [d0a8264ec9] - policy: handle mainModule.__proto__ bypass (RafaelGSS) nodejs-private/node-private#416
  • [3df13d5a79] - src,permission: restrict inspector when pm enabled (RafaelGSS) nodejs-private/node-private#410

New in Node.js 20.2.0 (May 16, 2023)

  • Notable Changes:
  • [c092df9094] - doc: add ovflowd to collaborators (Claudio Wunder) #47844
  • [4197a9a5a0] - (SEMVER-MINOR) http: prevent writing to the body when not allowed by HTTP spec (Gerrard Lindsay) #47732
  • [c4596b9ce7] - (SEMVER-MINOR) sea: add option to disable the experimental SEA warning (Darshan Sen) #47588
  • [17befe008c] - (SEMVER-MINOR) test_runner: add skip, todo, and only shorthands to test (Chemi Atlow) #47909
  • [a0634d7f89] - (SEMVER-MINOR) url: add value argument to URLSearchParams has and delete methods (Sankalp Shubham) #47885
  • Commits:
  • [456fca0d9c] - bootstrap: initialize per-isolate properties of bindings separately (Joyee Cheung) #47768
  • [d6d12bf978] - bootstrap: log isolate data info in mksnapshot debug logs (Joyee Cheung) #47768
  • [e457d89a1b] - buffer: combine checking range of sourceStart in buf.copy (Deokjin Kim) #47758
  • [00668fcfb4] - child_process: use signal.reason in child process abort (Debadree Chatterjee) #47817
  • [d7993474ea] - crypto: remove default encoding from scrypt (Tobias Nießen) #47943
  • [09fb74a7cc] - crypto: fix webcrypto private/secret import with empty usages (Filip Skokan) #47877
  • [e9c6ee74f3] - crypto: remove default encoding from pbkdf2 (Tobias Nießen) #47869
  • [b7f13a8679] - deps: update simdutf to 3.2.9 (Node.js GitHub Bot) #47983
  • [b16f6da153] - deps: V8: cherry-pick 5f025d1ca2ca (Michaël Zasso) #47610
  • [99f8fcab45] - deps: V8: cherry-pick a8a11a87cb72 (Michaël Zasso) #47610
  • [c2b14b4c78] - deps: update ada to 2.4.0 (Node.js GitHub Bot) #47922
  • [cad42e7a56] - deps: V8: cherry-pick 1b471b796022 (Lu Yahan) #47399
  • [7b2f17ca59] - deps: upgrade npm to 9.6.6 (npm team) #47862
  • [d23b1af562] - deps: update ada to 2.3.1 (Node.js GitHub Bot) #47893
  • [72340c98fb] - dgram: convert macro to template (Tobias Nießen) #47891
  • [9be922892f] - dns: call ada::idna::to_ascii directly from c++ (Yagiz Nizipli) #47920
  • [4a1e97156a] - doc: add missing deprecated blocks to cluster (Tobias Nießen) #47981
  • [13118a19ee] - doc: update description of global (Tobias Nießen) #47969
  • [372796440b] - doc: update measure memory rejection information (Yash Ladha) #41639
  • [7ecc6740e4] - doc: fix broken link to TC39 import attributes proposal (Rich Trott) #47954
  • [b9771c95c7] - doc: fix broken link (Rich Trott) #47953
  • [6f5ba92e61] - doc: remove broken link (Rich Trott) #47942
  • [c9ffc555f1] - doc: document make lint-md-clean (Matteo Collina) #47926
  • [7ed99e8ba5] - doc: mark global object as legacy (Mert Can Altın) #47819
  • [bf39f2d252] - doc: ntfs junction points must link to directories (Ben Noordhuis) #47907
  • [4dfc3890d8] - doc: improve permission.has description (Daeyeon Jeong) #47875
  • [93f1aa2856] - doc: fix params names (Dmitry Semigradsky) #47853
  • [9a362aa2fb] - doc: update supported version of FreeBSD to 12.4 (Michaël Zasso) #47838
  • [89c70dc6e6] - doc: add stability experimental to pm (Rafael Gonzaga) #47890
  • [f96fb2eee7] - doc: swap Matteo with Rafael in the stewards (Rafael Gonzaga) #47841
  • [1666a146e3] - doc: add valgrind suppression details (Kevin Eady) #47760
  • [e53e8231ff] - doc: replace EOL versions in README (Tobias Nießen) #47833
  • [c092df9094] - doc: add ovflowd to collaborators (Claudio Wunder) #47844
  • [f7106765b3] - doc: update BUILDING.md previous versions links (Tobias Nießen) #47835
  • [811b43c215] - doc,test: update the v8.startupSnapshot doc and test the example (Joyee Cheung) #47468
  • [1ec640ac70] - esm: do not use 'beforeExit' on the main thread (Antoine du Hamel) #47964
  • [106dc612d6] - fs: make readdir recursive algorithm iterative (Ethan Arrowood) #47650
  • [a0da2348a8] - fs: move fs_use_promises_symbol to per-isolate symbols (Joyee Cheung) #47768
  • [4197a9a5a0] - (SEMVER-MINOR) http: prevent writing to the body when not allowed by HTTP spec (Gerrard Lindsay) #47732
  • [a4d6543598] - http2: improve nghttp2 error callback (Tobias Nießen) #47840
  • [a4fed6c580] - lib: update comment (sinkhaha) #47884
  • [fd8bec7b2b] - meta: bump step-security/harden-runner from 2.3.1 to 2.4.0 (Rich Trott) #47980
  • [f5b4b6d5dc] - meta: bump github/codeql-action from 2.3.2 to 2.3.3 (Rich Trott) #47979
  • [c05c0a2359] - meta: bump actions/setup-python from 4.5.0 to 4.6.0 (Rich Trott) #47968
  • [2a3d6d97cb] - meta: add security-wg ping to permission.js (Rafael Gonzaga) #47941
  • [6c158e8dd1] - meta: bump step-security/harden-runner from 2.2.1 to 2.3.1 (dependabot[bot]) #47808
  • [f7a8094d37] - meta: bump actions/setup-python from 4.5.0 to 4.6.0 (dependabot[bot]) [#47806](https://github.com/nodejs...

New in Node.js 20.1.0 (May 3, 2023)

  • assert: deprecate CallTracker
  • crypto: update root certificates to NSS 3.89
  • (SEMVER-MINOR) dns: expose getDefaultResultOrder
  • doc: add KhafraDev to collaborators
  • (SEMVER-MINOR) fs: add recursive option to readdir and opendir
  • (SEMVER-MINOR) fs: add support for mode flag to specify the copy behavior of the cp methods
  • (SEMVER-MINOR) http: add highWaterMark option http.createServer
  • (SEMVER-MINOR) stream: preserve object mode in compose
  • (SEMVER-MINOR) test_runner: add testNamePatterns to run API
  • (SEMVER-MINOR) test_runner: execute before hook on test
  • (SEMVER-MINOR) test_runner: support combining coverage reports
  • (SEMVER-MINOR) wasi: make returnOnExit true by default

New in Node.js 20.0.0 (Apr 18, 2023)

  • Permission Model:
  • Node.js now has an experimental feature called the Permission Model.
  • It allows developers to restrict access to specific resources during program execution, such as file system operations, child process spawning, and worker thread creation.
  • The API exists behind a flag --experimental-permission which when enabled will restrict access to all available permissions.
  • By using this feature, developers can prevent their applications from accessing or modifying sensitive data or running potentially harmful code.
  • More information about the Permission Model can be found in the Node.js documentation.
  • The Permission Model was a contribution by Rafael Gonzaga in #44004.
  • Custom ESM loader hooks run on dedicated thread:
  • ESM hooks supplied via loaders (--experimental-loader=foo.mjs) now run in a dedicated thread, isolated from the main thread.
  • This provides a separate scope for loaders and ensures no cross-contamination between loaders and application code.
  • Synchronous import.meta.resolve()
  • In alignment with browser behavior, this function now returns synchronously.
  • Despite this, user loader resolve hooks can still be defined as async functions (or as sync functions, if the author prefers).
  • Even when there are async resolve hooks loaded, import.meta.resolve will still return synchronously for application code.
  • Contributed by Anna Henningsen, Antoine du Hamel, Geoffrey Booth, Guy Bedford, Jacob Smith, and Michaël Zasso in #44710
  • V8 11.3:
  • The V8 engine is updated to version 11.3, which is part of Chromium 113.
  • This version includes three new features to the JavaScript API:
  • String.prototype.isWellFormed and toWellFormed
  • Methods that change Array and TypedArray by copy
  • Resizable ArrayBuffer and growable SharedArrayBuffer
  • RegExp v flag with set notation + properties of strings
  • WebAssembly Tail Call
  • The V8 update was a contribution by Michaël Zasso in #47251.
  • Stable Test Runner:
  • The recent update to Node.js, version 20, includes an important change to the test_runner module. The module has been marked as stable after a recent update. Previously, the test_runner module was experimental, but this change marks it as a stable module that is ready for production use.
  • Ada 2.0:
  • Node.js v20 comes with the latest version of the URL parser, Ada. This update brings significant performance improvements to URL parsing, including enhancements to the url.domainToASCII and url.domainToUnicode functions in node:url.
  • Ada 2.0 has been integrated into the Node.js codebase, ensuring that all parts of the application can benefit from the improved performance. Additionally, Ada 2.0 features a significant performance boost over its predecessor, Ada 1.0.4, while also eliminating the need for the ICU requirement for URL hostname parsing.
  • Contributed by Yagiz Nizipli and Daniel Lemire in #47339
  • Preparing single executable apps now requires injecting a Blob
  • Building a single executable app now requires injecting a blob prepared by Node.js from a JSON config instead of injecting the raw JS file.
  • This opens up the possibility of embedding multiple co-existing resources into the SEA (Single Executable Apps).
  • Contributed by Joyee Cheung in #47125
  • Web Crypto API:
  • Web Crypto API functions' arguments are now coerced and validated as per their WebIDL definitions like in other Web Crypto API implementations.
  • This further improves interoperability with other implementations of Web Crypto API.
  • This change was made by Filip Skokan in #46067.
  • Official support for ARM64 Windows:
  • Node.js now includes binaries for ARM64 Windows, allowing for native execution on the platform.
  • The MSI, zip/7z packages, and executable are available from the Node.js download site along with all other platforms.
  • The CI system was updated and all changes are now fully tested on ARM64 Windows, to prevent regressions and ensure compatibility.
  • ARM64 Windows was upgraded to tier 2 support by Stefan Stojanovic in #47233.
  • WASI version must now be specified:
  • When new WASI() is called, the version option is now required and has no default value.
  • Any code that relied on the default for the version will need to be updated to request a specific version.
  • This change was made by Michael Dawson in #47391.
  • Deprecations and Removals:
  • [3bed5f11e0] - (SEMVER-MAJOR) url: runtime-deprecate url.parse() with invalid ports (Rich Trott) #45526
  • url.parse() accepts URLs with ports that are not numbers. This behavior might result in host name spoofing with unexpected input.
  • These URLs will throw an error in future versions of Node.js, as the WHATWG URL API does already.
  • Starting with Node.js 20, these URLS cause url.parse() to emit a warning.
  • Semver-Major Commits:
  • [9fafb0a090] - (SEMVER-MAJOR) async_hooks: deprecate the AsyncResource.bind asyncResource property (James M Snell) #46432
  • [1948d37595] - (SEMVER-MAJOR) buffer: check INSPECT_MAX_BYTES with validateNumber (Umuoy) #46599
  • [7bc0e6a4e7] - (SEMVER-MAJOR) buffer: graduate File from experimental and expose as global (Khafra) #47153
  • [671ffd7825] - (SEMVER-MAJOR) buffer: use min/max of validateNumber (Deokjin Kim) #45796
  • [ab1614d280] - (SEMVER-MAJOR) build: reset embedder string to "-node.0" (Michaël Zasso) #47251
  • [c1bcdbcf79] - (SEMVER-MAJOR) build: warn for gcc versions earlier than 10.1 (Richard Lau) #46806
  • [649f68fc1e] - (SEMVER-MAJOR) build: reset embedder string to "-node.0" (Yagiz Nizipli) #45579
  • [9374700d7a] - (SEMVER-MAJOR) crypto: remove DEFAULT_ENCODING (Tobias Nießen) #47182
  • [1640aeb680] - (SEMVER-MAJOR) crypto: remove obsolete SSL_OP_* constants (Tobias Nießen) #47073
  • [c2e4b1fa9a] - (SEMVER-MAJOR) crypto: remove ALPN_ENABLED (Tobias Nießen) #47028
  • [3ef38c4bd7] - (SEMVER-MAJOR) crypto: use WebIDL converters in WebCryptoAPI (Filip Skokan) #46067
  • [08af023b1f] - (SEMVER-MAJOR) crypto: runtime deprecate replaced rsa-pss keygen parameters (Filip Skokan) #45653
  • [7eb0ac3cb6] - (SEMVER-MAJOR) deps: patch V8 to support compilation on win-arm64 (Michaël Zasso) #47251
  • [a7c129f286] - (SEMVER-MAJOR) deps: silence irrelevant V8 warning (Michaël Zasso) #47251
  • [6f5655a18e] - (SEMVER-MAJOR) deps: always define V8_EXPORT_PRIVATE as no-op (Michaël Zasso) #47251
  • [f226350fcb] - (SEMVER-MAJOR) deps: update V8 to 11.3.244.4 (Michaël Zasso) #47251
  • [d6dae7420e] - (SEMVER-MAJOR) deps: V8: cherry-pick f1c888e7093e (Michaël Zasso) #45579
  • [56c436533e] - (SEMVER-MAJOR) deps: fix V8 build on Windows with MSVC

New in Node.js 18.16.0 LTS (Apr 13, 2023)

  • Notable changes:
  • Add initial support for single executable applications
  • Replace url parser with Ada:
  • Node.js gets a new URL parser called Ada that is compliant with the WHATWG URL Specification and provides more than 100% performance improvement to the existing implementation.
  • Other notable changes:
  • buffer:
  • (SEMVER-MINOR) add Buffer.copyBytesFrom(...) (James M Snell) #46500
  • doc:
  • add marco-ippolito to collaborators (Marco Ippolito) #46816
  • add debadree25 to collaborators (Debadree Chatterjee) #46716
  • add deokjinkim to collaborators (Deokjin Kim) #46444
  • events:
  • (SEMVER-MINOR) add listener argument to listenerCount (Paolo Insogna) #46523
  • lib:
  • (SEMVER-MINOR) add AsyncLocalStorage.bind() and .snapshot() (flakey5) #46387
  • (SEMVER-MINOR) add aborted() utility function (Debadree Chatterjee) #46494
  • src:
  • (SEMVER-MINOR) allow optional Isolate termination in node::Stop() (Shelley Vohr) #46583
  • (SEMVER-MINOR) allow embedder control of code generation policy (Shelley Vohr) #46368
  • stream:
  • (SEMVER-MINOR) add abort signal for ReadableStream and WritableStream (Debadree Chatterjee) #46273
  • tls:
  • (SEMVER-MINOR) support automatic DHE (Tobias Nießen) #46978
  • url:
  • (SEMVER-MINOR) implement URLSearchParams size getter (James M Snell) #46308
  • worker:
  • (SEMVER-MINOR) add support for worker name in inspector and trace_events (Debadree Chatterjee) #46832
  • Commits
  • [c742493b61] - assert: fix exception message for assert(0) on try catch block (hidecology) #46760
  • [0ddf73ae7c] - assert: remove deprecated getFunction() usage (Ruben Bridgewater) #46661
  • [97ad72f19f] - async_hooks: add async local storage propagation benchmarks (Chengzhong Wu) #46414
  • [b1bde69574] - async_hooks: remove experimental onPropagate option (James M Snell) #46386
  • [b5db3b579a] - benchmark: add a benchmark for URLSearchParams creation and toString() (Debadree Chatterjee) #46810
  • [ff94f9ffbe] - benchmark: replace table in docs with description of file tree structure (Theodor Steiner) #46991
  • [d4af671f09] - benchmark: split Buffer.byteLength benchmark (Joyee Cheung) #46616
  • [5f647fb7b4] - benchmark: add benchmark for EventTarget add and remove (Debadree Chatterjee) #46779
  • [d7d634bd67] - benchmark: fix worker startup benchmark (Joyee Cheung) #46680
  • [f7c4796c56] - benchmark: add trailing commas in benchmark/path (Antoine du Hamel) #46628
  • [9b0d5030a5] - benchmark: add trailing commas in benchmark/http (Antoine du Hamel) #46609
  • [e0f436041e] - benchmark: add trailing commas in benchmark/crypto (Antoine du Hamel) #46553
  • [a383aee386] - benchmark: add trailing commas in benchmark/url (Antoine du Hamel) #46551
  • [a10c3558c6] - benchmark: add trailing commas in benchmark/http2 (Antoine du Hamel) #46552
  • [8036583f1f] - benchmark: add trailing commas in benchmark/process (Antoine du Hamel) #46481
  • [1497244078] - benchmark: add trailing commas in benchmark/misc (Antoine du Hamel) #46474
  • [057e3f5309] - benchmark: add trailing commas in benchmark/buffers (Antoine du Hamel) #46473
  • [26e1a81243] - benchmark: add trailing commas in benchmark/module (Antoine du Hamel) #46461
  • [bd6c828cf3] - benchmark: add trailing commas in benchmark/net (Antoine du Hamel) #46439
  • [01cf87aca7] - benchmark: add trailing commas in benchmark/util (Antoine du Hamel) #46438
  • [f006b2f9dc] - benchmark: add trailing commas in benchmark/async_hooks (Antoine du Hamel) #46424
  • [f969cc30ab] - benchmark: add trailing commas in benchmark/fs (Antoine du Hamel) #46426
  • [5202b84382] - bootstrap: print stack trace during environment creation failure (Joyee Cheung) #46533
  • [c6e722aca4] - (SEMVER-MINOR) buffer: add Buffer.copyBytesFrom(...) (James M Snell) #46500
  • [886504fdf8] - build: fix Visual Studio installation detection for Arm64 (Radek Bartoň) #46420
  • [2b72a453cf] - build: add GitHub Action for coverage with --without-intl (Rich Trott) #37954
  • [ff07aa7fe3] - build: do not disable inspector when intl is disabled (Rich Trott) #37954
  • [4b25b98bd8] - build,test: add proper support for IBM i (Xu Meng) #46739
  • [535311097c] - child_process: add trailing commas in source files (Antoine du Hamel) #46758
  • [d2692c65df] - cluster: add trailing commas in source files (Antoine du Hamel) #46695
  • [effdca8b10] - crypto: don't assume FIPS is disabled by default (Michael Dawson) #46532
  • [bce37c60ce] - debugger: improve validations and documents for watch and unwatch (Eungyu Lee) #46947
  • [51253bae83] - debugger: add a command to set which lines to check for context (Eungyu Lee) #46812
  • [44375c6a3c] - debugger: add trailing commas in source files (Antoine du Hamel) #46714
  • [e5c4d69681] - deps: update ada to 1.0.4 (Node.js GitHub Bot) #46853
  • [94f83536d7] - deps: update ada to 1.0.3 (Node.js GitHub Bot) #46784

New in Node.js 19.9.0 (Apr 11, 2023)

  • Tracing Channel in diagnostic_channel
  • New URL.canParse API
  • (SEMVER-MINOR) add getMaxListeners method
  • (SEMVER-MINOR) migrate to WiX4
  • (SEMVER-MINOR) deprecate napi_module_register
  • (SEMVER-MINOR) add setter & getter for default highWaterMark
  • (SEMVER-MINOR) expose reporter for use in run api

New in Node.js 19.8.1 (Mar 15, 2023)

  • Revert "vm: fix leak in vm.compileFunction when importModuleDynamically is used.

New in Node.js 19.8.0 (Mar 14, 2023)

  • Notable Changes:
  • [2fece54ca1] - (SEMVER-MINOR) buffer: add Buffer.copyBytesFrom(...) (James M Snell) #46500
  • [2eb887549a] - (SEMVER-MINOR) events: add listener argument to listenerCount (Paolo Insogna) #46523
  • [c1651bea41] - (SEMVER-MINOR) lib: add AsyncLocalStorage.bind() and .snapshot() (flakey5) #46387
  • [36f36b99b0] - (SEMVER-MINOR) src: add fs.openAsBlob to support File-backed Blobs (James M Snell) #45258
  • [bb9b1c637d] - (SEMVER-MINOR) tls: support automatic DHE (Tobias Nießen) #46978
  • [1e20b05acd] - (SEMVER-MINOR) url: implement URLSearchParams size getter (James M Snell) #46308
  • [60e5f45141] - (SEMVER-MINOR) wasi: add support for version when creating WASI (Michael Dawson) #46469
  • [a646a22d0f] - (SEMVER-MINOR) worker: add support for worker name in inspector and trace_events (Debadree Chatterjee) #46832
  • [bd5ef380a5] - doc: add marco-ippolito to collaborators (Marco Ippolito) #46816
  • Commits:
  • [e11f08e2c2] - assert: fix exception message for assert(0) on try catch block (hidecology) #46760
  • [a38de61e87] - assert: remove deprecated getFunction() usage (Ruben Bridgewater) #46661
  • [e07c9b82b7] - assert,util: revert recursive breaking change (Ruben Bridgewater) #46593
  • [7f85a2cb6f] - assert,util: improve deep equal comparison performance (Ruben Bridgewater) #46593
  • [7cfd31a753] - benchmark: add a benchmark for URLSearchParams creation and toString() (Debadree Chatterjee) #46810
  • [258d5f7b3c] - benchmark: replace table in docs with description of file tree structure (Theodor Steiner) #46991
  • [0617c5e81b] - benchmark: stablize encode benchmark (Joyee Cheung) #46658
  • [04166fe2fa] - benchmark: split Buffer.byteLength benchmark (Joyee Cheung) #46616
  • [760a35144f] - benchmark: add benchmark for EventTarget add and remove (Debadree Chatterjee) #46779
  • [9890eaa23d] - benchmark: fix worker startup benchmark (Joyee Cheung) #46680
  • [86b36212f6] - benchmark: rework assert benchmarks for correctness (Ruben Bridgewater) #46593
  • [cc74821477] - bootstrap: print stack trace during environment creation failure (Joyee Cheung) #46533
  • [2fece54ca1] - (SEMVER-MINOR) buffer: add Buffer.copyBytesFrom(...) (James M Snell) #46500
  • [b3e1034660] - buffer: use v8 fast API calls for Buffer.byteLength implementation (Joyee Cheung) #46616
  • [4b3b009afd] - build: fix Visual Studio installation detection for Arm64 (Radek Bartoň) #46420
  • [d4899b2b75] - build,test: add proper support for IBM i (Xu Meng) #46739
  • [81592ff073] - child_process: add trailing commas in source files (Antoine du Hamel) #46758
  • [16bbbacba8] - cluster: add trailing commas in source files (Antoine du Hamel) #46695
  • [2b7eb56e9b] - debugger: improve validations and documents for watch and unwatch (Eungyu Lee) #46947
  • [afbd818669] - debugger: add a command to set which lines to check for context (Eungyu Lee) #46812
  • [83b529ff27] - debugger: add trailing commas in source files (Antoine du Hamel) #46714
  • [84f5a1f942] - deps: update undici to 5.21.0 (Node.js GitHub Bot) #47063
  • [fb1ac98900] - deps: update simdutf to 3.2.2 (Node.js GitHub Bot) #46841
  • [7ab7f97c4e] - deps: update uvwasi to v0.0.16 (Michael Dawson) #46434
  • [b825e2db65] - deps: update ada to 1.0.4 (Node.js GitHub Bot) #46853
  • [8b1afe3f45] - deps: update corepack to 0.17.0 (Node.js GitHub Bot) #46842
  • [151fb60b28] - deps: update simdutf to 3.2.1 (Node.js GitHub Bot) #46800
  • [92f2f1910e] - deps: upgrade npm to 9.5.1 (npm team) #46783
  • [4e18e0a43a] - deps: update ada to 1.0.3 (Node.js GitHub Bot) #46784
  • [68dde38c8e] - deps: update nghttp2 to 1.52.0 (Michaël Zasso) #46636
  • [d9069e7614] - deps: fix libuv for android (Julian Dropmann) #46746
  • [c786ed3ecc] - deps: V8: cherry-pick 90be99fab31c (Michaël Zasso) #46646
  • [fb146ee741] - deps: update simdutf to 3.2.0 (Node.js GitHub Bot) #46621
  • [adff278c47] - deps,test: update postject to 1.0.0-alpha.5 (Node.js GitHub Bot) #46934
  • [247dfb7d73] - dgram: fix unhandled exception aborting a closed udp socket (Ramana Venkata) #46770
  • [c310a32857] - doc: remove remaining SSL_OP_NETSCAPE_*_BUG (Tobias Nießen) #47066
  • [89f31a1c7f] - doc: fix typo in test.md (Victor Hiairrassary) #47053
  • [94882f579f] - doc: amend support tier qualifier (Gireesh Punathil) #42805
  • [cbdaaf6197] - doc: fix typo on esm loaders example (Ruy Adorno) #47015
  • [17d3eb02f7] - doc: add missing test runner flags to man page (Colin Ihrig) #46982
  • [5f0f1c4197] - doc: fix history information for node:diagnostics_channel (Thomas Hunter II) #46984
  • [67e20f53cd] - doc: fix myUrl is not defined in url (Youngmin Yoo) #46968

New in Node.js 18.15.0 LTS (Mar 7, 2023)

  • Notable Changes
  • [63563f8a7a] - doc,lib,src,test: rename --test-coverage (Colin Ihrig) #46017
  • [28a775b32f] - test_runner: add initial code coverage support (Colin Ihrig) #46017
  • [4d50db14b3] - (SEMVER-MINOR) test_runner: add reporters (Moshe Atlow) #45712
  • [643545ab79] - (SEMVER-MINOR) fs: add statfs() functions (Colin Ihrig) #46358
  • [110ead9abb] - (SEMVER-MINOR) vm: expose cachedDataRejected for vm.compileFunction (Anna Henningsen) #46320
  • [02632b42cf] - (SEMVER-MINOR) v8: support gc profile (theanarkh) #46255
  • [f09b838408] - (SEMVER-MINOR) src,lib: add constrainedMemory API for process (theanarkh) #46218
  • [cb5bb12422] - (SEMVER-MINOR) buffer: add isAscii method (Yagiz Nizipli) #46046
  • Commits:
  • [6f91c8e2ae] - benchmark: add trailing commas (Antoine du Hamel) #46370
  • [d0b9be21eb] - benchmark: remove buffer benchmarks redundancy (Brian White) #45735
  • [6468f30d0d] - benchmark: introduce benchmark combination filtering (Brian White) #45735
  • [cb5bb12422] - (SEMVER-MINOR) buffer: add isAscii method (Yagiz Nizipli) #46046
  • [ec61bb04c0] - build: export more OpenSSL symbols on Windows (Mohamed Akram) #45486
  • [7bae4333ce] - build: fix MSVC 2022 Release compilation (Vladimir Morozov (REDMOND)) #46228
  • [0f5f2d4470] - crypto: include hmac.h in crypto_util.h (Adam Langley) #46279
  • [91ece4161b] - crypto: avoid hang when no algorithm available (Richard Lau) #46237
  • [492fc95bdf] - deps: V8: cherry-pick 90be99fab31c (Michaël Zasso) #46646
  • [732c77e3d9] - deps: update acorn to 8.8.2 (Node.js GitHub Bot) #46363
  • [8582f99ffb] - deps: update to uvwasi 0.0.15 (Colin Ihrig) #46253
  • [5453cd9940] - deps: V8: cherry-pick bf0bd4868dde (Michaël Zasso) #45908
  • [3ea53c5dc8] - deps: V8: cherry-pick c875e86df1d7 (sepehrst) #46501
  • [c04808de4b] - doc: correct the sed command for macOS in release process docs (Juan José) #46397
  • [8113220690] - doc: pass string to textEncoder.encode as input (Deokjin Kim) #46421
  • [129dccf5d2] - doc: add tip for session.post function (theanarkh) #46354
  • [919e581732] - doc: add documentation for socket.destroySoon() (Luigi Pinca) #46337
  • [fc15ac95a5] - doc: fix commit message using test instead of deps (Tony Gorez) #46313
  • [d153a93200] - doc: add v8 fast api contribution guidelines (Yagiz Nizipli) #46199
  • [dbf082d082] - doc: fix small typo error (0xflotus) #46186
  • [94421b4cfe] - doc: mark some parameters as optional in webstreams (Deokjin Kim) #46269
  • [5adb743511] - doc: update output of example in events.getEventListeners (Deokjin Kim) #46268
  • [63563f8a7a] - doc,lib,src,test: rename --test-coverage (Colin Ihrig) #46017
  • [4e88c7c813] - esm: delete preload mock test (Geoffrey Booth) #46402
  • [643545ab79] - (SEMVER-MINOR) fs: add statfs() functions (Colin Ihrig) #46358
  • [5019b5473f] - http: res.setHeaders first implementation (Marco Ippolito) #46109
  • [76622c4c60] - inspector: allow opening inspector when NODE_V8_COVERAGE is set (Moshe Atlow) #46113
  • [92f0747e03] - meta: update AUTHORS (Node.js GitHub Bot) #46399
  • [795251bc6f] - meta: update AUTHORS (Node.js GitHub Bot) #46303
  • [8865424c31] - meta: add .mailmap entry (Rich Trott) #46303
  • [5ed679407b] - meta: move evanlucas to emeritus (Evan Lucas) #46274
  • [403df210ac] - module: move test reporter loading (Geoffrey Booth) #45923
  • [2f7319e387] - readline: fix detection of carriage return (Antoine du Hamel) #46306
  • [73a8f46c4d] - Revert "src: let http2 streams end after session close" (Santiago Gimeno) #46721
  • [30d783f91a] - src: stop tracing agent before shutting down libuv (Santiago Gimeno) #46380
  • [1508d90fda] - src: get rid of fp arithmetic in ParseIPv4Host (Tobias Nießen) #46326
  • [bdb793a082] - src: use UNREACHABLE instead of CHECK(falsy) (Tobias Nießen) #46317
  • [116a33649b] - src: add support for ETW stack walking (José Dapena Paz) #46203
  • [b06298c98e] - src: refactor EndsInANumber in node_url.cc and adds IsIPv4NumberValid (Miguel Teixeira) #46227
  • [26f41b041c] - src: fix c++ exception on bad command line arg (Ben Noordhuis) #46290
  • [14da89f41a] - src: remove unreachable UNREACHABLE (Tobias Nießen) #46281
  • [18c4dd004b] - src: replace custom ASCII validation with simdutf one (Anna Henningsen) #46271
  • [cde375510f] - src: replace unreachable code with static_assert (Tobias Nießen) #46250
  • [f389b2f3fc] - src: use explicit C++17 fallthrough (Tobias Nießen) #46251
  • [8adaa1333c] - src: use CreateEnvironment instead of inlining its code...

New in Node.js 19.7.0 (Feb 21, 2023)

  • Notable Changes:
  • [60a612607e] - deps: upgrade npm to 9.5.0 (npm team) #46673
  • [7d6c27eab1] - deps: add ada as a dependency (Yagiz Nizipli) #46410
  • [a79a8bf85a] - doc: add debadree25 to collaborators (Debadree Chatterjee) #46716
  • [0c2c322ee6] - doc: add deokjinkim to collaborators (Deokjin Kim) #46444
  • [9b23309f53] - doc,lib,src,test: rename --test-coverage (Colin Ihrig) #46017
  • [8590eb4830] - (SEMVER-MINOR) lib: add aborted() utility function (Debadree Chatterjee) #46494
  • [164bfe82cc] - (SEMVER-MINOR) src: add initial support for single executable applications (Darshan Sen) #45038
  • [f3908411fd] - (SEMVER-MINOR) src: allow optional Isolate termination in node::Stop() (Shelley Vohr) #46583
  • [c34bac2fed] - (SEMVER-MINOR) src: allow blobs in addition to FILE*s in embedder snapshot API (Anna Henningsen) #46491
  • [683a1f8f3e] - (SEMVER-MINOR) src: allow snapshotting from the embedder API (Anna Henningsen) #45888
  • [658d2f4710] - (SEMVER-MINOR) src: make build_snapshot a per-Isolate option, rather than a global one (Anna Henningsen) #45888
  • [6801d3753c] - (SEMVER-MINOR) src: add snapshot support for embedder API (Anna Henningsen) #45888
  • [e77d538d32] - (SEMVER-MINOR) src: allow embedder control of code generation policy (Shelley Vohr) #46368
  • [633d3f292d] - (SEMVER-MINOR) stream: add abort signal for ReadableStream and WritableStream (Debadree Chatterjee) #46273
  • [6119289251] - test_runner: add initial code coverage support (Colin Ihrig) #46017
  • [a51fe3c663] - url: replace url-parser with ada (Yagiz Nizipli) #46410
  • Commits:
  • [731a7ae9da] - async_hooks: add async local storage propagation benchmarks (Chengzhong Wu) #46414
  • [05ad792a07] - async_hooks: remove experimental onPropagate option (James M Snell) #46386
  • [6b21170b10] - benchmark: add trailing commas in benchmark/path (Antoine du Hamel) #46628
  • [4b89ec409f] - benchmark: add trailing commas in benchmark/http (Antoine du Hamel) #46609
  • [ff95eb7386] - benchmark: add trailing commas in benchmark/crypto (Antoine du Hamel) #46553
  • [638d9b8d4b] - benchmark: add trailing commas in benchmark/url (Antoine du Hamel) #46551
  • [7524871a9b] - benchmark: add trailing commas in benchmark/http2 (Antoine du Hamel) #46552
  • [9d9b3f856f] - benchmark: add trailing commas in benchmark/process (Antoine du Hamel) #46481
  • [6c69ad6d43] - benchmark: add trailing commas in benchmark/misc (Antoine du Hamel) #46474
  • [7f8b292bee] - benchmark: add trailing commas in benchmark/buffers (Antoine du Hamel) #46473
  • [897e3c2782] - benchmark: add trailing commas in benchmark/module (Antoine du Hamel) #46461
  • [7760d40c04] - benchmark: add trailing commas in benchmark/net (Antoine du Hamel) #46439
  • [8b88d605ca] - benchmark: add trailing commas in benchmark/util (Antoine du Hamel) #46438
  • [2c8c9f978d] - benchmark: add trailing commas in benchmark/async_hooks (Antoine du Hamel) #46424
  • [b364b9bd60] - benchmark: add trailing commas in benchmark/fs (Antoine du Hamel) #46426
  • [e15ddba7e7] - build: add GitHub Action for coverage with --without-intl (Rich Trott) #37954
  • [c781a48097] - build: do not disable inspector when intl is disabled (Rich Trott) #37954
  • [b4deb2fcd5] - crypto: don't assume FIPS is disabled by default (Michael Dawson) #46532
  • [60a612607e] - deps: upgrade npm to 9.5.0 (npm team) #46673
  • [6c997035fc] - deps: update corepack to 0.16.0 (Node.js GitHub Bot) #46710
  • [2ed3875eee] - deps: update undici to 5.20.0 (Node.js GitHub Bot) #46711
  • [20cb13bf7f] - deps: update ada to v1.0.1 (Yagiz Nizipli) #46550
  • [c0983cfc06] - deps: copy postject-api.h and LICENSE to the deps folder (Darshan Sen) #46582
  • [7d6c27eab1] - deps: add ada as a dependency (Yagiz Nizipli) #46410
  • [7e7e2d037b] - deps: update c-ares to 1.19.0 (Michaël Zasso) #46415
  • [a79a8bf85a] - doc: add debadree25 to collaborators (Debadree Chatterjee) #46716
  • [6a8b04d709] - doc: move bcoe to emeriti (Benjamin Coe) #46703
  • [a0a6ee0f54] - doc: add response.strictContentLength to documentation (Marco Ippolito) #46627
  • [ffdd64dce3] - doc: remove unused functions from example of streamConsumers.text (Deokjin Kim) #46581
  • [c771d66864] - doc: fix test runner examples (Richie McColl) #46565
  • [375bb22df9] - doc: update test concurrency description / default values (richiemccoll) #46457
  • [a7beac04ba] - doc: enrich test command with executable (Tony Gorez) #44347
  • [aef57cd290] - doc: fix wrong location of requestTimeout's default value (Deokjin Kim) #46423
  • [0c2c322ee6] - doc: add deokjinkim to collaborators (Deokjin Kim) #46444
  • [31d3e3c486] - doc: fix -C flag usage (三咲智子 Kevin Deng) [#46388](https://githu...

New in Node.js 19.6.1 (Feb 17, 2023)

  • Notable Changes:
  • The following CVEs are fixed in this release:
  • CVE-2023-23919: OpenSSL errors not cleared in error stack (Medium)
  • CVE-2023-23918: Experimental Policies bypass via process.mainModule.require(High)
  • CVE-2023-23920: Insecure loading of ICU data through ICU_DATA environment variable (Low)
  • More detailed information on each of the vulnerabilities can be found in February 2023 Security Releases blog post.
  • This security release includes OpenSSL security updates as outlined in the recent
  • OpenSSL security advisory and undici security update.
  • Commits:
  • [97d9d55d2f] - build: build ICU with ICU_NO_USER_DATA_OVERRIDE (RafaelGSS) nodejs-private/node-private#374
  • [8ac90e6372] - crypto: clear OpenSSL error on invalid ca cert (RafaelGSS) nodejs-private/node-private#368
  • [10a4c47e3a] - deps: update undici to 5.19.1 (Node.js GitHub Bot) #46634
  • [b10fc75e4a] - deps: update undici to 5.18.0 (Node.js GitHub Bot) #46502
  • [e9b64ea8b9] - deps: update undici to 5.17.1 (Node.js GitHub Bot) #46502
  • [66a24cec47] - deps: cherry-pick Windows ARM64 fix for openssl (Richard Lau) #46573
  • [d8559aa6f5] - deps: update archs files for quictls/openssl-3.0.8+quic (RafaelGSS) #46573
  • [dc477f547d] - deps: upgrade openssl sources to quictls/openssl-3.0.8+quic (RafaelGSS) #46573
  • [2aae197670] - lib: makeRequireFunction patch when experimental policy (RafaelGSS) nodejs-private/node-private#358
  • [6d17b693ec] - policy: makeRequireFunction on mainModule.require (RafaelGSS) nodejs-private/node-private#358

New in Node.js 18.14.1 LTS (Feb 16, 2023)

  • Notable Changes:
  • CVE-2023-23918: Node.js Permissions policies can be bypassed via process.mainModule (High)
  • CVE-2023-23919: Node.js OpenSSL error handling issues in nodejs crypto library (Medium)
  • CVE-2023-23936: Fetch API in Node.js did not protect against CRLF injection in host headers (Medium)
  • CVE-2023-24807: Regular Expression Denial of Service in Headers in Node.js fetch API (Low)
  • CVE-2023-23920: Node.js insecure loading of ICU data through ICU_DATA environment variable (Low)

New in Node.js 18.14.0 LTS (Feb 2, 2023)

  • Engines:
  • Explanation: the node engines supported by npm@9 make it safe to allow npm@9 as the default in any LTS version of 14 or 16, as well as anything later than or including 18.0.0
  • npm is now compatible with the following semver range for node: ^14.17.0 || ^16.13.0 || >=18.0.0
  • Filesystem:
  • Explanation: when run as root previous versions of npm attempted to manage file ownership automatically on the user's behalf. this behavior was problematic in many cases and has been removed in favor of allowing users to manage their own filesystem permissions
  • npm will no longer attempt to modify ownership of files it creates.
  • Auth:
  • Explanation: any errors thrown from users having unsupported auth configurations will show npm config fix in the remediation instructions, which will allow the user to automatically have their auth config fixed.
  • The presence of auth related settings that are not scoped to a specific
  • registry found in a config file is no longer supported and will throw errors.
  • Login:
  • Explanation: the default auth-type has changed and users can opt back into the old behavior with npm config set auth-type=legacy. login and adduser have also been seperated making each command more closely match it's name instead of being aliases for each other.
  • Legacy auth types sso, saml & legacy have been consolidated into "legacy".
  • auth-type defaults to "web"
  • login and adduser are now separate commands that send different data to the registry.
  • auth-type config values web and legacy only try their respective methods,
  • npm no longer tries them all and waits to see which one doesn't fail.
  • Tarball Packing:
  • Explanation: previously using multiple ignore/allow lists when packing was an undefined behavior, and now the order of operations is strictly defined when packing a tarball making it easier to follow and should only affect users relying on the previously undefined behavior.
  • npm pack now follows a strict order of operations when applying ignore rules.
  • If a files array is present in the package.json, then rules in .gitignore
  • and .npmignore files from the root will be ignored.
  • Display/Debug/Timing Info:
  • Explanation: these changes center around the display of information to the terminal including timing and debug log info. We do not anticipate these changes breaking any existing workflows.
  • Links generated from git urls will now use HEAD instead of master as the default ref.
  • timing has been removed as a value for --loglevel.
  • --timing will show timing information regardless of --loglevel, except when --silent.
  • When run with the --timing flag, npm now writes timing data to a file
  • alongside the debug log data, respecting the logs-dir option and falling
  • back to <CACHE>/_logs/ dir, instead of directly inside the cache directory.
  • The timing file data is no longer newline delimited JSON, and instead each run
  • will create a uniquely named <ID>-timing.json file, with the <ID> portion
  • being the same as the debug log.
  • npm now outputs some json errors on stdout. Previously npm would output
  • all json formatted errors on stderr, making it difficult to parse as the
  • stderr stream usually has logs already written to it.
  • Config/Command Deprecations or Removals:
  • Explanation: install-links is the only config or command in the list that has an effect on package installs. We fixed a number of issues that came up during prereleases with this change. It will also only be applied to new package trees created without a package-lock.json file. Any install with an existing lock file will not be changed.
  • Deprecate boolean install flags in favor of --install-strategy.
  • npm config set will no longer accept deprecated or invalid config options.
  • install-links config defaults to "true".
  • node-version config has been removed.
  • npm-version config has been removed.
  • npm access subcommands have been renamed.
  • npm birthday has been removed.
  • npm set-script has been removed.
  • npm bin has been removed (use npx or npm exec to execute binaries).
  • Other notable changes:
  • doc:
  • add parallelism note to os.cpus() (Colin Ihrig) #45895
  • http:
  • join authorization headers (Marco Ippolito) #45982
  • improved timeout defaults handling (Paolo Insogna) #45778
  • stream:
  • implement finished() for ReadableStream and WritableStream (Debadree Chatterjee) #46205
  • Commits:
  • [1352f08778] - assert: remove assert.snapshot (Moshe Atlow) #46112
  • [4ee3238643] - async_hooks: refactor to use validateObject (Deokjin Kim) #46004
  • [79e0bf9b64] - benchmark: include webstreams benchmark (Rafael Gonzaga) #45876
  • [ed1ac82469] - benchmark,tools: use os.availableParallelism() (Deokjin Kim) #46003
  • [16ee02f2eb] - (SEMVER-MINOR) buffer: add buffer.isUtf8 for utf8 validation (Yagiz Nizipli) #45947
  • [3bf2371a57] - build: add extra semi check (Jiawen Geng) #46194
  • [560ee24157] - build: fix arm64 cross-compile from powershell (Stefan Stojanovic) #45890
  • [48e3ad3aca] - build: add option to disable shared readonly heap (Anna Henningsen) #45887
  • [52a7887b94] - (SEMVER-MINOR) crypto: add CryptoKey Symbol.toStringTag (Filip Skokan) #46042
  • [a558774a40] - crypto: add cipher update/final methods encoding validation (vitpavlenko) #45990
  • [599d1dc841] - crypto: ensure auth tag set for chacha20-poly1305 (Ben Noordhuis) #46185
  • [24a101698c] - crypto: return correct bit length in KeyObject's asymmetricKeyDetails (Filip Skokan) #46106
  • [2de50fef84] - (SEMVER-MINOR) crypto: add KeyObject Symbol.toStringTag (Filip Skokan) #46043
  • [782b6f6f9f] - crypto: ensure exported webcrypto EC keys use uncompressed point format (Ben Noordhuis) #46021
  • [7a97f3f43b] - crypto: fix CryptoKey prototype WPT (Filip Skokan) #45857
  • [1a8aa50aa2] - crypto: fix CryptoKey WebIDL conformance (Filip Skokan) #45855
  • [c6436450ee] - crypto: fix error when getRandomValues is called without arguments (Filip Skokan) #45854
  • [4cdf0002c5] - debugger: refactor console in lib/internal/debugger/inspect.js (Debadree Chatterjee) #45847
  • [b7fe8c70fa] - deps: update simdutf to 3.1.0 (Node.js GitHub Bot) #46257
  • [eaeb870cd7] - deps: upgrade npm to 9.3.1 (npm team) #46242
  • [7c03a3d676] - deps: upgrade npm to 9.3.0 (npm team) #46193
  • [340d76accb] - deps: cherrypick simdutf patch (Jiawen Geng) #46194
  • [cce2af4306] - deps: bump googletest to 2023.01.13 (Jiawen Geng) #46198
  • [d251a66bed] - deps: add /deps/**/.github/ to .gitignore (Luigi Pinca) #46091

New in Node.js 19.6.0 (Feb 2, 2023)

  • Notable changes:
  • ESM: Leverage loaders when resolving subsequent loaders
  • Loaders now apply to subsequent loaders, for example: --experimental-loader ts-node --experimental-loader loader-written-in-typescript.
  • Upgrade npm to 9.4.0
  • Added --install-strategy=linked option for installations similar to pnpm.
  • Other notable changes:
  • [a7c9daa497] - (SEMVER-MINOR) fs: add statfs() functions (Colin Ihrig) #46358
  • [34d70ce615] - (SEMVER-MINOR) vm: expose cachedDataRejected for vm.compileFunction (Anna Henningsen) #46320
  • [b4ac794923] - (SEMVER-MINOR) v8: support gc profile (theanarkh) #46255
  • [d52f60009a] - (SEMVER-MINOR) src,lib: add constrainedMemory API for process (theanarkh) #46218
  • [5ad6c2088e] - (SEMVER-MINOR) buffer: add isAscii method (Yagiz Nizipli) #46046
  • [fbdc3f7316] - (SEMVER-MINOR) test_runner: add reporters (Moshe Atlow) #45712
  • Commits:
  • [524eec70e2] - benchmark: add trailing commas (Antoine du Hamel) #46370
  • [f318a85408] - benchmark: remove buffer benchmarks redundancy (Brian White) #45735
  • [6186b3ea14] - benchmark: introduce benchmark combination filtering (Brian White) #45735
  • [5ad6c2088e] - (SEMVER-MINOR) buffer: add isAscii method (Yagiz Nizipli) #46046
  • [8c6c4338a6] - build: export more OpenSSL symbols on Windows (Mohamed Akram) #45486
  • [d795d93901] - build: fix MSVC 2022 Release compilation (Vladimir Morozov (REDMOND)) #46228
  • [8e363cf8e8] - crypto: include hmac.h in crypto_util.h (Adam Langley) #46279
  • [c1f3e13c65] - deps: update acorn to 8.8.2 (Node.js GitHub Bot) #46363
  • [813b160bd7] - deps: upgrade npm to 9.4.0 (npm team) #46353
  • [9c2f3cea70] - deps: update undici to 5.15.0 (Node.js GitHub Bot) #46213
  • [312e10c1e3] - deps: update to uvwasi 0.0.15 (Colin Ihrig) #46253
  • [c7024eec16] - doc: correct the sed command for macOS in release process docs (Juan José) #46397
  • [996bac044b] - doc: include webstreams in finished() and Duplex.from() parameters (Debadree Chatterjee) #46312
  • [891d18d55c] - doc: pass string to textEncoder.encode as input (Deokjin Kim) #46421
  • [968db213f8] - doc: add tip for session.post function (theanarkh) #46354
  • [a64d7f4e31] - doc: add documentation for socket.destroySoon() (Luigi Pinca) #46337
  • [975788899f] - doc: fix commit message using test instead of deps (Tony Gorez) #46313
  • [1d44017f52] - doc: add v8 fast api contribution guidelines (Yagiz Nizipli) #46199
  • [e2698c05fb] - doc: fix small typo error (0xflotus) #46186
  • [f39fb8c001] - doc: mark some parameters as optional in webstreams (Deokjin Kim) #46269
  • [7a9af38128] - doc: update output of example in events.getEventListeners (Deokjin Kim) #46268
  • [729642f30b] - esm: delete preload mock test (Geoffrey Booth) #46402
  • [7aac21e90a] - esm: leverage loaders when resolving subsequent loaders (Maël Nison) #43772
  • [a7c9daa497] - (SEMVER-MINOR) fs: add statfs() functions (Colin Ihrig) #46358
  • [1ec6270efa] - http: res.setHeaders first implementation (Marco Ippolito) #46109
  • [d4370259e9] - inspector: allow opening inspector when NODE_V8_COVERAGE is set (Moshe Atlow) #46113
  • [b966ef9a42] - lib: remove unnecessary ObjectGetValueSafe (Chengzhong Wu) #46335
  • [2b06d66289] - lib: cache parsed source maps to reduce memory footprint (Chengzhong Wu) #46225
  • [c38673df91] - meta: update AUTHORS (Node.js GitHub Bot) #46399
  • [c10e602547] - meta: update AUTHORS (Node.js GitHub Bot) #46303
  • [9dc026b14a] - meta: add .mailmap entry (Rich Trott) #46303
  • [7c514574f7] - meta: move evanlucas to emeritus (Evan Lucas) #46274
  • [3a3a6d87f1] - module: move test reporter loading (Geoffrey Booth) #45923
  • [4ae2492a33] - readline: fix detection of carriage return (Antoine du Hamel) #46306
  • [43cad78b7a] - src: stop tracing agent before shutting down libuv (Santiago Gimeno) #46380
  • [360a3f3094] - src: get rid of fp arithmetic in ParseIPv4Host (Tobias Nießen) #46326
  • [e7b507a8cf] - src: use UNREACHABLE instead of CHECK(falsy) (Tobias Nießen) #46317
  • [4c59b60ee8] - src: add support for ETW stack walking (José Dapena Paz) #46203
  • [640d111f95] - src: refactor EndsInANumber in node_url.cc and adds IsIPv4NumberValid (Miguel Teixeira) #46227
  • [fb7bee2b6e] - src: fix c++ exception on bad command line arg (Ben Noordhuis) #46290
  • [18c95ec4bd] - src: remove unreachable UNREACHABLE (Tobias Nießen) #46281
  • [35bf93b01a] - src: replace custom ASCII validation with simdutf one (Anna Henningsen) #46271
  • [8307a4bbcd] - src: replace unreachable code with static_assert (Tobias Nießen) #46250
  • [7cf0da020a] - src: use explicit C++17 fallthrough (Tobias Nießen) #46251
  • [d52f60009a] - (SEMVER-MINOR) src,lib: add constrainedMemory AP...

New in Node.js 19.5.0 (Jan 25, 2023)

  • Notable Changes
  • http:
  • (SEMVER-MINOR) join authorization headers (Marco Ippolito) #45982
  • lib::
  • add webstreams to Duplex.from() (Debadree Chatterjee) #46190
  • stream:
  • implement finished() for ReadableStream and WritableStream (Debadree Chatterjee) #46205
  • Commits
  • [def36946da] - assert: remove assert.snapshot (Moshe Atlow) #46112
  • [e1c56ec3fd] - benchmark,tools: use os.availableParallelism() (Deokjin Kim) #46003
  • [370f621d4d] - build: add extra semi check (Jiawen Geng) #46194
  • [476c6f892d] - crypto: avoid hang when no algorithm available (Richard Lau) #46237
  • [8b22310940] - (SEMVER-MINOR) crypto: add CryptoKey Symbol.toStringTag (Filip Skokan) #46042
  • [78be87b9f9] - crypto: add cipher update/final methods encoding validation (vitpavlenko) #45990
  • [dc0cdaa101] - crypto: ensure auth tag set for chacha20-poly1305 (Ben Noordhuis) #46185
  • [1146f02dc5] - crypto: return correct bit length in KeyObject's asymmetricKeyDetails (Filip Skokan) #46106
  • [961710bb72] - (SEMVER-MINOR) crypto: add KeyObject Symbol.toStringTag (Filip Skokan) #46043
  • [9cfdac6c82] - deps: V8: cherry-pick e39af94dd18e (Lu Yahan) #46142
  • [26cde8efb7] - deps: update simdutf to 3.1.0 (Node.js GitHub Bot) #46257
  • [3f9fb37130] - deps: cherrypick simdutf patch (Jiawen Geng) #46194
  • [4ff2822836] - deps: bump googletest to 2023.01.13 (Jiawen Geng) #46198
  • [49556247d2] - deps: add /deps/**/.github/ to .gitignore (Luigi Pinca) #46091
  • [0c4df83e0d] - deps: add simdutf version to metadata (Mike Roth) #46145
  • [69aafc3ddd] - deps: update simdutf to 2.1.0 (Node.js GitHub Bot) #46128
  • [a266daccb5] - deps: update corepack to 0.15.3 (Node.js GitHub Bot) #46037
  • [6cd70573eb] - deps: upgrade npm to 9.3.1 (npm team) #46242
  • [679aae2da8] - deps: upgrade npm to 9.3.0 (npm team) #46193
  • [38dd5061f2] - dgram: sync the old handle state to new handle (theanarkh) #46041
  • [e36af49b35] - doc: fix mismatched arguments of NodeEventTarget (Deokjin Kim) #45678
  • [58b836f7c4] - doc: update events API example to have runnable code (Deokjin Kim) #45760
  • [5c350298b4] - doc: add note to tls docs about secureContext availability (Tim Gerk) #46224
  • [90924ce198] - doc: add text around collaborative expectations (Michael Dawson) #46121
  • [2d328355d4] - doc: update to match changed --dns-result-order default (Mordy Tikotzky) #46148
  • [1015a606b7] - doc: add Node-API media link (Kevin Eady) #46189
  • [6e355efcff] - doc: update http.setMaxIdleHTTPParsers arguments (Debadree Chatterjee) #46168
  • [f18ab9405a] - doc: use "file system" instead of "filesystem" (Rich Trott) #46178
  • [1b45713b00] - doc: https update default request timeout (Marco Ippolito) #46184
  • [4c88721e2f] - doc: make options of readableStream.pipeTo as optional (Deokjin Kim) #46180
  • [538c53f010] - doc: add PerformanceObserver.supportedEntryTypes to doc (theanarkh) #45962
  • [eef7489d24] - doc: duplex and readable from uncaught execption warning (Marco Ippolito) #46135
  • [686fe585b5] - doc: remove outdated sections from maintaining-v8 (Antoine du Hamel) #46137
  • [2e826ad528] - doc: fix (EC)DHE remark in TLS docs (Tobias Nießen) #46114
  • [2e22b29add] - doc: fix ERR_TLS_RENEGOTIATION_DISABLED text (Tobias Nießen) #46122
  • [e222a2f1d1] - doc: fix spelling in SECURITY.md (Vaishno Chaitanya) #46124
  • [7718e82f0d] - doc: abort controller emits error in child process (Debadree Chatterjee) #46072
  • [76408bc1ed] - doc: fix event.cancelBubble documentation (Deokjin Kim) #45986
  • [82023f2570] - doc: update output of example in inspector (Deokjin Kim) #46073
  • [a42fc512b6] - doc: add personal pronouns option (Filip Skokan) #46118
  • [fafae5955d] - doc: mention how to run ncu-ci citgm (Rafael Gonzaga) #46090
  • [e1fd2f24d9] - doc: include updating release optional step (Rafael Gonzaga) #46089
  • [1996e610fd] - doc: describe argument of Symbol.for (Deokjin Kim) #46019
  • [b002330216] - doc,crypto: fix WebCryptoAPI import keyData and export return (Filip Skokan) #46076
  • [fa3e0c86c7] - esm: mark importAssertions as required (Antoine du Hamel) #46164
  • [f85a8e4c59] - events: add initEvent to Event (Deokjin Kim) #46069
  • [5bdfaae680] - events: change status of event.returnvalue to legacy (Deokjin Kim) #46175
  • [ad7846fe97] - events: change status of event.cancelBubble to legacy (Deokjin Kim) #46146
  • [5304c89682] - events: change status of event.srcElement to legacy (Deokjin Kim) #46085
  • [3dcdab3f16] - events: check signal before listener (Deokjin Kim) #46054
  • [907d67de76] - http: refactor to use `valid...

New in Node.js 19.4.0 (Jan 6, 2023)

  • Notable Changes:
  • Buffer:
  • (SEMVER-MINOR) add buffer.isUtf8 for utf8 validation (Yagiz Nizipli) #45947
  • Http:(SEMVER-MINOR) improved timeout defaults handling (Paolo Insogna) #45778
  • Net:add autoSelectFamily global getter and setter (Paolo Insogna) #45777
  • Os:(SEMVER-MINOR) add availableParallelism() (Colin Ihrig) #45895
  • Util:add fast path for text-decoder fatal flag (Yagiz Nizipli) #45803
  • Commits:
  • [54b748acc0] - async_hooks: refactor to use validateObject (Deokjin Kim) #46004
  • [cf2ff81f26] - benchmark: include webstreams benchmark (Rafael Gonzaga) #45876
  • [6e3d7f8c2d] - bootstrap: optimize modules loaded in the built-in snapshot (Joyee Cheung) #45849
  • [d181b76374] - bootstrap: make CJS loader snapshotable (Joyee Cheung) #45849
  • [508e830765] - bootstrap: include event_target into the built-in snapshot (Joyee Cheung) #45849
  • [dd77c05480] - bootstrap: support module_wrap binding in snapshot (Joyee Cheung) #45849
  • [fbe399c75c] - (SEMVER-MINOR) buffer: add buffer.isUtf8 for utf8 validation (Yagiz Nizipli) #45947
  • [233a66f937] - build: fix arm64 cross-compile from powershell (Stefan Stojanovic) #45890
  • [e7b98a3da2] - build: add option to disable shared readonly heap (Anna Henningsen) #45887
  • [777c551edf] - crypto: ensure exported webcrypto EC keys use uncompressed point format (Ben Noordhuis) #46021
  • [f7dba5bef7] - crypto: fix globalThis.crypto this check (Filip Skokan) #45857
  • [56f3ad101b] - crypto: fix CryptoKey prototype WPT (Filip Skokan) #45857
  • [c9747f1140] - crypto: use globalThis.crypto over require('crypto').webcrypto (Filip Skokan) #45817
  • [6eede72241] - crypto: fix CryptoKey WebIDL conformance (Filip Skokan) #45855
  • [c9802862b7] - crypto: fix error when getRandomValues is called without arguments (Filip Skokan) #45854
  • [3d09754186] - debugger: refactor console in lib/internal/debugger/inspect.js (Debadree Chatterjee) #45847
  • [fdda2ff53b] - deps: V8: cherry-pick 30861a39323d (Aaron Friel) #45851
  • [71bf513062] - deps: patch V8 to 10.8.168.25 (Michaël Zasso) #45996
  • [0552b13232] - deps: update simdutf to 2.0.9 (Node.js GitHub Bot) #45975
  • [e73be1b3b9] - deps: update to uvwasi 0.0.14 (Colin Ihrig) #45970
  • [e4323f01c1] - deps: fix updater github workflow job (Yagiz Nizipli) #45972
  • [05fee67238] - Revert "deps: disable avx512 for simutf on benchmark ci" (Yagiz Nizipli) #45948
  • [98fc94a444] - deps: disable avx512 for simutf on benchmark ci (Yagiz Nizipli) #45803
  • [344c5ec0ea] - deps: add simdutf dependency (Yagiz Nizipli) #45803
  • [7bdad948c8] - deps: V8: backport 8ca9f77d0f7c (Anna Henningsen) #45871
  • [29f90cf5af] - deps: update timezone to 2022g (Node.js GitHub Bot) #45731
  • [99fec0bf64] - deps: update undici to 5.14.0 (Node.js GitHub Bot) #45812
  • [faee973fa7] - deps: V8: cherry-pick bc831f8ba33b (Yagiz Nizipli) #45788
  • [e2944109c6] - deps: V8: cherry-pick bf0bd4868dde (Michaël Zasso) #45908
  • [e113d169ee] - doc: update isUtf8 description (Yagiz Nizipli) #45973
  • [9e16406066] - doc: sort http.createServer() options alphabetically (Luigi Pinca) #45680
  • [49253e1a8f] - doc: use console.error for error case in timers and tls (Deokjin Kim) #46002
  • [8be1b666a7] - doc: fix wrong output of example in url.protocol (Deokjin Kim) #45954
  • [9251dce8b2] - doc: use os.availableParallelism() in async_context and cluster (Deokjin Kim) #45979
  • [952e03ae66] - doc: make EventEmitterAsyncResource's options as optional (Deokjin Kim) #45985
  • [71cc3b3712] - doc: replace single executable champion in strategic initiatives doc (Darshan Sen) #45956
  • [eaf6b63637] - doc: update error message of example in repl (Deokjin Kim) #45920
  • [d8b5b7da75] - doc: fix typos in packages.md (Eric Mutta) #45957
  • [4457e051c9] - doc: remove port from example in url.hostname (Deokjin Kim) #45927
  • [908f4fab52] - doc: show output of example in http (Deokjin Kim) #45915
  • [faf5c23084] - (SEMVER-MINOR) doc: add parallelism note to os.cpus() (Colin Ihrig) #45895
  • [9ed547b73c] - doc: fix wrong output of example in url.password (Deokjin Kim) #45928
  • [a89f8c1337] - doc: fix some history entries in deprecations.md (Antoine du Hamel) #45891
  • [cf30fca23f] - doc: add tip for NODE_MODULE (theanarkh) #45797
  • [d500445aec] - doc: reduce likelihood of mismerges during release (Richard Lau) #45864
  • [e229f060e3] - doc: add backticks to webcrypto rsaOaepParams (Filip Skokan) #45883
  • [dfa58c1947] - doc: remove release cleanup step (Michaël Zasso) #45858
  • [b93a9670a8] - doc: add stream/promises pipeline and finished to doc (Marco Ippolito) #45832
  • [c86f4a17d6] - doc: remove Juan Jose keys (Rafael Gonzaga) ...

New in Node.js 19.2.0 (Nov 29, 2022)

  • Commits:
  • [7cff1e14ba] - (SEMVER-MINOR) async_hooks: add hook to stop propagation (Gerhard Stöbich) #45386
  • [f08f6a64a3] - benchmark: add v8 serialize benchmark (Yagiz Nizipli) #45476
  • [26ad54c1a2] - benchmark: add text-encoder benchmark (Yagiz Nizipli) #45450
  • [6c56c9722b] - (SEMVER-MINOR) buffer: introduce File (Khafra) #45139
  • [6e1e25d6dd] - build: avoid redefined macro (Michaël Zasso) #45544
  • [5c9b2a7c82] - build: fix env.h for cpp20 (Jiawen Geng) #45516
  • [54fd8a1966] - build: reset embedder string to "-node.0" (Michaël Zasso) #45230
  • [0f3cf7e5ce] - Revert "build: remove precompiled header and debug information for host builds" (Stefan Stojanovic) #45432
  • [62ef1eb4ff] - build: add --v8-disable-object-print flag (MURAKAMI Masahiko) #45458
  • [1ce2f56cf6] - build: make scripts in gyp run with right python (Jiawen Geng) #45435
  • [9ffe3c051a] - build,deps,src: fix Intel VTune profiling support (Shi Lei) #45248
  • [bd3accc7b2] - crypto: clear OpenSSL error queue after calling X509_check_private_key() (Filip Skokan) #45495
  • [724addb293] - crypto: update root certificates (Luigi Pinca) #45490
  • [efe19eb7f5] - crypto: clear OpenSSL error queue after calling X509_verify() (Takuro Sato) #45377
  • [f63ae525fa] - deps: V8: cherry-pick 2ada52cffbff (Michaël Zasso) #45573
  • [43e002e3d4] - deps: update base64 to 0.5.0 (Facundo Tuesca) #45509
  • [aaa4ac7735] - deps: V8: cherry-pick 9df5ef70ff18 (Yagiz Nizipli) #45230
  • [e70c3090ff] - deps: V8: cherry-pick f1c888e7093e (Michaël Zasso) #45230
  • [51eb323c50] - deps: V8: cherry-pick 92a7385171bb (Michaël Zasso) #45230
  • [1370b1a769] - deps: fix V8 build on Windows with MSVC (Michaël Zasso) #45230
  • [3cd6367e6a] - deps: silence irrelevant V8 warning (Michaël Zasso) #45230
  • [9348bdd28d] - deps: V8: fix v8-cppgc.h for MSVC (Jiawen Geng) #45230
  • [e9292544b0] - deps: fix V8 build issue with inline methods (Jiawen Geng) #45230
  • [a3b9967553] - deps: update V8 to 10.8.168.20 (Michaël Zasso) #45230
  • [117efe98b0] - deps: V8: cherry-pick 9df5ef70ff18 (Yagiz Nizipli) #45474
  • [628891d4dd] - deps: update timezone to 2022f (Node.js GitHub Bot) #45289
  • [45ba14b3be] - deps: fix zlib compilation for CPUs without SIMD features (Anna Henningsen) #45387
  • [c41e67fe1d] - deps: update zlib to upstream 8bbd6c31 (Luigi Pinca) #45387
  • [413bf9ad39] - deps: patch V8 to 10.7.193.22 (Michaël Zasso) #45460
  • [ad8da86b3f] - deps: update acorn to 8.8.1 (Node.js GitHub Bot) #45441
  • [17e6031bf0] - deps: V8: cherry-pick 031b98b25cba (Michaël Zasso) #45375
  • [9e0e97c121] - diagnostics_channel: built-in channels should remain experimental (Stephen Belanger) #45423
  • [44886e55e1] - diagnostics_channel: mark as stable (Stephen Belanger) #45290
  • [b6b5b51687] - doc: deprecate use of invalid ports in url.parse (Antoine du Hamel) #45576
  • [d805d5a894] - doc: clarify changes in readableFlowing (Kohei Ueno) #45554
  • [015842f3d2] - doc: use console.error for error case in http2 (Deokjin Kim) #45577
  • [4345732900] - doc: add version description about fsPromise.constants (chlorine) #45556
  • [16643dbb19] - doc: add missing documentation for paramEncoding (Tobias Nießen) #45523
  • [246cd358b5] - doc: fix typo in threat model (Tobias Nießen) #45558
  • [5b1df22db0] - doc: add Node.js Threat Model (Rafael Gonzaga) #45223
  • [19d8493c92] - doc: run license-builder (github-actions[bot]) #45553
  • [6f0bc097ea] - doc: add async_hooks migration note (Geoffrey Booth) #45335
  • [118de4b44c] - doc: fix RESOLVE_ESM_MATCH in modules.md (翠 / green) #45280
  • [4de67d1ef4] - doc: add arm64 to os.machine() (Carter Snook) #45374
  • [1812a89c00] - doc: add lint rule to enforce trailing commas (Antoine du Hamel) #45471
  • [4128c27f66] - doc: include v19.1.0 in CHANGELOG.md (Rafael Gonzaga) #45462
  • [94a6a97ec6] - doc: adjust wording to eliminate awkward typography (Konv) #45398
  • [a6fe707b62] - doc: fix typo in maintaining-dependencies.md (Tobias Nießen) #45428
  • [8906a4e58e] - esm: add JSDoc property descriptions for loader (Rich Trott) #45370

New in Node.js 19.1.0 (Nov 14, 2022)

  • Notable changes:
  • The following CVEs are fixed in this release:
  • CVE-2022-3602: X.509 Email Address 4-byte Buffer Overflow (High)
  • CVE-2022-3786: X.509 Email Address Variable Length Buffer Overflow (High)
  • CVE-2022-43548: DNS rebinding in --inspect via invalid octal IP address (Medium)
  • More detailed information on each of the vulnerabilities can be found in November 2022 Security Releases blog post.
  • Commits:
  • [e58e8d70a8] - deps: update archs files for quictls/openssl-3.0.7+quic (RafaelGSS) #45286
  • [85f4548d57] - deps: upgrade openssl sources to quictls/openssl-3.0.7+quic (RafaelGSS) #45286
  • [43403f56f7] - inspector: harden IP address validation again (Tobias Nießen) nodejs-private/node-private#354

New in Node.js 18.12.1 LTS (Nov 5, 2022)

  • The following CVEs are fixed in this release:
  • CVE-2022-3602: X.509 Email Address 4-byte Buffer Overflow (High)
  • CVE-2022-3786: X.509 Email Address Variable Length Buffer Overflow (High)
  • CVE-2022-43548: DNS rebinding in --inspect via invalid octal IP address (Medium)

New in Node.js 19.0.1 (Nov 4, 2022)

  • The following CVEs are fixed in this release:
  • CVE-2022-3602: X.509 Email Address 4-byte Buffer Overflow (High)
  • CVE-2022-3786: X.509 Email Address Variable Length Buffer Overflow (High)
  • CVE-2022-43548: DNS rebinding in --inspect via invalid octal IP address (Medium)

New in Node.js 16.18.1 LTS (Nov 4, 2022)

  • Deps:
  • Update corepack to 0.14.2 (Node.js GitHub Bot).
  • Src:
  • Add --openssl-shared-config option (Daniel Bevenius).

New in Node.js 19.0.0 (Oct 18, 2022)

  • Notable Changes:
  • Deprecations and Removals:
  • [7dd2f41c73] - (SEMVER-MAJOR) module: runtime deprecate exports double slash maps (Guy Bedford) #44495
  • [ada2d053ae] - (SEMVER-MAJOR) process: runtime deprecate coercion to integer in process.exit() (Daeyeon
  • HTTP(S)/1.1 KeepAlive by default:
  • Starting with this release, Node.js sets keepAlive to true by default. This means that any outgoing HTTP(s) connection will automatically use HTTP 1.1 Keep-Alive. The default waiting window is 5 seconds.
  • Enable keep-alive will deliver better throughput as connections are reused by default.
  • Additionally, the agent is now able to parse the response Keep-Alive which the servers might send. This header instructs the client on how much to stay connected.
  • On the other side, the Node.js HTTP server will now automatically disconnect idle clients (which are using HTTP Keep-Alive to reuse the connection) when close() is invoked).
  • Node.js HTTP(S)/1.1 requests may experience a better throughput/performance by default.
  • DTrace/SystemTap/ETW Support were removed
  • The main reason is the lack of resources from the Node.js team. The complexity to keep the support up-to-date has proved not worth it without a clear plan to support those tools. Hence, an issue was raised in the Node.js repository to assess better support, for DTrace in specific.
  • V8 10.7:
  • The V8 engine is updated to version 10.7, which is part of Chromium 107.
  • This version include a new feature to the JavaScript API: Intl.NumberFormat.
  • Intl.NumberFormat v3 API is a new TC39 ECMA402 stage 3 proposal
  • Extend the pre-existing Intl.NumberFormat.
  • The V8 update was a contribution by Michaël Zasso in #44741.
  • Llhttp 8.1.0:
  • Llhttp has been updated to version 8.1.0. Collectively, this version brings many updates to the llhttp API, introducing new callbacks and allow all callback to be pausable.
  • Other Notable Changes:
  • [46a3afb579] - doc: graduate webcrypto to stable (Filip Skokan) #44897
  • [f594cc85b7] - esm: remove specifier resolution flag (Geoffrey Booth) #44859
  • Semver-Major Commits:
  • [53f73d1cfe] - (SEMVER-MAJOR) build: enable V8's trap handler on Windows (Michaël Zasso) #44741
  • [06aaf8a1c4] - (SEMVER-MAJOR) build: reset embedder string to "-node.0" (Michaël Zasso) #44741
  • [aa3a572e6b] - (SEMVER-MAJOR) build: remove dtrace & etw support (Ben Noordhuis) #43652
  • [38f1e2793c] - (SEMVER-MAJOR) build: remove systemtap support (Ben Noordhuis) #43651
  • [2849283c4c] - (SEMVER-MAJOR) crypto: remove non-standard webcrypto.Crypto.prototype.CryptoKey (Antoine du Hamel) #42083
  • [a1653ac715] - (SEMVER-MAJOR) crypto: do not allow to call setFips from the worker thread (Sergey Petushkov) #43624
  • [fd36a8dadb] - (SEMVER-MAJOR) deps: update llhttp to 8.1.0 (Paolo Insogna) #44967
  • [89ecdddaab] - (SEMVER-MAJOR) deps: bump minimum ICU version to 71 (Michaël Zasso) #44741
  • [66fe446efd] - (SEMVER-MAJOR) deps: V8: cherry-pick 0cccb6f27d78 (Michaël Zasso) #44741
  • [88ed027d57] - (SEMVER-MAJOR) deps: V8: cherry-pick 7ddb8399f9f1 (Michaël Zasso) #44741
  • [26c651c34e] - (SEMVER-MAJOR) deps: V8: cherry-pick 1b3a4f0c34a1 (Michaël Zasso) #44741
  • [c8ff2dfd11] - (SEMVER-MAJOR) deps: V8: cherry-pick b161a0823165 (Michaël Zasso) #44741
  • [7a8fa2d517] - (SEMVER-MAJOR) deps: fix V8 build on Windows with MSVC (Michaël Zasso) #44741
  • [83b0aaa800] - (SEMVER-MAJOR) deps: fix V8 build on SmartOS (Michaël Zasso) #44741
  • [7a952e8ea5] - (SEMVER-MAJOR) deps: silence irrelevant V8 warning (Michaël Zasso) #44741
  • [6bd756d7c6] - (SEMVER-MAJOR) deps: update V8 to 10.7.193.13 (Michaël Zasso) #44741
  • [03fb789fb9] - (SEMVER-MAJOR) events: add null check for the signal of EventTarget (Masashi Hirano) #43153
  • [a4fa526ddc] - (SEMVER-MAJOR) fs: add directory autodetection to fsPromises.symlink() (Livia Medeiros) #42894
  • [bb4891d8d4] - (SEMVER-MAJOR) fs: add validateBuffer to improve error (Hirotaka Tagawa / wafuwafu13) #44769
  • [950a4411fa] - (SEMVER-MAJOR) fs: remove coercion to string in writing methods (Livia Medeiros) #42796
  • [41a6d82968] - (SEMVER-MAJOR) fs: harden fs.readSync(buffer, options) typecheck (LiviaMedeiros) #42772
  • [2275faac2b] - (SEMVER-MAJOR) fs: harden fs.read(params, callback) typecheck (LiviaMedeiros) #42772
  • [29953a0b88] - (SEMVER-MAJOR) fs: harden filehandle.read(params) typecheck (LiviaMedeiros) #42772
  • [4267b92604] - (SEMVER-MAJOR) http: use Keep-Alive by default in global agents (Paolo Insogna) #43522
  • [0324529e0f] - (SEMVER-MAJOR) inspector: introduce inspector/promises API (Erick Wendel) #44250
  • [80270994d6] - (SEMVER-MAJOR) lib: enable global CustomEvent by default (Daeyeon Jeong) #44860
  • [f529f73bd7] - (SEMVER-MAJOR) lib: brand check event handler property receivers (Chengzhong Wu) #44483
  • [6de2673a9f] - (SEMVER-MAJOR) lib: enable global WebCrypto by default (Antoine du Hamel) #42083
  • [73ba8830d5] - (SEMVER-MAJOR) lib: use private field in AbortController (Joyee Cheung) #43820
  • [7dd2f41c73] - (SEMVER-MAJOR) module: runtime deprecate exports double slash maps (Guy Bedford) #44495
  • [22c39b1ddd] - (SEMVER-MAJOR) path: the dot will be added(path.format) if it is not specified in ext (theanarkh) #44349
  • [587367d107] - **(SEMVER-MA...

New in Node.js 18.11.0 (Oct 14, 2022)

  • watch mode (experimental):
  • Running in 'watch' mode using node --watch restarts the process when an imported file is changed.
  • Contributed by Moshe Atlow in #44366
  • Other notable changes
  • fs:
  • (SEMVER-MINOR) add FileHandle.prototype.readLines (Antoine du Hamel) #42590
  • http:
  • (SEMVER-MINOR) add writeEarlyHints function to ServerResponse (Wing) #44180
  • http2:
  • (SEMVER-MINOR) make early hints generic (Yagiz Nizipli) #44820
  • lib:
  • (SEMVER-MINOR) refactor transferable AbortSignal (flakey5) #44048
  • src:
  • (SEMVER-MINOR) add detailed embedder process initialization API (Anna Henningsen) #44121
  • util:
  • (SEMVER-MINOR) add default value option to parsearg (Manuel Spigolon) #44631

New in Node.js 18.10.0 (Sep 29, 2022)

  • Notable changes:
  • Doc:
  • (SEMVER-MINOR) deprecate modp1, modp2, and modp5 groups (Tobias Nießen) #44588
  • Add legendecas to TSC list (Michael Dawson) #44662
  • Move policy docs to the permissions scope (Rafael Gonzaga) #44222
  • Gyp:
  • Libnode for ios app embedding (chexiongsheng) #44210
  • Http:
  • (SEMVER-MINOR) throw error on content-length mismatch (sidwebworks) #44588
  • Stream:
  • (SEMVER-MINOR) add ReadableByteStream.tee() (Daeyeon Jeong) #44505

New in Node.js 18.9.1 (Sep 24, 2022)

  • Notable changes:
  • The following CVEs are fixed in this release:
  • CVE-2022-32212: DNS rebinding in --inspect on macOS (High)
  • Insufficient fix for macOS devices on v18.5.0
  • CVE-2022-32222: Node 18 reads openssl.cnf from /home/iojs/build/ upon startup on MacOS (Medium)
  • CVE-2022-32213: HTTP Request Smuggling - Flawed Parsing of Transfer-Encoding (Medium)
  • Insufficient fix on v18.5.0
  • CVE-2022-32215: HTTP Request Smuggling - Incorrect Parsing of Multi-line Transfer-Encoding (Medium)
  • Insufficient fix on v18.5.0
  • CVE-2022-35256: HTTP Request Smuggling - Incorrect Parsing of Header Fields (Medium)
  • CVE-2022-35255: Weak randomness in WebCrypto keygen
  • More detailed information on each of the vulnerabilities can be found in September 22nd 2022 Security Releases blog post.
  • llhttp updated to 6.0.10
  • llhttp is updated to 6.0.10 which includes fixes for the following vulnerabilities.
  • HTTP Request Smuggling - CVE-2022-32213 bypass via obs-fold mechanic (Medium)(CVE-2022-32213 ): The llhttp parser in the http module does not correctly parse and validate Transfer-Encoding headers. This can lead to HTTP Request Smuggling (HRS).
  • HTTP Request Smuggling - Incorrect Parsing of Multi-line Transfer-Encoding (Medium)(CVE-2022-32215): The llhttp parser in the http module does not correctly handle multi-line Transfer-Encoding headers. This can lead to HTTP Request Smuggling (HRS).
  • HTTP Request Smuggling - Incorrect Parsing of Header Fields (Medium)(CVE-35256): The llhttp parser in the http does not correctly handle header fields that are not terminated with CLRF. This can lead to HTTP Request Smuggling (HRS).
  • Commits:
  • [0c2a5723be] - crypto: fix weak randomness in WebCrypto keygen (Ben Noordhuis) nodejs-private/node-private#
  • [ffb6f4d51d] - deps: MacOS - fix location of OpenSSL config file (Michael Dawson) nodejs-private/node-private#345
  • [01bffcdd93] - http: disable chunked encoding when OBS fold is used (Paolo Insogna) nodejs-private/node-private#341
  • [2c379d341d] - src: fix IPv4 non routable validation (RafaelGSS) nodejs-private/node-private#337

New in Node.js 18.9.0 (Sep 8, 2022)

  • Notable changes:
  • doc:
  • add daeyeon to collaborators (Daeyeon Jeong) #44355
  • lib:
  • (SEMVER-MINOR) add diagnostics channel for process and worker (theanarkh) #44045
  • os:
  • (SEMVER-MINOR) add machine method (theanarkh) #44416
  • report:
  • (SEMVER-MINOR) expose report public native apis (Chengzhong Wu) #44255
  • src:
  • (SEMVER-MINOR) expose environment RequestInterrupt api (Chengzhong Wu) #44362
  • vm:
  • include vm context in the embedded snapshot (Joyee Cheung) #44252
  • Commits:
  • [e27e709d3c] - build: add --libdir flag to configure (Stephen Gallagher) #44361
  • [30da2b4d89] - build: added NINJA env to customize ninja binary (Jeff Dickey) #44293
  • [3c5354869e] - cluster: fix cluster rr distribute error (theanarkh) #44202
  • [5cefd02618] - crypto: handle invalid prepareAsymmetricKey JWK inputs (Filip Skokan) #44475
  • [c868e36385] - crypto: add digest name to INVALID_DIGEST errors (Tobias Nießen) #44468
  • [35cbe1ad85] - crypto: use actual option name in error message (Tobias Nießen) #44455
  • [c3dbe18e4c] - crypto: simplify control flow in HKDF (Tobias Nießen) #44272
  • [28781a1f7e] - crypto: improve RSA-PSS digest error messages (Tobias Nießen) #44307
  • [b1eafe14fd] - debugger: decrease timeout used to wait for the port to be free (Joyee Cheung) #44359
  • [8ef5c40a83] - deps: update corepack to 0.14.0 (Node.js GitHub Bot) #44509
  • [cf19a79dfc] - deps: upgrade npm to 8.19.1 (npm team) #44486
  • [c5630ad1a7] - deps: V8: backport ff8d67c88449 (Michaël Zasso) #44423
  • [255e7fbd08] - deps: update Acorn to v8.8.0 (Michaël Zasso) #44437
  • [754d26a53e] - deps: patch V8 to 10.2.154.15 (Michaël Zasso) #44294
  • [1b50ff2600] - deps: update icu tzdata to 2022b (Matías Zúñiga) #44283
  • [1e451dca99] - deps: upgrade llhttp to 6.0.9 (Paolo Insogna) #44344
  • [57da3db522] - deps: update undici to 5.9.1 (Node.js GitHub Bot) #44319
  • [1c87a7e8f6] - doc: add missing parenthesis in TLSSocket section (Tobias Nießen) #44512
  • [05006eddb2] - doc: do not use "Returns:" for crypto.constants (Tobias Nießen) #44481
  • [54b6ed58bc] - doc: use serial comma in addons docs (Tobias Nießen) #44482
  • [11452a97b3] - doc: add --update-assert-snapshot to node.1 (Colin Ihrig) #44429
  • [ae028e8ac3] - doc: improve assert.snapshot() docs (Colin Ihrig) #44429
  • [71c869688a] - doc: add missing imports in events sample code (Brian Evans) #44337
  • [92046e8027] - doc: apply scroll-margin-top to h2, h3 elements (metonym) #44414
  • [3e6cde5931] - doc: fix spacing issue in --build-snapshot help text (Shohei YOSHIDA) #44435
  • [8e41dbb81b] - doc: mention cherry-pick edge-case on release (RafaelGSS) #44408
  • [cef30f9afc] - doc: note on release guide to update main branch (Ruy Adorno) #44384
  • [21437f7a7f] - doc: fix release guide example consistency (Ruy Adorno) #44385
  • [ed52bd0a18] - doc: fix style of n-api.md (theanarkh) #44377
  • [65c1f4015f] - doc: add history for net.createServer() options (Luigi Pinca) #44326
  • [4a0f750a6c] - doc: add daeyeon to collaborators (Daeyeon Jeong) #44355
  • [8cc5556f76] - doc: fix typo in test runner code examples (Moshe Atlow) #44351
  • [b660b7467d] - doc,worker: document resourceLimits overrides (Keyhan Vakil) #43992
  • [2ed3b30696] - inspector: prevent integer overflow in open() (Tobias Nießen) #44367
  • [b8f08e5e7e] - lib: codify findSourceMap return value when not found (Chengzhong Wu) #44397
  • [a86ef1ba3e] - lib: use safe Promise alternatives when available (Antoine du Hamel) #43476
  • [e519ac7842] - meta: update AUTHORS (Node.js GitHub Bot) #44511
  • [c03f28b960] - meta: update AUTHORS (Node.js GitHub Bot) #44422
  • [ef08cbddac] - node-api: avoid calling virtual methods in base's dtor (Chengzhong Wu) #44424
  • [256340197c] - node-api: cleanup redundant static modifiers (Chengzhong Wu) #44301
  • [6714736706] - (SEMVER-MINOR) os: add machine method (theanarkh) #44416
  • [807b1e5533] - report: get stack trace with cross origin contexts (Chengzhong Wu) #44398
  • [b17cc877d0] - report: fix missing section javascriptHeap on OOMError (Chengzhong Wu) #44398
  • [1f23c17ae0] - (SEMVER-MINOR) report: expose report public native apis (Chengzhong Wu) #44255
  • [df259005d9] - report: add queue info for udp (theanarkh) #44345
  • [fc17b808c9] - src: rename misleading arg in ClientHelloParser (Tobias Nießen) #44500
  • [125ab7da2a] - src: improve error handling in CloneSSLCerts (Tobias Nießen) #44410
  • [aa34f7347b] - src: fix incorrect comments in crypto (Tobias Nießen) #44470
  • [18b720805f] - src: avoid casting std::trunc(... / ...) to size_t (Tobias Nießen) #44467
  • [4331bbe2af] - (SEMVER-MINOR) src: expose environment RequestInterrupt api (Chengzhong Wu) #44362
  • [c5413a1146] - src: simplify enable_if logic of ToStringHelper::BaseConvert (Feng Yu) #44306
  • [dcc1cf4f4e] - src: add error handling to uv_uptime call (Juan José Arboleda) #44386
  • [fd611cc272] - src: remove base64_select_table and base64_table (Tobias Nießen) #44425
  • [4776b4767b] - src: fix uv_err_name memory leak (theanarkh) #44421
  • [8db2e66d3a] - src: make Endianness an enum class (Tobias Nießen) #44411
  • [048e440878] - src: fix ssize_t error from nghttp2.h (Darshan Sen) #44393
  • [dc1c95ede3] - src: trace fs async api (theanarkh) #44057
  • [0f4e98ba2c] - src: restore context default IsCodeGenerationFromStringsAllowed value (Chengzhong Wu) #44324
  • [05fb650b54] - src: simplify and optimize GetOpenSSLVersion() (Tobias Nießen) #44395
  • [7f16177f96] - src: use if constexpr where appropriate (Anna Henningsen) #44291
  • [2be8acad18] - src: simplify ECDH::GetCurves() (Tobias Nießen) #44309
  • [3eb7918f8e] - src: make minor improvements to EnabledDebugList (Tobias Nießen) #44350
  • [88d9566593] - src: remove KeyObjectData::symmetric_key_len_ (Tobias Nießen) #44346
  • [768c9cb872] - src: fix multiple format string bugs (Tobias Nießen) #44314
  • [6857ee8299] - src: make minor improvements to SecureBuffer (Tobias Nießen) #44302
  • [2facf8b8e0] - stream: fix setting abort reason in ReadableStream.pipeTo() (Daeyeon Jeong) #44418
  • [65134d696b] - stream: fix ReadableStreamReader.releaseLock() (Daeyeon Jeong) #44292
  • [4c33e5d4ce] - test: avoid race in file write stream handle tests (Joyee Cheung) #44380
  • [0d77342a39] - test: style updates for assert.snapshot() (Colin Ihrig) #44429
  • [e36ed44b26] - test: deflake child process exec timeout tests (Joyee Cheung) #44390
  • [0af15c71fb] - test: make the vm timeout escape tests more lenient (Joyee Cheung) #44433
  • [0f071b800e] - test: split heap prof tests (Joyee Cheung) #44388
  • [2dd88b8425] - test: fix multiple incorrect mustNotCall() uses (Tobias Nießen) #44022
  • [4ae1f4990c] - test: split report OOM tests (Joyee Cheung) #44389
  • [3a5fdacdc2] - test: fix WPT runner result (Daeyeon Jeong) #44238
  • [e001aafee3] - test: raise sleep times in child process tests (Joyee Cheung) #44375
  • [8e2dcafc24] - test: remove duplicate test (Luigi Pinca) #44313
  • [c65d7fb1fa] - test: add OpenSSL 3.x providers test (Richard Lau) #44148
  • [11e9d6e173] - test: make tmpdir.js importable from esm (Geoffrey Booth) #44322
  • [a35c2f9ef4] - test_runner: fix duration_ms to be milliseconds (Moshe Atlow) #44450
  • [8175c65b4d] - test_runner: support programmatically running --test (Moshe Atlow) #44241
  • [1cdccbc845] - tls: remove SecureContext setFreeListLength (Tobias Nießen) #44300
  • [70399166f3] - tls: use OpenSSL constant for client random size (Tobias Nießen) #44305
  • [6fe189b62a] - tools: update lint-md-dependencies to [email protected] (Node.js GitHub Bot) #44510
  • [1e62bb14dd] - tools: fix typo in avoid-prototype-pollution lint rule (Antoine du Hamel) #44446
  • [78c6827688] - tools: don't use f-strings in test.py (Santiago Gimeno) #44407
  • [443730c419] - tools: update doc to [email protected] (Node.js GitHub Bot) #44370
  • [96df99375e] - tools: update eslint to 8.23.0 (Node.js GitHub Bot) #44419
  • [b6709544e9] - tools: refactor avoid-prototype-pollution lint rule (Antoine du Hamel) #43476
  • [8b0a4afcae] - tty: fix TypeError when stream is closed (Antoine du Hamel) #43803
  • [c4a45a93f3] - vm: avoid unnecessary property getter interceptor calls (Joyee Cheung) #44252
  • [736a04aa13] - vm: include vm context in the embedded snapshot (Joyee Cheung) #44252
  • [bce827e5d1] - vm: make ContextifyContext template context-independent (Joyee Cheung) #44252

New in Node.js 18.8.0 (Aug 25, 2022)

  • Notable changes:
  • Bootstrap: implement run-time user-land snapshots via --build-snapshot and --snapshot-blob
  • This patch introduces --build-snapshot and --snapshot-blob options for creating and using user land snapshots.
  • To generate a snapshot using snapshot.js as an entry point and write the snapshot blob to snapshot.blob:
  • Echo "globalThis.foo = 'I am from the snapshot'" > snapshot.js
  • Node --snapshot-blob snapshot.blob --build-snapshot snapshot.js
  • To restore application state from snapshot.blob, with index.js as the entry point script for the deserialized application:
  • Echo "console.log(globalThis.foo)" > index.js
  • Node --snapshot-blob snapshot.blob index.js
  • # => I am from the snapshot
  • Users can also use the v8.startupSnapshot API to specify an entry point at snapshot building time, thus avoiding the need of an additional entry script at deserialization time:
  • Echo "require('v8').startupSnapshot.setDeserializeMainFunction(() => console.log('I am from the snapshot'))" > snapshot.js
  • Node --snapshot-blob snapshot.blob --build-snapshot snapshot.js
  • Node --snapshot-blob snapshot.blob
  • # => I am from the snapshot
  • Other notable changes:
  • Crypto:
  • (SEMVER-MINOR) allow zero-length IKM in HKDF and in webcrypto PBKDF2 (Filip Skokan) #44201
  • (SEMVER-MINOR) allow zero-length secret KeyObject (Filip Skokan) #44201
  • Deps:
  • upgrade npm to 8.18.0 (npm team) #44263 - Adds a new npm query command
  • Doc:
  • add Erick Wendel to collaborators (Erick Wendel) #44088
  • add theanarkh to collaborators (theanarkh) #44131
  • add MoLow to collaborators (Moshe Atlow) #44214
  • add cola119 to collaborators (cola119) #44248
  • deprecate --trace-atomics-wait (Keyhan Vakil) #44093
  • Http:
  • (SEMVER-MINOR) make idle http parser count configurable (theanarkh) #43974
  • Net:
  • (SEMVER-MINOR) add local family (theanarkh) #43975
  • Src:
  • (SEMVER-MINOR) print source map error source on demand (Chengzhong Wu) #43875
  • Tls:
  • (SEMVER-MINOR) pass a valid socket on tlsClientError (Daeyeon Jeong) #44021
  • Commits:
  • [0e20072e32] - assert: add getCalls and reset to callTracker (Moshe Atlow) #44191
  • [126fbbab74] - assert: add assert.Snapshot (Moshe Atlow) #44095
  • [87d7845b4f] - bootstrap: fixup Error.stackTraceLimit for user-land snapshot (Joyee Cheung) #44203
  • [597a5171ee] - (SEMVER-MINOR) bootstrap: clean up warning setup during serialization (Joyee Cheung) #38905
  • [3561514ff5] - (SEMVER-MINOR) bootstrap: implement --snapshot-blob and --build-snapshot (Joyee Cheung) #38905
  • [123b2d6795] - bootstrap: turn on FunctionCodeHandling::kKeep in the snapshot builder (Joyee Cheung) #44104
  • [e7d101fbd4] - bootstrap: support more builtins in the embedded code cache (Joyee Cheung) #44018
  • [2ae2828040] - build: enable pointer authentication for branch protection on arm64 (Jeremiah Gowdy) #43200
  • [fecec4d3ba] - build: add workflow to label flaky-test platform (Rafael Gonzaga) #44042
  • [c975c4f674] - build: optimized and fixed building configuration to Android (BuShe) #44016
  • [ec1b31e6ad] - build: allow test-internet on forks if not scheduled (Rich Trott) #44073
  • [ea48c5673b] - build: skip test-internet run on forks (Rich Trott) #44054
  • [1c0d66e927] - (SEMVER-MINOR) crypto: allow zero-length IKM in HKDF and in webcrypto PBKDF2 (Filip Skokan) #44201
  • [07d90c8a71] - (SEMVER-MINOR) crypto: allow zero-length secret KeyObject (Filip Skokan) #44201
  • [ac2b10e0c7] - crypto: fix webcrypto deriveBits validations (Filip Skokan) #44173
  • [4c902be5a5] - crypto: fix webcrypto EC key namedCurve validation errors (Filip Skokan) #44172
  • [81e1ec4f6f] - crypto: fix webcrypto generateKey() AES key length validation error (Filip Skokan) #44170
  • [ad8ef3a56c] - crypto: fix webcrypto operation errors to be OperationError (Filip Skokan) #44171
  • [c270b9a0aa] - deps: update corepack to 0.13.0 (Node.js GitHub Bot) #44318
  • [bce8041d67] - deps: upgrade npm to 8.18.0 (npm team) #44263
  • [a26997263b] - deps: update corepack to 0.12.3 (Node.js GitHub Bot) #44229
  • [b1590bbca2] - deps: upgrade npm to 8.17.0 (npm team) #44205
  • [818271c1c3] - deps: update undici to 5.8.2 (Node.js GitHub Bot) #44187
  • [d09bc5402d] - deps: update undici to 5.8.1 (Node.js GitHub Bot) #44158
  • [a92d90b482] - deps: update corepack to 0.12.2 (Node.js GitHub Bot) #44159
  • [52a516a281] - deps: V8: cherry-pick 9861ce1deae2 (Milad Fa) #44115
  • [763b956f07] - deps: remove unnecessary file (Brian White) #44133
  • [194587e767] - deps: upgrade npm to 8.16.0 (npm team) #44119
  • [116dcccc79] - deps: upgrade base64 to dc6a41ce36e (Brian White) #44032
  • [b7aaf3d4ca] - deps: upgrade npm to 8.15.1 (npm team) #44013
  • [a0c57837c4] - deps: cherry-pick 00704f5a from V8 upstream (Keyhan Vakil) #43921
  • [19557ad6a4] - dgram: add dgram send queue info (theanarkh) #44149
  • [a93371205b] - doc: fix optionality of callback arg of checkPrime (Tobias Nießen) #44311
  • [d3f3bf602d] - doc: fix typo (Hana) #44262
  • [7a567875b0] - doc: add TypeScript execution requirements (Michael Dawson) #44030
  • [e8916fa758] - doc: add cola119 to collaborators (cola119) #44248
  • [8c1fe86026] - doc: fix added version for readable.closed/destroyed (Matthew Peveler) #44033
  • [f39a0514d3] - doc: improved building doc for Android (BuShe) #44166
  • [4d26cb9bb2] - doc: add MoLow to collaborators (Moshe Atlow) #44214
  • [6bff14b6f1] - doc: update tags in adding-new-napi-api.md (Chengzhong Wu) #44190
  • [721639a1d4] - doc: fix typo in diagnostics_channel (Evan Lucas) #44199
  • [0fffc24caa] - doc: add Retry CI in collaborator guide (Livia Medeiros) #44130
  • [fb11643e31] - doc: add performance note to --enable-source-maps docs (Saurabh Daware) #43817
  • [cb7a9e78fd] - doc: remove unused code in call tracker example (Colin Ihrig) #44127
  • [8c26daff7c] - doc: add theanarkh to collaborators (theanarkh) #44131
  • [46f8fb8e53] - doc: clarify tls.tlsSocket.getCipher().version (Adam Majer) #44086
  • [02236032f0] - doc: update repository list in onboarding doc (Rich Trott) #44089
  • [58f2739e32] - doc: add Erick Wendel to collaborators (Erick Wendel) #44088
  • [fe83d514b2] - doc: update collaborator email (Ruy Adorno) #44044
  • [76011dd7f7] - doc: copyedit test.md (Antoine du Hamel) #44061
  • [1d6029aa3d] - doc: add kvakil to triagers (Keyhan Vakil) #43996
  • [7f7a0eb2f5] - doc: clarify part of onboarding guide regarding adding to teams (Darshan Sen) #44024
  • [2ae5d853a7] - doc: fix code examples in crypto.md (Antoine du Hamel) #44053
  • [1b9537b6a5] - doc: claim ABI version for Electron 21 (Keeley Hammond) #44034
  • [d23dfa4dcb] - doc: remove old reference from crypto/README.md (Tobias Nießen) #44012
  • [222ecd6e14] - doc: add missing env vars to man page (cola119) #43492
  • [374b77619b] - doc: list supported MODP groups explicitly (Tobias Nießen) #43986
  • [72a9ecf94f] - doc: fix typo in packages.md (Dominic Saadi) #44005
  • [1b328305f0] - doc: fix typos in test.md (Antoine du Hamel) #43997
  • [7af55dbc40] - doc: add missing test runner option (Moshe Atlow) #43989
  • [e8441a2864] - doc,report: document special filenames (Chengzhong Wu) #44257
  • [da7bc5acdf] - doc,worker: deprecate --trace-atomics-wait (Keyhan Vakil) #44093
  • [37a9d7a754] - errors: refactor to use optional chaining (SindreXie) #44184
  • [a6dccc969f] - esm: do not bind loader hook functions (Antoine du Hamel) #44122
  • [5e9c197d85] - esm: fix loader hooks accepting too many arguments (Jacob Smith) #44109
  • [e072c3aa70] - esm: move package config helpers (Geoffrey Booth) #43967
  • [d57178cdfc] - events: use bitset to save memory (Basit Chonka) #43700
  • [4ec3f671af] - fs: add encoding parameter to benchmarks (Yagiz Nizipli) #44278
  • [851264ca90] - http: add max for http keepalive (theanarkh) #44217
  • [340ca4d8fe] - http: fix error message when specifying headerTimeout for createServer (Nick Sia) #44163
  • [c340344641] - http: trace http request / response (theanarkh) #44102
  • [a2cd8b316c] - (SEMVER-MINOR) http: make idle http parser count configurable (theanarkh) #43974
  • [5dc39a10bd] - http: reuse socket only when it is drained (ywave620) #43902
  • [8c2d19b2d6] - http: do not leak error listeners (Paolo Insogna) #43587
  • [1a44fbc19e] - lib: add diagnostics channel and perf hooks detail (Danielle Adams) #43984
  • [8cfc8b0e7b] - lib: refactor to avoid prototype pollution (Antoine du Hamel) #43474
  • [04007f2f51] - lib: fix diagnostics channel (theanarkh) #44154
  • [c02bbdd921] - lib: pass env variables to child process on z/OS (alexcfyung) #42255
  • [617ea4af1c] - lib: add missing env vars to --help (cola119) #43492
  • [94912bb09c] - lib: add Promise methods to avoid-prototype-pollution lint rule (Antoine du Hamel) #43849
  • [8977a87504] - meta: update AUTHORS (Node.js GitHub Bot) #44321
  • [f7be92fe86] - meta: update web streams in label-pr-config (Daeyeon Jeong) #44235
  • [2c72ded880] - meta: update AUTHORS (Node.js GitHub Bot) #44231
  • [c59dc7a4c1] - meta: update AUTHORS (Node.js GitHub Bot) #44161
  • [e0efd9af50] - meta: add codeowner for src/node_snapshot* (Chengzhong Wu) #44113
  • [a996f53c78] - meta: update AUTHORS (Node.js GitHub Bot) #44065
  • [697dbfb174] - meta: shorten PowerShell snippet for bug-report template (NicoNekoru) #44011
  • [05802c2877] - module: protect against prototype mutation (Antoine du Hamel) #44007
  • [1b3fcf765f] - (SEMVER-MINOR) net: create diagnostics channels lazily (Joyee Cheung) #38905
  • [aa7c053926] - net: remove unused callback (theanarkh) #44204
  • [b6b632c09c] - (SEMVER-MINOR) net: add local family (theanarkh) #43975
  • [c3d87564d4] - net, dns: socket should handle its output as input (Adam Majer) #44083
  • [3ba75b341b] - (SEMVER-MINOR) net,tls: pass a valid socket on tlsClientError (Daeyeon Jeong) #44021
  • [0e38fba552] - perf_hooks: add resourcetiming buffer limit (Chengzhong Wu) #44220
  • [b9fd240f63] - perf_hooks: fix gc elapsed time (theanarkh) #44058
  • [8cf64998e2] - report: print javascript stack on fatal error (Chengzhong Wu) #44242
  • [c842ab36b6] - report: skip report if uncaught exception is handled (Chengzhong Wu) #44208
  • [ab73cc8706] - src: disambiguate terms used to refer to builtins and addons (Joyee Cheung) #44135
  • [e9d19ac64c] - src: use imported namespaces in node_contextify.cc (Juan José) #44299
  • [3dadc95cd2] - src: refactor to avoid using a moved object (Tobias Nießen) #44269
  • [3765c6335b] - src: extract common context embedder tag checks (Chengzhong Wu) #44258
  • [d2dce59729] - src: avoid copying BaseObjectPtrs in loop (Tobias Nießen) #44270
  • [9614907104] - src: remove usage on ScriptCompiler::CompileFunctionInContext (Chengzhong Wu) #44198
  • [4e1ffd932e] - src: fix --heapsnapshot-near-heap-limit error hint (Chengzhong Wu) #44216
  • [960a20928f] - src: prevent copying ArrayBufferViewContents (Keyhan Vakil) #44091
  • [4755ad5495] - src: remove usages of GetBackingStore in crypto (Keyhan Vakil) #44079
  • [a2022e5aff] - src: remove unowned usages of GetBackingStore (Keyhan Vakil) #44080
  • [8e1b7e2b8f] - src: remove usages of GetBackingStore in node-api (Keyhan Vakil) #44075
  • [cddf3eda28] - src: remove usages of GetBackingStore in modules (Keyhan Vakil) #44076
  • [a54e4d4170] - src: remove usages of GetBackingStore in WASI (Keyhan Vakil) #44077
  • [38cdb1f9b6] - src: remove usages of GetBackingStore in startup (Keyhan Vakil) #44078
  • [c4783e37d7] - src: nest namespace report in namespace node (Chengzhong Wu) #44069
  • [04bcdf63a0] - src: use a typed array internally for process._exiting (Darshan Sen) #43883
  • [b90b8abdd5] - src: fix bug in GetErrorSource() (Tobias Nießen) #44019
  • [728e18e025] - src: fix to use replacement character (Kohei Ueno) #43999
  • [cc6e0fc8ff] - src: improve SPKAC::ExportChallenge() (Tobias Nießen) #44002
  • [9763e2fba9] - src: fix typo in src/README.md (Anna Henningsen) #44009
  • [460397709b] - src: remove unnecessary cast in crypto_sig.cc (Tobias Nießen) #44001
  • [68ee8e9089] - src: split property helpers from node::Environment (Chengzhong Wu) #44056
  • [9990dc7d18] - src,buffer: remove unused chars_written parameter (Keyhan Vakil) #44092
  • [ecf82186e0] - src,fs: refactor duplicated code in fs.readdir (Daeyeon Jeong) #43204
  • [ee6412a992] - src,lib: print prinstine source when source map source not found (Chengzhong Wu) #44052
  • [4249276783] - (SEMVER-MINOR) src,lib: print source map error source on demand (Chengzhong Wu) #43875
  • [1dabdbf05c] - src,test: fix typos (SADIK KUZU) #44110
  • [a3ac445198] - stream: fix isDetachedBuffer validations (Daeyeon Jeong) #44114
  • [c079abe017] - stream: improve views validation on BYOBRequest (Daeyeon Jeong) #44155
  • [2f904bc8bf] - stream: update TextEncoderStream to align the latest spec (Kohei Ueno) #44101
  • [40b817cfb9] - (SEMVER-MINOR) test: test snapshotting TypeScript compiler (Joyee Cheung) #38905
  • [d4189ab609] - (SEMVER-MINOR) test: add UMD module test with marked (Joyee Cheung) #38905
  • [514e5162d2] - test: deflake test-diagnostics-channel-net (Keyhan Vakil) #44144
  • [a2707d0f48] - test: add coverage for invalid RSA-PSS digests (Tobias Nießen) #44271
  • [7b6126a59a] - test: update Web Streams WPT (Daeyeon Jeong) #44234
  • [a02492f96c] - test: move "errors" test to "parallel" (Michaël Zasso) #44233
  • [b4224dd192] - test: reduce http-server-request-timeouts-mixed flakiness (Nick Sia) #44169
  • [f5e2f6c362] - test: remove cjs loader from stack traces (Geoffrey Booth) #44197
  • [e37314497a] - test: add filesystem check to test-fs-stat-date.mjs (Livia Medeiros) #44174
  • [9755b1f979] - test: mark connection leak test flaky on IBM i (Richard Lau) #44215
  • [beaf5f5776] - test: use mustSucceed instead of mustCall with assert.ifError (MURAKAMI Masahiko) #44196
  • [11f74e72a7] - test: update WPT runner (Filip Skokan) #43455
  • [b2a15b6275] - test: update wpt url status (Kohei Ueno) #44175
  • [6b84451d70] - test: update wasm/jsapi web platform tests (Yagiz Nizipli) #44100
  • [537d52fa0f] - test: update hr-time web platform tests (Yagiz Nizipli) #44100
  • [79445cb215] - test: update console web platform tests (Yagiz Nizipli) #44100
  • [70267a0eeb] - test: move tests with many workers to sequential (Keyhan Vakil) #44139
  • [86a7fb0c8a] - test: deflake gc-http-client tests by restricting number of requests (Nick Sia) #44146
  • [e17117dfda] - test: move test-vm-break-on-sigint to sequential (Keyhan Vakil) #44140
  • [e5113fab05] - test: remove test-http-client-response-timeout flaky designation (Luigi Pinca) #44145
  • [f1b5f933d7] - test: s390x z15 accelerated zlib fixes (Adam Majer) #44117
  • [86bbd5e61a] - test: tune down parallelism for some flaky tests (Keyhan Vakil) #44090
  • [40e2ca7f66] - test: fix internet/test-inspector-help-page (Daeyeon Jeong) #44025
  • [b19564b9d2] - test: refactor ESM tests to improve performance (Jacob Smith) #43784
  • [d964b308ae] - test: remove test-gc-http-client-timeout from flaky list (Feng Yu) #43971
  • [2cab7bb791] - test: reduce loop times for preventing test from timeout (theanarkh) #43981
  • [9244d6d416] - test: fix test-cluster-concurrent-disconnect (Daeyeon Jeong) #43961
  • [3c8037a9fa] - test: change misleading variable name (Tobias Nießen) #43990
  • [82164344e2] - test,crypto: update WebCryptoAPI WPT (Filip Skokan) #44223
  • [c0b160c842] - test_runner: fix test runner hooks failure stack (Moshe Atlow) #44284
  • [8ed39397d5] - test_runner: refactor to use more primordials (Antoine du Hamel) #44062
  • [d8749c3b87] - test_runner: verbous error when entire test tree is canceled (Moshe Atlow) #44060
  • [0d007471fa] - test_runner: empty pending tests queue post running (Moshe Atlow) #44059
  • [c3fa82f007] - test_runner: add before/after/each hooks (Moshe Atlow) #43730
  • [50c854bbfe] - test_runner: fix top level describe queuing (Moshe Atlow) #43998
  • [04fdc3e1fa] - test_runner: graceful termination on --test only (Moshe Atlow) #43977
  • [51a0310398] - test_runner: validate concurrency option (Antoine du Hamel) #43976
  • [ecf7b0720a] - tls: use logical OR operator (Mohammed Keyvanzadeh) #44236
  • [f7c1b838ba] - tools: update lint-md-dependencies to [email protected] (Node.js GitHub Bot) #44320
  • [36b39db74d] - tools: update ESLint to 8.22.0 (Luigi Pinca) #44243
  • [87f75a27fb] - tools: update lint-md-dependencies to [email protected] (Node.js GitHub Bot) #44244
  • [a3cc8ce959] - tools: update lint-md-dependencies to [email protected] (Node.js GitHub Bot) #44230
  • [873941a43e] - tools: update eslint to 8.21.0 (Node.js GitHub Bot) #44162
  • [6be7e6d136] - tools: update lint-md-dependencies to @rollup/[email protected] (Node.js GitHub Bot) #44160
  • [b252f389d7] - tools: update undici CPE in vuln checking script (Facundo Tuesca) #44128
  • [3eacf25789] - tools: update lint-md-dependencies to [email protected] (Node.js GitHub Bot) #44064
  • [1175d9036a] - tools: add verbose flag to find-inactive-collaborators (Rich Trott) #43964
  • [2cf3ce83d8] - trace_events: add example (theanarkh) #43253
  • [2efce0fe5b] - typings: add JSDoc for internal/validators (Yagiz Nizipli) #44181

New in Node.js 18.7.0 (Jul 27, 2022)

  • Notable changes:
  • Doc:
  • add F3n67u to collaborators (Feng Yu) #43953
  • deprecate coercion to integer in process.exit (Daeyeon Jeong) #43738
  • (SEMVER-MINOR) deprecate diagnostics_channel object subscribe method (Stephen Belanger) #42714
  • Events:
  • (SEMVER-MINOR) expose CustomEvent on global with CLI flag (Daeyeon Jeong) #43885
  • (SEMVER-MINOR) add CustomEvent (Daeyeon Jeong) #43514
  • Http:
  • (SEMVER-MINOR) add drop request event for http server (theanarkh) #43806
  • Lib:
  • (SEMVER-MINOR) improved diagnostics_channel subscribe/unsubscribe (Stephen Belanger) #42714
  • Util:
  • (SEMVER-MINOR) add tokens to parseArgs (John Gee) #43459
  • Commits:
  • [0aa255ab72] - bootstrap: handle snapshot errors gracefully (Joyee Cheung) #43531
  • [0783ddf57e] - buffer: do not leak memory if buffer is too big (Keyhan Vakil) #43938
  • [12657accdd] - build: add .gitattributes for npm and other shims (Hrishikesh Kadam) #43879
  • [c2db4f4581] - build: make GitPod less noisy (Rich Trott) #43829
  • [364deeadcd] - build: add GitHub token permissions for workflows (Varun Sharma) #43743
  • [8b83b4d5be] - child_process: do not need to count length when maxBuffer is Infinity (theanarkh) #43822
  • [c1893b7a7c] - child_process: avoid repeated calls to normalizeSpawnArguments (木杉) #43345
  • [7b276b89b9] - cluster: send connection to other server when worker drop it (theanarkh) #43747
  • [e8c66f92a5] - crypto: remove unneeded guard (Rich Trott) #43856
  • [c95132e9ea] - deps: cherry-pick libuv/libuv@3a7b955 (Ben Noordhuis) #43950
  • [cc8d5426d2] - deps: cherry-pick libuv/libuv@abb109f (Ben Noordhuis) #43950
  • [7762e463d6] - deps: update corepack to 0.12.1 (Node.js GitHub Bot) #43965
  • [1256c4dad5] - deps: update hast-util-raw (Moshe Atlow) #43927
  • [aac97c2d2a] - deps: update undici to 5.8.0 (Node.js GitHub Bot) #43886
  • [cdff61917d] - deps: clean archs files for OpenSSL (RafaelGSS) #43735
  • [fc936a84e4] - deps: remove not used architectures (RafaelGSS) #43735
  • [361a643d8b] - deps: V8: backport f3cad8cec656 (Joyee Cheung) #43531
  • [2e1732ebd0] - deps: V8: backport 22698d267667 (Chengzhong Wu) #43751
  • [979f469d3a] - deps: upgrade npm to 8.15.0 (npm team) #43917
  • [4096d81988] - deps: upgrade npm to 8.14.0 (npm team) #43826
  • [2ec8092e2c] - deps,src: use SIMD for normal base64 encoding (Brian White) #39775
  • [67b4edde37] - dns: fix getServers return undefined (jiahao.si) #43922
  • [7c75539a88] - dns: fix cares memory leak (theanarkh) #43912
  • [1f80b88da5] - doc: update email and mailmap for BethGriggs (Beth Griggs) #43985
  • [8a2a6e16eb] - doc: add 15.x - 18.x to Other Versions section (shhh7612) #43940
  • [51cb0d42ca] - doc: inspector.close undefined in worker threads (Keyhan Vakil) #43867
  • [c789c0f5f7] - doc: improve documentation for safe Promise statics alternatives (Antoine du Hamel) #43759
  • [cb9b0e0011] - doc: recommend git-node-v8 (Keyhan Vakil) #43934
  • [d7e9bd1830] - doc: clarify subprocess.stdout/in/err property (Kohei Ueno) #43910
  • [808793ebb5] - doc: fix typo in src/crypto/README.md (Jianru Lin) #43968
  • [bbc455c4f9] - doc: remind backporter about v8_embedder_string (Keyhan Vakil) #43924
  • [a86b66c8b4] - doc: fix typo in http.md (Airing) #43933
  • [a96af37233] - doc: add F3n67u to collaborators (Feng Yu) #43953
  • [aa7d4e59f7] - doc: improve test runner timeout docs (Tobias Nießen) #43836
  • [80c2fa8212] - doc: mention Win 32-bit openssl build issue (RafaelGSS) #43853
  • [8b8c55df7e] - doc: add security release specifics to releases.md (Beth Griggs) #43835
  • [42693aaf9f] - doc: add history info for global.performance (Antoine du Hamel) #43841
  • [140d6af572] - doc: add platform-windows-arm to who to CC (Michael Dawson) #43808
  • [976093efe3] - doc: document ES2022's Error "cause" property (James Ide) #43830
  • [ec7e45e4a2] - doc: include make clean to openssl arch (RafaelGSS) #43735
  • [d64dfd53c9] - doc: add link to diagnostic tools (Rafael Gonzaga) #43736
  • [2910136920] - doc: update links to MDN page about dynamic imports (Jannis R) #43847
  • [d88a9fae79] - doc: deprecate coercion to integer in process.exit (Daeyeon Jeong) #43738
  • [fc843e103d] - doc: add MoLow to triagers (Moshe Atlow) #43799
  • [8c8c97da61] - (SEMVER-MINOR) doc: deprecate diagnostics_channel object subscribe method (Stephen Belanger) #42714
  • [9b53a694b5] - doc: revert anachronistic 'node:' module require()s in API history notes (DeeDeeG) #43768
  • [2815bd3002] - doc: clarify release process for new releasers (Rafael Gonzaga) #43739
  • [50b3750e67] - doc: fix typo in ngtcp2 readme (Dan Castillo) #43767
  • [6bcd40dd85] - domain: fix vm promise tracking while keeping isolation (Stephen Belanger) #43556
  • [e89e0b470b] - esm: remove superfluous argument (Rich Trott) #43884
  • [0d2921f396] - esm: fix erroneous re-initialization of ESMLoader (Jacob Smith) #43763
  • [9b5b8d78c3] - esm: throw on any non-2xx response (LiviaMedeiros) #43742
  • [dfc4832ef1] - (SEMVER-MINOR) events: expose CustomEvent on global with CLI flag (Daeyeon Jeong) #43885
  • [e4473952ae] - (SEMVER-MINOR) events: add CustomEvent (Daeyeon Jeong) #43514
  • [100f6deb09] - fs: use signed types for stat data (LiviaMedeiros) #43714
  • [25ec71db63] - http: fix http server connection list when close (theanarkh) #43949
  • [ca658c8afe] - (SEMVER-MINOR) http: add drop request event for http server (theanarkh) #43806
  • [9c699bd8a8] - http: wait for pending responses in closeIdleConnections (Paolo Insogna) #43890
  • [781d5e54e3] - inspector: set sampling interval before start (Shelley Vohr) #43779
  • [0b5dbb2a56] - lib: refactor PriorityQueue to use private field (Finn Yu) #43889
  • [324473ca32] - (SEMVER-MINOR) lib: improved diagnostics_channel subscribe/unsubscribe (Stephen Belanger) #42714
  • [5aa3b213ac] - meta: update AUTHORS (Node.js GitHub Bot) #43966
  • [e707552357] - meta: update node-api in label-pr-config (Daeyeon Jeong) #43794
  • [8a8de94034] - meta: update AUTHORS (Node.js GitHub Bot) #43872
  • [7d49fc766c] - meta: use platform dropdown on flaky template (Rafael Gonzaga) #43855
  • [e4aa50fc3f] - meta: enable blank issues (Matteo Collina) #43775
  • [ceb7c150ec] - meta: move one or more collaborators to emeritus (Node.js GitHub Bot) #43770
  • [29bcd47738] - net: fix socket._getpeername (Daeyeon Jeong) #43010
  • [380659daf1] - process: use defineProperty instead of assignment (Mark S. Miller) #43907
  • [aba9c8ebea] - repl: fix overzealous top-level await (Tobias Nießen) #43827
  • [1deb6b73b7] - repl: use SafePromiseAll and SafePromiseRace (Antoine du Hamel) #43758
  • [bf8f2e23ff] - src: refactor DH groups to delete crypto_groups.h (Tobias Nießen) #43896
  • [9435fbf8cd] - src: remove dead code in base64_encode (Tobias Nießen) #43979
  • [2c47e58ea0] - src: fix regression that a source marker is lost (cola119) #43086
  • [d084150320] - src: per-isolate eternal template properties (Chengzhong Wu) #43802
  • [9f9d00ccbb] - src: merge NativeModuleEnv into NativeModuleLoader (Joyee Cheung) #43824
  • [bb512904e9] - src: use named struct instead of typedef (Tobias Nießen) #43881
  • [bb5511e8cc] - src: use named enum instead of typedef (Tobias Nießen) #43880
  • [5db0c8f667] - src: pass only Isolate* and env_vars to EnabledDebugList::Parse() (Darshan Sen) #43668
  • [249365524e] - src: fix node watchdog race condition (theanarkh) #43780
  • [17cb27237d] - src: deduplicate SetALPN implementations (Tobias Nießen) #43756
  • [b4c75a96be] - src: fix napi_check_object_type_tag() (Daeyeon Jeong) #43788
  • [8432d6596f] - src: slim down env-inl.h (Ben Noordhuis) #43745
  • [2266a4b6d6] - stream: improve respondWithNewView() (Daeyeon Jeong) #43866
  • [bf3991b406] - stream: fix 0 transform hwm backpressure (Robert Nagy) #43685
  • [a057510037] - stream: initial approach to include strategy options on Readable.toWeb() (txxnano) #43515
  • [198cf59d2c] - test: update WPT encoding tests (Kohei Ueno) #43958
  • [f0ed1aed8d] - test: remove test-whatwg-events-add-event-listener-options-once.js (Feng Yu) #43877
  • [88505556fe] - test: work scheduled in process.nextTick can keep the event loop alive (Andreu Botella) #43787
  • [81a21946eb] - test: simplify test-tls-set-secure-context (Tobias Nießen) #43878
  • [61cd11a8a7] - test: use common.mustNotMutateObjectDeep() in fs tests (LiviaMedeiros) #43819
  • [b1081dbe12] - test: fix test http upload timeout (theanarkh) #43935
  • [efd5e0e925] - test: simplify ReplStream.wait() (Tobias Nießen) #43857
  • [ef21ad2996] - test: merge test-crypto-dh-hash with modp18 test (Tobias Nießen) #43891
  • [e502c50a90] - test: refactor test/es-module/test-esm-resolve-type (Antoine du Hamel) #43178
  • [c782c3dc69] - test: ensure NODE_EXTRA_CA_CERTS not set before tests (KrayzeeKev) #43858
  • [bb6787cb57] - test: add check to test-fs-readfile-tostring-fail (Richard Lau) #43850
  • [7571704186] - test: complete TODO in test/wpt/test-url.js (Kohei Ueno) #43797
  • [6f1d2dfb9d] - test: add test on worker process.exit in async modules (Chengzhong Wu) #43751
  • [776cc3abbd] - test: use common.mustNotMutateObjectDeep() in immutability tests (LiviaMedeiros) #43196
  • [42f2deb3a0] - test: add common.mustNotMutateObjectDeep() (LiviaMedeiros) #43196
  • [f3fc51c508] - test: fix coverity warning in test (Michael Dawson) #43631
  • [a9ecba2fa8] - test: mark test-http-client-response-timeout flaky (Tobias Nießen) #43792
  • [cd0d9ddb7c] - test_runner: add support for boolean values for concurrency option (Lenvin Gonsalves) #43887
  • [f98020138a] - test_runner: validate timeout option (Antoine du Hamel) #43843
  • [58d15b3687] - test_runner: pass signal on timeout (Moshe Atlow) #43911
  • [8b0248506f] - test_runner: do not report an error when tests are passing (Antoine du Hamel) #43919
  • [aa8053e1fa] - test_runner: recieve and pass AbortSignal (Moshe Atlow) #43554
  • [f13e4c1be9] - test_runner: fix it concurrency (Moshe Atlow) #43757
  • [e404a3ef6d] - test_runner: support timeout for tests (Moshe Atlow) #43505
  • [f28198cc05] - test_runner: catch errors thrown within describe (Moshe Atlow) #43729
  • [bfe0ac6cd0] - tools: add more options to track flaky tests (Antoine du Hamel) #43954
  • [17a4e5e775] - tools: add verbose flag to inactive TSC finder (Rich Trott) #43913
  • [373304b0c7] - tools: add support for using API key to vuln checking script (Facundo Tuesca) #43909
  • [ed45088c14] - tools: support versioned node shared libs on z/OS (alexcfyung) #42256
  • [c9ecd6d21f] - tools: update doc to [email protected] (Node.js GitHub Bot) #43870
  • [c92135aa0f] - tools: update lint-md-dependencies to [email protected] (Node.js GitHub Bot) #43871
  • [e12bf40fd1] - tools: update eslint to 8.20.0 (Node.js GitHub Bot) #43873
  • [09fe9b30a9] - tools: add script for vulnerability checking (Facundo Tuesca) #43362
  • [19e8876877] - trace_events: trace net connect event (theanarkh) #43903
  • [1af7f24143] - util: remove unicode support todo for perf implications (Rhys) #43762
  • [acfc33ca8c] - (SEMVER-MINOR) util: add tokens to parseArgs (John Gee) #43459
  • [f32aec8a6d] - util: refactor to use validateObject (Kohei Ueno) #43769
  • [d7cfd0c5ba] - v8: serialize BigInt64Array and BigUint64Array (Ben Noordhuis) #43571

New in Node.js 18.6.0 (Jul 14, 2022)

  • Notable Changes:
  • Experimental ESM Loader Hooks API
  • Node.js ESM Loader hooks now support multiple custom loaders, and composition is achieved via "chaining": foo-loader calls bar-loader calls qux-loader (a custom loader must now signal a short circuit when intentionally not calling the next)See the ESM docs for details.
  • Real-world use-cases are laid out for end-users with working examples in the article Custom ESM loaders: Who, what, when, where, why, how.

New in Node.js 16.16.0 LTS (Jul 8, 2022)

  • Notable changes:
  • deps:
  • upgrade openssl sources to OpenSSL_1_1_1q (RafaelGSS) #43692
  • src:
  • add OpenSSL config appname (Daniel Bevenius) #43124
  • Commits:
  • [2303fd3fe5] - deps: update archs files for OpenSSL-1.1.1q (RafaelGSS) #43692
  • [b219a63c28] - deps: upgrade openssl sources to OpenSSL_1_1_1q (RafaelGSS) #43692
  • [c6553a4ef5] - deps: update archs files for OpenSSL-1.1.1p+quic (RafaelGSS) #43535
  • [e9084a3e90] - deps: upgrade openssl sources to OpenSSL_1_1_1p+quic (RafaelGSS) #43535
  • [1da22eb482] - http: stricter Transfer-Encoding and header separator parsing (Paolo Insogna) nodejs-private/node-private#315
  • [754c9bfde0] - src: fix IPv4 validation in inspector_socket (Tobias Nießen) nodejs-private/node-private#320
  • [447cf680b0] - (SEMVER-MAJOR) src,deps,build,test: add OpenSSL config appname (Daniel Bevenius) #43124

New in Node.js 18.4.0 (Jun 16, 2022)

  • Notable Changes:
  • crypto:
  • remove Node.js-specific webcrypto extensions (Filip Skokan) #43310
  • add CFRG curves to Web Crypto API (Filip Skokan) #42507
  • dns:
  • accept 'IPv4' and 'IPv6' for family (Antoine du Hamel) #43054
  • report:
  • add more heap infos in process report (theanarkh) #43116
  • Commits:
  • [702bfa0b7c] - async_hooks: use kEmptyObject (LiviaMedeiros) #43159
  • [f7c4015fd8] - bootstrap: consolidate global properties definition (Chengzhong Wu) #43357
  • [8d892f5259] - build: add nonpm and nocorepack to vcbuild.bat (Darshan Sen) #43219
  • [4109ddc005] - child_process: use kEmptyObject (LiviaMedeiros) #43159
  • [7b5cb14f0c] - cluster: use kEmptyObject (LiviaMedeiros) #43159
  • [9f1de2c005] - crypto: fix webcrypto import of cfrg raw public keys (Filip Skokan) #43404
  • [7f02e22998] - crypto: test webcrypto ec raw public key import (Filip Skokan) #43405
  • [0a075cb548] - crypto: fix webcrypto JWK EC and OKP import crv check (Filip Skokan) #43346
  • [df0903c8e8] - crypto: use kEmptyObject (LiviaMedeiros) #43159
  • [6d0053345e] - (SEMVER-MINOR) crypto: remove Node.js-specific webcrypto extensions (Filip Skokan) #43310
  • [28c034d6b5] - (SEMVER-MINOR) crypto: add CFRG curves to Web Crypto API (Filip Skokan) #42507
  • [fe7fd85109] - deps: update Corepack to 0.11.2 (Maël Nison) #43402
  • [517f17b214] - deps: update undici to 5.5.1 (Node.js GitHub Bot) #43412
  • [f4c830fbe4] - deps: upgrade npm to 8.12.1 (npm CLI robot) #43301
  • [0bb84b09a5] - (SEMVER-MINOR) dns: accept 'IPv4' and 'IPv6' for family (Antoine du Hamel) #43054
  • [f91babe494] - doc: packages documentation updates for 12 EOL (Guy Bedford) #43375
  • [066f963ec1] - doc: add initial doc on how to update cjs-module-lexer (Michael Dawson) #43255
  • [36e5684ae0] - doc: clarify use of deps/icu-small (Michael Dawson) #43287
  • [b9634e7ef3] - doc: remove llnode from diag tierlist (Tony Gorez) #43289
  • [4caeb10e7b] - doc: remove ETW from diag tierlist (Tony Gorez) #43295
  • [41955e5ce5] - doc: use serial comma in report docs (Tobias Nießen) #43394
  • [e30d4c1cb0] - doc: add fspromises mkdir example (Tierney Cyren) #40843
  • [adec5fa929] - doc: add F3n67u to triagers (Feng Yu) #43350
  • [cc3505b192] - doc: fix typo in globals.md (Daeyeon Jeong) #43365
  • [052c8eaf6a] - doc: use serial comma in webstreams docs (Tobias Nießen) #43353
  • [b824a0b7d0] - doc: fix specifier example in esm.md (hiroki osame) #43351
  • [d558b3c028] - doc: add undici to glossary (F3n67u) #43327
  • [f9ad98f5cb] - doc: change glossary link in pull request guide to node's glossary doc (Feng Yu) #43318
  • [02944a6783] - doc: fix typo in util.parseArgs usage example (Michael Ficarra) #43332
  • [f2bc6a3f71] - doc: improve description of TZ (Tobias Nießen) #43334
  • [9335ea6c35] - doc: use serial comma in net docs (Tobias Nießen) #43335
  • [05f38c6c3e] - doc: make clear the result of comparison between Symbol.for (Kohei Ueno) #43309
  • [c9aed9de9f] - doc: add missing require to stream api doc (Feng Yu) #43237
  • [f3188c1c9c] - doc: add CIGTM to glossary.md (Feng Yu) #43316
  • [c572d2d115] - doc: use serial comma in pull request doc (Feng Yu) #43319
  • [8a4e1fa002] - doc: use serial comma in ESM docs (Tobias Nießen) #43322
  • [fff0560a66] - doc: promote cdt to tier 3 (Tony Gorez) #43290
  • [7d0f6da97f] - doc: fix chromium document link in pull-requests.md (rikapo) #43265
  • [4674b0d2a5] - doc: fix 404 link of BUILDING.md (Feng Yu) #43234
  • [ee392c5c0b] - doc: update CHANGELOG_V18.md (Filip Skokan) #43298
  • [5a3a2a197f] - doc: add src/crypto to CC list for nodejs/crypto (Tobias Nießen) #43286
  • [69ce50396c] - doc: use serial comma in console docs (Tobias Nießen) #43257
  • [0c5092c51c] - events: fix adding abort listener in events.once (Daeyeon Jeong) #43373
  • [fda2105481] - events: use kEmptyObject (LiviaMedeiros) #43159
  • [63bf49b143] - fs: use kEmptyObject (LiviaMedeiros) #43159
  • [9b764531b9] - fs: export constants from fs/promises (Feng Yu) #43177
  • [a4409f85f8] - http: use kEmptyObject (LiviaMedeiros) #43159
  • [2ffd54105a] - http2: use kEmptyObject (LiviaMedeiros) #43159
  • [b468b8fe51] - https: use kEmptyObject (LiviaMedeiros) #43159
  • [d2a98dc6cf] - inspector: add missing initialization (Michael Dawson) #43254
  • [3b2f7eed39] - lib: use kEmptyObject in various places (LiviaMedeiros) #43159
  • [4a9511d971] - lib: give names to promisified methods (LiviaMedeiros) #43218
  • [b8644606eb] - lib: use null-prototype objects for property descriptors (Antoine du Hamel) #43270
  • [64edd6cbc3] - meta: move one or more collaborators to emeritus (Node.js GitHub Bot) #43399
  • [b05cea57ba] - meta: update AUTHORS (Node.js GitHub Bot) #43387
  • [a8ecec57e3] - meta: move one or more collaborators to emeritus (#43183) (Node.js GitHub Bot) #43183
  • [60dc36244a] - meta: update AUTHORS (Node.js GitHub Bot) #43312
  • [9803b82ac7] - net,dns: move hasObserver out of perf function (theanarkh) #43217
  • [112518fb1d] - perf_hooks: fix function wrapped by timerify to work correctly (Kohei Ueno) #43330
  • [a3310d13bf] - perf_hooks: use kEmptyObject (LiviaMedeiros) #43159
  • [7e8a00a26d] - readline: fix question stack overflow (Eugene Chapko) #43320
  • [5e98cacf77] - readline: use kEmptyObject (LiviaMedeiros) #43159
  • [66d956ca49] - repl: make autocomplete case-insensitive (Sergey Petushkov) #41632
  • [201f3d7f56] - (SEMVER-MINOR) report: add more heap infos in process report (theanarkh) #43116
  • [a0568409b6] - src: fix json utils escapes for U+000B (Chengzhong Wu) #43206
  • [931ecfa033] - src: fix memory leaks and refactor ByteSource (Tobias Nießen) #43202
  • [5e65c1f3da] - src: convey potential exceptions during StreamPipe construction (Darshan Sen) #43240
  • [b200a5ff67] - stream: use kEmptyObject (LiviaMedeiros) #43159
  • [1cc1a57cdb] - test: remove unused argument in test-util-inspect.js (Colin Ihrig) #43395
  • [42c2115a82] - test: mark test_buffer/test_finalizer flaky (Michael Dawson) #43414
  • [71802c32d0] - test: fix address in use error (Caleb Everett) #43199
  • [e1b8c85a7a] - test: add test for short-option followed by its value (Kohei Ueno) #43358
  • [f8d26c6011] - test: fix common.mustNotCall error message (Antoine du Hamel) #42917
  • [18fffe6108] - test: convert then to async/await (Meek Simbule) #43292
  • [acd96d80eb] - test: add BigInts to common.getArrayBufferViews() (LiviaMedeiros) #43235
  • [e576a7fa50] - test_runner: use kEmptyObject (LiviaMedeiros) #43159
  • [fecad7a3a5] - timers: use kEmptyObject (LiviaMedeiros) #43159
  • [e31baca76a] - tls: use kEmptyObject (LiviaMedeiros) #43159
  • [7f8f61a749] - tls: fix performance regression in convertALPNProtocols() (LiviaMedeiros) #43250
  • [ac9599a718] - tools: report unsafe string and regex primordials as lint errors (Antoine du Hamel) #43393
  • [b69d874592] - tools: fix create-or-update-pull-request-action hash on GHA (Antoine du Hamel) #43378
  • [cf8a115983] - tools: add avoid-prototype-pollution lint rule (Antoine du Hamel) #43308
  • [8c0fe1e184] - tools: fix find-inactive actions (LiviaMedeiros) #43377
  • [7f45d69f83] - tools: update lint-md-dependencies to [email protected] (Node.js GitHub Bot) #43313
  • [d5d0f01c5a] - tools: update eslint to 8.17.0 (Node.js GitHub Bot) #43314
  • [f598fe1585] - tools: use hashes instead of tags for external actions (#43284) (Antoine du Hamel) #43284
  • [10f79947d9] - tools: update codecov/codecov-action version (Antoine du Hamel) #43297
  • [f93848fa50] - tools: update lint-md-dependencies to [email protected] (Node.js GitHub Bot) #43261
  • [b3d7dc1de8] - tools: update clang-format 1.7.0 to 1.8.0 (Darshan Sen) #43241
  • [812140c65a] - tools,doc: add guards against prototype pollution when creating proxies (Antoine du Hamel) #43391
  • [56b8cc5cef] - util: freeze kEnumerableProperty (LiviaMedeiros) #43390
  • [b187d55b6d] - util: add kEmptyObject to internal/util (LiviaMedeiros) #43159
  • [024b396275] - vm: use kEmptyObject (LiviaMedeiros) #43159
  • [7fc432fa35] - wasi: use kEmptyObject (LiviaMedeiros) #43159
  • [44b65d0ca7] - worker: use kEmptyObject (LiviaMedeiros) #43159

New in Node.js 18.3.0 (Jun 2, 2022)

  • Notable Changes:
  • [dc3b91f351] - deps: update undici to 5.4.0 (Node.js GitHub Bot) #43262
  • [d6cf409d78] - (SEMVER-MINOR) util: add parseArgs module (Benjamin Coe) #42675
  • [9539cfa358] - (SEMVER-MINOR) http: add uniqueHeaders option to request and createServer (Paolo Insogna) #41397
  • [41fdc2617d] - deps: upgrade npm to 8.11.0 (npm team) #43210
  • [0000654e47] - deps: patch V8 to 10.2.154.4 (Michaël Zasso) #43067
  • [b3c8e609fd] - (SEMVER-MINOR) deps: update V8 to 10.2.154.2 (Michaël Zasso) #42740
  • [3e89b7336d] - (SEMVER-MINOR) fs: make params in writing methods optional (LiviaMedeiros) #42601
  • [9539cfa358] - (SEMVER-MINOR) http: add uniqueHeaders option to request and createServer (Paolo Insogna) #41397
  • [8f5b4570e5] - (SEMVER-MINOR) net: add ability to reset a tcp socket (pupilTong) #43112
  • [5eff7b4a6a] - (SEMVER-MINOR) Revert "build: make x86 Windows support temporarily experimental" (Michaël Zasso) #42740
  • This means 32-bit Windows binaries are back with this release.
  • Commits:
  • [aefc9dda9a] - benchmark: add node-error benchmark (RafaelGSS) #43077
  • [85d81a764f] - bootstrap: include code cache in the embedded snapshot (Joyee Cheung) #43023
  • [5eff7b4a6a] - (SEMVER-MINOR) Revert "build: make x86 Windows support temporarily experimental" (Michaël Zasso) #42740
  • [d6634707c5] - (SEMVER-MINOR) build: run V8 tests with detected Python version (Richard Lau) #42740
  • [b8b5e6df67] - (SEMVER-MINOR) build: reset embedder string to "-node.0" (Michaël Zasso) #42740
  • [285ef30877] - console: fix console.dir crash on a revoked proxy (Daeyeon Jeong) #43100
  • [920d8c5300] - crypto: align webcrypto RSA key import/export with other implementations (Filip Skokan) #42816
  • [c76caadf2e] - debugger: throw a more useful error when the frame is missing (Kohei Ueno) #42776
  • [dc3b91f351] - deps: update undici to 5.4.0 (Node.js GitHub Bot) #43262
  • [35250bf2f6] - deps: regenerate OpenSSL archs files (Daniel Bevenius) #42973
  • [ecacc3a727] - deps: exclude linker scripts for windows builds (Daniel Bevenius) #42973
  • [41fdc2617d] - deps: upgrade npm to 8.11.0 (npm team) #43210
  • [87b248e27e] - deps: update undici to 5.3.0 (Node.js GitHub Bot) #43197
  • [d42de132a7] - deps: upgrade npm to 8.10.0 (npm team) #43061
  • [0000654e47] - deps: patch V8 to 10.2.154.4 (Michaël Zasso) #43067
  • [742ffefb44] - (SEMVER-MINOR) deps: make V8 10.2 ABI-compatible with 10.1 (Michaël Zasso) #42740
  • [c626a533c7] - deps: make V8 compilable with older glibc (Michaël Zasso) #42657
  • [76546b12a2] - deps: V8: fix v8-cppgc.h for MSVC (Jiawen Geng) #42657
  • [45e1fd4473] - deps: silence V8's warning on CompileFunction (Michaël Zasso) #40907
  • [2130891a9a] - (SEMVER-MINOR) deps: disable trap handler for Windows cross-compiler (Michaël Zasso) #40488
  • [e678b6c63d] - deps: fix V8 build issue with inline methods (Jiawen Geng) #38807
  • [f83323f304] - deps: V8: forward declaration of Rtl*FunctionTable (Refael Ackermann) #32116
  • [4be7584ca6] - deps: V8: un-cherry-pick bd019bd (Refael Ackermann) #32116
  • [b3c8e609fd] - (SEMVER-MINOR) deps: update V8 to 10.2.154.2 (Michaël Zasso) #42740
  • [0afdc3e9a8] - doc: use serial comma in errors docs (Tobias Nießen) #43242
  • [00989338b3] - doc: add note regarding %Array.prototype.concat% in primordials.md (Antoine du Hamel) #43166
  • [badf72dd0a] - doc: use serial comma in worker_threads docs (Tobias Nießen) #43220
  • [776e746f0a] - doc: fix napi version for node_api_symbol_for (Danielle Adams) #42878
  • [76b46801f8] - doc: document signal option for EventTarget#addEventListener (Antoine du Hamel) #43170
  • [3082c75efd] - doc: make minor adjustments (LiviaMedeiros) #43175
  • [598c1f102e] - doc: use serial comma in dgram docs (Tobias Nießen) #43191
  • [b772c13a62] - doc: use serial comma in process docs (Tobias Nießen) #43179
  • [f90a3d7a54] - doc: improved parallel specification (mawaregetsuka) #42679
  • [71074eedef] - doc: improve callback params for fs.mkdir (Daeyeon Jeong) #43016
  • [2b8b224077] - doc: remove outdated footnote (Python 2 --> 3 for V8 tests) (DeeDeeG) #43105
  • [945f228cf1] - doc: add release key for RafaelGSS (Rafael Gonzaga) #43131
  • [56fc712f93] - doc: use serial comma in assert docs (Tobias Nießen) #43154
  • [093a3cf2f1] - doc: fix errors in Performance hooks doc (OneNail) #43152
  • [4d9f43a8a7] - doc: use serial comma in dns docs (Tobias Nießen) #43145
  • [4e9393e32f] - doc: use ASCII apostrophes consistently (Tobias Nießen) #43114
  • [b3181851d7] - doc: add strategic initiative for shadow realm (Chengzhong Wu) #43037
  • [6f48dfb499] - fs: add trailing commas (LiviaMedeiros) #43127
  • [3e89b7336d] - (SEMVER-MINOR) fs: make params in writing methods optional (LiviaMedeiros) #42601
  • [9539cfa358] - (SEMVER-MINOR) http: add uniqueHeaders option to request and createServer (Paolo Insogna) #41397
  • [b187060f76] - http2: set origin name correctly when servername is empty (ofirbarak) #42838
  • [a07f5f28f3] - http2: improve tests and docs (Daeyeon Jeong) #42858
  • [701d40496d] - lib: refactor validateInt32 and validateUint32 (mawaregetsuka) #43071
  • [09da76493a] - meta: update AUTHORS (Node.js GitHub Bot) #43231
  • [1da6b7c32b] - meta: add mailmap entry for legendecas (Chengzhong Wu) #43156
  • [1be254b24e] - meta: add mailmap entry for npm team (Luigi Pinca) #43143
  • [7d8d9d625a] - meta: add mailmap entry for Morgan Roderick (Luigi Pinca) #43144
  • [8f5b4570e5] - (SEMVER-MINOR) net: add ability to reset a tcp socket (pupilTong) #43112
  • [11c783fa63] - net: remoteAddress always undefined called before connected (OneNail) #43011
  • [9c4e070567] - (SEMVER-MINOR) node-api: emit uncaught-exception on unhandled tsfn callbacks (Chengzhong Wu) #36510
  • [54d68b1afd] - perf_hooks: fix start_time of perf_hooks (theanarkh) #43069
  • [baa5d0005a] - src: refactor GetCipherValue and related functions (Tobias Nießen) #43171
  • [6ee9fb14e4] - src: make SecureContext fields private (Tobias Nießen) #43173
  • [1e2552ba6c] - src: reuse GetServerName (Tobias Nießen) #43168
  • [d8a14a2486] - src: fix static analysis warning and use smart ptr (Tobias Nießen) #43117
  • [72a767b7ca] - src: remove SecureContext::operator* (Tobias Nießen) #43121
  • [82fb037388] - src: move context snapshot index to SnapshotData (Joyee Cheung) #43023
  • [9577878258] - src: replace TraceEventScope with sync events (Chengzhong Wu) #42977
  • [41b69e3cf4] - src,lib: migrate to console on context's extra binding (Chengzhong Wu) #43142
  • [3e1ed1ee0c] - test: improve code coverage for inspector connection errors (Kohei Ueno) #42310
  • [d7ca2234dc] - test: use mustSucceed instead of mustCall with assert.ifError (MURAKAMI Masahiko) #43188
  • [9cc5ce6a24] - test: improve readline/emitKeypressEvents.js coverage (OneNail) #42908
  • [447bbd0d66] - tls: fix convertALPNProtocols accepting ArrayBufferViews (LiviaMedeiros) #43211
  • [df691464aa] - tools: update lint-md-dependencies to [email protected] (Node.js GitHub Bot) #43230
  • [d9fb25c936] - tools: refactor build-addons.js to ESM (Feng Yu) #43099
  • [0efeceb4a6] - tools: update lint-md-dependencies to [email protected] (Node.js GitHub Bot) #43172
  • [ed352a945c] - tools: update eslint to 8.16.0 (Node.js GitHub Bot) #43174
  • [1183058908] - tools: refactor update-authors.js to ESM (Feng Yu) #43098
  • [5228028962] - (SEMVER-MINOR) tools: update V8 gypfiles for 10.2 (Michaël Zasso) #42740
  • [d6cf409d78] - (SEMVER-MINOR) util: add parseArgs module (Benjamin Coe) #42675
  • [d91b489784] - worker: fix heap snapshot crash on exit (Chengzhong Wu) #43123

New in Node.js 18.2.0 (May 18, 2022)

  • OpenSSL 3.0.3:
  • This update can be treated as a security release as the issues addressed in OpenSSL 3.0.3 slightly affect Node.js 18. See https://nodejs.org/en/blog/vulnerability/openssl-fixes-in-regular-releases-may2022/ for more information on how the May 2022 OpenSSL releases affect other Node.js release lines.
  • deps: update archs files for quictls/openssl-3.0.3+quic (RafaelGSS)
  • deps: upgrade openssl sources to quictls/openssl-3.0.3 (RafaelGSS)
  • Other Notable Changes:
  • Revert "deps: add template for generated headers" (Daniel Bevenius)
  • deps: update undici to 5.2.0 (Node.js GitHub Bot)
  • deps: upgrade npm to 8.9.0 (npm team
  • deps: upgrade openssl sources to quictls/openssl-3.0.3 (RafaelGSS)
  • doc: add LiviaMedeiros to collaborators (LiviaMedeiros)
  • - doc: add release key for Juan Arboleda (Juan José)
  • (SEMVER-MINOR) fs: add read(buffer[, options]) versions (LiviaMedeiros)
  • (SEMVER-MINOR) http: added connection closing methods (Paolo Insogna)
  • (SEMVER-MINOR) perf_hooks: add PerformanceResourceTiming (RafaelGSS)

New in Node.js 18.1.0 (May 3, 2022)

  • Notable Changes:
  • [c46e7bbf69] - doc: add @kuriyosh to collaborators (Yoshiki Kurihara) #42824
  • [b0f7c4c8f9] - (SEMVER-MINOR) lib,src: implement WebAssembly Web API (Tobias Nießen) #42701
  • [78a860ae58] - (SEMVER-MINOR) test_runner: add initial CLI runner (Colin Ihrig) #42658
  • [bf9240ae8c] - (SEMVER-MINOR) worker: add hasRef() to MessagePort (Darshan Sen) #42849
  • Commits:
  • [4694f5bb96] - async_hooks: avoid decrementing iterator after erase (Gabriel Bota) #42749
  • [459546b4f0] - benchmark: fix misc/startup failure (Antoine du Hamel) #42746
  • [6bd24204ea] - bootstrap: use the isolate snapshot in workers (Joyee Cheung) #42702
  • [29c8411f99] - bootstrap: move embedded snapshot to SnapshotBuilder (Joyee Cheung) #42702
  • [4050b0d64f] - build: enable V8's shared read-only heap (Michaël Zasso) #42809
  • [f9994e2029] - build: improve reliability of find_python.cmd script (Luigi Pinca) #42810
  • [5d15eb1a14] - build: fix format-cpp (Darshan Sen) #42764
  • [7c973474bf] - build: improve the format-cpp error message (Darshan Sen) #42765
  • [7681e60829] - crypto: validate this in all webcrypto methods and getters (Filip Skokan) #42815
  • [2a4c8263c3] - deps: update undici to 5.1.1 (Michaël Zasso) #42939
  • [1102922ef9] - deps: upgrade npm to 8.8.0 (npm team) #42886
  • [279892987b] - deps: remove linux-ppc64 architecture (Daniel Bevenius) #42616
  • [4abe9879ae] - deps: remove linux-ppc architecture (Daniel Bevenius) #42616
  • [8dc71f2266] - deps: remove aix-gcc architecture (Daniel Bevenius) #42616
  • [6dc1f82384] - deps: remove archs/aix64-gcc (Daniel Bevenius) #42616
  • [e8734a4771] - deps: add note about removing asm archs (Daniel Bevenius) #42616
  • [7fae2c9d6e] - deps: add template for generated headers (Daniel Bevenius) #42616
  • [294664e32c] - deps: upgrade npm to 8.7.0 (npm team) #42744
  • [60e461c45d] - doc: reword "test directory" (LiviaMedeiros) #42817
  • [227a45ba60] - doc: remove legacy -J test.py option from BUILDING.md (LiviaMedeiros) #42817
  • [e313dc6ed9] - doc: http2.createServer options as optional (Daeyeon Jeong) #42832
  • [8f2b2280cd] - doc: record March 2022 security release steward (Richard Lau) #42876
  • [e15d22c024] - doc: initial version of security-model-strategy.md (Michael Dawson) #42709
  • [fe65996790] - doc: clarify guide on testing internal errors (Livia Medeiros) #42813
  • [2f849a460f] - doc: fix markdown formatting in primordials.md (Tobias Nießen) #42877
  • [cd2f5a4fd4] - doc: add primordials guidelines (Antoine du Hamel) #38635
  • [2d76f72665] - doc: elevate node-clinic diagnostic tier (RafaelGSS) #42802
  • [9b61ac2617] - doc: update WebAssembly strategy with Wasm Web API (Tobias Nießen) #42836
  • [c6c1dc5833] - doc: order vm.Module linker arguments correctly (Simen Bekkhus) #42797
  • [c46e7bbf69] - doc: add @kuriyosh to collaborators (Yoshiki Kurihara) #42824
  • [59da1339b4] - doc: add maintaining-webassembly.md (Michael Dawson) #42660
  • [d9f3f05cab] - doc: fix outdated documentation for family property (Antoine du Hamel) #42789
  • [6fa080cb48] - doc: delete heapdump from diagnostic tooling support tiers (Tony Gorez) #42783
  • [c32f76d49e] - doc: fix example in assert.md (Livia Medeiros) #42786
  • [6225370b2e] - doc: fix version history for Loaders API (Antoine du Hamel) #42778
  • [3d65a3b13e] - doc: add node: prefix for all core modules (Antoine du Hamel) #42752
  • [46c880b99b] - doc: clarify core modules that can be loaded without a prefix (Antoine du Hamel) #42753
  • [025b3e786a] - doc: consolidate use of multiple-byte units (Antoine du Hamel) #42587
  • [962d80b7a1] - doc: add documentation for inherited methods (Luigi Pinca) #42691
  • [222b3e6674] - doc: close tag in n-api.md (Livia Medeiros) #42751
  • [4c30936065] - doc: copyedit http.OutgoingMessage documentation (Luigi Pinca) #42733
  • [d77c59d0f2] - doc: improve fragment (:target) anchors behavior on HTML version (Antoine du Hamel) #42739
  • [c50309cb39] - doc: fix added: info for outgoingMessage.writable* (Luigi Pinca) #42737
  • [6b7c35e807] - doc: delete mdb_v8 from diagnostic tooling support tiers (Tony Gorez) #42626
  • [2a07a9fc3a] - doc: document the 'close' and 'finish' events (Luigi Pinca) #42704
  • [ef5ab8179b] - doc: fix added: info for outgoingMessage.{,un}cork() (Luigi Pinca) #42711
  • [a6e1e7a5d7] - doc,test: add tests and docs for duplex.fromWeb and duplex.toWeb (Erick Wendel) #42738
  • [336242a7c6] - errors,console: refactor to use ES2021 syntax (小菜) #42872
  • [0e16120d0d] - errors,vm: update error and use cause (Gus Caplan) #42820
  • [a0638a23b0] - esm: fix imports from non-file module (Antoine du Hamel) #42881
  • [dab15f69e3] - esm: graduate top-level-await to stable (Antoine du Hamel) #42875
  • [48bbb73f36] - fs: fix mkdirSync so ENOSPC is correctly reported (Santiago Gimeno) #42811
  • [d33cbabd79] - lib: remove experimental warning from FormData (Xuguang Mei) #42807
  • [ad8269450a] - lib,src: use Response URL as WebAssembly location (Tobias Nießen) #42842
  • [b0f7c4c8f9] - (SEMVER-MINOR) lib,src: implement WebAssembly Web API (Tobias Nießen) #42701
  • [fdc65032a7] - meta: update AUTHORS (Node.js GitHub Bot) #42848
  • [33ac027fdf] - meta: move one or more collaborators to emeritus (Node.js GitHub Bot) #42769
  • [14893c5984] - meta: update AUTHORS (Node.js GitHub Bot) #42760
  • [2f38b4812c] - meta: move mmarchini to emeritus (mary marchini) #42750
  • [718d11fdb0] - perf_hooks: return different functions in timerify (Himself65) #42854
  • [e8083664e1] - src: turn SSL_CTX_new CHECK/segfault into JS exception (Anna Henningsen) #42799
  • [37ca1102c4] - src: make --no-node-snapshot a per-process option (Joyee Cheung) #42864
  • [1976284a92] - src: define fs.constants.S_IWUSR & S_IRUSR for Win (Liviu Ionescu) #42757
  • [b7e9dd0278] - src: use node: prefix in example (Antoine du Hamel) #42794
  • [1a7af6364d] - src: large page attributing an id on Linux (David CARLIER) #42644
  • [494650c09f] - src,crypto: remove uses of AllocatedBuffer from crypto_ec.cc (Darshan Sen) #42766
  • [8e0e576669] - test: add tests for extracting function name (Kohei Ueno) #42399
  • [fbda87d966] - test: simplify test-gc-{http-client,net}-* (Luigi Pinca) #42782
  • [3c796f8328] - test: fix parallel/test-dgram-udp6-link-local-address (Antoine du Hamel) #42795
  • [b85a11c28e] - test: improve lib/internal/test_runner/test.js coverage (MURAKAMI Masahiko) #42745
  • [59c07a99fb] - test: check ecdsa psychic signature (Filip Skokan) #42863
  • [0725064695] - test: fix port in net-perf_hooks (Livia Medeiros) #42761
  • [7b701442de] - test: skip test that cannot pass under --node-builtin-modules-path (Geoffrey Booth) #42834
  • [37364abc58] - test: fix flaky HTTP server tests (Tobias Nießen) #42846
  • [8476ffb85a] - test: use assert.match() instead of assert(regex.test()) (Antoine du Hamel) #42803
  • [d311916f37] - test: fix calculations in test-worker-resource-limits (Joyee Cheung) #42702
  • [deb3cf49c7] - test: remove the legacy url parser function (Kohei Ueno) #42656
  • [be44b1ffcb] - test: improve test coverage of internal/blob (Yoshiki Kurihara) #41513
  • [78a860ae58] - (SEMVER-MINOR) test_runner: add initial CLI runner (Colin Ihrig) #42658
  • [1e7479d34c] - tools: update lint-md-dependencies (Node.js GitHub Bot) #42932
  • [c3c5fe78dc] - tools: bump jsdoccomment from 0.22.1 to 0.29.0 (Rich Trott) #42857
  • [97fc00a06e] - tools: update eslint to 8.14.0 (Node.js GitHub Bot) #42845
  • [93fd77a16f] - tools: update doc to [email protected] (Node.js GitHub Bot) #42758
  • [47c04813f7] - tools: update lint-md-dependencies (Node.js GitHub Bot) #42759
  • [18ae2c39d5] - tools: lint osx shell scripts (Livia Medeiros) #42712
  • [4af0fbd41e] - v8: export cpu_profiler_metadata_size in getHeapCodeStatistics (theanarkh) #42818
  • [a19fb609d8] - v8: export more fields in getHeapStatistics (theanarkh) #42784
  • [1b5856a2a9] - wasi: remove unecessary null check (Michael Dawson) #42819
  • [bf9240ae8c] - (SEMVER-MINOR) worker: add hasRef() to MessagePort (Darshan Sen) #42849
  • [c3922afa1c] - worker: add hasRef() to the handle object (Darshan Sen) #42756

New in Node.js 18.0.0 (May 3, 2022)

  • Node.js 18 is here! Highlights include the update of the V8 JavaScript engine to 10.1, global fetch enabled by default, and a core test runner module.
  • Initially, Node.js 18 will replace Node.js 17 as our ‘Current’ release line. As per the release schedule, Node.js 18 will be the ‘Current’ release for the next 6 months and then promoted to Long-term Support (LTS) in October 2022. Once promoted to long-term support the release will be designated the codename ‘Hydrogen’. Node.js 18 will be supported until April 2025.
  • Notable Changes:
  • Deprecations and Removals:
  • (SEMVER-MAJOR) fs: runtime deprecate string coercion in fs.write, fs.writeFileSync (Livia Medeiros) #42607
  • (SEMVER-MAJOR) dns: remove dns.lookup and dnsPromises.lookup options type coercion (Antoine du Hamel) #41431
  • (SEMVER-MAJOR) process: runtime deprecate multipleResolves (Benjamin Gruenbaum) #41896
  • (SEMVER-MAJOR) stream: remove thenable support (Robert Nagy) #40773
  • (SEMVER-MAJOR) tls: move tls.parseCertString to end-of-life (Tobias Nießen) #41479
  • fetch (experimental):
  • An experimental fetch API is available on the global scope by default. The implementation is based upon undici, an HTTP/1.1 client written for Node.js by contributors to the project.
  • Through this addition, the following globals are made available: fetch, FormData, Headers, Request, Response.
  • Disable this API with the --no-experimental-fetch command-line flag.
  • Contributed by Michaël Zasso in #41811.
  • HTTP Timeouts:
  • server.headersTimeout which limits the amount of time the parser will wait to receive the complete HTTP headers is now set to 60000 (60 seconds) by default.
  • server.requestTimeout which sets the timeout value in milliseconds for receiving the entire request from the client is now set to 300000 (5 minutes) by default.
  • If these timeouts expire, the server responds with status 408 without forwarding the request to the request listener and then closes the connection.
  • Both timeouts must be set to a non-zero value to protect against potential Denial-of-Service attacks in case the server is deployed without a reverse proxy in front.
  • Contributed by Paolo Insogna in #41263.
  • Test Runner module (experimental):
  • The node:test module facilitates the creation of JavaScript tests that report results in TAP format. To access it: import test from 'node:test';
  • This module is only available under the node: scheme.
  • Toolchain and Compiler Upgrades:
  • Prebuilt binaries for Linux are now built on Red Hat Enterprise Linux (RHEL) 8 and are compatible with Linux distributions based on glibc 2.28 or later, for example, Debian 10, RHEL 8, Ubuntu 20.04.
  • Prebuilt binaries for macOS now require macOS 10.15 or later.
  • For AIX the minimum supported architecture has been raised from Power 7 to Power 8.
  • Prebuilt binaries for 32-bit Windows will initially not be available due to issues building the V8 dependency in Node.js. We hope to restore 32-bit Windows binaries for Node.js 18 with a future V8 update.
  • Node.js does not support running on operating systems that are no longer supported by their vendor. For operating systems where their vendor has planned to end support earlier than April 2025, such as Windows 8.1 (January 2023) and Windows Server 2012 R2 (October 2023), support for Node.js 18 will end at the earlier date.
  • Full details about the supported toolchains and compilers are documented in the Node.js BUILDING.md file.
  • Contributed by Richard Lau in #42292, #42604 and #42659,and Michaël Zasso in #42105 and #42666.
  • V8 10.1:
  • The V8 engine is updated to version 10.1, which is part of Chromium 101. Compared to the version included in Node.js 17.9.0, the following new features are included:
  • The findLast and findLastIndex array methods.
  • Improvements to the Intl.Locale API.
  • The Intl.supportedValuesOf function.
  • Improved performance of class fields and private class methods (the initialization of them is now as fast as ordinary property stores).
  • The data format returned by the serialization API (v8.serialize(value)) has changed, and cannot be deserialized by earlier versions of Node.js. On the other hand, it is still possible to deserialize the previous format, as the API is backwards-compatible.
  • Contributed by Michaël Zasso in #42657.
  • Web Streams API (experimental):
  • Node.js now exposes the experimental implementation of the Web Streams API on the global scope. This means the following APIs are now globally available:
  • ReadableStream, ReadableStreamDefaultReader, ReadableStreamBYOBReader, ReadableStreamBYOBRequest, ReadableByteStreamController, ReadableStreamDefaultController, TransformStream, TransformStreamDefaultController, WritableStream, WritableStreamDefaultWriter, WritableStreamDefaultController, ByteLengthQueuingStrategy, CountQueuingStrategy, TextEncoderStream, TextDecoderStream, CompressionStream, DecompressionStream.
  • Contributed James Snell in #39062, and Antoine du Hamel in #42225.
  • Other Notable Changes:
  • (SEMVER-MAJOR) buffer: expose Blob as a global (James M Snell) #41270
  • (SEMVER-MAJOR) child_process: improve argument validation (Rich Trott) #41305
  • doc: add RafaelGSS to collaborators (RafaelGSS) #42718
  • (SEMVER-MAJOR) http: make TCP noDelay enabled by default (Paolo Insogna) #42163
  • (SEMVER-MAJOR) net: make server.address() return an integer for family (Antoine du Hamel) #41431
  • (SEMVER-MAJOR) worker: expose BroadcastChannel as a global (James M Snell) #41271
  • (SEMVER-MAJOR) worker: graduate BroadcastChannel to supported (James M Snell) #41271
  • Semver-Major Commits:
  • [dab8ab2837] - (SEMVER-MAJOR) assert,util: compare RegExp.lastIndex while using deep equal checks (Ruben Bridgewater) #41020
  • [cff14bcaef] - (SEMVER-MAJOR) buffer: refactor byteLength to remove outdated optimizations (Rongjian Zhang) #38545
  • [cea76dbf33] - (SEMVER-MAJOR) buffer: expose Blob as a global (James M Snell) #41270
  • [99c18f4786] - (SEMVER-MAJOR) buffer: graduate Blob from experimental (James M Snell) #41270
  • [35d72bf4ec] - (SEMVER-MAJOR) build: make x86 Windows support temporarily experimental (Michaël Zasso) #42666
  • [1134d8faf8] - (SEMVER-MAJOR) build: bump macOS deployment target to 10.15 (Richard Lau) #42292
  • [27eb91d378] - (SEMVER-MAJOR) build: downgrade Windows 8.1 and server 2012 R2 to experimental (Michaël Zasso) #42105
  • [26c973d4b3] - (SEMVER-MAJOR) child_process: improve argument validation (Rich Trott) #41305
  • [38007df999] - (SEMVER-MAJOR) cluster: make kill to be just process.kill (Bar Admoni) #34312
  • [aed18dfe59] - (SEMVER-MAJOR) crypto: cleanup validation (Mohammed Keyvanzadeh) #39841
  • [e1fb6ae02f] - (SEMVER-MAJOR) crypto: prettify othername in PrintGeneralName (Tobias Nießen) #42123
  • [36fb79030e] - (SEMVER-MAJOR) crypto: fix X509Certificate toLegacyObject (Tobias Nießen) #42124
  • [563b2ed000] - (SEMVER-MAJOR) crypto: use RFC2253 format in PrintGeneralName (Tobias Nießen) #42002
  • [18365d8ee6] - (SEMVER-MAJOR) crypto: change default check(Host|Email) behavior (Tobias Nießen) #41600
  • [58f3fdcccd] - (SEMVER-MAJOR) deps: V8: cherry-pick semver-major commits from 10.2 (Michaël Zasso) #42657
  • [fd4f80ce54] - (SEMVER-MAJOR) deps: update V8 to 10.1.124.6 (Michaël Zasso) #42657
  • [974ab4060f] - (SEMVER-MAJOR) deps: update V8 to 9.8.177.9 (Michaël Zasso) #41610
  • [270253c4e2] - (SEMVER-MAJOR) deps: update V8 to 9.7.106.18 (Michaël Zasso) #40907
  • [08773e3c04] - (SEMVER-MAJOR) dns: remove dns.lookup and dnsPromises.lookup options type coercion (Antoine du Hamel) #41431
  • [3671cc0432] - (SEMVER-MAJOR) doc: update minimum glibc requirements for Linux (Richard Lau) #42659
  • [646e057680] - (SEMVER-MAJOR) doc: update AIX minimum supported arch (Richard Lau) #42604
  • [0bac5478eb] - (SEMVER-MAJOR) fs: runtime deprecate string coercion in fs.write, fs.writeFileSync (Livia Medeiros) #42607
  • [3caa2c1a00] - (SEMVER-MAJOR) http: refactor headersTimeout and requestTimeout logic (Paolo Insogna) #41263
  • [eacd45656a] - (SEMVER-MAJOR) http: make TCP noDelay enabled by default (Paolo Insogna) #42163
  • [4944ad0b9e] - (SEMVER-MAJOR) lib: enable fetch by default (Michaël Zasso) #41811
  • [8c4b8b201a] - (SEMVER-MAJOR) lib: replace validator and error (Mohammed Keyvanzadeh) #41678
  • [3c4ee5267a] - (SEMVER-MAJOR) module,repl: support 'node:'-only core modules (Colin Ihrig) #42325
  • [3a26db9697] - (SEMVER-MAJOR) net: make server.address() return an integer for family (Antoine du Hamel) #41431
  • [e6a7300a10] - (SEMVER-MAJOR) process: disallow some uses of Object.defineProperty() on process.env (Himself65) #28006
  • [60b8e79599] - (SEMVER-MAJOR) process: runtime deprecate multipleResolves (Benjamin Gruenbaum) #41896
  • [d36b60e69a] - (SEMVER-MAJOR) readline: fix question still called after closed (Xuguang Mei) #42464
  • [58e645de63] - (SEMVER-MAJOR) stream: remove thenable support (Robert Nagy) #40773
  • [560cbc5849] - (SEMVER-MAJOR) stream: expose web streams globals, remove runtime experimental warning (Antoine du Hamel) #42225
  • [9fb7ac3bbd] - (SEMVER-MAJOR) stream: need to cleanup event listeners if last stream is readable (Xuguang Mei) #41954
  • [ceaa299958] - (SEMVER-MAJOR) stream: revert revert map spec compliance (Benjamin Gruenbaum) #41933
  • [fe7ca085a7] - (SEMVER-MAJOR) stream: throw invalid arg type from End Of Stream (Jithil P Ponnan) #41766
  • [48e784043d] - (SEMVER-MAJOR) stream: don't emit finish after destroy (Robert Nagy) #40852
  • [f2170253b6] - (SEMVER-MAJOR) stream: add errored and closed props (Robert Nagy) #40696
  • [432d1b50e0] - (SEMVER-MAJOR) test: add initial test module (Colin Ihrig) #42325
  • [92567283f4] - (SEMVER-MAJOR) timers: refactor internal classes to ES2015 syntax (Rabbit) #37408
  • [65910c0d6c] - (SEMVER-MAJOR) tls: represent registeredID numerically always (Tobias Nießen) #41561
  • [807c7e14f4] - (SEMVER-MAJOR) tls: move tls.parseCertString to end-of-life (Tobias Nießen) #41479
  • [f524306077] - (SEMVER-MAJOR) url: throw on NULL in IPv6 hostname (Rich Trott) #42313
  • [0187bc5cdc] - (SEMVER-MAJOR) v8: make v8.writeHeapSnapshot() error codes consistent (Darshan Sen) #42577
  • [74b9baa426] - (SEMVER-MAJOR) v8: make writeHeapSnapshot throw if fopen fails (Antonio Román) #41373
  • [ce4d3adf50] - (SEMVER-MAJOR) worker: expose BroadcastChannel as a global (James M Snell) #41271
  • [6486a304d3] - (SEMVER-MAJOR) worker: graduate BroadcastChannel to supported (James M Snell) #41271
  • Semver-Minor Commits:
  • [415726b8c4] - (SEMVER-MINOR) stream: add writableAborted (Robert Nagy) #40802
  • [54819f08e0] - (SEMVER-MINOR) test_runner: support 'only' tests (Colin Ihrig) #42514
  • Semver-Patch Commits:
  • [7533d08b94] - buffer: fix atob input validation (Austin Kelleher) #42662
  • [96673bcb96] - build: run clang-format on CI (Darshan Sen) #42681
  • [d5462e4558] - build: reset embedder string to "-node.0" (Michaël Zasso) #42657
  • [aa52873887] - build: add configure option --v8-enable-short-builtin-calls (daomingq) #42109
  • [7ee8a7a463] - build: reset embedder string to "-node.0" (Michaël Zasso) #41610
  • [a189dee52a] - build: reset embedder string to "-node.0" (Michaël Zasso) #40907
  • [e8697cfe38] - crypto: improve prime size argument validation (Tobias Nießen) #42234
  • [a9c0689786] - crypto: fix return type prob reported by coverity (Michael Dawson) #42135
  • [e938515b41] - deps: patch V8 to 10.1.124.8 (Michaël Zasso) #42730
  • [eba7d2db7f] - deps: V8: cherry-pick ad21d212fc14 (Michaël Zasso) #42657
  • [004137e269] - deps: V8: cherry-pick 4c29cf1b7885 (Michaël Zasso) #42657
  • [a052c03033] - deps: V8: cherry-pick ca2a787a0b49 (Michaël Zasso) #42657
  • [01cea9a8d8] - deps: V8: cherry-pick a2cae2180a7a (Michaël Zasso) #42657
  • [d9d26b08ef] - deps: V8: cherry-pick 87ce4f5d98a5 (Michaël Zasso) #42657
  • [64a6328505] - deps: make V8 compilable with older glibc (Michaël Zasso) #42657
  • [fde59217b9] - deps: V8: fix v8-cppgc.h for MSVC (Jiawen Geng) #42657
  • [cdcc82cced] - deps: silence V8's warning on CompileFunction (Michaël Zasso) #40907
  • [2f51e121da] - deps: update Acorn to v8.7.0 (Michaël Zasso) #42667
  • [6d4b01774b] - deps: update ICU to 71.1 (Michaël Zasso) #42655
  • [2d84620f86] - deps: upgrade npm to 8.6.0 (npm team) #42550
  • [c7ac11fa25] - deps: update undici to 5.0.0 (Node.js GitHub Bot) #42583
  • [468fffdf66] - deps: V8: cherry-pick 50d5fb7a457c (Michaël Zasso) #41610
  • [48708be57b] - deps: V8: cherry-pick 79a9d2eb3477 (Michaël Zasso) #41610
  • [3c8782f70e] - deps: silence V8's warning on CompileFunction (Michaël Zasso) #40907
  • [9318408c49] - deps: silence V8's warning on CompileFunction (Michaël Zasso) #40907
  • [e23e345b6c] - deps: V8: cherry-pick 80bbbb143c24 (Michaël Zasso) #40907
  • [696ce7df26] - deps: V8: cherry-pick 1cc12b278e22 (Michaël Zasso) #40907
  • [aa88e5e4b9] - doc: revise data imports and node: imports sections (Rich Trott) #42734
  • [a058cefe29] - doc: fix ESM JSON/data URL import example (Rich Trott) #42728
  • [e61b62b9d4] - doc: improve doc for http.ServerResponse inheritance (Luigi Pinca) #42693
  • [6669b3857f] - doc: add RafaelGSS to collaborators (RafaelGSS) #42718
  • [f825341bab] - doc: add NodeEdKeyGenParams to CryptoKey.algorithm (Tobias Nießen) #42629
  • [d4d78361f2] - doc: fix the example for embedders (Momtchil Momtchev) #42671
  • [6706be1cdb] - doc: change AES-GCM IV recommendation in WebCrypto (Tobias Nießen) #42611
  • [4508c8caa4] - doc: fix added: info for some methods (Luigi Pinca) #42661
  • [951dbc045a] - doc: remove unneeded new in Buffer example (Niklas Mischkulnig) #42682
  • [65e838071b] - doc: mark worker.id as integer in cluster docs (Tobias Nießen) #42684
  • [a82713cbb6] - doc: recommend fh.createWriteStream for fsPromises methods (Antoine du Hamel) #42653
  • [13ad8d4e09] - doc: fix outgoingMessage.removeHeader() signature (Luigi Pinca) #42652
  • [a0461255c0] - doc: mark tlsSocket.authorized as boolean property (Tobias Nießen) #42647
  • [3ac7f86c2b] - doc: add missing punctuation in Web Streams doc (Tobias Nießen) #42672
  • [b98386c977] - doc: add missing article in session ticket section (Tobias Nießen) #42632
  • [a113468383] - doc: link to dynamic import function (Tobias Nießen) #42634
  • [dfc2dc8b65] - doc: add note about header values encoding (Shogun) #42624
  • [ec5a359ffd] - doc: add missing word in rootCertificates section (Tobias Nießen) #42633
  • [c08a361f70] - doc: add history entries for DEP0162 on fs.md (Antoine du Hamel) #42608
  • [4fade6acb4] - doc: fix brackets position (Livia Medeiros) #42649
  • [8055c7ba5d] - doc: copyedit corepack.md (Rich Trott) #42620
  • [85a65c3260] - doc: delete chakra tt from diagnostic tooling support tiers (Tony Gorez) #42627
  • [63bb6dcf0f] - doc: align links in table to top (nikoladev) #41396
  • [28d8614add] - http: document that ClientRequest inherits from OutgoingMessage (K.C.Ashish Kumar) #42642
  • [c37fdacb34] - lib: use class fields in observe.js (Joyee Cheung) #42361
  • [ea0668a27e] - lib: use class fields in Event and EventTarget (Joyee Cheung) #42361
  • [eb7b89c829] - lib: update class fields TODO in abort_controller.js (Joyee Cheung) #42361
  • [d835b1f1c1] - meta: update AUTHORS (Node.js GitHub Bot) #42677
  • [29492496e8] - meta: move one or more collaborators to emeritus (Node.js GitHub Bot) #42599
  • [93c4dc5e5a] - module: ensure 'node:'-only modules can access node_modules (Colin Ihrig) #42430
  • [3a26db9697] - net: make server.address() return an integer for family (Antoine du Hamel) #41431
  • [44fdf953ba] - node-api,src: fix module registration in MSVC C++ (Vladimir Morozov) #42459
  • [3026ca0bf2] - src: fix coverity report (Michael Dawson) #42663
  • [01fd048c6e] - src: update NODE_MODULE_VERSION to 108 (Michaël Zasso) #42657
  • [75a71dc7ae] - src: fix alphabetically sorted binding list (Tobias Nießen) #42687
  • [457567f72c] - src: include crypto in the bootstrap snapshot (Joyee Cheung) #42203
  • [aa7dc808f5] - src: update ImportModuleDynamically (Camillo Bruni) #41610
  • [fa0439e66c] - src: update NODE_MODULE_VERSION to 105 (Michaël Zasso) #41610
  • [6ec1664dc8] - src: update NODE_MODULE_VERSION to 104 (Michaël Zasso) #40907
  • [a706342368] - src: add kNoBrowserGlobals flag for Environment (Cheng Zhao) #40532
  • [0c57a37dd0] - src,crypto: remove uses of AllocatedBuffer from crypto_tls.cc (Darshan Sen) #42589
  • [be01185844] - src,inspector: fix empty MaybeLocal crash (Darshan Sen) #42409
  • [340b770d3f] - stream: unify writableErrored and readableErrored (Robert Nagy) #40799
  • [19064bec34] - test: delete test/pummel/test-repl-empty-maybelocal-crash.js (Darshan Sen) #42720
  • [9d6af7d1fe] - test: improve internal/url.js coverage (Yoshiki Kurihara) #42650
  • [d49df5ca8d] - test: adapt message tests for V8 10.2 (Michaël Zasso) #42657
  • [c6b4e9604f] - test: adapt test-worker-debug for V8 10.0 (Michaël Zasso) #42657
  • [0854fce8bc] - test: adapt test-v8-serdes for V8 9.9 (Michaël Zasso) #42657
  • [73d53fe9f5] - test: only skip slow tests on Raspberry Pi devices (Richard Lau) #42645
  • [db7fa9f4b7] - test: allow numeric string for lookupService test (Daeyeon Jeong) #42596
  • [0525a147b2] - test: remove an unnecessary undefined in wpt (Khaidi Chu) #41470
  • [bb762c5bd0] - test: simplify test-http-write-callbacks.js (Tobias Nießen) #42628
  • [1600869eb7] - test: fix comments in test files (Daeyeon Jeong) #42536
  • [82181bb9b8] - test: fix failure in test/sequential/test-heapdump.js (Darshan Sen) #41772
  • [ba5b5acaf1] - test: improve worker_threads coverage (Erick Wendel) #41818
  • [f076c36335] - tools: update clang-format 1.6.0 to 1.7.0 (Rich Trott) #42724
  • [45162bf9e7] - tools: update clang-format from 1.2.3 to 1.6.0 (Rich Trott) #42685
  • [40bc08089d] - tools: update V8 gypfiles for 10.1 (Michaël Zasso) #42657
  • [09513cd1a3] - tools: update eslint to 8.13.0 (Node.js GitHub Bot) #42678
  • [b99bb57416] - tools: update gyp-next to v0.12.1 (Michaël Zasso) #42625
  • [2468db1f53] - tools: update lint-md-dependencies to @rollup/[email protected] (Node.js GitHub Bot) #42584
  • [8a3f28a05c] - tools: add v8-embedder-state-scope.h to distributed headers (Michaël Zasso) #41610
  • [30c4e1d952] - tools: update V8 gypfiles for 9.8 (Michaël Zasso) #41610
  • [1ad44094a2] - tools: update V8 gypfiles for 9.7 (Michaël Zasso) #40907
  • [86b77f7d0f] - tools,doc: use V8::DisposePlatform (Michaël Zasso) #41610
  • [62e62757b3] - tools,test: fix V8 initialization order (Camillo Bruni) #42657
  • [0187bc5cdc] - v8: make v8.writeHeapSnapshot() error codes consistent (Darshan Sen) #42577
  • [74b9baa426] - v8: make writeHeapSnapshot throw if fopen fails (Antonio Román) #41373

New in Node.js 16.15.0 LTS (Apr 27, 2022)

  • Notable changes:
  • Add fetch API:
  • Adds experimental support to the fetch API. This adds the --experimental-fetch
  • Flag that installs the fetch, Request, Response, Headers, and FormData
  • Globals.
  • (SEMVER-MINOR) add fetch (Michaël Zasso) #41749
  • SEMVER-MINOR) add FormData global when fetch is enabled (Michaël Zasso) #41956
  • Other notable changes:
  • Build:
  • Remove broken x32 arch support (Ben Noordhuis) #41905
  • Crypto:
  • (SEMVER-MINOR) add KeyObject.prototype.equals method (Filip Skokan) #42093
  • Doc:
  • Add @ShogunPanda to collaborators (Paolo Insogna) #42362
  • Add JakobJingleheimer to collaborators list (Jacob Smith) #42185
  • Add joesepi to collaborators (Joe Sepi) #41914
  • Add marsonya to collaborators (Akhil Marsonya) #41991
  • Deprecate string coercion in fs.write, fs.writeFileSync (Livia Medeiros) #42149
  • Deprecate notice for process methods (Yash Ladha) #41587
  • Esm:
  • (SEMVER-MINOR) support https remotely and http locally under flag (Bradley Farias) #36328
  • Module:
  • (SEMVER-MINOR) unflag esm json modules (Geoffrey Booth) #41736
  • Node-api:
  • (SEMVER-MINOR) add node_api_symbol_for() (Darshan Sen) #41329
  • Process:
  • Deprecate multipleResolves (Benjamin Gruenbaum) #41872
  • Stream:
  • (SEMVER-MINOR) support some and every (Benjamin Gruenbaum) #41573
  • (SEMVER-MINOR) add toArray (Benjamin Gruenbaum) #41553
  • (SEMVER-MINOR) add forEach method (Benjamin Gruenbaum) #41445
  • Commits:
  • [3d4df9cd70] - (SEMVER-MINOR) benchmark: add subarray to buffer-slice (Benjamin Gruenbaum) #41596
  • [d40f5a177a] - buffer: improve blob read performance (Xuguang Mei) #42117
  • [84752a495f] - (SEMVER-MINOR) buffer: alias subarray and slice (Benjamin Gruenbaum) #41596
  • [c5da1dda4a] - build: use ccache in make-v8.sh on ppc64le and s390x (Richard Lau) #42204
  • [ba56e41953] - build: drop shortened URL from lint-commit-message (Richard Lau) #42168
  • [b2c88ec69c] - build: fix usage of input in feature action (Michael Dawson) #42150
  • [bcabd70d93] - build: increase max ops for stale feature action (Michael Dawson) #42130
  • [042fb6f4d5] - build: add corepack to the auto-updated dependencies (Maël Nison) #42090
  • [611cbf13a6] - build: last test of the stale feature action (Michael Dawson) #42085
  • [0d8f76ff2f] - build: update feature close action for testing (Michael Dawson) #42082
  • [bc3d8a752f] - build: cancel running CI jobs when a PR is updated (Michaël Zasso) #42017
  • [e049173bce] - build: increase operations and test tag (Michael Dawson) #42038
  • [4c47d59e9b] - build: allow manual run of feature request action (Michael Dawson) #42037
  • [692ee2ae06] - build: add action to close stale feature requests (Michael Dawson) #41981
  • [290a2bfd81] - build: prevent concurrent CI and CQ workflow runs (Michaël Zasso) #42016
  • [d2c1624279] - build: use zoslib_include_dir provided by node-gyp (alexcfyung) #41713
  • [db4a3dc1a6] - build: move tool updates workflow runtime a day later (Rich Trott) #41982
  • [24d0c32af4] - build: extend yamllint configuration (Mestery) #41756
  • [428b967ea4] - build: remove broken x32 arch support (Ben Noordhuis) #41905
  • [51847e0d24] - build: revert fast-track changes (Filip Skokan) #41892
  • [1452f8d6f1] - build: improve consistency between workflows (Mestery) #41791
  • [9677da4b46] - (SEMVER-MINOR) build: add --v8-enable-hugepage flag (Daoming Qiu) #41487
  • [5468de5317] - build,tools: change the quotes in YAML (Mestery) #41756
  • [f32c39762c] - child_process: kHideConsoleWindows for spawnSync (Raymond Zhao) #41412
  • [914f9071ba] - cluster: respect listen backlog set by workers (Elad Nava) #41623
  • [f990308972] - crypto: fix auth tag length error when mode != GCM (Tobias Nießen) #42383
  • [7f43f94304] - crypto: fix fingerprint string size calculation (Tobias Nießen) #42175
  • [602f34eeb8] - crypto: add CHECKs to remaining BIO_s_mem allocs (Tobias Nießen) #42155
  • [4eecb25125] - crypto: validate this value for webcrypto.getRandomValues (Antoine du Hamel) #41760
  • [b7599d8b14] - (SEMVER-MINOR) crypto: add KeyObject.prototype.equals method (Filip Skokan) #42093
  • [70ae0ae8a0] - crypto: check result of BIO_new in X509ToObject (Tobias Nießen) #41979
  • [36b9028f4f] - crypto: rename X509_NAME_FLAGS (Tobias Nießen) #42001
  • [a592442218] - (SEMVER-MINOR) crypto: expose Web Crypto API on the global scope (Antoine du Hamel) #41938
  • [46dda316df] - crypto: do not advertise unsupported algorithms (Brian White) #41864
  • [adb88fcb46] - (SEMVER-MINOR) crypto: support RFC 2818 compatible checkHost (Tobias Nießen) #41569
  • [e9d7af1cc6] - debugger: correct typo in inspect_repl.js (Kohei Ueno) #42267
  • [e6019a4cc0] - debugger: add debugger alias for exec(expr) (Xuguang Mei) #41907
  • [83691ada5b] - debugger: remove duplicate setPauseOnException call (Balakrishna Avulapati) #41838
  • [7e73e5e46b] - deps: upgrade npm to 8.5.5 (npm team) #42382
  • [8d734cbde6] - deps: cares: cherry-pick b5a3d96 (bradh352) #42216
  • [ba1d949ce0] - deps: V8: cherry-pick c6f6626deb14 (Lu Yahan) #42240
  • [6b721d7103] - deps: upgrade npm to 8.5.3 (npm team) #42205
  • [baeb66a35a] - deps: update nghttp2 to 1.47.0 (Yash Ladha) #42127
  • [1a0f26f55c] - deps: upgrade npm to 8.5.2 (npm team) #42122
  • [396240bf80] - deps: V8: cherry-pick 77d515484864 (Lu Yahan) #42067
  • [3f09a6d227] - deps: V8: cherry-pick b66334313c8b (Lu Yahan) #42067
  • [a73536b286] - deps: upgrade npm to 8.5.1 (npm-robot) #42039
  • [c64b0381ee] - deps: update undici to 5.0.0 (Node.js GitHub Bot) #42583
  • [a670c1fb5f] - deps: update undici to 4.16.0 (Node.js GitHub Bot) #42414
  • [721d10751b] - deps: update undici to 4.15.1 (Michaël Zasso) #42246
  • [83a667621b] - deps: update undici to 3e267ece5f (Michaël Zasso) #41955
  • [208ab5723e] - doc: improve README.md usability (Rich Trott) #42378
  • [682248c980] - doc: add that chacha20-poly1305 is IETF version (Tobias Nießen) #42370
  • [83391d185c] - doc: document goal to have examples (Michael Dawson) #42274
  • [7073017efb] - doc: fix Embedder's Guide link to V8 official docs (Aroyan) #42373
  • [cb07930bda] - doc: remove unneeded lint disable comment (Rich Trott) #42374
  • [fb42f99514] - doc: revise async_hooks docs (Rich Trott) #42337
  • [835e65b78e] - doc: add @ShogunPanda to collaborators (Paolo Insogna) #42362
  • [df1909982d] - doc: update base branch name for nodejs/nodejs.org (Danielle Adams) #42355
  • [4f6b187059] - doc: fix async iterable pipeline signal examples (Randall Leeds) #42258
  • [3188dcb390] - doc: clarify path search in child_process.spawn (Damjan Cvetko) #41418
  • [f53b454e2e] - doc: clarify the meaning of legacy status (Darshan Sen) #42269
  • [43b8a4fc57] - doc: improve pipe description (Mikael Finstad) #42295
  • [9fa6e445d5] - doc: remove outdated timeout.unref content (Xuguang Mei) #42241
  • [a84896ea2c] - doc: deprecate string coercion in fs.write, fs.writeFileSync (Livia Medeiros) #42149
  • [436bdde654] - doc: remove refs to old OpenSSL list-* commands (Tobias Nießen) #42235
  • [6763bede4c] - doc: readline 'line' event emits final line (Matt Probert) #42214
  • [6545094a94] - doc: update stale feature messages (Michael Dawson) #42217
  • [275b66d54e] - doc: remove erroneous comma in cluster explainer (Tobias Nießen) #42238
  • [cda623cc1d] - doc: remove "considered" for clarity (Rich Trott) #42218
  • [17172fef20] - doc: clarify that some modules don't work when compiled without ssl (Antoine du Hamel) #42198
  • [126045356a] - doc: add note about nghttp2 hd pair size (Rafael Silva) #42172
  • [63b468f753] - doc: use parenthesis instead of em dash (Antoine du Hamel) #42202
  • [19b62ddd68] - doc: add next-10 to strategic initiatives (Michael Dawson) #42167
  • [993a943f2c] - doc: add missing single-quotes to http.OutgoingMessage (Juan José Arboleda) #42162
  • [d0ce089622] - doc: fix typos (apeltop) #42146
  • [88e67b8ec3] - doc: add JakobJingleheimer to collaborators list (Jacob Smith) #42185
  • [5322c73241] - doc: remove reference to obsolete security program (Rich Trott) #42144
  • [5980b6d133] - doc: remove repeated a word (apeltop) #42138
  • [a70a1ce3a9] - doc: make building with ninja more discoverable (Balakrishna Avulapati) #41840
  • [bc457c2339] - doc: document change to IncomingMessage.headers enumerability (Arnold Zokas) #42095
  • [1eb4d8b89c] - doc: add meixg to triagers (Xuguang Mei) #42066
  • [3d75c8748c] - doc: clarify persistent ref behavior (Michael Dawson) #42035
  • [8c26d8cea1] - doc: move bnoordhuis back to collaborators (Ben Noordhuis) #42064
  • [0c21b58d57] - doc: clarify supported versus enabled TLS ciphers (Tobias Nießen) #42063
  • [a658437c64] - doc: add missing api entries on performance (legendecas) #42018
  • [51cb78022e] - doc: fix typo in http2 endAfterHeaders description (Alexandru Comanescu) #42060
  • [40ddfa4e69] - doc: make minor fixes to contributing guides (T-O-R-U-S) #41966
  • [60d6409af0] - doc: use openpgp.org for keyserver examples (Nick Schonning) #39227
  • [9800719237] - doc: adjust a/an word usage (Derek Wolpert) #41915
  • [43894b1bc4] - doc: capitalize valgrind (T•Ø•R•Ü•S) #41986
  • [a34cc75026] - doc: fix deprecation number (Antoine du Hamel) #41990
  • [dd88f54d57] - doc: add marsonya to collaborators (Akhil Marsonya) #41991
  • [8858950a9f] - doc: deprecate notice for process methods (Yash Ladha) #41587
  • [d77db88386] - doc: fix bug in readable.unshift code example (Xuguang Mei) #41944
  • [81e56c9178] - doc: add missing buffer in the stream/consumers import example (Mestery) #41961
  • [c08efba968] - doc: fix typo in readableStream.locked description (Tobias Nießen) #41923
  • [e21831bad1] - doc: fix wrong indent in stream documentation (Xuguang Mei) #41943
  • [e55f340052] - doc: emphasize security warning in vm module doc (Rich Trott) #41916
  • [ce15007fd7] - doc: clarify tls.Server 'connection' event documentation (Austin Cheney) #41917
  • [6fc0a25b64] - doc: improve scrollbar appearance in dark mode (Aaron Xie) #41890
  • [90d955100d] - doc: replace text with paths in toggle SVGs (Brian White) #41885
  • [6fd538331d] - doc: edit process.config deprecation text (Rich Trott) #41889
  • [55caa10c54] - doc: add joesepi to collaborators (Joe Sepi) #41914
  • [73f3a2cf96] - doc: remove unneeded ellipsis in header (Rich Trott) #41888
  • [b950f5db84] - doc: fix webstream close reject state state doc (Benjamin Gruenbaum) #41860
  • [e46c7d6f69] - (SEMVER-MINOR) doc: deprecate buffer.slice (Benjamin Gruenbaum) #41596
  • [83129729c6] - doc: fix backticks around 'default' (Tobias Nießen) #41613
  • [f8819e86fd] - doc: fix version history for net.Socket and net.Server (Antoine du Hamel) #42268
  • [12bf85a606] - doc,tools: improve navigability of API docs (Paolo Insogna) #41404
  • [37f6f92905] - errors: do not access .stack in debug (Benjamin Coe) #42096
  • [166eb782f9] - esm: fix base URL for network imports (Bradley Farias) #42131
  • [b68db72746] - esm: fix relative imports for https (Bradley Farias) #42119
  • [c777cb3368] - esm: make extension-less errors in type:module actionable (Bradley Farias) #42301
  • [2e42ccf1a5] - esm: improve typings and code coverage (Bradley Farias) #42305
  • [25017ca107] - esm: add runtime warning for specifier resolution flag (Geoffrey Booth) #42252
  • [1324023fea] - esm: improve fetch_module test coverage and remove hack (Antoine du Hamel) #41947
  • [9b8c927d29] - esm: remove erroneous context.parentURL property passed to load hook (Jacob Smith) #41975
  • [47cefec5c9] - esm: fix typo in fetch_module (Michael Scovetta) #41924
  • [0d185f7930] - (SEMVER-MINOR) esm: support https remotely and http locally under flag (Bradley Farias) #36328
  • [b0a83115db] - events: set default handler value (Benjamin Gruenbaum) #41970
  • [6b55ba2fa2] - fs: adjust default length for fs.readSync and fsPromises/read (Livia Medeiros) #42128
  • [da87c731b8] - fs: fix default length parameter for fs.read (wbt) #40349
  • [33e4a32f9e] - (SEMVER-MINOR) fs: support copy of relative links with cp and cpSync (Marcos Bjoerkelund) #41819
  • [571eb6dc74] - fs: fix cb/sync writev empty array behavior (Benjamin Gruenbaum) #41932
  • [257a7a5802] - fs: fix writev empty array error behavior (Benjamin Gruenbaum) #41919
  • [2d165652f1] - fs: refactor to use ES2020 syntax (小菜) #41903
  • [39fb114dde] - (SEMVER-MINOR) http: trace http client by perf_hooks (theanarkh) #42345
  • [16c00c6ac8] - http: add default argument for Agent.prototype.getName (小菜) #41906
  • [d301a8825b] - http2: fix potential integer overflow (Michael Dawson) #42248
  • [ddef6bbcb8] - http2: add edge case to GOAWAY request (Rafael Silva) #42190
  • [28af75ef65] - http2: close stream and session on frameError (Rafael Silva) #42147
  • [ebe2b6d21e] - lib: refactor to use primordials in lib/assert.js (Akhil Marsonya) #41702
  • [dcebb99dfc] - lib: fix AsyncResource.bind not using 'this' from the caller by default (Roch Devost) #42177
  • [e1704407ae] - lib: clean after the cancel algorithm throw error (Chen Gang) #41366
  • [91a06bd629] - lib: add legacy built-in functions to primordials (Antoine du Hamel) #42049
  • [e80043fb61] - lib: stop installing webcrypto if no_browser_globals is true (Mestery) #41971
  • [9946b9bceb] - lib: allow respondWithNewView on byob auto allocated streams (Sean Quinlan) #41887
  • [f4e39171de] - lib: restrict usage of fetch related globals in core internals (Antoine du Hamel) #41957
  • [b1f0cc6412] - lib: move kEnumerableProperty to internal/util (Mestery) #41877
  • [2a85e0ac00] - lib: add internal genericNodeError() function (Rich Trott) #41879
  • [647805a747] - (SEMVER-MINOR) lib: add FormData global when fetch is enabled (Michaël Zasso) #41956
  • [f17ce913c9] - (SEMVER-MINOR) lib: add fetch (Michaël Zasso) #41749
  • [2cbf45b8a5] - loader: fix esm resolve for symlink file (Xuguang Mei) #42197
  • [a363842261] - meta: update AUTHORS (Node.js GitHub Bot) #42404
  • [a122eb1989] - meta: update AUTHORS (Node.js GitHub Bot) #42317
  • [c56e15a0eb] - meta: add dependencies label to label-pr-config (Mestery) #42129
  • [137ca4e1d4] - meta: update AUTHORS (Node.js GitHub Bot) #42227
  • [09ab04696f] - meta: update AUTHORS (Node.js GitHub Bot) #42142
  • [d4d9c00949] - meta: correct link to feature request document (Simen Bekkhus) #42092
  • [2135f8e6cb] - meta: move one or more collaborators to emeritus (Node.js GitHub Bot) #42068
  • [b969a278eb] - meta: remove collaborator (Rich Trott) #42073
  • [de035bceda] - meta: update AUTHORS (Node.js GitHub Bot) #42058
  • [f5ffa34f77] - meta: use plain emojis instead of escape sequences (Mestery) #41989
  • [6f1adf1f3e] - meta: update AUTHORS and .mailmap (Rich Trott) #41953
  • [363028c887] - (SEMVER-MINOR) module: unflag esm json modules (Geoffrey Booth) #41736
  • [b3afb20b44] - (SEMVER-MINOR) net: add new options to net.Socket and net.Server (Paolo Insogna) #41310
  • [bd48ad9c16] - node-api: fix typo in node_api.cc (Austin Kelleher) #42110
  • [11ec3345e7] - (SEMVER-MINOR) node-api: add node_api_symbol_for() (Darshan Sen) #41329
  • [7c0b8ca5ac] - perf_hooks: do not return all entries with getEntriesBy[Name|Type] (Xuguang Mei) #42104
  • [b7a307f0ed] - perf_hooks: use arrays to store EntryBuffers (Xuguang Mei) #42032
  • [61ecdf8f12] - process: fix named report export (madflow) #41861
  • [bc08165953] - process: deprecate multipleResolves (Benjamin Gruenbaum) #41872
  • [a88d4a2e2c] - repl: remove preview when press escape (meixg) #42053
  • [83267aaa7f] - repl: #41690 REPL gives wrong autocomplete on literals (Xuguang Mei) #41883
  • [73ce911a6f] - src: convert hex2bin() into a regular function (Darshan Sen) #42321
  • [7fe16ecc7a] - src: fix coverity warnings in node_file.cc (Michael Dawson) #42272
  • [5b30e28eb4] - src: check EC_POINT_get_affine_coordinates result (Tobias Nießen) #42304
  • [57b619da46] - src: simplify bound check in ParseArrayIndex (Tobias Nießen) #42306
  • [0e3e3fda22] - src: avoid returning invalid value from hex2bin (Tobias Nießen) #42307
  • [5eaa59159f] - src: check return value of HMAC_Final (Tobias Nießen) #42303
  • [376b3c4293] - src: include internal/options in the snapshot (Joyee Cheung) #42203
  • [268fd97925] - src: remove redundant buffer size check (Tobias Nießen) #42257
  • [90ce5c9fc5] - src: perform minor cleanups on zlib code (Anna Henningsen) #42247
  • [de3748a7e7] - src: use emplace_back instead of push_back (Yash Ladha) #42159
  • [830f93d892] - src: fix unchecked return warning from coverity (Michael Dawson) #42176
  • [db9f7752a9] - src: return proper URLs from node_api_get_module_file_name (Anna Henningsen) #41758
  • [d4b1b5cf85] - src: skip revoke_data_object if uuid is not found (Xuguang Mei) #42212
  • [3026449009] - src: remove dead code in AddFingerprintDigest (Tobias Nießen) #42145
  • [29fd5ff37d] - src: combine GetCurveASN1Name and GetCurveNistName (Tobias Nießen) #42118
  • [447ae8c5a3] - src: simplify TLSWrap::SetSession (Tobias Nießen) #42087
  • [2fe17f3891] - src: prefer bool over int in crypto_common (Tobias Nießen) #42097
  • [237f47e38e] - src: simplify arg type of AddFingerprintDigest (Tobias Nießen) #42101
  • [4244b1a0bb] - src: do not ignore return value of BIO_reset (Tobias Nießen) #42103
  • [e77a7cf985] - src: simplify GetExponentString (Tobias Nießen) #42121
  • [c811b8a1cb] - (SEMVER-MINOR) src: allow preventing InitializeInspector in env (Shelley Vohr) #35025
  • [af73a853f5] - src: use const reference instead of pointer in URL::SerializeURL (Anna Henningsen) #41759
  • [703593ab2a] - src: reserve string allocation space early in URL::SerializeURL (Anna Henningsen) #41759
  • [170a6cb33e] - src: fix query/fragment serialization in URL::SerializeURL (Anna Henningsen) #41759
  • [86b9d3af98] - src: don't print interface if sin6_scope_id is 0 (Santiago Gimeno) #41547
  • [fdea60e958] - src,buffer: evaluate THROW_AND_RETURN_IF_OOB() expression only once (Darshan Sen) #41945
  • [bf1f485c8d] - src,crypto: avoid tristate Maybe<bool> in ExportJWKEcKey() (Darshan Sen) #42223
  • [a5b189cda7] - stream: use .chunk when calling adapters's writev (Xuguang Mei) #42161
  • [0c690456cf] - stream: add more forEach tests (Benjamin Gruenbaum) #41937
  • [f12cf6db47] - (SEMVER-MINOR) stream: add reduce (Benjamin Gruenbaum) #41669
  • [4b6343964e] - stream: use synchronous error validation on iteration helpers (iMoses) #41652
  • [60e28ba507] - stream: add asIndexedPairs (Benjamin Gruenbaum) #41681
  • [88a48197c4] - stream: add drop and take (Benjamin Gruenbaum) #41630
  • [205c018ab4] - (SEMVER-MINOR) stream: support flatMap (Benjamin Gruenbaum) #41612
  • [0be2321d53] - (SEMVER-MINOR) stream: support some and every (Benjamin Gruenbaum) #41573
  • [ac8526e9a5] - (SEMVER-MINOR) stream: add toArray (Benjamin Gruenbaum) #41553
  • [dcc58314b9] - (SEMVER-MINOR) stream: add forEach method (Benjamin Gruenbaum) #41445
  • [f21f104c7c] - string_decoder: fix crash when calling __proto__.write() (Darshan Sen) #42062
  • [e3bced182c] - test: give slow tests more time on Rasberry PIs (Michael Dawson) #42380
  • [04243a85c7] - test: improve https_renew_cert.sh script (Tobias Nießen) #42343
  • [6d422ad807] - test: improve _http_incoming.js coverage (Yoshiki Kurihara) #42211
  • [3d37efe588] - test: improve _http_outgoing coverage (Yoshiki Kurihara) #42213
  • [245577e15c] - test: add test case for reverted 17.7 regression (Rich Trott) #42283
  • [3cc06de597] - test: use global webcrypto for WPT tests (Antoine du Hamel) #42236
  • [623be18fa3] - test: cover 32-bit sizes in generatePrime (Tobias Nießen) #42207
  • [70281e17ad] - test: fix test-process-env-tz.js by using RegExp (Khaidi Chu) #42113
  • [33b11a3548] - test: update V8 trace events test expectations (Nikolaos Papaspyrou) #42120
  • [978b50fe44] - test: deflake test-common-expect-warning (Luigi Pinca) #42046
  • [629d06ace8] - test: validate EventEmitterAsyncResource methods throw on invalid this (Yoshiki Kurihara) #42041
  • [17af006e38] - test: increase Fibonacci argument to 40 (Rich Trott) #42055
  • [b06780801c] - test: remove test-stdout-close-catch flaky designation (Rich Trott) #42045
  • [9ae6982387] - test: check that fetch globals are disabled by default (Michaël Zasso) #42015
  • [2a1a94bbbb] - test: improve vm test coverage (Yoshiki Kurihara) #41847
  • [3e354da097] - test: run webmessaging/broadcastchannel WPT (Ben Noordhuis) #41962
  • [711e863084] - test: fix names of tests marked flaky on IBM i (Richard Lau) #41984
  • [95eb03c298] - test: fix typographical error (Rich Trott) #41983
  • [31def41391] - test: fix intl tests on small-icu builds (Antoine du Hamel) #41939
  • [11e76fcba4] - test: remove lint rule for setTimeout() arguments (Rich Trott) #41901
  • [fd8bf09608] - test: move test-crypto-engine to addon (Michael Dawson) #41830
  • [25109a6471] - test: improve stability of oom test (Benjamin Gruenbaum) #41681
  • [ad17c9ce0c] - test,crypto: add and update empty passphrase regression tests (Darshan Sen) #42319
  • [9649d656ba] - tls: avoid throw in onerror for bad TLSSocket obj (Valters Jansons) #41523
  • [789e6041a6] - tools: update lint-md-dependencies to [email protected] (Node.js GitHub Bot) #42403
  • [1c1061549a] - tools: update doc to [email protected] [email protected] (Node.js GitHub Bot) #42315
  • [97aa236083] - tools: update lint-md-dependencies to [email protected] [email protected] (Node.js GitHub Bot) #42316
  • [7636370bdb] - tools: update eslint to 8.11.0 (Node.js GitHub Bot) #42318
  • [359395393f] - tools: fix web streams API links (Brian White) #42153
  • [fe5578b627] - tools: update lint-md-dependencies to [email protected] (Node.js GitHub Bot) #42226
  • [8532f83c8e] - tools: update lint-md rollup dependencies (Node.js GitHub Bot) #42141
  • [f2a16158a0] - tools: update eslint to 8.10.0 (Node.js GitHub Bot) #42143
  • [11f747b0e4] - tools: update lint-md-dependencies to [email protected] (Node.js GitHub Bot) #42057
  • [c47b436bd0] - tools: enable es2022 env in ESLint config (Michaël Zasso) #42043
  • [bbdf285a39] - tools: add console to the list of restricted globals (Antoine du Hamel) #42012
  • [aace6c2626] - tools: lint deprecation codes (Antoine du Hamel) #41992
  • [c229889022] - tools: fix bugs in prefer-primordials linter rule (Antoine du Hamel) #42010
  • [410d0ce44a] - tools: add timers functions to the list of restricted globals (Antoine du Hamel) #42013
  • [06d8c53e62] - tools: reduce list of globals in ESLint config (Rich Trott) #41996
  • [82b64f44fc] - tools: update remark-preset-lint-node to 3.3.1 (Rich Trott) #41999
  • [1db9cc7e59] - tools: update ESLint to 8.9.0 (Luigi Pinca) #41973
  • [f8c6232f90] - tools: update lint-md-dependencies to [email protected] (Node.js GitHub Bot) #41941
  • [57d5576c4d] - tools: fix typo in prefer-primordials.js (Ikko Ashimine) #41891
  • [4bba27935a] - tools,lib: remove global and Intl from the list of globals (Antoine du Hamel) #42014
  • [e918570d10] - url: preserve null char in WHATWG URL errors (Rich Trott) #42263
  • [962a8ec350] - url: trim leading and trailing C0 control chars (Rich Trott) #42196
  • [78647edba7] - url, src: modify one special_back_slash (Khaidi Chu) #42112
  • [a458fbf949] - worker: do not send message if port is closing (Rich Trott) #42357
  • [604621a275] - worker: fix typo in debug statement (Antoine du Hamel) #42011
  • [237affc951] - (SEMVER-MINOR) worker: graduate get/setEnvironmentData APIs (James M Snell) #41272

New in Node.js 17.9.0 (Apr 8, 2022)

  • Notable Changes:
  • [7124f91cbf] - (SEMVER-MINOR) crypto: make authTagLength optional for CC20P1305 (Tobias Nießen) #42427
  • [30dc6dd3fb] - deps: update undici to 4.16.0 (Node.js GitHub Bot) #42414
  • [f0fc2744a5] - doc: add @meixg to collaborators (Xuguang Mei) #42576
  • Commits:
  • [bb71433334] - async_hooks: remove destroyed symbol on Promises (Gerhard Stöbich) #42402
  • [b48a6cb3f9] - bootstrap: reset process._exit and process.exitCode in pre-execution (Joyee Cheung) #42466
  • [b89f038537] - bootstrap: run inspector and event loop in snapshot builder (Joyee Cheung) #42466
  • [177558600e] - bootstrap: make I/O streams work with user-land snapshot (Joyee Cheung) #42466
  • [e3683cb34d] - bootstrap: refresh options in pre-execution (Joyee Cheung) #42466
  • [d302d2f0d2] - bootstrap: use SnapshotData to pass snapshot data around (Joyee Cheung) #42360
  • [eb3dfc00f0] - buffer: improve Blob constructor error message when passing a string (Xuguang Mei) #42338
  • [f45d5537c1] - buffer: fix atob input validation (Antoine du Hamel) #42539
  • [fb6a5ba8d7] - build: remove precompiled header and debug information for host builds (Niyas Sait) #42538
  • [1f7d2e800c] - build: windows/arm64 native compilation support (Niyas Sait) #42408
  • [d9a1d7866c] - build: consolidate JS and md linting GitHub Actions (Rich Trott) #42572
  • [ecb5be845d] - build: set stale action back to running nightly (Michael Dawson) #42549
  • [f9fb7f6d96] - build: add --node-snapshot-main configure option (Joyee Cheung) #42466
  • [c6808f088b] - build: bump actions/checkout (Eliaz Bobadilla) #42460
  • [9a54acb7c6] - child_process: add env contents types in JSDoc (Rich Trott) #42494
  • [a2f07380ea] - crypto: do not add undefined hash in webcrypto normalizeAlgorithm (Filip Skokan) #42559
  • [9b4bd7d031] - crypto: cleanup webcrypto jwk code (Filip Skokan) #42562
  • [541a1328b0] - crypto: fix webcrypto derive key lengths (Filip Skokan) #42542
  • [7124f91cbf] - (SEMVER-MINOR) crypto: make authTagLength optional for CC20P1305 (Tobias Nießen) #42427
  • [30dc6dd3fb] - deps: update undici to 4.16.0 (Node.js GitHub Bot) #42414
  • [6e56924274] - doc: simplify Http2Stream encoding text (Rich Trott) #42597
  • [261672b1da] - doc: remove obsolete stream API selection text (Rich Trott) #42586
  • [beffed1880] - doc: remove faulty justification for 128-bit AES (Tobias Nießen) #42578
  • [71f4a39086] - doc: fix documentation of FileHandle.prototype.appendFile (Antoine du Hamel) #42588
  • [c83ea22f7c] - doc: change "OCSP Request" to "OCSP request" (Tobias Nießen) #42582
  • [71ab0dea35] - doc: aes webcrypto unwrap is not a node-specific extensions (Filip Skokan) #42561
  • [1c614184da] - doc: simplify recommendations in process.md (Rich Trott) #42556
  • [c036800ddc] - doc: clarify recommendations in stream.md (Rich Trott) #42555
  • [dcf0abf8c7] - doc: simplify recommendation in webcrypto.md (Rich Trott) #42554
  • [8333fa063b] - doc: update DEP0102 text (Rich Trott) #42553
  • [8b08bff682] - doc: remove util.promisify() content in readline.md (Rich Trott) #42552
  • [94492424ba] - doc: add introduction sentence for CJS (Antoine du Hamel) #42491
  • [f0fc2744a5] - doc: add @meixg to collaborators (Xuguang Mei) #42576
  • [d935fef594] - doc: consolidate CI sections (Rich Trott) #42534
  • [fd45df314b] - doc: document breaking change in http.IncomingMessage 'close' event (Paolo Insogna) #42521
  • [53584fa750] - doc: remove extraneous comma (Rich Trott) #42548
  • [b819af6509] - doc: guide towards x509.fingerprint256 (Tobias Nießen) #42516
  • [f2355e41ed] - doc: fix internal link in collaborator-guide.md (Daeyeon Jeong) #42551
  • [ffc6776996] - doc: add suggestion for OpenSSL only sec releases (Michael Dawson) #42456
  • [1454c0297d] - doc: fix comment text in async_hooks example (Rich Trott) #42499
  • [b9ab9867f4] - doc: add stability class to legacy status description (Daniel Roe) #42525
  • [6c13988d53] - doc: suggest checkHost in checkServerIdentity docs (Tobias Nießen) #42495
  • [28665a9dd6] - doc: update security release onboarding (Joe Sepi) #42333
  • [d335addf0c] - doc: fix question promise API example (Xuguang Mei) #42465
  • [7cf9febcb4] - doc: remove comma splice in events.md (Rich Trott) #42484
  • [3c3684d9f1] - doc: clarify napi_finalize behavior (Alba Mendez) #42461
  • [334cc1936b] - doc: expand history for conditional exports changes in v12 (Greg Poole) #42339
  • [fb146f9eaf] - doc: change comma-splice to two sentences (Rich Trott) #42455
  • [ce4b823946] - doc: add link to section (Rich Trott) #42428
  • [5869275479] - doc: fix typo in async_context.md (Anupama Codippily) #42444
  • [48bd9fa2c7] - doc: add trace_gc to diagnostic tooling support document (Tony Gorez) #42346
  • [00f693b6b1] - doc: make header smaller and dropdown click-driven when JS is on (Paolo Insogna) #42165
  • [abbb23620a] - doc: standardize typography for _semantic versioning_ (Rich Trott) #42401
  • [e763e575c6] - doc: unify import order in CCM example (Tobias Nießen) #42394
  • [10d638a735] - doc: update property name (Rich Trott) #42398
  • [5589a448b7] - doc,test: clarify ChaCha20-Poly1305 usage (Tobias Nießen) #42323
  • [902776e674] - esm: emit experimental warnings in common place (Jacob Smith) #42314
  • [8009cb0a78] - fs: fix write methods param validation and docs (Livia Medeiros) #42631
  • [a9dc3a92d9] - lib: prepare files for no-var lint rule (Rich Trott) #42573
  • [3306fee824] - lib: source maps filter null prefix (Fabian Cook) #42522
  • [3bac969655] - lib: improve the coverage of the validator (mawaregetsuka) #42443
  • [b74de21cc3] - lib: update JSDoc for linting (Rich Trott) #42489
  • [7766bf954f] - meta: update .mailmap and AUTHORS (Rich Trott) #42602
  • [93ffc5535a] - meta: move one or more collaborators to emeritus (Node.js GitHub Bot) #42500
  • [256509056d] - meta: update AUTHORS (Node.js GitHub Bot) #42585
  • [41c2a32390] - meta: update AUTHORS (Node.js GitHub Bot) #42488
  • [b71a8107c0] - net,dns: trace tcp connection and dns by perf_hooks (theanarkh) #42390
  • [f9f3b6e45d] - node-api: format Node-API related code (Vladimir Morozov) #42396
  • [0bd9d9e24f] - os: avoid unnecessary usage of var (Mohammed Keyvanzadeh) #42563
  • [e798e26dfd] - src: add proper mutexes for accessing FIPS state (Anna Henningsen) #42278
  • [a1fe0d2222] - src: fix typo in InspectorIoDelegate constructor (Kohei Ueno) #42520
  • [0c54f3637b] - src: remove unnecessary static qualifier in crypto_dh.cc (Darshan Sen) #42492
  • [2e6a66d7d7] - src: address 3 useless call coverity warnings (Michael Dawson) #42426
  • [ce9d840079] - src: properly report exceptions from AddressToJS() (Darshan Sen) #42054
  • [c6a558c61b] - src: suppress false coverity warning (Michael Dawson) #42284
  • [878148c266] - src: refactor IsSupportedAuthenticatedMode (Tobias Nießen) #42368
  • [970483ffd3] - src,crypto: handle empty maybe correctly in crypto_dh.cc (Darshan Sen) #42492
  • [a348f8ac1a] - src,crypto: remove uses of AllocatedBuffer from crypto_dh.cc (Darshan Sen) #42492
  • [fb25ba435c] - test: improve lib/internal/readline/promises.js coverage (MURAKAMI Masahiko) #42420
  • [4cbb1ea910] - test: remove hack for atob and btoa WPT tests (Antoine du Hamel) #42540
  • [f41a4780d5] - test: pass data into napi_create_external (Joyee Cheung) #42532
  • [90554572b5] - test: improve FileHandle.prototype.write coverage (Antoine du Hamel) #42541
  • [797994e4c0] - test: add test for exception handlings in debugger (Kohei Ueno) #42327
  • [8c9b5e9a36] - test: fix typo in common/wpt.js (Ikko Ashimine) #42567
  • [2f682091cd] - test: fix typos in test/parallel (Daeyeon Jeong) #42502
  • [52d1c8d6d9] - test: add trace-gc flag test (Tony Gorez) #42471
  • [19c933c79a] - test,fs: add fs.rm() tests for .git directories (Darshan Sen) #42410
  • [d64c4fb94d] - tools: enable no-var ESLint rule for lib (Rich Trott) #42573
  • [a9f2636d12] - tools: fixed bug causing JSON format to be broken (mawaregetsuka) #41565
  • [bff9cae16a] - tools: update GHA actions version (Antoine du Hamel) #42498
  • [c6bfb225cd] - tools: update eslint to 8.12.0 (Node.js GitHub Bot) #42489
  • [464e57ffc7] - tools: update lint-md-dependencies to [email protected] (Node.js GitHub Bot) #42487
  • [13dd8e73df] - tools: refloat 7 Node.js patches to cpplint.py (Rich Trott) #42416
  • [3a1b0e5b87] - tools: bump cpplint to 1.6.0 (Rich Trott) #42416
  • [9344a06d9c] - tools: fix skip PR if CI is still running (Xuguang Mei) #42377

New in Node.js 17.8.0 (Mar 22, 2022)

  • Notable Changes:
  • [3bd0078457] - doc: add @ShogunPanda to collaborators (Shogun) #42362
  • [23354673be] - doc: deprecate string coercion in fs.write, fs.writeFileSync (Livia Medeiros) #42149
  • [da42ffb85e] - (SEMVER-MINOR) http: trace http client by perf_hooks (theanarkh) #42345
  • [84fd6e54b0] - deps: upgrade npm to 8.5.5 (npm team) #42382
  • [b60262ee9f] - deps: update undici to 4.15.1 (Michaël Zasso) #42246
  • Commits:
  • [1796f035c7] - build: rename tools workflow and add undici to it (Michaël Zasso) #42246
  • [f27bcec2ea] - build: use ccache in make-v8.sh on ppc64le and s390x (Richard Lau) #42204
  • [f48c3baf5a] - crypto: fix auth tag length error when mode != GCM (Tobias Nießen) #42383
  • [1d0468f749] - crypto: fix fingerprint string size calculation (Tobias Nießen) #42175
  • [a4632a3dc2] - crypto: add CHECKs to remaining BIO_s_mem allocs (Tobias Nießen) #42155
  • [3b55946452] - debugger: correct typo in inspect_repl.js (Kohei Ueno) #42267
  • [84fd6e54b0] - deps: upgrade npm to 8.5.5 (npm team) #42382
  • [f2178fcc1a] - deps: cares: cherry-pick b5a3d96 (bradh352) #42216
  • [063ff08cb1] - deps: V8: cherry-pick c6f6626deb14 (Lu Yahan) #42240
  • [b60262ee9f] - deps: update undici to 4.15.1 (Michaël Zasso) #42246
  • [70c0758308] - deps: upgrade npm to 8.5.3 (npm team) #42205
  • [fd51e78963] - doc: fix version history for net.Socket and net.Server (Antoine du Hamel) #42268
  • [db83c4d6dc] - doc: improve README.md usability (Rich Trott) #42378
  • [88d3401329] - doc: add that chacha20-poly1305 is IETF version (Tobias Nießen) #42370
  • [04a7c0061b] - doc: update instructions for openssl updates (Michael Dawson) #42353
  • [78b858dd4b] - doc: document goal to have examples (Michael Dawson) #42274
  • [a5e42f0113] - doc: fix Embedder's Guide link to V8 official docs (Aroyan) #42373
  • [6c265e7243] - doc: remove unneeded lint disable comment (Rich Trott) #42374
  • [46d3d23e64] - doc: revise async_hooks docs (Rich Trott) #42337
  • [3bd0078457] - doc: add @ShogunPanda to collaborators (Shogun) #42362
  • [e7e8eb9f03] - doc: update base branch name for nodejs/nodejs.org (Danielle Adams) #42355
  • [fd7e4ab654] - doc: fix async iterable pipeline signal examples (Randall Leeds) #42258
  • [96dc591b55] - doc: clarify path search in child_process.spawn (Damjan Cvetko) #41418
  • [72dd50016a] - doc: clarify the meaning of legacy status (Darshan Sen) #42269
  • [8b99099063] - doc: improve pipe description (Mikael Finstad) #42295
  • [701dc14fdf] - doc: remove outdated timeout.unref content (Xuguang Mei) #42241
  • [23354673be] - doc: deprecate string coercion in fs.write, fs.writeFileSync (Livia Medeiros) #42149
  • [f3c6c00963] - doc: remove refs to old OpenSSL list-* commands (Tobias Nießen) #42235
  • [19851f8d2d] - doc: readline 'line' event emits final line (Matt Probert) #42214
  • [e55283b978] - esm: make extension-less errors in type:module actionable (Bradley Farias) #42301
  • [e17db8f0fa] - esm: improve typings and code coverage (Bradley Farias) #42305
  • [4829a1047f] - esm: add runtime warning for specifier resolution flag (Geoffrey Booth) #42252
  • [da42ffb85e] - (SEMVER-MINOR) http: trace http client by perf_hooks (theanarkh) #42345
  • [88dee3c6b5] - http2: fix potential integer overflow (Michael Dawson) #42248
  • [1fe0b69c31] - lib: refactor to use primordials in lib/assert.js (Akhil Marsonya) #41702
  • [69a3792540] - lib: fix AsyncResource.bind not using 'this' from the caller by default (Roch Devost) #42177
  • [1c87ce6a32] - meta: update AUTHORS (Node.js GitHub Bot) #42404
  • [e7b8d83acd] - meta: update AUTHORS (Node.js GitHub Bot) #42317
  • [7fc4b9f08d] - meta: add dependencies label to label-pr-config (Mestery) #42129
  • [e96042442b] - src: convert hex2bin() into a regular function (Darshan Sen) #42321
  • [21198c1407] - src: fix coverity warnings in node_file.cc (Michael Dawson) #42272
  • [846b074075] - src: check EC_POINT_get_affine_coordinates result (Tobias Nießen) #42304
  • [8b84e68cbd] - src: simplify bound check in ParseArrayIndex (Tobias Nießen) #42306
  • [9500e5862e] - src: avoid returning invalid value from hex2bin (Tobias Nießen) #42307
  • [08e2d8ab86] - src: check return value of HMAC_Final (Tobias Nießen) #42303
  • [9fc4b9b04e] - src: include internal/options in the snapshot (Joyee Cheung) #42203
  • [e43aa30982] - src: remove redundant buffer size check (Tobias Nießen) #42257
  • [d06e92dba0] - src: perform minor cleanups on zlib code (Anna Henningsen) #42247
  • [9af908305d] - src: use emplace_back instead of push_back (Yash Ladha) #42159
  • [62d9a7f5db] - src: fix unchecked return warning from coverity (Michael Dawson) #42176
  • [58763d7f9d] - src,crypto: avoid tristate Maybe<bool> in ExportJWKEcKey() (Darshan Sen) #42223
  • [5367002bc8] - stream: do cleanup when iterator is destroyed (Khoo Hao Yit) #42320
  • [3492a0eb1e] - string_decoder: fix crash when calling __proto__.write() (Darshan Sen) #42062
  • [d9a5c2b284] - test: give slow tests more time on Rasberry PIs (Michael Dawson) #42380
  • [b82bac09ff] - test: improve https_renew_cert.sh script (Tobias Nießen) #42343
  • [dfdce7c182] - test: improve _http_incoming.js coverage (Yoshiki Kurihara) #42211
  • [4941791f29] - test: improve _http_outgoing coverage (Yoshiki Kurihara) #42213
  • [94e5eaa7e9] - test: add test case for reverted 17.7 regression (Rich Trott) #42283
  • [a4aa9eb97f] - test: use global webcrypto for WPT tests (Antoine du Hamel) #42236
  • [26d4a2d489] - test,crypto: add and update empty passphrase regression tests (Darshan Sen) #42319
  • [4fd2aff42e] - tools: make update-undici script executable (Michaël Zasso) #42406
  • [38e7681ac7] - tools: update lint-md-dependencies to [email protected] (Node.js GitHub Bot) #42403
  • [b7a4b4b1fd] - tools: update doc to [email protected] [email protected] (Node.js GitHub Bot) #42315
  • [30ea1889d5] - tools: update lint-md-dependencies to [email protected] [email protected] (Node.js GitHub Bot) #42316
  • [eb0e1a1147] - tools: update eslint to 8.11.0 (Node.js GitHub Bot) #42318
  • [e95426fd3a] - tools: fix web streams API links (Brian White) #42153
  • [fe01940f35] - url: preserve null char in WHATWG URL errors (Rich Trott) #42263
  • [b89f4d5c17] - url: trim leading and trailing C0 control chars (Rich Trott) #42196
  • [229fb40edc] - worker: do not send message if port is closing (Rich Trott) #42357

New in Node.js 17.7.2 (Mar 18, 2022)

  • Notable Changes:
  • Update to OpenSSL 3.0.2, which addresses the following vulnerability:
  • Infinite loop in BN_mod_sqrt() reachable when parsing certificates (High)(CVE-2022-0778)
  • More details are available at https://www.openssl.org/news/secadv/20220315.txt
  • Commits:
  • [55e293e05f] - deps: update archs files for quictls/openssl-3.0.2+quic (Hassaan Pasha) #42356
  • [b8d090603d] - deps: upgrade openssl sources to quictls/openssl-3.0.2+quic (Hassaan Pasha) #42356
  • [c8b6d92af0] - test: fix tests affected by OpenSSL update (Michael Dawson) #42356
  • [457e31ea09] - test: renew certificates for specific test (Luigi Pinca) #42342

New in Node.js 17.7.1 (Mar 11, 2022)

  • Fixed regression in url.resolve():
  • This release fixes an issue introduced in Node.js v17.7.0 with some URLs that contain @. This issue affected yarn 1. This version reverts the change that introduced the regression.

New in Node.js 17.7.0 (Mar 9, 2022)

  • Notable Changes:
  • [2b354223d4] - (SEMVER-MINOR) crypto: add KeyObject.prototype.equals method (Filip Skokan) #42093
  • [a2926c477a] - (SEMVER-MINOR) net: add new options to net.Socket and net.Server (Paolo Insogna) #41310
  • [86248f1178] - (SEMVER-MINOR) src: allow preventing InitializeInspector in env (Shelley Vohr) #35025
  • [a4969d5c37] - doc: add release key for Bryan English (Bryan English) #42102
  • Dependency Updates:
  • [0b8efea182] - deps: update nghttp2 to 1.47.0 (Yash Ladha) #42127
  • [ccacf99e5c] - deps: upgrade npm to 8.5.2 (npm team) #42122
  • New Collaborators:
  • [3df001fa93] - doc: add JakobJingleheimer to collaborators list (Jacob Smith) #42185
  • [0ce00ca5e1] - doc: move bnoordhuis back to collaborators (Ben Noordhuis) #42064
  • Commits:
  • [d05758f79f] - buffer: improve blob read performance (Xuguang Mei) #42117
  • [0bbb44741b] - build: drop shortened URL from lint-commit-message (Richard Lau) #42168
  • [4e9fac6539] - build: fix usage of input in feature action (Michael Dawson) #42150
  • [853cbd99b8] - build: increase max ops for stale feature action (Michael Dawson) #42130
  • [3fc3f521d6] - build: add corepack to the auto-updated dependencies (Maël Nison) #42090
  • [ec4c0de6d1] - build: last test of the stale feature action (Michael Dawson) #42085
  • [03ebca86d9] - build: update feature close action for testing (Michael Dawson) #42082
  • [c9ea6a9261] - crypto: validate this value for webcrypto.getRandomValues (Antoine du Hamel) #41760
  • [2b354223d4] - (SEMVER-MINOR) crypto: add KeyObject.prototype.equals method (Filip Skokan) #42093
  • [288f627c46] - crypto: clarify require("crypto").getRandomValues is Node.js specific (Antoine du Hamel) #41782
  • [0b8efea182] - deps: update nghttp2 to 1.47.0 (Yash Ladha) #42127
  • [ccacf99e5c] - deps: upgrade npm to 8.5.2 (npm team) #42122
  • [1359f60338] - deps: V8: cherry-pick 77d515484864 (Lu Yahan) #42067
  • [769e2a486f] - deps: V8: cherry-pick b66334313c8b (Lu Yahan) #42067
  • [fc7d429516] - doc: update stale feature messages (Michael Dawson) #42217
  • [6183749861] - doc: remove erroneous comma in cluster explainer (Tobias Nießen) #42238
  • [555da9b658] - doc: remove "considered" for clarity (Rich Trott) #42218
  • [05c3ff5e76] - doc: clarify that some modules don't work when compiled without ssl (Antoine du Hamel) #42198
  • [a6c1abf7e1] - doc: add note about nghttp2 hd pair size (Rafael Silva) #42172
  • [04d2c74c8a] - doc: use parenthesis instead of em dash (Antoine du Hamel) #42202
  • [6a74fa91bb] - doc: add next-10 to strategic initiatives (Michael Dawson) #42167
  • [ee027391e7] - doc: add missing single-quotes to http.OutgoingMessage (Juan José Arboleda) #42162
  • [84859c4029] - doc: fix typos (apeltop) #42146
  • [3df001fa93] - doc: add JakobJingleheimer to collaborators list (Jacob Smith) #42185
  • [ce86fc3006] - doc: remove reference to obsolete security program (Rich Trott) #42144
  • [5d010bcde2] - doc: remove repeated a word (apeltop) #42138
  • [a32ec983c6] - doc: make building with ninja more discoverable (Balakrishna Avulapati) #41840
  • [26fe61b6ad] - doc: document change to IncomingMessage.headers enumerability (Arnold Zokas) #42095
  • [eb622a0761] - doc: add meixg to triagers (Xuguang Mei) #42066
  • [bd04fc89da] - doc: clarify persistent ref behavior (Michael Dawson) #42035
  • [0ce00ca5e1] - doc: move bnoordhuis back to collaborators (Ben Noordhuis) #42064
  • [8b531dadb1] - doc: clarify supported versus enabled TLS ciphers (Tobias Nießen) #42063
  • [3789d668f7] - doc: add missing api entries on performance (legendecas) #42018
  • [a4969d5c37] - doc: add release key for Bryan English (Bryan English) #42102
  • [8b94ea6e1c] - doc,tools: improve navigability of API docs (Paolo Insogna) #41404
  • [2e1231b831] - errors: do not access .stack in debug (Benjamin Coe) #42096
  • [8dd4878850] - esm: fix base URL for network imports (Bradley Farias) #42131
  • [2bc136d3cb] - esm: fix relative imports for https (Bradley Farias) #42119
  • [576c1aea8e] - fs: adjust default length for fs.readSync and fsPromises/read (Livia Medeiros) #42128
  • [041373696f] - http: add default argument for Agent.prototype.getName (小菜) #41906
  • [1de80872e8] - http2: add edge case to GOAWAY request (Rafael Silva) #42190
  • [9bc7a954fd] - http2: close stream and session on frameError (Rafael Silva) #42147
  • [384872fdbd] - lib: clean after the cancel algorithm throw error (Chen Gang) #41366
  • [f7ea75fd0a] - lib: add legacy built-in functions to primordials (Antoine du Hamel) #42049
  • [7f1c83e674] - loader: fix esm resolve for symlink file (Xuguang Mei) #42197
  • [5b23e67ad5] - meta: update AUTHORS (Node.js GitHub Bot) #42227
  • [cad7dde9af] - meta: update AUTHORS (Node.js GitHub Bot) #42142
  • [7ed2c19cbb] - meta: correct link to feature request document (Simen Bekkhus) #42092
  • [e0448da9a9] - meta: move one or more collaborators to emeritus (Node.js GitHub Bot) #42068
  • [e3347dbaa8] - meta: remove collaborator (Rich Trott) #42073
  • [96510b3411] - module: prefer async/await in https imports (Benjamin Gruenbaum) #41950
  • [a2926c477a] - (SEMVER-MINOR) net: add new options to net.Socket and net.Server (Paolo Insogna) #41310
  • [f107f8bf40] - node-api: fix typo in node_api.cc (Austin Kelleher) #42110
  • [c72c3f4bb1] - perf_hooks: do not return all entries with getEntriesBy[Name|Type] (Xuguang Mei) #42104
  • [7c49785348] - process: fix named report export (madflow) #41861
  • [d6b1a4a235] - repl: remove preview when press escape (meixg) #42053
  • [98b1be0ec2] - src: return proper URLs from node_api_get_module_file_name (Anna Henningsen) #41758
  • [0abc20b6cf] - src: skip revoke_data_object if uuid is not found (Xuguang Mei) #42212
  • [ce409279d8] - src: remove dead code in AddFingerprintDigest (Tobias Nießen) #42145
  • [4c9f2b5d83] - src: combine GetCurveASN1Name and GetCurveNistName (Tobias Nießen) #42118
  • [f0558d88fb] - src: simplify TLSWrap::SetSession (Tobias Nießen) #42087
  • [97f5ceda84] - src: prefer bool over int in crypto_common (Tobias Nießen) #42097
  • [382ffdade0] - src: simplify arg type of AddFingerprintDigest (Tobias Nießen) #42101
  • [07de4ed641] - src: do not ignore return value of BIO_reset (Tobias Nießen) #42103
  • [3366618ce2] - src: simplify GetExponentString (Tobias Nießen) #42121
  • [86248f1178] - (SEMVER-MINOR) src: allow preventing InitializeInspector in env (Shelley Vohr) #35025
  • [06e5c0ee39] - stream: use .chunk when calling adapters's writev (Xuguang Mei) #42161
  • [53338fe65c] - stream: allow returning null from pipeline tail (Robert Nagy) #42078
  • [8431fb90dc] - stream: port more test262 tests (Benjamin Gruenbaum) #41974
  • [0be3c61ae9] - test: cover 32-bit sizes in generatePrime (Tobias Nießen) #42207
  • [ceb47d13ff] - test: fix test-process-env-tz.js by using RegExp (Khaidi Chu) #42113
  • [f21fbeec2e] - test: update V8 trace events test expectations (Nikolaos Papaspyrou) #42120
  • [d0f68a398e] - test: deflake test-common-expect-warning (Luigi Pinca) #42046
  • [482b2205b2] - test: validate EventEmitterAsyncResource methods throw on invalid this (Yoshiki Kurihara) #42041
  • [99301469ed] - test: increase Fibonacci argument to 40 (Rich Trott) #42055
  • [c01134ed27] - tools: update lint-md-dependencies to [email protected] (Node.js GitHub Bot) #42226
  • [41b6d9e95a] - tools: update lint-md rollup dependencies (Node.js GitHub Bot) #42141
  • [28f636422e] - tools: update eslint to 8.10.0 (Node.js GitHub Bot) #42143
  • [9aeda47d9c] - url: fix url.parse() for @hostname (Rich Trott) #42136
  • [ecb5980e2f] - url, src: modify one special_back_slash (Khaidi Chu) #42112

New in Node.js 17.6.0 (Feb 23, 2022)

  • Notable Changes:
  • [6b88595142] - doc: deprecate notice for process methods (Yash Ladha) #41587
  • [77462b6083] - stream: revert map spec compliance (Benjamin Gruenbaum) #41931
  • [b968d89fc9] - build: remove broken x32 arch support (Ben Noordhuis) #41905
  • [ba639d052b] - (SEMVER-MINOR) esm: support https remotely and http locally under flag (Bradley Farias) #36328
  • [214d17650b] - (SEMVER-MINOR) fs: support copy of relative links with cp and cpSync (Marcos Bjoerkelund) #41819
  • [ec0d623bd7] - (SEMVER-MINOR) lib: add FormData global when fetch is enabled (Michaël Zasso) #41956
  • [3243701997] - (SEMVER-MINOR) readline: bind keystroke ctrl+6 to redo (Ray) #41662
  • [5796c3a7ea] - process: deprecate multipleResolves (Benjamin Gruenbaum) #41872
  • Documentation-only.
  • Dependency Updates:
  • [d1ef43f2aa] - deps: upgrade npm to 8.5.1 (npm-robot) #42039
  • [09c17481f6] - deps: update undici to 3e267ece5f (Michaël Zasso) #41955
  • [0a6f0b416f] - deps: upgrade npm to 8.5.0 (npm-robot) #41925
  • New Collaborators:
  • [90d90e3868] - doc: add marsonya to collaborators (Akhil Marsonya) #41991
  • [0de611f53a] - doc: add joesepi to collaborators (Joe Sepi) #41914
  • Commits:
  • [c673953f6d] - build: cancel running CI jobs when a PR is updated (Michaël Zasso) #42017
  • [782506c099] - build: increase operations and test tag (Michael Dawson) #42038
  • [d3e6ad1ed5] - build: allow manual run of feature request action (Michael Dawson) #42037
  • [69d7736e08] - build: add action to close stale feature requests (Michael Dawson) #41981
  • [1315f1eb25] - build: prevent concurrent CI and CQ workflow runs (Michaël Zasso) #42016
  • [1e8e8bc22b] - build: use zoslib_include_dir provided by node-gyp (alexcfyung) #41713
  • [4e2e2cb821] - build: move tool updates workflow runtime a day later (Rich Trott) #41982
  • [cd04ed1382] - build: extend yamllint configuration (Mestery) #41756
  • [b968d89fc9] - build: remove broken x32 arch support (Ben Noordhuis) #41905
  • [2b1dabfb16] - build: revert fast-track changes (Filip Skokan) #41892
  • [182e6b9ee9] - build: improve consistency between workflows (Mestery) #41791
  • [f4cb72600d] - build,tools: change the quotes in YAML (Mestery) #41756
  • [24b0a563a4] - child_process: kHideConsoleWindows for spawnSync (Raymond Zhao) #41412
  • [c41e402c06] - cluster: respect listen backlog set by workers (Elad Nava) #41623
  • [84b1e4fba7] - crypto: check result of BIO_new in X509ToObject (Tobias Nießen) #41979
  • [946ac96817] - crypto: rename X509_NAME_FLAGS (Tobias Nießen) #42001
  • [60682917dd] - (SEMVER-MINOR) crypto: expose Web Crypto API on the global scope (Antoine du Hamel) #41938
  • [0fff4d2314] - crypto: do not advertise unsupported algorithms (Brian White) #41864
  • [67f1ebf9b4] - debugger: add debugger alias for exec(expr) (Xuguang Mei) #41907
  • [1eac0a1677] - debugger: remove duplicate setPauseOnException call (Balakrishna Avulapati) #41838
  • [d1ef43f2aa] - deps: upgrade npm to 8.5.1 (npm-robot) #42039
  • [09c17481f6] - deps: update undici to 3e267ece5f (Michaël Zasso) #41955
  • [0a6f0b416f] - deps: upgrade npm to 8.5.0 (npm-robot) #41925
  • [fea682ca94] - doc: fix typo in http2 endAfterHeaders description (Alexandru Comanescu) #42060
  • [9c618ad729] - doc: make minor fixes to contributing guides (T-O-R-U-S) #41966
  • [60bbacdd91] - doc: use openpgp.org for keyserver examples (Nick Schonning) #39227
  • [2e252b3c95] - doc: adjust a/an word usage (Derek Wolpert) #41915
  • [c7d590c66e] - doc: remove extra <td> (Ray) #42006
  • [06f225c6a6] - doc: capitalize valgrind (T•Ø•R•Ü•S) #41986
  • [6195de506a] - doc: fix deprecation number (Antoine du Hamel) #41990
  • [90d90e3868] - doc: add marsonya to collaborators (Akhil Marsonya) #41991
  • [6b88595142] - doc: deprecate notice for process methods (Yash Ladha) #41587
  • [d34ee45134] - doc: fix bug in readable.unshift code example (Xuguang Mei) #41944
  • [8748b1e61d] - doc: add missing buffer in the stream/consumers import example (Mestery) #41961
  • [cb9dba034a] - doc: fix typo in readableStream.locked description (Tobias Nießen) #41923
  • [43a5161cee] - doc: fix wrong indent in stream documentation (Xuguang Mei) #41943
  • [dca2692ae3] - doc: emphasize security warning in vm module doc (Rich Trott) #41916
  • [b0e8ccb84c] - doc: clarify tls.Server 'connection' event documentation (Austin Cheney) #41917
  • [6a7b0160df] - doc: improve scrollbar appearance in dark mode (Aaron Xie) #41890
  • [aa684a78fe] - doc: replace text with paths in toggle SVGs (Brian White) #41885
  • [fc9d4e96c1] - doc: edit process.config deprecation text (Rich Trott) #41889
  • [0de611f53a] - doc: add joesepi to collaborators (Joe Sepi) #41914
  • [ba5cb89134] - doc: remove unneeded ellipsis in header (Rich Trott) #41888
  • [291fe631dd] - doc: fix webstream close reject state state doc (Benjamin Gruenbaum) #41860
  • [c0f4289c65] - esm: improve fetch_module test coverage and remove hack (Antoine du Hamel) #41947
  • [a95f7a0c25] - esm: remove erroneous context.parentURL property passed to load hook (Jacob Smith) #41975
  • [66c9565f99] - esm: fix typo in fetch_module (Michael Scovetta) #41924
  • [ba639d052b] - (SEMVER-MINOR) esm: support https remotely and http locally under flag (Bradley Farias) #36328
  • [0660ba3cd0] - events: set default handler value (Benjamin Gruenbaum) #41970
  • [5a807c5927] - fs: fix default length parameter for fs.read (wbt) #40349
  • [214d17650b] - (SEMVER-MINOR) fs: support copy of relative links with cp and cpSync (Marcos Bjoerkelund) #41819
  • [be5143b3f5] - fs: fix cb/sync writev empty array behavior (Benjamin Gruenbaum) #41932
  • [b4db004855] - fs: fix writev empty array error behavior (Benjamin Gruenbaum) #41919
  • [528c585b2b] - fs: refactor to use ES2020 syntax (??) #41903
  • [ec0d623bd7] - (SEMVER-MINOR) lib: add FormData global when fetch is enabled (Michaël Zasso) #41956
  • [c3b0e72d01] - lib: stop installing webcrypto if no_browser_globals is true (Mestery) #41971
  • [ae36276148] - lib: allow respondWithNewView on byob auto allocated streams (Sean Quinlan) #41887
  • [68ec8d5824] - lib: stop installing fetch if no_browser_globals is true (Darshan Sen) #41969
  • [f9bfdc3a65] - lib: restrict usage of fetch related globals in core internals (Antoine du Hamel) #41957
  • [3a121345e7] - lib: move kEnumerableProperty to internal/util (Mestery) #41877
  • [fa3a9135ad] - lib: add internal genericNodeError() function (Rich Trott) #41879
  • [1e698e65a7] - meta: update AUTHORS (Node.js GitHub Bot) #42058
  • [f51b55dae4] - meta: use plain emojis instead of escape sequences (Mestery) #41989
  • [3d998112be] - meta: update AUTHORS and .mailmap (Rich Trott) #41953
  • [391f4e5c25] - perf_hooks: use arrays to store EntryBuffers (Xuguang Mei) #42032
  • [5796c3a7ea] - process: deprecate multipleResolves (Benjamin Gruenbaum) #41872
  • [3243701997] - (SEMVER-MINOR) readline: bind keystroke ctrl+6 to redo (Ray) #41662
  • [c766159e68] - repl: #41690 REPL gives wrong autocomplete on literals (Xuguang Mei) #41883
  • [f80cae8be5] - src: merge ToJsSet into ToV8Value (Anna Henningsen) #41757
  • [e2a74d2e04] - src: remove separate definitions for static constexpr members (Anna Henningsen) #41755
  • [d91a956419] - src: use const reference instead of pointer in URL::SerializeURL (Anna Henningsen) #41759
  • [0330e2d796] - src: reserve string allocation space early in URL::SerializeURL (Anna Henningsen) #41759
  • [364ec5ba8b] - src: fix query/fragment serialization in URL::SerializeURL (Anna Henningsen) #41759
  • [6076291168] - src: don't print interface if sin6_scope_id is 0 (Santiago Gimeno) #41547
  • [43c12f4962] - src,buffer: evaluate THROW_AND_RETURN_IF_OOB() expression only once (Darshan Sen) #41945
  • [b8cbb83222] - stream: add more forEach tests (Benjamin Gruenbaum) #41937
  • [f5d7339b25] - stream: add more filter tests (Benjamin Gruenbaum) #41936
  • [77462b6083] - stream: revert map spec compliance (Benjamin Gruenbaum) #41931
  • [3e38506d1b] - stream: avoid usage of deprecated APIs (Mohammed Keyvanzadeh) #41871
  • [5195479919] - stream: refactor to use more validators (Mohammed Keyvanzadeh) #41871
  • [07463b3374] - stream: use standard for loop instead of for..of (Mohammed Keyvanzadeh) #41871
  • [d9008915fe] - test: remove test-stdout-close-catch flaky designation (Rich Trott) #42045
  • [fe66d2b98c] - test: check that fetch globals are disabled by default (Michaël Zasso) #42015
  • [bcf53a89f7] - test: improve vm test coverage (Yoshiki Kurihara) #41847
  • [9825ceddeb] - test: run webmessaging/broadcastchannel WPT (Ben Noordhuis) #41962
  • [f8e302c813] - test: fix names of tests marked flaky on IBM i (Richard Lau) #41984
  • [ab73bde8c1] - test: fix typographical error (Rich Trott) #41983
  • [520dcbc9f5] - test: fix intl tests on small-icu builds (Antoine du Hamel) #41939
  • [83b913cb90] - test: improve code coverage for streams/duplexify (Erick Wendel) #41862
  • [dc14bd85ee] - test: remove lint rule for setTimeout() arguments (Rich Trott) #41901
  • [76f0f1c06d] - test: move test-crypto-engine to addon (Michael Dawson) #41830
  • [b1505a1250] - tls: avoid throw in onerror for bad TLSSocket obj (Valters Jansons) #41523
  • [2cdbf0304b] - tools: update lint-md-dependencies to [email protected] (Node.js GitHub Bot) #42057
  • [6742625126] - tools: enable es2022 env in ESLint config (Michaël Zasso) #42043
  • [896ccc13ce] - tools: add console to the list of restricted globals (Antoine du Hamel) #42012
  • [1b4ee6cfd9] - tools: lint deprecation codes (Antoine du Hamel) #41992
  • [e895e6422f] - tools: fix bugs in prefer-primordials linter rule (Antoine du Hamel) #42010
  • [47bb7dd52c] - tools: add timers functions to the list of restricted globals (Antoine du Hamel) #42013
  • [afeed46578] - tools: reduce list of globals in ESLint config (Rich Trott) #41996
  • [2e905a63d8] - tools: update remark-preset-lint-node to 3.3.1 (Rich Trott) #41999
  • [35832feb6e] - tools: update ESLint to 8.9.0 (Luigi Pinca) #41973
  • [06117c084e] - tools: update lint-md-dependencies to [email protected] (Node.js GitHub Bot) #41941
  • [f30b5e3a6d] - tools: fix typo in prefer-primordials.js (Ikko Ashimine) #41891
  • [cfafb45c2b] - tools,lib: remove global and Intl from the list of globals (Antoine du Hamel) #42014
  • [ba35b6ccd1] - worker: fix typo in debug statement (Antoine du Hamel) #42011

New in Node.js 17.5.0 (Feb 11, 2022)

  • Add fetch API:
  • Adds experimental support to the fetch API. This adds a --experimental-fetch
  • flag that installs the fetch, Request, Reponse and Headers globals.
  • [76a229c4ff] - (SEMVER-MINOR) lib: add fetch (Michaël Zasso) #41749
  • Add stream methods:
  • [1ae648567a] - (SEMVER-MINOR) stream: add iterator helper find (linkgoron) #41849
  • [62e1a68077] - (SEMVER-MINOR) stream: add toArray (Benjamin Gruenbaum) #41553
  • [da11b95988] - (SEMVER-MINOR) stream: add forEach method (Benjamin Gruenbaum) #41445
  • [34684a1c89] - (SEMVER-MINOR) stream: support some and every (Benjamin Gruenbaum) #41573
  • Other Notable Changes:
  • [2cae99425b] - (SEMVER-MINOR) node-api: add node_api_symbol_for() (Darshan Sen) #41329
  • [9c6b078892] - module: unflag esm json modules (Geoffrey Booth) #41736
  • [28650eca00] - deps: upgrade npm to 8.4.1 (npm team) #41836
  • Commits:
  • [0844935e1f] - async_hooks: fix imports in context example (Yash Ladha) #39229
  • [44ca20b7a1] - benchmark: avoid input param manipulation (Jithil P Ponnan) #41741
  • [ad32ad6cfd] - benchmark: enable no-empty ESLint rule (Rich Trott) #41831
  • [28b95a5a9f] - benchmark: use Object.hasOwn() instead of hasOwnProperty() (Rich Trott) #41769
  • [ca1cd4254a] - benchmark: replace hasOwnProperty() with Object.hasOwn() (Rich Trott) #41724
  • [6fefd5112a] - (SEMVER-MINOR) benchmark: add subarray to buffer-slice (Benjamin Gruenbaum) #41596
  • [878b2e73bb] - benchmark: remove unreachable code from crypto/hash-stream-creation (Rich Trott) #41535
  • [6064b1df5d] - buffer: fix atob/btoa no-arg case (Benjamin Gruenbaum) #41478
  • [89c327387b] - (SEMVER-MINOR) buffer: alias subarray and slice (Benjamin Gruenbaum) #41596
  • [adcde6bb78] - build: check if python is a executable program (himself65) #36696
  • [33351765c7] - build: enable zoslib installation on z/OS (alexcfyung) #41493
  • [e8062bfb92] - build: add --v8-enable-hugepage flag (Daoming Qiu) #41487
  • [8681c837ca] - build: add loong64 configure (Shi Pujin) #41323
  • [7c2b5861be] - build: fix libuv builds for android aarch64 (Darshan Sen) #41555
  • [e117c0f86c] - crypto: check return code from EVP_DigestUpdate (Michael Dawson) #41800
  • [9c59abe588] - crypto: fix webcrypto.subtle signature (Antoine du Hamel) #41761
  • [627f19a84b] - crypto: revise variables for const use instead of let (Rich Trott) #41614
  • [9e39e62ae2] - crypto: remove wildcard options for checkEmail (Tobias Nießen) #41599
  • [4a4c907604] - crypto: adjust types for getRandomValues (LiviaMedeiros) #41481
  • [b43faf0fc5] - crypto: remove checkIP options argument (Tobias Nießen) #41571
  • [076ec47557] - (SEMVER-MINOR) crypto: support RFC 2818 compatible checkHost (Tobias Nießen) #41569
  • [28650eca00] - deps: upgrade npm to 8.4.1 (npm-robot) #41836
  • [bee4451ed8] - deps: V8: cherry-pick cc9a8a37445e (Gus Caplan) #41823
  • [4b174ce7f6] - deps: upgrade npm to 8.3.2 (npm team) #41621
  • [0d4f043f0e] - dgram: remove unreachable connectState assign (Rongjian Zhang) #38590
  • [d641eb7f80] - doc: use the same case as the section heading (Mestery) #41876
  • [ffd1933ad9] - doc: use Oxford comma in crypto docs (Tobias Nießen) #41875
  • [145a3b8294] - doc: use sentence case in readme introduction (Mestery) #41874
  • [f8acca8df8] - doc: add missing space before hyphen (Mestery) #41873
  • [5085813688] - doc: add stream pipelining note on Http usage (Rafael Silva) #41796
  • [0a8995d36b] - doc: improve SSL_OP_PRIORITIZE_CHACHA description (Tobias Nießen) #41866
  • [1c62eb64f6] - doc: add missing commas in cluster docs (Tobias Nießen) #41865
  • [3676505413] - doc: add history information for Corepack (Antoine du Hamel) #41813
  • [8a42a20b8a] - doc: add comments to empty blocks in worker_threads text (Rich Trott) #41831
  • [c3721fcf9a] - doc: remove empty block from console.timeEnd() example (Rich Trott) #41831
  • [451f3331d9] - doc: feature management proposal (Michael Dawson) #41420
  • [72a857f56c] - doc: add overhead hints for heap snapshot generation (Gerhard Stöbich) #41822
  • [7aeaa27d67] - doc: fix X509 CA acronym capitalization (Tobias Nießen) #41841
  • [d3a4c62600] - doc: use sentence case for X509 error codes header (Tobias Nießen) #41829
  • [cb16fad0ab] - doc: add initial version of maintaining-http.md (Michael Dawson) #41798
  • [49f6b97b64] - doc: add registry numbers for Electron 19 and 20 (Keeley Hammond) #41814
  • [4db343bb8e] - doc: add note about resource type in async_hooks (Tony Gorez) #41797
  • [d726a3442c] - doc: use example.com for examples (Ateş Göral) #41827
  • [4eb1938f51] - doc: align tls port types with net port types (Tobias Nießen) #41799
  • [e5db13626b] - doc: use UDPv4/UDPv6 consistently with TCPv4/TCPv6 (Tobias Nießen) #41824
  • [af641bdec4] - doc: improve wording surrounding TLS 1.3 ciphers (Tobias Nießen) #41778
  • [99e0f1458b] - doc: add format-md step to release guide (Danielle Adams) #41809
  • [62f2c078ec] - doc: add v16 changelog link to iojs changelog (Danielle Adams) #41808
  • [c0629b48ce] - doc: add security-steward rotation information (Michael Dawson) #41707
  • [032df4ee17] - doc: use Object.hasOwn() in util doc (Rich Trott) #41780
  • [257c5b68d1] - doc: remove section on "recent" ECDH changes (Tobias Nießen) #41773
  • [86644b95a5] - doc: clarify that import also uses main (Ben McCann) #41720
  • [4889a3177f] - doc: update modules.md wording (Tobias Hernstig) #41728
  • [26c5efef35] - doc: update Mesteery email (Mestery) #41683
  • [4339299800] - doc: avoid incomplete sentence in cluster docs (Tobias Nießen) #41701
  • [7f7bcd7757] - doc: fix typo in contributing guides (Yoshiki Kurihara) #41723
  • [30336c23b5] - doc: improve docs to give descriptive info for the platform property (Harshil jain) #41650
  • [29678d66b8] - doc: fix link to npm documentation (Antoine du Hamel) #41712
  • [ae34900ccb] - doc: clarify treatment of non-string base in URL() (Rich Trott) #41685
  • [b83e661d30] - doc: fix typo in technical-priorities.md (Akhil Marsonya) #41694
  • [8e7df048a7] - doc: remove unadvisable cluster example (Tobias Nießen) #41668
  • [0ee468d6ba] - doc: document flow for supporting type generation (Michael Dawson) #41464
  • [9af2862a8b] - doc: clarify parameter for napi_get_cb_info (Michael Dawson) #41635
  • [a35c6c38f1] - doc: revise url.resolve() text (Rich Trott) #41661
  • [986dbb3222] - doc: clarify treatment of non-string argument to new URL() (Rich Trott) #41658
  • [2bba6cd8b6] - doc: fix documentation for MODULE_NOT_FOUND and ERR_MODULE_NOT_FOUND (Antoine du Hamel) #41645
  • [d40fd755d3] - doc: improve TLS/SSL introduction (Tobias Nießen) #41649
  • [b951764c32] - doc: modernize and simplify cluster example (Tobias Nießen) #41626
  • [0d6227ceab] - doc: simplify readline/stdin text (Rich Trott) #41583
  • [ffab924444] - doc: suggest worker threads in cluster docs (Tobias Nießen) #41616
  • [c111a13d22] - doc: add 16 and 17 to previous versions (Antoine du Hamel) #41646
  • [81e039fa9d] - doc: improve 'hex' Buffer decoding description and examples (Giora Guttsait) #41598
  • [09763a2a93] - doc: add note for handling signal events in trace events (Gabriel Trujillo) #41438
  • [2e7bf00359] - (SEMVER-MINOR) doc: deprecate buffer.slice (Benjamin Gruenbaum) #41596
  • [174155dee6] - doc: demonstrate dangers of buffer.slice() (Shalvah) #41628
  • [22484014cd] - doc: add missing word in cluster.workers details (Tobias Nießen) #41624
  • [86272ca5ac] - doc: fix async_hooks example in api docs (Akhil Marsonya) #41609
  • [5943cb9d1e] - doc: fix deprecated alias description in cluster (Tobias Nießen) #41618
  • [574c19a8c6] - doc: fix backticks around 'default' (Tobias Nießen) #41613
  • [4780449b4e] - doc: update timingSafeEqual error case (Alex Agranov) #41507
  • [9c73bd5610] - doc: simplify util.TextDecoder example (Rich Trott) #41574
  • [e72693160e] - doc: move Mesteery to collaborators (Tobias Nießen) #41597
  • [952623dff8] - doc: fix cjs example code for process.arch (Job) #41593
  • [2478b47a08] - doc: remove redunant await calls from stream docs (Giora Guttsait) #41592
  • [f6b5b8d5bb] - doc: make contributing info more discoverable (Michael Dawson) #41408
  • [6370b4df68] - doc: recommend package exports instead of requiring folders (Antoine du Hamel) #41381
  • [b5104e89fc] - doc: edit async_context context loss text (Rich Trott) #41550
  • [9ea8e49032] - doc: use sentence case for Web Crypto headers (Tobias Nießen) #41577
  • [92484d4945] - doc: make Web Crypto example spec compliant (Tobias Nießen) #41556
  • [60e7437a60] - doc: do not reference SSL when discussing SNI (Tobias Nießen) #41549
  • [31d75f2f5d] - doc: fix typos in esm.md (Yu) #41499
  • [cb4dbc10bc] - doc: adjust assignment in condition in stream doc (Rich Trott) #41510
  • [5c700fa8e2] - doc: improve Web Crypto headings related to ECC (Tobias Nießen) #41542
  • [84292165e7] - doc: clarify module system selection (Antoine du Hamel) #41383
  • [be63dc5acc] - doc: remove statement about (EC)DHE performance (Tobias Nießen) #41528
  • [c6749bc590] - doc,readline: add missing node protocol in example (Mestery) #41560
  • [74bd31213c] - domain: pass opts to EventEmitter.init (Chen Gang) #41414
  • [e1d5a354c5] - esm: improve validation of resolved URLs (Jacob Smith) #41446
  • [bfddcb11a5] - http2: fix pseudo-headers order (ofir) #41735
  • [499171bbd8] - http2: fix no response event on continue request (ofirbarak) #41739
  • [2a18859324] - http2: fix memory leak on nghttp2 hd threshold (Rafael Silva) #41502
  • [59a15e8f1a] - lib: refactor to use validateObject() validator (Mohammed Keyvanzadeh) #41845
  • [4834be373d] - lib: add comments to empty catch statements (Rich Trott) #41831
  • [76a229c4ff] - (SEMVER-MINOR) lib: add fetch (Michaël Zasso) #41749
  • [cedd26a396] - lib: refactor source map stack trace prepare (Mohammed Keyvanzadeh) #41698
  • [8ab0540d4a] - lib: throw error in structuedClone when no arguments are passed (Giora Guttsait) #41651
  • [306dd1c181] - lib: fix consistency of methods that emit warnings (Yoshiki Kurihara) #41249
  • [e500d11806] - lib: remove erroneous JSDoc entry (Rich Trott) #41604
  • [8a99eed7aa] - lib: modify DOMException to pass WPT (Khaidi Chu) #41517
  • [bd5d1583ed] - meta: update AUTHORS (Node.js GitHub Bot) #41868
  • [f5adf54eb6] - meta: update AUTHORS (Node.js GitHub Bot) #41763
  • [e5abdf7285] - meta: update mailmap/AUTHORS info for existing collaborator (Rich Trott) #41750
  • [14415fb7e0] - meta: adjust mailmap/AUTHORS to reflect README change (Rich Trott) #41751
  • [60eddadb65] - meta: update AUTHORS (Node.js GitHub Bot) #41659
  • [336c18d057] - meta: update AUTHORS (Node.js GitHub Bot) #41548
  • [9c6b078892] - module: unflag esm json modules (Geoffrey Booth) #41736
  • [2cae99425b] - (SEMVER-MINOR) node-api: add node_api_symbol_for() (Darshan Sen) #41329
  • [14cb9ea93e] - perf_hooks: remove useless calls in Histogram (Michael Dawson) #41579
  • [e1ae61bce5] - policy: revise manifest.js to avoid empty blocks (Rich Trott) #41831
  • [d83d55e6e5] - policy: check for null instead of falsy in loop (Rich Trott) #41614
  • [e11451c4e8] - policy: replace entries with keys (Mohammed Keyvanzadeh) #41482
  • [cfaa1e224d] - process: unhandledRejection support more errors (Benjamin Gruenbaum) #41682
  • [cf1d3d1565] - process: check for null instead of falsy in while loop (Rich Trott) #41614
  • [3b45c05a23] - process: use validateString validator (Mohammed Keyvanzadeh) #41595
  • [700f766bea] - process: ignore asyncId 0 in exception handler (Anatoli Papirovski) #41424
  • [cbcf794562] - readline: improve code coverage for readline promises (Erick Wendel) #41817
  • [0a31149202] - (SEMVER-MINOR) readline: add feature yank and yank pop (Ray) #41301
  • [5a4c74c647] - readline: undo previous edit when get key code 0x1F (Ray) #41392
  • [301a4f8781] - repl: check for precise values rather than falsy in loops (Rich Trott) #41614
  • [c3d3abf112] - src: slightly simplify URLHost::ToString (Anna Henningsen) #41747
  • [43f2abae7c] - src: slightly simplify V8CoverageConnection::GetFilename (Anna Henningsen) #41748
  • [bbfa58691e] - src: fix typo in js_native_api_v8.cc (Caio Agiani) #41764
  • [1ae648567a] - (SEMVER-MINOR) stream: add iterator helper find (linkgoron) #41849
  • [07b6bf4e7e] - stream: resume stream on drain (Robert Nagy) #41848
  • [f8d2955b71] - stream: initial port of test262 tests (Benjamin Gruenbaum) #41775
  • [6c82276b85] - stream: remove empty block (Rich Trott) #41831
  • [e11a079469] - stream: use synchronous error validation & validate abort signal option (iMoses) #41777
  • [9c2504a066] - (SEMVER-MINOR) stream: add reduce (Benjamin Gruenbaum) #41669
  • [a05b8328d8] - stream: use synchronous error validation on iteration helpers (iMoses) #41652
  • [311050ebaa] - stream: add asIndexedPairs (Benjamin Gruenbaum) #41681
  • [9b1a37979c] - stream: add drop and take (Benjamin Gruenbaum) #41630
  • [b3390b9ddb] - stream: never flatten on toArray (Benjamin Gruenbaum) #41615
  • [46ec74dcd1] - (SEMVER-MINOR) stream: support flatMap (Benjamin Gruenbaum) #41612
  • [16dec4268c] - stream: check for null instead of falsy in loops (Rich Trott) #41614
  • [34684a1c89] - (SEMVER-MINOR) stream: support some and every (Benjamin Gruenbaum) #41573
  • [62e1a68077] - (SEMVER-MINOR) stream: add toArray (Benjamin Gruenbaum) #41553
  • [5027e94a8a] - stream: rename unknown primordial (Mohammed Keyvanzadeh) #40622
  • [da11b95988] - (SEMVER-MINOR) stream: add forEach method (Benjamin Gruenbaum) #41445
  • [9226322394] - stream: avoid function call where possible (Rich Trott) #41534
  • [573cafe29d] - test: remove eslint-disable comments from fixtures (Rich Trott) #41859
  • [0d9248fe0a] - test: remove test-worker-memory flaky designation (Rich Trott) #41867
  • [c694dae41c] - test: enable no-empty ESLint rule (Rich Trott) #41831
  • [87902a7c17] - test: avoid using Object.prototype methods directly on objects (Rich Trott) #41801
  • [ea966404ad] - test: exclude ibm i tests until we resolve (Michael Dawson) #41812
  • [9c704b13af] - test: make worker-take-heapsnapshot non-flaky (Michael Dawson) #41684
  • [a97c817451] - test: mark test-fs-rmdir-recursive flaky on win (Michael Dawson) #41533
  • [5f1a59cb41] - test: make fs watch test more stable (Benjamin Gruenbaum) #41715
  • [abbc06b5ab] - test: fix typo in MessageChannel test (Tobias Nießen) #41746
  • [94645d8f71] - test: replace commented out expectations with tests (Darshan Sen) #41667
  • [351ebf289a] - test: improve stability of oom test (Benjamin Gruenbaum) #41681
  • [0267d27a7d] - test: use Object.hasOwn() where applicable (Rich Trott) #41664
  • [cca92107a4] - test: remove unneeded test statement (Rich Trott) #41663
  • [30df37f733] - test: remove error allowance in debugger test (Jithil P Ponnan) #41640
  • [b02bf41e18] - test: add stream map tests (Benjamin Gruenbaum) #41642
  • [12c1ac4d3b] - test: simplify test-gc-http-client (Luigi Pinca) #41620
  • [9d99c24d50] - test: prepare tests for no-cond-assign ESLint rule (Rich Trott) #41614
  • [ea6c202436] - test: move test-gc-http-client-onerror to sequential (Luigi Pinca) #41619
  • [55adcb7f12] - test: fix typo in test-stream-toArray (Tobias Nießen) #41634
  • [506a0dde0e] - test: improve test coverage of internal/worker/io (Yoshiki Kurihara) #41511
  • [6de8e51437] - test: add DataView test entry for whatwg (Mohammed Keyvanzadeh) #40622
  • [f947f72b39] - test: improve util-format code coverage (Rich Trott) #41572
  • [38e4b11391] - test: fix typo in test_js_native_api_v8 (Tobias Nießen) #41584
  • [5e3f751260] - test: add missing await in fs-rm/fs-rmdir tests (Benjamin Coe) #41545
  • [c0aec6783a] - test: increase coverage for stream writable (Rich Trott) #41486
  • [ef7c79822f] - test: add coverage for util.inspect() (Rich Trott) #41527
  • [2b4e46f07d] - timers: check for nullish instead of falsy in loops (Rich Trott) #41614
  • [0d471fb0d4] - tools: enable no-empty ESLint rule (Rich Trott) #41831
  • [72f02d87b9] - tools: update lint-md-dependencies to [email protected] (Node.js GitHub Bot) #41737
  • [32cdae7f65] - tools: update doc to [email protected] (Node.js GitHub Bot) #41854
  • [e6a1896ec1] - tools: update eslint to 8.8.0 (Node.js GitHub Bot) #41738
  • [3190e365f0] - tools: use Set instead of { [key]: true } object (Tobias Nießen) #41695
  • [3f4ce07be9] - tools: add compile_commands to ignore file (Yash Ladha) #41580
  • [5fe7cfabaa] - tools: use Set instead of { [key]: true } object (Tobias Nießen) #41675
  • [d33d1899c4] - tools: fix typo in tools/code_cache/README.md (Tobias Nießen) #41657
  • [ae7df178fd] - tools: enable no-cond-assign-ESLint rule (Rich Trott) #41614
  • [9202b86814] - tools: update lint-md-dependencies to [email protected] (Node.js GitHub Bot) #41638
  • [57ada37a1f] - tools: increase maximum line length to 120 characters (Rich Trott) #41586
  • [3084dff702] - tools: add missing .PHONY and .NOTPARALLEL targets in Makefile (Antoine du Hamel) #41515
  • [544267feb2] - tools: update lint-md-dependencies (Node.js GitHub Bot) #41440
  • [127d2fae62] - tools: bump eslint from 8.6.0 to 8.7.0 (Rich Trott) #41570
  • [ad5d7c7b06] - tools: update doc to [email protected] [email protected] (Node.js GitHub Bot) #41441
  • [34dfc60742] - tools,test: enable no-prototype-builtins (Rich Trott) #41801
  • [aee74c8156] - util: use hasOwnProperty() primordial (Rich Trott) #41692
  • [2b082def2e] - util: remove unused fast path in internal debuglog (Rich Trott) #41605
  • [0e35d01a4a] - util: check for null instead of flasy in loop (Rich Trott) #41614
  • [869cbb7b25] - (SEMVER-MINOR) worker: graduate get/setEnvironmentData APIs (James M Snell) #41272

New in Node.js 16.14.0 LTS (Feb 9, 2022)

  • Importing JSON modules now requires experimental import assertions syntax
  • This release adds experimental support for the import assertions stage 3 proposal.
  • To keep Node.js ESM implementation as compatible as possible with the HTML spec, import assertions are now required to import JSON modules (still behind the --experimental-json-modules CLI flag):
  • import info from './package.json' assert { type: 'json' };
  • Or use dynamic import:
  • const info = await import('./package.json', { assert: { type: 'json' } });
  • Contributed by Antoine du Hamel and Geoffrey Booth #40250
  • Other notable changes
  • async_hooks:
  • (SEMVER-MINOR) expose async_wrap providers (Rafael Gonzaga) #40760
  • child_process:
  • (SEMVER-MINOR) add support for URL to cp.fork (Antoine du Hamel) #41225
  • doc:
  • add @Mesteery to collaborators (Mestery) #41543
  • add @bnb as a collaborator (Tierney Cyren) #41100
  • esm:
  • (SEMVER-MINOR) graduate capturerejections to supported (James M Snell) #41267
  • (SEMVER-MINOR) add EventEmitterAsyncResource to core (James M Snell) #41246
  • events:
  • (SEMVER-MINOR) propagate weak option for kNewListener (James M Snell) #40899
  • fs:
  • (SEMVER-MINOR) accept URL as argument for fs.rm and fs.rmSync (Antoine du Hamel) #41132
  • lib:
  • (SEMVER-MINOR) make AbortSignal cloneable/transferable (James M Snell) #41050
  • (SEMVER-MINOR) add AbortSignal.timeout (James M Snell) #40899
  • (SEMVER-MINOR) add reason to AbortSignal (James M Snell) #40807
  • (SEMVER-MINOR) add unsubscribe method to non-active DC channels (simon-id) #40433
  • (SEMVER-MINOR) add return value for DC channel.unsubscribe (simon-id) #40433
  • loader:
  • (SEMVER-MINOR) return package format from defaultResolve if known (Gabriel Bota) #40980
  • perf_hooks:
  • (SEMVER-MINOR) multiple fixes for Histogram (James M Snell) #41153
  • process:
  • (SEMVER-MINOR) add getActiveResourcesInfo() (Darshan Sen) #40813
  • src:
  • (SEMVER-MINOR) add x509.fingerprint512 to crypto module (3nprob) #39809
  • (SEMVER-MINOR) add flags for controlling process behavior (Cheng Zhao) #40339
  • stream:
  • (SEMVER-MINOR) add filter method to readable (Benjamin Gruenbaum) #41354
  • (SEMVER-MINOR) add isReadable helper (Robert Nagy) #41199
  • (SEMVER-MINOR) add map method to Readable (Benjamin Gruenbaum) #40815
  • deprecate thenable support (Antoine du Hamel) #40860
  • util:
  • (SEMVER-MINOR) pass through the inspect function to custom inspect functions (Ruben Bridgewater) #41019
  • (SEMVER-MINOR) add numericSeparator to util.inspect (Ruben Bridgewater) #41003
  • (SEMVER-MINOR) always visualize cause property in errors during inspection (Ruben Bridgewater) #41002
  • timers:
  • (SEMVER-MINOR) add experimental scheduler api (James M Snell) #40909
  • v8:
  • (SEMVER-MINOR) multi-tenant promise hook api (Stephen Belanger) #39283

New in Node.js 17.4.0 (Jan 18, 2022)

  • Notable Changes:
  • [ef6f98c2e3] - (SEMVER-MINOR) child_process: add support for URL to cp.fork (Antoine du Hamel) #41225
  • [d62fe315c2] - (SEMVER-MINOR) crypto: alias webcrypto.subtle and webcrypto.getRandomValues on crypto (James M Snell) #41266
  • [fcb37e9ce5] - doc: add Mesteery to collaborators (Mestery) #41543
  • [4079fc42b7] - (SEMVER-MINOR) events: graduate capturerejections to supported (James M Snell) #41267
  • [fe21607901] - (SEMVER-MINOR) events: add EventEmitterAsyncResource to core (James M Snell) #41246
  • [6d8eb6ace6] - (SEMVER-MINOR) loader: return package format from defaultResolve if known (Gabriel Bota) #40980
  • [27c619140a] - (SEMVER-MINOR) perf_hooks: multiple fixes for Histogram (James M Snell) #41153
  • [09c25bb224] - (SEMVER-MINOR) stream: add filter method to readable (Benjamin Gruenbaum, Robert Nagy) #41354
  • [1150963217] - (SEMVER-MINOR) stream: add isReadable helper (Robert Nagy) #41199
  • [9f5a873965] - (SEMVER-MINOR) stream: add map method to Readable (Benjamin Gruenbaum, Robert Nagy) #40815
  • Commits:
  • [314102b14d] - async_hooks: add missing initialization (Michael Dawson) #41288
  • [56345a3f63] - async_hooks: fix AsyncLocalStorage in unhandledRejection cases (Bradley Farias) #41202
  • [fa84353952] - benchmark: simplify http benchmarker regular expression (Rich Trott) #38206
  • [88d760c559] - benchmark: fix benchmark/run.js handling of --set (Rich Trott) #41334
  • [dcf1ea0a3f] - benchmark,test: use Object.hasOwn() where applicable (Rich Trott) #41229
  • [4958c800da] - build: fix npm version detection (Michaël Zasso) #41575
  • [e8538c3751] - build: fix node build failures in WSL Ubuntu (MrJithil) #41476
  • [3d88ea195e] - build: fix workflow access to git history (Rich Trott) #41472
  • [b0f0ad1004] - build: start build on z/OS (alexcfyung) #41273
  • [80a3766ac7] - build: use list for mutable retval rather than tuple (Rich Trott) #41372
  • [afe1e00509] - build: remove Python 2 workaround (Rich Trott) #41357
  • [011c5f6498] - build: improve readability of texts in workflows (Mestery) #40988
  • [2233f31069] - build,tools,win: trim unused VCBUILD_PYTHON_LOCATION variable (David Sanders) #41235
  • [d9465ae614] - child_process: queue pending messages (Erick Wendel) #41221
  • [ed41fd110d] - child_process: revise argument processing (Rich Trott) #41280
  • [ef6f98c2e3] - (SEMVER-MINOR) child_process: add support for URL to cp.fork (Antoine du Hamel) #41225
  • [d62fe315c2] - (SEMVER-MINOR) crypto: alias webcrypto.subtle and webcrypto.getRandomValues on crypto (James M Snell) #41266
  • [8ea56a9606] - crypto: fix error capture when loading engine (Tobias Nießen) #41187
  • [f5b8aee1a1] - deps: upgrade npm to 8.3.1 (npm-robot) #41503
  • [af3acecd7e] - deps: V8: cherry-pick 3b6b21f595f6 (Michaël Zasso) #41457
  • [02ca5d7c7c] - deps: upgrade to libuv 1.43.0 (Colin Ihrig) #41398
  • [48e4780fd7] - doc: remove statement about client private keys (Tobias Nießen) #41505
  • [ba7160e815] - doc: fix typo in onboarding.md (Antoine du Hamel) #41544
  • [fcb37e9ce5] - doc: add Mesteery to collaborators (Mestery) #41543
  • [abbfed8789] - doc: add missing word in readable.read() text (Rich Trott) #41524
  • [712dfdc11f] - doc: add missing YAML tag in esm.md (Antoine du Hamel) #41516
  • [f443a4e8fa] - doc: expand fs.access() mode parameter docs (Colin Ihrig) #41484
  • [5c0c459976] - doc: correct checkHost behavior with wildcards etc (Tobias Nießen) #41468
  • [c632241440] - doc: remove extraneous colon in legacy subject (Tobias Nießen) #41477
  • [b7b0631b10] - doc: remove SameValue comparison reference (Rich Trott) #41460
  • [524103d6bf] - doc: update mailmap entries for mhdawson (Michael Dawson) #41437
  • [62aa190c01] - doc: add guidance on order vulns are listed in (Michael Dawson) #41429
  • [d721a758b2] - doc: update output in inspector examples (David Sanders) #41390
  • [60025bde16] - doc: add note regarding unfinished TLA (Antoine du Hamel) #41434
  • [10bdb5969e] - doc: add reference for === operator in assert.md (Rich Trott) #41442
  • [edc6a7af42] - doc: clarify uncaughtException origin for ESM (Antoine du Hamel) #41339
  • [4a369d03b4] - doc: revise HTTPRequestOptions text (Rich Trott) #41407
  • [f43bfe2e16] - doc: add reference for == and != operators (Rich Trott) #41413
  • [d3111bf0cc] - doc: add @RaisinTen to the TSC (Michael Dawson) #41419
  • [e6bed4e972] - doc: update Abstract Equality Comparison text in assert.md (Rich Trott) #41375
  • [19db19bb80] - doc: fix example commands for REPLACEME updates (Richard Lau) #41269
  • [16c0bea91d] - doc: document that require.main may be undefined (Antoine du Hamel) #41384
  • [014d4836ec] - doc: clarify entry point behavior when using loader hooks (Antoine du Hamel) #41304
  • [6460b1b32d] - doc: clarify require behavior with non .js extensions (Antoine du Hamel) #41345
  • [0d18a8c232] - doc: revise frozen-intrinsics text (Rich Trott) #41342
  • [c267bb2192] - doc: fix example description for worker_threads (Dmitry Petrov) #41341
  • [ffe17a84f2] - doc: make pull-request guide default branch agnostic (Antoine du Hamel) #41299
  • [5cfc547997] - doc: fix sync comment in observer snippet (Eric Jacobson) #41262
  • [3a80104b29] - doc: remove section about amending commits in PR guide (Thiago Santos) #41287
  • [23f97ec04e] - doc: remove legacy in-page links in v8.md (Rich Trott) #41291
  • [e819685cec] - doc: include stack trace difference in ES modules (Marcos Bérgamo) #41157
  • [dac8407944] - doc: fix example in node-api docs (Michael Dawson) #41264
  • [29563abd85] - doc: add usage recommendation for writable._destroy (Rafael Gonzaga) #41040
  • [e27e8272f7] - doc: make function signature comply with JSDoc comment (Rich Trott) #41242
  • [d83a02994c] - doc: align maxHeaderSize default with current value (Gil Pedersen) #41183
  • [730e25d7dd] - doc: add unhandledRejection to strict mode (Colin Ihrig) #41194
  • [74742c3618] - doc: adding estimated execution time (mawaregetsuka) #41142
  • [34ef5a7d4d] - doc: fix syntax error in nested conditions example (Mateusz Burzyński) #41205
  • [c9a4603913] - esm: make process.exit() default to exit code 0 (Gang Chen) #41388
  • [8a94ca7a69] - esm: refactor esm tests out of test/message (Geoffrey Booth) #41352
  • [5ebe086ea6] - esm: reconcile JSDoc vs. actual parameter name (Rich Trott) #41238
  • [9fe304b8e8] - events: clarify JSDoc entries (Rich Trott) #41311
  • [4079fc42b7] - (SEMVER-MINOR) events: graduate capturerejections to supported (James M Snell) #41267
  • [e3a0a9cb3a] - events: add jsdoc details for Event and EventTarget (James M Snell) #41274
  • [fe21607901] - (SEMVER-MINOR) events: add EventEmitterAsyncResource to core (James M Snell) #41246
  • [d4a6f2caf1] - fs: use async directory processing in cp() (Colin Ihrig) #41351
  • [0951bd94db] - fs: correct param names in JSDoc comments (Rich Trott) #41237
  • [1d75436a1c] - http: remove duplicate code (Shaw) #39239
  • [0aacd4926d] - http2: handle existing socket data when creating HTTP/2 server sessions (Tim Perry) #41185
  • [24fbbf2747] - lib: remove spurious JSDoc entry (Rich Trott) #41240
  • [e457ec05d6] - lib: fix checking syntax of esm module (Qingyu Deng) #41198
  • [f176124e8b] - lib,tools: remove empty lines between JSDoc tags (Rich Trott) #41147
  • [68fd2ac999] - loader: fix package resolution for edge case (Gabriel Bota) #41218
  • [6d8eb6ace6] - (SEMVER-MINOR) loader: return package format from defaultResolve if known (Gabriel Bota) #40980
  • [a6146c7e27] - meta: move one or more collaborators to emeritus (Node.js GitHub Bot) #41456
  • [07353e9b8b] - meta: update AUTHORS (Node.js GitHub Bot) #41475
  • [e1ff4521d7] - meta: correct my name in AUTHORS (Jacob Smith) #41444
  • [da1d5d6563] - meta: update AUTHORS (Node.js GitHub Bot) #41449
  • [0f9afa58d5] - meta: add required fields in issue templates (Rich Trott) #41378
  • [da04408075] - meta: update AUTHORS (Node.js GitHub Bot) #41374
  • [1f6c4e819b] - meta: replace API docs issue template with form (Rich Trott) #41348
  • [253c3e5488] - meta: move one or more collaborators to emeritus (Node.js GitHub Bot) #41336
  • [3e188cacc2] - meta: replace feature request template with form (Rich Trott) #41317
  • [e339220511] - meta: update AUTHORS (Node.js GitHub Bot) #41322
  • [d0d595f8f2] - meta: update node-api team name (Richard Lau) #41268
  • [a53fa2010b] - meta: move one or more collaborators to emeritus (Node.js GitHub Bot) #41248
  • [edefb41ec1] - meta: update AUTHORS (Node.js GitHub Bot) #41234
  • [6da7909797] - meta: remove community-committee from CODEOWNERS (Rich Trott) #41169
  • [5fe011a24d] - node-api: add missing initialization of last error (Michael Dawson) #41290
  • [27c619140a] - (SEMVER-MINOR) perf_hooks: multiple fixes for Histogram (James M Snell) #41153
  • [e60187d8ab] - policy: add missing JSDoc @param entry (Rich Trott) #41239
  • [ec9071f55d] - src: use std::optional for Worker thread id (Anna Henningsen) #41453
  • [6aec92f959] - src: gracefully handle errors in GetX509NameObject (Tobias Nießen) #41490
  • [7ac126b75c] - src: fix out-of-bounds check of serialization indices (JoostK) #41452
  • [93b3664b9a] - src: do IWYU for some STL includes (David Sanders) #41236
  • [337ebfcd53] - src: split out async stack corruption detection from inline fn (Anna Henningsen) #41331
  • [250e197a62] - src: store native async execution resources as v8::Local (Anna Henningsen) #41331
  • [6187e81a8e] - src: guard slightly costly check in MakeCallback more strongly (Anna Henningsen) #41331
  • [51d86fe6a0] - stream: remove always-false condition check (Rich Trott) #41488
  • [b08138f367] - stream: fix error-path function call (Rich Trott) #41433
  • [d79f8c2987] - stream: remove unused function argument (Rich Trott) #41403
  • [09c25bb224] - (SEMVER-MINOR) stream: add filter method to readable (Benjamin Gruenbaum) #41354
  • [1150963217] - (SEMVER-MINOR) stream: add isReadable helper (Robert Nagy) #41199
  • [9f5a873965] - (SEMVER-MINOR) stream: add map method to Readable (Benjamin Gruenbaum) #40815
  • [3dc65646c8] - stream: fix enqueue race condition on esm modules (Rafael Gonzaga) #40901
  • [09f2fd36a4] - test: improve test coverage of dns/promises (Yoshiki Kurihara) #41425
  • [106ef0cef4] - test: remove broken wiki link from test/common doc (Yoshiki Kurihara) #41426
  • [9d8d7c63cb] - test: do not OR F_OK in fs.access() test (Colin Ihrig) #41484
  • [3e2154deda] - test: mark test-performance-eventloopdelay flaky (Michael Dawson) #41409
  • [e808ee68d0] - test: mark test-repl-sigint-nested-eval as flaky (Michael Dawson) #41302
  • [f97f6c585d] - test: use spawnSync() full name in test-stdio-pipe-stderr (Rich Trott) #41332
  • [75c565bf18] - test: improve expectWarning error message (Rich Trott) #41326
  • [c136d597f0] - test: use spawnSync() full name (Rich Trott) #41327
  • [b2a87f770d] - test: add comments explaining _setSimultaneousAccepts deprecation tests (Yoshiki Kurihara) #41307
  • [fac0871102] - test: mark test-worker-take-heapsnapshot flaky (Michael Dawson) #41253
  • [90617b9303] - test: mark wpt/test-user-timing test flaky (Michael Dawson) #41203
  • [8f08328a01] - test: correct param name in JSDoc comment (Rich Trott) #41241
  • [367ab2a55e] - test: mark test-crypto-keygen slow on windows (Michael Dawson) #41207
  • [f067876338] - test: improve test coverage of dns/promises (Yoshiki Kurihara) #41133
  • [2e92f6f5d9] - timers: use ref counts to count timers (Darshan Sen) #41231
  • [3c8b25bec8] - tls: use optional chaining to simplify checks (Antoine du Hamel) #41337
  • [a11ff31bca] - tls: permit null as a pfx value (CallMeLaNN) #41170
  • [5129b7c802] - tools: fix small not-quite-a-bug in find-inactive-tsc.mjs (Rich Trott) #41469
  • [258ee4ba64] - tools: enable ESLint recommended configuration (Rich Trott) #41463
  • [090a674a81] - tools: enable ESLint no-constant-condition rule (Rich Trott) #41463
  • [1f4369a106] - tools: enable ESLint require-yield rule (Rich Trott) #41463
  • [8090ce7a6c] - tools: enable ESLint no-sparse-arrays rule (Rich Trott) #41463
  • [afa4f37faf] - tools: enable ESLint no-loss-of-precision rule (Rich Trott) #41463
  • [ec337b2019] - tools: replace for loop with map() (Rich Trott) #41451
  • [c91ac205a5] - tools: use GITHUB_ACTIONS env var in inactivity scripts (Rich Trott) #41422
  • [4a57d476a8] - tools: replace while+exec() with matchAll() (Rich Trott) #41406
  • [583f8d969a] - tools: fix argv bug in find-inactive-tsc.mjs (Rich Trott) #41394
  • [dcada80f30] - tools: remove conditional assignment in custom ESLint rule (Rich Trott) #41325
  • [e15e1cb030] - tools: update lint-md-dependencies to @rollup/[email protected] (Node.js GitHub Bot) #41369
  • [07683021b7] - tools: update doc to [email protected] (Node.js GitHub Bot) #41367
  • [bd8b95a5e8] - tools: remove last of error-masking in commit-queue.sh (Rich Trott) #41356
  • [9284d24df6] - tools: update eslint to 8.6.0 (Node.js GitHub Bot) #41368
  • [5fc886f68e] - tools: do not mask errors on multiple commit retrieval (Rich Trott) #41340
  • [0ca7cda962] - tools: enable jsdoc/check-param-names lint rule (Rich Trott) #41311
  • [75ff8e6505] - tools: improve section tag additions in HTML doc generator (Rich Trott) #41318
  • [9c4124706e] - tools: simplify commit-queue.sh merge command (Rich Trott) #41314
  • [137c814848] - tools: update lint-md-dependencies to [email protected] (Node.js GitHub Bot) #41315
  • [58da5d9b43] - tools: use Object.hasOwn() in alljson.mjs (Rich Trott) #41306
  • [c12cbf2020] - tools: avoid generating duplicate id attributes (Rich Trott) #41291
  • [80a114d1b7] - tools: be intentional about masking possible error in start-ci.sh (Rich Trott) #41284
  • [198528426d] - tools: use {N} for spaces in regex (Rich Trott) #41295
  • [46b364a684] - tools: consolidate update-authors.js logic (Rich Trott) #41255
  • [c546cef4bc] - tools: update doc dependency mdast-util-gfm-table to 1.0.2 (Rich Trott) #41260
  • [60c059e4bc] - tools: make license-builder.sh comply with shellcheck 0.8.0 (Rich Trott) #41258
  • [62e28f19f7] - tools: use arrow function for callback in lint-sh.js (Rich Trott) #41256
  • [e2df381da9] - tools: add double-quotes to make-v8.sh (Rich Trott) #41257
  • [dae2e5fffa] - tools: enable prefer-object-has-own lint rule (Rich Trott) #41245
  • [aa7d14768d] - tools: update eslint to 8.5.0 (Node.js GitHub Bot) #41228
  • [0c14e7e7c8] - tools: enable jsdoc/tag-lines ESLint rule (Rich Trott) #41147
  • [c486da1715] - tools: update lint-md-dependencies to @rollup/[email protected] (Node.js GitHub Bot) #41227
  • [82f492bbb0] - tools: fix CQ and auto-start-ci jobs (Antoine du Hamel) #41230
  • [c44185ca37] - tools: fix GitHub Actions status when CQ is empty (Antoine du Hamel) #41193
  • [800640adf9] - tools,benchmark,lib,test: enable no-case-declarations lint rule (Rich Trott) #41385
  • [4518fdda24] - tools,lib,test: enable ESLint no-regex-spaces rule (Rich Trott) #41463
  • [c8e8fc0ecb] - typings: add types for symbol and accessor properties on primordials (ExE Boss) #40992
  • [d733b56101] - typings: add JSDoc for string_decoder (Qingyu Deng) #38229
  • [01ad8debd3] - url,lib: pass urlsearchparams-constructor.any.js (Khaidi Chu) #41197
  • [5ed8a1c017] - util: do not reduce to a single line if not appropriate using inspect (Ruben Bridgewater) #41083
  • [ab5e94c832] - util: display a present-but-undefined error cause (Jordan Harband) #41247

New in Node.js 16.13.2 LTS (Jan 11, 2022)

  • Notable changes
  • Improper handling of URI Subject Alternative Names (Medium)(CVE-2021-44531)
  • Accepting arbitrary Subject Alternative Name (SAN) types, unless a PKI is specifically defined to use a particular SAN type, can result in bypassing name-constrained intermediates. Node.js was accepting URI SAN types, which PKIs are often not defined to use. Additionally, when a protocol allows URI SANs, Node.js did not match the URI correctly.
  • Versions of Node.js with the fix for this disable the URI SAN type when checking a certificate against a hostname. This behavior can be reverted through the --security-revert command-line option.
  • More details will be available at CVE-2021-44531 after publication.
  • Certificate Verification Bypass via String Injection (Medium)(CVE-2021-44532)
  • Node.js converts SANs (Subject Alternative Names) to a string format. It uses this string to check peer certificates against hostnames when validating connections. The string format was subject to an injection vulnerability when name constraints were used within a certificate chain, allowing the bypass of these name constraints.
  • Versions of Node.js with the fix for this escape SANs containing the problematic characters in order to prevent the injection. This behavior can be reverted through the --security-revert command-line option.
  • More details will be available at CVE-2021-44532 after publication.
  • Incorrect handling of certificate subject and issuer fields (Medium)(CVE-2021-44533)
  • Node.js did not handle multi-value Relative Distinguished Names correctly. Attackers could craft certificate subjects containing a single-value Relative Distinguished Name that would be interpreted as a multi-value Relative Distinguished Name, for example, in order to inject a Common Name that would allow bypassing the certificate subject verification.
  • Affected versions of Node.js do not accept multi-value Relative Distinguished Names and are thus not vulnerable to such attacks themselves. However, third-party code that uses node's ambiguous presentation of certificate subjects may be vulnerable.
  • More details will be available at CVE-2021-44533 after publication.
  • Prototype pollution via console.table properties (Low)(CVE-2022-21824)
  • Due to the formatting logic of the console.table() function it was not safe to allow user controlled input to be passed to the properties parameter while simultaneously passing a plain object with at least one property as the first parameter, which could be __proto__. The prototype pollution has very limited control, in that it only allows an empty string to be assigned numerical keys of the object prototype.
  • Versions of Node.js with the fix for this use a null protoype for the object these properties are being assigned to.
  • More details will be available at CVE-2022-21824 after publication.

New in Node.js 16.13.1 LTS (Dec 1, 2021)

  • Notable Changes:
  • Deps: upgrade npm to 8.1.2 (npm team)
  • Deps: update c-ares to 1.18.1 (Richard Lau)
  • This release contains a c-ares update to fix a regression introduced in Node.js v16.6.2 resolving CNAME records containing underscores
  • Doc: add VoltrexMaster to collaborators (voltrexmaster)
  • Lib: fix regular expression to detect `/` and `` (Francesco Trotta)
  • Commits:
  • Benchmark: increase crypto DSA keygen params (Brian White)
  • Build: skip long-running Actions for README-only modifications (Rich Trott)
  • Build: disable v8 pointer compression on 32bit archs (Cheng Zhao)
  • Build: fix actions pull request's branch (Mestery)
  • Build: avoid run find inactive authors on forked repo (Jiawen Geng)
  • Build: update codeowners-validator to 0.6 (FrankQiu)
  • Crypto: avoid double free (Michael Dawson)
  • Deps: upgrade npm to 8.1.2 (npm team)
  • Deps: update c-ares to 1.18.1 (Richard Lau)
  • Deps: upgrade npm to 8.1.1 (npm team)
  • Deps: V8: cherry-pick 422dc378a1da (Ray Wang)
  • Deps: add riscv64 config into openssl gypi (Lu Yahan)
  • Deps: patch V8 to 9.4.146.24 (Michaël Zasso)
  • Dgram: fix send with out of bounds offset + length (Nitzan Uziely)
  • Doc: update cjs-module-lexer repo link (Guy Bedford)
  • Doc: remove --experimental-modules documentation (FrankQiu)
  • Doc: update tracking issues of startup performance (Joyee Cheung)
  • Doc: fix markdown syntax and HTML tag misses (ryan)
  • Doc: use 'GitHub Actions workflow' instead (Mestery)
  • Doc: add node: url scheme (Daniel Nalborczyk)
  • Doc: call cwd function (Daniel Nalborczyk)
  • Doc: remove unused imports (Daniel Nalborczyk)
  • Doc: add info on project's usage of coverity (Michael Dawson)
  • Doc: fix typo in changelogs (Luigi Pinca)
  • Doc: update onboarding task (Rich Trott)
  • Doc: simplify ccache instructions (Rich Trott)
  • Doc: fix macOS environment variables for ccache (Rich Trott)
  • Doc: improve async_context introduction (Michaël Zasso)
  • Doc: use GFM footnotes in webcrypto.md (Rich Trott)
  • Doc: describe buffer limit of v8.serialize (Ray Wang)
  • Doc: use GFM footnotes in maintaining-V8.md (#40476) (Rich Trott)
  • Doc: fix fs.symlink code example (Juan José Arboleda)
  • Doc: explain backport labels (Stephen Belanger)
  • Doc: fix entry for Slack channel in onboarding.md (Rich Trott)
  • Doc: add VoltrexMaster to collaborators (voltrexmaster)
  • Doc: document considerations for inclusion in core (Rich Trott)
  • Revert "doc: fix typo in stream docs" (Luigi Pinca)
  • Doc: update link in onboarding doc (Rich Trott)
  • Doc: clarify behavior of napi_extended_error_info (Michael Dawson)
  • Doc: add updating expected assets to release guide (Richard Lau)
  • Doc: format doc/api/*.md with markdown formatter (Rich Trott)
  • Doc: specify that maxFreeSockets is per host (Luigi Pinca)
  • Doc: update Collaborator guide to reflect GitHub web UI update (Antoine du Hamel)
  • Doc: indicate n-api out params that may be NULL (Isaac Brodsky)
  • Doc: update CHANGELOG.md for Node.js 16.13.0 (Richard Lau)
  • Lib: fix regular expression to detect `/` and `` (Francesco Trotta)
  • Lib,url: correct URL's argument to pass idlharness (Khaidi Chu)
  • Meta: use form schema for flaky test template (Michaël Zasso)
  • Meta: update AUTHORS (Node.js GitHub Bot)
  • Meta: consolidate AUTHORS entries for brettkiefer (Rich Trott)
  • Meta: consolidate AUTHORS entries for alexzherdev (Rich Trott)
  • Meta: consolidate AUTHORS entries for Azard (Rich Trott)
  • Meta: move Fishrock123 to emeritus (Jeremiah Senkpiel)
  • Meta: consolidate AUTHORS entries for clakech (Rich Trott)
  • Meta: consolidate AUTHORS entries for darai0512 (Rich Trott)
  • Meta: update AUTHORS (Node.js GitHub Bot)
  • Meta: consolidate AUTHORS entries for dfabulich (Rich Trott)
  • Meta: move one or more collaborators to emeritus (Node.js GitHub Bot)
  • Meta: add Richard Lau to TSC list in README.md (Rich Trott)
  • Meta: consolidate AUTHORS entries for dguo (Rich Trott)
  • Meta: consolidate AUTHORS entries for cxreg (Rich Trott)
  • Meta: update AUTHORS (Node.js GitHub Bot)
  • Meta: consolidate AUTHORS entries for emanuelbuholzer (Rich Trott)
  • Meta: consolidate AUTHORS entries for ebickle (Rich Trott)
  • Meta: add typings to label-pr-config (Mestery)
  • Meta: consolidate AUTHORS entries for evantorrie (Rich Trott)
  • Policy: fix message for invalid manifest specifier (Rich Trott)
  • Process: refactor execution (Voltrex)
  • Src: make LoadEnvironment with string work with builtin modules path (Michaël Zasso)
  • Src: remove usage of AllocatedBuffer from node_http2 (Darshan Sen)
  • Src: fix #endif description in crypto_keygen.h (Tobias Nießen)
  • Src: throw error instead of assertion (Ray Wang)
  • Src: register external references in os bindings (Joyee Cheung)
  • Src: register external references in crypto bindings (Joyee Cheung)
  • Src: add missing inialization in agent.h (Michael Dawson)
  • Src: get embedder options on-demand (Joyee Cheung)
  • Src: ensure V8 initialized before marking milestone (Shelley Vohr)
  • Src,crypto: remove AllocatedBuffer from crypto_cipher.cc (Darshan Sen)
  • Src,fs: remove ToLocalChecked() call from fs::AfterMkdirp() (Darshan Sen)
  • Src,stream: remove *Check*() calls from non-Initialize() functions (Darshan Sen)
  • Stream: support array of streams in promises pipeline (Mestery)
  • Test: deflake child-process-pipe-dataflow (Luigi Pinca)
  • Test: skip macos sandbox test with builtin modules path (Michaël Zasso)
  • Test: add semicolon after chunk size (Luigi Pinca)
  • Test: deflake http2-cancel-while-client-reading (Luigi Pinca)
  • Test: test crypto.setEngine() using an actual engine (Darshan Sen)
  • Test: use conventional argument order in assertion (Tobias Nießen)
  • Test: fix test description (Luigi Pinca)
  • Test: pass URL's toascii.window.js WPT (Khaidi Chu)
  • Test: adjust CLI flags test to ignore blank lines in doc (Rich Trott)
  • Test: mark test-policy-integrity flaky on Windows (Rich Trott)
  • Test: fix test-datetime-change-notify after daylight change (Piotr Rybak)
  • Test: split test-crypto-dh.js (Joyee Cheung)
  • Test,doc: correct documentation for runBenchmark() (Rich Trott)
  • Test,tools: increase pummel/benchmark test timeout from 4x to 6x (Rich Trott)
  • Test,tools: increase timeout for benchmark tests (Rich Trott)
  • Tools: simplify and fix commit queue (Michaël Zasso)
  • Tools: ensure the PR was not pushed before merging (Antoine du Hamel)
  • Tools: update ESLint to 8.2.0 (Luigi Pinca)
  • Tools: use GitHub Squash and Merge feature when using CQ (Antoine du Hamel)
  • Tools: fix bug in prefer-primordials ESLint rule (Antoine du Hamel)
  • Tools: add script to update c-ares (Richard Lau)
  • Tools: abort CQ session when landing several commits (Antoine du Hamel)
  • Tools: fix commit-lint workflow (Antoine du Hamel)
  • Tools: avoid fetch extra commits when validating commit messages (Antoine du Hamel)
  • Tools: update ESLint to 8.1.0 (Luigi Pinca)
  • Tools: fix formatting of warning message in update-authors.js (Rich Trott)
  • Tools: udpate doc tools to accommodate GFM footnotes (Rich Trott)
  • Tools: add support for import assertions in linter (Antoine du Hamel)
  • Tools: update tools/lint-md dependencies to support GFM footnotes (Rich Trott)
  • Tools: update lint-md dependencies (Rich Trott)
  • Tools,meta: remove exclusions from AUTHORS (Rich Trott)
  • Tty: support more CI services in getColorDepth (Richie Bendall)
  • Typings: add more bindings typings (Mestery)
  • Typings: add JSDoc typings for inspector (Voltrex)
  • Typings: improve internal bindings typings (Mestery)
  • Typings: separate internalBinding typings (Mestery)

New in Node.js 17.2.0 (Nov 30, 2021)

  • Notable Changes:
  • [06916490af] - (SEMVER-MINOR) async_hooks: expose async_wrap providers (Rafael Gonzaga) #40760
  • [371ee64c92] - (SEMVER-MINOR) deps: update V8 to 9.6.180.14 (Michaël Zasso) #40488
  • [675c210b04] - (SEMVER-MINOR) lib: add reason to AbortSignal (James M Snell) #40807
  • [0de2850680] - (SEMVER-MINOR) src: add x509.fingerprint512 to crypto module (3nprob) #39809
  • [fa9b5c35d2] - stream: deprecate thenable support (Antoine du Hamel) #40860
  • [534409d4e7] - stream: fix finished regression when working with legacy Stream (Matteo Collina) #40858
  • Commits:
  • [48157c44c2] - Revert "async_hooks: merge resource_symbol with owner_symbol" (Darshan Sen) #40741
  • [4a971f67e4] - async_hooks: eliminate require side effects (Stephen Belanger) #40782
  • [06916490af] - (SEMVER-MINOR) async_hooks: expose async_wrap providers (Rafael Gonzaga) #40760
  • [65b33ba510] - build: remove extraneous quotation marks from commit body (Rich Trott) #40963
  • [05d652a555] - build: fix branch name for lint-md-dependencies update (Rich Trott) #40924
  • [1482c4415f] - build: fix make invocation in tools.yml (Rich Trott) #40890
  • [69de8c8143] - build: reset embedder string to "-node.0" (Michaël Zasso) #40488
  • [e793331322] - build: fix tools.yml errors (Rich Trott) #40870
  • [51ac59b047] - build: add GitHub Action to update tools modules (Rich Trott) #40644
  • [a8cc8b6554] - crypto: trim input for NETSCAPE_SPKI_b64_decode (Shelley Vohr) #40757
  • [2979c58fb0] - crypto: throw errors in SignTraits::DeriveBits (Tobias Nießen) #40796
  • [7f5931d03f] - crypto: fix build without scrypt (Martin Jansa) #40613
  • [90f35fc329] - deps: upgrade npm to 8.1.4 (npm team) #40865
  • [d461603d71] - deps: V8: cherry-pick cced52a97ee9 (Ray Wang) #40656
  • [d6ae50ff96] - deps: V8: cherry-pick 7ae0b77628f6 (Ray Wang) #40882
  • [e60053deee] - deps: V8: cherry-pick 2a0bc36dec12 (Michaël Zasso) #40178
  • [94acaae3d4] - deps: V8: patch jinja2 for Python 3.10 compat (Michaël Zasso) #40296
  • [37c9828d39] - deps: disable trap handler for Windows cross-compiler (Michaël Zasso) #40488
  • [dfb97fb501] - deps: silence irrelevant V8 warning (Michaël Zasso) #38990
  • [9ecf4be0c2] - deps: silence irrelevant V8 warning (Michaël Zasso) #37587
  • [82a8736dec] - deps: fix V8 build issue with inline methods (Jiawen Geng) #38807
  • [eab5ef5505] - deps: make v8.h compatible with VS2015 (Joao Reis) #32116
  • [d6e5dd56ff] - deps: V8: forward declaration of Rtl*FunctionTable (Refael Ackermann) #32116
  • [29a6e15480] - deps: V8: patch register-arm64.h (Refael Ackermann) #32116
  • [1ff83c4945] - deps: V8: un-cherry-pick bd019bd (Refael Ackermann) #32116
  • [371ee64c92] - (SEMVER-MINOR) deps: update V8 to 9.6.180.14 (Michaël Zasso) #40488
  • [6506a42c16] - deps: V8: cherry-pick cced52a97ee9 (Ray Wang) #40656
  • [a612ecb42f] - deps: V8: cherry-pick 7ae0b77628f6 (Ray Wang) #40882
  • [b46184df5e] - deps: update to uvwasi 0.0.12 (Colin Ihrig) #40847
  • [fa37428472] - deps: add -fno-strict-aliasing flag to libuv (Daniel Bevenius) #40631
  • [9711ccfe08] - deps: upgrade npm to 8.1.3 (npm team) #40726
  • [8e525634c6] - deps: update ICU to 70.1 (Michaël Zasso) #40658
  • [3bfc9f5b47] - doc: add information on suppressing initial break in debugger (Rich Trott) #40960
  • [8966ab3c57] - doc: improve grammar in API description (Tobias Nießen) #40959
  • [130777a61c] - doc: update BUILDING.md section on running tests (Rich Trott) #40933
  • [6e9b6652e5] - doc: remove experimental abortcontroller flag (FrankQiu) #38968
  • [b92416ff02] - doc: fix spelling of 'WebAssembly' (Geoffrey Booth) #40785
  • [cf495a6293] - doc: clarify more optional parameters in node-api (Michael Dawson) #40888
  • [694012b392] - doc: define "types", "deno" community conditions (Guy Bedford) #40708
  • [4c47b0150b] - doc: document optional params in napi_get_cb_info (Michael Dawson) #40821
  • [dfdf68f4d0] - doc: improve README.md lede section (Rich Trott) #40837
  • [9c200e1de4] - doc: add pref to using draft PR versus WIP label (Michael Dawson) #40824
  • [fe2cd09750] - doc: fix added: info for Readable.fromWeb() (Luigi Pinca) #40820
  • [c91a9ab095] - doc: tweak guidance for modules in core (Michael Dawson) #40601
  • [2ea08e9b55] - doc: claim ABI version for Electron 18 (Keeley Hammond) #40768
  • [8166b07ddc] - doc: fix transform stream example (Evan Lucas) #40777
  • [5ceb06cddf] - doc: fix linter-enforced formatting in crypto.md (Mohammed Keyvanzadeh) #40780
  • [d3070d8eea] - doc: fix corepack grammar for --force flag (Steven) #40762
  • [9271f23e3a] - doc: update maintaining ICU guide (Michaël Zasso) #40658
  • [20d7d657bb] - doc: clarify getAuthTag with authTagLength (Tobias Nießen) #40713
  • [75288fbc6b] - doc: fix order of announce work (Michael Dawson) #40725
  • [429915aa6c] - doc: add initial list of technical priorities (Michael Dawson) #40235
  • [a5a1691514] - fs: nullish coalescing to respect zero positional reads (Omar El-Mihilmy) #40716
  • [bddb4c69b7] - http: add missing initialization (Michael Dawson) #40555
  • [80ce97f514] - http: change totalSocketCount only on socket creation/close (Subhi Al Hasan) #40572
  • [675c210b04] - (SEMVER-MINOR) lib: add reason to AbortSignal (James M Snell) #40807
  • [b614b17525] - Revert "lib: use helper for readability" (Darshan Sen) #40741
  • [10a842d2d1] - lib: fix typos in lib code comments (Yoshiki) #40792
  • [3ec78d1570] - meta: add feature request label for issue template (Mestery) #40970
  • [9c897b69a1] - meta: update AUTHORS (Node.js GitHub Bot) #40900
  • [dfc6fc987a] - meta: update name and email (Viero Fernando) #40848
  • [813cf746a8] - meta: update AUTHORS (Node.js GitHub Bot) #40809
  • [e451ec9ec1] - meta: edit GOVERNANCE.md for minor updates (Rich Trott) #40798
  • [2536be7528] - meta: update AUTHORS (Node.js GitHub Bot) #40748
  • [3c8aa211cd] - module: import assertions improvements (Geoffrey Booth) #40785
  • [3a4f3873be] - process: support hrtime in the snapshot (Joyee Cheung) #40649
  • [1555dbdddc] - repl: fix and extend require/import tab complete (Mestery) #40216
  • [c2259c974b] - src: reset error struct if error code is napi_ok (JckXia) #40552
  • [3be49d6853] - src: prevent extra copies of TimerWrap::TimerCb (Darshan Sen) #40665
  • [0de2850680] - (SEMVER-MINOR) src: add x509.fingerprint512 to crypto module (3nprob) #39809
  • [924d29e88f] - src: add and fix some preprocessor comments (Tobias Nießen) #40701
  • [acbd8220a7] - src,crypto: use ByteSource::ToBuffer() in crypto_dh (Darshan Sen) #40903
  • [82b422663d] - src,crypto: remove AllocatedBuffers from crypto_spkac (Darshan Sen) #40752
  • [415b42fbdf] - src,crypto: refactor crypto_tls.* (Darshan Sen) #40675
  • [88b57bc9d3] - src,doc: add SyntaxError napi support (Idan Attias) #40736
  • [70bd90e039] - stream: stricter isReadableNodeStream (Robert Nagy) #40941
  • [86d1c0b19d] - stream: drain Transform with 0 highWaterMark (Robert Nagy) #40947
  • [fa9b5c35d2] - stream: deprecate thenable support (Antoine du Hamel) #40860
  • [dc99ae3bd6] - stream: fix the ReadableStreamBYOBReader error message (James M Snell) #40846
  • [650c9bd022] - stream: pipeline with end option (Robert Nagy) #40886
  • [534409d4e7] - stream: fix finished regression when working with legacy Stream (Matteo Collina) #40858
  • [16ee8423d6] - stream: pipeline should drain empty readable (Robert Nagy) #40654
  • [7d127d2fc1] - stream: fix non readable Duplex readableAborted (Robert Nagy) #40801
  • [7c4f9a34ae] - stream: allow calling callback before promise (Robert Nagy) #40772
  • [62171eb516] - test: mark test-fs-watch-non-recursive flaky on Windows (Luigi Pinca) #40916
  • [ae12a609a5] - test: improve test coverage of readline/promises (Yoshiki Kurihara) #40876
  • [4288c6a26e] - test: deflake cluster-concurrent-disconnect (Luigi Pinca) #40877
  • [009ab4d9bb] - test: deflake fs-promises-watch (Luigi Pinca) #40863
  • [522a30f469] - test: fix argument order in assertion (Luigi Pinca) #40842
  • [b190b0e77b] - test: deflake http2-pipe-named-pipe (Luigi Pinca) #40842
  • [c485460793] - test: use descriptive name for destination file (Luigi Pinca) #40842
  • [43e86508ae] - test: add AsyncLocalStorage tests using udp, tcp and tls sockets (Darshan Sen) #40741
  • [896073be47] - test: deflake child-process-pipe-dataflow (Luigi Pinca) #40838
  • [150c0f1b76] - test: add tests for invalid UTF-8 (git-srinivas) #40351
  • [3d896231cd] - test: fix flaky test-policy-integrity (Rich Trott) #40763
  • [dc9e68899d] - test: add semicolons for linter update (Rich Trott) #40720
  • [747247bc59] - tools: update gyp-next to v0.10.1 (Michaël Zasso) #40934
  • [6ebbd0d9dc] - tools: fix commit-lint GH Actions CI (Antoine du Hamel) #40845
  • [0201f3f604] - tools: ping TSC members identified as inactive (Rich Trott) #40915
  • [22265e3fb6] - tools: update lint-md-dependencies to [email protected] (Node.js GitHub Bot) #40929
  • [3d593aa4ed] - tools: update lint-md dependencies (Rich Trott) #40894
  • [e674f61720] - tools: update ESLint to 8.3.0 (Luigi Pinca) #40917
  • [878ba91bf6] - tools: add find-inactive-tsc (Rich Trott) #40884
  • [d97ad3080f] - tools: disable trap handler for Windows cross-compiler (Michaël Zasso) #40488
  • [e3f8988118] - tools: update V8 gypfiles for 9.6 (Michaël Zasso) #40488
  • [de4d0180dc] - tools: update @babel/eslint-parser to 7.16.3 (Node.js GitHub Bot) #40889
  • [727b34ec95] - tools: only validate first commit message of a PR (Antoine du Hamel) #40740
  • [5b08e908ea] - tools: update babel-eslint-parser to 7.16.0 (Rich Trott) #40720
  • [30623c283a] - tools: improve update scripts (Rich Trott) #40644

New in Node.js 17.1.0 (Nov 10, 2021)

  • Notable Changes:
  • [89b34ecffb] - doc: add VoltrexMaster to collaborators (voltrexmaster) #40566
  • [95e4d29eb4] - (SEMVER-MINOR) esm: add support for JSON import assertion (Antoine du Hamel) #40250
  • [1ddbae2d76] - (SEMVER-MINOR) lib: add unsubscribe method to non-active DC channels (simon-id) #40433
  • [aa61551b49] - (SEMVER-MINOR) lib: add return value for DC channel.unsubscribe (simon-id) #40433
  • [fbeb895ca6] - (SEMVER-MINOR) v8: multi-tenant promise hook api (Stephen Belanger) #39283
  • Commits:
  • [8a00dc5add] - build: skip long-running Actions for README-only modifications (Rich Trott) #40571
  • [9f46fca124] - build: disable v8 pointer compression on 32bit archs (Cheng Zhao) #40418
  • [5bef74395d] - deps: patch V8 to 9.5.172.25 (Michaël Zasso) #40604
  • [3805b806ee] - deps: upgrade npm to 8.1.2 (npm team) #40643
  • [c003ba131b] - deps: update c-ares to 1.18.1 (Richard Lau) #40660
  • [841f35cc52] - deps: upgrade npm to 8.1.1 (npm team) #40554
  • [8d16f0d2d3] - deps: V8: cherry-pick 422dc378a1da (Ray Wang) #40450
  • [cdf5c44d62] - deps: add riscv64 config into openssl gypi (Lu Yahan) #40473
  • [2b9fcdfe26] - deps: attempt to suppress macro-redefined warning (Daniel Bevenius) #40518
  • [d2839bfaa9] - deps: regenerate OpenSSL arch files (Daniel Bevenius) #40518
  • [5df8ce5cbe] - deps,build,tools: fix openssl-is-fips for ninja builds (Daniel Bevenius) #40518
  • [79bf429405] - dgram: fix send with out of bounds offset + length (Nitzan Uziely) #40568
  • [c29658fda7] - doc: update cjs-module-lexer repo link (Guy Bedford) #40707
  • [e374f3ddd9] - doc: fix lint re-enabling comment in README.md (Rich Trott) #40647
  • [ecccf48106] - doc: format v8.md in preparation for stricter linting (Rich Trott) #40647
  • [95a7117037] - doc: final round of markdown format changes (Rich Trott) #40645
  • [c104f5a9ab] - doc: remove --experimental-modules documentation (FrankQiu) #38974
  • [ac81f89bbf] - doc: update tracking issues of startup performance (Joyee Cheung) #40629
  • [65effa11fc] - doc: fix markdown syntax and HTML tag misses (ryan) #40608
  • [c78d708a16] - doc: use 'GitHub Actions workflow' instead (Mestery) #40586
  • [71bac70bf2] - doc: ref OpenSSL legacy provider from crypto docs (Tobias Nießen) #40593
  • [8f410229ac] - doc: add node: url scheme (Daniel Nalborczyk) #40573
  • [35dbed21f2] - doc: call cwd function (Daniel Nalborczyk) #40573
  • [4870a23ccc] - doc: remove unused imports (Daniel Nalborczyk) #40573
  • [5951ccc12e] - doc: simplify CHANGELOG.md (Rich Trott) #40475
  • [6ae134ecb7] - doc: correct esm spec scope lookup definition (Guy Bedford) #40592
  • [09239216f6] - doc: update CHANGELOG.md for Node.js 16.13.0 (Richard Lau) #40617
  • [46ec5ac4df] - doc: add info on project's usage of coverity (Michael Dawson) #40506
  • [7eb1a44410] - doc: fix typo in changelogs (Luigi Pinca) #40585
  • [132f6cba05] - doc: update onboarding task (Rich Trott) #40570
  • [5e2d0ed61e] - doc: simplify ccache instructions (Rich Trott) #40550
  • [c1c1738bfc] - doc: fix macOS environment variables for ccache (Rich Trott) #40550
  • [6e3e50f2ab] - doc: improve async_context introduction (Michaël Zasso) #40560
  • [1587fe62d4] - doc: use GFM footnotes in webcrypto.md (Rich Trott) #40477
  • [305c022db4] - doc: describe buffer limit of v8.serialize (Ray Wang) #40243
  • [6e39e0e10a] - doc: run license-builder (Rich Trott) #40540
  • [556e49ccb5] - doc: use GFM footnotes in maintaining-V8.md (#40476) (Rich Trott) #40476
  • [9c6a9fd5b1] - doc: use GFM footnotes in BUILDING.md (Rich Trott) #40474
  • [fd946215cc] - doc: fix fs.symlink code example (Juan José Arboleda) #40414
  • [404730ac1b] - doc: update for changed --dns-result-order default (Richard Lau) #40538
  • [acc22c7c4a] - doc: add missing entry in globals.md (Antoine du Hamel) #40531
  • [0375d958ef] - doc: explain backport labels (Stephen Belanger) #40520
  • [4993d87c49] - doc: fix entry for Slack channel in onboarding.md (Rich Trott) #40563
  • [89b34ecffb] - doc: add VoltrexMaster to collaborators (voltrexmaster) #40566
  • [6357ef15d0] - doc: document considerations for inclusion in core (Rich Trott) #40338
  • [ed04827373] - doc: update link in onboarding doc (Rich Trott) #40539
  • [34e244b8e9] - doc: clarify behavior of napi_extended_error_info (Michael Dawson) #40458
  • [5a588ff047] - doc: add updating expected assets to release guide (Richard Lau) #40470
  • [95e4d29eb4] - (SEMVER-MINOR) esm: add support for JSON import assertion (Antoine du Hamel) #40250
  • [825a683423] - http: response should always emit 'close' (Robert Nagy) #40543
  • [81cd7f3751] - lib: fix regular expression to detect `/` and `` (Francesco Trotta) #40325
  • [1ddbae2d76] - (SEMVER-MINOR) lib: add unsubscribe method to non-active DC channels (simon-id) #40433
  • [aa61551b49] - (SEMVER-MINOR) lib: add return value for DC channel.unsubscribe (simon-id) #40433
  • [d97872dd98] - meta: use form schema for flaky test template (Michaël Zasso) #40737
  • [c2fabdbce8] - meta: update AUTHORS (Node.js GitHub Bot) #40668
  • [aa98c6bdce] - meta: consolidate AUTHORS entries for brettkiefer (Rich Trott) #40599
  • [18296c3d8e] - meta: consolidate AUTHORS entries for alexzherdev (Rich Trott) #40620
  • [88d812793d] - meta: consolidate AUTHORS entries for Azard (Rich Trott) #40619
  • [d81b65ca0e] - meta: move Fishrock123 to emeritus (Jeremiah Senkpiel) #40596
  • [ec02e7b68a] - meta: consolidate AUTHORS entries for clakech (Rich Trott) #40589
  • [08e7a2ff24] - meta: consolidate AUTHORS entries for darai0512 (Rich Trott) #40569
  • [488ee51f90] - meta: update AUTHORS (Node.js GitHub Bot) #40580
  • [ba9a6c5d06] - meta: consolidate AUTHORS entries for dfabulich (Rich Trott) #40527
  • [bd06e9945e] - meta: move one or more collaborators to emeritus (Node.js GitHub Bot) #40464
  • [7cee125dcf] - meta: add Richard Lau to TSC list in README.md (Rich Trott) #40523
  • [6a771f8bcb] - meta: consolidate AUTHORS entries for dguo (Rich Trott) #40517
  • [e4c740646d] - meta: consolidate AUTHORS entries for cxreg (Rich Trott) #40490
  • [075cfbf941] - module: resolver & spec hardening /w refactoring (Guy Bedford) #40510
  • [b320387c83] - policy: fix message for invalid manifest specifier (Rich Trott) #40574
  • [ea968d54c5] - process: refactor execution (Voltrex) #40664
  • [fb7c437b0b] - src: make LoadEnvironment with string work with builtin modules path (Michaël Zasso) #40607
  • [e9388c87bf] - src: remove usage of AllocatedBuffer from node_http2 (Darshan Sen) #40584
  • [7a22f913b0] - src: fix #endif description in crypto_keygen.h (Tobias Nießen) #40639
  • [396342e26d] - src: throw error instead of assertion (Ray Wang) #40243
  • [accab383a1] - src: register external references in os bindings (Joyee Cheung) #40239
  • [a11f9ea4f0] - src: register external references in crypto bindings (Joyee Cheung) #40239
  • [ef1ace7e88] - src,crypto: use std::variant in DH params (Darshan Sen) #40457
  • [4433852f62] - src,crypto: remove AllocatedBuffer from crypto_cipher.cc (Darshan Sen) #40400
  • [814126c3ed] - src,fs: remove ToLocalChecked() call from fs::AfterMkdirp() (Darshan Sen) #40386
  • [d4b45cc249] - src,stream: remove *Check*() calls from non-Initialize() functions (Darshan Sen) #40425
  • [bac7fe0797] - stream: remove no longer necessary ComposeDuplex (Robert Nagy) #40545
  • [e58cce49fd] - test: disable warnings to fix flaky test (Antoine du Hamel) #40739
  • [8c103ab2ff] - test: skip macos sandbox test with builtin modules path (Michaël Zasso) #40607
  • [ac3bc6eed0] - test: add semicolon after chunk size (Luigi Pinca) #40487
  • [95fe9bb922] - test: deflake http2-cancel-while-client-reading (Luigi Pinca) #40659
  • [dfd0215266] - test: avoid deep comparisons with literals (Tobias Nießen) #40634
  • [5020f634b8] - test: mark test-policy-integrity flaky on Windows (Rich Trott) #40684
  • [8fa1c61e40] - test: fix test-datetime-change-notify after daylight change (Piotr Rybak) #40684
  • [179a5c5436] - test: test crypto.setEngine() using an actual engine (Darshan Sen) #40481
  • [cf6ded4db5] - test: use conventional argument order in assertion (Tobias Nießen) #40591
  • [aefb097d6a] - test: fix test description (Luigi Pinca) #40486
  • [126e669b84] - test,doc: correct documentation for runBenchmark() (Rich Trott) #40683
  • [1844463ce2] - test,tools: increase pummel/benchmark test timeout from 4x to 6x (Rich Trott) #40684
  • [f731f5ffb5] - test,tools: increase timeout for benchmark tests (Rich Trott) #40684
  • [bbc10f1849] - tools: simplify and fix commit queue (Michaël Zasso) #40742
  • [a3df50d810] - tools: ensure the PR was not pushed before merging (Antoine du Hamel) #40747
  • [306d953c15] - tools: update ESLint to 8.2.0 (Luigi Pinca) #40734
  • [b7e736843c] - tools: use GitHub Squash and Merge feature when using CQ (Antoine du Hamel) #40666
  • [50d102ec08] - tools: fix bug in prefer-primordials ESLint rule (Antoine du Hamel) #40628
  • [ec2cadef85] - tools: add script to update c-ares (Richard Lau) #40660
  • [5daa313215] - tools: notify user if format-md needs to be run (Rich Trott) #40647
  • [0787c781ce] - tools: abort CQ session when landing several commits (Antoine du Hamel) #40577
  • [ddc44ddfd9] - tools: fix commit-lint workflow (Antoine du Hamel) #40673
  • [47eddd7076] - tools: avoid unnecessary escaping in markdown formatter (Rich Trott) #40645
  • [c700de3705] - tools: avoid fetch extra commits when validating commit messages (Antoine du Hamel) #39128
  • [716963484b] - tools: update ESLint to 8.1.0 (Luigi Pinca) #40582
  • [9cb2116608] - tools: fix formatting of warning message in update-authors.js (Rich Trott) #40600
  • [507f1dbc8d] - tools: udpate doc tools to accommodate GFM footnotes (Rich Trott) #40477
  • [c2265a92c3] - tools: update license-builder.sh for OpenSSL (Rich Trott) #40540
  • [16624b404c] - tools,meta: remove exclusions from AUTHORS (Rich Trott) #40648
  • [a95e344fe5] - tty: support more CI services in getColorDepth (Richie Bendall) #40385
  • [b4194ff349] - typings: add more bindings typings (Mestery) #40415
  • [da859b56cb] - typings: add JSDoc typings for inspector (Voltrex) #38390
  • [90aa96dc44] - typings: improve internal bindings typings (Mestery) #40411
  • [1e9f3cc522] - typings: separate internalBinding typings (Mestery) #40409
  • [fbeb895ca6] - (SEMVER-MINOR) v8: multi-tenant promise hook api (Stephen Belanger) #39283

New in Node.js 16.13.0 LTS (Oct 26, 2021)

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

New in Node.js 16.12.0 LTS (Oct 20, 2021)

  • Experimental ESM Loader Hooks API
  • Node.js ESM Loader hooks have been consolidated to represent the steps involved, needed to facilitate future loader chaining:
  • Resolve: resolve [+ getFormat]
  • Load: getFormat + getSource + transformSource
  • For consistency, getGlobalPreloadCode has been renamed to globalPreload.
  • A loader exporting obsolete hook(s) will trigger a single deprecation warning (per loader) listing the errant hooks.
  • Contributed by Jacob Smith, Geoffrey Booth, and Bradley Farias - #37468
  • Other Notable Changes:
  • Deps: upgrade npm to 8.1.0 (npm team) #40463 [d1d9f2de30] - doc: deprecate http abort related (dr-js) #36670
  • (SEMVER-MINOR) vm: add support for import assertions in dynamic imports (Antoine du Hamel) #40249

New in Node.js 17.0.1 (Oct 20, 2021)

  • Fixed distribution for native addon builds
  • This release fixes an issue introduced in Node.js v17.0.0, where some V8 headers were missing from the distributed tarball, making it impossible to build native addons. These headers are now included. #40526
  • Fixed stream issues
  • Fixed a regression in stream.promises.pipeline, which was introduced in version 16.10.0, is fixed. It is now possible again to pass an array of streams to the function. #40193
  • Fixed a bug in stream.Duplex.from, which didn't work properly when an async generator function was passed to it. #40499

New in Node.js 17.0.0 (Oct 19, 2021)

  • Notable Changes:
  • Deprecations and Removals:
  • [f182b9b29f] - (SEMVER-MAJOR) dns: runtime deprecate type coercion of dns.lookup options (Antoine du Hamel) #39793
  • [4b030d0573] - doc: deprecate (doc-only) http abort related (dr-js) #36670
  • [36e2ffe6dc] - (SEMVER-MAJOR) module: subpath folder mappings EOL (Guy Bedford) #40121
  • [64287e4d45] - (SEMVER-MAJOR) module: runtime deprecate trailing slash patterns (Guy Bedford) #40117
  • OpenSSL 3.0:
  • Node.js now includes OpenSSL 3.0, specifically quictls/openssl which provides QUIC support. With OpenSSL 3.0 FIPS support is again available using the new FIPS module. For details about how to build Node.js with FIPS support please see BUILDING.md.
  • While OpenSSL 3.0 APIs should be mostly compatible with those provided by OpenSSL 1.1.1, we do anticipate some ecosystem impact due to tightened restrictions on the allowed algorithms and key sizes.
  • If you hit an ERR_OSSL_EVP_UNSUPPORTED error in your application with Node.js 17, it’s likely that your application or a module you’re using is attempting to use an algorithm or key size which is no longer allowed by default with OpenSSL 3.0. A command-line option, --openssl-legacy-provider, has been added to revert to the legacy provider as a temporary workaround for these tightened restrictions.
  • For details about all the features in OpenSSL 3.0 please see the OpenSSL 3.0 release blog.
  • Contributed in #38512, #40478
  • V8 9.5:
  • The V8 JavaScript engine is updated to V8 9.5. This release comes with additional supported types for the Intl.DisplayNames API and Extended timeZoneName options in the Intl.DateTimeFormat API.
  • You can read more details in the V8 9.5 release post - https://v8.dev/blog/v8-release-95.
  • Contributed by Michaël Zasso - #40178
  • Readline Promise API:
  • The readline module provides an interface for reading data from a Readable
  • stream (such as process.stdin) one line at a time.
  • The following simple example illustrates the basic use of the readline module:
  • import * as readline from 'node:readline/promises';
  • import { stdin as input, stdout as output } from 'process';
  • const rl = readline.createInterface({ input, output });
  • const answer = await rl.question('What do you think of Node.js? ');
  • console.log(`Thank you for your valuable feedback: ${answer}`);
  • rl.close();
  • Contributed by Antoine du Hamel - #37947
  • Other Notable Changes:
  • [1b2749ecbe] - (SEMVER-MAJOR) dns: default to verbatim=true in dns.lookup() (treysis) #39987
  • [59d3d542d6] - (SEMVER-MAJOR) errors: print Node.js version on fatal exceptions that cause exit (Divlo) #38332
  • [a35b7e0427] - deps: upgrade npm to 8.1.0 (npm team) #40463
  • [6cd12be347] - (SEMVER-MINOR) fs: add FileHandle.prototype.readableWebStream() (James M Snell) #39331
  • [d0a898681f] - (SEMVER-MAJOR) lib: add structuredClone() global (Ethan Arrowood) #39759
  • [e4b1fb5e64] - (SEMVER-MAJOR) lib: expose DOMException as global (Khaidi Chu) #39176
  • [0738a2b7bd] - (SEMVER-MAJOR) stream: finished should error on errored stream (Robert Nagy) #39235
  • Semver-Major Commits:
  • [9dfa30bdd5] - (SEMVER-MAJOR) build: compile with C++17 (MSVC) (Richard Lau) #38807
  • [9f0bc602e4] - (SEMVER-MAJOR) build: compile with --gnu++17 (Richard Lau) #38807
  • [62719c5fd2] - (SEMVER-MAJOR) deps: update V8 to 9.5.172.19 (Michaël Zasso) #40178
  • [66da32c045] - (SEMVER-MAJOR) deps,test,src,doc,tools: update to OpenSSL 3.0 (Daniel Bevenius) #38512
  • [40c6e838df] - (SEMVER-MAJOR) dgram: tighten address validation in socket.send (Voltrex) #39190
  • [f182b9b29f] - (SEMVER-MAJOR) dns: runtime deprecate type coercion of dns.lookup options (Antoine du Hamel) #39793
  • [1b2749ecbe] - (SEMVER-MAJOR) dns: default to verbatim=true in dns.lookup() (treysis) #39987
  • [ae876d420c] - (SEMVER-MAJOR) doc: update minimum supported FreeBSD to 12.2 (Michaël Zasso) #40179
  • [59d3d542d6] - (SEMVER-MAJOR) errors: print Node.js version on fatal exceptions that cause exit (Divlo) #38332
  • [f9447b71a6] - (SEMVER-MAJOR) fs: fix rmsync error swallowing (Nitzan Uziely) #38684
  • [f27b7cf95c] - (SEMVER-MAJOR) fs: aggregate errors in fsPromises to avoid error swallowing (Nitzan Uziely) #38259
  • [d0a898681f] - (SEMVER-MAJOR) lib: add structuredClone() global (Ethan Arrowood) #39759
  • [e4b1fb5e64] - (SEMVER-MAJOR) lib: expose DOMException as global (Khaidi Chu) #39176
  • [36e2ffe6dc] - (SEMVER-MAJOR) module: subpath folder mappings EOL (Guy Bedford) #40121
  • [64287e4d45] - (SEMVER-MAJOR) module: runtime deprecate trailing slash patterns (Guy Bedford) #40117
  • [707dd77d86] - (SEMVER-MAJOR) readline: validate AbortSignals and remove unused event listeners (Antoine du Hamel) #37947
  • [8122d243ae] - (SEMVER-MAJOR) readline: introduce promise-based API (Antoine du Hamel) #37947
  • [592d1c3d44] - (SEMVER-MAJOR) readline: refactor Interface to ES2015 class (Antoine du Hamel) #37947
  • [3f619407fe] - (SEMVER-MAJOR) src: allow CAP_NET_BIND_SERVICE in SafeGetenv (Daniel Bevenius) #37727
  • [0a7f850123] - (SEMVER-MAJOR) src: return Maybe from a couple of functions (Darshan Sen) #39603
  • [bdaf51bae7] - (SEMVER-MAJOR) src: allow custom PageAllocator in NodePlatform (Shelley Vohr) #38362
  • [0c6f345cda] - (SEMVER-MAJOR) stream: fix highwatermark threshold and add the missing error (Rongjian Zhang) #38700
  • [0e841b45c2] - (SEMVER-MAJOR) stream: don't emit 'data' after 'error' or 'close' (Robert Nagy) #39639
  • [ef992f6de9] - (SEMVER-MAJOR) stream: do not emit end on readable error (Szymon Marczak) #39607
  • [efd40eadab] - (SEMVER-MAJOR) stream: forward errored to callback (Robert Nagy) #39364
  • [09d8c0c8d2] - (SEMVER-MAJOR) stream: destroy readable on read error (Robert Nagy) #39342
  • [a5dec3a470] - (SEMVER-MAJOR) stream: validate abort signal (Robert Nagy) #39346
  • [bb275ef2a4] - (SEMVER-MAJOR) stream: unify stream utils (Robert Nagy) #39294
  • [b2ae12d422] - (SEMVER-MAJOR) stream: throw on premature close in Readable[AsyncIterator] (Darshan Sen) #39117
  • [0738a2b7bd] - (SEMVER-MAJOR) stream: finished should error on errored stream (Robert Nagy) #39235
  • [954217adda] - (SEMVER-MAJOR) stream: error Duplex write/read if not writable/readable (Robert Nagy) #34385
  • [f4609bdf3f] - (SEMVER-MAJOR) stream: bypass legacy destroy for pipeline and async iteration (Robert Nagy) #38505
  • [e1e669b109] - (SEMVER-MAJOR) url: throw invalid this on detached accessors (James M Snell) #39752
  • [70157b9cb7] - (SEMVER-MAJOR) url: forbid certain confusable changes from being introduced by toASCII (Timothy Gu) #38631
  • Semver-Minor Commits:
  • [6cd12be347] - (SEMVER-MINOR) fs: add FileHandle.prototype.readableWebStream() (James M Snell) #39331
  • [341312d78a] - (SEMVER-MINOR) readline: add autoCommit option (Antoine du Hamel) #37947
  • [1d2f37d970] - (SEMVER-MINOR) src: add --openssl-legacy-provider option (Daniel Bevenius) #40478
  • [3b72788afb] - (SEMVER-MINOR) src: add flags for controlling process behavior (Cheng Zhao) #40339
  • [8306051001] - (SEMVER-MINOR) stream: add readableDidRead (Robert Nagy) #36820
  • [08ffbd115e] - (SEMVER-MINOR) vm: add support for import assertions in dynamic imports (Antoine du Hamel) #40249
  • Semver-Patch Commits
  • [ed01811e71] - benchmark: increase crypto DSA keygen params (Brian White) #40416
  • [cb93fdbba5] - build: reset embedder string to "-node.0" (Michaël Zasso) #40178
  • [ed76b49834] - build: fix actions pull request's branch (Mestery) #40494
  • [6baea14506] - build: avoid run find inactive authors on forked repo (Jiawen Geng) #40465
  • [f9996d5b80] - build: include new public V8 headers in distribution (Michaël Zasso) #40423
  • [983b757f3f] - build: update codeowners-validator to 0.6 (FrankQiu) #40307
  • [73c3885e10] - build: remove duplicate check for authors.yml (Rich Trott) #40393
  • [92090d3435] - build: make scripts in gyp run with right python (Cheng Zhao) #39730
  • [28f711b552] - crypto: remove incorrect constructor invocation (gc) #40300
  • [228e703ded] - deps: workaround debug link error on Windows (Richard Lau) #38807
  • [a35b7e0427] - deps: upgrade npm to 8.1.0 (npm team) #40463
  • [d434c5382a] - deps: regenerate OpenSSL arch files (Daniel Bevenius) #40478
  • [2cebd5f02b] - deps: add missing legacyprov.c source (Daniel Bevenius) #40478
  • [bf82dcd5ba] - deps: patch V8 to 9.5.172.21 (Michaël Zasso) #40432
  • [795108a63d] - deps: V8: make V8 9.5 ABI-compatible with 9.6 (Michaël Zasso) #40422
  • [5d7bd8616e] - deps: suppress zlib compiler warnings (Daniel Bevenius) #40343
  • [fe84cd453d] - deps: upgrade Corepack to 0.10 (Maël Nison) #40374
  • [2d503ed3ff] - deps: V8: backport 239898ef8c77 (Felix Yan) #39827
  • [c9296b190f] - deps: V8: cherry-pick 2a0bc36dec12 (Michaël Zasso) #40178
  • [5b358370ad] - deps: V8: cherry-pick cf21eb36b975 (Michaël Zasso) #40178
  • [228e703ded] - deps: workaround debug link error on Windows (Richard Lau) #38807
  • [cca9b95523] - dgram: add nread assertion to UDPWrap::OnRecv (Darshan Sen) #40295
  • [7c77db0243] - dns: refactor and use validators (Voltrex) #40022
  • [a278117f28] - doc: update Collaborator guide to reflect GitHub web UI update (Antoine du Hamel) #40456
  • [4cf5563147] - doc: indicate n-api out params that may be NULL (Isaac Brodsky) #40371
  • [15ce81a464] - doc: remove ESLint comments which were breaking the CJS/ESM toggles (Mark Skelton) #40408
  • [54a85d6bb5] - doc: add pronouns for tniessen to README (Tobias Nießen) #40412
  • [40db88b7b5] - doc: format changelogs (Rich Trott) #40388
  • [4f68839910] - doc: fix missing variable in deepStrictEqual example (OliverOdo) #40396
  • [ca6adcf37e] - doc: fix asyncLocalStorage.run() description (Constantine Kim) #40381
  • [7dd3adf6dd] - doc: fix typos in n-api docs (Ignacio Carbajo) #40402
  • [eb65871ab4] - doc: format doc/guides using format-md task (Rich Trott) #40358
  • [0d50dfdf61] - doc: improve phrasing in fs.md (Arslan Ali) #40255
  • [7723148758] - doc: add link to core promises tracking issue (Michael Dawson) #40355
  • [ccee352630] - doc: esm resolver spec refactoring for deprecations (Guy Bedford) #40314
  • [1fc1b0f5f2] - doc: claim ABI version for Electron v17 (Milan Burda) #40320
  • [0d2b6aca60] - doc: assign missing deprecation number (Michaël Zasso) #40324
  • [4bd8e0efa0] - doc: fix typo in ESM example (Tobias Nießen) #40275
  • [03d25fe816] - doc: fix typo in esm.md (Mason Malone) #40273
  • [6199441b00] - doc: correct ESM load hook table header (Jacob) #40234
  • [78962d1ca1] - doc: mark readline promise implementation as experimental (Antoine du Hamel) #40211
  • [4b030d0573] - doc: deprecate (doc-only) http abort related (dr-js) #36670
  • [bbd4c6eee9] - doc: claim ABI version for Electron v15 and v16 (Samuel Attard) #39950
  • [3e774a0500] - doc: fix history for fs.WriteStream open event (Antoine du Hamel) #39972
  • [6fdd5827f0] - doc: anchor link parity between markdown and html-generated docs (foxxyz) #39304
  • [7b7a0331f4] - doc: reset added: version to REPLACEME (Luigi Pinca) #39901
  • [58257b7c61] - doc: fix typo in webstreams.md (Luigi Pinca) #39898
  • [df22736d80] - esm: consolidate ESM loader hooks (Jacob) #37468
  • [ac4f5e2437] - lib: refactor to use let (gdccwxx) #40364
  • [3d11bafaa0] - lib: make structuredClone spec compliant (voltrexmaster) #40251
  • [48655e17e1] - lib,url: correct URL's argument to pass idlharness (Khaidi Chu) #39848
  • [c0a70203de] - meta: update AUTHORS (Node.js GitHub Bot) #40485
  • [cbc7b5d424] - meta: consolidate AUTHORS entries for emanuelbuholzer (Rich Trott) #40469
  • [881174e016] - meta: consolidate AUTHORS entries for ebickle (Rich Trott) #40447
  • [b80b85e130] - meta: add typings to label-pr-config (Mestery) #40401
  • [95cf944736] - meta: consolidate AUTHORS entries for evantorrie (Rich Trott) #40430
  • [c350c217f4] - meta: consolidate AUTHORS entries for gabrielschulhof (Rich Trott) #40420
  • [a9411891cf] - meta: consolidate AUTHORS information for geirha (Rich Trott) #40406
  • [0cc37209fa] - meta: consolidate duplicate AUTHORS entries for hassaanp (Rich Trott) #40391
  • [49b7ec96a4] - meta: update AUTHORS (Node.js GitHub Bot) #40392
  • [a3c0713d9e] - meta: consolidate AUTHORS entry for thw0rted (Rich Trott) #40387
  • [eaa59571e0] - meta: update label-pr-config (Mestery) #40199
  • [6a205d7a56] - meta: use .mailmap to consolidate AUTHORS entries for ide (Rich Trott) #40367
  • [f570109094] - net: check if option is undefined (Daijiro Wachi) #40344
  • [119558b6a2] - net: remove unused ObjectKeys (Daijiro Wachi) #40344
  • [c7cd8ef6c6] - net: check objectMode first and then readble || writable (Daijiro Wachi) #40344
  • [46446623f5] - net: throw error to object mode in Socket (Daijiro Wachi) #40344
  • [38aa7cc7c7] - src: get embedder options on-demand (Joyee Cheung) #40357
  • [ad4e70c817] - src: ensure V8 initialized before marking milestone (Shelley Vohr) #40405
  • [a784258444] - src: remove usage of AllocatedBuffer from stream_* (Darshan Sen) #40293
  • [f11493dfc9] - src: add missing initialization (Michael Dawson) #40370
  • [5e248eceb6] - src: update NODE_MODULE_VERSION to 102 (Michaël Zasso) #40178
  • [3f0b62375b] - stream: convert premature close to AbortError (Robert Nagy) #39524
  • [79f4d5a345] - stream: fix toWeb typo (Robert Nagy) #39496
  • [44ee6c2623] - stream: call done() in consistent fashion (Rich Trott) #39475
  • [09ad64d66d] - stream: add CompressionStream and DecompressionStream (James M Snell) #39348
  • [a99c230305] - stream: implement streams to webstreams adapters (James M Snell) #39134
  • [a5ba28dda2] - stream: fix performance regression (Brian White) #39254
  • [ce00381751] - stream: use finished for async iteration (Robert Nagy) #39282
  • [e0faf8c3e9] - test: replace common port with specific number (Daijiro Wachi) #40344
  • [8068f40313] - test: fix typos in whatwg-webstreams explanations (Tobias Nießen) #40389
  • [eafdeab97b] - test: add test for readStream.path when fd is specified (Qingyu Deng) #40359
  • [24f045dae2] - test: replace .then chains with await (gdccwxx) #40348
  • [5b4ba52786] - test: fix "test/common/debugger" identify async function (gdccwxx) #40348
  • [1d84e916d6] - test: improve test coverage of fs.ReadStream with FileHandle (Antoine du Hamel) #40018
  • [b63e449b2e] - test: pass URL's toascii.window.js WPT (Khaidi Chu) #39910
  • [842fd234b7] - test: adapt test-repl to V8 9.5 (Michaël Zasso) #40178
  • [d7b9b9f8d7] - test: remove test-v8-untrusted-code-mitigations (Ross McIlroy) #40178
  • [7624917069] - tools: update tools/lint-md dependencies to support GFM footnotes (Rich Trott) #40445
  • [350a95b89f] - tools: update lint-md dependencies (Rich Trott) #40404
  • [012152d7d6] - tools: udpate @babel/eslint-parser (Rich Trott) #40394
  • [43c780e741] - tools: remove @babel/plugin-syntax-import-assertions (Rich Trott) #40394
  • [b39db95737] - tools: remove @bable/plugin-syntax-class-properties (Rich Trott) #40394
  • [a6fd39f44f] - tools: remove @babel/plugin-syntax-top-level-await (Rich Trott) #40394
  • [8ca76eba73] - tools: update ESLint to 8.0.0 (Rich Trott) #40394
  • [dd8e219d71] - tools: prepare ESLint rules for 8.0.0 requirements (Rich Trott) #40394
  • [0a1b399781] - tools: fix ESLint update scripts (Rich Trott) #40394
  • [d6d6b050ff] - tools: warn about duplicates when generating AUTHORS file (Rich Trott) #40304
  • [1fd984581c] - tools: update V8 gypfiles for 9.5 (Michaël Zasso) #40178
  • [a8a86387fa] - tty: enable buffering (Robert Nagy) #39253
  • [9467cbadcb] - typings: define types for os binding (Michaël Zasso) #40222
  • [70a5b86049] - typings: add missing types to options and util bindings (Michaël Zasso) #40222
  • [3815a21beb] - typings: define types for timers binding (Michaël Zasso) #40222
  • [9e64336fbf] - typings: fix declaration of primordials (Michaël Zasso) #40222
  • [f581f6da94] - url: fix performance regression (Brian White) #39778
  • [02de40246f] - v8: remove --harmony-top-level-await (Geoffrey Booth) #40226

New in Node.js 16.11.0 (Oct 9, 2021)

  • Crypto:
  • Update root certificates (Richard Lau) #40280
  • Deps:
  • Upgrade npm to 8.0.0 (npm team) #40369
  • Update nghttp2 to v1.45.1 (thunder-coding) #40206
  • Update V8 to 9.4.146.19 (Michaël Zasso) #40285
  • Tools:
  • Update certdata.txt (Richard Lau) #40280

New in Node.js 16.10.0 (Sep 22, 2021)

  • Notable Changes:
  • [fb226ff2ee] - (SEMVER-MINOR) crypto: add rsa-pss keygen parameters (Filip Skokan) #39927
  • [85206b7311] - deps: upgrade npm to 7.24.0 (npm team) #40167
  • [98f56d179c] - deps: update Acorn to v8.5.0 (Michaël Zasso) #40015
  • [9655329772] - doc: add Ayase-252 to collaborators (Qingyu Deng) #40078
  • [59fff925be] - (SEMVER-MINOR) fs: make open and close stream override optional when unused (Antoine du Hamel) #40013
  • [a63a4bce90] - (SEMVER-MINOR) http: limit requests per connection (Artur K) #40082
  • The maximum number of requests a socket can handle before closing keep alive connection can be set with server.maxRequestsPerSocket.
  • [9a672961fa] - (SEMVER-MINOR) src: add --no-global-search-paths cli option (Cheng Zhao) #39754
  • Adds the --no-global-search-paths command-line option to not search modules from global paths like $HOME/.node_modules and $NODE_PATH.
  • [fe920b6cbf] - (SEMVER-MINOR) src: make napi_create_reference accept symbol (JckXia) #39926
  • [97f3072ceb] - (SEMVER-MINOR) stream: add signal support to pipeline generators (Robert Nagy) #39067

New in Node.js 16.9.1 (Sep 11, 2021)

  • Notable Changes:
  • This release fixes a regression introduced by the V8 9.3 update in Node.js 16.9.0.
  • Commits:
  • [04f1943109] - deps: V8: cherry-pick 9a607043cb31 (Jiawen Geng) #40046

New in Node.js 16.9.0 (Sep 7, 2021)

  • Notable Changes:
  • [34c627e4bc] - (SEMVER-MINOR) crypto: add RSA-PSS params to asymmetricKeyDetails (Tobias Nießen) #39851
  • [20da0a5379] - (SEMVER-MINOR) module: support pattern trailers (Guy Bedford) #39635
  • [cb44781371] - (SEMVER-MINOR) stream: add stream.compose (Robert Nagy) #39029
  • Commits:
  • [2343c394fb] - async_hooks: use resource stack for AsyncLocalStorage run (Stephen Belanger) #39890
  • [00951827cd] - Revert "build: add windows-2022 to GitHub test matrix" (Michaël Zasso) #39982
  • [e7834535b3] - build: add windows-2022 to GitHub test matrix (Michaël Zasso) #39857
  • [c49b0c0dd4] - build: add support for Visual Studio 2022 (Michaël Zasso) #39857
  • [afdb665e57] - build: fix find-inactive-collaborators workflow token (Rich Trott) #39909
  • [0ff88f362f] - build: update token used for pull requests (Rich Trott) #39907
  • [beca890330] - build: adapt v8_pch.h to V8 9.3 (Michaël Zasso) #39469
  • [2170346aa3] - build: reset embedder string to "-node.0" (Michaël Zasso) #39947
  • [d33ab968ab] - cluster: fix comment regarding child_process file (Yash Ladha) #39308
  • [585199497f] - crypto: fix regression in RSA-PSS keygen (Tobias Nießen) #39937
  • [34c627e4bc] - (SEMVER-MINOR) crypto: add RSA-PSS params to asymmetricKeyDetails (Tobias Nießen) #39851
  • [1dd91582da] - crypto: fix rsa-pss one-shot sign/verify error handling (Filip Skokan) #39830
  • [20cf47004e] - crypto: fix JWK RSA-PSS SubtleCrypto.exportKey (Filip Skokan) #39828
  • [e25dc8e470] - deps: upgrade npm to 7.21.1 (npm team) #39904
  • [9270684837] - deps: update archs files for OpenSSL-1.1.1l+quic (Richard Lau) #39867
  • [4b5bbec6cc] - deps: upgrade openssl sources to OpenSSL_1_1_1l+quic (Richard Lau) #39867
  • [71659fd4ba] - (SEMVER-MINOR) deps: add corepack (Maël Nison) #39608
  • [7470db0dfb] - deps: restore minimum ICU version to 68 (Michaël Zasso) #39470
  • [92d83d18d2] - deps: make V8 9.3 abi-compatible with 9.0 (Michaël Zasso) #39947
  • [0140face81] - deps: V8: cherry-pick 00bb1a77c03e (Darshan Sen) #39829
  • [3e1053e755] - deps: V8: cherry-pick 81814ed44574 (Stephen Belanger) #39719
  • [d9d0104878] - deps: silence irrelevant V8 warning (Michaël Zasso) #38990
  • [cd9b03ea40] - deps: silence irrelevant V8 warnings (Michaël Zasso) #37587
  • [b83cab712f] - deps: fix V8 build issue with inline methods (Jiawen Geng) #35415
  • [068824d754] - deps: make v8.h compatible with VS2015 (Joao Reis) #32116
  • [54f4f1af50] - deps: V8: forward declaration of Rtl*FunctionTable (Refael Ackermann) #32116
  • [10ba1cb8b2] - deps: V8: patch register-arm64.h (Refael Ackermann) #32116
  • [3ce6f72124] - deps: V8: un-cherry-pick bd019bd (Refael Ackermann) #32116
  • [f43c292520] - (SEMVER-MINOR) deps: update V8 to 9.3.345.16 (Michaël Zasso) #39947
  • [9e782eb758] - doc: remove {C,Dec}ompressionStream documentation (Luigi Pinca) #39899
  • [7857e9cc77] - doc: add descriptions about when options.mode is ignored (Ray) #39881
  • [d43b555047] - doc: remove danbev from TSC member list (Daniel Bevenius) #39978
  • [fc01dd916e] - doc: add missing changes to generateKeyPair(Sync) (Tobias Nießen) #39963
  • [953f2e9f88] - doc: add nodejs/tweet issue creation to sec. doc (Daniel Bevenius) #39940
  • [29c4b07716] - doc: update WASI example to use import.meta.url (Guy Bedford) #39925
  • [9eb4a70c14] - doc: move reference to OpenSSL flags SSL_OP_* (Tobias Nießen) #39935
  • [8ea4befc82] - doc: add docs for duplex.allowHalfOpen property (Tim Perry) #39126
  • [bc2b73ec9b] - doc: add FrankQiu to a triager (FrankQiu) #39922
  • [8b68f8ec38] - doc: add VoltrexMaster to triagers (voltrexmaster) #39920
  • [3a8f77ac0d] - doc: document JavaScript tool for benchmark comparison (Michaël Zasso) #39835
  • [4ac703ca8e] - doc: add Mesteery to triagers (Mestery) #39887
  • [d059a5186b] - doc: update maintaining openssl guide (Richard Lau) #39878
  • [486150580c] - doc: move ERR_WORKER_UNSPPORTED_EXTENSION to legacy (Qingyu Deng) #39788
  • [a4b8c13798] - events: protect property defs against prototype polution (James M Snell) #39773
  • [cfbe9065ae] - events: add brand checks for detached accessors (James M Snell) #39773
  • [112af69194] - fs: add docs and tests for AsyncIterable support in fh.writeFile (Antoine du Hamel) #39836
  • [402071bc45] - meta: remove duplicate AUTHORS entry for NigelKibodeaux (Rich Trott) #39967
  • [3588f07603] - meta: add mailmap entry for Ethan-Arrowood (Rich Trott) #39930
  • [259e0cf4d7] - meta: add mailmap entry for branisha (Rich Trott) #39889
  • [bc236a6714] - meta: update .mailmap to remove duplicate AUTHORS entry for addaleax (Rich Trott) #39880
  • [20da0a5379] - (SEMVER-MINOR) module: support pattern trailers (Guy Bedford) #39635
  • [879dc4658e] - src: remove usage of AllocatedBuffer from src/node_buffer.cc (Darshan Sen) #39941
  • [79ce096470] - src: remove extra semicolons outside fns (Shelley Vohr) #39800
  • [cb44781371] - (SEMVER-MINOR) stream: add stream.compose (Robert Nagy) #39029
  • [ca9b781d20] - test: use assert.match instead of regexp.test (Michaël Zasso) #39928
  • [007e2855af] - test: use error code mapping in place of raw errno (Darshan Sen) #38675
  • [00529b0ef2] - test: add test to verify other extension can be loaded by worker (Qingyu Deng) #39788
  • [4e7212c88c] - test: update error message keywords (leeight) #39826
  • [549d717722] - test: adapt test-fs-read to V8 9.3 (Michaël Zasso) #39469
  • [644b25e068] - test: adapt test-util-inspect to V8 9.3 (Michaël Zasso) #39469
  • [105bff9ea5] - test: adapt test-v8-flags to V8 9.3 (Michaël Zasso) #39469
  • [d92bd9a982] - tools: add support for import assertions in linter (Antoine du Hamel) #39924
  • [9763561e30] - tools: update gyp-next to v0.10.0 (Michaël Zasso) #39857
  • [9f105c73fc] - tools: update V8 gypfiles for 9.3 (Michaël Zasso) #39469
  • [16271d2f50] - worker: remove file extension check (Qingyu Deng) #39788
  • [3b1ce93e03] - worker: add brand checks for detached MessageEvent accessors (James M Snell) #39773

New in Node.js 14.17.6 LTS (Sep 1, 2021)

  • Notable Changes:
  • These are vulnerabilities in the node-tar, arborist, and npm cli modules which
  • are related to the initial reports and subsequent remediation of node-tar
  • vulnerabilities CVE-2021-32803
  • and CVE-2021-32804.
  • Subsequent internal security review of node-tar and additional external bounty
  • reports have resulted in another 5 CVE being remediated in core npm CLI
  • dependencies including node-tar, and npm arborist.

New in Node.js 16.8.0 (Aug 26, 2021)

  • Notable Changes:
  • doc: deprecate type coercion for dns.lookup options (Antoine du Hamel) #38906
  • (SEMVER-MINOR) stream: add stream.Duplex.from utility (Robert Nagy) #39519
  • (SEMVER-MINOR) stream: add isDisturbed helper (Robert Nagy) #39628
  • (SEMVER-MINOR) util: expose toUSVString (Robert Nagy) #39814

New in Node.js 16.7.0 (Aug 18, 2021)

  • Notable Changes:
  • Fs:
  • Experimental: add recursive cp method (Benjamin Coe) #39372

New in Node.js 16.6.2 (Aug 11, 2021)

  • Notable Changes:
  • CVE-2021-3672/CVE-2021-22931: Improper handling of untypical characters in domain names (High)
  • Node.js was vulnerable to Remote Code Execution, XSS, application crashes due to missing input validation of hostnames returned by Domain Name Servers in the Node.js DNS library which can lead to the output of wrong hostnames (leading to Domain Hijacking) and injection vulnerabilities in applications using the library. You can read more about it at https://nvd.nist.gov/vuln/detail/CVE-2021-22931.
  • CVE-2021-22930: Use after free on close http2 on stream canceling (High)
  • Node.js was vulnerable to a use after free attack where an attacker might be able to exploit memory corruption to change process behavior. This release includes a follow-up fix for CVE-2021-22930 as the issue was not completely resolved by the previous fix. You can read more about it at https://cve.mitre.org/cgi-bin/cvename.cgi?name=CVE-2021-22930.
  • CVE-2021-22939: Incomplete validation of rejectUnauthorized parameter (Low)
  • If the Node.js HTTPS API was used incorrectly and "undefined" was in passed for the "rejectUnauthorized" parameter, no error was returned and connections to servers with an expired certificate would have been accepted. You can read more about it at https://nvd.nist.gov/vuln/detail/CVE-2021-22939.

New in Node.js 16.6.1 (Aug 3, 2021)

  • Notable Changes:
  • Updated npm to 7.20.3 (npm team) #39579
  • Reverted an ABI-breaking change from V8 9.2 that could impact some native modules (Michaël Zasso) #39624
  • Fixed a bug in error handling known to affect at least Webpack and Jest (Guy Bedford) #39593

New in Node.js 16.6.0 (Jul 30, 2021)

  • Ntable Changes:
  • Say hell t V8 9.2
  • The V8 engine is updated t versin 9.2.230.21.
  • It ntably intrduces the new Array.prttype.at methd
  • ther ntable changes:
  • CVE-2021-22930: Use after free n clse http2 n stream canceling (High) - #39423
  • Nde.js is vulnerable t a use after free attack where an attacker might be able t explit the memry crruptin, t change prcess behavir. Yu can read mre abut it in https://cve.mitre.rg/cgi-bin/cvename.cgi?name=CVE-2021-22930
  • [f93d2ac587] - inspectr: mark as stable (Gireesh Punathil) #37748
  • [89b4770d5c] - punycde: add pending deprecatin (Antine du Hamel) #38444
  • [b67214fe31] - (SEMVER-MINR) repl: enable --experimental-repl-await /w pt-ut (hemanth.hm) #34733

New in Node.js 16.5.0 (Jul 14, 2021)

  • (SEMVER-MINOR) fs: allow empty string for temp directory prefix (Voltrex) #39028
  • deps: upgrade npm to 7.19.1 (npm team) #39225
  • Experimental Web Streams API:
  • Node.js now exposes an experimental implementation of the Web Streams API.

New in Node.js 16.4.2 (Jul 5, 2021)

  • Notable Changes:
  • Node.js 16.4.1 introduced a regression in the Windows installer on
  • non-English locales that is being fixed in this release. There is no
  • need to download this release if you are not using the Windows
  • installer.
  • Commits:
  • [76e709ec63] - win,msi - use localized "Authenticated Users" name (Richard Lau) #39241

New in Node.js 14.17.2 LTS (Jul 1, 2021)

  • Notable Changes:
  • Vulnerabilities fixed:
  • CVE-2021-22918: libuv upgrade - Out of bounds read (Medium)
  • Node.js is vulnerable to out-of-bounds read in libuv's uv__idna_toascii() function which is used to convert strings to ASCII. This is called by Node's dns module's lookup() function and can lead to information disclosures or crashes. You can read more about it in https://cve.mitre.org/cgi-bin/cvename.cgi?name=CVE-2021-22918
  • CVE-2021-22921: Windows installer - Node Installer Local Privilege Escalation (Medium)
  • Node.js is vulnerable to local privilege escalation attacks under certain conditions on Windows platforms. More specifically, improper configuration of permissions in the installation directory allows an attacker to perform two different escalation attacks: PATH and DLL hijacking. You can read more about it in https://cve.mitre.org/cgi-bin/cvename.cgi?name=CVE-2021-22921

New in Node.js 16.4.0 (Jun 23, 2021)

  • Async_hooks: check for empty contexts before removing (Bryan English) #39095
  • Async_hooks: switch between native and context hooks correctly (Stephen Belanger) #38912
  • - (SEMVER-MINOR) async_hooks: stabilize part of AsyncLocalStorage (Vladimir de Turckheim) #37675
  • Bootstrap: move event loop handle checking into snapshot builder (Joyee Cheung) #39007
  • Bootstrap: split NodeMainInstance::Run() (Joyee Cheung) #39007
  • Build: reconfigure when gyp files change on Windows (Joyee Cheung) #39066
  • Revert "build: work around bug in MSBuild v16.10.0" (Michaël Zasso) #38977
  • Build: reset embedder string to "-node.0" (Michaël Zasso) #38273
  • Build: make build-addons errors fail the build (Richard Lau) #38983
  • Build: fix commit-queue default branch (Mary Marchini) #38998
  • Build: don't pass python override to V8 build (Richard Lau) #38969
  • Build: correct Xcode spelling in .gitignore (bl-ue) #38895
  • Build: fast-track npm PRs and dont-land them on LTS (Michaël Zasso) #38885
  • Build: dont-land gyp-next PRs on LTS branches (Michaël Zasso) #38887
  • Child_process: refactor to use validateBoolean (Qingyu Deng) #38927
  • - (SEMVER-MINOR) child_process: allow options.cwd receive a URL (Khaidi Chu) #38862
  • Crypto: fix aes crash when tag length too small (Khaidi Chu) #38914
  • Crypto: use compatible version of EVP_CIPHER_name (Shelley Vohr) #38925
  • Crypto: fix label cast in EVP_PKEY_CTX_set0_rsa_oaep_label (Shelley Vohr) #38926
  • Crypto: use EVP_get_cipherbynid directly (Shelley Vohr) #38901
  • Crypto: add missing rand.h include (Shelley Vohr) #38864
  • Debugger: rename internal library for clarity (Rich Trott) #39080
  • Debugger: use ERR_DEBUGGER_STARTUP_ERROR in _inspect.js (Rich Trott) #39024
  • Debugger: use error codes in debugger REPL (Rich Trott) #39024
  • Debugger: use ERR_DEBUGGER_ERROR in debugger client (Rich Trott) #39024
  • Debugger: remove unnecessary boilerplate copyright comment (Rich Trott) #38952
  • Debugger: reduce scope of eslint disable comment (Rich Trott) #38946
  • Deps: upgrade npm to 7.18.1 (npm-robot) #39065
  • Deps: upgrade npm to 7.17.0 (npm-robot) #38999
  • Deps: make V8 9.1 abi-compatible with 9.0 (Michaël Zasso) #38991
  • Deps: V8: cherry-pick fa4cb172cde2 (Michaël Zasso) #38273
  • Deps: V8: cherry-pick 4c074516397b (Michaël Zasso) #38273
  • Deps: V8: cherry-pick 5f4413194480 (Michaël Zasso) #38273
  • Deps: V8: cherry-pick 272445f10927 (Michaël Zasso) #38273
  • Deps: V8: cherry-pick c0fceaa0669b (Michaël Zasso) #38273
  • Deps: V8: cherry-pick d59db06bf542 (Michaël Zasso) #38273
  • Deps: silence irrelevant V8 warnings (Michaël Zasso) #37587
  • Deps: V8: backport aaacffa1e003 (Michaël Zasso) #38273
  • Deps: fix V8 build issue with inline methods (Jiawen Geng) #35415
  • Deps: make v8.h compatible with VS2015 (Joao Reis) #32116
  • Deps: V8: forward declaration of Rtl*FunctionTable (Refael Ackermann) #32116
  • Deps: V8: patch register-arm64.h (Refael Ackermann) #32116
  • Deps: V8: un-cherry-pick bd019bd (Refael Ackermann) #32116
  • (SEMVER-MINOR) deps: update V8 to 9.1.269.36 (Michaël Zasso) #38273
  • Deps: upgrade npm to 7.16.0 (npm-robot) #38920
  • - (SEMVER-MINOR) dns: allow --dns-result-order to change default dns verbatim (Ouyang Yadong) #38099
  • Doc: remove references to deleted freenode channels (devsnek) #39047
  • Doc: fix typos (bl-ue) #39049
  • Doc: add missing parameter types (Voltrex) #39013
  • Doc: clearify that http does chunked encoding itself (Mao Wtm) #28379
  • Doc: add missing changelog links (Antoine du Hamel) #39016
  • Doc: clarify that only one Python version is required to build (bl-ue) #38894
  • Doc: fix markup for aesImportParams (Tobias Nießen) #38898
  • Doc: use await in filehandle.truncate() snippet (RA80533) #38939
  • Doc: fixed typo in process.md (Derevianchenko Maksym) #38941
  • Doc: add missing semis after classes (Darshan Sen) #38931
  • Doc: update write callback documentation (Simone Busoli) #38959
  • Doc: mark util.inherits as legacy (Voltrex) #38896
  • Doc: clarify when readable._read(...) is called (Shaun Keys) #38726
  • Doc: mark Node.js v15.x as EOL (Antoine du Hamel) #38891
  • Doc: fix .mjs syntax in crypto.md (himself65) #38882
  • Doc,fs: remove experimental status for WHATWG URL as path (Antoine du Hamel) #38870
  • Errors: don't rekey on primitive type (Benjamin Coe) #39025
  • Errors: add ERR_DEBUGGER_STARTUP_ERROR (Rich Trott) #39024
  • Errors: add ERR_DEBUGGER_ERROR (Rich Trott) #39024
  • Revert "http: make HEAD method to work with keep-alive" (Michaël Zasso) #38949
  • Lib: remove semicolon in preparation for babel/eslint-parser update (Rich Trott) #39094
  • Lib: make internal/options lazy (Joyee Cheung) #38993
  • Lib: add JSDoc typings for child_process (Voltrex) #38222
  • Lib: make primordials Promise methods safe (Antoine du Hamel) #38650
  • Lib: refactor debuglog init (Antoine du Hamel) #38838
  • Meta: update label-pr-config (Michaël Zasso) #38950
  • Module: fix legacy node specifier resolution to resolve "main" field (Antoine du Hamel) #38979
  • Net: use missing validator (Voltrex) #38984
  • Node-api: avoid crashing on passed-in null string (Gabriel Schulhof) #38923
  • Node-api: avoid SecondPassCallback crash (Michael Dawson) #38899
  • Node-api: rtn pending excep on napi_new_instance (legendecas) #38798
  • Report: generates report on threads with no isolates (legendecas) #38994
  • - (SEMVER-MINOR) src: allow to negate boolean CLI flags (Michaël Zasso) #39023
  • Src: cleanup uv_fs_t regardless of success or not (legendecas) #38996
  • Src: refactor to use locale functions (Darshan Sen) #39014
  • Src: fix multiple AddLinkedBinding() calls (Anna Henningsen) #39012
  • Src: throw error in LoadBuiltinModuleSource when reading fails (Joyee Cheung) #38904
  • Src: skip test_fatal/test_threads for Debug builds (Daniel Bevenius) #38805
  • - (SEMVER-MINOR) src: make InitializeOncePerProcess more flexible (Shelley Vohr) #38888
  • Src: add not-weak DCHECK to PersistentToLocal::Strong (Anna Henningsen) #38875
  • Src,test: raise error for --enable-fips when no FIPS (Daniel Bevenius) #38859
  • Src,url: separate some tables out of node_url.cc (Khaidi Chu) #38988
  • Stream: fix pipeline pump (Robert Nagy) #39006
  • Test: move inspector-cli tests to sequential (Rich Trott) #39079
  • Test: improve buffer coverage (Rongjian Zhang) #38538
  • Test: fix name of variable in inspector-cli test (Tobias Nießen) #38869
  • Test: fix typo (Houssem Chebab) #39045
  • Test: fix typo in test-http2-invalidheaderfield.js (Ikko Ashimine) #39021
  • Test: adapt abort tests for new Windows code (Michaël Zasso) #38273
  • Test: adapt test-linux-perf to V8 changes (Michaël Zasso) #38273
  • Test: fix V8 serdes test for V8 9.1 (Michaël Zasso) #38273
  • Test: remove obsolete TLS test (Rich Trott) #39001
  • Test: improve coverage of lib/events.js (Rongjian Zhang) #38582
  • Test: http outgoing _headers setter null (ycjcl868) #38881
  • Test: suppress warning in test_environment.cc (Daniel Bevenius) #38868
  • Tls: tweak clientCertEngine argument parsing (Shelley Vohr) #38900
  • Tools: update babel-eslint-parser to 7.14.5 (Rich Trott) #39094
  • Tools: update ESLint to 7.29.0 (Rich Trott) #39083
  • Tools: fix typo (Houssem Chebab) #39044
  • Tools: update doctool dependencies, migrate to ESM (Michaël Zasso) #38966
  • Tools: update V8 gypfiles for 9.1 (Michaël Zasso) #38273
  • Tools: avoid crashing CQ when git push fails (Antoine du Hamel) #36861
  • Tools: fix typo in commit-queue.sh (bl-ue) #39000
  • Tools: update ESLint to 7.28.0 (Luigi Pinca) #38955
  • Tools: refactor snapshot builder (Joyee Cheung) #38902
  • Tools: bump remark-preset-lint-node to 2.3.0 (Rich Trott) #38910
  • Tools: update gyp-next to v0.9.1 (Jiawen Geng) #38867
  • Tools,doc: forbid CJS globals in ESM code snippets (Antoine du Hamel) #38889
  • Url,src: simplify ipv6 logic by using uv_inet_pton (Khaidi Chu) #38842
  • Vm: use missing validator (Voltrex) #38935
  • Worker: do not look up context twice in PostMessage (Anna Henningsen) #38784

New in Node.js 14.17.1 LTS (Jun 15, 2021)

  • Notable Changes:
  • [6035492c8f] - deps: update ICU to 69.1 (Michaël Zasso) #38178
  • [9417fd0bc8] - errors: align source-map stacks with spec (Benjamin Coe) #37252
  • Commits:
  • [87fa636953] - assert: refactor to use more primordials (Antoine du Hamel) #36234
  • [cfff3b4462] - assert: refactor to avoid unsafe array iteration (Antoine du Hamel) #37344
  • [dd18def7db] - async_hooks: refactor to avoid unsafe array iteration (Antoine du Hamel) #37125
  • [5f3e96b570] - async_hooks,doc: replace process.stdout.fd with 1 (Darshan Sen) #38382
  • [f4cb8b8281] - benchmark: avoid using console.log() (Antoine du Hamel) #38370
  • [9e4c1f2f2c] - benchmark: use process.hrtime.bigint() (Antoine du Hamel) #38369
  • [3c886e0ad6] - buffer: remove TODOs in atob / btoa (Khaidi Chu) #38548
  • [c5b86f8c2f] - buffer: remove unreachable code (Rongjian Zhang) #38537
  • [9ae2a27d44] - buffer: make FastBuffer safe to construct (Antoine du Hamel) #36587
  • [ff546ff744] - buffer: refactor to use primordials instead of Array#reduce (Antoine du Hamel) #36392
  • [5acf0a5ba3] - buffer: refactor to use more primordials (Antoine du Hamel) #36166
  • [52fd42ec46] - build: work around bug in MSBuild v16.10.0 (Michaël Zasso) #38873
  • [5df0f35bf6] - build: add workaround for V8 builds (Richard Lau) #38632
  • [754aa384e0] - build: remove dependency on distutils.spawn (Richard Lau) #38600
  • [5de7e64f3a] - build: fix make test-npm (Ruy Adorno) #36369
  • [e5fae63108] - child_process: reduce abort handler code duplication (Rich Trott) #36644
  • [598d2bdf09] - child_process: treat already-aborted controller as aborting (Rich Trott) #36644
  • [8d7708bdef] - child_process: refactor to use more primordials (Antoine du Hamel) #36003
  • [b8c4d30e77] - deps: update to [email protected] (Guy Bedford) #38450
  • [6035492c8f] - deps: update ICU to 69.1 (Michaël Zasso) #38178
  • [51dad8cabb] - deps: V8: cherry-pick 035c305ce776 (Michaël Zasso) #38497
  • [a467125c8d] - deps: V8: cherry-pick dfcdf7837e23 (Benjamin Coe) #36573
  • [acc9fad2ba] - deps: V8: cherry-pick 86991d0587a1 (Benjamin Coe) #36254
  • [d67827744b] - deps: V8: cherry-pick 530080c44af2 (Milad Fa) #38508
  • [bac9ba4f8a] - dgram: extract cluster lazy loading method to make it testable (Rongjian Zhang) #38563
  • [f5b2115b76] - dgram: refactor to use more primordials (Antoine du Hamel) #36286
  • [cd7cf0547a] - dns: refactor to use more primordials (Antoine du Hamel) #36314
  • [9f67c0852c] - doc: cleanup events.md structure (James M Snell) #36100
  • [41cfe645c0] - doc: fix JS flavor selection (Antoine du Hamel) #37791
  • [7c4748b0dc] - doc: use HEAD instead of master for links (Antoine du Hamel) #38518
  • [26426577ff] - doc: remove import.meta.resolve parent URL type (Kevin Locke) #38585
  • [88055abf19] - doc: document buffer.kStringMaxLength (Tobias Nießen) #38688
  • [2e8dfee165] - doc: clarify synchronous blocking of Worker stdio (James M Snell) #38658
  • [212cd5cf05] - doc: update contact info (Gabriel Schulhof) #38689
  • [fa35c0662b] - doc: change color of doctag on night mode (Qingyu Deng) #38652
  • [4c67437c53] - doc: clarify DiffieHellmanGroup class docs (Nitzan Uziely) #38363
  • [e90c60b1e3] - doc: use AIX instead of Aix in fs.md (Rich Trott) #38535
  • [dc67fec1b4] - doc: remove extraneous dash from flag prefix (Rodolfo Carvalho) #38532
  • [4c54d81a59] - doc: document 'secureConnect' event limitation (James M Snell) #38447
  • [839e8d1672] - doc: mark querystring api as legacy (James M Snell) #38436
  • [a75b7af9bd] - doc: add arguments for stream event of Http2Server and Http2SecureServer (Qingyu Deng) #37892
  • [cf0007edc4] - doc: indicate that abort tests do not generate core files (Rich Trott) #38422
  • [945450b5cf] - doc: add try/catch in http2 respondWithFile example (Matteo Collina) #38410
  • [1f7cd7148a] - doc: note the system requirements for V8 tests (DeeDeeG) #38319
  • [cd54834854] - doc: minor clarification to pathObject (James M Snell) #38437
  • [ba117c2c6f] - doc: document new TCP_KEEPCNT and TCP_KEEPINTVL socket option defaults (Arnold Zokas) #38313
  • [dcdbaffced] - doc: do not mention TCP in the allowHalfOpen option description (Luigi Pinca) #38360
  • [fe8003e5de] - doc: update message to match actual output (Rich Trott) #35271
  • [c03f23e126] - doc: request default snap track be updated for LTS (Rod Vagg) #37708
  • [a9f7aeed12] - doc: mark process.hrtime() as legacy (Antoine du Hamel) #38371
  • [cede0c57b8] - doc: fix version history for "exports" patterns (Antoine du Hamel) #38355
  • [9702f22397] - doc: fix package.json "imports" field history (Antoine du Hamel) #38356
  • [2d96da875e] - doc: fix typo in buffer.md (divlo) #38323
  • [6b58f28472] - doc: add nodejs-sec email template (Daniel Bevenius) #38290
  • [5a532e4725] - doc: update TSC members list with three new members (Rich Trott) #38352
  • [e994d6a27c] - doc: use foo.prototype.bar notation in buffer.md (Voltrex) #38032
  • [c61f363d66] - doc: internal/test/binding for testing (Bradley Meck) #38026
  • [0bb6fe31b3] - doc: add missing events.on metadata (Anna Henningsen) #37965
  • [30c82b2745] - doc: fix wording in outgoingMessage.write (Tobias Nießen) #37894
  • [932000020a] - doc: fix grammar errors in http document (Qingyu Deng) #37265
  • [19e8ae44c4] - doc: add document for http.OutgoingMessage (Qingyu Deng) #37265
  • [a6c123363d] - doc: remove generated from dsaEncoding description (Marko Kaznovac) #37459
  • [bc6ea63e48] - doc: document how to register external bindings for snapshot (Joyee Cheung) #37463
  • [2168e954aa] - doc: document the NO_COLOR and FORCE_COLOR env vars (James M Snell) #37477
  • [2907848fc9] - doc: clarify event.isTrusted text (Rich Trott) #36827
  • [7efa020892] - doc: expand openssl instructions (Michael Dawson) #36554
  • [b197a44152] - doc: document ABORT_ERR code (Benjamin Gruenbaum) #36319
  • [1d80f89442] - doc: document changes for */promises alias modules (ExE Boss) #34002
  • [9417fd0bc8] - errors: align source-map stacks with spec (Benjamin Coe) #37252
  • [dcd221ce69] - errors: refactor to use more primordials (Antoine du Hamel) #36651
  • [ee444473e9] - errors: display original symbol name (Benjamin Coe) #36042
  • [83d28374d6] - errors: refactor to use more primordials (Antoine du Hamel) #36167
  • [7d7e34c15a] - errors: refactor to use more primordials (Antoine du Hamel) #35944
  • [18e5c0f3e2] - events: refactor to use optional chaining (ZiJian Liu) #36763
  • [4fdcbae583] - events: refactor to use more primordials (Antoine du Hamel) #36304
  • [c4e7dca8f3] - fs: fix error when writing buffers > INT32_MAX (Zach Bjornson) #38546
  • [07c55d2844] - Revert "http: make HEAD method to work with keep-alive" (Michaël Zasso) #38949
  • [d8da265c81] - http2: treat non-EOF empty frames like other invalid frames (Anna Henningsen) #37875
  • [c3bd0fdb73] - http2: fix setting options before handle exists (Anna Henningsen) #37875
  • [74fe1d8f0c] - http2: add support for TypedArray to getUnpackedSettings (Antoine du Hamel) #36141
  • [c90f1dbeb3] - https: refactor to use more primordials (Antoine du Hamel) #36195
  • [8258799472] - inspector: remove redundant method for connection check (Yash Ladha) #37986
  • [ba19313e1e] - inspector: refactor to use more primordials (Antoine du Hamel) #36356
  • [eb8f7ee634] - lib: revert primordials in a hot path (Antoine du Hamel) #38248
  • [cea8b4265c] - lib: make IterableWeakMap safe to iterate (Antoine du Hamel) #38523
  • [490bc58229] - lib: fix and improve os typings (Akhil Marsonya) #38316
  • [af39df6d03] - lib: add URI handling functions to primordials (Antoine du Hamel) #37394
  • [16691be80e] - lib: fix WebIDL object and dictionary type conversion (ExE Boss) #37047
  • [47ed512312] - lib: refactor to use optional chaining in internal/options.js (raisinten) #36939
  • [346fc0ac21] - lib: support returning Safe collections from C++ (ExE Boss) #36989
  • [8912caba64] - lib: expose primordials object (Antoine du Hamel) #36872
  • [46c019b988] - lib: refactor source_map to use more primordials (Antoine du Hamel) #36733
  • [cf9556d8f7] - lib: refactor source_map to avoid unsafe array iteration (Antoine du Hamel) #36734
  • [6eaf357f49] - lib: simplify primordials.uncurryThis (ExE Boss) #36866
  • [9338759b01] - lib: remove v8_prof_polyfill from eslint ignore list (Antoine du Hamel) #36537
  • [c9861a344a] - lib: remove unused code (Brian White) #36632
  • [01a71dd393] - lib: refactor to use more primordials in internal/encoding.js (raisinten) #36480
  • [e6c0877604] - lib: refactor to use primordials in internal/priority_queue.js (ZiJian Liu) #36560
  • [6e3a2ffb98] - lib: add primordials.SafeStringIterator (Antoine du Hamel) #36526
  • [bf0738bc07] - lib: make safe primordials safe to construct (Antoine du Hamel) #36428
  • [7ebc18f293] - lib: make safe primordials safe to iterate (Antoine du Hamel) #36391
  • [e12dbc8519] - lib: refactor to use more primordials in internal/histogram.js (raisinten) #36455
  • [5daeac64a4] - lib: add uncurried accessor properties to primordials (ExE Boss) #36329
  • [bb4900d9eb] - lib: refactor primordials.uncurryThis (Antoine du Hamel) #36221
  • [0fbe945ebb] - lib: refactor to use more primordials (Antoine du Hamel) #36140
  • [24d4d63308] - lib: add %TypedArray% abstract constructor to primordials (ExE Boss) #36016
  • [e2395b0f3b] - lib: use Object static properties from primordials (Michaël Zasso) #35380
  • [b3e22e1612] - lib,tools: enforce access to prototype from primordials (Antoine du Hamel) #36025
  • [e94e0b488e] - meta: add v8 team (Jiawen Geng) #38566
  • [fcc6a00f1a] - meta: post comment when pr labeled fast-track (James M Snell) #38446
  • [bd0d9647ca] - module: clarify CJS global-like variables not defined error message (Antoine du Hamel) #37852
  • [0fdb5d59f7] - module: refactor NativeModule to avoid unsafe array iteration (Antoine du Hamel) #37656
  • [77c7d979b6] - module: simplify tryStatSync with throwIfNoEntry option (Antoine du Hamel) #36971
  • [1aae572220] - module: refactor to use more primordials (Antoine du Hamel) #36348
  • [9e7f166161] - module: refactor to use more primordials (Antoine du Hamel) #36024
  • [eee1d291cf] - module: refactor to use iterable-weak-map (Benjamin Coe) #35915
  • [52cbe89f7f] - net: refactor to use more primordials (Antoine du Hamel) #36303
  • [779ad54078] - node-api: faster threadsafe_function (Fedor Indutny) #38506
  • [5995221ced] - node-api: fix shutdown crashes (Michael Dawson) #38492
  • [d8acec4cb1] - node-api: make reference weak parameter an indirect link to references (Chengzhong Wu) #38000
  • [c442d89ad6] - os: refactor to use more primordials (Antoine du Hamel) #36284
  • [daeb6fcd78] - path: inline conditions (Voltrex) #38613
  • [e2f531f646] - path: refactor to use more primordials (Akhil Marsonya) #37893
  • [c1364d15a2] - path: refactor to use more primordials (Antoine du Hamel) #36302
  • [726ef40fcb] - perf_hooks: throw ERR_INVALID_ARG_VALUE if histogram.percentile param is NaN (ZiJian Liu) #36937
  • [4686f4f41b] - perf_hooks: refactor to avoid unsafe array iteration (Antoine du Hamel) #36723
  • [6adec6351e] - perf_hooks: refactor to use more primordials (Antoine du Hamel) #36297
  • [bf9aa425c0] - policy: refactor to use more primordials (Antoine du Hamel) #36210
  • [0f6c3f76b3] - querystring: refactor to use more primordials (Antoine du Hamel) #36315
  • [b5b8a996f3] - readline: refactor to use more primordials (Antoine du Hamel) #36296
  • [cd981808b4] - repl: document top level await limitation with const/let (James M Snell) #38449
  • [a4eb5571eb] - repl: display prompt once after error callback (Anna Henningsen) #38314
  • [163fcecb69] - src: fix multiple AddLinkedBinding() calls (Anna Henningsen) #39012
  • [8809ef98f9] - src: update cares_wrap OpenBSD defines (Anna Henningsen) #38670
  • [d66f88ce97] - src: remove extra semi after member fn (Shelley Vohr) #38686
  • [bc2111c7e6] - src: make workers messaging more resilient (Juan José Arboleda) #38510
  • [378e0e778b] - src: fix validation of negative offset to avoid abort (James M Snell) #38421
  • [c170026b7b] - src: use %progbits instead of @progbits (Stephen Gallagher) #38312
  • [d177541b0e] - src: fix setting Converter sub char length (James M Snell) #38331
  • [e279b029c0] - src: avoid deferred gc/cleanup for Buffer.from (James M Snell) #38337
  • [006c7b78da] - src: indent long help text properly (David Glasser) #37911
  • [f5541ddea3] - src: fix ETW_WRITE_EMPTY_EVENT macro (Michaël Zasso) #37334
  • [6b1052d034] - src: disable unfixable MSVC warnings (Michaël Zasso) #37334
  • [38afa3fa79] - src: avoid implicit type conversions (take 2) (Michaël Zasso) #37334
  • [8a60ae2161] - src: fix compiler warnings in node_buffer.cc (Darshan Sen) #38722
  • [78cde14c45] - src: fix compiler warning in env.cc (Anna Henningsen) #35547
  • [ea311a41cc] - src: add check against non-weak BaseObjects at process exit (Anna Henningsen) #35490
  • [a1b4681efc] - src: use transferred consistently (Daniel Bevenius) #36340
  • [29c623e5cb] - src: fix label indentation (Rich Trott) #36213
  • [dbb0d2612c] - stream: fix multiple Writable.destroy() calls (Robert Nagy) #38221
  • [a18b1ff80b] - stream: the position of _read() is wrong (helloyou2012) #38292
  • [ab130e929a] - stream: only use legacy close listeners if not willEmitClose (Robert Nagy) #36649
  • [c31e2f6b0f] - stream: fix legacy pipe error handling (Robert Nagy) #35257
  • [1dc4dea215] - string_decoder: throw ERR_STRING_TOO_LONG for UTF-8 (Michaël Zasso) #36661
  • [0db9101922] - string_decoder: refactor to use more primordials (Antoine du Hamel) #36358
  • [8a44ee478e] - test: improve coverage of lib/_http_client.js (Rongjian Zhang) #38599
  • [8a45b85dbd] - test: improve coverage of lib/os.js (Rongjian Zhang) #38653
  • [d7c6a3eb03] - test: call functions internally (Voltrex) #38560
  • [726cb48bd8] - test: complete coverage of querystring (Rongjian Zhang) #38520
  • [4f1ba79eb8] - test: increase coverage for AbortController (ZiJian Liu) #38514
  • [d98b355336] - test: run message and pseudo-tty tests in parallel (Richard Lau) #38502
  • [7938af6565] - test: move test-net-connect-econnrefused from pummel to sequential (Rich Trott) #38462
  • [52f3837518] - test: fix common.mustCall length and name properties (Antoine du Hamel) #38464
  • [fdfb39e692] - test: address deprecation warning (Rich Trott) #38448
  • [25e5afe3be] - test: move abort test from pummel to abort directory (Rich Trott) #38396
  • [296b969e0a] - test: skip some pummel tests on slower machines (Rich Trott) #38394
  • [a9ff9c0918] - test: add ancestor package.json checks for tmpdir (Richard Lau) #38285
  • [c9ce98c377] - test: replace function with arrow function and remove unused argument (Andres) #38235
  • [c77abf5a89] - test: use .test domain for not found address (Richard Lau) #38286
  • [d9eb8b3ed0] - test: increase fs promise coverage (Emil Sivervik) #36813
  • [d85b70fffa] - test: increase timeout on ASAN Action (Antoine du Hamel) #37007
  • [836fba52ea] - test: improve coverage of SourceTextModule getters (Juan José Arboleda) #37013
  • [f43fc6b6cc] - test: improve coverage for Module getters (Juan José Arboleda) #36950
  • [a45d280c18] - test: improve coverage on worker threads (Juan José Arboleda) #36910
  • [ec4d79e259] - test: improve coverage at lib/internal/vm/module.js (Juan José Arboleda) #36898
  • [c34de75687] - test: guard large string decoder allocation (Michaël Zasso) #36795
  • [3215a58843] - test: add already-aborted-controller test for spawn() (Rich Trott) #36644
  • [c3b116795b] - test: add test for reused AbortController with execfile() (Rich Trott) #36644
  • [219ed0ba4c] - test: add Actions annotation output (Mary Marchini) #34590
  • [89ee6abae0] - test: use .then(common.mustCall()) for all async IIFEs (Anna Henningsen) #34363
  • [294b3e60a5] - test,doc,lib: adjust object literal newlines for lint rule (Rich Trott) #37040
  • [bfe02b8808] - test,readline: improve tab completion coverage (Antoine du Hamel) #38465
  • [1dc7fd238c] - timers: fix unsafe array iteration (Darshan Sen) #37223
  • [679973866d] - timers: reject with AbortError on cancellation (Benjamin Gruenbaum) #36317
  • [dec3610a31] - timers: refactor to use more primordials (Antoine du Hamel) #36132
  • [d84b05a619] - timers: cleanup abort listener on awaitable timers (James M Snell) #36006
  • [f6e4dbb779] - tls: validate ticket keys buffer (Antoine du Hamel) #38308
  • [661e9809bd] - tls: fix session and keylog add listener segfault (Nitzan Uziely) #38180
  • [de44e90523] - tools: refloat 7 Node.js patches to cpplint.py (Rich Trott) #36324
  • [37bc7d5945] - tools: bump cpplint to 1.5.4 (Rich Trott) #36324
  • [84e918858e] - tools: refloat 7 Node.js patches to cpplint.py (Rich Trott) #36235
  • [fb2bb93f95] - tools: bump cpplint to 1.5.3 (Rich Trott) #36235
  • [3351910f97] - tools: refloat 7 Node.js patches to cpplint.py (Rich Trott) #36213
  • [193b18effa] - tools: bump cpplint.py to 1.5.2 (Rich Trott) #36213
  • [8a6c35d735] - tools: update ESLint to 7.27.0 (Luigi Pinca) #38764
  • [f8753b6299] - tools: update ESLint to 7.26.0 (Colin Ihrig) #38605
  • [1098aec40b] - tools: update ESLint to 7.25.0 (Colin Ihrig) #38378
  • [3fbabfa94d] - tools: update ESLint to 7.24.0 (Colin Ihrig) #38179
  • [6ce779cd8b] - tools: update ESLint to 7.23.0 (Luigi Pinca) #37979
  • [77f88e7725] - tools: update ESLint to 7.22.0 (Colin Ihrig) #37734
  • [5de911eeaf] - tools: make update-eslint.sh work with npm@7 (Luigi Pinca) #37566
  • [839976669f] - tools: add support for mjs and cjs JS snippet linting (Antoine du Hamel) #37311
  • [2463bd0689] - tools: update eslint-plugin-markdown configuration (Colin Ihrig) #37549
  • [f868fac455] - tools: enable object-curly-newline in ESLint rules (Rich Trott) #37040
  • [d13508d219] - tools: make GH Actions workflows work if default branch is not master (Antoine du Hamel) #38516
  • [7021c31d06] - tools: use mktemp to create the workspace directory (Luigi Pinca) #38432
  • [16a3e555ba] - tools: use a shallow clone of the npm/cli repository (Luigi Pinca) #38463
  • [3484a23140] - tools: remove fixer for non-ascii-character ESLint custom rule (Rich Trott) #38413
  • [aec4b295e4] - tools: fix doc generation when version info is not available (Antoine du Hamel) #38398
  • [0172b110a3] - tools: add _depot_tools to PATH (for V8 tests) (DeeDeeG) #38299
  • [d0eed18c87] - tools: fix type mismatch in test runner (Richard Lau) #38289
  • [11ca018db9] - tools: simplify eslint comma-dangle configuration (tools) (Rich Trott) #37883
  • [f7c14e86a7] - tools: simplify eslint comma-dangle configuration (Rich Trott) #37850
  • [241e05795b] - tools: run doctool tests on GitHub Actions CI (Antoine du Hamel) #37398
  • [a4dd50f8f9] - tools: refactor prefer-primordials (Antoine du Hamel) #36018
  • [4af3906e72] - tools: update ESLint to 7.21.0 (Luigi Pinca) #37546
  • [955880de1a] - tools: update ESLint to 7.20.0 (Colin Ihrig) #37339
  • [42c1f98a31] - tools: update ESLint to 7.19.0 (Colin Ihrig) #37159
  • [25eb720b4d] - tools: update ESLint to 7.18.0 (Colin Ihrig) #36955
  • [4983ef205e] - tools: update gyp-next to v0.7.0 (Michaël Zasso) #36580
  • [613378da1e] - tools: update ESLint to 7.17.0 (Colin Ihrig) #36726
  • [e6d01f6545] - tools: update ESLint to 7.16.0 (Yongsheng Zhang) #36579
  • [98806da810] - tools: enable no-unsafe-optional-chaining lint rule (Colin Ihrig) #36411
  • [7d411920f6] - tools: update ESLint to 7.15.0 (Colin Ihrig) #36411
  • [226a86c3b5] - tools: enable no-unused-expressions lint rule (Michaël Zasso) #36248
  • [24a81c7d6c] - tools: enable no-nonoctal-decimal-escape lint rule (Colin Ihrig) #36217
  • [19d4eb17b9] - tools: update ESLint to 7.14.0 (Colin Ihrig) #36217
  • [9fa8d2037f] - tools: add linting rule for async IIFEs (Anna Henningsen) #34363
  • [55fc206d13] - tools: update ESLint to 7.13.0 (Luigi Pinca) #36031
  • [937fc0a30c] - tools: update ESLint to 7.12.1 (Colin Ihrig) #35799
  • [29d0840a90] - tools: update ESLint to 7.12.0 (Colin Ihrig) #35799
  • [dcbd44758c] - tools: update ESLint to 7.11.0 (Colin Ihrig) #35578
  • [c7751b4e69] - tools: add new ESLint rule: prefer-primordials (Leko) #35448
  • [9a5411a2b4] - tools,doc: add support for several flavors of JS code snippets (Antoine du Hamel) #37162
  • [e19478aa76] - tools,lib: recommend using safe primordials (Antoine du Hamel) #36026
  • [5f848a612d] - tools,lib: tighten prefer-primordials rules for Error statics (Antoine du Hamel) #36017
  • [716076e389] - tty: refactor to avoid unsafe array iteration (Antoine du Hamel) #36771
  • [41d74a4d9a] - tty: refactor to use more primordials (Zijian Liu) #36272
  • [e35a3543fd] - typings: add JSDoc typings for util (Rohit Gohri) #38213
  • [c8b22185f7] - url: refactor to use more primordials (Antoine du Hamel) #36316
  • [e113035c9a] - util: simplify constructor retrieval in inspect() (Rich Trott) #36466
  • [1551b40d01] - v8: refactor to use more primordials (Antoine du Hamel) #36527
  • [6c1bbb5caf] - v8: refactor to use more primordials (Antoine du Hamel) #36285
  • [3aee77d279] - vm: refactor to avoid unsafe array iteration (Antoine du Hamel) #36752
  • [0dea86634d] - wasi: refactor to avoid unsafe array iteration (Antoine du Hamel) #36724
  • [2c66305ac4] - Revert "worker: remove ERR_CLOSED_MESSAGE_PORT" (Juan José Arboleda) #38510
  • [698bffaa90] - worker: refactor to avoid unsafe array iteration (Antoine du Hamel) #37346
  • [3d4785c174] - worker: refactor to use more primordials (Antoine du Hamel) #36267
  • [8702b045a4] - zlib: fix brotli flush range (Khaidi Chu) #38408
  • [459fe6864e] - zlib: refactor to avoid unsafe array iteration (Antoine du Hamel) #36722
  • [740638de0f] - zlib: refactor to use primordial instead of <string>.startsWith (Rohan Chougule) #36718
  • [32e10f388c] - zlib: refactor to use more primordials (Antoine du Hamel) #36347

New in Node.js 16.3.0 (Jun 3, 2021)

  • Notable Changes:
  • cli:
  • add -C alias for --conditions flag (Guy Bedford) #38755
  • deps:
  • add workspaces support to npm install commands (Ruy Adorno) #38750
  • Commits:
  • [4e58ec4aa6] - benchmark: output JSON-compatible numbers (Michaël Zasso) #38778
  • [7a9d0fd5a9] - benchmark: fix http elapsed time (Antoine du Hamel) #38743
  • [a98d631905] - bootstrap: include vm and contextify binding into the snapshot (Joyee Cheung) #38677
  • [f1628960e1] - build: remove outdated dont-land-on-v6.x label (Michaël Zasso) #38886
  • [6986154b30] - build: work around bug in MSBuild v16.10.0 (Michaël Zasso) #38873
  • [24cca7c5ea] - build: add lto build to CI (Jiawen Geng) #38567
  • [80c32b7a9a] - build: allow LTO with Clang 3.9.1+ (Jesse Chan) #38751
  • [e9be2095cf] - build: replace non-POSIX test -a|o (Issam E. Maghni) #38731
  • [717a8b63e1] - child_process: retain reference to data with advanced serialization (Anna Henningsen) #38728
  • [bc8400122c] - (SEMVER-MINOR) cli: add -C alias for --conditions flag (Guy Bedford) #38755
  • [eb7c932a6d] - debugger: revise async iterator usage to comply with lint rules (Rich Trott) #38847
  • [f1000e0e52] - debugger: removed unused function argument (Rich Trott) #38850
  • [ee1056da60] - debugger: wait for V8 debugger to be enabled (Michaël Zasso) #38811
  • [47ad448def] - deps: upgrade npm to 7.15.1 (npm-robot) #38880
  • [e8192b5e89] - deps: upgrade npm to 7.14.0 (Ruy Adorno) #38750
  • [15aaf14690] - deps: update llhttp to 6.0.2 (Fedor Indutny) #38665
  • [108ffdb68f] - doc: fixed typo in n-api.md (julianjany) #38822
  • [131a6918dd] - doc: use "Long Term Support" in collaborator guide (Rich Trott) #38841
  • [4844337cd7] - doc: use "Long Term Support" in technical values doc (Rich Trott) #38841
  • [f1e823b679] - doc: use "Long Term Support" in README (Philip) #38839
  • [4e11971a76] - doc: fix grammar in fs.md (yotamselementor) #38818
  • [e2f28c80d1] - doc: fixup code sample in http.md (TodorTotev) #38776
  • [96fa387082] - doc: document null target pattern (Guy Bedford) #38724
  • [5553be3f4e] - doc: update code examples for node:url module (fisker Cheung) #38645
  • [0c063a1258] - doc,url: clarify domainTo* when built without ICU (Darshan Sen) #38789
  • [2054efa02c] - events: refactor to use primordials in lib/events (Akhil Marsonya) #38117
  • [4884991a12] - lib: include url in bootstrap snapshot and remove unnecessary lazy-loads (Joyee Cheung) #38826
  • [08ad2f6c18] - lib: fix typos (bl-ue) #38846
  • [7d3a8cb854] - lib: remove unnecessary lazy loads (Joyee Cheung) #38737
  • [5d9442a024] - lib: load internal/fs/watchers and internal/fs/read_file_context early (Joyee Cheung) #38737
  • [2268d1cf4c] - lib: refactor to reuse validators (Rongjian Zhang) #38608
  • [496f7eae92] - node-api: fix shutdown crashes (Michael Dawson) #38492
  • [e1195312b9] - (SEMVER-MINOR) os: add os.devNull (Luigi Pinca) #38569
  • [7ba305552f] - src: set PromiseHooks by Environment (Bryan English) #38821
  • [74205b3542] - src: replace autos in node_api.cc (Khaidi Chu) #38852
  • [120849f609] - src: cache necessary isolate & context in api/* (Khaidi Chu) #38366
  • [f25cd4f377] - src: fix typos (bl-ue) #38845
  • [a1b0e64187] - src: support fs_event_wrap binding in the snapshot (Joyee Cheung) #38737
  • [36d4a4331d] - src: remove redundant v8 namespaces in env.cc (Juan José Arboleda) #38792
  • [3e6b3b22c5] - src: use SPrintF in ProcessEmitWarning (Darshan Sen) #38758
  • [9ca5c0e29e] - src: fix compiler warnings in node_buffer.cc (Darshan Sen) #38722
  • [3741595289] - src: set CONF_MFLAGS_DEFAULT_SECTION for OpenSSL 3 (Daniel Bevenius) #38732
  • [4e3353223e] - src: use HandleScope in StreamReq::Done() (Darshan Sen) #38720
  • [c576311954] - src: remove commented code in node_file.cc (Juan José Arboleda) #38693
  • [61c95f08b3] - src: write named pipe info in diagnostic report (legendecas) #38637
  • [ba96f14233] - src: remove unused iostream library (Juan José Arboleda) #38694
  • [f5dd85bbe6] - src: remove more extra semis from member fns (Shelley Vohr) #38744
  • [a47fd67154] - src: replace autos in node_contextify.cc (Khaidi Chu) #38644
  • [9054d25acc] - stream: add a non-destroying iterator to Readable (Nitzan Uziely) #38526
  • [4131f94ca8] - stream: allow empty string as source of pipeline (Qingyu Deng) #38723
  • [0aa3cb5c0e] - test: improve coverage of fs internal utils (Rongjian Zhang) #38746
  • [48ebebd2a8] - test: remove unnecessary --pending-deprecation flag (Antoine du Hamel) #38819
  • [3c492baa51] - test: fix writefile with fd (Nitzan Uziely) #38820
  • [e91d14c57c] - test: simplify test-path-resolve.js (himself65) #38671
  • [1f5baaa2e7] - test: improve coverage for question in readline (Qingyu Deng) #38799
  • [6d86f8afd5] - test: os, replace custom flatten method with built-in Array.flat (Wael Almattar) #38770
  • [c7a58578dc] - test: set locale for datetime-change-notify test (ZiJian Liu) #38741
  • [695e982a42] - test: improve coverage of lib/fs.js (Rongjian Zhang) #38604
  • [11ac9c6fcc] - test: improve coverage of lib/_http_outgoing.js (Rongjian Zhang) #38734
  • [6da4aa30c6] - test: give js-native-api tests consistent names (Gabriel Schulhof) #38692
  • [929e8df1c0] - test: improve coverage of stream.Readable (Rongjian Zhang) #38702
  • [36ffd58105] - tools: refloat 7 Node.js patches to cpplint.py (Rich Trott) #38851
  • [6b8c712247] - tools: bump cpplint to 1.5.5 (Rich Trott) #38851
  • [be8d934679] - tools: remove exception for Node.js 8 and earlier (Rich Trott) #38840
  • [c0bde0cd4a] - tools: update setup-node to setup-node@v2 (pengjie) #38825
  • [21ce3af904] - tools: update ESLint to 7.27.0 (Luigi Pinca) #38764
  • [ab44106555] - tools: use PrintCaughtException in the snapshot builder (Joyee Cheung) #38745
  • [30c0020885] - typings: add JSDoc typings for https (Voltrex) #38589
  • [7fb809b475] - typings: add JSDoc typings for events (Voltrex) #38712
  • [7773d58f1a] - url: exit early when : delimiter is seen in hostname (Timothy Gu) #38742
  • [a2da9e254c] - worker: use rwlock for sibling group (Anna Henningsen) #38783
  • [18f3ba3674] - worker: leave TODO comments for using std::variant when possible (Anna Henningsen) #38788

New in Node.js 16.2.0 (May 19, 2021)

  • Notable Changes:
  • (SEMVER-MINOR) async_hooks: use new v8::Context PromiseHook API (Stephen Belanger) #36394
  • lib: support setting process.env.TZ on windows (James M Snell) #38642
  • (SEMVER-MINOR) module: add support for URL to import.meta.resolve (Antoine du Hamel) #38587
  • (SEMVER-MINOR) process: add 'worker' event (James M Snell) #38659
  • (SEMVER-MINOR) util: add util.types.isKeyObject and util.types.isCryptoKey (Filip Skokan) #38619
  • Commits:
  • (SEMVER-MINOR) async_hooks: use new v8::Context PromiseHook API (Stephen Belanger) #36394
  • buffer: remove TODOs in atob / btoa (Khaidi Chu) #38548
  • buffer: remove unreachable code (Rongjian Zhang) #38537
  • build: add workaround for V8 builds (Richard Lau) #38632
  • build: remove dependency on distutils.spawn (Richard Lau) #38600
  • build: add missing torque output sources (Richard Lau) #38576
  • build: compile with -std=gnu++14 (Darshan Sen) #38504
  • build,src,test,doc: enable FIPS for OpenSSL 3.0 (Daniel Bevenius) #38633
  • crypto: forbid NODE-ED25519 and NODE-ED448 "raw" key export (Filip Skokan) #38668
  • mel) #38551
  • debugger: refactor to use internal modules (Antoine du Hamel) #38550
  • debugger: disable only the lint rules required by current file state (Rich Trott) #38529
  • debugger: avoid non-ASCII char in code file (Rich Trott) #38529
  • debugger: wrap lines longer than 80 chars (Rich Trott) #38529
  • debugger: rename inspector-cli test module to debugger (Rich Trott) #38530
  • deps: upgrade npm to 7.13.0 (Ruy Adorno) #38682
  • deps: upgrade npm to 7.12.1 (Ruy Adorno) #38628
  • deps: patch V8 to 9.0.257.25 (Michaël Zasso) #38556
  • (SEMVER-MINOR) deps: V8: cherry-pick fa4cb172cde2 (Stephen Belanger) #36394
  • (SEMVER-MINOR) deps: V8: cherry-pick 4c074516397b (Stephen Belanger) #36394
  • (SEMVER-MINOR) deps: V8: cherry-pick 5f4413194480 (Stephen Belanger) #36394
  • (SEMVER-MINOR) deps: V8: cherry-pick 272445f10927 (Stephen Belanger) #36394
  • (SEMVER-MINOR) deps: V8: backport c0fceaa0669b (Stephen Belanger) #36394
  • deps: V8: cherry-pick 530080c44af2 (Milad Fa) #38489
  • dgram: extract cluster lazy loading method to make it testable (Rongjian Zhang) #38563
  • doc: document buffer.kStringMaxLength (Tobias Nießen) #38688
  • doc: update abort signal in fs promise api example (Moritz Kneilmann) #38669
  • doc: add documentation for fs.WriteStream.close() (Hitesh Sharma) #38610
  • doc: clarify synchronous blocking of Worker stdio (James M Snell) #38658
  • doc: update contact info (Gabriel Schulhof) #38689
  • doc: change color of doctag on night mode (Qingyu Deng) #38652
  • doc: add ESM code examples in url.md (Antoine du Hamel) #38651
  • doc: fix fs.openSync() signature (Luigi Pinca) #38591
  • doc: typo stats() should be stat(); clarity (Bryan Field) #38541
  • doc: fix code example in ecdh.setPublicKey() (Jordan Baczuk) #38542
  • doc: use HEAD instead of master for links (Antoine du Hamel) #38518
  • doc: clarify DiffieHellmanGroup class docs (Nitzan Uziely) #38363
  • doc: fix broken AHAFS link in fs doc (Rich Trott) #38534
  • doc: use AIX instead of Aix in fs.md (Rich Trott) #38535
  • doc: remove extraneous dash from flag prefix (Rodolfo Carvalho) #38532
  • doc: corrected workload name as per the latest VS Installer (MrJithil) #38500
  • doc: use sentence case in headers in src/crypto/README.md (Rich Trott) #38524
  • errors: remove input from ERR_INVALID_URL message (moander) #38614
  • events: use nullish coalencing operator (Voltrex) #38328
  • fs: fix async iterator partial writes (Nitzan Uziely) #38615
  • fs: fix error when writing buffers > INT32_MAX (Zach Bjornson) #38546
  • fs: use assert in fsCall argument checking (Rongjian Zhang) #38519
  • http: refactor to remove redundant argument of _deferToConnect (Rongjian Zhang) #38598
  • lib: support setting process.env.TZ on windows (James M Snell) #38642
  • lib: make IterableWeakMap safe to iterate (Antoine du Hamel) #38523
  • meta: add v8 team (Jiawen Geng) #38566
  • (SEMVER-MINOR) module: add support for URL to import.meta.resolve (Antoine du Hamel) #38587
  • node-api: faster threadsafe_function (Fedor Indutny) #38506
  • path: inline conditions (Voltrex) #38613
  • (SEMVER-MINOR) process: add 'worker' event (James M Snell) #38659
  • repl: fix Ctrl+C on top level await (Antoine du Hamel) #38656
  • src: fix fatal errors when a current isolate not exist (legendecas) #38624
  • src: update cares_wrap OpenBSD defines (Anna Henningsen) #38670
  • src: remove extra semi after member fn (Shelley Vohr) #38686
  • src: make workers messaging more resilient (Juan José Arboleda) #38510
  • test: refactor test-readline-interface to be shorter (Juan José Arboleda) #38691
  • test: stream.finished detects a destroyed IncomingMessage (Nitzan Uziely) #38661
  • test: set common.bits to 64 for riscv64 (Andreas Schwab) #38626
  • test: improve coverage of lib/_http_client.js (Rongjian Zhang) #38599
  • test: improve coverage of lib/os.js (Rongjian Zhang) #38653
  • test: increase coverage for repl (ZiJian Liu) #38559
  • test: call functions internally (Voltrex) #38560
  • test: increase coverage for Histogram (ZiJian Liu) #38555
  • test: improve fs coverage (Rongjian Zhang) #38517
  • test: complete coverage of querystring (Rongjian Zhang) #38520
  • test: increase coverage for AbortController (ZiJian Liu) #38514
  • test: increase coverage for Blob (ZiJian Liu) #38515
  • test: run message and pseudo-tty tests in parallel (Richard Lau) #38502
  • test: move test-net-connect-econnrefused from pummel to sequential (Rich Trott) #38462
  • test: fix flaky inspector-cli tests when breakpionts are restored (Rich Trott) #38431
  • test: skip tests for openssl-3.0.0-alpha15 (Daniel Bevenius) #38451
  • test: update OpenSSL 3.0.0-alpha15 error messages (Daniel Bevenius) #38451
  • test,repl: fix tests when inspector is disabled (Antoine du Hamel) #38564
  • tools: remove redundant v8 config (Jiawen Geng) #38565
  • tools: update ESLint to 7.26.0 (Colin Ihrig) #38605
  • (SEMVER-MINOR) tools: add Worker to type-parser (James M Snell) #38659
  • tools: make GH Actions workflows work if default branch is not master (Antoine du Hamel) #38516
  • typings: add JSDoc typings for readline (Voltrex) #38253
  • (SEMVER-MINOR) util: add util.types.isKeyObject and util.types.isCryptoKey (Filip Skokan) #38619
  • Revert "worker: remove ERR_CLOSED_MESSAGE_PORT" (Juan José Arboleda) #38510

New in Node.js 16.1.0 (May 5, 2021)

  • Async_hooks,doc: replace process.stdout.fd with 1 (Darshan Sen) #38382
  • Benchmark: avoid using console.log() (Antoine du Hamel) #38370
  • Benchmark: use process.hrtime.bigint() (Antoine du Hamel) #38369
  • Bootstrap: freeze more intrinsics (Antoine du Hamel) #38217
  • Build: fix label-pr workflow (Michaël Zasso) #38399
  • Build: label PRs with GitHub Action instead of nodejs-github-bot (Phillip Johnsen) #38301
  • Crypto: don't crash with some selfsigned certs (Nils Dralle) #37990
  • Crypto: fix generateKeyPair type checks (Nitzan Uziely) #38364
  • Crypto: fix scrypt keylen validation (Antoine du Hamel) #38385
  • Crypto: fix DiffieHellman generator validation (eladkeyshawn) #38311
  • Debugger: enable linter on internal/inspector/inspect_client (Antoine du Hamel) #38417
  • Debugger: refactor internal/inspector/_inspect to use more primordials (Antoine du Hamel) #38406
  • Debugger: apply automatic lint fixes for inspect_repl.js (Rich Trott) #38411
  • Debugger: apply automatic lint fixes for _inspect.js (Rich Trott) #38411
  • Debugger: remove unused function argument (Rich Trott) #38400
  • Debugger: align message with Node.js standard (Rich Trott) #38400
  • Debugger: add usage example for --port (Rafael Gonzaga) #38400
  • Debugger: fix race condition/deadlock on initialization (Rich Trott) #38161
  • Debugger: replace internal use of deprecated API (Rich Trott) #38161
  • Debugger: allow longer time to connect (Rich Trott) #38161
  • Debugger: accommodate line chunking in Windows (Rich Trott) #38161
  • Debugger: fix inspect restart on Windows (Rich Trott) #38161
  • Debugger: remove unused code (Rich Trott) #38161
  • Debugger: move node-inspect to internal library (Rich Trott) #38161
  • Deps: V8: cherry-pick fd75c97d3f56 (Michaël Zasso) #38455
  • Deps: upgrade npm to 7.11.2 (Ruy Adorno) #38475
  • Deps: update to [email protected] (Guy Bedford) #38450
  • Deps: patch V8 to 9.0.257.24 (Michaël Zasso) #38423
  • Deps: patch V8 to 9.0.257.21 (Michaël Zasso) #38333
  • Deps: update llhttp to 6.0.1 (Fedor Indutny) #38359
  • Deps: patch V8 to 9.0.257.19 (Michaël Zasso) #38270
  • Revert "doc: os.uptime() temporary bug notice" (Michaël Zasso) #38494
  • Doc: document 'secureConnect' event limitation (James M Snell) #38447
  • Fix outdated util inspect documentation and layout example (Ruben Bridgewater) #37079
  • Doc: mark Node.js 10 as End-of-Life (Richard Lau) #38482
  • Doc: mark querystring api as legacy (James M Snell) #38436
  • Doc: update node-api support matrix (Michael Dawson) #38424
  • Doc: add arguments for stream event of Http2Server and Http2SecureServer (Qingyu Deng) #37892
  • Doc: indicate that abort tests do not generate core files (Rich Trott) #38422
  • Doc: add try/catch in http2 respondWithFile example (Matteo Collina) #38410
  • Doc: note the system requirements for V8 tests (DeeDeeG) #38319
  • Doc: minor clarification to pathObject (James M Snell) #38437
  • Doc: clarify that fs.Dir async iterator closes automatically (James M Snell) #38438
  • Doc: document new TCP_KEEPCNT and TCP_KEEPINTVL socket option defaults (Arnold Zokas) #38313
  • Doc: do not mention TCP in the allowHalfOpen option description (Luigi Pinca) #38360
  • Doc: update message to match actual output (Rich Trott) #35271
  • Doc: request default snap track be updated for LTS (Rod Vagg) #37708
  • Doc: mark process.hrtime() as legacy (Antoine du Hamel) #38371
  • Doc: fix typo in worker_threads.md (takayama) #38368
  • Doc: fix version history for "exports" patterns (Antoine du Hamel) #38355
  • Doc: fix package.json "imports" field history (Antoine du Hamel) #38356
  • Doc: fix typo in buffer.md (divlo) #38323
  • Doc: fix YAML comment opening tags (Jayden Seric) #38324
  • Doc: add nodejs-sec email template (Daniel Bevenius) #38290

New in Node.js 16.0.0 (Apr 21, 2021)

  • Deprecations and Removals:
  • Remove permissive rmdir recursive
  • Runtime deprecate rmdir recursive option
  • Runtime deprecate access to process.binding('http_parser')
  • Runtime deprecate access to process.binding('url')
  • Make process.binding('util') return only type checkers
  • Runtime deprecate access to process.binding('crypto')
  • Runtime deprecate access to process.binding('signal_wrap')
  • Runtime deprecate access to process.binding('v8')
  • Runtime deprecate access to process.binding('async_wrap')
  • Remove module.createRequireFromPath
  • Runtime deprecate subpath folder mappings
  • Runtime deprecate "main" index and extension lookups
  • Runtime deprecate invalid package.json main entries
  • Runtime deprecate changing process.config
  • 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.
  • Remove support for Python 2
  • Default PYTHON to python3 in Makefile
  • Update Makefile to support fat binary
  • Warn for gcc versions earlier than 8.3.0
  • Update minimum supported Xcode to 11
  • Update minimum supported GCC to 8.3
  • Update AIX to GCC8 for v16.x
  • Set arch in Distribution.xml
  • V8 9.0:
  • The V8 JavaScript engine is updated to V8 9.0, including performancetweaks 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.
  • Other Notable Changes:
  • Graduate assert.match and assert.doesNotMatch
  • Expose btoa and atob as globals
  • Bump minimum ICU version to 68
  • Update ICU to 69.1
  • Update llhttp to 6.0.0
  • Upgrade npm to 7.10.0
  • Add http.ClientRequest.getRawHeaderNames()
  • Update cluster to use Parent
  • Add support for `node:`‑prefixed `require(…)`
  • Add histogram option to timerify
  • Add auto‑completion for `node:`‑prefixed `require(…)`
  • Add getSystemErrorMap() impl
  • Semver-Major Commits:
  • Add thisArg to AsyncResource.bind
  • Expose btoa and atob as globals
  • Remove support for Python 2
  • Default PYTHON to python3 in Makefile
  • Update Makefile to support fat binary
  • Include minimal V8 headers in distribution
  • Use C++11 ABI with libstdc++
  • Update V8 to 9.0.257.11
  • Bump minimum ICU version to 68
  • Update V8 to 8.9.255.19
  • Update V8 to 8.8.278.17
  • Pdate V8 to 8.7.220
  • Use url module instead of punycode for IDNA
  • Update minimum supported Xcode to 11
  • Update minimum supported GCC to 8.3
  • Update AIX to GCC8 for v16.x
  • Add http.IncomingMessage#connection
  • Change EventTarget handler exception behavior
  • Remove permissive rmdir recursive
  • Add validation for fd and path
  • Runtime deprecate rmdir recursive option
  • Fix flag and mode validation
  • Use objects with null prototype in Agent
  • Runtime deprecate access to process.binding('http_parser')
  • Runtime deprecate access to process.binding('url')
  • Make process.binding('util') return only type checkers
  • Runtime deprecate access to process.binding('crypto')
  • Runtime deprecate access to process.binding('signal_wrap')
  • Runtime deprecate access to process.binding('v8')
  • Aggregate errors to avoid error swallowing
  • Runtime deprecate access to process.binding('async_wrap')
  • Remove usage of url.parse
  • Add error handling for input stream
  • Update cluster to use Parent
  • Runtime deprecate subpath folder mappings
  • Runtime deprecate "main" index and extension lookups
  • Runtime deprecate invalid package.json main entries
  • Remove module.createRequireFromPath
  • Only set cache when finding module succeeds
  • Make performance a global
  • Complete overhaul of the implementation
  • Disallow adding options to process.allowedNodeEnvironmentFlags
  • Runtime deprecate changing process.config
  • CursorTo throw error on NaN
  • Mark internally exported functions as explicitly internal
  • Inline AsyncCleanupHookHandle in headers
  • Clean up embedder API
  • Send correct error status for worker init

New in Node.js 14.16.1 LTS (Apr 7, 2021)

  • Vulnerabilities fixed:
  • CVE-2021-3450: OpenSSL - CA certificate check bypass with X509_V_FLAG_X509_STRICT (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/20210325.txt
  • Impacts:
  • All versions of the 15.x, 14.x, 12.x and 10.x releases lines
  • CVE-2021-3449: OpenSSL - NULL pointer deref in signature_algorithms processing (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/20210325.txt
  • Impacts:
  • All versions of the 15.x, 14.x, 12.x and 10.x releases lines
  • CVE-2020-7774: npm upgrade - Update y18n to fix Prototype-Pollution (High)
  • This is a vulnerability in the y18n npm module which may be exploited by prototype pollution. You can read more about it in https://github.com/advisories/GHSA-c4w7-xm78-47vh
  • Impacts:
  • All versions of the 14.x, 12.x and 10.x releases lines
  • Commits:
  • [467be7a950] - deps: upgrade npm to 6.14.12 (Ruy Adorno) #37918
  • [6bc8f58182] - deps: update archs files for OpenSSL-1.1.1k (Tobias Nießen) #37938
  • [403a014ef6] - deps: upgrade openssl sources to 1.1.1k (Tobias Nießen) #37938

New in Node.js 15.30.0 (Apr 1, 2021)

  • Notable Changes:
  • buffer:
  • implement btoa and atob (James M Snell) #37529
  • deps:
  • upgrade npm to 7.7.6 (Ruy Adorno) #37968; This update adds workspaces support to npm run and npm exec
  • doc:
  • add legacy status to stability index (James M Snell) #37784
  • add @Linkgoron to collaborators (Nitzan Uziely) #37817
  • http:
  • add http.ClientRequest.getRawHeaderNames() (simov) #37660

New in Node.js 15.20.0 (Mar 18, 2021)

  • Notable Changes:
  • crypto:
  • add optional callback to crypto.sign and crypto.verify (Filip Skokan) #37500
  • support JWK objects in create*Key (Filip Skokan) #37254
  • deps:
  • switch openssl to quictls/openssl (James M Snell) #37601
  • update to [email protected] (Guy Bedford) #37712
  • fs:
  • improve fsPromises writeFile performance (Nitzan Uziely) #37610
  • improve fsPromises readFile performance (Nitzan Uziely) #37608
  • lib:
  • implement AbortSignal.abort() (James M Snell) #37693
  • node-api:
  • define version 8 (Gabriel Schulhof) #37652
  • worker:
  • add setEnvironmentData/getEnvironmentData (James M Snell) #37486

New in Node.js 14.16.0 LTS (Feb 24, 2021)

  • 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
  • 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/20210216.txt

New in Node.js 15.10.0 (Feb 23, 2021)

  • 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
  • This is a vulnerability in OpenSSL which may be exploited through Node.js. You can read more about it in

New in Node.js 14.15.5 LTS (Feb 10, 2021)

  • Notable Changes:
  • deps:
  • upgrade npm to 6.14.11 (Ruy Adorno) #37173
  • V8: backport dfcf1e86fac0 (Michaël Zasso) #37245
  • Note: Node.js is not believed to be vulnerable to CVE-2021-21148.
  • stream,zlib: do not use _stream_* anymore (Matteo Collina) #36618
  • Commits:
  • [20b1e6c802] - deps: V8: backport dfcf1e86fac0 (Michaël Zasso) #37245
  • [408c7a65f3] - deps: upgrade npm to 6.14.11 (Ruy Adorno) #37173
  • [017eed665b] - http: do not loop over prototype in Agent (Michaël Zasso) #36410
  • [25a3204fe2] - http: don't cork .end when not needed (Dimitris Halatsis) #36633
  • [2a1e4e9244] - stream: accept iterable as a valid first argument (ZiJian Liu) #36479
  • [9ff73fcdbe] - stream,zlib: do not use _stream_* anymore (Matteo Collina) #36618
  • [c03cddb46f] - test: http complete response after socket double end (Dimitris Halatsis) #36633
  • [f206505e9d] - util: fix instanceof checks with null prototypes during inspection (Ruben Bridgewater) #36178
  • [2f7944b18b] - util: fix module prefixes during inspection (Ruben Bridgewater) #36178

New in Node.js 15.8.0 (Feb 3, 2021)

  • Notable Changes:
  • [110063d694] - (SEMVER-MINOR) crypto: add generatePrime/checkPrime (James M Snell) #36997
  • [53a0bdff47] - (SEMVER-MINOR) crypto: experimental (Ed/X)25519/(Ed/X)448 support (James M Snell) #36879
  • [03460432af] - deps: upgrade npm to 7.5.0 (Ruy Adorno) #37117
  • This update adds a new npm diff command.
  • [2c7ad38c75] - (SEMVER-MINOR) dgram: support AbortSignal in createSocket (Nitzan Uziely) #37026
  • [b7c3f99f7e] - doc: add Zijian Liu to collaborators (ZiJian Liu) #37075
  • [02f1d2fda4] - esm: deprecate legacy main lookup for modules (Guy Bedford) #36918
  • [75124298d5] - (SEMVER-MINOR) readline: add history event and option to set initial history (Mattias Runge-Broberg) #33662
  • [4e757eab96] - (SEMVER-MINOR) readline: add support for the AbortController to the question method (Mattias Runge-Broberg) #33676
  • Commits:
  • [602aaf25af] - async_hooks: refactor to avoid unsafe array iteration (Antoine du Hamel) #37125
  • [dcd34b0144] - benchmark: add benchmark for NODE_V8_COVERAGE (Benjamin Coe) #36972
  • [ec22756ac9] - benchmark: make output RFC 4180 compliant (Tobias Nießen) #37038
  • [96cec1e5f3] - benchmark: improve explanations in R script (Tobias Nießen) #36995
  • [e4b88b521a] - buffer: avoid creating the backing store in the thread (James M Snell) #37052
  • [7b78c6773d] - child_process: allow promisified exec to be cancel (Carlos Fuentes) #34249
  • [c4193ba8ae] - crypto: fix encrypted private -> public import (Tobias Nießen) #37056
  • [cb3b0ec4fc] - crypto: generateKeyPair('ec') should not support NODE-ED* and NODE-X* (Filip Skokan) #37063
  • [110063d694] - (SEMVER-MINOR) crypto: add generatePrime/checkPrime (James M Snell) #36997
  • [ab64d74791] - crypto: throw error on invalid object in diffieHellman() (ZiJian Liu) #37016
  • [53a0bdff47] - (SEMVER-MINOR) crypto: experimental (Ed/X)25519/(Ed/X)448 support (James M Snell) #36879
  • [4551d14b8e] - deps: upgrade npm to 7.5.1 (Ruy Adorno) #37177
  • [9d6fd4586f] - deps: update openssl config (James M Snell) #37067
  • [f74b376596] - Revert "deps: various quic patches from akamai/openssl" (James M Snell) #37067
  • [6756130c4b] - Revert "deps: re-enable OPENSSL_NO_QUIC guards" (James M Snell) #37067
  • [52ce1d5f1a] - Revert "deps: update patch and docs for openssl update" (James M Snell) #37067
  • [03460432af] - deps: upgrade npm to 7.5.0 (Ruy Adorno) #37117
  • [2c7ad38c75] - (SEMVER-MINOR) dgram: support AbortSignal in createSocket (Nitzan Uziely) #37026
  • [47bfde00fd] - doc: fix color contrast on <kbd> elements (Antoine du Hamel) #37185
  • [3c9077130d] - doc: fix list format in Developer's Certificate of Origin (Akash Negi) #37138
  • [8cecce3ff4] - doc: fix markup and alphabetization in errors.md (Rich Trott) #37144
  • [a7780815bf] - doc: clarify ERR_INVALID_REPL_INPUT usage (Rich Trott) #37143
  • [e7126503e0] - doc: clarify repl exception conditions (Rich Trott) #37142
  • [e55d3d0953] - doc: add example for test structure (Turner Jabbour) #35046
  • [9b9a1801ba] - doc: remove TOC summary for pages with no TOC (Rich Trott) #37043
  • [ae42658be9] - doc: add missing deprecation code (Colin Ihrig) #37147
  • [b79b82de8e] - doc: update Buffer encoding option count (Dave Cardwell) #37102
  • [ddee21b587] - doc: update BUILDING.md previous versions links (Richard Lau) #37082
  • [1710016053] - doc: mention adding Fixes to collaborator onboarding PR (Joyee Cheung) #37097
  • [b7c3f99f7e] - doc: add Zijian Liu to collaborators (ZiJian Liu) #37075
  • [7ddfa81612] - doc: add tooltip for light/dark mode toggle (Rich Trott) #37044
  • [c79688ffe3] - doc: improve AsyncLocalStorage introduction (Romuald Brillout) #36946
  • [a7b6464097] - doc: EventTarget and Event are available to user code since v15.0.0 (ExE Boss) #37059
  • [3722c15a75] - doc: add missing comma in tty (Matthew Mario Di Pasquale) #37039
  • [2cfe7954fc] - doc: list Unsupported Directory Import resolve err (Guy Bedford) #37032
  • [fef6ac77e5] - doc: add missing ARIA label for button (Rich Trott) #37031
  • [634bedcd6f] - doc,test: fix prime generation description (Tobias Nießen) #37085
  • [181719d4c4] - esm: update to correct deprecation code (Colin Ihrig) #37147
  • [02f1d2fda4] - esm: deprecate legacy main lookup for modules (Guy Bedford) #36918
  • [69402522fd] - fs: read full size if known in promises.readFile (Anna Henningsen) #37127
  • [ad12fefcb0] - fs: only use Buffer.concat in promises.readFile when necessary (Anna Henningsen) #37127
  • [6f54a14cda] - fs: add validatePosition and use in read and readSync (Darshan Sen) #37051
  • [175f6f0be3] - fs: use throwIfNoEntry option on statSync calls (Antoine du Hamel) #36975
  • [97fc7d8396] - fs: refactor to remove redundant validation (Darshan Sen) #36984
  • [0129a79d0a] - fs: add explicit note about undefined path when recursive (Sebastian Silbermann) #37010
  • [7196ac19c1] - http: refactor to avoid unsafe array iteration (Antoine du Hamel) #37124
  • [ed58065d1f] - lib: add bound apply variants of varargs primordials (ExE Boss) #37005
  • [67b58f68c9] - lib: refactor to use validateObject (ZiJian Liu) #37028
  • [5227c5e6f5] - lib: refactor to use validateFunction (ZiJian Liu) #37045
  • [34adf7f74b] - lib: refactor to avoid unsafe array iteration (Antoine du Hamel) #37029
  • [4a1fc42178] - lib: refactor to use optional chaining in internal/options.js (raisinten) #36939
  • [d76400a264] - lib: refactor to use validateString (ZiJian Liu) #37006
  • [a29da64b46] - lib: refactor to use validateNumber (ZiJian Liu) #36993
  • [56377d6cee] - lib: support returning Safe collections from C++ (ExE Boss) #36989
  • [c4cab1f408] - lib: refactor to use validateBoolean (ZiJian Liu) #36983
  • [11dd2672cd] - quic: remove quic (James M Snell) #37067
  • [b533485f32] - quic: remove duplicate checks (ZiJian Liu) #37017
  • [1714998e2c] - readline: replace _questionCancel with a symbol (Colin Ihrig) #37094
  • [3d64d2b5ef] - readline: check for null input in question() (Colin Ihrig) #37089
  • [75124298d5] - (SEMVER-MINOR) readline: add history event and option to set initial history (Mattias Runge-Broberg) #33662
  • [4e757eab96] - (SEMVER-MINOR) readline: add support for the AbortController to the question method (Mattias Runge-Broberg) #33676
  • [a26dfb323b] - src: expose BaseObject::kInternalFieldCount in post-mortem metadata (Joyee Cheung) #37111
  • [9c831c0d8f] - src: fix dead code in RandomPrimeTraits (Tobias Nießen) #37083
  • [81e9acf242] - src: rename crypto_ecdh.(h|cc) to crypto_ec.(h|cc) (Tobias Nießen) #37048
  • [1f819ec47d] - test: add tests for bound apply variants of varargs primordials (ExE Boss) #37005
  • [db38cf27c2] - test: increase inspect coverage (Emil Sivervik) #36755
  • [10da5c1104] - test: skip tests consistently in parallel.status (Rich Trott) #37035
  • [da07eb654e] - test: increase read file abort coverage (Moshe vilner) #36716
  • [55407b826f] - test: update to improve terminology (Michael Dawson) #37011
  • [ef2b25088d] - test: increase coverage for assert/calltracker (ZiJian Liu) #36728
  • [074641c2e9] - test: improve assertion message for test-vm-memleak (Rich Trott) #37034
  • [4086b230b8] - test: increase fs promise coverage (Emil Sivervik) #36813
  • [94204f7e46] - test: process.nextTick for before exit (ttzztztz) #37012
  • [2135618052] - test: increase timeout on ASAN Action (Antoine du Hamel) #37007
  • [de6dca12e8] - test: improve coverage of SourceTextModule getters (Juan José Arboleda) #37013
  • [36cc8df358] - test: log error in test-fs-realpath-pipe (Joyee Cheung) #36996
  • [36930e4fe7] - test: test mode passed as an options object in mkdir/mkdirSync (Darshan Sen) #37008
  • [9c69ca5e54] - test,doc,lib: adjust object literal newlines for lint rule (Rich Trott) #37040
  • [fe9f4fdba5] - tools: remove commented code from stability.js (Colin Ihrig) #37092
  • [d2d6121f3e] - tools: enable object-curly-newline in ESLint rules (Rich Trott) #37040
  • [3187845980] - util: add internal createDeferredPromise() (Colin Ihrig) #37095

New in Node.js 15.7.0 (Jan 27, 2021)

  • Notable changes:
  • buffer:
  • introduce Blob (James M Snell) #36811
  • add base64url encoding option (Filip Skokan) #36952
  • doc:
  • add @iansu to collaborators (Ian Sutherland) #36951
  • add @RaisinTen to collaborators (Darshan Sen) #36998
  • add @miladfarca to collaborators (Milad Fa) #36934
  • fs:
  • allow position parameter to be a BigInt in read and readSync (raisinten) #36190
  • http:
  • attach request as res.req (Ian Storm Taylor) #36505
  • expose urlToHttpOptions utility (Yongsheng Zhang) #35960
  • Commits:
  • [775b34b822] - (SEMVER-MINOR) buffer: introduce Blob (James M Snell) #36811
  • [832cd015d5] - (SEMVER-MINOR) buffer: add base64url encoding option (Filip Skokan) #36952
  • [7ce7404f79] - build: fix compiling against openssl with no-psk (Caleb ? Everett) #36881
  • [b7d8e61ef1] - crypto: fix randomInt bias (Tobias Nießen) #36894
  • [1149af6265] - (SEMVER-MINOR) crypto: add keyObject.asymmetricKeyDetails for asymmetric keys (Filip Skokan) #36188
  • [0398167b35] - crypto: fix WebCrypto import of RSA-PSS keys (Tobias Nießen) #36877
  • [e52e860172] - deps: upgrade npm to 7.4.3 (Ruy Adorno) #37018
  • [ef3a5f6958] - deps: update ICU to 68.2 (Michaël Zasso) #36980
  • [ca479b9e9d] - deps: V8: cherry-pick fe191e8d05cc (Benjamin Coe) #36956
  • [6f773fbe84] - deps: upgrade npm to 7.4.2 (Ruy Adorno) #36953
  • [4b952d8d3e] - doc: fix maintaining ICU guide (Michaël Zasso) #36980
  • [a2559b9044] - doc: add @RaisinTen to collaborators (Darshan Sen) #36998
  • [4d5273b156] - doc: fix typo in http.server.requestTimout docs (alexbs) #36987
  • [93fc295b75] - doc: add performance notes for fs.readFile (James M Snell) #36880
  • [7ea374b159] - doc: clarify maxSockets option of http.Agent (Pooja D P) #36941
  • [f3637d5328] - doc: remove pull-requests.md preamble (Rich Trott) #36960
  • [d2d9ad7477] - doc: fix module.isPreloading documentation (Antoine du Hamel) #36944
  • [48b6781151] - doc: fix crypto.generateKeySync aes allowed length list (Filip Skokan) #36928
  • [120db2c169] - doc: fix grammar and link to QUIC in changelog (Dan Dascalescu) #36959
  • [af0f0a0f65] - doc: fix percentile range in perf_hooks.md (raisinten) #36938
  • [8cf280d9ab] - doc: improve perf_hooks docs (Juan José Arboleda) #36909
  • [3ea37c2d67] - doc: fix invalid HTML in doc template (Rich Trott) #36930
  • [eaf378aa46] - doc: remove issue template duplication from contributing docs (Rich Trott) #36908
  • [7a794417f3] - doc: remove resolving-a-bug-report from contributing docs (Rich Trott) #36905
  • [707b97307d] - doc: use ESM syntax for WASI example (Antoine du Hamel) #36848
  • [5a9a07e7cd] - doc: add iansu to collaborators (Ian Sutherland) #36951
  • [aa3bc74cd6] - doc: fixup typo in metadata entry (James M Snell) #36947
  • [22e29ccfa3] - doc: add alternative version links to the packages page (Filip Skokan) #36915
  • [80c84a1136] - doc: add miladfarca to collaborators (Milad Fa) #36934
  • [e73b1072f3] - doc: update tls test to use better terminology (Michael Dawson) #36851
  • [5cbf638c06] - doc: remove unnecessary contributing.md section (Rich Trott) #36891
  • [f99b38fedd] - doc: wrap TOC in a <details> tag (Mattia Pontonio) #36896
  • [82eccddf1e] - doc: update fs.l/statSync API history for throwIfNoEntry (Andrew Casey) #36882
  • [70cd43c32e] - doc: change "it's" to "its" where necessary (Tobias Nießen) #36913
  • [02a8f52040] - doc: fix indentation on http2 doc entry (Rich Trott) #36869
  • [dc596d0607] - events: remove error listener on signal abort (ZiJian Liu) #36969
  • [c4cdf1d830] - (SEMVER-MINOR) fs: allow position parameter to be a BigInt in read and readSync (raisinten) #36190
  • [70ee7dce62] - (SEMVER-MINOR) http: attach request as res.req (Ian Storm Taylor) #36505
  • [f07e1c9d03] - http: abortIncoming only on socket close (Robert Nagy) #36821
  • [aa7243e3d4] - http: refactor ClientRequest destroy (Robert Nagy) #36863
  • [80051abfcb] - http: cleanup ClientRequest oncreate (Robert Nagy) #36862
  • [f5b8e7b068] - http2: refactor to avoid unsafe array iteration (Antoine du Hamel) #36700
  • [8aeba3cb92] - lib: refactor to use validateArray (ZiJian Liu) #36982
  • [743dd8f89d] - lib: remove non used getter in lib/perf_hooks.js (Juan José Arboleda) #36907
  • [f2ac4bb8e2] - lib: expose primordials object (Antoine du Hamel) #36872
  • [850d3578b6] - lib: refactor primordials.makeSafe to use more primordials (ExE Boss) #36865
  • [b86c48cc91] - lib: refactor source_map to use more primordials (Antoine du Hamel) #36733
  • [1ef92f61fa] - lib: refactor source_map to avoid unsafe array iteration (Antoine du Hamel) #36734
  • [5290d63e7f] - module: simplify tryStatSync with throwIfNoEntry option (Antoine du Hamel) #36971
  • [89a7941425] - os: performance improvement in vector allocation (Yash Ladha) #36748
  • [3f75a60b51] - perf_hooks: throw ERR_INVALID_ARG_VALUE if histogram.percentile param is NaN (ZiJian Liu) #36937
  • [9951daefbd] - repl: refactor to avoid unsafe array iteration (raisinten) #36663
  • [868d3b2ff6] - src: use BaseObject::kInteralFieldCount in Blob (Joyee Cheung) #36991
  • [a5ffdaee1c] - src: replace push_back with emplace_back in debug_utils (raisinten) #36897
  • [d54998538e] - src: use BaseObject::kInternalFieldCount in X509Certificate constructor (Joyee Cheung) #36892
  • [7acea78493] - test: mark flaky tests on IBM i (Richard Lau) #36986
  • [e69c4a941d] - (SEMVER-MINOR) test: add wpt tests for Blob (Michaël Zasso) #36811
  • [2f1f1dadaa] - test: increase buffer list coverage (Emil Sivervik) #36688
  • [8d49ce9d75] - test: fix warning in test_environment.cc (raisinten) #36846
  • [98369aaf7b] - test: remove unused ecdhPeerKey (Daniel Bevenius) #36942
  • [ba87be0b0e] - test: improve coverage for Module getters (Juan José Arboleda) #36950
  • [c7dd9c8c69] - test: skip internet for test-npm-install (Ruy Adorno) #36933
  • [3bbe9a5588] - test: improve coverage on worker threads (Juan José Arboleda) #36910
  • [f589bb2052] - test: improve coverage at lib/internal/vm/module.js (Juan José Arboleda) #36898
  • [8a8241529e] - Revert "test: mark test-cluster-bind-privileged-port flaky on arm" (Rod Vagg) #36884
  • [99c15909ad] - test: fixup flaky test-crypto-x509 on windows (James M Snell) #36966
  • [c2ec15aff6] - test: check mustCall errors in test-fs-read-type (Tobias Nießen) #36914
  • [30b2aac98a] - test: fix variable name for non-RSA keys (Tobias Nießen) #36912
  • [fada6b0087] - test,benchmark: stop requiring URL and URLSearchParams (raisinten) #36927
  • [864b97b24d] - tls: use recently added matching SecureContext in default SNICallback (Mateusz Krawczuk) #36072
  • [6ef54bb9ca] - tools: cleanup old ICU version-specific fixes (Michaël Zasso) #36980
  • [8e02b53b09] - tools: update ESLint to 7.18.0 (Colin Ihrig) #36955
  • [8dc8adc782] - tools: add support for top-level await syntax in linter (Antoine du Hamel) #36911
  • [17bdcd9d18] - tools,doc: list the stability status of each API (Zijian Liu) #36223
  • [889654d36c] - url: align url format behavior with browsers (ZiJian Liu) #36903
  • [64fed319ef] - (SEMVER-MINOR) url: expose urlToHttpOptions utility (Yongsheng Zhang) #35960
  • [f2704170a3] - util: prefer Reflect.ownKeys(…) (ExE Boss) #36740
  • [0d719476e0] - vm: refactor to avoid unsafe array iteration (Antoine du Hamel) #36752
  • [bf695ebdb1] - worker: refactor to avoid unsafe array iteration (Antoine du Hamel) #36735
  • [403b595ef5] - zlib: refactor to avoid unsafe array iteration (Antoine du Hamel) #36722

New in Node.js 15.6.0 (Jan 15, 2021)

  • Notable Changes:
  • child_process:
  • add 'overlapped' stdio flag (Thiago Padilha) #29412
  • support AbortSignal in fork (Benjamin Gruenbaum) #36603
  • crypto:
  • implement basic secure heap support (James M Snell) #36779
  • fixup bug in keygen error handling (James M Snell) #36779
  • introduce X509Certificate API (James M Snell) #36804
  • implement randomuuid (James M Snell) #36729
  • doc:
  • update release key for Danielle Adams (Danielle Adams) #36793
  • add dnlup to collaborators (Daniele Belardi) #36849
  • add panva to collaborators (Filip Skokan) #36802
  • add yashLadha to collaborator (Yash Ladha) #36666
  • http:
  • set lifo as the default scheduling strategy in Agent (Matteo Collina) #36685
  • net:
  • support abortSignal in server.listen (Nitzan Uziely) #36623
  • process:
  • add direct access to rss without iterating pages (Adrien Maret) #34291
  • v8:
  • fix native serdes constructors (ExE Boss) #36549
  • Commits
  • [3ca7a786c5] - benchmark: fix http2 benchmarks (Rich Trott) #36871
  • [4601886d7c] - benchmark: fix http/headers.js with test-double (Rich Trott) #36794
  • [7aedda9dcd] - benchmark: add simple https benchmark (Andrey Pechkurov) #36612
  • [822ac48272] - buffer: make FastBuffer safe to construct (Antoine du Hamel) #36587
  • [21f329532f] - build: refactor Makefile (raisinten) #36759
  • [857b98eed9] - build: fix unknown warning option (raisinten) #36629
  • [ffaa8c1735] - build: do not "exit" a script meant to be "source"d (François-Denis Gonthier) #35520
  • [9bc2cec848] - (SEMVER-MINOR) child_process: add 'overlapped' stdio flag (Thiago Padilha) #29412
  • [b98cc51be2] - child_process: reduce abort handler code duplication (Rich Trott) #36644
  • [78d4d91e54] - child_process: treat already-aborted controller as aborting (Rich Trott) #36644
  • [a8a427f646] - (SEMVER-MINOR) child_process: support AbortSignal in fork (Benjamin Gruenbaum) #36603
  • [7134d49e56] - child_process: clean event listener correctly (Benjamin Gruenbaum) #36424
  • [54bd4ab855] - cluster: fix edge cases that throw ERR_INTERNAL_ASSERTION (Ouyang Yadong) #36764
  • [0c11a17d82] - console: refactor to avoid unsafe array iteration (Antoine du Hamel) #36753
  • [53cf996270] - (SEMVER-MINOR) crypto: implement basic secure heap support (James M Snell) #36779
  • [42aca13953] - (SEMVER-MINOR) crypto: fixup bug in keygen error handling (James M Snell) #36779
  • [c4ad50e0ff] - (SEMVER-MINOR) crypto: introduce X509Certificate API (James M Snell) #36804
  • [4e4deca90d] - (SEMVER-MINOR) crypto: implement randomuuid (James M Snell) #36729
  • [1c9ec2529e] - deps: upgrade npm to 7.4.0 (Ruy Adorno) #36829
  • [ff5bd04900] - deps: update nghttp2 to 1.42.0 (Michaël Zasso) #36842
  • [578fa0fedf] - deps: V8: cherry-pick dfcdf7837e23 (Benjamin Coe) #36573
  • [05f34c6963] - doc: define "browser", "production", "development" (Guy Bedford) #36856
  • [e8bb1f7350] - doc: clarify event.isTrusted text (Rich Trott) #36827
  • [153be6c80e] - doc: fix module syncBuiltinESMExports example (Bruce A. MacNaughton) #34284
  • [3b64b38142] - doc: os.uptime() temporary bug notice (Nicholas Schamberg) #36503
  • [da49624a46] - doc: update release key for Danielle Adams (Danielle Adams) #36793
  • [2d8423da3c] - doc: clarify child_process.exec inherits cwd (ugultopu) #36809
  • [1a4d34ebd0] - doc: clarify descriptions of _writev chunks argument (James M Snell) #36822
  • [7c7180a6f7] - doc: document buffer's "Uint" aliases clearly (Michaël Zasso) #36796
  • [ff6edbc6b2] - doc: add dnlup to collaborators (Daniele Belardi) #36849
  • [835bdf0e50] - doc: improve crypto.randomUUID() text (Rich Trott) #36830
  • [d4bcb3689d] - doc: clarify subprocess.stdout/in/err/io properties (James M Snell) #36784
  • [a956fb3fdd] - doc: add dark mode (Ajay Poshak) #36313
  • [757b9664cd] - doc: revise method text in async_hooks.md (Rich Trott) #36736
  • [b4091ea59b] - doc: clarify when messageerror is emitted (James M Snell) #36780
  • [61b039365c] - doc: avoid memory leak warning in async_hooks example (James M Snell) #36783
  • [a7bb4da55e] - doc: clarify that --require only supports cjs (James M Snell) #36806
  • [c6eb2b4fec] - doc: clarify Buffer.from when using ArrayBuffer (James M Snell) #36785
  • [ad1d8fba9f] - doc: fix broken link for ChildProcess (James M Snell) #36788
  • [ef628891f7] - doc: revise exit() and run() text in async_hooks.md (Rich Trott) #36738
  • [ff39464559] - doc: add OpenSSL CVE fix to notable changes in v15.5.0 (Beth Griggs) #36798
  • [6db465a99f] - doc: clarify that N-API addons are context-aware (Alba Mendez) #36640
  • [fad07d5439] - doc: fix typo in esm documentation (Mohamed Kamagate) #36800
  • [67dd48ed05] - doc: add panva to collaborators (Filip Skokan) #36802
  • [b2c1aeb694] - doc: revise process.memoryUsage() text (Rich Trott) #36757
  • [8f672ebbd6] - doc: add YAML metadata for process.memoryUsage.rss (Gerhard Stoebich) #36781
  • [fa54f012b8] - doc: reduce abbreviations in async_hooks.md (Rich Trott) #36737
  • [56c00d7b2f] - doc: simplify pull request template (Rich Trott) #36739
  • [214dbac8ff] - doc: clarify undocumented stream properties (James M Snell) #36715
  • [242ce19346] - doc: document common warning types (James M Snell) #36713
  • [d3dc124575] - doc: update emitClose default for fs streams (Kevin Locke) #36653
  • [181bd0510f] - doc: improve ALS.enterWith and exit descriptions (Andrey Pechkurov) #36705
  • [edf8c6de5a] - doc: add note about uncloneable objects (James M Snell) #36534
  • [651e7d27b7] - doc: document http.IncomingMessage behaviour change (Dr) #36641
  • [72b0ab0739] - doc: add yashLadha to collaborator (Yash Ladha) #36666
  • [8a0cdb3b4e] - doc: alphabetize http response properties (Rich Trott) #36631
  • [ff4674b033] - doc: correct callback parameter type for createPushResponse() (Rich Trott) #36631
  • [f623d5d377] - doc: use _code name_ rather than _codename_ (Rich Trott) #36611
  • [1ed517c176] - doc: document return value of https.request (Michael Chen) #36370
  • [5645b21e23] - doc: document "http: lazy create IncomingMessage.headers" (ExE Boss) #36601
  • [3ee4cfc7d7] - doc: fix bugs in _construct() example (Maksym Baranovskyi) #36509
  • [93237c5999] - doc: remove replication of GitHub template (Rich Trott) #36590
  • [538f226f6d] - doc: remove "Related Issues" from pull request template (Rich Trott) #36590
  • [dcc93d3dce] - doc: expand openssl instructions (Michael Dawson) #36554
  • [41e278bf61] - docs: add references to punycode.md (Isaac Levy) #36761
  • [9b9b6d5fc5] - domain: make node resilient to Array prototype tempering (Antoine du Hamel) #36676
  • [f0a9c53bec] - errors: refactor to use more primordials (Antoine du Hamel) #36651
  • [c844d22b72] - errors: eliminate all overhead for hidden calls (Momtchil Momtchev) #35644
  • [3fa470a3c9] - events: refactor to use optional chaining (ZiJian Liu) #36763
  • [82393aefff] - events: refactor to use more primordials (Antoine du Hamel) #36304
  • [e3a091d9f3] - fs: refactor to avoid unsafe array iteration (Antoine du Hamel) #36699
  • [d5e1b82125] - fs: accept non-32-bit length in writeBuffer (raisinten) #36667
  • [d858c9576a] - http: remove dead code from internal/http.js (ZiJian Liu) #36630
  • [7e3ad1be32] - Revert "http: remove dead code from internal/http.js" (ZiJian Liu) #36890
  • [a9a2dd32e3] - http: don't cork noop .end() (Robert Nagy) #36633
  • [dfc962f67a] - http: add test case for req-res close ordering (Daniele Belardi) #36645
  • [cc28d2f541] - (SEMVER-MINOR) http: set lifo as the default scheduling strategy in Agent (Matteo Collina) #36685
  • [954a36947d] - http: make HEAD method to work with keep-alive (Joseph Hackman) #34231
  • [9156f430b5] - http: remove dead code from internal/http.js (ZiJian Liu) #36630
  • [5e499c490e] - http: refactor to use more primordials (Antoine du Hamel) #36194
  • [c784f15588] - Revert "http: use autoDestroy: true in incoming message" (Daniele Belardi) #36647
  • [a38ad0709c] - http2: refactor to use primordials instead of <string>.indexOf (Rohan Chougule) #36679
  • [e85fbb778d] - http2: fix typos in core.js (Pranshu Jethmalani) #36719
  • [a4d64f967a] - https: refactor to use more primordials (Antoine du Hamel) #36195
  • [1db3772c95] - lib: simplify primordials.uncurryThis (ExE Boss) #36866
  • [95219eac08] - lib: refactor to use mapping in cluster master (Yash Ladha) #36250
  • [b764269437] - lib: remove v8_prof_polyfill from eslint ignore list (Antoine du Hamel) #36537
  • [eb6b38639a] - lib: remove unused code (Brian White) #36632
  • [7fe1b5ef5a] - lib: refactor to use validateCallback (ZiJian Liu) #36609
  • [bb4f8c8732] - lib: use more primordials in shared validators (Pooja D P) #36552
  • [181bad58d3] - lib: add primordials.SafeArrayIterator (Antoine du Hamel) #36532
  • [6e338dac3c] - lib: refactor to use more primordials in internal/encoding.js (raisinten) #36480
  • [ec3e841f59] - lib: refactor to use primordials in internal/priority_queue.js (ZiJian Liu) #36560
  • [8ac2016229] - lib: add primordials.SafeStringIterator (Antoine du Hamel) #36526
  • [56af1250fe] - lib: make safe primordials safe to construct (Antoine du Hamel) #36428
  • [d20235b6cb] - lib: fix diagnostics_channel hasSubscribers error (ZiJian Liu) #36599
  • [63091f8440] - lib: refactor to use more primordials in internal/histogram.js (raisinten) #36455
  • [eca2df0909] - meta: notify slack when someone force pushes (Mary Marchini) #35131
  • [01213c71b9] - module: fix Windows folder exports deprecation warning (Guy Bedford) #36859
  • [302be57be4] - module: refactor to avoid unsafe array iteration (Antoine du Hamel) #36680
  • [24246a29d7] - net: throw ERR_OUT_OF_RANGE if blockList.addSubnet prefix is NaN (ZiJian Liu) #36732
  • [02dbcc4317] - (SEMVER-MINOR) net: support abortSignal in server.listen (Nitzan Uziely) #36623
  • [a258bc9b70] - perf_hooks: refactor to avoid unsafe array iteration (Antoine du Hamel) #36723
  • [94afc3e712] - process: passing -1 to setuid/setgid should not abort (James M Snell) #36786
  • [92af50327e] - (SEMVER-MINOR) process: add direct access to rss without iterating pages (Adrien Maret) #34291
  • [8b7336b072] - quic,timers: refactor to use validateAbortSignal (ZiJian Liu) #36604
  • [b17130a55a] - readline: fix behaviour of Interface plugged to a non-terminal output (Antoine du Hamel) #36774
  • [d70824f567] - src: fix typo in crypto_aes.cc (Ikko Ashimine) #36717
  • [8b43388903] - src: reduce duplicated boilerplate with new env utility fn (James M Snell) #36536
  • [a53997e6c0] - src: fix leading backslash bug in URL (raisinten) #36613
  • [abae61e230] - stream: finished waits for 'close' on OutgoingMessage (Robert Nagy) #36648
  • [4c819d65f9] - stream: fix .end() error propagation (Robert Nagy) #36817
  • [cb0b53edb1] - stream: lazy read ReadStream (Momtchil Momtchev) #36823
  • [b996e3b4b5] - stream: do not use _stream_* anymore (Matteo Collina) #36684
  • [190ddced46] - stream: only use legacy close listeners if not willEmitClose (Robert Nagy) #36649
  • [1fc30a84ac] - stream,zlib: do not use _stream_* anymore (Matteo Collina) #36618
  • [d2b9e7cb01] - string_decoder: throw ERR_STRING_TOO_LONG for UTF-8 (Michaël Zasso) #36661
  • [abc2ff47c2] - test: disable test-crypto-secure-heap with asan (James M Snell) #36900
  • [17a52337c4] - test: http complete response after socket double end (Dimitris Halatsis) #36633
  • [cc37ff24dc] - test: use faster variant for rss in test-crypto-dh-leak (Pooja D P) #36766
  • [daad0ab1cc] - test: use faster variant for rss in test-vm-memleak.js (Pooja D P) #36769
  • [9d25d25cfd] - test: mark test-cluster-bind-privileged-port flaky on arm (James M Snell) #36850
  • [c64db20fdd] - test: use faster variant for rss test-memoryusage-emfile (Pooja D P) #36768
  • [d48e00e5a3] - test: fix test-memory-usage.js for IBMi (Rich Trott) #36758
  • [9b7d2c2523] - test: guard large string decoder allocation (Michaël Zasso) #36795
  • [5bc130bd9e] - test: increase coverage for events (ZiJian Liu) #36668
  • [9f7fbcc64d] - test: add coverage for breakLength one-column array (Rich Trott) #36657
  • [9eff709c23] - test: update wpt interfaces (Daijiro Wachi) #36659
  • [a7f743f5cc] - test: update wpt resources (Daijiro Wachi) #36659
  • [4acc2732f9] - test: update wpt encoding (Daijiro Wachi) #36659
  • [986d5aca44] - test: update wpt url (Daijiro Wachi) #36659
  • [833e614682] - test: increase coverage for diagnostics_channel (ZiJian Liu) #36602
  • [f0dfe57bd1] - test: add already-aborted-controller test for spawn() (Rich Trott) #36644
  • [d5d56ec3d4] - test: add test for reused AbortController with execfile() (Rich Trott) #36644
  • [f81556563a] - test: increase coverage for internal/error_serdes.js (ZiJian Liu) #36628
  • [34d1d791e5] - test: improve coverage for util.inspect() with classes (Rich Trott) #36625
  • [1f3bc5ed73] - test: increase runInAsyncScope() coverage (Rich Trott) #36624
  • [863bfc44d2] - test: redirect stderr EnvironmentWithNoESMLoader (Daniel Bevenius) #36548
  • [8e8b16ff7e] - timers: refactor to use optional chaining (ZiJian Liu) #36767
  • [c23cca2de9] - tls: refactor to avoid unsafe array iteration (Antoine du Hamel) #36772
  • [37becfda8c] - tools: update all lint-md rollup dependencies (Michaël Zasso) #36843
  • [cfdbb79ccf] - tools: update doc tool dependencies (Michaël Zasso) #36844
  • [1f2a198c32] - tools: fix md5 hash for ICU 68.1 src (Richard Lau) #36777
  • [4e0995bc60] - tools: update ESLint to 7.17.0 (Colin Ihrig) #36726
  • [8ad3455ae3] - tools: revise install.py for minor improvements (Rich Trott) #36626
  • [b367d5a61d] - tools: update gyp-next to v0.7.0 (Michaël Zasso) #36580
  • [10f1c893c8] - tools: correct usage message for genv8constants.py (Rich Trott) #36606
  • [37b39a2d6b] - tools: call close() explicitly in genv8constants.py (Rich Trott) #36606
  • [7664f3678c] - tools: use is None consistently in Python (Rich Trott) #36606
  • [cb7f73c9d4] - tools: revise line in configure.py for clarity (Rich Trott) #36551
  • [258aa50986] - tty: refactor to avoid unsafe array iteration (Antoine du Hamel) #36771
  • [5cb8b16452] - url: fix url.format with ipv6 hostname (ZiJian Liu) #36665
  • [b1c6a44caf] - url: refactor to use more primordials (Antoine du Hamel) #36316
  • [baa8064bd0] - util: refactor inspect.js to use more primodials (Rohan Chougule) #36730
  • [bff201a66d] - util: remove unreachable defensive coding (Rich Trott) #36744
  • [64bf2f229e] - util: refactor to use more primordials (Antoine du Hamel) #36265
  • [2dd2ec3836] - v8: refactor to use more primordials (Antoine du Hamel) #36527
  • [3170636a8e] - (SEMVER-MINOR) v8: fix native serdes constructors (ExE Boss) #36549
  • [d5a9799e76] - wasi: refactor to avoid unsafe array iteration (Antoine du Hamel) #36724
  • [b6f74b0b09] - zlib: refactor to use primordial instead of <string>.startsWith (Rohan Chougule) #36718

New in Node.js 15.5.1 (Jan 5, 2021)

  • 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 (Low):
  • 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

New in Node.js 14.15.4 LTS (Jan 5, 2021)

  • Vulnerabilities fixed:
  • CVE-2020-1971: OpenSSL - EDIPARTYNAME NULL pointer de-reference (High):This is a vulnerability in OpenSSL which may be exploited through Node.js.
  • 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 (Low):
  • 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

New in Node.js 15.5.0 (Dec 22, 2020)

  • Commits:
  • Semver-minor commits:
  • [e449571230] - (SEMVER-MINOR) child_process: add signal support to spawn (Benjamin Gruenbaum) #36432
  • [25d7e90386] - (SEMVER-MINOR) http: use autoDestroy: true in incoming message (Daniele Belardi) #33035
  • [5481be8cbd] - (SEMVER-MINOR) lib: support BigInt in querystring.stringify (raisinten) #36499
  • [036ed1fafc] - (SEMVER-MINOR) src: add way to get IsolateData and allocator from Environment (Anna Henningsen) #36441
  • [e23309486b] - (SEMVER-MINOR) src: allow preventing SetPrepareStackTraceCallback (Shelley Vohr) #36447
  • [6ecbc1dcb3] - (SEMVER-MINOR) stream: support abortsignal in constructor (Benjamin Gruenbaum) #36431
  • Semver-patch commits:
  • [1330995b80] - build,lib,test: change whitelist to allowlist (Michaël Zasso) #36406
  • [dc8d1a74a6] - deps: upgrade npm to 7.3.0 (Ruy Adorno) #36572
  • [b6a31f0a70] - deps: update archs files for OpenSSL-1.1.1i (Myles Borins) #36520
  • [5b49807c3f] - deps: re-enable OPENSSL_NO_QUIC guards (James M Snell) #36520
  • [309e2971a2] - deps: various quic patches from akamai/openssl (Todd Short) #36520
  • [27fb651cbc] - deps: upgrade openssl sources to 1.1.1i (Myles Borins) #36520
  • [1f43aadf90] - deps: update patch and docs for openssl update (Myles Borins) #36520
  • [752c94d202] - deps: fix npm doctor tests for pre-release node (nlf) #36543
  • [b0393fa2ed] - deps: upgrade npm to 7.2.0 (Myles Borins) #36543
  • [cb4652e91d] - deps: update to c-ares 1.17.1 (Danny Sonnenschein) #36207
  • [21fbcb6f81] - deps: V8: backport 4bf051d536a1 (Anna Henningsen) #36482
  • [30fe0ff681] - deps: upgrade npm to 7.1.2 (Darcy Clarke) #36487
  • [0baa610c3e] - deps: upgrade npm to 7.1.1 (Ruy Adorno) #36459
  • [5929b08851] - deps: upgrade npm to 7.1.0 (Ruy Adorno) #36395
  • [deaafd5788] - dns: refactor to use more primordials (Antoine du Hamel) #36314
  • [e30af7be33] - fs: refactor to use optional chaining (ZiJian Liu) #36524
  • [213dcd7930] - http: add test for incomingmessage destroy (Daniele Belardi) #33035
  • [36b4ddd382] - http: use standard args order in IncomingMEssage onError (Daniele Belardi) #33035
  • [60b5e696fc] - http: remove trailing space (Daniele Belardi) #33035
  • [f11a648d8e] - http: add comments in _http_incoming (Daniele Belardi) #33035
  • [4b81d79b58] - http: fix lint error in incoming message (Daniele Belardi) #33035
  • [397e31e25f] - http: reafactor incoming message destroy (Daniele Belardi) #33035
  • [9852ebca8d] - http: do not loop over prototype in Agent (Michaël Zasso) #36410
  • [e46a46a4cd] - inspector: refactor to use more primordials (Antoine du Hamel) #36356
  • [728f512c7d] - lib: make safe primordials safe to iterate (Antoine du Hamel) #36391
  • [f368d697cf] - Revert "perf_hooks: make PerformanceObserver an AsyncResource" (Nicolai Stange) #36343
  • [e2ced0d401] - perf_hooks: invoke performance_entry_callback via MakeSyncCallback() (Nicolai Stange) #36343
  • [7c903ec6c8] - repl: disable blocking completions by default (Anna Henningsen) #36564
  • [d38a0ec93e] - src: remove unnecessary ToLocalChecked node_errors (Daniel Bevenius) #36547
  • [bbc0d14cd2] - src: use correct microtask queue for checkpoints (Anna Henningsen) #36581
  • [7efb3111e8] - src: remove unnecessary ToLocalChecked call (Daniel Bevenius) #36523
  • [68687d3419] - src: remove empty name check in node_env_var.cc (raisinten) #36133
  • [1b4984de98] - src: remove duplicate V macros in node_v8.cc (Daniel Bevenius) #36454
  • [5ff7f42e65] - src: use correct outer Context’s microtask queue (Anna Henningsen) #36482
  • [96c095f237] - src: guard against env != null in node_errors.cc (Anna Henningsen) #36414
  • [4f3d7bb417] - src: introduce convenience node::MakeSyncCallback() (Nicolai Stange) #36343
  • [e59788262c] - src: add typedef for CleanupHookCallback callback (Daniel Bevenius) #36442
  • [2a60e3b9df] - src: fix indentation in memory_tracker-inl.h (Daniel Bevenius) #36425
  • [210390f6fd] - src: remove identical V macro (Daniel Bevenius) #36427
  • [02afe586aa] - src: use using declarations consistently (Daniel Bevenius) #36365
  • [169406b7d7] - src: add missing context scopes (Anna Henningsen) #36413
  • [3f33d0bcda] - stream: fix pipe deadlock when starting with needDrain (Robert Nagy) #36563
  • [d8b5b9499c] - stream: accept iterable as a valid first argument (ZiJian Liu) #36479
  • [58319d5336] - tls: forward new SecureContext options (Alba Mendez) #36416
  • [fa40366276] - util: simplify constructor retrieval in inspect() (Rich Trott) #36466
  • [cc544dbfaa] - util: fix instanceof checks with null prototypes during inspection (Ruben Bridgewater) #36178
  • [13d6597b4b] - util: fix module prefixes during inspection (Ruben Bridgewater) #36178
  • [20ecc82569] - worker: fix broadcast channel SharedArrayBuffer passing (Anna Henningsen) #36501
  • [56fe9bae26] - worker: refactor MessagePort entanglement management (Anna Henningsen) #36345
  • Documentation commits:
  • [19c233232f] - doc: fix AbortSignal example for stream.Readable (Michaël Zasso) #36596
  • [9fbab3e2f5] - doc: update and run license-builder for Babel (Michaël Zasso) #36504
  • [a1ba6686a0] - doc: add remark about Collaborators discussion page (FrankQiu) #36420
  • [c5602fb166] - doc: simplify worker_threads.md text (Rich Trott) #36545
  • [149f2cfac1] - doc: add two tips for speeding the dev builds (Momtchil Momtchev) #36452
  • [ad75c78c32] - doc: add note about timingSafeEqual for TypedArray (Tobias Nießen) #36323
  • [9830fe5c9e] - doc: move Derek Lewis to emeritus (Rich Trott) #36514
  • [eb29a16bae] - doc: add issue reference to github pr template (Chinmoy Chakraborty) #36440
  • [f09985d42a] - doc: update url.md (Rock) #36147
  • [c3ec90d23c] - doc: make explicit reverting node_version.h changes (Richard Lau) #36461
  • [7a34452b1d] - doc: add license info to the README (FrankQiu) #36278
  • [22f039339f] - doc: revise addon mulitple initializations text (Rich Trott) #36457
  • [25a245443a] - doc: add v15.4.0 link to CHANGELOG.md (Danielle Adams) #36456
  • [1ec8516fd6] - doc: add PoojaDurgad to collaborators (Pooja D P) #36511
  • [98918110a1] - doc: edit addon text about event loop blocking (Rich Trott) #36448
  • [62bfe3d313] - doc: note v15.0.0 changed default --unhandled-rejections=throw (kai zhu) #36361
  • [129053fe4c] - doc: update terminology (Michael Dawson) #36475
  • [e331de2571] - doc: reword POSIX threads text in addons.md (Rich Trott) #36436
  • [04f166389b] - doc: add RaisinTen as a triager (raisinten) #36404
  • [3341b2cb9d] - doc: document ABORT_ERR code (Benjamin Gruenbaum) #36319
  • [6a6b3af736] - doc: provide more context on techinical values (Michael Dawson) #36201
  • Other commits:
  • [e1f00fd996] - benchmark: reduce code duplication (Rich Trott) #36568
  • [82a26268d7] - build: do not run GitHub actions for draft PRs (Michaël Zasso) #35910
  • [95c80f5fb0] - build: run some workflows only on nodejs/node (Michaël Zasso) #36507
  • [584ea8b26c] - build: fix make test-npm (Ruy Adorno) #36369
  • [01576fbc19] - test: increase abort logic coverage (Moshe vilner) #36586
  • [22ac2279ee] - test: increase coverage for stream (ZiJian Liu) #36538
  • [9fc2479707] - test: increase coverage for worker (ZiJian Liu) #36491
  • [81e603b7cf] - test: specify global object for globals (Rich Trott) #36498
  • [109ab787fd] - test: increase coverage for fs/dir read (Zijian Liu) #36388
  • [9f2d3c291b] - test: remove test-http2-client-upload as flaky (Rich Trott) #36496
  • [d299ceeac7] - test: increase coverage for net/blocklist (Zijian Liu) #36405
  • [f7635fd86d] - test: make executable name more general (Shelley Vohr) #36489
  • [acd78d9d25] - test: increased externalized string length (Shelley Vohr) #36451
  • [0f749a35ec] - test: add test for async contexts in PerformanceObserver (ZauberNerd) #36343
  • [dd705ad1f0] - test: increase execFile abort coverage (Moshe vilner) #36429
  • [31b062d591] - test: fix flaky test-repl (Rich Trott) #36415
  • [023291b43c] - test: check null proto-of-proto in util.inspect() (Rich Trott) #36399
  • [d3d1f338c7] - test: add SIGTRAP to test-signal-handler (Ash Cripps) #36368
  • [166aa8a7b5] - test: fix child-process-pipe-dataflow (Santiago Gimeno) #36366
  • [ecbb757ae0] - tools: fix make-v8.sh (Richard Lau) #36594
  • [e3c5adc6d0] - tools: fix release script sign function (Antoine du Hamel) #36556
  • [0d4d34748d] - tools: update ESLint to 7.16.0 (Yongsheng Zhang) #36579
  • [f3828c9dcb] - tools: fix update-eslint.sh (Yongsheng Zhang) #36579
  • [27260c70b4] - tools: fix release script (Antoine du Hamel) #36540
  • [c6700ad041] - tools: remove unused variable in configure.py (Rich Trott) #36525
  • [7b8d373d5e] - tools: lint shell scripts (Antoine du Hamel) #36099
  • [c6e65d09ef] - tools: update ini in tools/node-lint-md-cli-rollup (Myles Borins) #36474
  • [7542a3bd55] - tools: enable no-unsafe-optional-chaining lint rule (Colin Ihrig) #36411
  • [26f8ccfbe6] - tools: update ESLint to 7.15.0 (Colin Ihrig) #36411
  • [8ecf2f9976] - tools: update doc tool dependencies (Michaël Zasso) #36407
  • [040b39f076] - tools: enable no-unused-expressions lint rule (Michaël Zasso) #36248

New in Node.js 14.15.3 LTS (Dec 18, 2020)

  • Node.js v14.15.2 included a commit that has caused reported breakages when cloning request objects. This release reverts the commit that introduced the behaviour change. See #36550 for more details.

New in Node.js 15.4.0 (Dec 9, 2020)

  • Changes:
  • Child_processes:
  • Add AbortSignal support (Benjamin Gruenbaum) #36308
  • Deps:
  • Update ICU to 68.1 (Michaël Zasso) #36187
  • Events:
  • Support signal in EventTarget (Benjamin Gruenbaum) #36258
  • Graduate Event, EventTarget, AbortController (James M Snell) #35949
  • Http:
  • Enable call chaining with setHeader() (pooja d.p) #35924
  • Module:
  • Add isPreloading indicator (James M Snell) #36263
  • Stream:
  • Support abort signal (Benjamin Gruenbaum) #36061
  • Add FileHandle support to Read/WriteStream (Momtchil Momtchev) #35922
  • Worker:
  • Add experimental BroadcastChannel (James M Snell) #36271

New in Node.js 15.3.0 (Nov 24, 2020)

  • NOTABLE CHANGES:
  • [6349b1d673] - (SEMVER-MINOR) dns: add a cancel() method to the promise Resolver (Szymon Marczak) #33099
  • [9ce9b016e6] - (SEMVER-MINOR) events: add max listener warning for EventTarget (James M Snell) #36001
  • [8390f8a86b] - (SEMVER-MINOR) http: add support for abortsignal to http.request (Benjamin Gruenbaum) #36048
  • [9c6be3cc90] - (SEMVER-MINOR) http2: allow setting the local window size of a session (Yongsheng Zhang) #35978
  • [15ff155c12] - (SEMVER-MINOR) lib: add throws option to fs.f/l/statSync (Andrew Casey) #33716
  • [85c85d368a] - (SEMVER-MINOR) path: add path/posix and path/win32 alias modules (ExE Boss) #34962
  • [d1baae3640] - (SEMVER-MINOR) readline: add getPrompt to get the current prompt (Mattias Runge-Broberg) #33675
  • [5729478509] - (SEMVER-MINOR) src: add loop idle time in diagnostic report (Gireesh Punathil) #35940
  • [baa87c1a7d] - (SEMVER-MINOR) util: add util/types alias module (ExE Boss) #34055
  • COMMITS:
  • [34aa0c868e] - assert: refactor to use more primordials (Antoine du Hamel) #35998
  • [28d710164a] - async_hooks: refactor to use more primordials (Antoine du Hamel) #36168
  • [1924255fdb] - async_hooks: fix leak in AsyncLocalStorage exit (Stephen Belanger) #35779
  • [3ee556a867] - benchmark: fix build warnings (Gabriel Schulhof) #36157
  • [fcc38a1312] - build: replace which with command -v (raisinten) #36118
  • [60874ba941] - build: try “python3” as a last resort for 3.x (Ole André Vadla Ravnås) #35983
  • [fbe210b2a1] - build: conditionally clear vcinstalldir (Brian Ingenito) #36009
  • [56f83e6876] - build: refactor configure.py to use argparse (raisinten) #35755
  • [0b70822461] - child_process: refactor to use more primordials (Antoine du Hamel) #36003
  • [e54108f2e4] - cluster: refactor to use more primordials (Antoine du Hamel) #36011
  • [272fc794b2] - crypto: fix format warning in AdditionalConfig (raisinten) #36060
  • [63a138e02f] - crypto: fix passing TypedArray to webcrypto AES methods (Antoine du Hamel) #36087
  • [4a88c73fa5] - deps: upgrade npm to 7.0.14 (nlf) #36238
  • [d16e8622a7] - deps: upgrade npm to 7.0.13 (Ruy Adorno) #36202
  • [c23ee3744f] - deps: upgrade npm to 7.0.12 (Ruy Adorno) #36153
  • [0fcbb1c0d5] - deps: V8: cherry-pick 3176bfd447a9 (Anna Henningsen) #35612
  • [27f1bc05fd] - deps: upgrade npm to 7.0.11 (Darcy Clarke) #36112
  • [8ae3ffe2be] - deps: V8: cherry-pick 1d0f426311d4 (Ole André Vadla Ravnås) #35986
  • [4b7ba11d67] - deps: V8: cherry-pick 4e077ff0444a (Ole André Vadla Ravnås) #35986
  • [098a5b1298] - deps: V8: cherry-pick 086eecbd96b6 (Ole André Vadla Ravnås) #35986
  • [d2c757ab19] - deps: V8: cherry-pick 27e1ac1a79ff (Ole André Vadla Ravnås) #35986
  • [6349b1d673] - (SEMVER-MINOR) dns: add a cancel() method to the promise Resolver (Szymon Marczak) #33099
  • [0fbade38ef] - doc: add arm64 macOS as experimental (Richard Lau) #36189
  • [42dfda8f78] - doc: remove stray comma in url.md (Rich Trott) #36175
  • [8bbdbccbb6] - doc: revise agent.destroy() text (Rich Trott) #36163
  • [545ac1fec5] - doc: fix punctuation in v8.md (Rich Trott) #36192
  • [a6a90af8c0] - doc: add compatibility/interop technical value (Geoffrey Booth) #35323
  • [4ab4a99900] - doc: de-emphasize wrapping in napi_define_class (Gabriel Schulhof) #36159
  • [bb29508e8f] - doc: add link for v8.takeCoverage() (Rich Trott) #36135
  • [24065b92f1] - doc: mark modules implementation as stable (Guy Bedford) #35781
  • [142cacdc63] - doc: clarify text about process not responding (Rich Trott) #36117
  • [0ff384b0be] - doc: esm docs consolidation and reordering (Guy Bedford) #36046
  • [b17a83a00d] - doc: claim ABI version for Electron v13 (Shelley Vohr) #36101
  • [e8a8513b2c] - doc: fix invalid link in worker_threads.md (Rich Trott) #36109
  • [cd33594a0d] - doc: move shigeki to emeritus (Rich Trott) #36093
  • [eefc6aa6c9] - doc: document the error when cwd not exists in child_process.spawn (FeelyChau) #34505
  • [841a2812d0] - doc: fix typo in debugger.md (Rich Trott) #36066
  • [500e709439] - doc: update list styles for remark-parse@9 rendering (Rich Trott) #36049
  • [a8dab217eb] - doc,url: fix url.hostname example (Rishabh Mehan) #33735
  • [e48ec703ba] - domain: improve deprecation warning text for DEP0097 (Anna Henningsen) #36136
  • [bcbf176c22] - errors: refactor to use more primordials (Antoine du Hamel) #36167
  • [66788970ac] - esm: refactor to use more primordials (Antoine du Hamel) #36019
  • [9ce9b016e6] - (SEMVER-MINOR) events: add max listener warning for EventTarget (James M Snell) #36001
  • [1550073dbc] - events: disabled manual construction AbortSignal (raisinten) #36094
  • [8a6cabbb23] - events: port some wpt tests (Ethan Arrowood) #34169
  • [3691eccf0a] - fs: remove experimental from promises.rmdir recursive (Anders Kaseorg) #36131
  • [76b1863240] - fs: filehandle read now accepts object as argument (Nikola Glavina) #34180
  • [2fdf509268] - http: fix typo in comment (Hollow Man) #36193
  • [8390f8a86b] - (SEMVER-MINOR) http: add support for abortsignal to http.request (Benjamin Gruenbaum) #36048
  • [387d92fd0e] - http: onFinish will not be triggered again when finished (rickyes) #35845
  • [48bf59bb8b] - http2: add support for AbortSignal to http2Session.request (Madara Uchiha) #36070
  • [8a0c3b9c76] - http2: refactor to use more primordials (Antoine du Hamel) #36142
  • [f0aed8c01c] - http2: add support for TypedArray to getUnpackedSettings (Antoine du Hamel) #36141
  • [9c6be3cc90] - (SEMVER-MINOR) http2: allow setting the local window size of a session (Yongsheng Zhang) #35978
  • [0b40568afe] - http2: delay session.receive() by a tick (Szymon Marczak) #35985
  • [1a4d43f840] - lib: refactor to use more primordials (Antoine du Hamel) #36140
  • [d6ea12e003] - lib: set abort-controller toStringTag (Benjamin Gruenbaum) #36115
  • [82f1cde57e] - lib: remove primordials.SafePromise (Antoine du Hamel) #36149
  • [15ff155c12] - (SEMVER-MINOR) lib: add throws option to fs.f/l/statSync (Andrew Casey) #33716
  • [75707f45eb] - lib,tools: enforce access to prototype from primordials (Antoine du Hamel) #36025
  • [79b2ba6744] - n-api: clean up binding creation (Gabriel Schulhof) #36170
  • [5698cc08f0] - n-api: fix test_async_context warnings (Gabriel Schulhof) #36171
  • [3d623d850c] - n-api: improve consistency of how we get context (Michael Dawson) #36068
  • [89da0c3353] - n-api: factor out calling pattern (Gabriel Schulhof) #36113
  • [5c0ddbca01] - net: fix invalid write after end error (Robert Nagy) #36043
  • [85c85d368a] - (SEMVER-MINOR) path: add path/posix and path/win32 alias modules (ExE Boss) #34962
  • [ed8af3a8b7] - perf_hooks: make nodeTiming a first-class object (Momtchil Momtchev) #35977
  • [eb9295b583] - promise: emit error on domain unhandled rejections (Benjamin Gruenbaum) #36082
  • [59af919d6b] - querystring: reduce memory usage by Int8Array (sapics) #34179
  • [d1baae3640] - (SEMVER-MINOR) readline: add getPrompt to get the current prompt (Mattias Runge-Broberg) #33675
  • [6d1b1c7ad0] - src: integrate URL::href() and use in inspector (Daijiro Wachi) #35912
  • [7086f2e653] - src: refactor using-declarations node_env_var.cc (raisinten) #36128
  • [122797e87f] - src: remove duplicate logic for getting buffer (Yash Ladha) #34553
  • [5729478509] - (SEMVER-MINOR) src: add loop idle time in diagnostic report (Gireesh Punathil) #35940
  • [a81dc9ae18] - src,crypto: refactoring of crypto_context, SecureContext (James M Snell) #35665
  • [5fa35f6934] - test: update comments in test-fs-read-offset-null (Rich Trott) #36152
  • [73bb54af77] - test: update wpt url and resource (Daijiro Wachi) #36032
  • [77b47dfd08] - test: fix typo in inspector-helper.js (Luigi Pinca) #36127
  • [474664963c] - test: deflake test-http-destroyed-socket-write2 (Luigi Pinca) #36120
  • [f9bbd35937] - test: make test-http2-client-jsstream-destroy.js reliable (Rich Trott) #36129
  • [c19df17acb] - test: add test for fs.read when offset key is null (mayank agarwal) #35918
  • [9405cddbee] - test: improve test-stream-duplex-readable-end (Luigi Pinca) #36056
  • [3be5e86c57] - test: add util.inspect test for null maxStringLength (Rich Trott) #36086
  • [6a4cc43028] - test: replace var with const (Aleksandr Krutko) #36069
  • [a367c0dfc2] - timers: refactor to use more primordials (Antoine du Hamel) #36132
  • [a6ef92bc27] - tools: bump [email protected] to [email protected] (Rich Trott) #36106
  • [2d2491284e] - tools: only use 2 cores for macos action (Myles Borins) #36169
  • [d8fcf2c324] - tools: remove bashisms from license builder script (Antoine du Hamel) #36122
  • [7e7ddb11c0] - tools: hide commit queue action link (Antoine du Hamel) #36124
  • [63494e434a] - tools: update doc tools to [email protected] (Rich Trott) #36049
  • [bf0550ce4e] - tools: enforce use of single quotes in editorconfig (Antoine du Hamel) #36020
  • [49649a499e] - tools: fix config serialization w/ long strings (Ole André Vadla Ravnås) #35982
  • [be220b213d] - tools: update ESLint to 7.13.0 (Luigi Pinca) #36031
  • [4140f491fd] - util: fix to inspect getters that access this (raisinten) #36052
  • [baa87c1a7d] - (SEMVER-MINOR) util: add util/types alias module (ExE Boss) #34055
  • [f7b2fce1c1] - vm: refactor to use more primordials (Antoine du Hamel) #36023
  • [4e3883ec2d] - win,build,tools: support VS prerelease (Baruch Odem) #36033

New in Node.js 15.2.1 (Nov 16, 2020)

  • 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.

New in Node.js 15.2.0 (Nov 11, 2020)

  • Notable changes:
  • events:
  • getEventListeners static (Benjamin Gruenbaum) #35991
  • fs:
  • support abortsignal in writeFile (Benjamin Gruenbaum) #35993
  • add support for AbortSignal in readFile (Benjamin Gruenbaum) #35911
  • stream:
  • fix thrown object reference (Gil Pedersen) #36065
  • Commits:
  • [9d9a044c1b] - benchmark: ignore build artifacts for napi addons (Richard Lau) #35970
  • [4c6de854be] - benchmark: remove modules that require intl (Richard Lau) #35968
  • [292915a6a8] - bootstrap: refactor to use more primordials (Antoine du Hamel) #35999
  • [10c9ea771d] - build: fix zlib inlining for IA-32 (raisinten) #35679
  • [6ac9c8f31b] - build, tools: look for local installation of NASM (Richard Lau) #36014
  • [9757b47c44] - console: use more primordials (Antoine du Hamel) #35734
  • [0d7422651b] - crypto: refactor to use more primordials (Antoine du Hamel) #36012
  • [dc4936ba50] - crypto: fix comment in ByteSource (Tobias Nießen) #35972
  • [7cb5c0911e] - deps: cherry-pick 9a49b22 from V8 upstream (Daniel Bevenius) #35939
  • [4b03670877] - dns: fix trace_events name for resolveCaa() (Rich Trott) #35979
  • [dcb27600da] - doc: escape asterisk in cctest gtest-filter (raisinten) #36034
  • [923276ca53] - doc: move v8.getHeapCodeStatistics() (Rich Trott) #36027
  • [71fa9c6b24] - doc: add note regarding file structure in src/README.md (Denys Otrishko) #35000
  • [99cb36238d] - doc: advise users to import the full set of trusted release keys (Reşat SABIQ) #32655
  • [06cc400160] - doc: fix crypto doc linter errors (Antoine du Hamel) #36035
  • [01129a7b39] - doc: revise v8.getHeapSnapshot() (Rich Trott) #35849
  • [77d33c9b2f] - doc: update core-validate-commit link in guide (Daijiro Wachi) #35938
  • [6d56ba03e2] - doc: update benchmark CI test indicator in README (Rich Trott) #35945
  • [8bd364a9b3] - doc: add new wordings to the API description (Pooja D.P) #35588
  • [acd3617e1a] - doc: option --prof documentation help added (krank2me) #34991
  • [6968b0fd49] - doc: fix release-schedule link in backport guide (Daijiro Wachi) #35920
  • [efbfeff62b] - doc: fix incorrect heading level (Bryan Field) #35965
  • [9c4b360d08] - doc,crypto: added sign/verify method changes about dsaEncoding (Filip Skokan) #35480
  • [85cf30541d] - doc,fs: document value of stats.isDirectory on symbolic links (coderaiser) #27413
  • [d6bd78ff82] - doc,net: document socket.timeout (Brandon Kobel) #34543
  • [36c20d939a] - doc,stream: write(chunk, encoding, cb) encoding can be null (dev-script) #35372
  • [9d26c4d496] - domain: refactor to use more primordials (Antoine du Hamel) #35885
  • [d83e253065] - errors: refactor to use more primordials (Antoine du Hamel) #35944
  • [567f8d8caf] - (SEMVER-MINOR) events: getEventListeners static (Benjamin Gruenbaum) #35991
  • [9e673723e3] - events: fire handlers in correct oder (Benjamin Gruenbaum) #35931
  • [ff59fcdf7b] - events: define abort on prototype (Benjamin Gruenbaum) #35931
  • [ab0eb4f2c9] - events: support event handlers on prototypes (Benjamin Gruenbaum) #35931
  • [33e2ee58a7] - events: define event handler as enumerable (Benjamin Gruenbaum) #35931
  • [a7d0c76f86] - events: support emit on nodeeventtarget (Benjamin Gruenbaum) #35851
  • [76332a0439] - events: port some wpt tests (Benjamin Gruenbaum) #33621
  • [ccf9f0e62e] - (SEMVER-MINOR) fs: support abortsignal in writeFile (Benjamin Gruenbaum) #35993
  • [7ef9c707e9] - fs: replace finally with PromisePrototypeFinally (Baruch Odem (Rothkoff)) #35995
  • [ccbe267515] - fs: remove unnecessary Function#bind() in fs/promises (Ben Noordhuis) #35208
  • [6011bfdec5] - fs: remove unused assignment (Rich Trott) #35882
  • [92bdfd141b] - (SEMVER-MINOR) fs: add support for AbortSignal in readFile (Benjamin Gruenbaum) #35911
  • [11f592450b] - http2: add has method to proxySocketHandler (masx200) #35197
  • [28ed7d062e] - http2: centralise socket event binding in Http2Session (Momtchil Momtchev) #35772
  • [429113ebfb] - http2: move events to the JSStreamSocket (Momtchil Momtchev) #35772
  • [1dd744a420] - http2: fix error stream write followed by destroy (David Halls) #35951
  • [af2a560c42] - lib: add %TypedArray% abstract constructor to primordials (ExE Boss) #36016
  • [b700900d02] - lib: refactor to use more primordials (Antoine du Hamel) #35875
  • [7a375902ff] - module: refactor to use more primordials (Antoine du Hamel) #36024
  • [8d76db86b5] - module: refactor to use iterable-weak-map (Benjamin Coe) #35915
  • [9b6512f7de] - n-api: unlink reference during its destructor (Gabriel Schulhof) #35933
  • [1b277d97f3] - src: remove ERR prefix in crypto status enums (Daniel Bevenius) #35867
  • [9774b4cc72] - stream: fix thrown object reference (Gil Pedersen) #36065
  • [359a6590b0] - stream: writableNeedDrain (Robert Nagy) #35348
  • [b7aa5e2296] - stream: remove isPromise utility function (Antoine du Hamel) #35925
  • [fdae9ad188] - test: fix races in test-performance-eventlooputil (Gerhard Stoebich) #36028
  • [0a4c96a7df] - test: use global.EventTarget instead of internals (Antoine du Hamel) #36002
  • [f73b8d84db] - test: improve error message for policy failures (Bradley Meck) #35633
  • [cb6f0d3d89] - test: update old comment style test_util.cc (raisinten) #35884
  • [23f0d0c45c] - test: fix error in test/internet/test-dns.js (Rich Trott) #35969
  • [77e4f19701] - timers: cleanup abort listener on awaitable timers (James M Snell) #36006
  • [a7350b3a8f] - tools: don't print gold linker warning w/o flag (Myles Borins) #35955
  • [1f27214480] - tools: add new ESLint rule: prefer-primordials (Leko) #35448
  • [da3c2ab828] - tools,doc: enable ecmaVersion 2021 in acorn parser (Antoine du Hamel) #35994
  • [f8098c3e43] - tools,lib: recommend using safe primordials (Antoine du Hamel) #36026
  • [eea7e3b0d0] - tools,lib: tighten prefer-primordials rules for Error statics (Antoine du Hamel) #36017
  • [7a2edea7ed] - win, build: fix build time on Windows (Bartosz Sosnowski) #35932

New in Node.js 15.1.0 (Nov 5, 2020)

  • Notable Changes:
  • Diagnostics channel (experimental module):
  • diagnostics_channel is a new experimental module that provides an API to create named channels to report arbitrary message data for diagnostics purposes.
  • With diagnostics_channel, Node.js core and module authors can publish contextual data about what they are doing at a given time. This could be the hostname and query string of a mysql query, for example. Just create a named channel with dc.channel(name) and call channel.publish(data) to send the data to any listeners to that channel.
  • Channels are like one big global event emitter but are split into separate objects to ensure they get the best performance. If nothing is listening to the channel, the publishing overhead should be as close to zero as possible. Consuming channel data is as easy as using channel.subscribe(listener) to run a function whenever a message is published to that channel.
  • The data captured can be used to provide context for what an app is doing at a given time. This can be used for things like augmenting tracing data, tracking network and filesystem activity, logging queries, and many other things. It's also a very useful data source for diagnostics tools to provide a clearer picture of exactly what the application is doing at a given point in the data they are presenting.
  • Contributed by Stephen Belanger #34895.
  • New child process 'spawn' event:
  • Instances of ChildProcess now emit a new 'spawn' event once the child process has spawned successfully.
  • If emitted, the 'spawn' event comes before all other events and before any data is received via stdout or stderr.
  • The 'spawn' event will fire regardless of whether an error occurs within the spawned process. For example, if bash some-command spawns successfully, the 'spawn' event will fire, though bash may fail to spawn some-command. This caveat also applies when using { shell: true }.
  • Contributed by Matthew Francis Brunetti #35369.
  • Set the local address for DNS resolution:
  • It is now possible to set the local IP address used by a Resolver instance to send its requests. This allows programs to specify outbound interfaces when used on multi-homed systems.
  • The resolver will use the v4 local address when making requests to IPv4 DNS servers, and the v6 local address when making requests to IPv6 DNS servers.
  • Contributed by Josh Dague #34824.
  • Control V8 coverage at runtime:
  • The v8 module includes two new methods to control the V8 coverage started by the NODE_V8_COVERAGE environment variable.
  • With v8.takeCoverage(), it is possible to write a coverage report to disk on demand. This can be done multiple times during the lifetime of the process, and the execution counter will be reset on each call. When the process is about to exit, one last coverage will still be written to disk, unless v8.stopCoverage() was invoked before.
  • The v8.stopCoverage() method allows to stop the coverage collection, so that V8 can release the execution counters and optimize code.
  • Contributed by Joyee Cheung #33807.
  • Analyze Worker's event loop utilization:
  • Worker instances now have a performance property, with a single eventLoopUtilization method that can be used to gather information about the worker's event loop utilization between the 'online' and 'exit' events.
  • The method works the same way as perf_hooks eventLoopUtilization().
  • Contributed by Trevor Norris #35664.
  • Take a V8 heap snapshot just before running out of memory (experimental):
  • With the new --heapsnapshot-near-heap-limit=max_count experimental command line flag, it is now possible to automatically generate a heap snapshot when the V8 heap usage is approaching the heap limit. count should be a non-negative integer (in which case Node.js will write no more than max_count snapshots to disk).
  • When generating snapshots, garbage collection may be triggered and bring the heap usage down, therefore multiple snapshots may be written to disk before the Node.js instance finally runs out of memory. These heap snapshots can be compared to determine what objects are being allocated during the time consecutive snapshots are taken.
  • Generating V8 snapshots takes time and memory (both memory managed by the V8 heap and native memory outside the V8 heap). The bigger the heap is, the more resources it needs. Node.js will adjust the V8 heap to accommondate the additional V8 heap memory overhead, and try its best to avoid using up all the memory avialable to the process.
  • Contributed by Joyee Cheung #33010.
  • Commits:
  • Semver-minor commits:
  • [8169902b40] - (SEMVER-MINOR) child_process: add ChildProcess 'spawn' event (Matthew Francis Brunetti) #35369
  • [548f91af2c] - (SEMVER-MINOR) dns: add setLocalAddress to Resolver (Josh Dague) #34824
  • [f861733bac] - (SEMVER-MINOR) http: report request start and end with diagnostics_channel (Stephen Belanger) #34895
  • [883ed4b7f1] - (SEMVER-MINOR) http2: add updateSettings to both http2 servers (Vincent Boivin) #35383
  • [b38a43d5d9] - (SEMVER-MINOR) lib: create diagnostics_channel module (Stephen Belanger) #34895
  • [a7f37bc725] - (SEMVER-MINOR) src: add --heapsnapshot-near-heap-limit option (Joyee Cheung) #33010
  • [7bfa872013] - (SEMVER-MINOR) v8: implement v8.stopCoverage() (Joyee Cheung) #33807
  • [15ffed5319] - (SEMVER-MINOR) v8: implement v8.takeCoverage() (Joyee Cheung) #33807
  • [221e28311f] - (SEMVER-MINOR) worker: add eventLoopUtilization() (Trevor Norris) #35664
  • Semver-patch commits:
  • [d95013f399] - assert,repl: enable ecmaVersion 2021 in acorn parser (Michaël Zasso) #35827
  • [b11c7378e3] - build: fix lint-js-fix target (Antoine du Hamel) #35927
  • [a5fa849631] - build: add vcbuilt test-doc target (Antoine du Hamel) #35708
  • [34281cdaba] - build: turn off Codecov comments (bcoe) #35800
  • [a9c09246bb] - build: add license-builder GitHub Action (Tierney Cyren) #35712
  • [4447ff1162] - build,tools: gitHub Actions: use Node.js Fermium (Antoine du Hamel) #35840
  • [273e147017] - build,tools: add lint-js-doc target (Antoine du Hamel) #35708
  • [0ebf44b466] - crypto: pass empty passphrases to OpenSSL properly (Tobias Nießen) #35914
  • [644c416389] - crypto: rename check to createJob (Daniel Bevenius) #35858
  • [79a8fb62e6] - crypto: fixup scrypt regressions (James M Snell) #35821
  • [abd7c9447c] - crypto: fix webcrypto ECDH JWK import (Filip Skokan) #35855
  • [d3f1cde908] - deps: upgrade npm to 7.0.8 (Myles Borins) #35953
  • [55adee0947] - deps: upgrade npm to 7.0.7 (Luigi Pinca) #35908
  • [5cb77f2e79] - deps: upgrade to [email protected] (Guy Bedford) #35928
  • [1303a1fca8] - deps: update to [email protected] (Guy Bedford) #35901
  • [20accb08fa] - deps: upgrade to [email protected] (Guy Bedford) #35871
  • [52a77db759] - deps: update acorn to v8.0.4 (Michaël Zasso) #35791
  • [e0a1541260] - deps: update to [email protected] (Guy Bedford) #35745
  • [894419c1f4] - deps: V8: backport 4263f8a5e8e0 (Brian 'bdougie' Douglas) #35650
  • [564aadedac] - doc,src,test: revise C++ code for linter update (Rich Trott) #35719
  • [7c8b5e5e0e] - errors: do not call resolve on URLs with schemes (bcoe) #35903
  • [1cdfaa80f8] - events: add a few tests (Benjamin Gruenbaum) #35806
  • [f08e2c0213] - events: make abort_controller event trusted (Benjamin Gruenbaum) #35811
  • [438d9debfd] - events: make eventTarget.removeAllListeners() return this (Luigi Pinca) #35805
  • [b6b7a3b86a] - http: lazy create IncomingMessage.headers (Robert Nagy) #35281
  • [86ed87b6b7] - http2: fix reinjection check (Momtchil Momtchev) #35678
  • [5833007eb0] - http2: reinject data received before http2 is attached (Momtchil Momtchev) #35678
  • [cfe61b8714] - http2: remove unsupported %.* specifier (Momtchil Momtchev) #35694
  • [d2f574b5be] - lib: let abort_controller target be EventTarget (Daijiro Wachi) #35869
  • [b1e531a70b] - lib: use primordials when calling methods of Error (Antoine du Hamel) #35837
  • [0f5a8c55c2] - module: runtime deprecate subpath folder mappings (Guy Bedford) #35747
  • [d16e2fa69a] - n-api: napi_make_callback emit async init with resource of async_context (legendecas) #32930
  • [0c17dbd201] - n-api: revert change to finalization (Michael Dawson) #35777
  • [fb7196434e] - src: remove redundant OpenSSLBuffer (James M Snell) #35663
  • [c9225789d3] - src: remove ERR prefix in WebCryptoKeyExportStatus (Daniel Bevenius) #35639
  • [4128eefcb3] - src: remove ignore GCC -Wcast-function-type for v8 (Daniel Bevenius) #35768
  • [4b8b5fee6a] - src: use MaybeLocal.ToLocal instead of IsEmpty (Daniel Bevenius) #35716
  • [01d7c46776] - Revert "src: ignore GCC -Wcast-function-type for v8.h" (Daniel Bevenius) #35758
  • [2868f52a5c] - stream: fix regression on duplex end (Momtchil Momtchev) #35941
  • [70c41a830d] - stream: remove redundant context from comments (Yash Ladha) #35728
  • [88eb6191e4] - stream: fix duplicate logic in stream destroy (Yash Ladha) #35727
  • [a41e3ebc3a] - timers: correct explanation in comment (Turner Jabbour) #35437
  • [ee15142fef] - tls: allow reading data into a static buffer (Andrey Pechkurov) #35753
  • [102d7dfe02] - zlib: test BrotliCompress throws invalid arg value (raisinten) #35830
  • Documentation commits:
  • [7937fbe3bc] - doc: update tables in README files for linting changes (Rich Trott) #35905
  • [c5b94220c5] - doc: temporarily disable list-item-bullet-indent (Nick Schonning) #35647
  • [59b36af8d5] - doc: disable no-undefined-references workarounds (Nick Schonning) #35647
  • [eb55462a75] - doc: adjust table alignment for remark v13 (Nick Schonning) #35647
  • [0ac4a6ab16] - doc: update crypto.createSecretKey history (Ben Turner) #35874
  • [4899998855] - doc: move bnoordhuis to emeritus (Ben Noordhuis) #35865
  • [337bfcf614] - doc: add on statement in the APIs docs (Pooja D.P) #35610
  • [9703219fdb] - doc: fix a typo in CHANGELOG_V15 (Takuya Noguchi) #35804
  • [c14889bcc1] - doc: move ronkorving to emeritus (Rich Trott) #35828
  • [8c2b17926c] - doc: recommend test-doc instead of lint-md (Antoine du Hamel) #35708
  • [0580258449] - doc: fix reference to googletest test fixture (Tobias Nießen) #35813
  • [d291e3abd9] - doc: stabilize packages features (Myles Borins) #35742
  • [5e8d821b4c] - doc: add conditional example for setBreakpoint() (Chris Opperwall) #35823
  • [8074f69f82] - doc: make small improvements to REPL doc (Rich Trott) #35808
  • [4e76a3c106] - doc: update MessagePort documentation for EventTarget inheritance (Anna Henningsen) #35839
  • [3db4354cc8] - doc: use case-sensitive in the example (Pooja D.P) #35624
  • [b07f4a3f7a] - doc: consolidate and clarify breakOnSigInt text (Rich Trott) #35787
  • [c2e6a4b081] - doc: fix _construct example params order (Alejandro Oviedo) #35790
  • [6513a589fe] - doc: add a subsystems header in pull-requests.md (Pooja D.P) #35718
  • [c365867c60] - doc: fix typo in BUILDING.md (raisinten) #35807
  • [6211ffd2f7] - doc: add require statement in the example (Pooja D.P) #35554
  • [7b3743d8dd] - doc: modified memory set statement set size (Pooja D.P) #35517
  • [afbe23d800] - doc: use kbd element in readline doc prose (Rich Trott) #35737
  • [c0a4fac040] - doc: fix a typo in CHANGELOG_V12 (Shubham Parihar) #35786
  • [0e9acf83f7] - doc: fix header level in fs.md (ax1) #35771
  • [f49afb5e10] - doc: remove stability warning in v8 module doc (Rich Trott) #35774
  • [368ae952b2] - doc: mark optional parameters in timers.md (Vse Mozhe Buty) #35764
  • [f6aa7c82c5] - doc: add a example code to API doc property (Pooja D.P) #35738
  • [55b7a6cea3] - doc: document changes for */promises alias modules (ExE Boss) #34002
  • [4b7708a316] - doc: update console.error example (Lee, Bonggi) #34964
  • [292b529dfa] - doc: add missing link in Node.js 14 Changelog (Antoine du Hamel) #35782
  • [890b03ecd6] - doc: improve text for breakOnSigint (Rich Trott) #35692
  • [1892532ee8] - doc: this prints replaced with this is printed (Pooja D.P) #35515
  • [6590f8cb4a] - doc: update package.json field definitions (Myles Borins) #35741
  • [f269c6cbe2] - doc: add Installing Node.js header in BUILDING.md (Pooja D.P) #35710
  • [05a888a8c3] - doc,esm: document experimental warning removal (Antoine du Hamel) #35750
  • [092c6c4f8f] - doc,test: update v8 method doc and comment (Rich Trott) #35795
  • Other commits:
  • [76ebae4c05] - benchmark: make the benchmark tool work with Node 10 (Joyee Cheung) #35817
  • [9b549c1691] - benchmark: add startup benchmark for loading public modules (Joyee Cheung) #35816
  • [5d61e3db4b] - test: add missing ref comments to parallel.status (Rich Trott) #35896
  • [231af88001] - test: correct test-worker-eventlooputil (Gerhard Stoebich) #35891
  • [da612dfc20] - test: integrate abort_controller tests from wpt (Daijiro Wachi) #35869
  • [66ad4be2c1] - test: add test to fs/promises setImmediate (tyankatsu) #35852
  • [830b789299] - test: mark test-worker-eventlooputil flaky (Myles Borins) #35886
  • [7691b673dc] - test: mark test-http2-respond-file-error-pipe-offset flaky (Myles Borins) #35883
  • [de3dcd7356] - test: fix reference to WPT testharness.js (Tobias Nießen) #35814
  • [8958af4aa0] - test: add onerror test cases to policy (Daijiro Wachi) #35797
  • [dd3cbb455a] - test: add upstream test cases to encoding (Daijiro Wachi) #35794
  • [76991c039f] - test: add upstream test cases to urlsearchparam (Daijiro Wachi) #35792
  • [110ef8aa50] - test: refactor coverage logic (bcoe) #35767
  • [0c5e8ed651] - test: add additional deprecation warning tests for rmdir recursive (Ian Sutherland) #35683
  • [11eca36e83] - test: add windows and C++ coverage (Benjamin Coe) #35670
  • [fd027cd61a] - tools: bump remark-lint-preset-node to 2.0.0 (Rich Trott) #35905
  • [c09fdba786] - tools: refloat 7 Node.js patches to cpplint.py (Rich Trott) #35866
  • [3955ccd305] - tools: bump cpplint to 1.5.1 (Rich Trott) #35866
  • [a07d1af4ea] - tools: update ESLint to 7.12.1 (cjihrig) #35799
  • [d20b318c58] - tools: update ESLint to 7.12.0 (cjihrig) #35799
  • [31753ec8aa] - tools: add msvc /P output to .gitignore (Jiawen Geng) #35735
  • [afb3e24cb0] - tools: add update-npm script (Myles Borins) #35822
  • [66da122d46] - tools: refloat 7 Node.js patches to cpplint.py (Rich Trott) #35719
  • [042d4dd71c] - tools: bump cpplint to 1.5.0 (Rich Trott) #35719

New in Node.js 14.15.0 LTS (Oct 28, 2020)

  • Notable Changes:
  • This release marks the transition of Node.js 14.x into Long Term Support (LTS)
  • with the codename 'Fermium'. The 14.x release line now moves into "Active LTS"
  • and will remain so until October 2021. After that time, it will move into
  • "Maintenance" until end of life in April 2023.

New in Node.js 15.0.1 (Oct 22, 2020)

  • Crypto: fix regression on randomFillSync (James M Snell) #35723
  • This fixes issue #35722.
  • Deps: upgrade npm to 7.0.3 (Ruy Adorno) #35724
  • Doc: add release key for Danielle Adams (Danielle Adams) #35545

New in Node.js 15.0.0 (Oct 20, 2020)

  • Notable Changes:
  • Deprecations and Removals:
  • (SEMVER-MAJOR) build: remove --build-v8-with-gn configure option (Yang Guo) #27576
  • (SEMVER-MAJOR) build: drop support for VS2017 (Michaël Zasso) #33694
  • (SEMVER-MAJOR) doc: move DEP0018 to End-of-Life (Rich Trott) #35316
  • (SEMVER-MAJOR) fs: deprecation warning on recursive rmdir (Ian Sutherland) #35562
  • (SEMVER-MAJOR) lib: add EventTarget-related browser globals (Anna Henningsen) #35496
  • (SEMVER-MAJOR) net: remove long deprecated server.connections property (James M Snell) #33647
  • (SEMVER-MAJOR) repl: remove deprecated repl.memory function (Ruben Bridgewater) #33286
  • (SEMVER-MAJOR) repl: remove deprecated repl.turnOffEditorMode() function (Ruben Bridgewater) #33286
  • (SEMVER-MAJOR) repl: remove deprecated repl.parseREPLKeyword() function (Ruben Bridgewater) #33286
  • (SEMVER-MAJOR) repl: remove deprecated bufferedCommand property (Ruben Bridgewater) #33286
  • (SEMVER-MAJOR) repl: remove deprecated .rli (Ruben Bridgewater) #33286
  • (SEMVER-MAJOR) src: remove deprecated node debug command (James M Snell) #33648
  • (SEMVER-MAJOR) timers: introduce timers/promises (James M Snell) #33950
  • (SEMVER-MAJOR) util: change default value of maxStringLength to 10000 (unknown) #32744
  • (SEMVER-MAJOR) wasi: drop --experimental-wasm-bigint requirement (Colin Ihrig) #35415

New in Node.js 14.14.0 (Oct 16, 2020)

  • Notable Changes:
  • Crypto: update certdata to NSS 3.56 (Shelley Vohr) #35546
  • Doc: add aduh95 to collaborators (Antoine du Hamel) #35542
  • (SEMVER-MINOR) fs: add rm method (Ian Sutherland) #35494
  • (SEMVER-MINOR) http: allow passing array of key/val into writeHead (Robert Nagy) #35274
  • (SEMVER-MINOR) src: expose v8::Isolate setup callbacks (Shelley Vohr) #35512
  • Commits:
  • Build: fix Commit Queue failure comment (Antoine du Hamel) #35599
  • Build: gitHub actions: Python 3.9 and actions/setup-python@v2 (Christian Clauss) #35521
  • Build: fix landed message for multiple commits in commit-queue (Denys Otrishko) #35226
  • Build: add Commit Queue actions url to failure comment (Denys Otrishko) #35206
  • Build: fuzzer that targets node::LoadEnvironment() (davkor) #34844
  • Build: improved release lint error message (Shelley Vohr) #35523
  • Crypto: update certdata to NSS 3.56 (Shelley Vohr) #35546
  • Deps: V8: cherry-pick 3176bfd447a9 (Anna Henningsen) #35612
  • Doc: document Buffer.concat may use internal pool (Andrey Pechkurov) #35541
  • Doc: use test username instead of real (Pooja D.P) #35611
  • Doc: add doc for starting ci job via label (Juan José Arboleda) #35551
  • Doc: fix unit of size argument of readable.read (Tobias Nießen) #35051
  • Doc: add missing deprecation number (Benjamin Coe) #35630
  • Doc: harmonize YAML comments (Antoine du Hamel) #35575
  • Doc: revise description of process.ppid (Pooja D.P) #35589
  • Doc: add symlink information for process.execpath (Pooja D.P) #35590
  • Doc: add PoojaDurgad as a triager (Pooja D.P) #35153
  • Doc: document rmdir/recursive deprecation (Benjamin Coe) #35579
  • Doc: edit fs.md for minor style changes (Rich Trott) #35505
  • Doc: run license builder (Myles Borins) #35577
  • Doc: use kbd element in process doc (Rich Trott) #35584
  • Doc: fixup perf_hooks (Antoine du Hamel) #35527
  • Doc: remove incorrect synchronous label (Colin Ihrig) #35561
  • Doc: make fs.rm()'s force docs consistent (Colin Ihrig) #35561
  • Doc: simplify wording in tracing APIs doc (Pooja D.P) #35556
  • Doc: improve SIGINT error text (Rich Trott) #35558
  • Doc: move package.import content higher (Myles Borins) #35535
  • Doc: harmonize changes list ordering (Antoine du Hamel) #35454
  • Doc: changes description must end with a period (Antoine du Hamel) #35454
  • Doc: harmonize version list style in YAML comments (Antoine du Hamel) #35454
  • Doc: fix missing PR-URLs in YAML comments (Antoine du Hamel) #35454
  • Doc: remove outstanding YAML comment (Antoine du Hamel) #35454
  • Doc: harmonize YAML comments style in deprecations.md (Antoine du Hamel) #35454
  • Doc: refactor the n-api matrix (Michael Dawson) #35345
  • Doc: use sentence case for class property (Rich Trott) #35540
  • Doc: add history entry for exports patterns (Antoine du Hamel) #35410
  • Doc: fix deprecation history (Antoine du Hamel) #35455
  • Doc: fix util.inspect change history (Antoine du Hamel) #35528
  • Doc: improve kbd element rendering (Rich Trott) #35497
  • Doc: add aduh95 to collaborators (Antoine du Hamel) #35542
  • Doc: fix YAML syntax errors (Antoine du Hamel) #35529
  • Errors: support possible deletion of globalThis.Error (Michaël Zasso) #35499
  • Fs: rimraf should not recurse on failure (Benjamin Coe) #35566
  • Fs: throw rm() validation errors (Colin Ihrig) #35602
  • Fs: update rm/rmdir validation messages (Colin Ihrig) #35565
  • Fs: use validateBoolean() in rm/rmdir validation (Colin Ihrig) #35565
  • Fs: remove extraneous assignments in rmdir() (Colin Ihrig) #35567
  • Fs: simplify validateRmOptions() error handling (Colin Ihrig) #35567
  • Fs: use errno constant with ERR_FS_EISDIR (Colin Ihrig) #35563
  • - (SEMVER-MINOR) fs: add rm method (Ian Sutherland) #35494
  • - (SEMVER-MINOR) http: allow passing array of key/val into writeHead (Robert Nagy) #35274
  • Http: make response.setTimeout() work (Ben Noordhuis) #34913
  • Inspector: do not hardcode Debugger.CallFrameId in tests (Dmitry Gozman) #35570
  • Lib: fix readFile flag option typo (Daniil Demidovich) #35292
  • Lib: change http client path assignment (Yohanan Baruchel) #35508
  • Lib: use remaining typed arrays from primordials (Michaël Zasso) #35499
  • Lib: use Number.parseFloat from primordials (Michaël Zasso) #35499
  • Lib: use Number.parseInt from primordials (Michaël Zasso) #35499
  • Lib: use global Error constructors from primordials (Michaël Zasso) #35499
  • Lib: replace String global with primordials (Sebastien Ahkrin) #35397
  • Lib: replace Int8Array global with primordials (Sebastien Ahkrin) #35397
  • Lib: replace Int32Array global with primordials (Sebastien Ahkrin) #35397
  • Lib: replace Float64Array global with primordials (Sebastien Ahkrin) #35397
  • Module: [email protected] big endian fix (Guy Bedford) #35634
  • Module: use Wasm CJS lexer when available (Guy Bedford) #35583
  • N-api: support for object freeze/seal (Shelley Vohr) #35359
  • Src: reduced substring calls (Yash Ladha) #34808
  • - (SEMVER-MINOR) src: move node_contextify to modern THROW_ERR_* (James M Snell) #35470
  • - (SEMVER-MINOR) src: move node_process to modern THROW_ERR* (James M Snell) #35472
  • Src: fix freeing unintialized pointer bug in ParseSoaReply (Aastha Gupta) #35502
  • - (SEMVER-MINOR) src: expose v8::Isolate setup callbacks (Shelley Vohr) #35512
  • - (SEMVER-MINOR) stream: multiple stream backports (Robert Nagy) #34887
  • Test: add regression test for v8.getHeapSnapshot() crash (Anna Henningsen) #35612
  • Test: mark test-webcrypto-encrypt-decrypt-aes flaky (James M Snell) #35587
  • Test: do not use the same EventEmitter instance (Luigi Pinca) #35560
  • Test: add ALPNProtocols option to clientOptions (Luigi Pinca) #35482
  • Test: adjust comments for upcoming lint rule (Rich Trott) #35485
  • Tools: refloat 7 Node.js patches to cpplint.py (Rich Trott) #35569
  • Tools: bump cpplint.py to 1.4.6 (Rich Trott) #35569
  • Revert "tools: add missing uv_setup_argv() calls" (Beth Griggs) #35641
  • Tools,test: enable multiline-comment-style rule in tests (Rich Trott) #35485

New in Node.js 14.13.1 (Oct 8, 2020)

  • Notable Changes:
  • Fs:
  • Remove experimental from rmdir recursive (Benjamin Coe) #35171

New in Node.js 12.19.0 LTS (Oct 7, 2020)

  • Notable Changes:
  • [d065334d42] - (SEMVER-MINOR) module: package "imports" field (Guy Bedford) #34117
  • [b9d0f73c7c] - (SEMVER-MINOR) n-api: create N-API version 7 (Gabriel Schulhof) #35199
  • [53c9975673] - (SEMVER-MINOR) crypto: add randomInt function (Oli Lalonde) #34600
  • [9b53b4ddf2] - deps: upgrade to libuv 1.39.0 (Colin Ihrig) #34915
  • [e9a8f0c127] - doc: add Ricky Zhou to collaborators (rickyes) #34676
  • [260914c432] - doc: add release key for Ruy Adorno (Ruy Adorno) #34628
  • [39f90346f8] - doc: add DerekNonGeneric to collaborators (Derek Lewis) #34602
  • [7ef1f6a71d] - deps: upgrade npm to 6.14.7 (claudiahdz) #34468
  • [437b092eed] - doc: add AshCripps to collaborators (Ash Cripps) #34494
  • [319d570a47] - doc: add HarshithaKP to collaborators (Harshitha K P) #34417
  • [d60b13f2e3] - zlib: switch to lazy init for zlib streams (Andrey Pechkurov) #34048
  • [ae60f50a69] - doc: add rexagod to collaborators (Pranshu Srivastava) #34457
  • [39dea8f70d] - doc: add release key for Richard Lau (Richard Lau) #34397
  • [a2107101be] - doc: add danielleadams to collaborators (Danielle Adams) #34360
  • [c4f0cb65a1] - doc: add sxa as collaborator (Stewart X Addison) #34338
  • [e9a514d13e] - deps: upgrade to libuv 1.38.1 (Colin Ihrig) #34187
  • [a04d76d2ad] - doc: add ruyadorno to collaborators (Ruy Adorno) #34297
  • [c9bd1a7d8a] - (SEMVER-MINOR) module: deprecate module.parent (Antoine du HAMEL) #32217
  • [0a927216cf] - (SEMVER-MAJOR) doc: deprecate process.umask() with no arguments (Colin Ihrig) #32499

New in Node.js 12.18.4 LTS (Oct 6, 2020)

  • 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:
  • [2ea6d255f8] - deps: libuv: cherry-pick 0e6e8620 (cjihrig) nodejs-private/node-private#221
  • [65415049af] - deps: update llhttp to 2.1.2 (Fedor Indutny) nodejs-private/node-private#219
  • [edad52e243] - test: modify tests to support the latest llhttp (Fedor Indutny) nodejs-private/node-private#219

New in Node.js 14.13.0 (Oct 6, 2020)

  • Notable Changes:
  • [19b95a7fa9] - (SEMVER-MINOR) deps: upgrade to libuv 1.40.0 (Colin Ihrig) #35333
  • [f551f52f83] - (SEMVER-MINOR) module: named exports for CJS via static analysis (Guy Bedford) #35249
  • [505731871e] - (SEMVER-MINOR) module: exports pattern support (Guy Bedford) #34718
  • [0d8eaa3942] - (SEMVER-MINOR) src: allow N-API addon in AddLinkedBinding() (Anna Henningsen) #35301
  • Commits:
  • [19b95a7fa9] - (SEMVER-MINOR) deps: upgrade to libuv 1.40.0 (Colin Ihrig) #35333
  • [353a567235] - deps: upgrade to c-ares v1.16.1 (Shelley Vohr) #35324
  • [2e10616d48] - doc: remove http2 non-link anchor tags (Rich Trott) #35161
  • [02db136c49] - doc: alphabetize error list (Rich Trott) #35219
  • [46a4154cab] - doc: packages docs feedback (Guy Bedford) #35370
  • [70ad69ba46] - doc: outline when origin is set to unhandledRejection (Matthieu Larcher) #35294
  • [010173a4b7] - doc: edit n-api.md for minor improvements (Rich Trott) #35361
  • [86ac7497e0] - doc: add history entry for breaking destroy() change (Gil Pedersen) #35326
  • [857e321baf] - doc: set encoding to hex before piping hash (Victor Antonio Barzana Crespo) #35338
  • [87dfed012c] - doc: add gpg key export directions to releases doc (Danielle Adams) #35298
  • [1758ac8237] - doc: added version 7 to N-API version matrix (NickNaso) #35319
  • [5da5d41b1c] - doc: refine require/import conditions constraints (Guy Bedford) #35311
  • [482ce6ce1d] - doc: improve N-API string-to-native doc (Gabriel Schulhof) #35322
  • [6dc6dadfc6] - doc: avoid referring to C array size (Tobias Nießen) #35300
  • [0a847ca729] - doc: update napi_make_callback documentation (Gerhard Stoebich) #35321
  • [a8d3a7f742] - doc: put landing specifics in details tag (Rich Trott) #35296
  • [dd530364d0] - doc: fixup lutimes metadata (Anna Henningsen) #35328
  • [d7282c0ae3] - doc: edit subpath export patterns introduction (Rich Trott) #35254
  • [1d1ce1fc2c] - doc: document support for package.json fields (Antoine du HAMEL) #34970
  • [ef0d2ef5a2] - doc: move package config docs to separate page (Antoine du HAMEL) #34748
  • [b9d767c4d5] - doc: change type of child_process.signalCode to string (Linn Dahlgren) #35223
  • [b4514d464d] - doc: replace "this guide" link text with guide title (Rich Trott) #35283
  • [1893449724] - doc: revise dependency redirection text in policy.md (Rich Trott) #35276
  • [0c4540b050] - doc: fix heading space bug in assert.md (Thomas Hunter II) #35310
  • [ec6b78ae73] - doc: add socket.readyState (Clark Kozak) #35262
  • [2a4ae0926d] - doc: update crypto.createSecretKey accepted types (Filip Skokan) #35246
  • [c09f3dc2f3] - doc: put release script specifics in details (Myles Borins) #35260
  • [99a79e32a6] - fs: fix fs.promises.writeFile with typed arrays (Michaël Zasso) #35376
  • [ab7d0e92b1] - meta: update module pages in CODEOWNERS (Antoine du Hamel) #34932
  • [f551f52f83] - (SEMVER-MINOR) module: named exports for CJS via static analysis (Guy Bedford) #35249
  • [505731871e] - (SEMVER-MINOR) module: exports pattern support (Guy Bedford) #34718
  • [68ea7f5560] - module: fix crash on multiline named cjs imports (Christoph Tavan) #35275
  • [0f4ecaa741] - repl: standardize Control key indications (Rich Trott) #35270
  • [1e1cb94e69] - src: fix incorrect SIGSEGV handling in NODE_USE_V8_WASM_TRAP_HANDLER (Anatoly Korniltsev) #35282
  • [0d8eaa3942] - (SEMVER-MINOR) src: allow N-API addon in AddLinkedBinding() (Anna Henningsen) #35301
  • [f2635b317e] - test: replace annonymous functions with arrow (Pooja D.P) #34921
  • [d7c28c9243] - test,child_process: add tests for signalCode value (Rich Trott) #35327
  • [80eb22185e] - tools: update ESLint to 7.10.0 (Colin Ihrig) #35366
  • [7f355735df] - tools: ignore build folder when checking links (Ash Cripps) #35315
  • [c5d27e1e29] - tools,doc: enforce alphabetical order for md refs (Antoine du Hamel) #35244
  • [9d91842a9d] - tools,doc: upgrade dependencies (Antoine du Hamel) #35244

New in Node.js 14.12.0 (Sep 22, 2020)

  • Deps:
  • Update to uvwasi 0.0.11 (Colin Ihrig) #35104
  • N-api:
  • Create N-API version 7 (Gabriel Schulhof) #35199
  • Add more property defaults (Gerhard Stoebich) #35214

New in Node.js 14.11.0 (Sep 15, 2020)

  • Notable Changes
  • This is a security release.
  • Vulnerabilities fixed:
  • CVE-2020-8251: Denial of Service by resource exhaustion CWE-400 due to unfinished HTTP/1.1 requests (Critical).
  • CVE-2020-8201: HTTP Request Smuggling due to CR-to-Hyphen conversion (High).

New in Node.js 14.10.1 (Sep 10, 2020)

  • Notable Changes:
  • Node.js 14.10.0 included a streams regression with async generators and a docs rendering regression that are being fixed in this release.
  • Commits:
  • [3c92f93b44] - doc: restore color for visited links (Rich Trott) #35108
  • [0f94c6b4e4] - Revert "stream: simpler and faster Readable async iterator" (Richard Lau)

New in Node.js 14.10.0 (Sep 8, 2020)

  • Notable Changes:
  • [2ab33c58ae] - (SEMVER-MINOR) buffer: also alias BigUInt methods (Anna Henningsen) #34960
  • [44d89a9faa] - (SEMVER-MINOR) crypto: add randomInt function (Oli Lalonde) #34600
  • [8aac42caf2] - (SEMVER-MINOR) perf_hooks: add idleTime and event loop util (Trevor Norris) #34938
  • [4bb40078da] - (SEMVER-MINOR) stream: simpler and faster Readable async iterator (Robert Nagy) #34035
  • [ffae5f3809] - (SEMVER-MINOR) stream: save error in state (Robert Nagy) #34103
  • Commits:
  • [1fdfaa578f] - bootstrap: correct --frozen-intrinsics override fix (Guy Bedford) #35041
  • [2ab33c58ae] - (SEMVER-MINOR) buffer: also alias BigUInt methods (Anna Henningsen) #34960
  • [1be6956ee0] - build: require "allow edits" to be checked (Jordan Harband) #35002
  • [7b7299012e] - build: comment about auto close when stalled via with github action (Phillip Johnsen) #34555
  • [d6c796b4ab] - build: close stalled issues and PRs with github action (Phillip Johnsen) #34555
  • [46766a10df] - build: use autorebase option for git node land (Denys Otrishko) #34969
  • [7afb67f491] - build: use latest node-core-utils from npm (Denys Otrishko) #34969
  • [d06e158253] - build: add support for build on arm64 (Evan Lucas) #34238
  • [755f9e4bc8] - build,deps: add gen-openssl target (Evan Lucas) #34642
  • [178a740caf] - crypto: simplify KeyObject constructor (Rich Trott) #35064
  • [a12d92c97b] - crypto: fix randomInt range check (Tobias Nießen) #35052
  • [6d0d5b2ec2] - crypto: align parameter names with documentation (Rich Trott) #35054
  • [44d89a9faa] - (SEMVER-MINOR) crypto: add randomInt function (Oli Lalonde) #34600
  • [791a85b880] - deps: V8: cherry-pick 6be2f6e26e8d (Benjamin Coe) #35055
  • [96ae05a770] - deps: V8: backport 3f071e3e7e15 (Milad Farazmand) #35036
  • [90f9348297] - deps: update brotli to v1.0.9 (Anna Henningsen) #34937
  • [f1fcd6646d] - deps: add openssl support for arm64 (Evan Lucas) #34238
  • [bbf7b925a2] - doc: use present tense in events.md (Rich Trott) #35068
  • [f6b2286e12] - doc: change stablility-2 color for accessibility (Rich Trott) #35061
  • [8044533e87] - doc: add link to safe integer definition (Tobias Nießen) #35049
  • [f03a4d78a2] - doc: format exponents better (Tobias Nießen) #35050
  • [1a9ca52716] - doc: add ESM examples in module API doc page (Antoine du HAMEL) #34875
  • [0ac7d5423f] - doc: add deprecated badge to legacy URL methods (Antoine du HAMEL) #34931
  • [a08e853edc] - doc: spruce up user journey to local docs browsing (Derek Lewis) #34986
  • [83a3e3b681] - doc: update syntax highlighting color for accessibility (Rich Trott) #35063
  • [5bd0e0803d] - doc: fix incorrect URL in cli.md (Rich Trott) #35043
  • [28e89f6766] - doc: remove style for empty links (Antoine du HAMEL) #35034
  • [cdc1198a62] - doc: fix certificate display in tls doc (Rich Trott) #35032
  • [72d03cd802] - doc: remove duplicate error code entry (Rich Trott) #35031
  • [680782ea64] - doc: use consistent header typography (Rich Trott) #35030
  • [1ae674c67a] - doc: fix malformed hashes in assert.md (Rich Trott) #35028
  • [c3a3cb69aa] - doc: fix a typo of microtaskMode (Shigma) #34980
  • [a846a9f116] - doc: change 'be will' to 'will be' (Victory Osikwemhe) #34999
  • [593236ad33] - doc: change color contrast for accessibility (Rich Trott) #35047
  • [8c207c67d1] - doc: refactor deprecation anchors (Antoine du HAMEL) #34955
  • [cc0aaf2384] - doc: error code fix in resolver spec (Guy Bedford) #34998
  • [a4201843e7] - doc: use period consistently in man page (Rich Trott) #34939
  • [f1217d6d8b] - doc: revise commit-queue.md (Rich Trott) #35006
  • [9aba579acb] - doc: change effected to affected (Turner Jabbour) #34989
  • [2598527112] - doc: drop the --production flag for installing windows-build-tools (DeeDeeG) #34979
  • [287ce7b810] - doc: fix broken link to response.writableFinished in deprecations doc (Rich Trott) #34983
  • [a0656ff863] - doc: fix broken link to response.finished in deprecations doc (Rich Trott) #34982
  • [f4524b8936] - doc: fix broken link to writableEnded in deprecations doc (Rich Trott) #34984
  • [514a538f64] - doc: fix typos in buffer doc (Robert Williams) #34981
  • [df76c89b78] - doc: recommend URL() over url.parse() in http2 doc (Rich Trott) #34978
  • [ca0302e4f1] - doc: arrange perf_hooks entries alphabetically (Rich Trott) #34973
  • [94c6e09367] - doc: replace require() with reference links in http2.md (Rich Trott) #34956
  • [2407a7a671] - doc: add a note about possible missing lines to readline.asyncIterator (Igor Mikhalev) #34675
  • [31098a4c0e] - doc: make minor improvements to query string sentence in http2.md (Rich Trott) #34929
  • [1589f0e6f4] - doc: make general copy-edit changes to policy.md (Rich Trott) #34943
  • [aee3b8510b] - doc: simplify "make use of" to "use" (Rich Trott) #34861
  • [0e09ff8ab1] - doc: make minor fixes to maintaining-openssl.md (Rich Trott) #34926
  • [b091681d25] - doc: fix CHANGELOG.md parsing issue (Juan José Arboleda) #34923
  • [fbd18be459] - doc: provide more guidance about process.version (Rich Trott) #34909
  • [4782ec7b3b] - doc: use consistent typography for node-addon-api (Rich Trott) #34910
  • [2fe95094fd] - doc: improve link-local text in dgram.md (Rich Trott) #34868
  • [657292e2dd] - doc: fix broken markdown/display in cli.html (Rich Trott) #34892
  • [4cf93bb3cf] - doc: use "previous"/"preceding" instead of "above" as modifier (Rich Trott) #34877
  • [29b048b06b] - doc: use links to MS guide in style guide (Rich Trott) #34871
  • [52be37cf39] - doc,tools: remove malfunctioning Linux manpage linker (Rich Trott) #34985
  • [fffba3a270] - errors: use ErrorPrototypeToString from primordials object (ExE Boss) #34891
  • [db8c66b8c2] - esm: shorten ERR_UNSUPPORTED_ESM_URL_SCHEME message (Rich Trott) #34836
  • [be71e717c5] - meta: enable wasi for CODEOWNERS (gengjiawen) #34889
  • [a43b7ff72e] - meta: remove non-existent quic from CODEOWNERS (Richard Lau) #34947
  • [3c32fe09e9] - n-api: re-implement async env cleanup hooks (Gabriel Schulhof) #34819
  • [fcb211f38a] - net: replace usage of internal stream state with public api (Denys Otrishko) #34885
  • [8aac42caf2] - (SEMVER-MINOR) perf_hooks: add idleTime and event loop util (Trevor Norris) #34938
  • [18b04ab4c8] - policy: implement scopes field (Bradley Farias) #34552
  • [1bf5d1a39b] - querystring: manage percent character at unescape (Daijiro Wachi) #35013
  • [f21d78d537] - src: shutdown libuv before exit() (Anna Henningsen) #35021
  • [789798bedf] - src: add get/set pair for env context awareness (Shelley Vohr) #35024
  • [73ef3f2f05] - src: disallow JS execution during exit() (Anna Henningsen) #35020
  • [f6a5999a9d] - src,doc: fix wording to refer to context, not environment (Turner Jabbour) #34880
  • [bcc1d431f8] - src,doc: fix grammar due to missing 'is' (Turner Jabbour) #34897
  • [044297ff10] - src,doc: rephrase for clarity (Turner Jabbour) #34879
  • [4bb40078da] - (SEMVER-MINOR) stream: simpler and faster Readable async iterator (Robert Nagy) #34035
  • [ffae5f3809] - (SEMVER-MINOR) stream: save error in state (Robert Nagy) #34103
  • [5f24cea11a] - stream: fix Readable stream state properties (Denys Otrishko) #34886
  • [f537c868b9] - stream: allow using .push()/.unshift() during once('data') (Anna Henningsen) #34957
  • [4d533858cf] - test: make .out checks embedder-friendly (Shelley Vohr) #35040
  • [a756b92c4a] - test: use mustCall() in test-http-timeout (Pooja D.P) #34996
  • [9011c87c1c] - test: change var to let (Pooja D.P) #34902
  • [b698d2ec81] - test: remove incorrect debug() in test-policy-integrity (Rich Trott) #34961
  • [ee6a583b9f] - test: fix typo in test/parallel/test-icu-punycode.js (Daijiro Wachi) #34934
  • [9057a1644d] - test: add readline test for escape sequence (Rich Trott) #34952
  • [75d16125e1] - test: make test-tls-reuse-host-from-socket pass without internet (Rich Trott) #34953
  • [971b7ac087] - test: simplify test-vm-memleak (Rich Trott) #34881
  • [577978a96c] - tools: fix docopen target (Antoine du HAMEL) #35062
  • [2b445bb3ee] - tools: fix doc build targets (Antoine du HAMEL) #35060
  • [3d41ff25b7] - tools: add banner to lint-md.js by rollup.config.js (KuthorX) #34233
  • [62cc3b8249] - tools: update ESLint to 7.8.1 (cjihrig) #35004
  • [c47d319ac6] - tools: update ESLint to 7.8.0 (cjihrig) #35004
  • [b6f3ae8ffc] - tools,doc: allow page titles to contain inline code (Antoine du HAMEL) #35003
  • [fb2111e300] - tools,doc: fix global table of content active element (Antoine du Hamel) #34976
  • [7ad629e4e4] - tools,doc: remove "toc" anchor name (Rich Trott) #34893
  • [94528f510e] - zlib: replace usage of internal stream state with public api (Denys Otrishko) #34884

New in Node.js 14.9.0 (Aug 27, 2020)

  • Notable Changes:
  • build: set --v8-enable-object-print by default (Mary Marchini) #34705
  • deps:
  • upgrade to libuv 1.39.0 (cjihrig) #34915
  • upgrade npm to 6.14.8 (Ruy Adorno) #34834
  • V8: cherry-pick e06ace6b5cdb (Anna Henningsen) #34673
  • n-api: handle weak no-finalizer refs correctly (Gabriel Schulhof) #34839
  • tools: add debug entitlements for macOS 10.15+ (Gabriele Greco) #34378
  • Commits:
  • [aaa6e43d3c] - Forces Powershell to use tls1.2 (Bartosz Sosnowski) #33609
  • [8de6b72efa] - benchmark: add benchmark script for resourceUsage (Yash Ladha) #34691
  • [e4450a199f] - benchmark: update function_args addon code (Anna Henningsen) #34725
  • [332e38433b] - (SEMVER-MINOR) buffer: alias UInt ➡️ Uint in buffer methods (Anna Henningsen) #34729
  • [7f0869f963] - build: run link checker in linter workflow (Richard Lau) #34810
  • [9ca4b2ad5c] - build: add CODEOWNERS linter action (Mary Marchini) #34739
  • [bdf26aebb4] - (SEMVER-MINOR) build: add build flag for OSS-Fuzz integration (davkor) #34761
  • [d89a83c62c] - build: move compiling for Windows ARM64 to Tier 2 (João Reis) #34721
  • [aed82379dd] - build: implement a Commit Queue in Actions (Mary Marchini) #34112
  • [15c92083b5] - build: set --v8-enable-object-print by default (Mary Marchini) #34705
  • [201d3d7074] - build: cover all benchmark addons with C++ linter (Anna Henningsen) #34725
  • [2abc98e9ff] - build: add flag to build V8 with OBJECT_PRINT (Mary Marchini) #32834
  • [6048421726] - build,win: use x64 Node when building for ARM64 (Dennis Ameling) #34009
  • [69bcca122e] - crypto: avoid unitializing ECDH objects on error (Tobias Nießen) #34302
  • [cf348542c6] - deps: upgrade to libuv 1.39.0 (cjihrig) #34915
  • [68b7a8db6f] - deps: upgrade npm to 6.14.8 (Ruy Adorno) #34834
  • [9527a2a8a7] - deps: V8: cherry-pick e06ace6b5cdb (Anna Henningsen) #34673
  • [cd32522c92] - doc: add missing DEP ID for 'new crypto.Certificate()' (Beth Griggs) #34940
  • [ff15c92a7f] - doc: improve fs doc intro (James M Snell) #34843
  • [dae93ca0cb] - doc: indicate the format of process.version (Danny Guo) #34872
  • [bf7f492cb6] - doc: rename module pages (Antoine du HAMEL) #34663
  • [f2c2f42195] - doc: improve wording in deprecations.md (Rich Trott) #34860
  • [4b3b0e3f98] - doc: fix ESM/CJS wrapper example (Maksim Sinik) #34853
  • [d6bb2ad5ea] - doc: adopt Microsoft Style Guide officially (Rich Trott) #34821
  • [e4679bd45d] - doc: use 'console' info string for console output (Rich Trott) #34837
  • [b1c3fb73fc] - doc: fix bulleted list punctuation in BUILDING.md (Rich Trott) #34849
  • [ef41ddf5cb] - doc: sort references lexically (Rich Trott) #34848
  • [3133b75b68] - doc: move addaleax to TSC emeritus (Anna Henningsen) #34809
  • [5214de78cd] - doc: remove space above version picker (Justice Almanzar) #34768
  • [34430abd71] - doc: move module core module doc to separate page (Antoine du HAMEL) #34747
  • [b356b79ca4] - doc: reorder deprecated tls docs (Jerome T.K. Covington) #34687
  • [5c987ffc96] - doc: fix file name to main.mjs and not main.js in esm.md (Frank Lemanschik) #34786
  • [969fb1c5e3] - doc: improve async_hooks snippets (Andrey Pechkurov) #34829
  • [3360dcbfab] - doc: fix some typos and grammar mistakes (Hilla Shahrabani) #34800
  • [47f2f45dd8] - doc: deprecate (doc-only) crypto.Certificate() (Rich Trott) #34697
  • [3bfe199c28] - doc: remove "is recommended from crypto legacy API text (Rich Trott) #34697
  • [258f64f578] - doc: edit filehandle.close() entry in fs.md (Rich Trott) #34782
  • [e54a6842e0] - doc: fix broken links in commit-queue.md (Luigi Pinca) #34789
  • [3925fd6550] - doc: avoid _may_ in collaborator guide (Rich Trott) #34749
  • [cb0960635b] - doc: use sentence-casing for headers in collaborator guide (Rich Trott) #34713
  • [8b5690287c] - doc: edit (general) collaborator guide (Rich Trott) #34712
  • [b933eef1f3] - doc: reduce repetitiveness on Consensus Seeking (Mary Marchini) #34702
  • [f7563f811a] - doc: remove typo in crypto.md (Rich Trott) #34698
  • [ea98122a51] - doc: n-api environment life cycle APIs are stable (Jim Schlight) #34641
  • [b00f71b660] - doc: add padding in the sidebar column (Antoine du HAMEL) #34665
  • [91f53245ae] - doc: use semantically appropriate tag for lines (Antoine du HAMEL) #34660
  • [230bcaf276] - doc: add HPE_UNEXPECTED_CONTENT_LENGTH error description (Nikolay Krashnikov) #34596
  • [d29b805569] - doc: update http server response 'close' event (Renato Mariscal) #34472
  • [b93ba07fa5] - doc: add writable and readable options to Duplex docs (Priyank Singh) #34383
  • [7cde699115] - doc: harden policy around objections (Mary Marchini) #34639
  • [7d0970ca66] - doc,lib: remove unused error code (Rich Trott) #34792
  • [9ebae0a758] - doc,n-api: add link to n-api tutorial website (Jim Schlight) #34870
  • [cdd4540124] - doc,tools: annotate broken links in actions workflow (Richard Lau) #34810
  • [dbcb36d553] - errors: improve ERR_INVALID_OPT_VALUE error (Denys Otrishko) #34671
  • [8f38c19c08] - esm: improve error message of ERR_UNSUPPORTED_ESM_URL_SCHEME (Denys Otrishko) #34795
  • [7ef5591d06] - fs: guard against undefined behavior (Robert Nagy) #34746
  • [952f233e39] - http: add RFC references for each status code (Voltra) #33671
  • [cc7258469c] - http2: fix Http2Response.sendDate (João Lucas Lucchetta) #34850
  • [9e0d18fd3f] - http2: use and support non-empty DATA frame with END_STREAM flag (Carlos Lopez) #33875
  • [6ee2578427] - http2: add maxHeaderSize option to http2 (Priyank Singh) #33636
  • [04defbaacd] - lib: allow to validate enums with validateOneOf (Denys Otrishko) #34070
  • [1a9496a79d] - lib: add UNC support to url.pathToFileURL() (Matthew McEachen) #34743
  • [124a01d487] - lib: use full URL to GitHub issues in comments (Rich Trott) #34686
  • [756c058c45] - meta: fix codeowners docs path (Mary Marchini) #34811
  • [2781f646c9] - meta: add TSC as owner of governance-related docs (Mary Marchini) #34737
  • [a69d30eb3f] - module: drop -u alias for --conditions (Richard Lau) #34935
  • [e4a0e5bc1a] - module: fix check for package.json at volume root (Derek Lewis) #34595
  • [698cae7625] - module: share CJS/ESM resolver fns, refactoring (Guy Bedford) #34744
  • [6929649793] - module: custom --conditions flag option (Guy Bedford) #34637
  • [9a7c87df37] - module: use cjsCache over esm injection (Guy Bedford) #34605
  • [98f7d8ec81] - n-api: handle weak no-finalizer refs correctly (Gabriel Schulhof) #34839
  • [90abdd3dd4] - net: validate custom lookup() output (cjihrig) #34813
  • [84031183bc] - policy: support conditions for redirects (Bradley Farias) #34414
  • [a16f0f427e] - process: correctly parse Unicode in NODE_OPTIONS (Bartosz Sosnowski) #34476
  • [fff1e7f86c] - src: fix abort on uv_loop_init() failure (Ben Noordhuis) #34874
  • [7666d95c7d] - src: usage of modernize-use-equals-default (Yash Ladha) #34807
  • [3022e0d614] - src: prefer C++ empty() in boolean expressions (Tobias Nießen) #34432
  • [e16b3e72f9] - test: fix test-cluster-net-listen-relative-path.js to run in / (Rich Trott) #34820
  • [2a78c33445] - test: run REPL preview test regardless of terminal type (Rich Trott) #34798
  • [6b45bf3475] - test: modernize test-cluster-master-error (Anna Henningsen) #34685
  • [c080fc590d] - test: move test-inspector-already-activated-cli to parallel (Rich Trott) #34755
  • [7ed7ef7ad8] - test: move execution of WPT to worker threads (Michaël Zasso) #34796
  • [e8eed5c426] - test: convert assertion that always fails to assert.fail() (Rich Trott) #34793
  • [c458e8406e] - test: remove common.rootDir (Rich Trott) #34772
  • [1c324d5939] - test: allow ENOENT in test-worker-init-failure (Rich Trott) #34769
  • [88919e584b] - test: allow ENFILE in test-worker-init-failure (Rich Trott) #34769
  • [a78c638fc3] - test: use process.env.PYTHON to spawn python (Anna Henningsen) #34700
  • [9a790203ed] - test: remove error message checking in test-worker-init-failure (Rich Trott) #34727
  • [0472d1629a] - test: skip node-api/test_worker_terminate_finalization (Anna Henningsen) #34732
  • [8e91f3ec0a] - test: fix test_worker_terminate_finalization (Anna Henningsen) #34726
  • [fd5153c822] - test: split test-crypto-dh-hash (Rich Trott) #34631
  • [9f0917e656] - test: use block-scoping in test/pummel/test-timers.js (Rich Trott) #34630
  • [b261895d2b] - test: remove test-child-process-fork-args flaky designation (Rich Trott) #34684
  • [27c0653517] - test: add vm crash regression test (Anna Henningsen) #34673
  • [093a4b0ae4] - test: add tests for validateNumber/validateString (Denys Otrishko) #34672
  • [5009d82b0c] - test,doc: add missing uv_setup_args() calls (cjihrig) #34751
  • [cca0372022] - (SEMVER-MINOR) timers: allow timers to be used as primitives (Denys Otrishko) #34017
  • [e90cb49390] - tls: enable renegotiation when using BoringSSL (Jeremy Rose) #34832
  • [8766b5bfd5] - tools: add debug entitlements for macOS 10.15+ (Gabriele Greco) #34378
  • [77bbd73919] - util: add debug and debuglog.enabled (Bradley Farias) #33424
  • [513ab0e02f] - worker: fix --abort-on-uncaught-exception handling (Anna Henningsen) #34724
  • [03d601344a] - worker: do not crash when JSTransferable lists untransferable value (Anna Henningsen) #34766
  • [b73943e476] - workers: add support for data: URLs (Antoine du HAMEL) #34584

New in Node.js 14.8.0 (Aug 12, 2020)

  • Notable Changes:
  • [16aa927216] - (SEMVER-MINOR) async_hooks: add AsyncResource.bind utility (James M Snell) #34574
  • [dc49561e8d] - deps: update to uvwasi 0.0.10 (Colin Ihrig) #34623
  • [6cd1c41604] - doc: add Ricky Zhou to collaborators (rickyes) #34676
  • [f0a41b2530] - doc: add release key for Ruy Adorno (Ruy Adorno) #34628
  • [10dd7a0eda] - doc: add DerekNonGeneric to collaborators (Derek Lewis) #34602
  • [62bb2e757f] - (SEMVER-MINOR) module: unflag Top-Level Await (Myles Borins) #34558
  • [8cc9e5eb52] - (SEMVER-MINOR) n-api: support type-tagging objects (Gabriel Schulhof) #28237
  • [e89ec46ba9] - (SEMVER-MINOR) n-api,src: provide asynchronous cleanup hooks (Anna Henningsen) #34572
  • Commits:
  • [650248922b] - async_hooks: avoid GC tracking of AsyncResource in ALS (Gerhard Stoebich) #34653
  • [0a51aa8fdb] - async_hooks: avoid unneeded AsyncResource creation (Gerhard Stoebich) #34616
  • [0af9bee4c3] - async_hooks: improve property descriptors in als.bind (Gerhard Stoebich) #34620
  • [16aa927216] - (SEMVER-MINOR) async_hooks: add AsyncResource.bind utility (James M Snell) #34574
  • [e45c68af27] - async_hooks: don't read resource if ALS is disabled (Gerhard Stoebich) #34617
  • [e9aebc3a8f] - async_hooks: fix id assignment in fast-path promise hook (Andrey Pechkurov) #34548
  • [5aed83c77f] - async_hooks: fix resource stack for deep stacks (Anna Henningsen) #34573
  • [9af62641c6] - async_hooks: execute destroy hooks earlier (Gerhard Stoebich) #34342
  • [14656e1703] - async_hooks: don't reuse resource in HttpAgent when queued (Andrey Pechkurov) #34439
  • [c4457d873f] - benchmark: always throw the same Error instance (Anna Henningsen) #34523
  • [6a129d0cf5] - build: do not run auto-start-ci on forks (Evan Lucas) #34650
  • [2cd299b217] - build: run CI on release branches (Shelley Vohr) #34649
  • [9ed9ccc5b3] - build: enable build for node-v8 push (gengjiawen) #34634
  • [10f29e7550] - build: increase startCI verbosity and fix job name (Mary Marchini) #34635
  • [befbaf384e] - build: don't run auto-start-ci on push (Mary Marchini) #34588
  • [4af5dbd3bf] - build: fix auto-start-ci script path (Mary Marchini) #34588
  • [70cf3cbdfa] - build: auto start Jenkins CI via PR labels (Mary Marchini) #34089
  • [70e9eceeee] - build: toolchain.gypi and node_gyp.py cleanup (iandrc) #34268
  • [465968c5f8] - console: document the behavior of console.assert() (iandrc) #34501
  • [a7b4318df9] - crypto: add OP flag constants added in OpenSSL v1.1.1 (Mateusz Krawczuk) #33929
  • [dc49561e8d] - deps: update to uvwasi 0.0.10 (Colin Ihrig) #34623
  • [8b1ec43da4] - doc: use _Static method_ instead of _Class Method_ (Rich Trott) #34659
  • [a1b9d7f42e] - doc: tidy some addons.md text (Rich Trott) #34654
  • [b78278b922] - doc: use _Class Method_ in async_hooks.md (Rich Trott) #34626
  • [6cd1c41604] - doc: add Ricky Zhou to collaborators (rickyes) #34676
  • [d8e0deaa7c] - doc: edit process.title note for brevity and clarity (Rich Trott) #34627
  • [dd6bf20e8f] - doc: update fs.watch() availability for IBM i (iandrc) #34611
  • [f260bdd57b] - doc: fix typo in path.md (aetheryx) #34550
  • [f0a41b2530] - doc: add release key for Ruy Adorno (Ruy Adorno) #34628
  • [3f55dcd723] - doc: clarify process.title inconsistencies (Corey Butler) #34557
  • [6cd9ea82f6] - doc: document the connection event for HTTP2 & TLS servers (Tim Perry) #34531
  • [0a9389bb1a] - doc: mention null special-case for napi_typeof (Renée Kooi) #34577
  • [10dd7a0eda] - doc: add DerekNonGeneric to collaborators (Derek Lewis) #34602
  • [d7eaf3a027] - doc: revise N-API versions matrix text (Rich Trott) #34566
  • [e2bea73b03] - doc: clarify N-API version 1 (Michael Dawson) #34344
  • [be23e23361] - doc: use consistent spelling for "falsy" (Rich Trott) #34545
  • [f393ae9296] - doc: simplify and clarify console.assert() documentation (Rich Trott) #34544
  • [b69ff2ff60] - doc: use consistent capitalization for addons (Rich Trott) #34536
  • [212d17fa06] - doc: add mmarchini pronouns (Mary Marchini) #34586
  • [7a28c3d543] - doc: update mmarchini contact info (Mary Marchini) #34586
  • [c8104f3d10] - doc: update .mailmap for mmarchini (Mary Marchini) #34586
  • [692a735881] - doc: use sentence-case for headers in SECURITY.md (Rich Trott) #34525
  • [44e6c010b4] - esm: fix hook mistypes and links to types (Derek Lewis) #34240
  • [7322e58d11] - http: reset headers timeout on headers complete (Robert Nagy) #34578
  • [36fd3daae6] - http: provide keep-alive timeout response header (Robert Nagy) #34561
  • [d0efaf2fe3] - lib: use non-symbols in isURLInstance check (Shelley Vohr) #34622
  • [335cb0d1d1] - lib: absorb path error cases (Gireesh Punathil) #34519
  • [521e620533] - meta: uncomment all codeowners (Mary Marchini) #34670
  • [650adeca22] - meta: enable http2 team for CODEOWNERS (Rich Trott) #34534
  • [35ef9907aa] - module: handle Top-Level Await non-fulfills better (Anna Henningsen) #34640
  • [62bb2e757f] - (SEMVER-MINOR) module: unflag Top-Level Await (Myles Borins) #34558
  • [fbd411d28a] - n-api: fix use-after-free with napi_remove_async_cleanup_hook (Anna Henningsen) #34662
  • [8cc9e5eb52] - (SEMVER-MINOR) n-api: support type-tagging objects (Gabriel Schulhof) #28237
  • [2703fe498e] - n-api: simplify bigint-from-word creation (Gabriel Schulhof) #34554
  • [e89ec46ba9] - (SEMVER-MINOR) n-api,src: provide asynchronous cleanup hooks (Anna Henningsen) #34572
  • [b1890e0866] - net: don't return the stream object from onStreamRead (Robey Pointer) #34375
  • [35fdfb44a2] - policy: increase tests via permutation matrix (Bradley Meck) #34404
  • [ddd339ff45] - repl: use _Node.js_ in user-facing REPL text (Rich Trott) #34644
  • [276e2980e2] - repl: use _REPL_ in user-facing text (Rich Trott) #34643
  • [465c262ac6] - repl: improve static import error message in repl (Myles Borins) #33588
  • [12cb0fb8a0] - repl: give repl entries unique names (Bradley Meck) #34372
  • [2dbd15a075] - src: fix linter failures (Anna Henningsen) #34582
  • [2761f349ec] - src: spin shutdown loop while immediates are pending (Anna Henningsen) #34662
  • [39ca48c840] - src: fix size underflow in CallbackQueue (Anna Henningsen) #34662
  • [c1abc8d3e5] - src: fix unused namespace member in node_util (Andrey Pechkurov) #34565
  • [e146686972] - test: fix wrong method call (gengjiawen) #34629
  • [ca89c375f7] - test: add debugging for callbacks in test-https-foafssl.js (Rich Trott) #34603
  • [2133b18bee] - test: add debugging for test-https-foafssl.js (Rich Trott) #34603
  • [b9fb0c63b3] - test: convert most N-API tests from C++ to C (Gabriel Schulhof) #34615
  • [54a4c6a39c] - test: replace flaky pummel regression tests (Anna Henningsen) #34530
  • [bd55236788] - test: change Fixes: to Refs: (Rich Trott) #34568
  • [a340587cfd] - test: fix flaky http-parser-timeout-reset (Robert Nagy) #34609
  • [9c442f9786] - test: remove unneeded flag check in test-vm-memleak (Rich Trott) #34528
  • [05100e1eec] - tools: fix C++ import checker argument expansion (Anna Henningsen) #34582
  • [bf6c8aaae3] - tools: update ESLint to 7.6.0 (Colin Ihrig) #34589
  • [0b1616c2f0] - tools: add meta.fixable to fixable lint rules (Colin Ihrig) #34589
  • [f46649bc5b] - util: print External address from inspect (unknown) #34398
  • [2fa24c0ccc] - wasi: add __wasi_fd_filestat_set_times() test (Colin Ihrig) #34623

New in Node.js 14.7.0 (Jul 30, 2020)

  • Notable Changes
  • Deps:
  • Upgrade npm to 6.14.7 (claudiahdz) #34468
  • Dgram:
  • (SEMVER-MINOR) add IPv6 scope id suffix to received udp6 dgrams (Pekka Nikander) #14500
  • Src:
  • (SEMVER-MINOR) allow preventing SetPromiseRejectCallback (Shelley Vohr) (SEMVER-MINOR) allow setting a dir for all diagnostic output (AshCripps) #33584
  • Worker:
  • (SEMVER-MINOR) make MessagePort inherit from EventTarget (Anna Henningsen) #34057
  • Zlib:
  • Switch to lazy init for zlib streams (Andrey Pechkurov) #34048
  • New Collaborators:
  • Add rexagod to collaborators (Pranshu Srivastava) #34457
  • Add AshCripps to collaborators (AshCripps) #34494
  • Add HarshithaKP to collaborators (Harshitha K P) #34417
  • Add release key for Richard Lau (Richard Lau) #34397

New in Node.js 14.5.0 (Jul 1, 2020)

  • Notable Changes:
  • V8 engine is updated to version 8.3:
  • This version includes performance improvements and now allows WebAssembly
  • modules to request memories up to 4GB in size.
  • Contributed by Matheus Marchini and Michaël Zasso - #33376.
  • Initial experimental implementation of EventTarget:
  • This version introduces an new experimental API EventTarget, which provides a DOM interface implemented by objects that can receive events and may have listeners for them.
  • It is an adaptation of the Web API EventTarget.
  • Semver-Minor Commits:
  • [4ccaa537d4] - (SEMVER-MINOR) build: reset embedder string to "-node.0" (Michaël Zasso) #33376
  • [d194d20828] - (SEMVER-MINOR) cli: add alias for report-directory to make it consistent (AshCripps) #33587
  • [70398dbf60] - (SEMVER-MINOR) crypto: allow KeyObjects in postMessage (Tobias Nießen) #33360
  • [9b7ba87aa6] - (SEMVER-MINOR) deps: V8: cherry-pick 0d6debcc5f08 (Michaël Zasso) #33376
  • [ce1a1ae621] - (SEMVER-MINOR) deps: V8: cherry-pick 74d50c5063b3 (Michaël Zasso) #32831
  • [aa7267a344] - (SEMVER-MINOR) deps: V8: cherry-pick e29c62b74854 (Michaël Zasso) #32831
  • [1512757a22] - (SEMVER-MINOR) deps: V8: cherry-pick 3f8dc4b2e5ba (Michaël Zasso) #32831
  • [3d9cf4bde6] - (SEMVER-MINOR) deps: V8: cherry-pick e1eac1b16c96 (Milad Farazmand) #32831
  • [cdeade308e] - (SEMVER-MINOR) deps: fix V8 8.3 on SmartOS (Colin Ihrig) #32831
  • [883840bc17] - (SEMVER-MINOR) deps: patch V8 to run on Xcode 8 (Matheus Marchini) #32831
  • [3831a541fb] - (SEMVER-MINOR) deps: V8: silence irrelevant warnings (Michaël Zasso) #32831
  • [e2fc08f216] - (SEMVER-MINOR) deps: make v8.h compatible with VS2015 (Joao Reis) #32831
  • [74b623bd51] - (SEMVER-MINOR) deps: V8: forward declaration of Rtl*FunctionTable (Refael Ackermann) #32831
  • [0f5764aec2] - (SEMVER-MINOR) deps: V8: patch register-arm64.h (Refael Ackermann) #32831
  • [be773fc3cf] - (SEMVER-MINOR) deps: patch V8 to run on older XCode versions (Ujjwal Sharma) #32831
  • [7aa41c6e6f] - (SEMVER-MINOR) deps: V8: un-cherry-pick bd019bd (Refael Ackermann) #32831
  • [ce901e3906] - (SEMVER-MINOR) deps: update V8 dtrace & postmortem metadata (Colin Ihrig) #32831
  • [1123425dd1] - (SEMVER-MINOR) deps: update V8 to 8.3.110.9 (Michaël Zasso) #33376
  • [1c70b18da8] - (SEMVER-MINOR) events: initial implementation of experimental EventTarget (James M Snell) #33556
  • [cf97c56dab] - (SEMVER-MINOR) fs: implement lutimes (Maël Nison) #33399
  • [a24b8df7fb] - (SEMVER-MINOR) http: expose host and protocol on ClientRequest (wenningplus) #33803
  • [507a2ef31c] - (SEMVER-MINOR) http: add maxTotalSockets to agent class (rickyes) #33617
  • [e1e3ae1567] - (SEMVER-MINOR) http: return this from OutgoingMessage#destroy() (Colin Ihrig) #32789
  • [d87031def4] - (SEMVER-MINOR) http: return this from ClientRequest#destroy() (Colin Ihrig) #32789
  • [c7959557db] - (SEMVER-MINOR) http: return this from IncomingMessage#destroy() (Colin Ihrig) #32789
  • [a3a0c0e0fc] - (SEMVER-MINOR) http: added scheduling option to http agent (delvedor) #33278
  • [e3fd2f5a48] - (SEMVER-MINOR) http2: return this for Http2ServerRequest#setTimeout (Pranshu Srivastava) #33994
  • [7ccb021ffc] - (SEMVER-MINOR) http2: do not modify explicity set date headers (Pranshu Srivastava) #33160
  • [f66bb57c13] - (SEMVER-MINOR) process: add unhandled-rejection throw and warn-with-error-code (Dan Fabulich) #33475
  • [33020256de] - (SEMVER-MINOR) src: store key data in separate class (Tobias Nießen) #33360
  • [44b9d08344] - (SEMVER-MINOR) src: add NativeKeyObject base class (Tobias Nießen) #33360
  • [13e633873e] - (SEMVER-MINOR) src: rename internal key handles to KeyObjectHandle (Tobias Nießen) #33360
  • [a3d0b0e2d7] - (SEMVER-MINOR) src: add equality operators for BaseObjectPtr (Anna Henningsen) #33772
  • [0720d1ff24] - (SEMVER-MINOR) src: introduce BaseObject base FunctionTemplate (Anna Henningsen) #33772
  • [5362fef3f5] - (SEMVER-MINOR) src: add public APIs to manage v8::TracingController (Anna Henningsen) #33850
  • [db2d1ca51b] - (SEMVER-MINOR) stream: runtime deprecate Transform._transformState (Robert Nagy) #32763
  • [b6da77756e] - (SEMVER-MINOR) test: stop testing --interpreted-frames-native-stack for s390x (Michaël Zasso) #32831
  • [5cad007408] - (SEMVER-MINOR) test: fix test-zlib-unused-weak on V8 8.2 (Matheus Marchini) #32831
  • [2c59f9bbe2] - (SEMVER-MINOR) tools: update V8 gypfiles for V8 8.3 (Michaël Zasso) #32831
  • [0ef6e0426f] - (SEMVER-MINOR) win: allow skipping the supported platform check (João Reis) #33176
  • [4e42eb5e14] - (SEMVER-MINOR) worker: add public method for marking objects as untransferable (Anna Henningsen) #33979
  • [4a37180b09] - (SEMVER-MINOR) worker: emit 'messagerror' events for failed deserialization (Anna Henningsen) #33772
  • [9692208a91] - (SEMVER-MINOR) worker: allow passing JS wrapper objects via postMessage (Anna Henningsen) #33772
  • [eaccf842eb] - (SEMVER-MINOR) worker: allow transferring/cloning generic BaseObjects (Anna Henningsen) #33772
  • [5b1fd10048] - (SEMVER-MINOR) worker,fs: make FileHandle transferable (Anna Henningsen) #33772
  • [c1f625fe1f] - (SEMVER-MINOR) zlib: add maxOutputLength option (unknown) #33516
  • Semver-Patch Commits:
  • [ef05e1526a] - async_hooks: callback trampoline for MakeCallback (Stephen Belanger) #33801
  • [0eed22d6ed] - benchmark: fix EventTarget benchmark (Brian White) #34015
  • [bf56decc79] - benchmark: fix async-resource benchmark (Anna Henningsen) #33642
  • [26269be510] - benchmark: fixing http_server_for_chunky_client.js (Adrian Estrada) #33271
  • [c31d5145d9] - buffer: remove hoisted variable (Nikolai Vavilov) #33470
  • [43fd4746e9] - build: configure byte order for mips targets (Ben Noordhuis) #33898
  • [ebb2fb81fa] - build: add target specific build_type variable (Daniel Bevenius) #33925
  • [e8f7670b77] - build: add LINT_CPP_FILES to checkimports check (Daniel Bevenius) #33697
  • [1355d35a61] - build: output dots in "Build from tarball" action (Michaël Zasso) #33696
  • [153f5eda0e] - build: fix compiling addons with older versions of Node.js (Richard Lau) #33688
  • [7a4c689912] - build: fix node.gyp config (gengjiawen) #33685
  • [1f7a65529d] - build: add --v8-lite-mode flag (Maciej Kacper Jagiełło) #33541
  • [3ac05b75ca] - build: zlib build error on Windows on Arm (Richard Townsend) #33511
  • [fc032247e0] - build: fix GetCurrentThreadStackLimits error on Windows on Arm (Richard Townsend) #33511
  • [e393e879cf] - build: fix python-version selection with actions (Richard Lau) #33589
  • [8ed25eda60] - build: fix inability to detect correct python command in configure (Eli Schwartz) #32925
  • [8b887c4462] - build: fix makefile script on windows (Thomas) #33136
  • [85ce30fe57] - build: run full test suite in ASAN action (Anna Henningsen) #33170
  • [71c4d9174e] - build,win: add support for MSVC cross-compilation (Richard Townsend) #32867
  • [ac7946eb08] - build,win: add support for MSVC cross-compilation (Richard Townsend) #32867
  • [22b5ec19a2] - cli: support --experimental-top-level-await in NODE_OPTIONS (Dan Fabulich) #33495
  • [0a7f13e26b] - configure: account for CLANG_VENDOR when checking for llvm version (Nathan Blair) #33860
  • [a6a74ae1d5] - console: name console functions appropriately (Ruben Bridgewater) #33524
  • [9d24f71d45] - console: mark special console properties as non-enumerable (Ruben Bridgewater) #33524
  • [bce99867f7] - console: remove dead code (Ruben Bridgewater) #33524
  • [134ed0eea3] - crypto: fix wrong error message (Ben Bucksch) #33482
  • [5957afc31a] - deps: V8: cherry-pick 767e65f945e7 (Gus Caplan) #33859
  • [162092ea2a] - deps: V8: cherry-pick eec10a2fd8fa (Stephen Belanger) #33778
  • [499c7402b1] - deps: V8: cherry-pick 4e1bf2bc92bd (Milad Farazmand) #33702
  • [0524c7ad5d] - deps: V8: cherry-pick b5939c758924 (Milad Farazmand) #33702
  • [7ad6cfa005] - deps: V8: backport 22014de00115 (Joyee Cheung) #33300
  • [817befde11] - deps: V8: backport bb9f0c2b2fe9 (Joyee Cheung) #33300
  • [8f82692999] - deps: V8: backport ea0719b8ed08 (Joyee Cheung) #33300
  • [773d76ea04] - deps: uvwasi: cherry-pick 9e75217 (Colin Ihrig) #33521
  • [748720e7b6] - deps: V8: cherry-pick 548f6c81d424 (Dominykas Blyžė) #33484
  • [b0bce9b2a4] - deps: update node-inspect to v2.0.0 (Jan Krems) #33447
  • [ac459b34e7] - deps: V8: cherry-pick fa3e37e511ee (Anna Henningsen) #32885
  • [2bc79f5b50] - deps: V8: cherry-pick 2db93c023379 (Anna Henningsen) #32885
  • [8d47e8bf7b] - deps: update to uvwasi 0.0.9 (Colin Ihrig) #33445
  • [9d6fd4599d] - deps: upgrade to libuv 1.38.0 (Colin Ihrig) #33446
  • [33a662ad2d] - deps: update icu to include tzdata2020a (Shelley Vohr) #33362
  • [f151bde312] - (SEMVER-MINOR) dgram: allow typed arrays in .send() (Sarat Addepalli) #22413
  • [d4442b15bf] - dns: make dns.Resolver timeout configurable (Ben Noordhuis) #33472
  • [eb55d9e4b1] - dns: use ternary operator simplify statement (Wenning Zhang) #33234
  • [d61de303c9] - doc: specify maxHeaderCount alias for maxHeaderListPairs (Pranshu Srivastava) #33519
  • [4323346f5a] - doc: add allowed info strings to style guide (Derek Lewis) #34024
  • [0dbad26db4] - doc: fix lexical sorting of bottom-references in http doc (Pranshu Srivastava) #34007
  • [ec07e61f6a] - doc: clarify thread-safe function references (legendecas) #33871
  • [5a4dcfcf4c] - doc: use npm team for npm upgrades in collaborator guide (Rich Trott) #33999
  • [319707add2] - doc: correct default values in http2 docs (Rich Trott) #33997
  • [b4d0eebe7c] - doc: use a single space between sentences (Rich Trott) #33995
  • [24105a7f44] - doc: piping from async generators using pipeline() (WilliamConnatser) #33992
  • [9590d81349] - doc: revise text in dns module documentation introduction (Rich Trott) #33986
  • [ed26e8e2fb] - doc: update fs.md (Shakil-Shahadat) #33820
  • [6dc541778e] - doc: warn that tls.connect() doesn't set SNI (Alba Mendez) #33855
  • [d9c78ac270] - doc: fix lexical sorting of bottom-references in dns doc (Rich Trott) #33987
  • [98228b25af] - doc: change "GitHub Repo" to "Code repository" (Rich Trott) #33985
  • [645cd481e9] - doc: use Class: consistently (Rich Trott) #33978
  • [72e2fd315e] - doc: update WASM code sample (Pragyan Das) #33626
  • [894ec7d5c6] - doc: standardize on sentence case for headers (Rich Trott) #33889
  • [61de26a2f3] - doc: link readable._read in stream.md (Pranshu Srivastava) #33767
  • [76fe2a93a9] - doc: specify default encoding in writable.write (Pranshu Srivastava) #33765
  • [2427d6544b] - doc: move --force-context-aware option in cli.md (Daniel Bevenius) #33823
  • [fdaf0ca550] - doc: add snippet for AsyncResource and EE integration (Andrey Pechkurov) #33751
  • [8f5ac3865c] - doc: use single quotes in --tls-cipher-list (Daniel Bevenius) #33709
  • [922c13c6bb] - doc: fix misc. mislabeled code block info strings (Derek Lewis) #33548
  • [114d77e30b] - doc: standardize constructor doc header layout (Rich Trott) #33781
  • [b10d20385e] - doc: update V8 inspector example (Colin Ihrig) #33758
  • [785760448b] - doc: fix linting in doc-style-guide.md (Pranshu Srivastava) #33787
  • [2288840a8f] - doc: remove "currently" from repl.md (Rich Trott) #33756
  • [cc0f827182] - doc: remove "currently" from events.md (Rich Trott) #33756
  • [4a738e6462] - doc: remove "currently" from vm.md (Rich Trott) #33756
  • [bb29a8177f] - doc: remove "currently" from addons.md (Rich Trott) #33756
  • [f0597d9a6e] - doc: remove "currently" from util.md (Rich Trott) #33756
  • [095efac2ef] - doc: add formatting for version numbers to doc-style-guide.md (Rich Trott) #33755
  • [843ab3eb94] - doc: change "pre Node.js v0.10" to "prior to Node.js 0.10" (Rich Trott) #33754
  • [b565897996] - doc: remove default parameter value from header (Rich Trott) #33752
  • [ebf2378731] - doc: fix typo in cli.md for report-dir (AshCripps) #33725
  • [16b69818ba] - doc: remove shell dollar signs without output (Nick Schonning) #33692
  • [b3d500f949] - doc: add lint disabling comment for collaborator list (Rich Trott) #33719
  • [61bb789fa0] - doc: use consistent Default: in events (Colin Ihrig) #33678
  • [1e4edd8d75] - doc: remove "it is important" (Colin Ihrig) #33678
  • [cb8b9ec98a] - doc: fix urls to avoid redirection (sapics) #33614
  • [c184929975] - doc: improve buffer.md a tiny bit (Tom Nagle) #33547
  • [6d25b5753a] - doc: normalize Markdown code block info strings (Derek Lewis) #33542
  • [e7c3890901] - doc: normalize JavaScript code block info strings (Derek Lewis) #33531
  • [352adcb437] - doc: outline when origin is set to unhandledRejection (Ruben Bridgewater) #33530
  • [94177dae8e] - doc: add --experimental-top-level-await to man page (Colin Ihrig) #33529
  • [8e3a0d7773] - doc: update txt fandamental and ```raw code blocks (Zeke Sikelianos) #33028
  • [4cc391b495] - doc: normalize shell code block info strings (Derek Lewis) #33486
  • [24ada7acd4] - doc: normalize C code block info strings (Derek Lewis) #33507
  • [8c04e61f16] - doc: normalize Bash code block info strings (Derek Lewis) #33510
  • [7c87fc1c48] - doc: correct tls.rootCertificates to match implementation (Eric Bickle) #33313
  • [0c2b7c0adf] - doc: fix Buffer.from(object) documentation (Nikolai Vavilov) #33327
  • [de608c3124] - doc: fix typo in pathToFileURL example (Antoine du HAMEL) #33418
  • [23cf39ab78] - doc: eliminate dead space in API section's sidebar (John Gardner) #33469
  • [95e7a80cbf] - doc: mention --experimental-top-level-await flag (dfabulich) #33473
  • [64410f206e] - doc: normalize C++ code block info strings (Derek Lewis) #33483
  • [c8f79d80a4] - doc: fixed a grammatical error in path.md (Deep310) #33489
  • [500bad1103] - doc: correct CommonJS self-resolve spec (Guy Bedford) #33391
  • [4e74f050a7] - doc: fix readline key binding documentation (Ruben Bridgewater) #33361
  • [7c553cd4f6] - doc: claim ABI version 85 for Electron 11 (Shelley Vohr) #33375
  • [4cc5e9668f] - doc: document module.path (Antoine du Hamel) #33323
  • [c1fe152132] - doc: add fs.open() multiple constants example (Ethan Arrowood) #33281
  • [b02cfef510] - doc: fix typos in handle scope descriptions (Tobias Nießen) #33267
  • [d4e871424f] - doc: update function description for decipher.setAAD (Jonathan Buhacoff) #33095
  • [e2484b24cb] - doc: add comment about highWaterMark limit (Benjamin Gruenbaum) #33432
  • [b8c88891a6] - doc: clarify about the Node.js-only extensions in perf_hooks (Joyee Cheung) #33199
  • [d1efdb29b4] - doc: document ICU time zone data update process (Andrew Paprocki) #30364
  • [1d918b67ca] - doc,stream: split finish and end events into separate entries (Rich Trott) #33881
  • [af9fb5969d] - doc,tools: properly syntax highlight API ref docs (Derek Lewis) #33442
  • [122d2b5c02] - domain: remove native domain code (Stephen Belanger) #33801
  • [e060060aa2] - errors: fully inspect errors on exit (Ruben Bridgewater) #33523
  • [aca07f428e] - errors: skip fatal error highlighting on windows (Thomas) #33132
  • [50adccadc1] - esm: fix loader hooks doc annotations (Derek Lewis) #33563
  • [5bef20c2fc] - esm: share package.json cache between ESM and CJS loaders (Kirill Shatskiy) #33229
  • [828d5d22eb] - esm: doc & validate source values for formats (Bradley Farias) #32202
  • [2724514f53] - event: cancelBubble is a property (Benjamin Gruenbaum) #34015
  • [c9dec0c0f0] - event: cancelBubble is a property (Benjamin Gruenbaum) #33613
  • [0c32920a82] - events: fix add-remove-add case in EventTarget (Anna Henningsen) #34056
  • [c34f4743c4] - events: improve argument handling, start passive (James M Snell) #34015
  • [ea1a2d7bc9] - events: support dispatching event from event (James M Snell) #34015
  • [5ce153365e] - events: add event-target tests (James M Snell) #34015
  • [91b6c093b1] - events: support event handlers (Benjamin Gruenbaum) #34015
  • [b392fdd4aa] - events: expose Event statics (Benjamin Gruenbaum) #34015
  • [cd3a1429a3] - events: Handle a range of this values for dispatchEvent (Zirak) #34015
  • [aa1cb3f186] - events: fix EventTarget support (Benjamin Gruenbaum) #34015
  • [0f0f4e0c40] - events: fix depth in customInspectSymbol and clean up (Denys Otrishko) #34015
  • [6ce3293cc4] - events: use internal/validators in event_target.js (Denys Otrishko) #34015
  • [eb01214ab2] - events: use property, primordials (Benjamin Gruenbaum) #33775
  • [667195ef8f] - events: improve listeners() performance (Brian White) #33863
  • [f1b0291d82] - events: lazy load perf_hooks for EventTarget (James M Snell) #33717
  • [c291ce599c] - events: improve arrayClone performance (Brian White) #33774
  • [a3ef2b7335] - events: support useCapture boolean (Benjamin Gruenbaum) #33618
  • [2e6eceac5c] - events: set target property to null (Benjamin Gruenbaum) #33615
  • [bc2e821ccc] - events: deal with no argument case (Benjamin Gruenbaum) #33611
  • [e7bce2e03a] - events: deal with Symbol() passed to event constructor (Benjamin Gruenbaum) #33612
  • [27c90efce0] - events: variable originalListener is useless (fuxingZhang) #33596
  • [2a29ced050] - events: fix event-target enumerable keys (Benjamin Gruenbaum) #33616
  • [f3d0d3089d] - events: add tests, better toString (Benjamin Gruenbaum) #33622
  • [95cbfcec99] - fs: fix readdir failure when libuv returns UV_DIRENT_UNKNOWN (Kirill Shatskiy) #33395
  • [b894df860a] - fs: fix realpath inode link caching (Denys Otrishko) #33945
  • [b280c86213] - fs: support util.promisify for fs.readv (Lucas Holmquist) #33590
  • [2c03661860] - fs: unify style in preprocessSymlinkDestination (Bartosz Sosnowski) #33496
  • [b675ea0272] - fs: replace checkPosition with validateInteger (rickyes) #33277
  • [a90b96f338] - fs: refactor the import of internalUtil (rickyes) #33296
  • [a0a61b81a5] - http: used already defined validator for boolean check (Yash Ladha) #33731
  • [6dbd63c8ba] - Revert "http: set IncomingMessage.destroyed" (Robert Nagy) #33686
  • [feb6e1ffb8] - http: don't throw on Uint8Arrays for http.ServerResponse#write (Pranshu Srivastava) #33155
  • [bcdf7e94be] - http: simplify Agent initialization (himself65) #33551
  • [c2aad813c0] - http: tidy up exposure of header validation (Osher) #33371
  • [0752d2309f] - http2: always call callback on Http2ServerResponse#end (Pranshu Srivastava) #33911
  • [d8aeafb4bf] - http2: add writable* properties to compat api (Pranshu Srivastava) #33506
  • [0b34c4fb75] - http2: add type checks for Http2ServerResponse.end (Pranshu Srivastava) #33146
  • [cc74f3c67c] - http2: use Object.create(null) for getHeaders (Pranshu Srivastava) #33188
  • [8457033d83] - http2: reuse ._onTimeout() in Http2Session and Http2Stream classes (rickyes) #33354
  • [c972ce200e] - http2: comment on usage of Object.create(null) (Pranshu Srivastava) #33183
  • [e58f14fee7] - inspector: drop 'chrome-' from inspector url (Colin Ihrig) #33758
  • [42df2baa21] - inspector: throw error when activating an already active inspector (Joyee Cheung) #33015
  • [c9489f2f23] - internal: rename error-serdes for consistency (Evan Lucas) #33793
  • [b7690da65e] - lib: improve debuglog() performance (Brian White) #32260
  • [b6ef6c8476] - lib: remove manual exception handling in queueMicrotask (Gus Caplan) #33859
  • [ec01867623] - lib: replace charCodeAt with fixed Unicode (rickyes) #32758
  • [76123b9ae7] - lib: add Int16Array primordials (Sebastien Ahkrin) #31205
  • [59d435ed4d] - lib: update TODO comments (Ruben Bridgewater) #33361
  • [e62a8b5007] - lib: update executionAsyncId/triggerAsyncId comment (Daniel Bevenius) #33396
  • [4ae4073abf] - lib,src: remove cpu profiler idle notifier (Ben Noordhuis) #34010
  • [fc7cad828b] - meta: introduce codeowners again (James M Snell) #33895
  • [b162c532d7] - meta: fix a typo in the flaky test template (Colin Ihrig) #33677
  • [148c1f1344] - meta: wrap flaky test template at 80 characters (Colin Ihrig) #33677
  • [2aa6469bea] - meta: add flaky test issue template (Ash Cripps) #33500
  • [84a5e6cec8] - module: fix error message about importing names from cjs (Fábio Santos) #33882
  • [8c9e3a9dfb] - module: remove dynamicInstantiate loader hook (Jan Krems) #33501
  • [53dbb9d232] - n-api: add version to wasm registration (Gus Caplan) #34045
  • [e924439d96] - n-api: document nextTick timing in callbacks (Mathias Buus) #33804
  • [524daf89a1] - n-api: ensure scope present for finalization (Michael Dawson) #33508
  • [e83642f73d] - n-api: remove napi_env::CallIntoModuleThrow (Gabriel Schulhof) #33570
  • [4c235b07ae] - Revert "n-api: detect deadlocks in thread-safe function" (Anna Henningsen) #33453
  • [022dcebcd8] - napi: add __wasm32__ guards (Gus Caplan) #33597
  • [164461edfd] - net: refactor check for Windows (rickyes) #33497
  • [e0b0ddd257] - querystring: fix stringify for empty array (sapics) #33918
  • [e8572e7070] - querystring: improve stringify() performance (Brian White) #33669
  • [011fe1d443] - repl: add builtinModules (Ruben Bridgewater) #33295
  • [71d6599191] - repl: simplify repl autocompletion (Ruben Bridgewater) #33450
  • [1330cfc2a9] - repl: support optional chaining during autocompletion (Ruben Bridgewater) #33450
  • [9760c6caff] - src: add errorProperties on process.report (himself65) #28426
  • [da81930b13] - src: tolerate EPERM returned from tcsetattr (patr0nus) #33944
  • [c1664a9008] - src: clang_format base_object (Yash Ladha) #33680
  • [a789474945] - src: fix ParseEncoding (sapics) #33957
  • [74f4aae22f] - src: remove unnecessary calculation in base64.h (sapics) #33839
  • [c492a2715e] - src: use ToLocal in node_os.cc (wenningplus) #33939
  • [9a52cd9cc0] - src: handle empty Maybe(Local) in node_util.cc (Anna Henningsen) #33867
  • [e1bebf13db] - src: fix FastStringKey equal operator (sapics) #33748
  • [0dd67d992e] - src: reduce scope of code cache mutex (Anna Henningsen) #33980
  • [cd0ae4007f] - src: improve indention for upd_wrap.cc (gengjiawen) #33976
  • [6014e4e0b8] - src: remove unnecessary ToLocalChecked call (Daniel Bevenius) #33902
  • [4715a41c1c] - src: simplify alignment-handling code (Anna Henningsen) #33884
  • [33cff40bb7] - src: remove ref to tools/generate_code_cache.js (Daniel Bevenius) #33825
  • [dfa0ee13ee] - src: remove unused vector include in string_bytes (Daniel Bevenius) #33824
  • [fb2b0a094b] - src: avoid unnecessary ToLocalChecked calls (Daniel Bevenius) #33824
  • [07c21d0d27] - src: reduce FileHandle size by reordering fields (Anna Henningsen) #33784
  • [83aaad7ec3] - src: do not track BaseObjects via cleanup hooks (Anna Henningsen) #33809
  • [f8dddd3416] - src: handle missing TracingController everywhere (Anna Henningsen) #33815
  • [3b71aa8029] - src: remove unused ERR_TRANSFERRING_EXTERNALIZED_SHAREDARRAYBUFFER (Anna Henningsen) #33810
  • [1f996b7372] - src: simplify Reindent function in json_utils.cc (sapics) #33722
  • [cdcd76810e] - src: add "missing" bash completion options (Daniel Bevenius) #33744
  • [cc8d70531d] - src: use Check() instead of FromJust in environment (Daniel Bevenius) #33706
  • [858c6b9dfd] - src: use ToLocal in SafeGetenv (Daniel Bevenius) #33695
  • [c2f49319b7] - src: remove unnecessary ToLocalChecked call (Daniel Bevenius) #33683
  • [21f1e64737] - src: simplify format in node_file.cc (himself65) #33660
  • [c3728c6235] - src: simplify MaybeStackBuffer::capacity() (Ben Noordhuis) #33602
  • [7725ff392c] - src: remove superfluous inline keywords (James M Snell) #33291
  • [27e9cb7e85] - src: turn AllocatedBuffer into thin wrapper around v8::BackingStore (James M Snell) #33291
  • [d8f040e33d] - src: extract AllocatedBuffer from env.h (James M Snell) #33291
  • [a8824ae0a5] - src: avoid OOB read in URL parser (Anna Henningsen) #33640
  • [6ef2efe33a] - src: use MaybeLocal.ToLocal instead of IsEmpty worker (Daniel Bevenius) #33599
  • [522fbbc8d9] - src: don't use semicolon outside function (Shelley Vohr) #33592
  • [ad970996cf] - src: remove unused using declarations (Daniel Bevenius) #33268
  • [20d54f6908] - src: use MaybeLocal.ToLocal instead of IsEmpty (Daniel Bevenius) #33554
  • [5438611984] - src: use NewFromUtf8Literal in GetLinkedBinding (Daniel Bevenius) #33552
  • [a5e860cd29] - src: use const in constant args.Length() (himself65) #33555
  • [7e351f15cb] - src: use MaybeLocal::FromMaybe to return exception (Daniel Bevenius) #33514
  • [3f1c756f89] - Revert "src: fix missing extra ca in tls.rootCertificates" (Eric Bickle) #33313
  • [d1e1dbf188] - src: remove BeforeExit callback list (Ben Noordhuis) #33386
  • [ee45b78b7f] - src: use MaybeLocal.ToLocal instead of IsEmpty (Daniel Bevenius) #33457
  • [9018e92b13] - src: remove unused headers in src/util.h (Juan José Arboleda) #33070
  • [7d1d00f97a] - src: use enum for refed flag on native immediates (Anna Henningsen) #33444
  • [e8cc269ee0] - src: use symbol to store AsyncWrap resource (Anna Henningsen) #31745
  • [ab2454dec5] - src: prefer make_unique (Michael Dawson) #33378
  • [a942f7280a] - src: remove unnecessary else in base_object-inl.h (Daniel Bevenius) #33413
  • [f6227c0577] - src: reduce duplication in RegisterHandleCleanups (Daniel Bevenius) #33421
  • [f24292e106] - src: remove unused IsolateSettings variable (Daniel Bevenius) #33417
  • [308be6ca0c] - src: remove unused misc variable (Daniel Bevenius) #33417
  • [7fd0519a91] - src: add promise_resolve to SetupHooks comment (Daniel Bevenius) #33365
  • [26a3cf058d] - src,build: add --openssl-default-cipher-list (Daniel Bevenius) #33708
  • [b0fa611e68] - stream: fix the spellings (antsmartian) #33635
  • [1db0d51ab2] - stream: forward writableObjectMode (Robert Nagy) #33390
  • [2c568c80f3] - test: add non-ASCII character embedding test (Anna Henningsen) #33972
  • [d4a2ae094e] - test: add test for Http2ServerResponse#[writableCorked,cork,uncork] (Pranshu Srivastava) #33956
  • [4a61013fb2] - test: print arguments passed to mustNotCall function (Denys Otrishko) #33951
  • [1b55d90975] - test: AsyncLocalStorage works with thenables (Gerhard Stoebich) #34008
  • [195980d667] - test: account for non-node basename (Shelley Vohr) #33952
  • [90223f0a88] - test: fix typo in common/index.js (gengjiawen) #33976
  • [d427d7f905] - test: add common/udppair utility (James M Snell) #33380
  • [b8fdde400a] - Revert "test: stop testing --interpreted-frames-native-stack for s390x" (Michaël Zasso) #33794
  • [e3a53329c2] - test: temporarily exclude test on arm (Michael Dawson) #33814
  • [b6e3616911] - test: fix invalid regular expressions in case test-trace-exit (legendecas) #33769
  • [c3ac47c03d] - test: changed function to arrow function (Sagar Jadhav) #33711
  • [15eb5a3da4] - test: uv_tty_init now returns EINVAL on IBM i (Xu Meng) #33629
  • [da5e970a8c] - test: make flaky test stricter (Robert Nagy) #33539
  • [47396a42cf] - test: fix flaky test-trace-atomics-wait (Anna Henningsen) #33428
  • [eb877a4c49] - test: mark test-dgram-multicast-ssmv6-multi-process flaky (AshCripps) #33498
  • [5dca04ee8e] - tools: remove superfluous regex in tools/doc/json.js (Rich Trott) #33998
  • [1791d5727c] - tools: update [email protected] to 1.16.0 (Rich Trott) #33852
  • [01d8b91942] - tools: prevent js2c from running if nothing changed (Daniel Bevenius) #33844
  • [e837f00b4f] - tools: remove unused vector include in mkdcodecache (Daniel Bevenius) #33828
  • [800dbb6bdd] - tools: update ESLint to 7.2.0 (Colin Ihrig) #33776
  • [a14e38a6c0] - tools: remove unused using declarations code_cache (Daniel Bevenius) #33697
  • [9fb1eb09d9] - tools: update remark-preset-lint-node from 1.15.0 to 1.15.1 (Rich Trott) #33727
  • [a331a00eac] - tools: fix check-imports.py to match on word boundaries (Richard Lau) #33268
  • [9325ed9e1c] - tools: update ESLint to 7.1.0 (Colin Ihrig) #33526
  • [6dab63f36d] - tools: add docserve target (Antoine du HAMEL) #33221
  • [2384044c95] - tools,gyp: add support for MSVC cross-compilation (Richard Townsend) #32867
  • [987c927225] - util: fix width detection for DEL without ICU (Ruben Bridgewater) #33650
  • [91d0d53b59] - util: support Combining Diacritical Marks for Symbols (Ruben Bridgewater) #33650
  • [e3d53f999d] - util: gracefully handle unknown colors (Ruben Bridgewater) #33797
  • [a90c9aa858] - util: fix inspection of class instance prototypes (Ruben Bridgewater) #33449
  • [2380d90f0a] - util: mark classes while inspecting them (Ruben Bridgewater) #32332
  • [879c9322ce] - vm: allow proxy callbacks to throw (Gus Caplan) #33808
  • [af14c1f776] - wasi: allow WASI stdio to be configured (Colin Ihrig) #33544
  • [5eecea375f] - wasi: simplify WASI memory management (Colin Ihrig) #33525
  • [f98e888fdd] - wasi: refactor and enable poll_oneoff() test (Colin Ihrig) #33521
  • [6b20e8442f] - wasi: relax WebAssembly.Instance type check (Ben Noordhuis) #33431
  • [d15383253a] - wasi,worker: handle termination exception (Ben Noordhuis) #33386
  • [3f971d89a9] - win,fs: use namespaced path in absolute symlinks (Bartosz Sosnowski) #33351
  • [3520a134af] - win,msi: add arm64 config for windows msi (Dennis Ameling) #33689
  • [b79495905f] - worker: fix variable referencing in template string (Harshitha KP) #33467
  • [9c3008005d] - worker: perform initial port.unref() before preload modules (Anna Henningsen) #33455
  • [64cae13799] - worker: use _writev in internal communication (Anna Henningsen) #33454
  • [7817b875a7] - worker: fix race condition in node_messaging.cc (Anna Henningsen) #33429

New in Node.js 14.4.0 (Jun 2, 2020)

  • 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).

New in Node.js 14.3.0 (May 19, 2020)

  • Notable Changes:
  • REPL previews improvements with autocompletion:
  • The output preview is changed to generate previews for autocompleted input instead of the actual input.
  • Pressing <enter> during a preview is now going to evaluate the whole string including the autocompleted part. Pressing <escape> cancels that behavior.
  • Support for Top-Level Await
  • It's now possible to use the await keyword outside of async functions.
  • Other Notable Changes:
  • [7aa581f4ff] - (SEMVER-MINOR) repl: deprecate repl._builtinLibs (Ruben Bridgewater) #33294
  • [db7bb941a3] - (SEMVER-MINOR) repl: deprecate repl.inputStream and repl.outputStream (Ruben Bridgewater) #33294
  • [2dc5db8c07] - (SEMVER-MINOR) cli: add --trace-atomics-wait flag (Anna Henningsen) #33292
  • [6257cf256e] - (SEMVER-MINOR) repl: improve repl autocompletion for require calls (Ruben Bridgewater) #33282
  • [d33dcf1d5f] - (SEMVER-MINOR) repl: show reference errors during preview (Ruben Bridgewater) #33282
  • [1dcf66cf87] - (SEMVER-MINOR) fs: add .ref() and .unref() methods to watcher classes (rickyes) #33134
  • [f33e86649e] - (SEMVER-MINOR) http: expose http.validate-header-name/value (osher) #33119
  • [b06165584e] - (SEMVER-MINOR) async_hooks: move PromiseHook handler to JS (Stephen Belanger) #32891

New in Node.js 14.2.0 (May 5, 2020)

  • Track function calls with assert.CallTracker (experimental):
  • assert.CallTracker is a new experimental API that allows to track and later
  • verify the number of times a function was called. This works by creating a
  • CallTracker object and using its calls method to create wrapper functions
  • that will count each time they are called
  • 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.

New in Node.js 14.1.0 (Apr 29, 2020)

  • Notable Changes:
  • deps: upgrade openssl sources to 1.1.1g (Hassaan Pasha) #32971
  • doc: add juanarbol as collaborator (Juan José Arboleda) #32906
  • http: doc deprecate abort and improve docs (Robert Nagy) #32807
  • module: do not warn when accessing __esModule of unfinished exports (Anna Henningsen) #33048
  • n-api: detect deadlocks in thread-safe function (Gabriel Schulhof) #32860
  • src: deprecate embedder APIs with replacements (Anna Henningsen) #32858
  • stream:
  • don't emit end after close (Robert Nagy) #33076
  • don't wait for close on legacy streams (Robert Nagy) #33058
  • pipeline should only destroy un-finished streams (Robert Nagy) #32968
  • vm: add importModuleDynamically option to compileFunction (Gus Caplan) #32985

New in Node.js 14.0.0 (Apr 21, 2020)

  • Notable Changes:
  • Deprecations:
  • (SEMVER-MAJOR) crypto: move pbkdf2 without digest to EOL (James M Snell) #31166
  • (SEMVER-MAJOR) fs: deprecate closing FileHandle on garbage collection (James M Snell) #28396
  • (SEMVER-MAJOR) http: move OutboundMessage.prototype.flush to EOL (James M Snell) #31164
  • (SEMVER-MAJOR) lib: move GLOBAL and root aliases to EOL (James M Snell) #31167
  • (SEMVER-MAJOR) os: move tmpDir() to EOL (James M Snell) #31169
  • (SEMVER-MAJOR) src: remove deprecated wasm type check (Clemens Backes) #32116
  • (SEMVER-MAJOR) stream: move _writableState.buffer to EOL (James M Snell) #31165
  • (SEMVER-MINOR) doc: deprecate process.mainModule (Antoine du HAMEL) #32232
  • (SEMVER-MINOR) doc: deprecate process.umask() with no arguments (Colin Ihrig) #32499
  • ECMAScript Modules - Experimental Warning Removal:
  • module: remove experimental modules warning (Guy Bedford) #31974
  • In Node.js 13 we removed the need to include the --experimental-modules flag, but when running EcmaScript Modules in Node.js, this would still result in a warning ExperimentalWarning: The ESM module loader is experimental.
  • As of Node.js 14 there is no longer this warning when using ESM in Node.js. 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.
  • 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 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 warning is a huge step in that direction.
  • New V8 ArrayBuffer API:
  • src: migrate to new V8 ArrayBuffer API (Thang Tran) #30782
  • Multiple ArrayBuffers pointing to the same base address are no longer allowed by V8. This may impact native addons.
  • Toolchain and Compiler Upgrades:
  • (SEMVER-MAJOR) build: update macos deployment target to 10.13 for 14.x (AshCripps) #32454
  • (SEMVER-MAJOR) doc: update cross compiler machine for Linux armv7 (Richard Lau) #32812
  • (SEMVER-MAJOR) doc: update Centos/RHEL releases use devtoolset-8 (Richard Lau) #32812
  • (SEMVER-MAJOR) doc: remove SmartOS from official binaries (Richard Lau) #32812
  • (SEMVER-MAJOR) win: block running on EOL Windows versions (João Reis) #31954
  • It is expected that there will be an ABI mismatch on ARM between the Node.js binary and native addons. Native addons are only broken if they
  • interact with std::shared_ptr. This is expected to be fixed in a later version of Node.js 14. - #30786
  • Update to V8 8.1
  • (SEMVER-MAJOR) deps: update V8 to 8.1.307.20 (Matheus Marchini) #32116
  • Other Notable Changes:
  • cli, report: move --report-on-fatalerror to stable (Colin Ihrig) #32496
  • deps: upgrade to libuv 1.37.0 (Colin Ihrig) #32866
  • fs: add fs/promises alias module (Gus Caplan) #31553

New in Node.js 13.13.0 (Apr 15, 2020)

  • New file system APIs:
  • Added a new function, fs.readv (with sync and promisified versions). This
  • Function takes an array of ArrayBufferView elements and will write the data
  • It reads sequentially to the buffers (Sk Sajidul Kadir) #32356.
  • A new overload is available for fs.readSync, which allows to optionally pass
  • Any of the offset, length and position parameters (Lucas Holmquist) #32460.
  • Other changes:
  • 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.
  • Http:
  • The default maximum HTTP header size was changed from 8KB to 16KB (rosaxny) #32520.
  • N-api:
  • Calls to napi_call_threadsafe_function from the main thread can now return the napi_would_deadlock status in certain circumstances (Gabriel Schulhof) #32689.
  • Util:
  • Added a new maxStrLength option to util.inspect, to control the maximum length of printed strings. Its default value is Infinity (rosaxny) #32392.
  • Worker:
  • Added support for passing a transferList along with workerData to the
  • Worker constructor (Juan José Arboleda) #32278.
  • New core collaborators:
  • With this release, we welcome three new Node.js core collaborators:
  • Himself65 #32734.
  • Flarna (Gerhard Stoebich) #32620.
  • Mildsunrise (Alba Mendez) #32525.
  • Commits:
  • [a25ceeff72] - async_hooks: use hasHooks function internally (rickyes) #32656
  • [b63223114b] - async_hooks: move to lazy destroy hook registration in AsyncResource (Andrey Pechkurov) #32429
  • [78b90d9bc4] - benchmark: fix error on server close in AsyncLocalStorage benchmark (Andrey Pechkurov) #32503
  • [b556670d55] - benchmark: use let instead of var in zlib (Daniele Belardi) #31794
  • [d8316654fb] - benchmark: use let instead of var in worker (Daniele Belardi) #31794
  • [f1d3fb067b] - benchmark: use let instead of var in util (Daniele Belardi) #31794
  • [148df0a743] - benchmark: use let instead of var in url (Daniele Belardi) #31794
  • [108e91fb85] - benchmark: use let instead of var in tls (Daniele Belardi) #31794
  • [f1720145af] - benchmark: use let instead of var in timers (Daniele Belardi) #31794
  • [4ce6fc5f9b] - benchmark: use let instead of var in run.js (Daniele Belardi) #31794
  • [93b3997452] - benchmark: use let instead of var in dns (Daniele Belardi) #31794
  • [54c6219c0b] - benchmark: use let instead of var in common.js (Daniele Belardi) #31794
  • [b188b3c1ba] - benchmark: use const instead of var in async_hooks (Daniele Belardi) #31794
  • [05111c4377] - benchmark: add no-var rule in .eslintrc.yaml (Daniele Belardi) #31794
  • [34f05ced8d] - build: output dots instead of tap in GitHub actions (Michaël Zasso) #32714
  • [f9a2276548] - build: move doc versions JSON file out of out/doc (Richard Lau) #32728
  • [d7b526c446] - build: fix LINT_MD_NEWER assignment (Rich Trott) #32712
  • [809d42ccc1] - build: remove .txt files from .gitignore (Rich Trott) #32710
  • [a11e3ef912] - build: log detected compilers in --verbose mode (Richard Lau) #32715
  • [135f4b9a99] - build: use tabs for indentation in Makefile (Luigi Pinca) #32614
  • [655ff39a4c] - build: remove make lint on lint-py (himself65) #32599
  • [432e58fcf0] - build: disable -Wattributes warnings on aix (Ben Noordhuis) #32419
  • [eda165feb0] - build: drop Travis in favor of Actions (Matheus Marchini) #32450
  • [814d88a01a] - console: fixup error message (James M Snell) #32475
  • [2c32e59d8d] - crypto: clear openssl error stack after en/decrypt (Ben Noordhuis) #32248
  • [4874db72b3] - deps: fix zlib compilation for CPUs without SIMD features (Anna Henningsen) #32627
  • [8586838feb] - deps: update archs files for OpenSSL-1.1.1f (Hassaan Pasha) #32583
  • [3417cc5777] - deps: upgrade openssl sources to 1.1.1f (Hassaan Pasha) #32583
  • [f690fc93d6] - deps: update acorn to v7.1.1 (Ruben Bridgewater) #32310
  • [e0e73f6850] - dns: remove duplicate code (rickyes) #32664
  • [e14317a840] - (SEMVER-MINOR) dns: add dns.ALL hints flag constant (murgatroid99) #32183
  • [0a8e07599b] - doc: add link to code ide configs (Robert Nagy) #32767
  • [18b5e04e75] - doc: replace node-test-pull-request-lite-pipeline from onboarding (Juan José Arboleda) #32736
  • [66aafcf298] - doc: add useful v8 option section (Nimit) #32262
  • [9788b8438b] - doc: add himself65 to collaborators (himself65) #32734
  • [19deaa5ddf] - doc: clarify behavior of napi_get_typedarray_info (Michael Dawson) #32603
  • [f41660a5c2] - doc: remove optional parameter from markdown anchor link (Rich Trott) #32671
  • [6b32877f82] - doc: clarify listening event (Harshitha KP) #32581
  • [c1bb041202] - doc: update Ninja information in build guide (Adrian Estrada) #32629
  • [ba0ea79c82] - doc: correct version metadata for Readable.from (Dave Vandyke) #32639
  • [7ae8ce3320] - doc: make openssl commit messages be valid (Sam Roberts) #32602
  • 1e72605703] - doc: adjust paths in openssl maintenance guide (Hassaan Pasha) #32593
  • [5c70db48bd] - doc: clarify docs fs.watch exception may be emitted (Juan José Arboleda) #32513
  • [b567a63cc0] - doc: add unreachable code on events example (himself65) #32364
  • [0f1f572d28] - doc: clarify length param in buffer.write (Harshitha KP) #32119
  • [31b2cbb7e4] - doc: document that server.address() can return null (Thomas Watson Steen) #32519
  • [7f971b3fd9] - doc: return type of crypto.getFips() may change (Richard Lau) #32580
  • [cf4f188fd6] - doc: fix return type of crypto.getFips() (Richard Lau) #32580
  • [34074aa095] - doc: clarify requireManualDestroy option (Harshitha KP) #32514
  • [a1bb93ac7c] - doc: fix wordy sentence (Moni) #32567
  • [329635975b] - doc: add missing changes: entry for dns.ALL (Anna Henningsen) #32617
  • [1dee8c13a9] - doc: fix more links (Alba Mendez) #32586
  • [d513b55891] - doc: improve markdown link checker (Alba Mendez) #32586
  • [7d93a3fa7c] - doc: add flarna to collaborators (Gerhard Stoebich) #32620
  • [b6f71969a0] - doc: improve fs.read documentation (Hachimi Aa (Sfeir)) #29270
  • [f0a31e33a8] - doc: update releaser list in README.md (Myles Borins) #32577
  • [9ee2afa0f7] - doc: add ASAN build instructions (gengjiawen) #32436
  • [979fb155ff] - doc: update context-aware section of addon doc (Gabriel Schulhof) #28659
  • [b494053745] - doc: update AUTHORS list (Luigi Pinca) #32222
  • [6d4d299f4d] - doc: tests local links in markdown documents (Antoine du HAMEL) #32359
  • [002048ef9f] - doc: fix typo in http2 docs (Nitin Kumar) #32292
  • [02b0c9e469] - doc: fix typo in maintaining-zlib guide (Nitin Kumar) #32292
  • [6cdccc8f28] - doc: fix typo in maintaining-openssl guide (Nitin Kumar) #32292
  • [7d4ec42b3a] - doc: fix profile type of --heap-prof-name (Syohei YOSHIDA) #32404
  • [e7e3aeec34] - doc: use uppercase on windows path (himself65) #32294
  • [1b97d25a6c] - doc: rename cve_management_process.md to fit doc style guide (Ling Samuel) #32456
  • [1e27f66ce6] - doc: add missing changes: entry for mkdir (Anna Henningsen) #32490
  • [edee4ecade] - doc: add mildsunrise to collaborators (Alba Mendez) #32525
  • [7f0ed89892] - doc: add link to DNS definition (unknown) #32228
  • [394f8ca333] - doc,crypto: clarify oaepHash option's impact (Filip Skokan) #32340
  • [991aca329d] - (SEMVER-MINOR) fs: make parameters optional for readSync (Lucas Holmquist) #32460
  • [b8b8e82591] - fs: fix fs.read when passing null value (himself65) #32479
  • [30d55a3517] - (SEMVER-MINOR) fs: add fs.readv() (Sk Sajidul Kadir) #32356
  • [8770fd96a7] - fs: fixup error message for invalid options.recursive (James M Snell) #32472
  • [8597df48f7] - http: fix incorrect headersTimeout measurement (Alex R) #32329
  • [ff3615d5d9] - http: move free socket error handling to agent (Robert Nagy) #32003
  • [7c3c06224c] - http: don't emit 'readable' after 'close' (Robert Nagy) #32277
  • [bd9f4d2954] - http: increase default header size from 8KB to 16KB (unknown) #32520
  • [567b352062] - http: fixup options.method error message (James M Snell) #32471
  • [23e56ff21c] - lib: fix return type of setTimeout in net.Socket (龙腾道) #32722
  • [180e43711c] - lib: removes unnecessary params (Jesus Hernandez) #32694
  • [94251c463b] - lib: changed functional logic in cluster schedulers (Yash Ladha) #32505
  • [5740a70e5d] - lib: removed unused error code (Yash Ladha) #32481
  • [68608b2bdc] - lib: replace Array to ArrayIsArray by primordials (himself65) #32258
  • [537d2c1170] - module: expose exports conditions to loaders (Jan Krems) #31303
  • Bc7f819263] - module: path-only CJS exports extension searching (Guy Bedford) #32351
  • [3907de7d24] - (SEMVER-MINOR) n-api: detect deadlocks in thread-safe function (Gabriel Schulhof) #32689
  • [dd74601f96] - net: fix crash if POLLHUP is received (Santiago Gimeno) #32590
  • [3c8bf9022a] - net: wait for shutdown to complete before closing (Robert Nagy) #32491
  • [1a01ac3425] - perf_hooks: allow omitted parameters in 'performance.measure' (himself65) #32651
  • [8e00f0d2a2] - repl: fixup error message (James M Snell) #32474
  • [9b84103273] - report: fix stderr matching for fatal error (gengjiawen) #32699
  • [c09552063b] - report: add missing locks for report_on_fatalerror accessors (Anna Henningsen) #32535
  • [611dbf8d7f] - src: removes unused v8::Integer and v8::Array namespace (Jesus Hernandez) #32779
  • [c8a007f91e] - src: remove unused v8::TryCatch namespace (Juan José Arboleda) #32729
  • [ea1785597c] - src: remove duplicated code (himself65) #32719
  • [1763649c51] - src: sync access for report and openssl options (Sam Roberts) #32618
  • [246b789771] - src: refactor to avoid goto in node_file.cc (Tobias Nießen) #32637
  • [d77998096b] - src: munmap(2) upon class instance destructor (Gabriel Schulhof) #32570
  • [1fb4f9d922] - src: fix warnings on SPrintF (himself65) #32558
  • [3b5c4fbc7c] - src: replace goto with lambda in options parser (Tobias Nießen) #32635
  • [42a28d0214] - src: fix extra includes of "env.h" and "env-inl.h" (Nick Kreeger) #32293
  • [fcfde57806] - src: avoid using elevated v8 namespaces in node_perf.h (James M Snell) #32468
  • [9600332c53] - src: avoid using elevated v8 namespaces in node_errors.h (James M Snell) #32468
  • [62db9a0678] - src: minor http2 refactorings (James M Snell) #32551
  • [8f766e8397] - src: rename http2 class and suppress compile warnings (James M Snell) #32551
  • [afc6a25f42] - src: use smart pointers for nghttp2 objects (James M Snell) #32551
  • [4df3ac2a63] - src: remove loop_init_failed_ from Worker class (Anna Henningsen) #32562
  • [0faaa7c84c] - src: clean up worker thread creation code (Anna Henningsen) #32562
  • [f284d599bb] - src: move JSONWriter into its own file (Anna Henningsen) #32552
  • [e066584d94] - src: align PerformanceState class name with conventions (Anna Henningsen) #32539
  • [04237eca55] - src: handle report options on fatalerror (Sam Roberts) #32497
  • [5080491ae4] - src: refactoring and cleanup of node_i18n (James M Snell) #32438
  • [e2b08f0ea8] - src: remove unnecessary 'Local.As' operation (himself65) #32286
  • [928a49004e] - src: add test/abort build tasks (Christian Niederer) #31740
  • [9c901a5ef0] - src: add aliased-buffer-overflow abort test (Christian Niederer) #31740
  • [1e76bc67dd] - src: check for overflow when extending AliasedBufferBase (Christian Niederer) #31740
  • [c71736efd8] - src: unify Linux and FreeBSD large pages implem (Gabriel Schulhof) #32534
  • [06bff18fa8] - src: replace handle dereference with ContainerOf (Harshitha KP) #32298
  • [b973b938a2] - src: enhance template function 'MakeUtf8String' (himself65) #32322
  • [fbf0493b05] - src: fix compiler warnings in node_report_module (Daniel Bevenius) #32498
  • 1de9718b54] - src: remove excess v8 namespace (himself65) #32191
  • [09cd7449e2] - src: simplify large pages mapping code (Gabriel Schulhof) #32396
  • [778dcc8f1a] - src: clean v8 namespaces in env.cc file (Juan José Arboleda) #32374
  • [aa282276ec] - src: check for empty maybe local (Xavier Stouder) #32339
  • [13377a0f0f] - src: cleanup DestroyParam when Environment exits (Anna Henningsen) #32421
  • [055c5686ad] - src,test: add regression test for nested Worker termination (Anna Henningsen) #32623
  • [1c47bba607] - stream: complete pipeline with stdio (Robert Nagy) #32373
  • [cad768eb86] - stream: change var to let/const in stream files (Saajan) #32214
  • [bdb2df7e34] - test: replace console.log/error with debuglog (Agustin Daguerre) #32695
  • [756a049a1a] - test: make sure that inspector tests finish (Anna Henningsen) #32673
  • [a7a70fa986] - test: save test file in temporary directory (Luigi Pinca) #32670
  • [6d479588cb] - test: fix check error name on error instance (himself65) #32508
  • [9df274ad03] - Revert "test: mark empty udp tests flaky on OS X" (Luigi Pinca) #32489
  • [6d122429c1] - test: remove unused variables on async hook test (Julian Duque) #32630
  • [8c68dd4a11] - test: check that --expose-internals is disallowed in NODE_OPTIONS (Juan José Arboleda) #32554
  • [4ffa138c81] - test: refactor test-worker (himself65) #32509
  • [17b2526162] - test: add Worker initialization failure test case (Harshitha KP) #31929
  • [ed89863c6d] - test: fix tool path in test-doctool-versions.js (Richard Lau) #32645
  • [17a3dcea90] - test: copy addons .gitignore to test/abort/ (Anna Henningsen) #32624
  • [e501ba2146] - test: refactor test-http2-buffersize (Rich Trott) #32540
  • [cede0cb841] - test: skip crypto test on arm buildbots (Ben Noordhuis) #32636
  • [e01d061669] - test: replace console.error() with debuglog calls (Rich Trott) #32588
  • [a7b6a10e2a] - test: fix python-version selection with actions (Myles Borins) #32609
  • [93ff4ffca9] - test: add a missing common.mustCall (Harshitha KP) #32305
  • [30505d7c10] - test: remove unnecessary console.log() calls (Juan José Arboleda) #32541
  • [8f0c1069b9] - test: replace console.log() with debuglog() (Juan José Arboleda) #32550
  • [408437d7c6] - test: validate util.format when the value is 'Infinity' (Andrés M. Gómez) #32573
  • [2e015e5b5e] - test: fix fs test-fs-utimes strictEqual arg order (Ben Noordhuis) #32420
  • [edf35db27e] - test: replace flag expose_internals to expose-internals (Juan José Arboleda) #32542
  • [079a32e31c] - test: use common.mustCall in test-worker-esm-exit (himself65) #32544
  • [cca269c3a0] - test: use template strings in parallel tests (Daniel Estiven Rico Posada) #32549
  • [0e4ce8f50a] - test: add known issues test for #31733 (Ben Noordhuis) #31734
  • [28077a01cc] - test: mark test-http2-reset-flood flaky on bsd (Myles Borins) #32595
  • [ca2662012e] - test: add test-worker-prof to the SLOW list for debug (Myles Borins) #32589
  • [8bcbb8d7dd] - test: refactor test-http-information-processing (Rich Trott) #32547
  • [1fc19b0fb0] - test: fix a typo on test-fs-read-optional-params (himself65) #32461
  • [986a60544a] - test: skip a wasi test on IBMi PASE (Xu Meng) #32459
  • [73fec7cd00] - test: harden the tick sampling logic (Harshitha KP) #32190
  • [1905b9ecce] - test: als variant of test-timers-clearImmediate (Harshitha KP) #32303
  • [72983d2e4f] - test: skip some binding tests on IBMi PASE (Xu Meng) #31967
  • [02eea7773a] - test: revise test-http-response-multi-content-length (Rich Trott) #32526
  • [f179a223d7] - test: remove a duplicated test (himself65) #32453
  • [fbb51b9c41] - test: check bundled binaries are signed on macOS (Richard Lau) #32522
  • [36c6d22113] - test: unflake async-hooks/test-statwatcher (Bartosz Sosnowski) #32484
  • [b1e6f297cf] - test: use Promise.all() in test-cluster-net-listen-ipv6only-false (Rich Trott) #32398
  • [11d7cf155a] - test: replace Map with Array in test-cluster-net-listen-ipv6only-false (Rich Trott) #32398
  • [2f8f619c7e] - test: revise test-http-client-default-headers-exist (Rich Trott) #32493
  • [567e671bd2] - tools: update Boxstarter script and document (himself65) #32299
  • [97a3e2f0e2] - tools: update ESLint to 7.0.0-alpha.3 (Colin Ihrig) #32533
  • [ffdd82ba3f] - tools: only fetch previous versions when necessary (Richard Lau) #32518
  • [4e5271acfb] - tracing: do not attempt to call into JS when disallowed (Anna Henningsen) #32548
  • [0087eb1b98] - (SEMVER-MINOR) util: add maxStrLength option to inspect function (unknown) #32392
  • [848d81cf23] - util: only inspect error properties that are not visible otherwise (Ruben Bridgewater) #32327
  • [6d86651076] - util: fix inspecting document.all (Gus Caplan) #31938
  • [4f98b7178d] - wasi: clean up options validation (Denys Otrishko) #31797
  • [2ee684a7b9] - win,build: set exit_code on configure failure (Bartlomiej Brzozowski) #32205
  • [8cb5e41807] - (SEMVER-MINOR) worker: support MessagePort to workers data (Juan José Arboleda) #32278
  • [4acd7f4390] - worker: do not emit 'exit' events during process.exit() (Anna Henningsen) #32546
  • [833d78afcf] - worker: runtime error on pthread creation (Harshitha KP) #32344

New in Node.js 13.12.0 (Mar 27, 2020)

  • Notable Changes:
  • build:
  • macOS package notarization (Rod Vagg) #31459
  • deps:
  • upgrade npm to 6.14.4 (Ruy Adorno) #32495
  • update to uvwasi 0.0.6 (Colin Ihrig) #32309
  • upgrade to libuv 1.35.0 (Colin Ihrig) #32204
  • lib:
  • add --disable-proto option to cli (Gus Caplan) #32279
  • node_report:
  • move diagnostic reports to stable (Colin Ihrig) #32242
  • worker:
  • allow URL in Worker constructor (Antoine du HAMEL) #31664
  • util:
  • use a global symbol for util.promisify.custom (ExE Boss) #31672
  • Commits
  • [81183caa4c] - buildannotate markdown lint failures in pull requests (Richard Lau) #32391
  • [f8a020e636] - buildmacOS package notarization (Rod Vagg) #31459
  • [85bdb424c2] - Revert "buildadd asan check in Github action" (Matheus Marchini) #32324
  • [8ea5ffc033] - buildexpand ASAN acronym in configure help (Sam Roberts) #32325
  • [074c3c144f] - (SEMVER-MINOR) buildmake --without-report a no-op (Colin Ihrig) #32242
  • [96ad768dbc] - (SEMVER-MINOR) buildremove node_report option in node.gyp (Colin Ihrig) #32242
  • [2069c4e530] - builddisable libstdc++ debug containers globally (Ben Noordhuis) #30147
  • [79fdc6bea3] - cliallow --huge-max-old-generation-size in NODE_OPTIONS (Anna Henningsen) #32251
  • [deab08bc4e] - depsupgrade npm to 6.14.4 (Ruy Adorno) #32495
  • [6387cf88c2] - depsupdate term-size with signed version (Rod Vagg) #31459
  • [8201704231] - depsremove *.pyc files from deps/npm (Ben Noordhuis) #32387
  • [eef4721174] - depsupdate npm to 6.14.3 (Myles Borins) #32368
  • [fbdc4f59f7] - depsupgrade npm to 6.14.1 (Isaac Z. Schlueter) #31977
  • [d640426c8b] - depsupdate archs files for OpenSSL-1.1.1e (Hassaan Pasha) #32328
  • [d719f87ad6] - depsadjust openssl configuration for 1.1.1e (Hassaan Pasha) #32328
  • [3878d8dd2e] - depsupgrade openssl sources to 1.1.1e (Hassaan Pasha) #32328
  • [2cb9f7acb6] - depsupdate to ICU 66.1 (Steven R. Loomis) #32348
  • [e16964ed22] - depsminor ICU fixesmaint docs/tool, downloader (Steven R. Loomis) #32347
  • [3825afed74] - depsupgrade to c-ares v1.16.0 (Anna Henningsen) #32246
  • [7904ecd245] - depsupdate to uvwasi 0.0.6 (Colin Ihrig) #32309
  • [bee126131a] - depsupgrade to libuv 1.35.0 (Colin Ihrig) #32204
  • [ae90bccb70] - depsV8cherry-pick f9257802c1c0 (Matheus Marchini) #32180
  • [11ed1e6c86] - deps,docmove openssl maintenance guide to doc (Sam Roberts) #32209
  • [40a9289e53] - docremove extraneous sentence in events.md (Rich Trott) #32457
  • [6168bd5951] - docremove unnecessary "obvious(ly)" modifiers in esm.md (Rich Trott) #32457
  • [9fda9123b1] - doctrim wording in n-api.md text about exceptions (Rich Trott) #32457
  • [3e002c3977] - docupdate async_hooks.md (Victor) #32382
  • [6693b40bd5] - docsimplify and correct example descriptions in net.md (Rich Trott) #32451
  • [b5e4adfb49] - docadd new TSC members (Michael Dawson) #32473
  • [99a7636443] - docfix lint warning in doc/api/esm.md (Richard Lau) #32462
  • [dfcc3e8990] - docimprove wording in vm.md (Rich Trott) #32427
  • [bbea3f21ff] - docimprove wording in esm.md (Rich Trott) #32427
  • [4ca30303a7] - docimport clarifications with links to MDN (Eric Dobbertin) #31479
  • [471a5d8b82] - docadd note re term-size commit on top of npm (Rod Vagg) #32403
  • [99f260f42a] - docofficial macOS builds now on 10.15 + Xcode 11 (Rod Vagg) #31459
  • [569e555c2e] - docupdate security release process (Sam Roberts) #31679
  • [d2ce8e9c99] - docfix some 404 links (Thomas Watson Steen) #32200
  • [b8753466e5] - doccomplete n-api version matrix (Gabriel Schulhof) #32304
  • [2e1fb2b9af] - (SEMVER-MINOR) docupdate stability of report features (Colin Ihrig) #32242
  • [597bcb530a] - docupdate conditional exports recommendations (Guy Bedford) #32098
  • [5080734301] - docexpand fs.watch caveats (Bartosz Sosnowski) #32176
  • [19fee761ba] - docadd Ruben to TSC (Michael Dawson) #32213
  • [c72a678d0c] - docadd missing link for v13.11.0 changelog (Myles Borins) #32218
  • [cd388b25f6] - (SEMVER-MINOR) doc,lib,src,testmake --experimental-report a nop (Colin Ihrig) #32242
  • [71a2fa24da] - errorsdrop pronouns from ERR_WORKER_PATH message (Colin Ihrig) #32285
  • [3e9012a3da] - esmport loader code to JS (Anna Henningsen) #32201
  • [ef32069d0c] - httpdon't emit 'finish' after 'error' (Robert Nagy) #32276
  • [d2fea9fb4a] - http2rename counter in mapToHeaders inner loop (Mateusz Krawczuk) #32012
  • [36ba54e8e1] - libadd option to disable __proto__ (Gus Caplan) #32279
  • [435341a94f] - libuse spread operator on cluster (himself65) #32125
  • [cd0982ae7c] - libchange var to let/const (himself65) #32037
  • [397cbca720] - metamove inactive collaborators to emeriti (Rich Trott) #32151
  • [7356c43997] - moduleadd hook for global preload code (Jan Krems) #32068
  • [59a21e28d6] - n-apifix comment on expected N-API version (Michael Dawson) #32236
  • [1ecd407a71] - replalign preview with the actual executed code (Ruben Bridgewater) #32154
  • [28e298f219] - reporthandle on-fatalerror better (Harshitha KP) #32207
  • [94952b4ac8] - srcenhance C++ sprintf utility (himself65) #32385
  • [e9e12b8f36] - srcuse single ObjectTemplate for TextDecoder (Anna Henningsen) #32426
  • [6f06cf0bf4] - srcdelete BaseObjectWeakPtr data when pointee is gone (Anna Henningsen) #32393
  • [2bcf535a05] - srcsimplify IsolateData shortcut accesses (Anna Henningsen) #32407
  • [2fe351f6c3] - srcdelete CallbackInfo when cleared from cleanup hook (Anna Henningsen) #32405
  • [bd55a9a607] - srcavoid Isolate::GetCurrent() for platform implementation (Anna Henningsen) #32269
  • [11650c683e] - srcupdate comment for SetImmediate() (Anna Henningsen) #32300
  • [243d0d4716] - srcadd debug option to report large page stats (Gabriel Schulhof) #32331
  • [f873d87a7f] - srcprefer OnScopeLeave over shared_ptr<void> (Anna Henningsen) #32247
  • [1c4a112fcc] - srcclean up stream_base.h and stream-base-inl.h (James M Snell) #32307
  • [1476182670] - srchandle NULL env scenario (himself65) #32230
  • [1950c08ab1] - (SEMVER-MINOR) srcunconditionally include report feature (Colin Ihrig) #32242
  • [c00ce7b708] - srcfind .text section using dl_iterate_phdr (Gabriel Schulhof) #32244
  • [7fc5e6d37b] - srcfix warn_unused_result compiler warning (Colin Ihrig) #32241
  • [d497f268f2] - srcrefactor to more safe method (gengjiawen) #32087
  • [b5b7bf5ea4] - src,clisupport compact (one-line) JSON reports (Sam Roberts) #32254
  • [56da8dfd86] - streamemit 'pause' on unpipe (Robert Nagy) #32476
  • [b7a8878f0c] - streamfix pipeline with dest in objectMode (Robert Nagy) #32414
  • [0185e3a46c] - streamadd pipeline test for destroy of returned stream (Robert Nagy) #32425
  • [23ba0889ce] - streamdon't emit 'finish' after 'error' (Robert Nagy) #32275
  • [07e41311d0] - testrefactoring / cleanup on child-process tests (James M Snell) #32078
  • [2f73e6eee0] - testuse mustCall in place of countdown in timers test (Rich Trott) #32416
  • [76a7386eff] - testend tls connection with some data (Sam Roberts) #32328
  • [fcf9b46d55] - testdiscard data received by client (Hassaan Pasha) #32328
  • [2e287837f8] - testreplace countdown with Promise.all() in cluster-net-listen tests (Rich Trott) #32381
  • [bdcc11f167] - testreplace Map with Array in cluster-net-listen tests (Rich Trott) #32381
  • [4d173ea7d6] - testuv_tty_init returns EBADF on IBM i (Xu Meng) #32338
  • [05fd16048c] - testuse Promise.all() in test-hash-seed (Rich Trott) #32273
  • [76781bd16e] - (SEMVER-MINOR) testremove common.skipIfReportDisabled() (Colin Ihrig) #32242
  • [df1d4f708f] - testworkaround for V8 8.1 inspector pause issue (Matheus Marchini) #32234
  • [fbcf602823] - testmake test-memory-usage predictable (Matheus Marchini) #32239
  • [09ca76befa] - testverify that WASI errors are rethrown (Colin Ihrig) #32157
  • [fd80c21e9c] - testadd new scenario for async-local storage (Harshitha KP) #32082
  • [c0af3acc52] - testuse portable EOL (Harshitha KP) #32104
  • [ed83a1cc09] - testrefactor and simplify test-repl-preview (Ruben Bridgewater) #32154
  • [08edf53207] - testbuffer.write with longer string scenario (Harshitha KP) #32123
  • [2262e7c26d] - testfix test-tls-env-extra-ca-file-load (Eric Bickle) #32073
  • [dedd219622] - toolsfixup icutrim.py use of string and bytes objects (Jonathan MERCIER) #31659
  • [5adaf1092a] - toolsupdate [email protected] (Rich Trott) #32274
  • [963ce088fc] - toolsupdate to [email protected] (Rich Trott) #32259
  • [fa1fa3111a] - utiltext decoding allows SharedArrayBuffer (Bradley Farias) #32203
  • [53fd0d80b1] - (SEMVER-MINOR) utiluse a global symbol for util.promisify.custom (ExE Boss) #31672
  • [e83dcdef7e] - (SEMVER-MINOR) workerallow URL in Worker constructor (Antoine du HAMEL) #31664

New in Node.js 13.11.0 (Mar 12, 2020)

  • Notable Changes:
  • async_hooks: add sync enterWith to ALS (Stephen Belanger) #31945
  • cli: allow --jitless V8 flag in NODE_OPTIONS (Andrew Neitsch) #32100
  • fs: return first folder made by mkdir recursive (Benjamin Coe) #31530
  • n-api: define release 6 (Gabriel Schulhof) #32058
  • os: create a getter for kernel version (Juan José Arboleda) #31732
  • wasi: add returnOnExit option (Colin Ihrig) #32101
  • Commits:
  • [478f1e7e13] - async_hooks: avoid resource reuse by FileHandle (Gerhard Stoebich) #31972
  • [4d5981be96] - (SEMVER-MINOR) async_hooks: add sync enterWith to ALS (Stephen Belanger) #31945
  • [3befe80c4f] - async_hooks: fix ctx loss after nested ALS calls (Andrey Pechkurov) #32085
  • [ddb882439f] - benchmark: remove special test entries (Ruben Bridgewater) #31755
  • [5d92cec12d] - benchmark: add test and all options and improve errors" (Ruben Bridgewater) #31755
  • [e11f38cbab] - benchmark: refactor helper into a class (Ruben Bridgewater) #31755
  • [31ec44302a] - benchmark: remove problematic tls params (Brian White) #31816
  • [079bb31b29] - build: remove empty line on node.gyp file (Juan José Arboleda) #31952
  • [fe34da84de] - build: add mjs extension to lint-js (Nick Schonning) #32145
  • [d66daa5661] - build: support android build on ndk version equal or above 23 (forfun414) #31521
  • [3c06316679] - build: workaround for gclient python3 issues (Matheus Marchini) #32140
  • [64135249e5] - build: allow use of system-installed brotli (André Draszik) #32046
  • [f07d423d16] - build: allow passing multiple libs to pkg_config (André Draszik) #32046
  • [7c739aa386] - build: enable backtrace when V8 is built for PPC and S390x (Michaël Zasso) #32113
  • [e1347b411a] - cli: allow --jitless V8 flag in NODE_OPTIONS (Andrew Neitsch) #32100
  • [ce686c03ae] - crypto: optimize sign.update() and verify.update() (Ben Noordhuis) #31767
  • [a727b13343] - crypto: make update(buf, enc) ignore encoding (Ben Noordhuis) #31766
  • [893e9183b5] - doc: include the error type in the request.resolve doc (Joe Pea) #32152
  • [af73ed632c] - doc: clear up child_process command resolution (Denys Otrishko) #32091
  • [fa78aa4a60] - doc: clarify windows specific behaviour (Sam Roberts) #32079
  • [5bc51612b9] - doc: improve Buffer documentation (Anna Henningsen) #32086
  • [35bea0798e] - doc: add support encoding link on string_decoder.md (himself65) #31911
  • [3fa57ee0c2] - doc: add entry for AsyncHook class (Harshitha KP) #31865
  • [38329bd438] - doc: prevent tables from shrinking page (David Gilbertson) #31859
  • [bc1e3575d4] - doc: change worker.takeHeapSnapshot to getHeapSnapshot (Gerhard Stoebich) #32061
  • [7de4dfba79] - doc: remove personal pronoun usage in policy.md (Rich Trott) #32142
  • [618b389b6a] - doc: remove personal pronoun usage in fs.md (Rich Trott) #32142
  • [fa99fb2eac] - doc: remove personal pronoun usage in errors.md (Rich Trott) #32142
  • [2d39369ee5] - doc: remove personal pronoun usage in addons.md (Rich Trott) #32142
  • [02ebc81e94] - doc: revise tools/icu/README.md (Rich Trott) #32136
  • [50c5eb49ab] - doc: link setRawMode() from signal docs (Anna Henningsen) #32088
  • [97965f518c] - doc: document self-referencing a package name (Gil Tayar) #31680
  • [a79b8fa6f8] - doc: document fs.watchFile() bigint option (Colin Ihrig) #32128
  • [2e5f81f69c] - doc: fix broken links in benchmark README (Rich Trott) #32121
  • [50094de274] - doc: remove em dashes (Rich Trott) #32080
  • [5f12595e00] - doc: update email address in authors (Yael Hermon) #32026
  • [77e5b509a9] - doc,test: add server.timeout property to http2 public API (Andrey Pechkurov) #31693
  • [4c2e4d1747] - esm: remove unused parameter on module.instantiate (himself65) #32147
  • [55486bceb9] - events: fix removeListener for Symbols (zfx) #31847
  • [94f3eed229] - (SEMVER-MINOR) fs: make fs.read params optional (Lucas Holmquist) #31402
  • [7eed9d6bcc] - fs: fix WriteStream autoClose order (Robert Nagy) #31790
  • [ff58854dbe] - (SEMVER-MINOR) fs: return first folder made by mkdir recursive (Benjamin Coe) #31530
  • [1c4f4cc436] - fs: fix writeFile[Sync] for non-seekable files (Alba Mendez) #32006
  • [c106a857a9] - fs: fix valid id range on chown, lchown, fchown (himself65) #31694
  • [1ffa9f388f] - http: fix socket re-use races (Robert Nagy) #32000
  • [49a07f7932] - http, async_hooks: remove unneeded reference to wrapping resource (Gerhard Stoebich) #32054
  • [897b1d2e5e] - lib: move isLegalPort to validators, refactor (James M Snell) #31851
  • [607ac90906] - lib: improve value validation utils (Denys Otrishko) #31480
  • [c0ba6ec560] - meta: move thefourtheye to TSC Emeritus (Rich Trott) #32059
  • [710c9051e3] - n-api: define release 6 (Gabriel Schulhof) #32058
  • [e83671c3c4] - src: DRY crypto Update() methods (Ben Noordhuis) #31767
  • [025f658fa6] - src: fix spawnSync CHECK when SIGKILL fails (Ben Noordhuis) #31768
  • [2248ba760b] - src: fix missing extra ca in tls.rootCertificates (Eric Bickle) #32075
  • [fa376f420c] - src: fix -Wmaybe-uninitialized compiler warning (Ben Noordhuis) #31809
  • [c3aa3e70f0] - src: remove unused include from node_file.cc (Ben Noordhuis) #31809
  • [d8c927b5f1] - Revert "src: keep main-thread Isolate attached to platform during Dispose" (Anna Henningsen) #31853
  • [625d8f7007] - src: discard tasks posted to platform TaskRunner during shutdown (Anna Henningsen) #31853
  • [55a8ca8ee4] - src: elevate v8 namespace (RamanandPatil) #32041
  • [1e9a2516df] - src: use C++ style for struct with initializers (Sam Roberts) #32134
  • [6aa797b546] - src: implement per-process native Debug() printer (Joyee Cheung) #31884
  • [5127c700d0] - src: refactor debug category parsing (Joyee Cheung) #31884
  • [2388a40f56] - src: make aliased_buffer.h self-contained (Joyee Cheung) #31884
  • [258a80d3cc] - (SEMVER-MINOR) src: create a getter for kernel version (Juan José Arboleda) #31732
  • [cba75c5cf4] - src: handle NULL env scenario (Harshitha KP) #31899
  • [cc27846fb9] - src: simplify node_worker.cc using new KVStore API (Denys Otrishko) #31773
  • [296f35b888] - src: improve KVStore API (Denys Otrishko) #31773
  • [bd756883a7] - src: add missing namespace using statements in node_watchdog.h (legendecas) #32117
  • [e9f9d076e9] - src: fix -Wreorder compiler warning (Colin Ihrig) #32126
  • [7b9b578652] - src: fix -Winconsistent-missing-override warning (Colin Ihrig) #32126
  • [4ac1ce1071] - src: introduce node_sockaddr (James M Snell) #32070
  • [31e4a0d7ac] - src: Handle bad callback in asyc_wrap (Harshitha KP) #31946
  • [a03777096e] - src,http2: introduce node_http_common (James M Snell) #32069
  • [fab8c83253] - stream: avoid destroying writable source (Robert Nagy) #32198
  • [66fe2d90ff] - stream: avoid destroying http1 objects (Robert Nagy) #32197
  • [0a00552122] - stream: do not swallow errors with async iterators and pipeline (Matteo Collina) #32051
  • [f2636598e8] - stream: eos make const state const (Robert Nagy) #32031
  • [4b04bf89ad] - stream: re-use legacy destroyer (Robert Nagy) #31316
  • [7ce1cc93ce] - stream: simplify pipeline (Robert Nagy) #31316
  • [9d1b1a3fbd] - stream: simplify Writable.write (Robert Nagy) #31146
  • [1e05ddf406] - stream: improve writable.write() performance (Brian White) #31624
  • [90a4d438cb] - stream: combine properties using defineProperties (antsmartian) #31187
  • [4640ea24bd] - stream: don't destroy final readable stream in pipeline (Robert Nagy) #32110
  • [2585b814b0] - stream: add comments to pipeline implementation (Robert Nagy) #32042
  • [ceca1c3a4f] - test: improve test-fs-existssync-false.js (himself65) #31883
  • [84197eaae0] - test: mark test-timers-blocking-callback flaky on osx (Myles Borins) #32189
  • [4589863518] - test: always skip vm-timeout-escape-queuemicrotask (Denys Otrishko) #31980
  • [188f1d275f] - test: improve test-debug-usage (Rich Trott) #32141
  • [92cc406baf] - test: refactor all benchmark tests to use the new test option (Ruben Bridgewater) #31755
  • [6f9f2c5de4] - test: warn when inspector process crashes (Matheus Marchini) #32133
  • [6a9654a7a9] - test: increase test timeout to prevent flakiness (Ruben Bridgewater) #31716
  • [862cd2b49d] - test: use index.js if package.json "main" is empty (Ben Noordhuis) #32040
  • [3d64c9eba6] - test: changed function to arrow function (ProdipRoy89) #32045
  • [6545d1a55d] - test: allow EAI_FAIL in test-net-dns-error.js (Vita Batrla) #31780
  • [1428de8ee6] - test: add WASI test for path_link() (Colin Ihrig) #32132
  • [da7349d908] - test: remove superfluous checks in test-net-reconnect-error (Rich Trott) #32120
  • [74edcc5dd9] - test: apply camelCase in test-net-reconnect-error (Rich Trott) #32120
  • [8e435687bb] - test: update tests for larger Buffers (Jakob Kummerow) #32114
  • [83e9a3ea59] - test: add coverage for FSWatcher exception (Rich Trott) #32057
  • [89987b3a9f] - test: remove common.expectsInternalAssertion (Rich Trott) #32057
  • [35d0569356] - tools: enable no-useless-backreference lint rule (Colin Ihrig) #31400
  • [d3c4210ea0] - tools: enable default-case-last lint rule (Colin Ihrig) #31400
  • [814bb4a35d] - tools: update ESLint to 7.0.0-alpha.2 (Colin Ihrig) #31400
  • [cac1d01cad] - tools: update ESLint to 7.0.0-alpha.1 (Colin Ihrig) #31400
  • [c70cfd2ba6] - tools: update ESLint to 7.0.0-alpha.0 (Colin Ihrig) #31400
  • [bb41383bdc] - tools: use per-process native Debug() printer in mkcodecache (Joyee Cheung) #31884
  • [eaf6723804] - vm: refactor value validation with internal/validators.js (Denys Otrishko) #31480
  • [dd83bd266d] - (SEMVER-MINOR) wasi: add returnOnExit option (Colin Ihrig) #32101

New in Node.js 13.10.1 (Mar 5, 2020)

  • Notable Changes:
  • In Node.js 13.9.0 deps/zlib was switched to the chromium maintained implementation. This change
  • had the unforseen consequence of breaking building from the tarballs we release as we were too
  • aggressively removing unneccessary files from the deps/zlib folder. This release includes
  • a patch that ensures that individuals will once again be able to build Node.js from source.
  • Commits:
  • [723aa41d96] - build: fix zlib tarball generation (Shelley Vohr) #32094
  • [9c1ac50fc5] - build: fix building with ninja (Richard Lau) #32071
  • [478450d6b3] - build: add asan check in Github action (gengjiawen) #31902
  • [0fc45f80b5] - crypto: simplify exportKeyingMaterial (Tobias Nießen) #31922
  • [4dc59b91a7] - dgram: make UDPWrap more reusable (Anna Henningsen) #31871
  • [4ed720e940] - doc: visibility of Worker threads cli options (Harshitha KP) #31380
  • [2518213a1b] - doc: improve doc/markdown file organization coherence (ConorDavenport) #31792
  • [ba3f7ff94d] - doc: update stream.pipeline() signature (vsemozhetbyt) #31789
  • [3c8daa3aa0] - events: convert errorMonitor to a normal property (Gerhard Stoebich) #31848
  • [6b44df2415] - perf,src: add HistogramBase and internal/histogram.js (James M Snell) #31988
  • [6a9cea9ed2] - src: pass resource object along with InternalMakeCallback (Anna Henningsen) #32063
  • [70f046010c] - src: start the .text section with an asm symbol (Gabriel Schulhof) #31981
  • [755da035ce] - src: add node_crypto_common and refactor (James M Snell) #32016
  • [4d5318c164] - src: improve handling of internal field counting (James M Snell) #31960
  • [1539928ed9] - test: add GC test for disabled AsyncLocalStorage (Andrey Pechkurov) #31995
  • [be90817558] - test: remove common.port from test-tls-securepair-client (Rich Trott) #32024

New in Node.js 13.10.0 (Mar 4, 2020)

  • async_hooks:
  • introduce async-context API (vdeturckheim) #26540
  • stream:
  • support passing generator functions into pipeline() (Robert Nagy) #31223
  • tls:
  • expose SSL_export_keying_material (simon) #31814
  • vm:
  • implement vm.measureMemory() for per-context memory measurement (Joyee Cheung) #31824
  • Commits:
  • [f71fc9044a] - async_hooks: add store arg in AsyncLocalStorage (Andrey Pechkurov) #31930
  • [6af9e7e0c3] - async_hooks: executionAsyncResource matches in hooks (Gerhard Stoebich) #31821
  • [877ab97286] - (SEMVER-MINOR) async_hooks: introduce async-context API (vdeturckheim) #26540
  • [9a41ced0d1] - build: only lint markdown files that have changed (POSIX-only) (Rich Trott) #31923
  • [ca4407105e] - build: add missing comma in node.gyp (cjihrig) #31959
  • [4dffd0437d] - cli: --perf-prof only works on Linux (Shelley Vohr) #31892
  • [4d05508aa8] - crypto: turn impossible DH errors into assertions (Tobias Nießen) #31934
  • [d0e94fc77e] - crypto: fix ieee-p1363 for createVerify (Tobias Nießen) #31876
  • [fbaab7d854] - deps: openssl: cherry-pick 4dcb150ea30f (Adam Majer) #32002
  • [e6125cd53b] - deps: V8: backport f7771e5b0cc4 (Matheus Marchini) #31957
  • [c27f0d10c4] - deps: update zlib to upstream d7f3ca9 (Sam Roberts) #31800
  • [b30a6981d3] - deps: move zlib maintenance info to guides (Sam Roberts) #31800
  • [cd30dbb0d6] - doc: revise --zero-fill-buffers text in buffer.md (Rich Trott) #32019
  • [166579f84b] - doc: add link to sem-ver info (unknown) #31985
  • [e3258fd148] - doc: update zlib doc (James M Snell) #31665
  • [8516602ba0] - doc: clarify http2.connect authority details (James M Snell) #31828
  • [c5acf0a13b] - doc: updated YAML version representation in readline.md (Rich Trott) #31924
  • [4c6343fdea] - doc: describe how to update zlib (Sam Roberts) #31800
  • [a46839279f] - doc: update releases guide re pushing tags (Myles Borins) #31855
  • [15cc9b0126] - doc: update assert.rejects() docs with a validation function example (Eric Eastwood) #31271
  • [2046652b4e] - doc: fix anchor for ERR_TLS_INVALID_CONTEXT (Tobias Nießen) #31915
  • [091b4bfe2d] - doc: add note about ssh key to releases (Shelley Vohr) #31856
  • [3438937a37] - doc: fix notable changes for v13.9.0 (Shelley Vohr) #31857
  • [672f76d6bd] - doc: reword possessive form of Node.js in adding-new-napi-api.md (Rich Trott) #31748
  • [3eaf37767e] - doc: reword possessive form of Node.js in http.md (Rich Trott) #31748
  • [cb210e6b16] - doc: reword possessive form of Node.js in process.md (Rich Trott) #31748
  • [3969af43b4] - doc: reword possessive form of Node.js in debugger.md (Rich Trott) #31748
  • [f9526057b3] - doc: move gireeshpunathil to TSC emeritus (Gireesh Punathil) #31770
  • [b07175853f] - doc: pronouns for @Fishrock123 (Jeremiah Senkpiel) #31725
  • [7f4d6ee8ea] - doc: move @Fishrock123 to TSC Emeriti (Jeremiah Senkpiel) #31725
  • [b177bba555] - doc: move @Fishrock123 to a previous releaser (Jeremiah Senkpiel) #31725
  • [9e4aad705f] - doc: fix typos in doc/api/https.md (Jeff) #31793
  • [eb2dce8342] - doc: claim ABI version 82 for Electron 10 (Samuel Attard) #31778
  • [db291aaf06] - doc: guide - using valgrind to debug memory leaks (Michael Dawson) #31501
  • [aa16d80c05] - doc,crypto: re-document oaepLabel option (Ben Noordhuis) #31825
  • [9079bb42ea] - http2: make compat finished match http/1 (Robert Nagy) #24347
  • [3bd8feac0c] - meta: move aqrln to emeritus (Rich Trott) #31997
  • [c801045fcd] - meta: move jbergstroem to emeritus (Rich Trott) #31996
  • [ded3890bec] - meta: move maclover7 to Emeritus (Rich Trott) #31994
  • [91ce69a554] - meta: move Glen Keane to Collaborator Emeritus (Rich Trott) #31993
  • [b74c40eda6] - meta: move not-an-aardvark to emeritus (Rich Trott) #31928
  • [61a0d8b6cd] - meta: move julianduque to emeritus (Rich Trott) #31863
  • [94a471a422] - meta: move eljefedelrodeodeljefe to emeritus (Rich Trott) #31735
  • [9e3e6763fa] - module: port source map sort logic from chromium (bcoe) #31927
  • [b9f3bfe6c8] - module: disable conditional exports, self resolve warnings (Guy Bedford) #31845
  • [bbb6cc733c] - module: package "exports" error refinements (Guy Bedford) #31625
  • [6adbfac9b0] - repl: eager-evaluate input in parens (Shelley Vohr) #31943
  • [6a35b0d102] - src: don't run bootstrapper in CreateEnvironment (Shelley Vohr) #31910
  • [3497370d66] - src: move InternalCallbackScope to StartExecution (Shelley Vohr) #31944
  • [f62967c827] - src: enable StreamPipe for generic StreamBases (Anna Henningsen) #31869
  • [776f379124] - src: include large pages source unconditionally (Gabriel Schulhof) #31904
  • [9f68e14052] - src: elevate v8 namespaces (Harshitha KP) #31901
  • [8fa6373e62] - src: allow unique_ptrs with custom deleter in memory tracker (Anna Henningsen) #31870
  • [88ccb444e3] - src: move BaseObject subclass dtors/ctors out of node_crypto.h (Anna Henningsen) #31872
  • [98d262e5f3] - src: inform callback scopes about exceptions in HTTP parser (Anna Henningsen) #31801
  • [57302f866e] - src: prefer 3-argument Array::New() (Anna Henningsen) #31775
  • [8a2b62e4cd] - stream: ensure pipeline always destroys streams (Robert Nagy) #31940
  • [313ecaabe5] - stream: fix broken pipeline error propagation (Robert Nagy) #31835
  • [8ad64b8e53] - (SEMVER-MINOR) stream: support passing generator functions into pipeline() (Robert Nagy) #31223
  • [d0a00711f8] - stream: invoke buffered write callbacks on error (Robert Nagy) #30596
  • [1bca7b6c70] - test: move test-inspector-module to parallel (Rich Trott) #32025
  • [932563473c] - test: improve disable AsyncLocalStorage test (Andrey Pechkurov) #31998
  • [49864d161e] - test: fix flaky test-dns-any.js (Rich Trott) #32017
  • [38494746a6] - test: fix flaky test-gc-net-timeout (Robert Nagy) #31918
  • [b6d33f671a] - test: change test to not be sensitive to buffer send size (Rusty Conover) #31499
  • [cef5502055] - test: remove sequential/test-https-keep-alive-large-write.js (Rusty Conover) #31499
  • [f1e76488a7] - test: validate common property usage (Denys Otrishko) #31933
  • [ab8f060159] - test: fix usage of invalid common properties (Denys Otrishko) #31933
  • [49c959d636] - test: increase timeout in vm-timeout-escape-queuemicrotask (Denys Otrishko) #31966
  • [04eda02d87] - test: add documentation for common.enoughTestCpu (Rich Trott) #31931
  • [918c2b67cc] - test: fix typo in common/index.js (Rich Trott) #31931
  • [f89fb2751b] - test: mark empty udp tests flaky on OS X (Sam Roberts) #31936
  • [e08fef1fda] - test: add secp224k1 check in crypto-dh-stateless (Daniel Bevenius) #31715
  • [4fe9e043ef] - test: remove common.PORT from assorted pummel tests (Rich Trott) #31897
  • [7d5776e119] - test: remove flaky designation for test-net-connect-options-port (Rich Trott) #31841
  • [1933efa62f] - test: remove common.PORT from test-net-write-callbacks.js (Rich Trott) #31839
  • [87e9014764] - test: remove common.PORT from test-net-pause (Rich Trott) #31749
  • [3fbd5ab265] - test: remove common.PORT from test-tls-server-large-request (Rich Trott) #31749
  • [e76ac1d2c9] - test: remove common.PORT from test-net-throttle (Rich Trott) #31749
  • [724bf3105b] - test: remove common.PORT from test-net-timeout (Rich Trott) #31749
  • [60c71dcad2] - test: add known issue test for sync writable callback (James M Snell) #31756
  • [2c0b249098] - tls: reduce memory copying and number of BIO buffer allocations (Rusty Conover) #31499
  • [acb3aff674] - (SEMVER-MINOR) tls: expose SSL_export_keying_material (simon) #31814
  • [f293dcf6de] - tools: add NODE_TEST_NO_INTERNET to the doc builder (Joyee Cheung) #31849
  • [79b1f04b15] - tools: sync gyp code base with node-gyp repo (Michaël Zasso) #30563
  • [f858f2366c] - tools: update lint-md task to lint for possessives of Node.js (Rich Trott) #31862
  • [ae3929e958] - (SEMVER-MINOR) vm: implement vm.measureMemory() for per-context memory measurement (Joyee Cheung) #31824
  • [a86cb0e480] - vm: lazily initialize primordials for vm contexts (Joyee Cheung) #31738
  • [f2389eba99] - worker: emit runtime error on loop creation failure (Harshitha KP) #31621
  • [f87ac90849] - worker: unroll file extension regexp (Anna Henningsen) #31779

New in Node.js 13.9.0 (Feb 18, 2020)

  • Notable changes:
  • [6be51296e4] - (SEMVER-MINOR) async_hooks: add executionAsyncResource (Matteo Collina) #30959
  • [15b24b71ce] - doc: add ronag to collaborators (Robert Nagy) #31498
  • [1bcf2f9423] - report: add support for Workers (Anna Henningsen) #31386
  • [676b84a803] - (SEMVER-MINOR) test: skip keygen tests on arm systems (Tobias Nießen) #31178
  • [bf46c304dd] - (SEMVER-MINOR) crypto: add crypto.diffieHellman (Tobias Nießen) #31178
  • [0d3e095941] - (SEMVER-MINOR) crypto: add DH support to generateKeyPair (Tobias Nießen) #31178
  • [15bd2c9f0c] - (SEMVER-MINOR) crypto: simplify DH groups (Tobias Nießen) #31178
  • [572322fddf] - (SEMVER-MINOR) crypto: add key type 'dh' (Tobias Nießen) #31178

New in Node.js 13.8.0 (Feb 6, 2020)

  • 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.

New in Node.js 13.7.0 (Jan 21, 2020)

  • deps:
  • upgrade to libuv 1.34.1 (cjihrig) #31332
  • upgrade npm to 6.13.6 (Ruy Adorno) #31304
  • module:
  • add API for interacting with source maps (bcoe) #31132
  • loader getSource, getFormat, transform hooks (Geoffrey Booth) #30986
  • logical conditional exports ordering (Guy Bedford) #31008
  • unflag conditional exports (Guy Bedford) #31001
  • process:
  • allow monitoring uncaughtException (Gerhard Stoebich) #31257
  • Added new collaborators:
  • GeoffreyBooth - Geoffrey Booth. #31306
  • Commits:
  • 9d26358cfe] - async_hooks: remove internal only error checking (Anatoli Papirovski) #30967
  • 6e978f7d73] - benchmark: add default type in getstringwidth.js (Rich Trott) #31377
  • 317d2dba45] - benchmark: benchmarking impacts of async hooks on promises (legendecas) #31188
  • 55e2b4ee3b] - build: remove enable_vtune from vcbuild.bat (Richard Lau) #31338
  • f11406de43] - build: add vs2019 to vcbuild.bat help (Richard Lau) #31338
  • b2180d932a] - build: fix macos runner type in GitHub Action (????????) #31327
  • a6e1e9c6c3] - build: fix step name in GitHub Actions workflow (Richard Lau) #31323
  • 0379c319fd] - build: add GitHub actions to run linters (Richard Lau) #31323
  • a31eed0214] - build: silence OpenSSL Windows compiler warnings (Richard Lau) #31311
  • 6b118b44e8] - build: silence c-ares Windows compiler warnings (Richard Lau) #31311
  • 7a5d4fad84] - build: test Python 3 using GitHub Actions-based CI (cclauss) #29474
  • 964371824c] - build: avoid using CMP for BZ2File (SpaceRacet5w2A6l0I) #31198
  • 22859367ca] - child_process: remove unnecessary use of inner state (Chetan Karande) #29358
  • 6d6a3e4551] - deps: V8: cherry-pick d89f4ef1cd62 (Milad Farazmand) #31354
  • d62d06b3b7] - deps: V8: cherry-pick b9d33036e9a8 (Benjamin Coe) #31335
  • 51e4a5618b] - deps: upgrade to libuv 1.34.1 (cjihrig) #31332
  • 985f980053] - deps: upgrade npm to 6.13.6 (Ruy Adorno) #31304
  • 6f95f01f95] - deps: deactivate failing tests corresponding to experimental features (Ruben Bridgewater) #31289
  • aed00d7d68] - doc: add missing code formatting in vm.md (cjihrig) #31350
  • aedbfdb33a] - doc: standardize on "host name" in url.md (Rich Trott) #31326
  • 28245277d7] - doc: standardize on "host name" in tls.md (Rich Trott) #31326
  • baeabff896] - doc: standardize on "host name" in os.md (Rich Trott) #31326
  • 94122f611a] - doc: standardize on "host name" in net.md (Rich Trott) #31326
  • bac588e076] - doc: standardize on "host name" in https.md (Rich Trott) #31326
  • 600eb8b67c] - doc: standardize on "host name" in http2.md (Rich Trott) #31326
  • 47f71de786] - doc: standardize on "host name" in fs.md (Rich Trott) #31326
  • ece70a8288] - doc: standardize on "host name" in errors.md (Rich Trott) #31326
  • b8dee4540a] - doc: standardize on "host name" in dgram.md (Rich Trott) #31326
  • 8055f78995] - doc: standardize on "host name" in deprecations.md (Rich Trott) #31326
  • 6e9f0daad1] - doc: standardize on "host name" in async_hooks.md (Rich Trott) #31326
  • e1fd6ae4fa] - doc: fix a code example in crypto.md (himself65) #31313
  • bb9622ba5a] - doc: add an example for util.types.isExternal (Harshitha KP) #31173
  • 0608873052] - doc: fix example of parsing request.url (Egor Pavlov) #31302
  • b9aca7849d] - doc: document readline key bindings (Harshitha KP) #31256
  • 6184f1ab70] - doc: improve doc v8.getHeapSpaceStatistics() 'GetHeapSpaceStatistics' (dev-313) #31274
  • deff60024a] - doc: update README to make Node.js description clearer (carterbancroft) #31266
  • 8e14066578] - doc: fix a code example in zlib.md (Alexander Wang) #31264
  • 9c58aa4c75] - doc: add GeoffreyBooth to collaborators (Geoffrey Booth) #31306
  • de6f2be0d0] - doc: update description of External (Anna Henningsen) #31255
  • 0e48d8d855] - doc: rename iterator to iterable in examples (Robert Nagy) #31252
  • d51de787d9] - doc: fix stream async iterator sample (Robert Nagy) #31252
  • 3e7b3e3c18] - doc: correct filehandle.[read|write|append]File() (Bryan English) #31235
  • 220ea0c12e] - doc: prefer server vs srv and client vs clt (Andrew Hughes) #31224
  • c1333ea113] - doc: explain native external types (Harshitha KP) #31214
  • 82b447c399] - doc,src: clarify that one napi_env is per-module (legendecas) #31102
  • 4981f9721a] - errors: remove dead code in ERR_INVALID_ARG_TYPE (Gerhard Stoebich) #31322
  • b55fba2028] - fs: add missing HandleScope to FileHandle.close (Anna Henningsen) #31276
  • 57016b9e66] - fs: use async writeFile in FileHandle#appendFile (Bryan English) #31235
  • 52504fb91e] - http2: skip creating native ShutdownWrap (Anna Henningsen) #31283
  • 108046d910] - lib: replace BigInt64Array global by the primordials (Sebastien Ahkrin) #31193
  • 02714573ee] - lib: add Uint16Array primordials (Sebastien Ahkrin) #31210
  • 53e73fc60e] - lib: add RegExp primordials (Sebastien Ahkrin) #31208
  • f7833ac934] - lib: replace Float32Array global by the primordials (Sebastien Ahkrin) #31195
  • aafeab8cdb] - lib: replace BigUInt64Array global by the primordials (Sebastien Ahkrin) #31194
  • ac904f9e65] - lib,tools,test: remove custom number-isnan rule (cjihrig) #31211
  • cb27c2bd3e] - module: fix check exports issue in cjs module loading (Guy Bedford) #31427
  • ea27e16fc2] - (SEMVER-MINOR) module: unflag conditional exports (Guy Bedford) #31001
  • 4dced024fd] - (SEMVER-MINOR) module: add API for interacting with source maps (bcoe) #31132
  • f62fb7603a] - module: logical conditional exports ordering (Guy Bedford) #31008
  • 94af94ae73] - module: loader getSource, getFormat, transform hooks (Geoffrey Booth) #30986
  • c8aa08ed27] - n-api: return napi_invalid_arg on napi_create_bigint_words (legendecas) #31312
  • 0911813862] - (SEMVER-MINOR) n-api: add napi_get_all_property_names (himself65) #30006
  • 79eba6afa3] - (SEMVER-MINOR) process: allow monitoring uncaughtException (Gerhard Stoebich) #31257
  • 38811897c0] - readline: improve unicode support and tab completion (Ruben Bridgewater) #31288
  • f0506c3dd2] - readline: move charLengthLeft() and charLengthAt() (Ruben Bridgewater) #31112
  • 7ba21d0e15] - readline: improve getStringWidth() (Ruben Bridgewater) #31112
  • 686a3bcf92] - readline,repl: support tabs properly (Ruben Bridgewater) #31112
  • 2e54a9922e] - readline,repl: improve history up/previous (Ruben Bridgewater) #31112
  • cecd25693f] - readline,repl: skip history entries identical to the current line (Ruben Bridgewater) #31112
  • b6f4e01a0e] - readline,repl: add substring based history search (Ruben Bridgewater) #31112
  • 85926d4038] - repl: do not preview while pasting code (Ruben Bridgewater) #31315
  • c252356d38] - repl: fix preview cursor position (Ruben Bridgewater) #31293
  • b9b044b98e] - repl: change preview default in case of custom eval functions (Ruben Bridgewater) #31259
  • b92d65dbe7] - repl: activate previews for lines exceeding the terminal columns (Ruben Bridgewater) #31112
  • d84c394541] - repl: improve preview length calculation (Ruben Bridgewater) #31112
  • f8e805985e] - repl,readline: clean up code (Ruben Bridgewater) #31288
  • 83f7b5a8a9] - src: fix performance regression in node_file.cc (Ben Noordhuis) #31343
  • 6534c6c7bd] - src: use uv_guess_handle() to detect TTYs (cjihrig) #31333
  • 06fbc03cbd] - src: include uv.h in node_binding header (Shelley Vohr) #31265
  • e3491d7dd6] - src: change GetStringWidth's expand_emoji_sequence option default (Ruben Bridgewater) #31112
  • d2a10ad847] - src: improve GetColumnWidth performance (Ruben Bridgewater) #31112
  • d0a96ab700] - src: fix -Wbraced-scalar-init warning (cjihrig) #31254
  • 60942cc2a7] - src: add build Github Action (gengjiawen) #31153
  • 4259afe583] - src: remove node::InitializeV8Platform() (Ben Noordhuis) #31245
  • 6050236c3d] - src: remove uses of node::InitializeV8Platform() (Ben Noordhuis) #31245
  • 1ad907039d] - src: clean up large_pages code (Denys Otrishko) #31196
  • 499c41d78a] - stream: fix async iterator destroyed error propagation (Robert Nagy) #31314
  • d04118f125] - stream: simplify push (Robert Nagy) #31150
  • ff60a0e2b1] - stream: clean up definition using defineProperties (antsmartian) #31236
  • 9c98d25506] - stream: replace Function.prototype with primordial (Sebastien Ahkrin) #31204
  • 256289fe83] - stream: sync stream unpipe resume (Robert Nagy) #31191
  • 424408005f] - test: stricten readline keypress failure test condition (Ruben Bridgewater) #31300
  • 1df7961b28] - test: allow disabling crypto tests (Shelley Vohr) #31268
  • 3c82d5bed2] - test: add repl tests to verify unicode support in previews (Ruben Bridgewater) #31112
  • ca51ff8981] - test: fix recursive rm test to actually use tmpdir (Denys Otrishko) #31250
  • 0b88c3d8ed] - test: check that --insecure-http-parser works (Sam Roberts) #31253
  • 69c4f229cb] - test: remove unused symlink loop (cjihrig) #31267
  • d76deca9cf] - test: prefer server over srv (Andrew Hughes) #31224
  • f93095de6f] - test: fix unit test logging with python3 (Adam Majer) #31156
  • cbd84c5ee1] - test,module: add test for exports cjs loader check (Rich Trott) #31427
  • 5dd6fb1529] - tools: remove obsolete dependencies (Rich Trott) #31359
  • 29e0465104] - tools: update remark-preset-lint-node to 1.12.0 (Rich Trott) #31359
  • 49364b0835] - tools: update JSON header parsing for backticks (Rich Trott) #31294
  • d48f59224b] - tools: ensure consistent perms of signed release files (Rod Vagg) #29350
  • a5311bd757] - tools: add clang-tidy rule in src (gengjiawen) #26840
  • 63f4eaefee] - util: add todo comments for inspect to add unicode support (Ruben Bridgewater) #31112
  • 27564a4837] - (SEMVER-MINOR) vm: add code cache support for SourceTextModule (Gus Caplan) #31278
  • bdaac04c10] - wasi: improve use of primordials (cjihrig) #31212
  • 66fe92353b] - win: change to use Python in install tool (gengjiawen) #31221

New in Node.js 13.6.0 (Jan 8, 2020)

  • Notable Changes
  • assert:
  • Implement assert.match() and assert.doesNotMatch() (Ruben Bridgewater) #30929
  • events:
  • Add EventEmitter.on to async iterate over events (Matteo Collina) #27994
  • Allow monitoring error events (Gerhard Stoebich) #30932
  • fs:
  • Allow overriding fs for streams (Robert Nagy) #29083
  • perf_hooks:
  • Move perf_hooks out of experimental (legendecas) #31101
  • repl:
  • Implement ZSH-like reverse-i-search (Ruben Bridgewater) #31006
  • tls:
  • Add PSK (pre-shared key) support (Denys Otrishko) #23188
  • Commits
  • [d831dc1b77] - (SEMVER-MINOR) assert: implement assert.match() and assert.doesNotMatch() (Ruben Bridgewater) #30929
  • [f8aa365508] - assert: use for...of (Soar) #30983
  • [5fccb508e9] - benchmark: use let instead of var in dgram (dnlup) #31175
  • [827d3fea0e] - benchmark: add benchmark on async_hooks enabled http server (legendecas) #31100
  • [b193142e0a] - benchmark: use let instead of var in crypto (dnlup) #31135
  • [b8ccf30ac1] - benchmark: replace var with let/const in cluster benchmark (dnlup) #31042
  • [01fd3be84a] - benchmark: include writev in benchmark (Robert Nagy) #31066
  • [ca53f02767] - benchmark: use let instead of var in child_process (dnlup) #31043
  • [625744d292] - benchmark: add clear connections to secure-pair (Diego Lafuente) #27971
  • [0e864a383c] - benchmark: update manywrites back pressure (Robert Nagy) #30977
  • [37ffa8c2ae] - bootstrap: use different scripts to setup different configurations (Joyee Cheung) #30862
  • [4df365256f] - buffer: improve .from() error details (Ruben Bridgewater) #29675
  • [9b7cf090c7] - build: don't use -latomic on macOS (Ryan Schmidt) #30099
  • [d2ab877b72] - build: warn upon --use-largepages config option (Gabriel Schulhof) #31103
  • [ca05a5bb64] - build: switch realpath to pwd (bcoe) #31095
  • [d131877398] - build: fixes build for some os versions (David Carlier)
  • [baf8730a47] - build: re-introduce --use-largepages as no-op (Gabriel Schulhof)
  • [ca235112ae] - deps: V8: backport a4545db (David Carlier) #31127
  • [e2ef1a9e63] - deps: V8: bump v8_embedder_string for 0e21c1e (????????? ?????? ?????????) #31096
  • [2ec817e02d] - deps: uvwasi: cherry-pick 75b389c (cjihrig) #31076
  • [a5937c7b6c] - deps: uvwasi: cherry-pick 64e59d5 (cjihrig) #31076
  • [647f3c7639] - deps: V8: cherry-pick 687d865fe251 (????????? ?????? ?????????) #31007
  • [7fe8399e08] - deps: V8: cherry-pick d406bfd64653 (Sam Roberts) #30819
  • [7e13ae7757] - deps: V8: cherry-pick d3a1a5b6c491 (Michaël Zasso) #31005
  • [32805a9525] - deps,src,test: update to uvwasi 0.0.3 (cjihrig) #30980
  • [44d03e81d4] - dgram: test to add and to drop specific membership (A. Volgin) #31047
  • [21ef3d615e] - dgram: use for...of (Trivikram Kamat) #30999
  • [7b696fe9f4] - doc: remove extra backtick (cjihrig) #31186
  • [dba2ab75d9] - doc: use code markup/markdown in headers (Ruben Bridgewater) #31149
  • [cc44325eed] - doc: update REPL documentation to instantiate the REPL (Ruben Bridgewater) #30928
  • [d3a8088cd5] - doc: improve explanation of package.json "type" field (Ronald J Kimball) #27516
  • [33352c2433] - doc: clarify role of writable.cork() (Colin Grant) #30442
  • [b657a64b77] - doc: de-duplicate security release processes (Sam Roberts) #30996
  • [18b34def41] - doc: fix createDiffieHellman generator type (Tobias Nießen) #31121
  • [1fa8e49f7e] - doc: update mode type for mkdir() functions (cjihrig) #31115
  • [a37a88f40d] - doc: update mode type for process.umask() (cjihrig) #31115
  • [2313b9e33b] - doc: update mode type for fs open() functions (cjihrig) #31115
  • [53c6a1ee34] - doc: update mode type for fchmod() functions (cjihrig) #31115
  • [68557889d3] - doc: update parameter type for fsPromises.chmod() (cjihrig) #31115
  • [72d70d5102] - doc: improve dns introduction (Rich Trott) #31090
  • [4c29a6ee15] - doc: update parameter type for fs.chmod() (Santosh Yadav) #31085
  • [dcce8b68b2] - doc: use code markup/markdown in headers in globals documentation (Rich Trott) #31086
  • [7afe69cee0] - doc: use code markup/markdown in headers in deprecations documentation (Rich Trott) #31086
  • [ff828900f6] - doc: use code markup/markdown in headers in addons documentation (Rich Trott) #31086
  • [ce60a80944] - doc: allow <code> in header elements (Rich Trott) #31086
  • [1033760874] - doc: add --inspect-publish-uid man page entry (cjihrig) #31077
  • [23013e3e31] - doc: add --force-context-aware man page entry (cjihrig) #31077
  • [efc97fd927] - doc: add --enable-source-maps man page entry (cjihrig) #31077
  • [4292f64c27] - doc: fix anchors and subtitle in BUILDING.md (sutangu) #30296
  • [1357c97a70] - doc: standardize usage of hostname vs. host name (Rich Trott) #31073
  • [4caf4578fe] - doc: add unrepresented flags docs for configure (Pranshu Srivastava) #28069
  • [9141366e09] - doc: improve doc net:server.listen (dev-313) #31064
  • [69d6e9732b] - doc: implement minor improvements to BUILDING.md text (Rich Trott) #31070
  • [a7988ab0fa] - doc: avoid using v8::Persistent in addon docs (Anna Henningsen) #31018
  • [a3861147e5] - doc: clarify required flag for extensionless esm (Lucas Azzola) #30657
  • [cc8c0b4cde] - doc: reference worker threads on signal events (legendecas) #30990
  • [7815d5f2cb] - doc: update message.url example in http.IncomingMessage (Tadao Iseki) #30830
  • [118df63d9f] - doc,assert: use code markup/markdown in headers (Rich Trott) #31086
  • [32e5895a2f] - doc,async_hooks: use code markup/markdown in headers (Rich Trott) #31086
  • [0e0d45b02f] - doc,buffer: use code markup/markdown in headers (Rich Trott) #31086
  • [405bf8c8bb] - doc,child_process: use code markup/markdown in headers (Rich Trott) #31086
  • [27790fc76e] - doc,cluster: use code markup/markdown in headers (Rich Trott) #31086
  • [f8a6edaac6] - doc,console: use code markup/markdown in headers (Rich Trott) #31086
  • [df5ec4e7b1] - doc,crypto: use code markup/markdown in headers (Rich Trott) #31086
  • [4a42230fd7] - doc,dgram: use code markup/markdown in headers (Rich Trott) #31086
  • [9979f82716] - doc,dns: use code markup/markdown in headers (Rich Trott) #31086
  • [decfcaf89e] - doc,domain: use code markup/markdown in headers (Rich Trott) #31086
  • [665a662ad1] - doc,errors: use code markup/markdown in headers (Rich Trott) #31086
  • [fbb217a29d] - doc,esm: use code markup/markdown in headers (Rich Trott) #31086
  • [db01d0f947] - doc,events: use code markup/markdown in headers (Rich Trott) #31086
  • [e7f7e45ddb] - doc,fs: use code markup/markdown in headers (Rich Trott) #31086
  • [cdb79fc106] - doc,http: use code markup/markdown in headers (Rich Trott) #31086
  • [3062bcb13c] - doc,http2: use code markup/markdown in headers (Rich Trott) #31086
  • [3571df3115] - doc,https: use code markup/markdown in headers (Rich Trott) #31086
  • [699b31f8fe] - doc,inspector: use code markup/markdown in headers (Rich Trott) #31086
  • [d6f942003b] - doc,lib,src,test: rename WASI CLI flag (cjihrig) #30980
  • [7d25e44bc1] - doc,module: use code markup/markdown in headers (Rich Trott) #31086
  • [927b37f5a3] - doc,net: use code markup/markdown in headers (Rich Trott) #31086
  • [9de914687d] - doc,os: use code markup/markdown in headers (Rich Trott) #31086
  • [5921654eca] - doc,path: use code markup/markdown in headers (Rich Trott) #31086
  • [3ee3e6f5ff] - doc,perf_hooks: use code markup/markdown in headers (Rich Trott) #31086
  • [8c126527d9] - doc,process: use code markup/markdown in headers (Rich Trott) #31086
  • [f0bc62896a] - doc,punycode: use code markup/markdown in headers (Rich Trott) #31086
  • [125a59a0b0] - doc,querystring: use code markup/markdown in headers (Rich Trott) #31086
  • [128a69dde3] - doc,readline: use code markup/markdown in headers (Rich Trott) #31086
  • [38e09f8d17] - doc,repl: use code markup/markdown in headers (Rich Trott) #31086
  • [4c5a9854ec] - doc,stream: use code markup/markdown in headers (Rich Trott) #31086
  • [cf563bbd7f] - doc,string_decoder: use code markup/markdown in headers (Rich Trott) #31086
  • [450d9a27bf] - doc,timers: use code markup/markdown in headers (Rich Trott) #31086
  • [d6d507aa6c] - doc,tls: use code markup/markdown in headers (Rich Trott) #31086
  • [9d2082be94] - doc,tty: use code markup/markdown in headers (Rich Trott) #31086
  • [73c598a905] - doc,url: use code markup/markdown in headers (Rich Trott) #31086
  • [4672e106c1] - doc,util: use code markup/markdown in headers (Rich Trott) #31086
  • [342d3372ef] - doc,v8: use code markup/markdown in headers (Rich Trott) #31086
  • [e6fbde53b3] - doc,vm: use code markup/markdown in headers (Rich Trott) #31086
  • [796a9c0f43] - doc,vm,test: remove _sandbox_ from vm documentation (Rich Trott) #31057
  • [1bcc07b758] - doc,wasi: use code markup/markdown in headers (Rich Trott) #31086
  • [cb3c3fcb3f] - doc,worker: use code markup/markdown in headers (Rich Trott) #31086
  • [a6f16b3e78] - doc,zlib: use code markup/markdown in headers (Rich Trott) #31086
  • [1057a4cdf2] - errors: support prepareSourceMap with source-maps (bcoe) #31143
  • [33c5dbe197] - errors: improve ERR_INVALID_ARG_TYPE (Ruben Bridgewater) #29675
  • [a6c2502686] - esm: better error message for unsupported URL (Thomas) #31129
  • [24a021216d] - esm: empty ext from pkg type/main doesnt affect format (Bradley Farias) #31021
  • [afecc973d5] - (SEMVER-MINOR) events: add EventEmitter.on to async iterate over events (Matteo Collina) #27994
  • [f570de8ea9] - (SEMVER-MINOR) events: allow monitoring error events (Gerhard Stoebich) #30932
  • [4f32bbb816] - fs: use consistent defaults in sync stat functions (cjihrig) #31097
  • [7f6a0ed548] - (SEMVER-MINOR) fs: allow overriding fs for streams (Robert Nagy) #29083
  • [4a54f304a7] - http: http_outgoing rename var to let and const (telenord) #30284
  • [1b720aa802] - http: free listeners on free sockets (Robert Nagy) #29259
  • [b5a71a439d] - http2: set default enableConnectProtocol to 0 (ZYSzys) #31174
  • [b9160351ec] - http2: make HTTP2ServerResponse more streams compliant (Robert Nagy) #30964
  • [ba0682e91c] - http2: wait for session socket writable end on close/destroy (Denys Otrishko) #30854
  • [86f2e869dc] - http2: wait for session to finish writing before destroy (Denys Otrishko) #30854
  • [18acaccf0a] - https: prevent options object from being mutated (Vighnesh Raut) #31151
  • [42d36dca90] - lib: move initialization of APIs for changing process state (Anna Henningsen) #31172
  • [20ecb5dcfb] - lib: replace Map global by the primordials (Sebastien Ahkrin) #31155
  • [f268621ffa] - lib: replace use of Error with primordials (Sebastien Ahkrin) #31163
  • [3f21ad67f8] - lib: replace Set global by the primordials (Sebastien Ahkrin) #31154
  • [542aae4bf0] - lib: replace WeakSet global by the primordials (Sebastien Ahkrin) #31157
  • [0b8eaf2e5c] - lib: replace WeakMap global by the primordials (Sebastien Ahkrin) #31158
  • [1527796661] - lib: replace Set.prototype with SetPrototype primordial (Sebastien Ahkrin) #31161
  • [4b2d8df5b5] - lib: do not catch user errors (Ruben Bridgewater) #31159
  • [97ce0a3b47] - lib: replace var with let/const (kresimirfranin) #30394
  • [614b2c58f0] - lib: further simplify assertions in vm/module (Anna Henningsen) #30815
  • [a83d338102] - lib: improve spelling and grammar in comment (David Newman) #31026
  • [799b50934b] - meta: clarify scope of new nodejs.org issue choice (Derek Lewis) #31123
  • [72c64605c9] - module: unflag resolve self (Guy Bedford) #31002
  • [bd047e8277] - module: self resolve bug fix and esm ordering (Guy Bedford) #31009
  • [d7712213a4] - n-api: keep napi_env alive while it has finalizers (Anna Henningsen) #31140
  • [ae58c9709b] - perf_hooks: use for...of (Kamat, Trivikram) #31049
  • [dcbb97e2c3] - (SEMVER-MINOR) perf_hooks: move perf_hooks out of experimental (legendecas) #31101
  • [ffbf790358] - (SEMVER-MINOR) readline: set null as callback return in case there's no error (Ruben Bridgewater) #31006
  • [92dcf3e4ae] - (SEMVER-MINOR) readline: small refactoring (Ruben Bridgewater) #31006
  • [0999d53df0] - repl: use public getCursorPos() (cjihrig) #31091
  • [09ca8be1f2] - (SEMVER-MINOR) repl: implement reverse search (Ruben Bridgewater) #31006
  • [925dd8e7f9] - (SEMVER-MINOR) repl: fix preview of lines that exceed the terminal columns (Ruben Bridgewater) #31006
  • [892e7b0d7f] - src: suppress warning in src/node_env_var.cc (Harshitha KP) #31136
  • [2c6f81730b] - src: make large_pages node.cc include conditional (Denys Otrishko) #31078
  • [54caadc6ef] - src: enable stack trace printing for V8 check failures (Anna Henningsen) #31079
  • [60dd1838e9] - src: prevent hard coding stack trace limit (legendecas) #30752
  • [80732cdf9c] - src: port --bash-completion to C++ (Joyee Cheung) #25901
  • [49a7e73898] - src: make --use-largepages a runtime option (Gabriel Schulhof) #30954
  • [6b65cafacf] - src: list used functions on headers (Juan José Arboleda) #30827
  • [e5a41552e6] - src: fix compiler warning in env.cc (Anna Henningsen) #31020
  • [a27edd8335] - src,test: use v8::Global instead of v8::Persistent (Anna Henningsen) #31018
  • [5bf27729dd] - stream: group all properties using defineProperties (antsmartian) #31144
  • [ca22ce2698] - stream: pipeline should use req.abort() to destroy response (Robert Nagy) #31054
  • [bca23b9e16] - stream: reset flowing state if no 'readable' or 'data' listeners (Robert Nagy) #31036
  • [146321410c] - stream: simplify isBuf (Robert Nagy) #31067
  • [21d96645db] - test: change buffer offset to accommodate V8 BackingStore (Thang Tran) #31171
  • [bd6a29c60b] - test: use spread object (Fran Herrero) #30423
  • [efa0bd8e25] - test: refactor common.expectsError (Ruben Bridgewater) #31092
  • [16f60cedb3] - test: increase coverage for _http_incoming.js (Rich Trott) #31093
  • [990760e57f] - test: log errors in test-http2-propagate-session-destroy-code (Denys Otrishko) #31072
  • [e28e873fb6] - test: skip the unsupported test cases for IBM i (Xu Meng) #30819
  • [07e82db764] - test: get lib/wasi.js coverage to 100% (cjihrig) #31039
  • [e5980a106c] - test: cover vm with negative tests (Andrew Kuzmenko) #31028
  • [3c9e435f56] - test: unflake async hooks statwatcher test (Denys Otrishko) #30362
  • [dadccb7761] - test: fix common.enoughTestMem (Rich Trott) #31035
  • [93cf1231db] - test: fix long lines (cjihrig) #31014
  • [54c471a3bf] - test: fix flaky test-http2-client-upload (Gerhard Stoebich) #29889
  • [3753f47677] - test: use tmpdir.refresh() in test-esm-windows.js (Richard Lau) #30997
  • [d36ae62bd7] - test: remove obsolete WASI test (cjihrig) #30980
  • [fe4f55ee13] - timers: fix refresh for expired timers (Anatoli Papirovski) #27345
  • [83330a00a0] - timers: do less work in insert (Anatoli Papirovski) #27345
  • [7b2bf20f7e] - (SEMVER-MINOR) tls: add PSK support (Denys Otrishko) #23188
  • [c23bbc6fe2] - tools: remove prefer-common-expectserror lint rule (cjihrig) #31147
  • [85d152fccf] - tools: allow the travis commit message job to fail (Ruben Bridgewater) #31116
  • [048b7f469c] - tools: fix Raspbian armv7 build (Andrey Hohutkin) #31041
  • [c779421f41] - tools: update ESLint to 6.8.0 (cjihrig) #31044
  • [28a62c30be] - tools,src: forbid usage of v8::Persistent (Anna Henningsen) #31018
  • [697908e8d9] - util: improve prototype inspection using inspect() and showHidden (Ruben Bridgewater) #31113
  • [a6998085d2] - util: add (typed) array length to the default output (Ruben Bridgewater) #31027
  • [7611d5b47b] - util: add colors to debuglog() (Ruben Bridgewater) #30930
  • [614b074f3b] - wasi: refactor destructuring object on constructor (himself65) #31185
  • [8491e1c3c6] - wasi: fix serdes bugs from snapshot1 migration (cjihrig) #31122
  • [87f15c03bc] - wasi: throw on failed uvwasi_init() (cjihrig) #31076
  • [10f7169d58] - zlib: use for...of (Kamat, Trivikram) #31051
  • [31bbae7c92] - zlib: allow writes after readable 'end' to finish (Anna Henningsen) #31082

New in Node.js 13.5.0 (Dec 18, 2019)

  • Notable Changes
  • cli:
  • add --trace-exit cli option (legendecas) #30516
  • http,https:
  • increase server headers timeout (Tim Costa) #30071
  • readline:
  • update ansi-regex (Ruben Bridgewater) #30907
  • promote _getCursorPos to public api (Jeremy Albright) #30687
  • repl:
  • add completion preview (Ruben Bridgewater) #30907
  • util:
  • add Set and map size to inspect output (Ruben Bridgewater) #30225
  • wasi:
  • require CLI flag to require() wasi module (Colin Ihrig) #30963
  • Commits
  • e10917f8ba] - async_hooks: ensure proper handling in runInAsyncScope (Anatoli Papirovski) #30965
  • b6ddbc1291] - benchmark: use let/const instead of var in buffers (dnlup) #30945
  • 00cbf5b1b6] - build: auto-load ICU data from --with-icu-default-data-dir (Stephen Gallagher) #30825
  • 60225c171e] - build: fix missing x64 arch suffix in binary tar name (legendecas) #30877
  • 10a77d3cd1] - build,win: fix goto exit in vcbuild (João Reis) #30931
  • f371562e30] - build,win: support building MSI with VS2019 (João Reis) #30895
  • d8ce9a0e23] - (SEMVER-MINOR) cli: add --trace-exit cli option (legendecas) #30516
  • 30e2d28ac5] - cluster: remove unnecessary bind (Anatoli Papirovski) #28131
  • 4f3eca5d42] - console: unregister temporary error listener (Robert Nagy) #30852
  • a221017ee8] - crypto: cast oaepLabel to unsigned char* (Shelley Vohr) #30917
  • 3abcb69c3e] - doc: add note about fs.close() about undefined behavior (Robert Nagy) #30966
  • 13b5ace4db] - doc: explain napi_run_script (Tobias Nießen) #30918
  • 559284b20a] - doc: add "Be direct." to the style guide (Rich Trott) #30935
  • eb6443dc11] - doc: clarify expectations for PR commit messages (Derek Lewis) #30922
  • df5ae1a8ef] - doc: fix description of N-API exception handlers (Tobias Nießen) #30893
  • b53e2a84ec] - doc: improve doc writable streams: 'finish' event (dev-313) #30889
  • ad5b71525d] - fs: remove unnecessary bind (Anatoli Papirovski) #28131
  • 3bc9b09ce6] - http: use for...of in http library code (Trivikram Kamat) #30958
  • 7a756cb539] - http: remove unnecessary bind (Anatoli Papirovski) #28131
  • 172228047a] - http,https: increase server headers timeout (Tim Costa) #30071
  • 52aab47766] - http2: remove unnecessary bind from setImmediate (Anatoli Papirovski) #28131
  • 88731adff6] - lib: replace Symbol.species by SymbolSpecies (Sebastien Ahkrin) #30950
  • f51b5bd3dc] - lib: replace Symbol.hasInstance by SymbolHasInstance (Sebastien Ahkrin) #30948
  • 92475e998d] - lib: replace Symbol.asyncIterator by SymbolAsyncIterator (Sebastien Ahkrin) #30947
  • 19f05cab39] - lib: enforce use of Promise from primordials (Michaël Zasso) #30936
  • 698e0a2095] - lib: add TypedArray constructors to primordials (Sebastien Ahkrin) #30740
  • cbe29ce4cf] - lib: change var to let/const (rene.herrmann) #30910
  • 2430dd8ecb] - lib: use strict equality comparison (Donggeon Lim) #30898
  • 30d32492a0] - lib: refactor NativeModule (Joyee Cheung) #30856
  • a326309a74] - lib: replace Symbol.toPrimitive to SymbolToPrimitive primordials (Sebastien Ahkrin) #30905
  • 0d2172fb5d] - lib: update Symbol.toStringTag by SymbolToStringTag primordial (Sebastien Ahkrin) #30908
  • 4e67d38f42] - perf_hooks: remove unnecessary bind (Anatoli Papirovski) #28131
  • 510edead69] - process: refs --unhandled-rejections documentation in warning message (Antoine du HAMEL) #30564
  • 954793f363] - process: fix promise catching (Rongjian Zhang) #30957
  • 5b49ded22a] - (SEMVER-MINOR) readline: promote _getCursorPos to public api (Jeremy Albright) #30687
  • 424c37baba] - (SEMVER-MINOR) readline: update ansi-regex (Ruben Bridgewater) #30907
  • 02f3fe4b60] - (SEMVER-MINOR) repl: fix preview bug in case of long lines (Ruben Bridgewater) #30907
  • 6a3e79f953] - (SEMVER-MINOR) repl: add completion preview (Ruben Bridgewater) #30907
  • 1a8f828c17] - (SEMVER-MINOR) repl: improve completion (Ruben Bridgewater) #30907
  • 8b92223ed1] - (SEMVER-MINOR) repl: simplify code (Ruben Bridgewater) #30907
  • f7eeb8cc0b] - (SEMVER-MINOR) repl: simplify repl autocompletion (Ruben Bridgewater) #30907
  • d549daef18] - (SEMVER-MINOR) repl: remove dead code (Ruben Bridgewater) #30907
  • e11acc5a45] - repl: fix autocomplete when useGlobal is false (Michaël Zasso) #30883
  • 3906e145ca] - (SEMVER-MINOR) repl,readline: refactor for simplicity (Ruben Bridgewater) #30907
  • f6f298e3cf] - (SEMVER-MINOR) repl,readline: refactor common code (Ruben Bridgewater) #30907
  • d456aa0a57] - src: unregister Isolate with platform before disposing (Anna Henningsen) #30909
  • c43461ac56] - src: make debug_options getters public (Shelley Vohr) #30494
  • 5ca29d860b] - stream: use for...of (Trivikram Kamat) #30960
  • 0c18c49f0e] - stream: do not chunk strings and Buffer in Readable.from (Matteo Collina) #30912
  • 663a6b4938] - stream: make all streams error in a pipeline (Matteo Collina) #30869
  • 5e268b8dbe] - test: simplify test-wasi-start-validation.js (Colin Ihrig) #30972
  • c2d95529f6] - test: improve WASI start() coverage (Colin Ihrig) #30972
  • 72b4aee745] - test: improve test coverage in child_process (Juan José Arboleda) #26282
  • f30b771fd2] - (SEMVER-MINOR) test: add multiple repl preview tests (Ruben Bridgewater) #30907
  • 69aaab0e2c] - test: improve dns lookup coverage (Kirill Ponomarev) #30777
  • b6b917dda0] - test: avoid leftover report file (Gerhard Stoebich) #30925
  • 51d1a919bf] - test: add missing test flags (Colin Ihrig) #30971
  • 60485dcc8e] - test: add test for validation for wasi.start() argument (Rich Trott) #30919
  • 7a25c2c073] - test: improve assertion error message in test-debug-usage (Rich Trott) #30913
  • b7a0574d6f] - test: make test-os-checked-function work without test harness (Rich Trott) #30914
  • 7e6510bcfb] - test: delay loading 'os' in test/common module (Rich Trott) #30914
  • 956dec8b6b] - tls: for...of in _tls_common.js (Trivikram Kamat) #30961
  • b20ddde2f6] - tools: enable Markdown linter's usage information (Derek Lewis) #30216
  • f62a7679a3] - util: add Set and map size to inspect output (Ruben Bridgewater) #30225
  • f830a7dd73] - util: refactor inspect code for constistency (Ruben Bridgewater) #30225
  • 8dec909aa7] - (SEMVER-MINOR) util: inspect (user defined) prototype properties (Ruben Bridgewater) #30768
  • 453be95edc] - (SEMVER-MINOR) util: fix built-in detection (Ruben Bridgewater) #30768
  • 2b0e2c280f] - v8: use of TypedArray constructors from primordials (Sebastien Ahkrin) #30740
  • 54d51dbe4c] - wasi: require CLI flag to require() wasi module (Colin Ihrig) #30963

New in Node.js 13.4.0 (Dec 18, 2019)

  • Notable Changes:
  • deps
  • update npm to 6.13.4 #30904
  • update uvwasi (Anna Henningsen) #30745
  • upgrade to libuv 1.34.0 (Colin Ihrig) #30783
  • doc
  • docs deprecate http finished (Robert Nagy) #28679
  • events
  • add captureRejection option (Matteo Collina) #27867
  • http
  • add captureRejection support (Matteo Collina) #27867
  • llhttp opt-in insecure HTTP header parsing (Sam Roberts) #30567
  • http2
  • implement capture rection for 'request' and 'stream' events (Matteo Collina) #27867
  • net
  • implement capture rejections for 'connection' event (Matteo Collina) #27867
  • repl
  • support previews by eager evaluating input (Ruben Bridgewater) #30811
  • stream
  • add support for captureRejection option (Matteo Collina) #27867
  • tls
  • implement capture rejections for 'secureConnection' event (Matteo Collina) #27867
  • expose IETF name for current cipher suite (Sam Roberts) #30637
  • worker
  • add argv constructor option (legendecas) #30559
  • Commits
  • 1c4b2f15d9] - assert,util: stricter type comparison using deep equal comparisons (Ruben Bridgewater) #30764
  • 78eaf50693] - benchmark: improve --filter pattern matching (Matheus Marchini) #29987
  • ad4d52d1b5] - benchmark: add more util inspect and format benchmarks (Ruben Bridgewater) #30767
  • d90815d08e] - build: on Android, use android log library to print stack traces (Giovanni Campagna) #29388
  • d1c4fccde2] - build: fix library version and compile flags on Android (Giovanni Campagna) #29388
  • dfd3a4d6c1] - (SEMVER-MINOR) build: add flag to enable pointer compression (Matteo Collina) #30463
  • 3d05d4beea] - build: ease DragonFlyBSD build (David Carlier) #30201
  • 43e947a155] - build: remove (almost) unused macros/constants (Benjamin Coe) #30755
  • 0379fb65c1] - deps: update npm to 6.13.4 (Isaac Z. Schlueter) #30904
  • 13fe9f7cc8] - deps: update uvwasi (Anna Henningsen) #30745
  • ca47f72868] - (SEMVER-MINOR) deps: upgrade to libuv 1.34.0 (Colin Ihrig) #30783
  • 458860691c] - deps: fix OPENSSLDIR on Windows (Shigeki Ohtsu) #29456
  • b3ae532392] - doc: clarify build support text (Rich Trott) #30899
  • 8bf0da6c93] - doc: edit colorMode information (Rich Trott) #30887
  • df9df1883e] - doc: fix argument type of setAAD (Tobias Nießen) #30863
  • 9d1c793ceb] - doc: clarify Tier 2 implications in BUILDING.md (Rich Trott) #30866
  • 1cce00073e] - doc: add code example to inspector.url() method (Juan José Arboleda) #29496
  • 93ca4f4098] - doc: deprecate http finished (Robert Nagy) #28679
  • 0022d7544a] - doc: improve doc Http2Stream: FrameError, Timeout and Trailers (dev-313) #30373
  • 2123d53c28] - doc: include line/cursor in readline documentation (Jeremy Albright) #30667
  • 1baa6ab075] - doc: improve napi formatting (Ruben Bridgewater) #30772
  • 1d5c4e21de] - doc: add documentation about node_mksnapshot and mkcodecache (Joyee Cheung) #30773
  • 67823e8fc4] - doc: remove imprecise and redundant testing text (Rich Trott) #30763
  • 7cb84fdbe5] - doc: remove usage of "Node" in favor of "Node.js" (Rich Trott) #30758
  • 510eb3a6eb] - doc: revise addons introduction for brevity and clarity (Rich Trott) #30756
  • 543bf9d8ea] - doc: fix up N-API doc (NickNaso) #30656
  • 2c0f1edfd5] - doc: adds assert doc for strict mode with pointer to strict equality (Shobhit Chittora) #30486
  • 9428304d4a] - doc: Buffer.toString(): add note about invalid data (Jan-Philip Gehrcke) #30706
  • 8369562757] - doc: clarify text about using 'session' event for compatibility (Rich Trott) #30746
  • 145f881ff9] - doc: update status of Python 3 support (Michael Dawson) #30722
  • bbbba76f2c] - doc,benchmark: move benchmark guide to benchmark directory (Rich Trott) #30781
  • eb4f443a5a] - esm: make specifier flag clearly experimental (Myles Borins) #30678
  • 220a6001c6] - (SEMVER-MINOR) events: add captureRejection option (Matteo Collina) #27867
  • 6c07a72833] - fs: synchronize close with other I/O for streams (Anna Henningsen) #30837
  • 18758ef183] - fs: retry unlink operations in rimraf (Colin Ihrig) #30569
  • 5e98de1751] - fs: only operate on buffers in rimraf (Colin Ihrig) #30569
  • 7e1dee3347] - fs: reduce unnecessary sync rimraf retries (Colin Ihrig) #30785
  • 5523950b47] - fs: add synchronous retries to rimraf (Colin Ihrig) #30785
  • 60b1e1ad61] - fs: fix existsSync for invalid symlink at win32 (Rongjian Zhang) #30556
  • daca0780b1] - (SEMVER-MINOR) http: llhttp opt-in insecure HTTP header parsing (Sam Roberts) #30567
  • 334d4f6256] - (SEMVER-MINOR) http: add captureRejection support to OutgoingMessage (Matteo Collina) #27867
  • 33a6bf3a83] - (SEMVER-MINOR) http: implement capture rejections for 'request' event (Matteo Collina) #27867
  • 822fb00dbe] - http2: forward debug message in debugStreamObj (Denys Otrishko) #30840
  • d17ea8f584] - http2: track nghttp2-allocated memory in heap snapshot (Anna Henningsen) #30745
  • 8a9f57d0d5] - http2: use shared memory tracking implementation (Anna Henningsen) #30745
  • 71bb026e0c] - http2: streamline OnStreamRead streamline memory accounting (Denys Otrishko) #30351
  • 3840abed11] - http2: small clean up in OnStreamRead (Denys Otrishko) #30351
  • c3ac4c85a5] - (SEMVER-MINOR) http2: implement capture rection for 'request' and 'stream' events (Matteo Collina) #27867
  • d3f0dd2148] - inspector: do not access queueMicrotask from global (Michaël Zasso) #30732
  • 71c6d44efa] - lib: enforce use of BigInt from primordials (Michaël Zasso) #30882
  • 64ab5c9c84] - lib: replace Symbol.iterator by SymbolIterator (Sebastien Ahkrin) #30859
  • 39898a9db4] - lib: replace every Symbol.for by SymbolFor primordials (Sebastien Ahkrin) #30857
  • 0a34fcb086] - lib: replace var with let/const (jens-cappelle) #30384
  • af014170a7] - lib: replace Symbol global by the primordials Symbol (Sebastien Ahkrin) #30737
  • 2c439bb8ad] - lib: add parent to ERR_UNKNOWN_FILE_EXTENSION (qualitymanifest) #30728
  • d9d64754f9] - lib: add warning on dynamic import es modules (Juan José Arboleda) #30720
  • 325128e469] - lib: delay access to CLI option to pre-execution (Joyee Cheung) #30778
  • 94f237e5ac] - lib,test: improves ERR_REQUIRE_ESM message (Juan José Arboleda) #30694
  • e61f4ead93] - module: conditional exports import condition (Guy Bedford) #30799
  • 8e16093b64] - module: fix require in node repl (Yongsheng Zhang) #30835
  • d4aa656d57] - module: fix dynamic import from eval (Corey Farrell) #30624
  • a7ec78f34e] - module: fixup lint and test regressions (Guy Bedford) #30802
  • bd2f1270f7] - module: ignore resolution failures for inspect-brk (Maël Nison) #30336
  • 851f3135ab] - module: add warnings for experimental flags (Rongjian Zhang) #30617
  • 123327d4c1] - net: remove duplicate _undestroy (Robert Nagy) #30833
  • 4eecee089d] - (SEMVER-MINOR) net: implement capture rejections for 'connection' event (Matteo Collina) #27867
  • 2f1ae4f2bf] - readline: eagerly load string_decoder (Ruben Bridgewater) #30807
  • e551c169b8] - (SEMVER-MINOR) repl: support previews by eager evaluating input (Ruben Bridgewater) #30811
  • c440f3fa3d] - repl: use better uncaught exceptions indicator (Ruben Bridgewater) #29676
  • de368200f3] - src: accept single argument in getProxyDetails (Ruben Bridgewater) #30858
  • 60886036c9] - src: fix the false isatty() issue on IBMi (Xu Meng) #30829
  • 7ed867dddb] - src: improve checked uv loop close output (Anna Henningsen) #30814
  • 041daaa273] - src: port memory-tracking allocator from QUIC repo (Anna Henningsen) #30745
  • ccf0917aef] - src: don't use deprecated OpenSSL APIs (Rosen Penev) #30812
  • 8ad53ab2b7] - src: free preopen memory in WASI::New() (Colin Ihrig) #30809
  • e6e379ea41] - src: use checked allocations in WASI::New() (Colin Ihrig) #30809
  • 838ae10a9b] - src: delete redundant method in node_dir.h (gengjiawen) #30747
  • 66db8746c7] - src: remove redundant cast in node_dir.cc (gengjiawen) #30747
  • cb69ff47f6] - src: improve node_crypto.cc memory allocation (Priyanka Kore) #30751
  • b51b26ffef] - src: fix node_dir.cc memory allocation (Priyanka Kore) #30750
  • 89bc571490] - (SEMVER-MINOR) stream: add support for captureRejection option (Matteo Collina) #27867
  • 1b534d571a] - test: work around ENOTEMPTY when cleaning tmp dir (Ben Noordhuis) #30849
  • eb6e32c2fc] - test: disable colorMode in test-console-group (Rich Trott) #30886
  • 5f42b1fc6b] - test: assert: fix deepStrictEqual comparing a real array and fake array (Jordan Harband) #30743
  • ce21fc7154] - test: wait for stream close before writing to file (Anna Henningsen) #30836
  • cc4a6ed645] - test: use fs rimraf to refresh tmpdir (Colin Ihrig) #30569
  • 5ae3a858f7] - test: refactor test-accessor-properties (himself65) #29943
  • 97e0efeedf] - test: scale keepalive timeouts for slow machines (Ben Noordhuis) #30834
  • 305e45a041] - test: mark tests as flaky (João Reis) #30848
  • 4dc9d8db13] - test: mark addons/openssl-bindings/test flaky on arm (Richard Lau) #30838
  • 25e3696a07] - test: improve WASI options validation (Rich Trott) #30800
  • a574cb0ab9] - test: remove common.busyLoop() (Colin Ihrig) #30787
  • 3557659afb] - test: run more assert tests (Ruben Bridgewater) #30764
  • 5067463f3c] - test: use callback arguments in getconnections test (Rich Trott) #30775
  • 30756e36e7] - test: improve wasi test coverage (Rich Trott) #30770
  • fb31ab52c0] - test: simplify tmpdir import in wasi tests (Rich Trott) #30770
  • 55a270b583] - test: remove duplicate entries from root.status (Richard Lau) #30769
  • 54a266c878] - test: increase debugging information in subprocess test (Rich Trott) #30761
  • a0fa327365] - test: use block-scoping in test-net-server-address (Rich Trott) #30754
  • 9bd5c72104] - test: move test-child-process-fork-getconnections to parallel (Rich Trott) #30749
  • 50ab1fa013] - test: change common.PORT to arbitrary port (Rich Trott) #30749
  • 255cd7e572] - (SEMVER-MINOR) tls: expose IETF name for current cipher suite (Sam Roberts) #30637
  • 5ad3efbfb3] - (SEMVER-MINOR) tls: implement capture rejections for 'secureConnection' event (Matteo Collina) #27867
  • 5203ffb2f4] - tools: update link to google styleguide for cpplint (Daniel Bevenius) #30876
  • 1ed1a645f2] - tools: use CC instead of CXX when pointing to gcc (Milad Farazmand) #30817
  • 2b687af852] - tools: update remark-preset-lint-node to 1.11.0 (Rich Trott) #30789
  • 0cb7720dd8] - tools: update icu to 65.1 (Albert Wang) #30232
  • 7b9400ce63] - tools: update ESLint to 6.7.2 (Rich Trott) #30762
  • 5ab3ca4f96] - url: declare iterator inside loop (Trivikram Kamat) #30509
  • dc69cbeb05] - util: add internal sleep() function (Colin Ihrig) #30787
  • 3898b2387b] - util: never trigger any proxy traps using format() (Ruben Bridgewater) #30767
  • eeaeb51dcc] - util: improve performance inspecting proxies (Ruben Bridgewater) #30767
  • 608d720834] - (SEMVER-MINOR) util: add more predefined color codes to inspect.colors (Ruben Bridgewater) #30659
  • 77ffd5482d] - (SEMVER-MINOR) util: improve inspect's customInspect performance (Ruben Bridgewater) #30659
  • 14269d15cf] - wasi: use memory-tracking allocator (Anna Henningsen) #30745
  • 71d43a5569] - (SEMVER-MINOR) worker: add argv constructor option (legendecas) #30559

New in Node.js 13.3.0 (Dec 18, 2019)

  • Fs:
  • Reworked experimental recursive rmdir() (cjihrig) #30644
  • The maxBusyTries option is renamed to maxRetries, and its default is
  • Set to 0. The emfileWait option has been removed, and EMFILE errors use the same retry logic as other errors. The retryDelay option is now supported. ENFILE errors are now retried.
  • Http:
  • Make maximum header size configurable per-stream or per-server (Anna Henningsen) #30570
  • Http2:
  • Make maximum tolerated rejected streams configurable (Denys Otrishko) #30534
  • Allow to configure maximum tolerated invalid frames (Denys Otrishko) #30534
  • Wasi:
  • Introduce initial WASI support (cjihrig) #30258
  • Commits:
  • [4cd4e7c17a] - benchmark,doc,lib,test: prepare for padding lint rule (Rich Trott) #30696
  • [63eb4fee46] - buffer: fix 6-byte writeUIntBE() range check (Brian White) #30459
  • [e8af569200] - buffer: release buffers with free callbacks on env exit (Anna Henningsen) #30551
  • [648766bccf] - build: do not build mksnapshot and mkcodecache for --shared (Joyee Cheung) #30647
  • [6545314a4f] - build: add --without-node-code-cache configure option (Joyee Cheung) #30647
  • [80ada94cd3] - build: use Node.js instead of Node in configure (Tobias Nießen) #30642
  • [0aae502c67] - build,win: propagate error codes in vcbuild (João Reis) #30724
  • [6a53152b42] - build,win: add test-ci-native and test-ci-js (João Reis) #30724
  • [30a4f68a15] - child_process: document kill() return value (cjihrig) #30669
  • [dae36a9692] - child_process: replace var with let/const (dnlup) #30389
  • [4b13bca31a] - child_process: replace var with const/let in internal/child_process.js (Luis Camargo) #30414
  • [378c54fe97] - cluster: replace vars in child.js (EmaSuriano) #30383
  • [708e67a732] - cluster: replace var with let (Herrmann, Rene R. (656)) #30425
  • [55fbe45f69] - cluster: replace var by let in shared_handle.js (poutch) #30402
  • [4affc30a12] - crypto: automatically manage memory for ECDSA_SIG (Tobias Nießen) #30641
  • [55c2ac70b7] - crypto: remove redundant validateUint32 argument (Tobias Nießen) #30579
  • [0ba877a541] - deps: V8: cherry-pick 0dfd9ea51241 (bcoe) #30713
  • [b470354057] - deps: patch V8 to 7.9.317.25 (Myles Borins) #30679
  • [d257448bca] - deps: update llhttp to 2.0.1 (Fedor Indutny) #30553
  • [456d250d2d] - deps: V8: backport 93f189f19a03 (Michaël Zasso) #30681
  • [aa01ebdbca] - deps: V8: cherry-pick ca5b0ec (Anna Henningsen) #30708
  • [f37450f580] - dns: use length for building TXT string (Anna Henningsen) #30690
  • [3d302ff276] - doc: fix typographical error (Rich Trott) #30735
  • [19b31c1bc5] - doc: revise REPL uncaught exception text (Rich Trott) #30729
  • [61af1fcaa1] - doc: update signature algorithm in release doc (Myles Borins) #30673
  • [a8002d92ab] - doc: update README.md to fix active/maint times (Michael Dawson) #30707
  • [f46df0b496] - doc: update socket.bufferSize text (Rich Trott) #30723
  • [cbd50262c0] - doc: note that buf.buffer's contents might differ (AJ Jordan) #29651
  • [a25626c1ed] - doc: clarify IncomingMessage.destroy() description (Sam Foxman) #30255
  • [8fcb450934] - doc: fixed a typo in process.md (Harendra Singh) #30277
  • [ad9f737e44] - doc: documenting a bit more FreeBSD case (David Carlier) #30325
  • [40b762177f] - doc: add missing 'added' versions to module.builtinModules (Thomas Watson) #30562
  • [aca0119089] - doc: fix worker.resourceLimits indentation (Daniel Nalborczyk) #30663
  • [43e78578a6] - doc: fix worker.resourceLimits type (Daniel Nalborczyk) #30664
  • [20dbce17d5] - doc: avoid proposal syntax in code example (Alex Zherdev) #30685
  • [1e7c567734] - doc: address nits for src/README.md (Anna Henningsen) #30693
  • [87136c9bde] - doc: revise socket.connect() note (Rich Trott) #30691
  • [fcde49700c] - doc: remove "this API is unstable" note for v8 serdes API (bruce-one) #30631
  • [809a2b056b] - doc: fixup incorrect flag name reference (Guy Bedford) #30651
  • [3d978839c1] - doc: minor updates to releases.md (Beth Griggs) #30636
  • [e9f031c741] - doc: add 13 and 12 to previous versions (Andrew Hughes) #30590
  • [8ab18b6b6f] - doc: update AUTHORS list (Gus Caplan) #30672
  • [329a821d25] - doc: add explanation why keep var with for loop (Lucas Recknagel) #30380
  • [426ca263c8] - doc: document "Resume Build" limitation (Richard Lau) #30604
  • [00f7cc65a1] - doc: add note of caution about non-conforming streams (Robert Nagy) #29895
  • [7d98a59c39] - doc: add note about debugging worker_threads (Denys Otrishko) #30594
  • [8ef629a78a] - doc: simplify "is recommended" language in assert documentation (Rich Trott) #30558
  • [19d192d1f0] - doc: fix a typo in a date for version 13.2.0 (Kirlat) #30587
  • [b67759a93c] - doc,deps: document how to maintain ICU in Node.js (Steven R. Loomis) #30607
  • [bfcc9142f3] - doc,n-api: mark napi_detach_arraybuffer as experimental (legendecas) #30703
  • [365f0ab09b] - esm: data URLs should ignore unknown parameters (Bradley Farias) #30593
  • [0285aa0967] - events: improve performance caused by primordials (guzhizhou) #30577
  • [3475f9b82c] - fs: add ENFILE to rimraf retry logic (cjihrig) #30644
  • [f725953433] - fs: add retryDelay option to rimraf (cjihrig) #30644
  • [51bc379243] - fs: remove rimraf's emfileWait option (cjihrig) #30644
  • [612a3a2e6c] - fs: make rimraf default to 0 retries (cjihrig) #30644
  • [fa1f87b199] - fs: rename rimraf's maxBusyTries to maxRetries (cjihrig) #30644
  • [8ee27ffe77] - fs: change var to let (Àlvar Pérez) #30407
  • [850c2a72ea] - fs: cover fs.opendir ERR_INVALID_CALLBACK (Vladislav Botvin) #30307
  • [62574087ea] - (SEMVER-MINOR) http: make maximum header size configurable per-stream or per-server (Anna Henningsen) #30570
  • [1d1d136806] - http: set socket.server unconditionally (Anna Henningsen) #30571
  • [6848bfbf65] - http: replace var with let (Guilherme Goncalves) #30421
  • [8256d38349] - http: destructure primordials in lib/_http_server.js (Artem Maksimov) #30315
  • [3b169f1dbd] - http: improve performance caused by primordials (Lucas Recknagel) #30416
  • [6f313f9ab0] - http2: fix session memory accounting after pausing (Michael Lehenbauer) #30684
  • [7d37bcebea] - (SEMVER-MINOR) http2: make maximum tolerated rejected streams configurable (Denys Otrishko) #30534
  • [092a3c28aa] - (SEMVER-MINOR) http2: allow to configure maximum tolerated invalid frames (Denys Otrishko) #30534
  • [e92afd998f] - (SEMVER-MINOR) http2: replace direct array usage with struct for js_fields_ (Denys Otrishko) #30534
  • [30ef8e4cbd] - http2: change var to let compact.js (Maria Emmanouil) #30392
  • [1a2ed4a5f4] - http2: core.js replace var with let (Daniel Schuech) #30403
  • [f7ca7e6677] - http2: replace var with let/const (Paolo Ceschi Berrini) #30417
  • [6322611077] - inspector: properly shut down uv_async_t (Anna Henningsen) #30612
  • [de3a1c3019] - lib: enforce use of primordial Number (Sebastien Ahkrin) #30700
  • [5a9340d723] - lib: use static Number properties from primordials (Michaël Zasso) #30686
  • [892bde635e] - lib: enforce use of Boolean from primordials (Michaël Zasso) #30698
  • [ae2c7d0b02] - lib: replace Date.now function by primordial DateNow (Tchoupinax) #30689
  • [c09e3deac5] - lib: replace ArrayBuffer.isView by primordial ArrayBuffer (Vincent Dhennin) #30692
  • [5ef4dceb95] - lib: enforce use of Array from primordials (Michaël Zasso) #30635
  • [a4dfe3b7dc] - lib: flatten access to primordials (Michaël Zasso) #30610
  • [b545b91de5] - lib: use let instead of var (Shubham Chaturvedi) #30375
  • [5120926337] - lib: replace var with let/const (jens-cappelle) #30391
  • [b18b056d64] - lib: replace var w/ let (Chris Oyler) #30386
  • [3796885096] - lib: replace var with let/const (Tijl Claessens) #30390
  • [ffe3040659] - lib: adding perf notes js_stream_socket.js (ryan jarvinen) #30415
  • [797b938c49] - lib: replace var with let (Dennis Saenger) #30396
  • [0b64e45e41] - lib: main_thread_only change var to let (matijagaspar) #30398
  • [d024630f44] - lib: change var to let in stream_base_commons (Kyriakos Markakis) #30426
  • [3c041edbe7] - lib: use let instead of var (Semir Ajruli) #30424
  • [d277c375fd] - lib: changed var to let (Oliver Belaifa) #30427
  • [0fd89cc0f1] - lib: replace var with let/const (Dries Stelten) #30409
  • [bdba03e3ed] - lib: change var to let (Dimitris Ktistakis) #30408
  • [48fef42ca9] - lib: replace var with let/const (Tembrechts) #30404
  • 502173b54e] - lib: replace var to let in cli_table.js (Jing Lin) #30400
  • [2cf8a7f117] - module: fix specifier resolution algorithm (Rongjian Zhang) #30574
  • [be9788bf20] - n-api: detach external ArrayBuffers on env exit (Anna Henningsen) #30551
  • [8171cef921] - (SEMVER-MINOR) n-api: implement napi_is_detached_arraybuffer (Denys Otrishko) #30613
  • [cc5875b2e6] - n-api: add missed nullptr check in napi_has_own_property (Denys Otrishko) #30626
  • [017280e6e2] - net: replaced vars to lets and consts (nathias) #30401
  • [56248a827a] - process: replace var with let/const (Jesper Ek) #30382
  • [5c40b2f9ac] - process: replace vars in per_thread.js (EmaSuriano) #30385
  • [c50bbf58da] - readline: change var to let (dnlup) #30435
  • [b91d22cc8d] - repl: fix referrer for dynamic import (Corey Farrell) #30609
  • [4e5818a456] - repl: change var to let (Oliver Belaifa) #30428
  • [e65ad865c6] - src: change header file in node_stat_watcher.cc (Reza Fatahi) #29976
  • [be84ceefb8] - src: clean up node_file.h (Anna Henningsen) #30530
  • [bccfd124b0] - src: remove unused variable in node_dir.cc (gengjiawen) #30267
  • [fc11db18fe] - src: inline SetSNICallback (Anna Henningsen) #30548
  • [7bd587ef0c] - src: use BaseObjectPtr to store SNI context (Anna Henningsen) #30548
  • [8ec0d75de7] - src: cleanup unused headers (Alexandre Ferrando) #30328
  • [6c249c0982] - src: run native immediates during Environment cleanup (Anna Henningsen) #30666
  • [bea25016d1] - src: no SetImmediate from destructor in stream_pipe code (Anna Henningsen) #30666
  • [94357db815] - src: add more can_call_into_js() guards (Anna Henningsen) #30666
  • [d54432f974] - src: keep object alive in stream_pipe code (Anna Henningsen) #30666
  • [d194c0ff37] - src: replaced var with let (Aldo Ambrosioni) #30397
  • [44f28ea155] - src: fix -Wsign-compare warnings (cjihrig) #30565
  • [1916acb3cb] - src: fix signal handler crash on close (Shelley Vohr) #30582
  • [9e9e48bf7e] - src: use uv_async_t for WeakRefs (Anna Henningsen) #30616
  • [9d8d2e1f45] - src,doc: fix broken links (cjihrig) #30662
  • [f135c38796] - src,doc: add C++ internals documentation (Anna Henningsen) #30552
  • [e968e26dbd] - stream: improve performance for sync write finishes (Anna Henningsen) #30710
  • [49e047f7a1] - test: add coverage for ERR_TLS_INVALID_PROTOCOL_VERSION (Rich Trott) #30741
  • [81d81a5904] - test: add an indicator isIBMi (Xu Meng) #30714
  • [37c70ee198] - test: use arrow functions in async-hooks tests (garygsc) #30137
  • [b5c7dad95a] - test: fix test-benchmark-streams (Rich Trott) #30757
  • [1e199ceb71] - test: move test-http-max-http-headers to parallel (Rich Trott) #30712
  • [1918b4e84f] - test: correct header length subtraction (Rich Trott) #30712
  • [1222be81e3] - test: remove unused callback argument (Rich Trott) #30712
  • [d69b9b753a] - test: simplify forEach() usage (Rich Trott) #30712
  • [01ab031cca] - test: remove unused callback argument (Rich Trott) #30712
  • [93707c4916] - test: increase coverage for trace_events.js (Rich Trott) #30705
  • [4800b623ed] - test: use arrow functions in addons tests (garygsc) #30131
  • [ba0115fe6f] - test: refactor createHook test (Jeny) #30568
  • [099d3fdf87] - test: port worker + buffer test to N-API (Anna Henningsen) #30551
  • [83861fb333] - test: revert 6d022c1 (Anna Henningsen) #30708
  • [a3b758d634] - test: move test-https-server-consumed-timeout to parallel (Rich Trott) #30677
  • [00f532f15e] - test: remove unnecessary common.platformTimeout() call (Rich Trott) #30677
  • [ecb902f33c] - test: do not skip test-http-server-consumed-timeout (Rich Trott) #30677
  • [49458deb4f] - test: remove unused function argument from http test (Rich Trott) #30677
  • [a2f440d326] - test: add logging in case of infinite loop (Rich Trott) #30649
  • [3e3ad396bd] - test: remove destructuring from test-inspector-contexts (Rich Trott) #30649
  • [3571e132a7] - test: check for session.post() errors in test-insepctor-context (Rich Trott) #30649
  • [37696320a2] - test: add mustCall() to test-inspector-contexts (Rich Trott) #30649
  • [0972fa3c16] - test: add regression test for signal handler removal in exit (Anna Henningsen) #30589
  • [5ecfd947e2] - (SEMVER-MINOR) test: update and harden http2-reset-flood (Denys Otrishko) #30534
  • [70d6fa122a] - test: skip test-domain-error-types in debug mode temporariliy (Rich Trott) #30629
  • [949f2ad528] - test: move test-worker-prof to sequential (Rich Trott) #30628
  • [d4b61709f1] - test: dir class initialisation w/o handler (Dmitriy Kikinskiy) #30313
  • [60b17b4fe6] - test: change object assign by spread operator (poutch) #30438
  • [97e627335f] - test: use useful message argument in test function (Rich Trott) #30618
  • [d651c7dd6b] - test: test for minimum ICU version consistency (Richard Lau) #30608
  • [dade9069c3] - test: code&learn var to let update (Nazar Malyy) #30436
  • [e401e8c8ed] - test: change object assign to spread object (poutch) #30422
  • [2ecc735c48] - test: use spread instead of Object.assign (dnlup) #30419
  • [d8da9dacab] - test: changed var to let in module-errors (Jamar Torres) #30413
  • [9dab32f340] - test: use spread instead of object.assign (Shubham Chaturvedi) #30412
  • [7e7a8165a8] - test: replace var with let in pre_execution.js (Vladimir Adamic) #30411
  • [8a9ee48797] - test: change var to let in test-trace-events (Jon Church) #30406
  • [d6a448825c] - test: dns utils replace var (Osmond van Hemert) #30405
  • [01e0571e94] - test: test cover cases when trace is empty (telenord) #30311
  • [f8dfa2d704] - test: switch to object spread in common/benchmark.js (palmires) #30309
  • [36671f9bf8] - test: add common.mustCall() to stream test (Rich Trott) #30561
  • [106235fe91] - test: move explanatory comment to expected location in file (Rich Trott) #30561
  • [081b4e2496] - test: move stream test to parallel (Rich Trott) #30561
  • [103d01e057] - test: remove string literal as message in strictEqual() in stream test (Rich Trott) #30561
  • [ebba3228e2] - test: use arrow function for callback in stream test (Rich Trott) #30561
  • [e122d397c0] - test: replace setTimeout with setImmediate in stream test (Rich Trott) #30561
  • [20ee4997f3] - test: refactor test-dgram-multicast-set-interface-lo.js (Taylor Gagne) #30536
  • [7aa1df7076] - tls: introduce ERR_TLS_INVALID_CONTEXT (Rich Trott) #30718
  • [0b0f0237c1] - tls: add memory tracking support to SSLWrap (Anna Henningsen) #30548
  • [89e2c71b27] - tls: allow empty subject even with altNames defined (Jason Macgowan) #22906
  • [941a91daed] - tools: enforce blank line between functions (Rich Trott) #30696
  • [5a6f836a15] - tools: add unified plugin changing links for html docs (Marek Łabuz) #29946
  • [84f7b5c752] - tools: enable more eslint rules (cjihrig) #30598
  • [5522467cf5] - tools: update ESLint to 6.7.1 (cjihrig) #30598
  • [1f10681496] - tty: truecolor check moved before 256 check (Duncan Healy) #30474
  • [6a0dd1cbbd] - util: fix .format() not always calling toString when it should be (Ruben Bridgewater) #30343
  • [1040e7222f] - util: fix inspection of errors with tampered name or stack property (Ruben Bridgewater) #30576
  • [18e9b56bf6] - util: use let instead of var for util/inspect.js (Luciano) #30399
  • [9ec53cf5c1] - (SEMVER-MINOR) wasi: introduce initial WASI support (cjihrig) #30258

New in Node.js 13.2.0 (Dec 18, 2019)

  • Addons:
  • Deprecate one- and two-argument AtExit(). Use the three-argument variant of AtExit() or AddEnvironmentCleanupHook() instead (Anna Henningsen) #30227 child_process,cluster:
  • The serialization option is added that allows child process IPC to use the V8 serialization API (to e.g., pass through data types like sets or maps) (Anna Henningsen) #30162
  • Deps:
  • Update V8 to 7.9
  • Update npm to 6.13.1 (Ruy Adorno) #30271
  • Embedder:
  • Exposes the ability to pass cli flags / options through an API as embedder (Shelley Vohr) #30466
  • Allow adding linked bindings to Environment (Anna Henningsen) #30274
  • Esm:
  • Unflag --experimental-modules (Guy Bedford) #29866
  • Stream:
  • Add writable.writableCorked property (Robert Nagy) #29012
  • Worker:
  • Allow specifying resource limits (Anna Henningsen) #26628
  • V8:
  • The Serialization API is now stable (Anna Henningsen) #30234
  • Commits:
  • [b76c13ec86] - assert: replace var with let in lib/assert.js (PerfectPan) #30261
  • [7f49816e8a] - benchmark: use let instead of var in async_hooks (dnlup) #30470
  • [0130d2b6e0] - benchmark: use let instead of var in assert (dnlup) #30450
  • [9cae205f4d] - buffer: change var to let (Vladislav Botvin) #30292
  • [b5198cd3b0] - (SEMVER-MINOR) build: reset embedder string to "-node.0" (Michaël Zasso) #30513
  • [f4f210adc1] - build: store cache on timed out builds on Travis (Richard Lau) #30469
  • [277e5fadf8] - (SEMVER-MINOR) build,tools: update V8 gypfiles for V8 7.9 (Michaël Zasso) #30020
  • [e51beef8d4] - (SEMVER-MINOR) child_process,cluster: allow using V8 serialization API (Anna Henningsen) #30162
  • [6bf0e40bad] - cluster: destruct primordials in lib/internal/cluster/worker.js (peze) #30246
  • [18ec8a84be] - (SEMVER-MINOR) crypto: add support for IEEE-P1363 DSA signatures (Tobias Nießen) #29292
  • [39d0a25ddd] - crypto: fix key requirements in asymmetric cipher (Tobias Nießen) #30249
  • [8c2e2ce6bf] - crypto: update root certificates (AshCripps) #30195
  • [4f282f52f0] - deps: patch V8 to 7.9.317.23 (Myles Borins) #30560
  • [9b71534d23] - deps: upgrade npm to 6.13.1 (claudiahdz) #30533
  • [f17c794faf] - (SEMVER-MINOR) deps: patch V8 to be API/ABI compatible with 7.8 (from 7.9) (Michaël Zasso) #30513
  • [5a1ad570ea] - deps: V8: cherry-pick a7dffcd767be (Christian Clauss) #30218
  • [2c6cf902b0] - (SEMVER-MINOR) deps: V8: cherry-pick 50031fae736f (Michaël Zasso) #30020
  • [1e5e8c3922] - deps: V8: cherry-pick e5dbc95 (Gabriel Schulhof) #30130
  • [9c356ba91c] - (SEMVER-MINOR) deps: V8: backport 5e755c6ee6d3 (Michaël Zasso) #30020
  • [fe99841c88] - (SEMVER-MINOR) deps: V8: backport 07ee86a5a28b (Michaël Zasso) #30020
  • [5131bbe477] - (SEMVER-MINOR) deps: V8: cherry-pick 777fa98 (Michaël Zasso) #30020
  • [824e8b6f9b] - (SEMVER-MINOR) deps: V8: cherry-pick 7228ef8 (Michaël Zasso) #30020
  • [4c7acc256a] - (SEMVER-MINOR) deps: V8: cherry-pick 6b0a953 (Michaël Zasso) #30020
  • [ebef1b2308] - (SEMVER-MINOR) deps: V8: cherry-pick bba5f1f (Michaël Zasso) #30020
  • [28ca44c724] - (SEMVER-MINOR) deps: V8: cherry-pick cfe9172 (Michaël Zasso) #30020
  • [ba4abfd198] - (SEMVER-MINOR) deps: V8: cherry-pick 3e82c8d (Michaël Zasso) #30020
  • [2abdcbbe5e] - (SEMVER-MINOR) deps: V8: cherry-pick f2d92ec (Michaël Zasso) #30020
  • [46383616e3] - (SEMVER-MINOR) deps: make v8.h compatible with VS2015 (Joao Reis) #30020
  • [5bc35732aa] - (SEMVER-MINOR) deps: V8: forward declaration of Rtl*FunctionTable (Refael Ackermann) #27375
  • [627a804627] - (SEMVER-MINOR) deps: V8: patch register-arm64.h (Refael Ackermann) #27375
  • [13e6b0b82a] - (SEMVER-MINOR) deps: update V8's postmortem script (Colin Ihrig) #30020
  • [a4a6565348] - (SEMVER-MINOR) deps: update V8's postmortem script (Colin Ihrig) #29694
  • [4182e3bad7] - (SEMVER-MINOR) deps: patch V8 to run on older XCode versions (Ujjwal Sharma) #29694
  • [6566c15157] - (SEMVER-MINOR) deps: V8: silence irrelevant warnings (Michaël Zasso) #26685
  • [6018db2ef9] - (SEMVER-MINOR) deps: V8: un-cherry-pick bd019bd (Refael Ackermann) #26685
  • [605cb9f0fc] - (SEMVER-MINOR) deps: update V8 to 7.9.317.22 (Michaël Zasso) #30513
  • [b82f63d9ca] - deps: update nghttp2 to 1.40.0 (gengjiawen) #30493
  • [401d2e9115] - deps: update npm to 6.13.0 (Ruy Adorno) #30271
  • [f8ee70c94d] - dgram: remove listeners on bind error (Anna Henningsen) #30210
  • [0433d7995a] - dgram: reset bind state before emitting error (Anna Henningsen) #30210
  • [0f8662d615] - dns: switch var to const/let (Dmitriy Kikinskiy) #30302
  • [ab887bd5f6] - doc: add mention for using promisify on class methods (Denys Otrishko) #30355
  • [9940116aba] - doc: explain GIT_REMOTE_REF in COLLABORATOR_GUIDE (Denys Otrishko) #30371
  • [027bde563d] - doc: fix overriding of prefix option (Luigi Pinca) #30518
  • [b7757533bc] - doc: update http.md mention of socket (Jesse O'Connor) #30155
  • [7f664e454b] - doc: adds NO_COLOR to assert doc page (Shobhit Chittora) #30483
  • [fba2f9a3d6] - doc: document timed out Travis CI builds (Richard Lau) #30469
  • [c40e242b32] - doc: replace const / var with let (Duncan Healy) #30446
  • [a93345b7cd] - doc: update outdated commonjs compat info (Geoffrey Booth) #30512
  • [b590533253] - doc: esm: improve dual package hazard docs (Geoffrey Booth) #30345
  • [d631a0a3e4] - doc: update 8.x to 10.x in backporting guide (garygsc) #30481
  • [7e603bed52] - doc: createRequire can take import.meta.url directly (Geoffrey Booth) #30495
  • [e4a296ce8d] - doc: add entry to url.parse() changes metadata (Luigi Pinca) #30348
  • [64cf00b0b9] - doc: simplify text in pull-requests.md (Rich Trott) #30458
  • [1e2672012f] - doc: remove "multiple variants" from BUILDING.md (Rich Trott) #30366
  • [2d16a74ff9] - doc: remove "maintenance is supported by" text in BUILDING.md (Rich Trott) #30365
  • [c832565290] - doc: add lookup to http.request() options (Luigi Pinca) #30353
  • [b8afe57e85] - doc: fix up N-API doc (Michael Dawson) #30254
  • [b558d941bd] - doc: fix some recent doc nits (vsemozhetbyt) #30341
  • [1133981eac] - doc: add link to node-code-ide-configs in testing (Trivikram Kamat) #24012
  • [041f3a306e] - doc: update divergent specifier hazard guidance (Geoffrey Booth) #30051
  • [085af30361] - doc: include --experimental-resolve-self in manpage (Guy Bedford) #29978
  • [31a3b724f0] - doc: update GOVERNANCE.md (Rich Trott) #30259
  • [15a7032d44] - doc: move inactive Collaborators to emeriti (Rich Trott) #30243
  • [fabc489dba] - doc: update examples in writing-tests.md (garygsc) #30126
  • [1836eae7a6] - doc, console: remove non-existant methods from docs (Simon Schick) #30346
  • [7ad2e024dd] - doc,meta: allow Travis results for doc/comment changes (Rich Trott) #30330
  • [2deea28070] - doc,meta: remove wait period for npm pull requests (Rich Trott) #30329
  • [7e0f90e286] - domain: rename var to let and const (Maria Stogova) #30312
  • [c2c74fc93e] - encoding: make TextDecoder handle BOM correctly (Anna Henningsen) #30132
  • [f9eab48dd0] - esm: disable non-js exts outside package scopes (Guy Bedford) #30501
  • [3d8cdf191d] - esm: unflag --experimental-modules (Guy Bedford) #29866
  • [293e8a2384] - esm: exit the process with an error if loader has an issue (Michaël Zasso) #30219
  • [45fd44c6ec] - fs: change var to let (Nadya) #30318
  • [bb6f944607] - fs: add noop stub for FSWatcher.prototype.start (Lucas Holmquist) #30160
  • [4fe62c1620] - http: revise _http_server.js (telenord) #30279
  • [62e15a793a] - http: outgoing cork (Robert Nagy) #29053
  • 50f9476a44] - http: http_common rename var to let and const (telenord) #30288
  • [b8aceace95] - http: http_incoming rename var to let and const (telenord) #30285
  • [a37ade8648] - http: replace vars with lets and consts in lib/_http_agent.js (palmires) #30301
  • [e59cc8aad8] - http,async_hooks: keep resource object alive from socket (Anna Henningsen) #30196
  • [1b84175924] - http2: remove duplicated assertIsObject (Yongsheng Zhang) #30541
  • [666588143e] - http2: use custom BaseObject smart pointers (Anna Henningsen) #30374
  • [f25b00aaca] - (SEMVER-MINOR) https: add client support for TLS keylog events (Sam Roberts) #30053
  • [88da3af6f6] - https: change var to let in lib/https.js (galina.prokofeva) #30320
  • [f15a3b0281] - lib: replace var with let (David OLIVIER) #30381
  • [31a63ab1ec] - lib: replace var with let and const in readline.js (VinceOPS) #30377
  • [3eeeea419d] - lib: change var to let/const in internal/querystring.js (Artem Maksimov) #30286
  • [f10608655b] - lib: change var to let in internal/streams (Kyriakos Markakis) #30430
  • [3ce6e15844] - lib: replace var with let/const (Kenza Houmani) #30440
  • [d37d340472] - lib: change var to let in string_decoder (mkdorff) #30393
  • [9a1c16eda4] - lib: replaced var to let in lib/v8.js (Vadim Gorbachev) #30305
  • [3e4a6a5968] - lib: change var to let in lib/_stream_duplex.js (Ilia Safronov) #30297
  • [c7c566023f] - module: reduce circular dependency of internal/modules/cjs/loader (Joyee Cheung) #30349
  • [e98d89cef9] - module: conditional exports with flagged conditions (Guy Bedford) #29978
  • [caedcd9ef9] - module: fix for empty object in InternalModuleReadJSON (Guy Bedford) #30256
  • [66e1adf200] - net: destructure primordials (Guilherme Goncalves) #30447
  • [9230ffffd0] - net: replaced vars to lets and consts (alexahdp) #30287
  • [9248c8b960] - path: replace var with let in lib/path.js (peze) #30260
  • [e363f8e17f] - process: add coverage tests for sourceMapFromDataUrl method (Nolik) #30319
  • [7b4187413e] - process: make source map getter resistant against prototype tampering (Anna Henningsen) #30228
  • [183464a24d] - querystring: replace var with let/const (Raoul Jaeckel) #30429
  • [7188b9599d] - src: fix -Winconsistent-missing-override warning (Colin Ihrig) #30549
  • [966404fd24] - src: add file name to 'Module did not self-register' error (Jeremy Apthorp) #30125
  • [21dd6019ec] - (SEMVER-MINOR) src: expose ArrayBuffer version of Buffer::New() (Anna Henningsen) #30476
  • [2e43686c5a] - src: mark ArrayBuffers with free callbacks as untransferable (Anna Henningsen) #30475
  • [564c18e214] - src: remove HandleWrap instances from list once closed (Anna Henningsen) #30374
  • [4222f2400a] - src: remove keep alive option from SetImmediate() (Anna Henningsen) #30374
  • [940a2972b2] - src: use BaseObjectPtr for keeping channel alive in dns bindings (Anna Henningsen) #30374
  • [a2dbadc1ce] - src: introduce custom smart pointers for BaseObjects (Anna Henningsen) #30374
  • [1a92c88418] - src: migrate off ArrayBuffer::GetContents (Anna Henningsen) #30339
  • [0d5de1a20e] - (SEMVER-MINOR) src: remove custom tracking for SharedArrayBuffers (Anna Henningsen) #30020
  • [f0ff2ed9d5] - (SEMVER-MINOR) src: update v8abbr.h for V8 update (Colin Ihrig) #30020
  • [2c8276eda8] - (SEMVER-MINOR) src: expose ability to set options (Shelley Vohr) #30466
  • [592d51cb23] - src: enhance feature access CHECKs during bootstrap (Anna Henningsen) #30452
  • [d648c933b5] - src: lib/internal/timers.js var -> let/const (Nikolay Krashnikov) #30314
  • [70ad676023] - src: persist strings that are used multiple times in the environment (Vadim Gorbachev) #30321
  • [b744070d74] - (SEMVER-MINOR) src: allow adding linked bindings to Environment (Anna Henningsen) #30274
  • [058a8d5363] - src: do not use std::function for OnScopeLeave (Anna Henningsen) #30134
  • [906d279e69] - src: run RunBeforeExitCallbacks as part of EmitBeforeExit (Anna Henningsen) #30229
  • [66b3619b4e] - src: use unique_ptr for InitializeInspector() (Anna Henningsen) #30229
  • [db7deb6e7a] - src: make WaitForInspectorDisconnect an exit hook (Anna Henningsen) #30229
  • [cd233e3f16] - src: make EndStartedProfilers an exit hook (Anna Henningsen) #30229
  • [8234d04b56] - src: track no of active JS signal handlers (Anna Henningsen) #30229
  • [0072a8eddf] - src: remove AsyncScope and AsyncCallbackScope (Anna Henningsen) #30236
  • [e3371f0c93] - src: use callback scope for main script (Anna Henningsen) #30236
  • [cd6d6215cc] - (SEMVER-MINOR) src: deprecate two- and one-argument AtExit() (Anna Henningsen) #30227
  • [5f4535a97c] - src: make AtExit() callbacks run in reverse order (Anna Henningsen) #30230
  • [44968f0edc] - src: remove unimplemented method from node.h (Anna Henningsen) #30098
  • [4524c7ad36] - stream: replace var with let (daern91) #30379
  • [41720d78c9] - stream: add writableCorked to Duplex (Anna Henningsen) #29053
  • [7cbdac9a71] - stream: increase MAX_HWM (Robert Nagy) #29938
  • [c254d7469d] - (SEMVER-MINOR) stream: add writableCorked property (Robert Nagy) #29012
  • [cb9c64a6e0] - test: move test not requiring internet from internet to parallel (Rich Trott) #30545
  • [902c6702df] - test: use reserved .invalid TLD for invalid address in test (Rich Trott) #30545
  • [92f766bd83] - test: improve assertion message in internet dgram test (Rich Trott) #30545
  • [a5f25ecf07] - test: cover 'close' method in Dir class (Artem Maksimov) #30310
  • [45e57303f3] - test: add test for options validation of createServer (Yongsheng Zhang) #30541
  • [6be03981b2] - test: clean up http-set-trailers (Denys Otrishko) #30522
  • [2952c5d72b] - (SEMVER-MINOR) test: increase limit again for network space overhead test (Michaël Zasso) #30020
  • [4131b14011] - (SEMVER-MINOR) test: update test-postmortem-metadata.js (Colin Ihrig) #30020
  • [c464ede598] - test: handle undefined default_configuration (Shelley Vohr) #30465
  • [5ec550de02] - test: Change from var to const (Jure Stepisnik) #30431
  • [13bac0ac0f] - test: changed var to let in test-repl-editor (JL Phillips) #30443
  • [0d12e9cc29] - test: improve test-fs-open (Artem Maksimov) #30280
  • [89bc2526ab] - test: change var to let (nathias) #30444
  • [fa071efea4] - test: changed var to const in test (Kerry Mahne) #30434
  • [13a22432fc] - test: var to const in test-repl-multiline.js (SoulMonk) #30433
  • [109da52141] - test: deflake test-http-dump-req-when-res-ends.js (Luigi Pinca) #30360
  • [72bbd5cdb0] - test: change var to const in parallel/test-stream-transform-final* (Kenza Houmani) #30448
  • [cd82e4d9d8] - test: replace Object.assign with object spread (Grigoriy Levanov) #30306
  • [aec695eb6c] - test: fix Python unittests in ./test and ./tools (Christian Clauss) #30340
  • [ea0c1a67c5] - test: mark test-http-dump-req-when-res-ends as flaky on windows (AshCripps) #30316
  • [308f5e4710] - test: fix test-benchmark-cluster (Rich Trott) #30342
  • [bb0727a132] - test: do not run release-npm test without crypto (Michaël Zasso) #30265
  • [ab5bca379f] - test: remove AtExit() addon test (Anna Henningsen) #30275
  • [de68720908] - test: deflake test-tls-close-notify.js (Luigi Pinca) #30202
  • [8fe684961b] - Revert "test: test configure ninja" (Anna Henningsen) #30295
  • [0dedecc7e0] - test: test configure ninja (Patrick Housley) #30033
  • [01fa18c99c] - (SEMVER-MINOR) tls: cli option to enable TLS key logging to file (Sam Roberts) #30055
  • [5869f2bee7] - tls: change loop var to let (Xavier Redondo) #30445
  • [26a9bdfca3] - tls: replace var with let (Daniil Pletnev) #30308
  • [bad0b66580] - tls: replace var with let and const (Nolik) #30299
  • [ae5aa3ee83] - tls: refactor tls_wrap.cc (Artem Maksimov) #30303
  • [80b1717c0f] - tools: fix build at non-English windows (Rongjian Zhang) #30492
  • [642b0b883f] - tools: update tzdata to 2019c (Albert Wang) #30356
  • [3a44adebf8] - tools: pull xcode_emulation.py from node-gyp (Christian Clauss) #30272
  • [92fa4e0096] - tools: make doctool work if no internet available (Richard Lau) #30214
  • [0f9f18aabe] - tools: update certdata.txt (AshCripps) #30195
  • [dbdc3818e0] - tools: check-imports using utf-8 (Christian Clauss) #30220
  • [3b45f8fd9c] - url: replace var with let in lib/url.js (xefimx) #30281
  • [35dc84859f] - util: replace var with let (Susana Ferreira) #30439
  • [3727a6572b] - v8: mark serdes API as stable (Anna Henningsen) #30234
  • [9b11bdb001] - v8: inspect unserializable objects (Anna Henningsen) #30167
  • [2ec40c265a] - (SEMVER-MINOR) worker: allow specifying resource limits (Anna Henningsen) #26628

New in Node.js 13.1.0 (Nov 6, 2019)

  • Notable Changes
  • cli:
  • Added a new flag (--trace-uncaught) that makes Node.js print the stack trace at the time of throwing uncaught exceptions, rather than at the creation of the Error object, if there is any. This is disabled by default because it affects GC behavior (Anna Henningsen) #30025.
  • crypto:
  • Added Hash.prototype.copy() method. It returns a new Hash object with its internal state cloned from the original one (Ben Noordhuis) #29910.
  • dgram:
  • Added source-specific multicast support. This adds methods to Datagram sockets to support RFC 4607 for IPv4 and IPv6 (Lucas Pardue) #15735.
  • fs:
  • Added a bufferSize option to fs.opendir(). It allows to control the number of entries that are buffered internally when reading from the directory (Anna Henningsen) #30114.
  • meta:
  • Added Chengzhong Wu to collaborators #30115.
  • Commits:
  • [445837851b] - async_hooks: only emit after for AsyncResource if stack not empty (Anna Henningsen) #30087
  • [8860bd68b6] - buffer: improve performance caused by primordials (Jizu Sun) #30235
  • [1bded9841c] - build: fix detection of Visual Studio 2017 (Richard Lau) #30119
  • [49e7f042f9] - build: add workaround for WSL (gengjiawen) #30221
  • [03827ddf38] - build: allow Python 3.8 (Michaël Zasso) #30194
  • [54698113c0] - build: find Python syntax errors in dependencies (Christian Clauss) #30143
  • [b255688d5f] - build: fix pkg-config search for libnghttp2 (Ben Noordhuis) #30145
  • [8980d8c25f] - build: vcbuild uses default Python, not Py2 (João Reis) #30091
  • [cedad02406] - build: prefer python 3 over 2 for configure (Sam Roberts) #30091
  • [5ba842b8f9] - build: python3 support for configure (Rod Vagg) #30047
  • [d05f67caef] - cli: whitelist new V8 flag in NODE_OPTIONS (Shelley Vohr) #30094
  • [5ca58646c1] - (SEMVER-MINOR) cli: add --trace-uncaught flag (Anna Henningsen) #30025
  • [8b75aabee9] - crypto: guard with OPENSSL_NO_GOST (Shelley Vohr) #30050
  • [1d03df4c5e] - (SEMVER-MINOR) crypto: add Hash.prototype.copy() method (Ben Noordhuis) #29910
  • [46c9194ec8] - deps: V8: cherry-pick a7dffcd767be (Christian Clauss) #30218
  • [104bfb9a38] - deps: V8: cherry-pick e5dbc95 (Gabriel Schulhof) #30130
  • [e3124481c2] - deps: update npm to 6.12.1 (Michael Perrotte) #30164
  • [f3d00c594d] - deps: V8: backport 777fa98 (Michaël Zasso) #30062
  • [1cfa98c23e] - deps: V8: cherry-pick c721203 (Michaël Zasso) #30065
  • [0d9ae1b8f6] - deps: V8: cherry-pick ed40ab1 (Michaël Zasso) #30064
  • [a63f7e73c4] - (SEMVER-MINOR) dgram: add source-specific multicast support (Lucas Pardue) #15735
  • [fc407bb555] - doc: add missing hash for header link (Nick Schonning) #30188
  • [201a60e6ba] - doc: linkify .setupMaster() in cluster doc (Trivikram Kamat) #30204
  • [b7070f315f] - doc: explain http2 aborted event callback (dev-313) #30179
  • [f8fb2c06c5] - doc: linkify .fork() in cluster documentation (Anna Henningsen) #30163
  • [ae81360214] - doc: update AUTHORS list (Michaël Zasso) #30142
  • [1499a72a1f] - doc: improve doc Http2Session:Timeout (dev-313) #30161
  • [3709b5cc7e] - doc: move inactive Collaborators to emeriti (Rich Trott) #30177
  • [a48d17900b] - doc: add options description for send APIs (dev-313) #29868
  • [dfb4a24695] - doc: fix an error in resolution algorithm steps (Alex Zherdev) #29940
  • [403a648a16] - doc: fix numbering in require algorithm (Jan Krems) #30117
  • [e4ab6fced1] - doc: remove incorrect and outdated example (Tobias Nießen) #30138
  • [3c23224a76] - doc: adjust code sample for stream.finished (Cotton Hou) #29983
  • [d91d270416] - doc: claim NODE_MODULE_VERSION=80 for Electron 9 (Samuel Attard) #30052
  • [621eaf9ed5] - doc: remove "it is important to" phrasing (Rich Trott) #30108
  • [9a71091098] - doc: revise os.md (Rich Trott) #30102
  • [381c6cd0d2] - doc: delete "a number of" things in the docs (Rich Trott) #30103
  • [45c70a9793] - doc: remove dashes (Rich Trott) #30101
  • [ea9d125536] - doc: add legendecas to collaborators (legendecas) #30115
  • [39070bbed0] - doc: make YAML matter consistent in crypto.md (Rich Trott) #30016
  • [978946e38b] - doc,meta: prefer aliases and stubs over Runtime Deprecations (Rich Trott) #30153
  • [32a538901f] - doc,n-api: sort bottom-of-the-page references (Gabriel Schulhof) #30124
  • [07b5584a3f] - (SEMVER-MINOR) fs: add bufferSize option to fs.opendir() (Anna Henningsen) #30114
  • [2505f678ef] - http: support readable hwm in IncomingMessage (Colin Ihrig) #30135
  • [f01c5c51b0] - inspector: turn platform tasks that outlive Agent into no-ops (Anna Henningsen) #30031
  • [050efebf24] - meta: use contact_links instead of issue templates (Michaël Zasso) #30172
  • [edfbee3727] - module: resolve self-references (Jan Krems) #29327
  • [93b1bb8cb5] - n-api,doc: add info about building n-api addons (Jim Schlight) #30032
  • [cc1cd2b3c5] - src: isolate->Dispose() order consistency (Shelley Vohr) #30181
  • [a0df91cce1] - (SEMVER-MINOR) src: expose granular SetIsolateUpForNode (Shelley Vohr) #30150
  • [ec7b69ff05] - src: change env.h includes for forward declarations (Alexandre Ferrando) #30133
  • [98c8f76dd1] - src: split up InitializeContext (Shelley Vohr) #30067
  • [d78e3176dd] - src: fix crash with SyntheticModule#setExport (Michaël Zasso) #30062
  • [fd0aded233] - src: allow inspector without v8 platform (Shelley Vohr) #30049
  • [87f14e13b3] - stream: extract Readable.from in its own file (Matteo Collina) #30140
  • [1d9f4278dd] - test: use arrow functions for callbacks (Minuk Park) #30069
  • [a03809d7dd] - test: verify npm compatibility with releases (Michaël Zasso) #30082
  • [68e4b5a1fc] - tools: fix Python 3 deprecation warning in test.py (Loris Zinsou) #30208
  • [348ec693ac] - tools: fix Python 3 syntax error in mac_tool.py (Christian Clauss) #30146
  • [e2fb353df3] - tools: use print() function in buildbot_run.py (Christian Clauss) #30148
  • [bcbcce5983] - tools: undefined name opts -> args in gyptest.py (Christian Clauss) #30144
  • [14981f5bba] - tools: git rm -r tools/v8_gypfiles/broken (Christian Clauss) #30149
  • [d549a34597] - tools: update ESLint to 6.6.0 (Colin Ihrig) #30123
  • [a3757546e8] - tools: doc: improve async workflow of generate.js (Theotime Poisseau) #30106

New in Node.js 12.13.0 (Oct 21, 2019)

  • 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

New in Node.js 12.12.0 (Oct 12, 2019)

  • Notable changes:
  • build:
  • Add `--force-context-aware` flag to prevent usage of native node addons that aren't context aware
  • deprecations:
  • Add documentation-only deprecation for `process._tickCallback()`
  • esm:
  • Using JSON modules is experimental again
  • fs:
  • Introduce `opendir()` and `fs.Dir` to iterate through directories
  • process:
  • Add source-map support to stack traces by using `--source-map-support` #29564
  • tls:
  • Honor `pauseOnConnect` option
  • Add option for private keys for OpenSSL engines

New in Node.js 12.11.1 (Oct 1, 2019)

  • Notable changes:
  • Build:
  • This release fixes a regression that prevented from building Node.js using the official source tarball (Richard Lau) #29712.
  • Deps:
  • Updated small-icu data to support "unit" style in the Intl.NumberFormat API (Michaël Zasso) #29735.
  • Commits:
  • [35e1d8c5ba] - build: include deps/v8/test/torque in source tarball (Richard Lau) #29712
  • [ae461964a7] - build,win: goto lint only after defining node_exe (João Reis) #29616
  • [588b388181] - crypto: use byteLength in timingSafeEqual (Tobias Nießen) #29657
  • [298d92785c] - deps: enable unit data in small-icu (Michaël Zasso) #29735
  • [0041f1c0d3] - doc: sync security policy with nodejs.org (Sam Roberts) #29682
  • [038cbb08de] - doc: fix output in inspector HeapProfile example (Kirill Fomichev) #29711
  • [d86f10cf0b] - doc: add KeyObject to type for crypto.createDecipheriv() argument (exoego) #29689
  • [1303e3551f] - doc: clarify description of readable.push() method (imhype) #29687
  • [d258e0242c] - doc: clarify stream errors while reading and writing (Robert Nagy) #29653
  • [0fc85ff96a] - doc: specify display=fallback for Google Fonts (XhmikosR) #29688
  • [c2791dcd9c] - doc: fix some recent nits (Vse Mozhet Byt) #29670
  • [7a6b05a26f] - doc: fix 404 links (XhmikosR) #29661
  • [2b76cb6dda] - doc: remove align from tables (XhmikosR) #29668
  • [3de1fc6958] - doc: document that iv may be null when using createCipheriv() (Ruben Bridgewater) #29684
  • [91e4cc7500] - doc: update AUTHORS list (Anna Henningsen) #29608
  • [2ea4cc0732] - doc: clarify pipeline stream cleanup (Robert Nagy) #29738
  • [ab060bfdab] - doc: clarify fs.symlink() usage (Simon A. Eugster) #29700
  • [b5c24dfbe8] - doc: fix type of atime/mtime (TATSUNO Yasuhiro) #29666
  • [6579b1a547] - doc,http: indicate callback is optional for message.setTimeout() (Trivikram Kamat) #29654
  • [a04fc86723] - http2: optimize the altsvc Max bytes limit, define and use constants (rickyes) #29673
  • [d1f4befd09] - module: pass full URL to loader for top-level load (Guy Bedford) #29736
  • [3f028551a8] - module: move cjs type check behind flag (Guy Bedford) #29732
  • [c3a1303bc2] - src: rename --loader to --experimental-loader (Alex Aubuchon) #29752
  • [17c3478d78] - src: fix asan build for gcc/clang (David Carlier) #29383
  • [64740d44b5] - src: fix compiler warning in inspector_profiler.cc (Daniel Bevenius) #29660
  • [a86b71f745] - src: disconnect inspector before exiting out of fatal exception (Joyee Cheung) #29611
  • [8d88010277] - src: try showing stack traces when process._fatalException is not set (Joyee Cheung) #29624
  • [2a6b7b0476] - test: fix flaky test-cluster-net-listen-ipv6only-none (Rich Trott) #29681
  • [69f26340e9] - tls: simplify setSecureContext() option parsing (cjihrig) #29704
  • [c361180c07] - tools: make mailmap processing for author list case-insensitive (Anna Henningsen) #29608
  • [ef033d046a] - worker: fix process._fatalException return type (Ruben Bridgewater) #29706
  • [04df7dbadb] - worker: keep allocators for transferred SAB instances alive longer (Anna Henningsen) #29637

New in Node.js 12.11.0 (Sep 26, 2019)

  • crypto:
  • Add oaepLabel option #29489
  • deps:
  • Update V8 to 7.7.299.11 #28918
  • More efficient memory handling
  • Stack trace serialization got faster
  • The Intl.NumberFormat API gained new functionality
  • For more information: https://v8.dev/blog/v8-release-77
  • events:
  • Add support for EventTarget in once #29498
  • fs:
  • Expose memory file mapping flag UV_FS_O_FILEMAP #29260
  • inspector:
  • New API - Session.connectToMainThread #28870
  • process:
  • Initial SourceMap support via env.NODE_V8_COVERAGE #28960
  • stream:
  • Make _write() optional when _writev() is implemented #29639
  • tls:
  • Add option to override signature algorithms #29598
  • util:
  • Add encodeInto to TextEncoder #29524
  • worker:
  • The worker_thread module is now stable #29512
  • Commits
  • [b9c7c9002f] - benchmark: improve process.env benchmarks (Anna Henningsen) #29188
  • [6b8951231c] - bootstrap: add exception handling for profiler bootstrap (Shobhit Chittora) #29552
  • [c052967636] - bootstrap: provide usable error on missing internal module (Jeremiah Senkpiel) #29593
  • [5c24bc6c68] - build: do not indent assignments in Makefile (Joyee Cheung) #29623
  • [f90740d734] - build: allow clang 10+ in configure.py (Kamil Rytarowski) #29541
  • [c304594536] - build: re-run configure on node_version.h change (Anna Henningsen) #29510
  • [f622771079] - build: improve make coverage (Anna Henningsen) #29487
  • [c1695c6635] - build: add comment to .travis.yml on how to test Py3 (cclauss) #29473
  • [6f50c3f391] - build: update minimum AIX OS level (Michael Dawson) #29476
  • [ee18238f55] - build: remove experimental Python 3 tests (Christian Clauss) #29413
  • [fe46054b14] - (SEMVER-MINOR) build: reset embedder string to "-node.0" (Michaël Zasso) #28918
  • [42fd139279] - build,win: fix Python detection on localized OS (João Reis) #29423
  • [f61c5097e2] - console: skip/strip %c formatting (Gus Caplan) #29606
  • [68630c5b65] - console,util: fix missing recursion end while inspecting prototypes (Ruben Bridgewater) #29647
  • [99c2cd8f08] - crypto: use BoringSSL-compatible flag getter (Shelley Vohr) #29604
  • [dd5d944005] - (SEMVER-MINOR) crypto: fix OpenSSL return code handling (Tobias Nießen) #29489
  • [54f327b4dc] - (SEMVER-MINOR) crypto: add oaepLabel option (Tobias Nießen) #29489
  • [5d60adf38b] - deps: patch V8 to 7.7.299.11 (Michaël Zasso) #29628
  • [c718c606c8] - deps: V8: cherry-pick deac757 (Benjamin Coe) #29626
  • [e4a51ad980] - deps: patch V8 to 7.7.299.10 (Thomas) #29472
  • [bc3c0b2d65] - deps: V8: cherry-pick 35c6d4d (Sam Roberts) #29585
  • [fa7de9b27f] - deps: update npm to 6.11.3 (claudiahdz) #29430
  • [f5f238de6c] - deps: upgrade to libuv 1.32.0 (cjihrig) #29508
  • [7957b392e4] - deps: patch V8 to 7.7.299.8 (Michaël Zasso) #29336
  • [90713c6697] - (SEMVER-MINOR) deps: patch V8 to be API/ABI compatible with 7.4 (from 7.7) (Michaël Zasso) #29241
  • [e95f866956] - deps: patch V8 to be API/ABI compatible with 7.4 (from 7.6) (Michaël Zasso) #28955
  • [4eeb2a99e5] - (SEMVER-MINOR) deps: patch V8 to be API/ABI compatible with 7.4 (from 7.5) (Michaël Zasso) #28005
  • [60efc5fd52] - deps: V8: cherry-pick e3d7f8a (cclauss) #29105
  • [d1bedbe717] - (SEMVER-MINOR) deps: V8: fix linking issue for MSVS (Refael Ackermann) #28016
  • [19e38e0def] - (SEMVER-MINOR) deps: V8: fix BUILDING_V8_SHARED issues (Refael Ackermann) #27375
  • [8aaa0abd26] - (SEMVER-MINOR) deps: V8: add workaround for MSVC optimizer bug (Refael Ackermann) #28016
  • [07ed874446] - (SEMVER-MINOR) deps: V8: use ATOMIC_VAR_INIT instead of std::atomic_init (Refael Ackermann) #27375
  • [1ed3909ca3] - (SEMVER-MINOR) deps: V8: forward declaration of Rtl*FunctionTable (Refael Ackermann) #27375
  • [242f6174e5] - (SEMVER-MINOR) deps: V8: patch register-arm64.h (Refael Ackermann) #27375
  • [63093e9d49] - (SEMVER-MINOR) deps: V8: update postmortem metadata generation script (cjihrig) #28918
  • [b54ee2185e] - (SEMVER-MINOR) deps: V8: silence irrelevant warning (Michaël Zasso) #26685
  • [c6f97bb7ce] - (SEMVER-MINOR) deps: V8: un-cherry-pick bd019bd (Refael Ackermann) #26685
  • [5df55c2626] - (SEMVER-MINOR) deps: V8: fix filename manipulation for Windows (Refael Ackermann) #28016
  • [80ccae000e] - (SEMVER-MINOR) deps: update V8 to 7.7.299.4 (Michaël Zasso) #28918
  • [325de437b3] - doc: update N-API version matrix (Gabriel Schulhof) #29461
  • [2707beb8b8] - doc: add code example to process.throwDeprecation property (Juan José Arboleda) #29495
  • [edaa2eebd6] - doc: fix some signatures of .end() methods (Vse Mozhet Byt) #29615
  • [13d173f131] - doc: remove the suffix number of the anchor link (Maledong) #29468
  • [3ba64646ed] - doc: explain stream.finished cleanup (Robert Nagy) #28935
  • [84b353cf5d] - doc: fix require call for spawn() in code example (Marian Rusnak) #29621
  • [39b17706ea] - doc: make minor improvements to stream.md (Robert Nagy) #28970
  • [50b5ad1638] - doc: fix nits in net.md (Vse Mozhet Byt) #29577
  • [4954792991] - doc: correct trivial misspelling in AUTHORS (gcr) #29597
  • [0074c8adb7] - doc: update list style in misc README docs (Rich Trott) #29594
  • [38028ef818] - doc: add missing complete property to http2 docs (Javier Ledezma) #29571
  • [55631f4f0a] - doc: add leap second behavior notes for napi methods (Levhita) #29569
  • [7fd32619c1] - doc: explain esm options for package authors (Geoffrey Booth) #29497
  • [f2217cdafe] - doc: update experimental loader hooks example code (Denis Zavershinskiy) #29373
  • [bf08c08384] - doc: use consistent unordered list style (Nick Schonning) #29516
  • [ca8e87a6d3] - doc: add Bethany to TSC (Michael Dawson) #29546
  • [aa541bbc88] - doc: add Tobias to the TSC (Michael Dawson) #29545
  • [9abee075ad] - doc: mention unit for process.hrtime.bigint() (Anna Henningsen) #29482
  • [3aea277b72] - doc: add documentation for stream readableFlowing (Chetan Karande) #29506
  • [a262e2f8d4] - doc: indent child list items for remark-lint (Nick Schonning) #29488
  • [2a5340144c] - doc: space around lists (Nick Schonning) #29467
  • [9e63f914da] - doc: exitedAfterDisconnect value can be false (Nimit Aggarwal) #29404
  • [b1509e8f8e] - doc: remove wrong escapes (XhmikosR) #29452
  • [7dd897f49a] - doc: prepare markdown files for more stringent blank-line linting (Rich Trott) #29447
  • [a9d16b5e30] - doc: simplify wording in n-api doc (Michael Dawson) #29441
  • [c95e9ca6dc] - doc: update release guide with notes for major releases (James M Snell) #25497
  • [a7331da863] - doc: indent ordered list child content (Nick Schonning) #29332
  • [32bb58ba9c] - doc: fix unsafe writable stream code example (Chetan Karande) #29425
  • [735ef8b235] - doc: async_hooks.createHook promiseResolve option (Ben Noordhuis) #29405
  • [844b45bf4f] - doc: change urls directly from 'http' to 'https' (Maledong) #29422
  • [4374d28c52] - doc: use consistent indenting for unordered list items (Nick Schonning) #29390
  • [835d1cabf6] - doc: start unorded lists at start of line (Nick Schonning) #29390
  • [8023e43e1d] - doc: change the 'txt' to 'console' for a command (Maledong) #29389
  • [b9c082d764] - esm: make dynamic import work in the REPL (Bradley Farias) #29437
  • [0a47d06150] - events: improve performance of EventEmitter.emit (Matteo Collina) #29633
  • [9150c4dc72] - (SEMVER-MINOR) events: add support for EventTarget in once (Jenia) #29498
  • [67f5de9b34] - fs: remove unnecessary argument check (Robert Nagy) #29043
  • [a20a8f48f7] - gyp: make StringIO work in ninja.py (Christian Clauss) #29414
  • [31b0b52a71] - http: refactor responseKeepAlive() (Robert Nagy) #28700
  • [6a7d24b69c] - http2: do not crash on stream listener removal w/ destroyed session (Anna Henningsen) #29459
  • [fa949ca365] - http2: send out pending data earlier (Anna Henningsen) #29398
  • [d6ba106f8c] - http2: do not start reading after write if new write is on wire (Anna Henningsen) #29399
  • [a268658496] - (SEMVER-MINOR) inspector: new API - Session.connectToMainThread (Eugene Ostroukhov) #28870
  • [144aeeac68] - lib: remove the use of util.isFunction (himself65) #29566
  • [91d99ce41c] - (SEMVER-MINOR) lib,test: fix error message check after V8 update (Michaël Zasso) #28918
  • [13fa966b7b] - module: error for CJS .js load within type: module (Guy Bedford) #29492
  • [ce45aae2ab] - module: reintroduce package exports dot main (Guy Bedford) #29494
  • [8474b82e35] - n-api: delete callback bundle via reference (Gabriel Schulhof) #29479
  • [50d7c39d91] - n-api: mark version 5 N-APIs as stable (Gabriel Schulhof) #29401
  • [6b30802471] - perf_hooks: remove non-existent entries from inspect (Kirill Fomichev) #29528
  • [c146fff307] - perf_hooks: ignore duplicated entries in observer (Kirill Fomichev) #29442
  • [9b4a49c844] - perf_hooks: remove GC callbacks on zero observers count (Kirill Fomichev) #29444
  • [b30c40bd5d] - perf_hooks: import http2 only once (Kirill Fomichev) #29419
  • [95431eace9] - policy: minor perf opts and cleanup (Bradley Farias) #29322
  • [6ba39d4fe4] - (SEMVER-MINOR) process: initial SourceMap support via NODE_V8_COVERAGE (Benjamin Coe) #28960
  • [03a3468666] - process: use public readableFlowing property (Chetan Karande) #29502
  • [a5bd7e3b2a] - repl: convert var to let and const (Lucas Holmquist) #29575
  • [7eae707fd9] - repl: fix bug in fs module autocompletion (zhangyongsheng) #29555
  • [596dd9fe34] - repl: add autocomplete support for fs.promises (antsmartian) #29400
  • [70a0c170d4] - repl: add missing variable declaration (Lucas Holmquist) #29535
  • [3878e1ed31] - src: perform check before running in runMicrotasks() (Jeremy Apthorp) #29581
  • [6f8ef2cbab] - src: discard remaining foreground tasks on platform shutdown (Anna Henningsen) #29587
  • [f84f1dbd98] - src: fix closing weak HandleWraps on GC (Anna Henningsen) #29640
  • [6284b498b4] - src: use libuv to get env vars (Anna Henningsen) #29188
  • [3a6bc90c29] - src: re-delete Atomics.wake (Gus Caplan) #29586
  • [51a1dfab94] - src: print exceptions from PromiseRejectCallback (Anna Henningsen) #29513
  • [4a5ba60e00] - src: modified RealEnvStore methods to use libuv functions (Devendra Satram) #27310
  • [67aa5ef12b] - src: make ELDHistogram a HandleWrap (Anna Henningsen) #29317
  • [5c3d484c21] - src: check microtasks before running them (Shelley Vohr) #29434
  • [010d29d74f] - src: fix ValidateDSAParameters when fips is enabled (Daniel Bevenius) #29407
  • [59b464026f] - (SEMVER-MINOR) src: update v8abbr.h for V8 7.7 (cjihrig) #28918
  • [78af92dda5] - (SEMVER-MINOR) src,lib: expose memory file mapping flag (João Reis) #29260
  • [f016823929] - stream: add test for multiple .push(null) (Chetan Karande) #29645
  • [b1008973e9] - stream: cleanup use of internal ended state (Chetan Karande) #29645
  • [e71bdadf52] - (SEMVER-MINOR) stream: make _write() optional when _writev() is implemented (Robert Nagy) #29639
  • [123437bcc3] - stream: apply special logic in removeListener for readable.off() (Robert Nagy) #29486
  • [322bc6f0a6] - stream: do not call _read() after destroy() (Robert Nagy) #29491
  • [78cbdf3286] - stream: optimize creation (Robert Nagy) #29135
  • [2dc52ad09c] - stream: simplify isUint8Array helper (Anna Henningsen) #29514
  • [560511924f] - test: fix race condition in test-worker-process-cwd.js (Ruben Bridgewater) #28609
  • [78ee065a11] - test: fix flaky test-inspector-connect-main-thread (Anna Henningsen) #29588
  • [87fd55c387] - test: unmark test-worker-prof as flaky (Anna Henningsen) #29511
  • [79a277ed10] - test: improve test-worker-message-port-message-before-close (Anna Henningsen) #29483
  • [909c669c04] - test: disable core dumps before running crash test (Ben Noordhuis) #29478
  • [561d504d71] - test: permit test-signalwrap to work without test runner (Rich Trott) #28306
  • [75c559dc3a] - test: remove flaky status for test-statwatcher (Rich Trott) #29392
  • [f056d55346] - (SEMVER-MINOR) test: update postmortem metadata test for V8 7.7 (cjihrig) #28918
  • [b43d2dd852] - timers: set _destroyed even if there are no destroy-hooks (Jeremiah Senkpiel) #29595
  • [6272f82c07] - (SEMVER-MINOR) tls: add option to override signature algorithms (Anton Gerasimov) #29598
  • [b7488c2a5c] - tools: cleanup getnodeversion.py for readability (Christian Clauss) #29648
  • [7bc2f06e0b] - tools: update ESLint to 6.4.0 (zhangyongsheng) #29553
  • [0db7ebe073] - tools: fix iculslocs to support ICU 65.1 (Steven R. Loomis) #29523
  • [bc7cc348cc] - tools: python3 compat for inspector code generator (Ben Noordhuis) #29340
  • [9de417ad59] - tools: delete v8_external_snapshot.gypi (Ujjwal Sharma) #29369
  • [2f81d59e75] - tools: fix GYP ninja generator for Python 3 (Michaël Zasso) #29416
  • [027dcff207] - (SEMVER-MINOR) tools: sync gypfiles with V8 7.7 (Michaël Zasso) #28918
  • [bbf209b5df] - tty: add color support for mosh (Aditya) #27843
  • [ced89ad75d] - util: include reference anchor for circular structures (Ruben Bridgewater) #27685
  • [772a5e0658] - (SEMVER-MINOR) util: add encodeInto to TextEncoder (Anna Henningsen) #29524
  • [97d8b33ffc] - (SEMVER-MINOR) worker: mark as stable (Anna Henningsen) #29512
  • [fa77dc5f3b] - worker: make terminate() resolve for unref’ed Workers (Anna Henningsen) #29484
  • [53f23715df] - worker: prevent event loop starvation through MessagePorts (Anna Henningsen) #29315
  • [d2b0568890] - worker: make transfer list behave like web MessagePort (Anna Henningsen) #29319

New in Node.js 12.10.0 (Sep 5, 2019)

  • Notable changes:
  • deps:
  • Update npm to 6.10.3 (isaacs) #29023
  • fs:
  • Add recursive option to rmdir() (cjihrig) #29168
  • Allow passing true to emitClose option (Giorgos Ntemiris) #29212
  • Add *timeNs properties to BigInt Stats objects (Joyee Cheung) #21387
  • net:
  • Allow reading data into a static buffer (Brian White) #25436
  • Commits:
  • [293c9f0d75] - bootstrap: run preload prior to frozen-intrinsics (Bradley Farias) #28940
  • [71aaf590c1] - buffer: correct indexOf() error message (Brian White) #29217
  • [c900762fe4] - buffer: consolidate encoding parsing (Brian White) #29217
  • [054407511e] - buffer: correct concat() error message (Brian White) #29198
  • [35bca312ed] - buffer: improve equals() performance (Brian White) #29199
  • [449f1fd578] - Revert "build: add full Python 3 tests to Travis CI" (Ben Noordhuis) #29406
  • [256da1fdb3] - build: add full Python 3 tests to Travis CI (cclauss) #29360
  • [0c4df35db0] - build: hard code doctool in test-doc target (Daniel Bevenius) #29375
  • [d6b6a0578b] - build: integrate DragonFlyBSD into gyp build (David Carlier) #29313
  • [6a914ed36e] - build: make --without-snapshot imply --without-node-snapshot (Joyee Cheung) #29294
  • [def5c3e5d8] - build: test Python 3.6 and 3.7 on Travis CI (cclauss) #29291
  • [feafc019b1] - build: move tooltest to before jstest target (Daniel Bevenius) #29220
  • [aeafb91e2c] - build: add Python 3 tests to Travis CI (cclauss) #29196
  • [bb6e3b5404] - build,win: accept Python 3 if 2 is not available (João Reis) #29236
  • [dce5649d9c] - build,win: find Python in paths with spaces (João Reis) #29236
  • [2489682eb5] - console: use getStringWidth() for character width calculation (Anna Henningsen) #29300
  • [5c3e49d84e] - crypto: don't expose openssl internals (Shelley Vohr) #29325
  • [e0537e6978] - crypto: simplify DSA validation in FIPS mode (Tobias Nießen) #29195
  • [28ffc9f599] - deps: V8: cherry-pick 597f885 (Benjamin Coe) #29367
  • [219c19530e] - (SEMVER-MINOR) deps: update npm to 6.10.3 (isaacs) #29023
  • [4a7c4b7366] - doc: escape elements swallowed as HTML in markdown (Nick Schonning) #29374
  • [5a16449edf] - doc: add extends for derived classes (Kamat, Trivikram) #29290
  • [3fc29b8f9a] - doc: add blanks around code fences (Nick Schonning) #29366
  • [187d08be65] - doc: format http2 anchor link and reference (Nick Schonning) #29362
  • [6734782f25] - doc: remove multiple consecutive blank lines (Nick Schonning) #29352
  • [a94afedc9b] - doc: add devnexen to collaborators (David Carlier) #29370
  • [43797d9427] - doc: inconsistent indentation for list items (Nick Schonning) #29330
  • [bb72217faf] - doc: heading levels should only increment by one (Nick Schonning) #29331
  • [ef76c7d997] - doc: add dco to github pr template (Myles Borins) #24023
  • [8599052283] - doc: add https.Server extends tls.Server (Trivikram Kamat) #29256
  • [2fafd635d7] - doc: fix nits in esm.md (Vse Mozhet Byt) #29242
  • [6a4f156ba4] - doc: add missing extends Http2Session (Trivikram Kamat) #29252
  • [1d649e3444] - doc: indicate that Http2ServerRequest extends Readable (Trivikram Kamat) #29253
  • [b2f169e628] - doc: indicate that Http2ServerResponse extends Stream (Trivikram Kamat) #29254
  • [65de900052] - (SEMVER-MINOR) doc: add emitClose option for fs streams (Rich Trott) #29212
  • [ae810cc8d5] - doc,crypto: add extends for derived classes (Kamat, Trivikram) #29302
  • [a2c704773a] - doc,errors: add extends to derived classes (Kamat, Trivikram) #29303
  • [395245f1eb] - doc,fs: add extends for derived classes (Kamat, Trivikram) #29304
  • [8a93b63a6b] - doc,http: add extends for derived classes (Trivikram Kamat) #29255
  • [ba29be60ae] - doc,tls: add extends for derived classes (Trivikram Kamat) #29257
  • [30b80e5d7c] - errors: provide defaults for unmapped uv errors (cjihrig) #29288
  • [a7c8322a54] - esm: support loading data URLs (Bradley Farias) #28614
  • [3bc16f917d] - events: improve once() performance (Brian White) #29307
  • [ed2293e3d7] - (SEMVER-MINOR) fs: add recursive option to rmdir() (cjihrig) #29168
  • [8f47ff16d4] - (SEMVER-MINOR) fs: allow passing true to emitClose option (Giorgos Ntemiris) #29212
  • [6ff803d97c] - fs: fix (temporary) for esm package (Robert Nagy) #28957
  • [e6353bda1a] - fs: document the Date conversion in Stats objects (Joyee Cheung) #28224
  • [365e062e14] - (SEMVER-MINOR) fs: add *timeNs properties to BigInt Stats objects (Joyee Cheung) #21387
  • [12cbb3f12f] - gyp: remove semicolons (Python != JavaScript) (MattIPv4) #29228
  • [10bae2ec91] - gyp: futurize imput.py to prepare for Python 3 (cclauss) #29140
  • [e5a9a8522d] - http: simplify timeout handling (Robert Nagy) #29200
  • [87b8f02daa] - lib: add ASCII fast path to getStringWidth() (Anna Henningsen) #29301
  • [6e585fb063] - lib: consolidate lazyErrmapGet() (cjihrig) #29285
  • [eb2d96fecf] - module: avoid passing unnecessary loop reference (Saúl Ibarra Corretgé) #29275
  • [dfc0ef5d88] - (SEMVER-MINOR) net: allow reading data into a static buffer (Brian White) #25436
  • [f4f88270e7] - process: improve nextTick performance (Brian White) #25461
  • [0e1ccca81d] - querystring: improve performance (Brian White) #29306
  • [f8f3af099a] - src: do not crash when accessing empty WeakRefs (Anna Henningsen) #29289
  • [b964bdd162] - src: turn GET_OFFSET() into an inline function (Anna Henningsen) #29357
  • [2666e006e1] - src: inline SLICE_START_END() in node_buffer.cc (Anna Henningsen) #29357
  • [8c6896e5d3] - src: allow --interpreted-frames-native-stack in NODE_OPTIONS (Matheus Marchini) #27744
  • [db6e4ce239] - src: expose MaybeInitializeContext to allow existing contexts (Samuel Attard) #28544
  • [4d4583e0a2] - src: add large page support for macOS (David Carlier) #28977
  • [7809adfb1f] - stream: don't deadlock on aborted stream (Robert Nagy) #29376
  • [2efd72f28d] - stream: improve read() performance (Brian White) #29337
  • [e939a8747f] - stream: async iterator destroy compat (Robert Nagy) #29176
  • [b36a6e9ed5] - stream: do not emit drain if stream ended (Robert Nagy) #29086
  • [0ccf90b415] - test: remove Windows skipping of http keepalive request GC test (Rich Trott) #29354
  • [83fb133267] - test: fix test-benchmark-net (Rich Trott) #29359
  • [bd1e8eacf3] - test: fix flaky test-http-server-keepalive-req-gc (Rich Trott) #29347
  • [9a150027da] - test: use print() function in both Python 2 and 3 (Christian Clauss) #29298
  • [1f88ca3424] - (SEMVER-MINOR) test: add emitClose: true tests for fs streams (Rich Trott) #29212
  • [cd70fd2bc0] - tools: update ESLint to 6.3.0 (cjihrig) #29382
  • [350975e312] - tools: use 'from io import StringIO' in ninja.py (cclauss) #29371
  • [3f68be1098] - tools: fix mksnapshot blob wrong freeing operator (David Carlier) #29384
  • [3802da790b] - tools: update ESLint to 6.2.2 (cjihrig) #29320
  • [2df84752c6] - tools: update babel-eslint to 10.0.3 (cjihrig) #29320
  • [783c8eeb0b] - tools: fix Python 3 issues in inspector_protocol (cclauss) #29296
  • [925141f946] - tools: fix mixup with bytes.decode() and str.encode() (Christian Clauss) #29208
  • [a123a20134] - tools: fix Python 3 issues in tools/icu/icutrim.py (cclauss) #29213
  • [eceebd3ef1] - tools: fix Python 3 issues in gyp/generator/make.py (cclauss) #29214
  • [5abbd51c60] - util: do not throw when inspecting detached ArrayBuffer (Anna Henningsen) #29318

New in Node.js 12.9.0 (Aug 21, 2019)

  • Notable changes
  • crypto:
  • Added an oaepHash option to asymmetric encryption which allows users to specify a hash function when using OAEP padding (Tobias Nießen) #28335.
  • deps:
  • Updated V8 to 7.6.303.29 (Michaël Zasso) #28955.
  • Improves the performance of various APIs such as JSON.parse and methods called on frozen arrays.
  • Adds the Promise.allSettled method.
  • Improves support of BigInt in Intl methods.
  • For more information: https://v8.dev/blog/v8-release-76
  • Updated libuv to 1.31.0 (cjihrig) #29070.
  • UV_FS_O_FILEMAP has been added for faster access to memory mapped files on Windows.
  • uv_fs_mkdir() now returns UV_EINVAL for invalid filenames on Windows. It previously returned UV_ENOENT.
  • The uv_fs_statfs() API has been added.
  • The uv_os_environ() and uv_os_free_environ() APIs have been added.
  • fs:
  • Added fs.writev, fs.writevSync and filehandle.writev (promise version) methods. They allow to write an array of ArrayBufferViews to a file descriptor (Anas Aboureada) #25925, (cjihrig) #29186.
  • http:
  • Added three properties to OutgoingMessage.prototype: writableObjectMode, writableLength and writableHighWaterMark #29018.
  • stream:
  • Added an new property readableEnded to readable streams. Its value is set to true when the 'end' event is emitted. (Robert Nagy) #28814.
  • Added an new property writableEnded to writable streams. Its value is set to true after writable.end() has been called. (Robert Nagy) #28934.

New in Node.js 12.8.1 (Aug 15, 2019)

  • Vulnerabilities fixed:
  • CVE-2019-9511 “Data Dribble”: The attacker requests a large amount of data from a specified resource over multiple streams. They manipulate window size and stream priority to force the server to queue the data in 1-byte chunks. Depending on how efficiently this data is queued, this can consume excess CPU, memory, or both, potentially leading to a denial of service.
  • CVE-2019-9512 “Ping Flood”: The attacker sends continual pings to an HTTP/2 peer, causing the peer to build an internal queue of responses. Depending on how efficiently this data is queued, this can consume excess CPU, memory, or both, potentially leading to a denial of service.
  • CVE-2019-9513 “Resource Loop”: The attacker creates multiple request streams and continually shuffles the priority of the streams in a way that causes substantial churn to the priority tree. This can consume excess CPU, potentially leading to a denial of service.
  • CVE-2019-9514 “Reset Flood”: The attacker opens a number of streams and sends an invalid request over each stream that should solicit a stream of RST_STREAM frames from the peer. Depending on how the peer queues the RST_STREAM frames, this can consume excess memory, CPU, or both, potentially leading to a denial of service.
  • CVE-2019-9515 “Settings Flood”: The attacker sends a stream of SETTINGS frames to the peer. Since the RFC requires that the peer reply with one acknowledgement per SETTINGS frame, an empty SETTINGS frame is almost equivalent in behavior to a ping. Depending on how efficiently this data is queued, this can consume excess CPU, memory, or both, potentially leading to a denial of service.
  • CVE-2019-9516 “0-Length Headers Leak”: The attacker sends a stream of headers with a 0-length header name and 0-length header value, optionally Huffman encoded into 1-byte or greater headers. Some implementations allocate memory for these headers and keep the allocation alive until the session dies. This can consume excess memory, potentially leading to a denial of service.
  • CVE-2019-9517 “Internal Data Buffering”: The attacker opens the HTTP/2 window so the peer can send without constraint; however, they leave the TCP window closed so the peer cannot actually write (many of) the bytes on the wire. The attacker then sends a stream of requests for a large response object. Depending on how the servers queue the responses, this can consume excess memory, CPU, or both, potentially leading to a denial of service.
  • CVE-2019-9518 “Empty Frames Flood”: The attacker sends a stream of frames with an empty payload and without the end-of-stream flag. These frames can be DATA, HEADERS, CONTINUATION and/or PUSH_PROMISE. The peer spends time processing each frame disproportionate to attack bandwidth. This can consume excess CPU, potentially leading to a denial of service. (Discovered by Piotr Sikora of Google)
  • Commits
  • bfeb5fc07f] - deps: update nghttp2 to 1.39.2 (Anna Henningsen) #29122
  • 08021fac59] - http2: allow security revert for Ping/Settings Flood (Anna Henningsen) #29122
  • bbb4769cc1] - http2: pause input processing if sending output (Anna Henningsen) #29122
  • f64515b05e] - http2: stop reading from socket if writes are in progress (Anna Henningsen) #29122
  • ba332df5d2] - http2: consider 0-length non-end DATA frames an error (Anna Henningsen) #29122
  • 23b0db58ca] - http2: shrink default vector::reserve() allocations (Anna Henningsen) #29122
  • 4f10ac3623] - http2: handle 0-length headers better (Anna Henningsen) #29122
  • a21a1c007b] - http2: limit number of invalid incoming frames (Anna Henningsen) #29122
  • 4570ed10d7] - http2: limit number of rejected stream openings (Anna Henningsen) #29122
  • 88726f2384] - http2: do not create ArrayBuffers when no DATA received (Anna Henningsen) #29122
  • 530004ef32] - http2: only call into JS when necessary for session events (Anna Henningsen) #29122
  • 58d8c9ef48] - http2: improve JS-side debug logging (Anna Henningsen) #29122

New in Node.js 12.8.0 (Aug 7, 2019)

  • Assert:
  • Legacy mode deprecation (DEP0089) is revoked (Colin Ihrig) #28892
  • Crypto:
  • The outputLength option is added to crypto.createHash (Tobias Nießen) #28805
  • The maxmem range is increased from 32 to 53 bits (Tobias Nießen) #28799
  • N-api:
  • Added APIs for per-instance state management (Gabriel Schulhof) #28682
  • Report:
  • Network interfaces get included in the report (Colin Ihrig) #28911
  • Src:
  • V8.getHeapCodeStatistics() is now exported (Yuriy Vasiyarov) #27978

New in Node.js 12.5.0 (Jul 3, 2019)

  • Build:
  • Experimental support for building Node.js on MIPS architecture is back #27992.
  • Child_process:
  • The promisified versions of child_process.exec and child_process.execFile now both return a Promise which has the child instance attached to their child property #28325.
  • Deps:
  • Updated libuv to 1.30.1 #28449, #28511.
  • Support for the Haiku platform has been added.
  • The maximum UV_THREADPOOL_SIZE has been increased from 128 to 1024.
  • uv_fs_copyfile() now works properly when the source and destination files are the same.
  • Process:
  • A new method, process.resourceUsage() was added. It returns resource usage for the current process, such as CPU time #28018.
  • Src:
  • Fixed an issue related to stdio that could lead to a crash of the process in some circumstances #28490.
  • Stream:
  • Added a writableFinished property to writable streams. It indicates that all the data has been flushed to the underlying system #28007.
  • Worker:
  • Fixed an issue that prevented worker threads to listen for data on stdin #28153.
  • Meta:
  • Added Jiawen Geng to collaborators #28322.

New in Node.js 12.5.0 (Jun 27, 2019)

  • Build:
  • The startup time is reduced by enabling V8 snapshots by default #28181
  • Deps:
  • Updated V8 to 7.5.288.22 #27375
  • The numeric separator feature is now enabled by default
  • Updated OpenSSL to 1.1.1c #28211
  • Inspector:
  • The --inspect-publish-uid flag was added to specify ways of the inspector web socket url exposure #27741
  • N-api:
  • Accessors on napi_define_* are now ECMAScript-compliant #27851
  • Report:
  • The cpu info got added to the report output #28188
  • Src:
  • Restore the original state of the stdio file descriptors on exit to prevent leaving stdio in raw or non-blocking mode #24260
  • tools,gyp:
  • Introduce MSVS 2019 #27375
  • Util:
  • Inspect:
  • Array grouping became more compact and uses more columns than before #28059 #28070
  • Long strings will not be split at 80 characters anymore. Instead they will be split on new lines #28055
  • Worker:
  • worker.terminate() now returns a promise and using the callback is deprecated #28021

New in Node.js 12.3.0 (May 22, 2019)

  • Intl:
  • Update ICU to 64.2. This adds support for Japanese Era (Reiwa) (Ujjwal Sharma) #27361.
  • Fixes a bug in ICU that affected Node.js 12.0.0 in the case where new Date().toLocaleString() was called with a non-default locale (Steven R. Loomis) #27415.
  • C++ API:
  • Added an overload EmitAsyncDestroy that can be used during garbage collection (Anna Henningsen) #27255.

New in Node.js 12.1.0 (Apr 30, 2019)

  • Notable changes:
  • intl:
  • Update ICU to 64.2. This adds support for Japanese Era (Reiwa) (Ujjwal Sharma) #27361.
  • Fixes a bug in ICU that affected Node.js 12.0.0 in the case where new Date().toLocaleString() was called with a non-default locale (Steven R. Loomis) #27415.
  • C++ API:
  • Added an overload EmitAsyncDestroy that can be used during garbage collection (Anna Henningsen) #27255.
  • Commits:
  • [8ca110cc6f] - benchmark: fix http bench-parser.js (Rich Trott) #27359
  • [2f9bafba08] - bootstrap: delay the instantiation of maps in per-context scripts (Joyee Cheung) #27371
  • [e7026f1428] - build: allow icu download to use other hashes besides md5 (Steven R. Loomis) #27370
  • [50234460f9] - build: disable custom v8 snapshot by default (Joyee Cheung) #27365
  • [b21b28f653] - crypto: update root certificates (Sam Roberts) #27374
  • [3282ccb845] - deps: backport ICU-20575 to fix err/crasher (Steven R. Loomis) #27435
  • [e922a22725] - deps: backport ICU-20558 to fix Intl crasher (Steven R. Loomis) #27415
  • [d852d9e904] - deps: update ICU to 64.2 (Ujjwal Sharma) #27361
  • [ee80a210ff] - dgram: change 'this' to 'self' for 'isConnected' (MaleDong) #27338
  • [8302148c83] - doc: add Node 12 to the first list of versions (Rivaldo Junior) #27414
  • [f6ceefa4bd] - doc: update comment in bootstrap for primordials (Myles Borins) #27398
  • [9c30806fb5] - doc: simplify GOVERNANCE.md text (Rich Trott) #27354
  • [453510c7ef] - doc: fix pull request number (Ruben Bridgewater) #27336
  • [36762883a0] - doc: clarify behaviour of writeFile(fd) (Sam Roberts) #27282
  • [f70588fb67] - doc: fix v12.0.0 changelog id (Beth Griggs) #27368
  • [a6d1fa5954] - doc: simplify Collaborator pre-nomination text (Rich Trott) #27348
  • [dd709fc84a] - lib: throw a special error in internal/assert (Joyee Cheung) #26635
  • [4dfe54a89a] - module: initialize module_wrap.callbackMap during pre-execution (Joyee Cheung) #27323
  • [8b5d73867f] - (SEMVER-MINOR) n-api: do not require JS Context for napi_async_destroy() (Anna Henningsen) #27255
  • [d00014e599] - process: reduce the number of internal frames in async stack trace (Joyee Cheung) #27392
  • [dc510fb435] - report: print common items first for readability (gengjiawen) #27367
  • [3614a00276] - src: refactor deprecated UVException in node_file.cc (gengjiawen) #27280
  • [071300b39d] - src: move OnMessage to node_errors.cc (Joyee Cheung) #27304
  • [81e7b49c8f] - src: use predefined AliasedBuffer types in the code base (Joyee Cheung) #27334
  • [8089d29567] - src: apply clang-tidy modernize-deprecated-headers found by Jenkins CI (gengjiawen) #27279
  • [619c5b6eb3] - (SEMVER-MINOR) src: do not require JS Context for ~AsyncResoure() (Anna Henningsen) #27255
  • [809cf595eb] - (SEMVER-MINOR) src: add Environment overload of EmitAsyncDestroy (Anna Henningsen) #27255
  • [7bc47cba2e] - src: apply clang-tidy rule modernize-use-equals-default (gengjiawen) #27264
  • [ad42cd69cf] - src: use std::vector<size_t> instead of IndexArray (Joyee Cheung) #27321
  • [228127fc67] - src: enable context snapshot after running per-context scripts (Joyee Cheung) #27321
  • [45d6106129] - src: enable snapshot with per-isolate data (Joyee Cheung) #27321
  • [631bea8fd2] - src: implement IsolateData serialization and deserialization (Joyee Cheung) #27321
  • [a636338945] - src: allow creating NodeMainInstance that does not own the isolate (Joyee Cheung) #27321
  • [50732c1b3f] - test: refactor net-connect-handle-econnrefused (Luigi Pinca) #27014
  • [e9021cc498] - test: move test-net-connect-handle-econnrefused (Luigi Pinca) #27014
  • [ebbed6047d] - test: rework to remove flakiness, and be parallel (Sam Roberts) #27300
  • [f0b2992f5c] - test: fix ineffective error tests (Masashi Hirano) #27333
  • [d84a6d05a1] - test: make test-worker-esm-missing-main more robust (Rich Trott) #27340
  • [8486917b9a] - test: increase coverage in lib/internal/dns/promises.js (Rich Trott) #27330
  • [6ca0270320] - tls: include invalid method name in thrown error (Sam Roberts) #27390
  • [dcbe5b9dff] - tools: update certdata.txt (Sam Roberts) #27374
  • [53f0ef36c0] - tools: update LICENSE and tools/icu/current_ver.dep (Ujjwal Sharma) #27361
  • [481789c235] - tools: fix use-after-free mkcodecache warning (Ben Noordhuis) #27332
  • [d62a3243b1] - tools: update tools/license-builder.sh (Ujjwal Sharma) #27362
  • [b44323f3de] - tools: implement node_mksnapshot (Joyee Cheung) #27321
  • [ae2333db65] - util: add prototype support for boxed primitives (Ruben Bridgewater) #27351
  • [8f3442809a] - util: rename setIteratorBraces to getIteratorBraces (Ruben Bridgewater) #27342
  • [973d705aa9] - util: improve Symbol.toStringTag handling (Ruben Bridgewater) #27342

New in Node.js 12.0.0 (Apr 24, 2019)

  • Notable Changes:
  • bootstrap: make Buffer and process non-enumerable (Ruben Bridgewater) #24874
  • console: don't use ANSI escape codes when TERM=dumb (Vladislav Kaminsky) #26261
  • errors: update error name (Ruben Bridgewater) #26738
  • readline: support TERM=dumb (Vladislav Kaminsky) #26261
  • assert:
  • validate required arguments (Ruben Bridgewater) #26641
  • adjust loose assertions (Ruben Bridgewater) #25008
  • async_hooks:
  • remove deprecated emitBefore and emitAfter (Matteo Collina) #26530
  • remove promise object from resource (Andreas Madsen) #23443
  • buffer:
  • use stricter range checks (Ruben Bridgewater) #27045
  • harden SlowBuffer creation (ZYSzys) #26272
  • harden validation of buffer allocation size (ZYSzys) #26162
  • do proper error propagation in addon methods (Anna Henningsen) #23939
  • child_process:
  • remove options.customFds (cjihrig) #25279
  • harden fork arguments validation (ZYSzys) #27039
  • use non-infinite maxBuffer defaults (kohta ito) #23027
  • crypto:
  • remove legacy native handles (Tobias Nießen) #27011
  • decode missing passphrase errors (Tobias Nießen) #25208
  • remove Cipher.setAuthTag() and Decipher.getAuthTag() (Tobias Nießen) #26249
  • remove deprecated crypto._toBuf() (Tobias Nießen) #25338
  • set DEFAULT_ENCODING property to non-enumerable (Antoine du Hamel) #23222
  • deps:
  • update V8 to 7.4.288.13 (Michaël Zasso, cjihrig, Refael Ackermann, Anna Henningsen, Ujjwal Sharma) #26685
  • bump minimum icu version to 63 (Ujjwal Sharma) #25852
  • update OpenSSL to 1.1.1b (Sam Roberts, Shigeki Ohtsu) #26327
  • fs:
  • use proper .destroy() implementation for SyncWriteStream (Matteo Collina) #26690
  • improve mode validation (Ruben Bridgewater) #26575
  • harden validation of start option in createWriteStream() (ZYSzys) #25579
  • make writeFile consistent with readFile wrt fd (Sakthipriyan Vairamani (thefourtheye)) #23709
  • http:
  • validate timeout in ClientRequest() (cjihrig) #26214
  • return HTTP 431 on HPE_HEADER_OVERFLOW error (Albert Still) #25605
  • switch default parser to llhttp (Anna Henningsen) #24870
  • Runtime-deprecate outgoingMessage._headers and outgoingMessage._headerNames (Morgan Roderick) #24167
  • lib:
  • remove Atomics.wake() (Gus Caplan) #27033
  • move DTRACE_* probes out of global scope (James M Snell) #26541
  • deprecate _stream_wrap (Sam Roberts) #26245
  • use ES6 class inheritance style (Ruben Bridgewater) #24755
  • module:
  • remove unintended access to deps/ (Anna Henningsen) #25138
  • improve error message for MODULE_NOT_FOUND (Ali Ijaz Sheikh) #25690
  • requireStack property for MODULE_NOT_FOUND (Ali Ijaz Sheikh) #25690
  • remove dead code (Ruben Bridgewater) #26983
  • make require('.') never resolve outside the current directory (Ruben Bridgewater) #26973
  • throw an error for invalid package.json main entries (Ruben Bridgewater) #26823
  • don't search in require.resolve.paths (cjihrig) #23683
  • net:
  • remove Server.listenFD() (cjihrig) #27127
  • do not add .host and .port properties to DNS error (Ruben Bridgewater) #26751
  • emit "write after end" errors in the next tick (Ouyang Yadong) #24457
  • deprecate _setSimultaneousAccepts() undocumented function (James M Snell) #23760
  • os:
  • implement os.type() using uv_os_uname() (cjihrig) #25659
  • remove os.getNetworkInterfaces() (cjihrig) #25280
  • process:
  • make global.process, global.Buffer getters (Guy Bedford) #26882
  • move DEP0062 (node --debug) to end-of-life (Joyee Cheung) #25828
  • exit on --debug and --debug-brk after option parsing (Joyee Cheung) #25828
  • improve --redirect-warnings handling (Ruben Bridgewater) #24965
  • repl:
  • add welcome message (gengjiawen) #25947
  • fix terminal default setting (Ruben Bridgewater) #26518
  • check colors with .getColorDepth() (Vladislav Kaminsky) #26261
  • deprecate REPLServer.rli (Ruben Bridgewater) #26260
  • src:
  • remove unused INT_MAX constant (Sam Roberts) #27078
  • update NODE_MODULE_VERSION to 72 (Ujjwal Sharma) #26685
  • remove AddPromiseHook() (Anna Henningsen) #26574
  • clean up MultiIsolatePlatform interface (Anna Henningsen) #26384
  • properly configure default heap limits (Ali Ijaz Sheikh) #25576
  • remove icuDataDir from node config (GauthamBanasandra) #24780
  • tls:
  • support TLSv1.3 (Sam Roberts) #26209
  • return correct version from getCipher() (Sam Roberts) #26625
  • check arg types of renegotiate() (Sam Roberts) #25876
  • add code for ERR_TLS_INVALID_PROTOCOL_METHOD (Sam Roberts) #24729
  • emit a warning when servername is an IP address (Rodger Combs) #23329
  • disable TLS v1.0 and v1.1 by default (Ben Noordhuis) #23814
  • remove unused arg to createSecureContext() (Sam Roberts) #24241
  • deprecate Server.prototype.setOptions() (cjihrig) #23820
  • load NODE_EXTRA_CA_CERTS at startup (Ouyang Yadong) #23354
  • util:
  • remove util.print(), util.puts(), util.debug() and util.error() (cjihrig) #25377
  • change inspect compact and breakLength default (Ruben Bridgewater) #27109
  • improve inspect edge cases (Ruben Bridgewater) #27109
  • only the first line of the error message (Simon Zünd) #26685
  • don't set the prototype of callbackified functions (Ruben Bridgewater) #26893
  • rename callbackified function (Ruben Bridgewater) #26893
  • increase function length when using callbackify() (Ruben Bridgewater) #26893
  • prevent tampering with internals in inspect() (Ruben Bridgewater) #26577
  • prevent Proxy traps being triggered by .inspect() (Ruben Bridgewater) #26241
  • prevent leaking internal properties (Ruben Bridgewater) #24971
  • protect against monkeypatched Object prototype for inspect() (Rich Trott) #25953
  • treat format arguments equally (Roman Reiss) #23162
  • win, fs: detect if symlink target is a directory (Bartosz Sosnowski) #23724
  • zlib:
  • throw TypeError if callback is missing (Anna Henningsen) #24929
  • make “bare” constants un-enumerable (Anna Henningsen) #24824
  • Semver-Major Commits:
  • [afce912193] - (SEMVER-MAJOR) assert: improve performance to instantiate errors (Ruben Bridgewater) #26738
  • [5a3623af74] - (SEMVER-MAJOR) assert: validate required arguments (Ruben Bridgewater) #26641
  • [7493db21b6] - (SEMVER-MAJOR) assert: adjust loose assertions (Ruben Bridgewater) #25008
  • [9d064439e5] - (SEMVER-MAJOR) async_hooks: remove deprecated emitBefore and emitAfter (Matteo Collina) #26530
  • [1a2cf6696f] - (SEMVER-MAJOR) async_hooks: remove promise object from resource (Andreas Madsen) #23443
  • [c992639fbd] - (SEMVER-MAJOR) bootstrap: make Buffer and process non-enumerable (Ruben Bridgewater) #24874
  • [693401d0dd] - (SEMVER-MAJOR) buffer: use stricter range checks (Ruben Bridgewater) #27045
  • [6113ba96cb] - (SEMVER-MAJOR) buffer: harden SlowBuffer creation (ZYSzys) #26272
  • [6fb7baf935] - (SEMVER-MAJOR) buffer: harden validation of buffer allocation size (ZYSzys) #26162
  • [c6d29ccf5a] - (SEMVER-MAJOR) buffer: do proper error propagation in addon methods (Anna Henningsen) #23939
  • [a7d7d4dfb7] - (SEMVER-MAJOR) build: increase MACOS_DEPLOYMENT_TARGET to 10.10 (Rod Vagg) #27275
  • [561327702d] - (SEMVER-MAJOR) build: reset embedder string to "-node.0" (Ujjwal Sharma) #26685
  • [dfcc918e65] - (SEMVER-MAJOR) build: reset embedder string to "-node.0" (Michaël Zasso) #25852
  • [9334e45aa0] - (SEMVER-MAJOR) build: remove mips support (Ben Noordhuis) #26192
  • [bb564a3688] - (SEMVER-MAJOR) build: update prerequisites on progress towards Python 3 (cclauss) #25766
  • [3c332abe28] - (SEMVER-MAJOR) build: reset embedder string to "-node.0" (Michaël Zasso) #23423
  • [765766be64] - (SEMVER-MAJOR) build: add common defines (Refael Ackermann) #23426
  • [3b5773fee3] - (SEMVER-MAJOR) build,deps: move gypfiles out 2/2 - moving (Refael Ackermann) #26685
  • [3531fe9320] - (SEMVER-MAJOR) build,deps: add NOMINMAX to V8 Windows builds (Refael Ackermann) #25852
  • [ff5d632a83] - (SEMVER-MAJOR) build,deps: fix V8 snapshot gyp dependencies (Refael Ackermann) #25852
  • [ecf98b0839] - (SEMVER-MAJOR) build,meta: quiet/pretty make output by default (Refael Ackermann) #26740
  • [2f477bd34d] - (SEMVER-MAJOR) build,win: mark x86 image as not SAFESEH (Refael Ackermann) #25852
  • [652877e3a9] - (SEMVER-MAJOR) child_process: change the defaults maxBuffer size (kohta ito) #27179
  • [9ad5106934] - (SEMVER-MAJOR) child_process: harden fork arguments validation (ZYSzys) #27039
  • [eb8a51a35c] - (SEMVER-MAJOR) child_process: use non-infinite maxBuffer defaults (kohta ito) #23027
  • [99523758dc] - (SEMVER-MAJOR) console: don't use ANSI escape codes when TERM=dumb (Vladislav Kaminsky) #26261
  • [2f1ed5c063] - (SEMVER-MAJOR) crypto: remove legacy native handles (Tobias Nießen) #27011
  • [2e2c015422] - (SEMVER-MAJOR) crypto: decode missing passphrase errors (Tobias Nießen) #25208
  • [b8018f407b] - (SEMVER-MAJOR) crypto: move DEP0113 to End-of-Life (Tobias Nießen) #26249
  • [bf3cb3f9b1] - (SEMVER-MAJOR) crypto: remove deprecated crypto._toBuf (Tobias Nießen) #25338
  • [0f63d84f80] - (SEMVER-MAJOR) crypto: set DEFAULT_ENCODING property to non-enumerable (Antoine du Hamel) #23222
  • [95e779a6e9] - (SEMVER-MAJOR) deps: silence irrelevant V8 warning (Michaël Zasso) #26685
  • [08efd3060d] - (SEMVER-MAJOR) deps: update postmortem metadata generation script (cjihrig) #26685
  • [0da7e99f98] - (SEMVER-MAJOR) deps: V8: un-cherry-pick bd019bd (Refael Ackermann) #26685
  • [b1015e0de8] - (SEMVER-MAJOR) deps: V8: cherry-pick 6 commits (Michaël Zasso) #26685
  • [8181811d73] - (SEMVER-MAJOR) deps: V8: cherry-pick d82c9af (Anna Henningsen) #26685
  • [1f03fb4d49] - (SEMVER-MAJOR) deps: V8: cherry-pick e5f01ba (Anna Henningsen) #26685
  • [e6af2207a9] - (SEMVER-MAJOR) deps: V8: cherry-pick d5f08e4 (Anna Henningsen) #26685
  • [963061bc02] - (SEMVER-MAJOR) deps: V8: cherry-pick 6b09d21 (Anna Henningsen) #26685
  • [b7338b700f] - (SEMVER-MAJOR) deps: V8: cherry-pick f0bb5d2 (Anna Henningsen) #26685
  • [02171949a0] - (SEMVER-MAJOR) deps: V8: cherry-pick 5b0510d (Anna Henningsen) #26685
  • [bf572c7831] - (SEMVER-MAJOR) deps: V8: cherry-pick 91f0cd0 (Anna Henningsen) #26685
  • [09f134fccf] - (SEMVER-MAJOR) deps: V8: cherry-pick 392316d (Anna Henningsen) #26685
  • [53ea813d5c] - (SEMVER-MAJOR) deps: V8: cherry-pick 2f79d68 (Anna Henningsen) #26685
  • [cc75ba3f14] - (SEMVER-MAJOR) deps: sync V8 gypfiles with 7.4 (Ujjwal Sharma) #26685
  • [f579e11940] - (SEMVER-MAJOR) deps: update V8 to 7.4.288.13 (Ujjwal Sharma) #26685
  • [e0b3de1e90] - (SEMVER-MAJOR) deps: bump minimum icu version to 63 (Ujjwal Sharma) #25852
  • [1c494b0a95] - (SEMVER-MAJOR) deps: silence irrelevant V8 warnings (Michaël Zasso) #25852
  • [cec35a5eb9] - (SEMVER-MAJOR) deps: V8: cherry-pick 7803fa6 (Jon Kunkee) #25852
  • [0d4d6b39a7] - (SEMVER-MAJOR) deps: V8: cherry-pick 58cefed (Jon Kunkee) #25852
  • [bea1a386a3] - (SEMVER-MAJOR) deps: V8: cherry-pick d3308d0 (Michaël Zasso) #25852
  • [cf649c9b02] - (SEMVER-MAJOR) deps: V8: cherry-pick 74571c8 (Michaël Zasso) #25852
  • [44d5401b8d] - (SEMVER-MAJOR) deps: cherry-pick fc0ddf5 from upstream V8 (Anna Henningsen) #25852
  • [cefb8029cd] - (SEMVER-MAJOR) deps: sync V8 gypfiles with 7.3 (Ujjwal Sharma) #25852
  • [d266e3e2cf] - (SEMVER-MAJOR) deps: sync V8 gypfiles with 7.2 (Michaël Zasso) #25852
  • [7b48713334] - (SEMVER-MAJOR) deps: update V8 to 7.3.492.25 (Michaël Zasso) #25852
  • [6df7bd6c3b] - (SEMVER-MAJOR) deps: add s390 asm rules for OpenSSL-1.1.1 (Shigeki Ohtsu) #19794
  • [5620727f30] - (SEMVER-MAJOR) deps: sync V8 gypfiles with 7.1 (Refael Ackermann) #23423
  • [9b4bf7de6c] - (SEMVER-MAJOR) deps: update V8 to 7.1.302.28 (Michaël Zasso) #23423
  • [3d8b844112] - (SEMVER-MAJOR) deps,build: move gypfiles out 1/2 - required changes (Refael Ackermann) #26685
  • [fff922afee] - (SEMVER-MAJOR) deps,build: compute torque_outputs in v8.gyp (Refael Ackermann) #26685
  • [4507246adc] - (SEMVER-MAJOR) deps,build: refactor v8 gypfiles (Refael Ackermann) #26685
  • [b581d59655] - (SEMVER-MAJOR) doc: update supported platforms for Node.js 12 (Rod Vagg) #26714
  • [309e7723ea] - (SEMVER-MAJOR) doc: update behaviour of fs.writeFile (Sakthipriyan Vairamani (thefourtheye)) #25080
  • [89740a4f0e] - (SEMVER-MAJOR) doc: add internal functionality details of util.inherits (Ruben Bridgewater) #24755
  • [1ed3c54ecb] - (SEMVER-MAJOR) errors: update error name (Ruben Bridgewater) #26738
  • [abafd38c8d] - (SEMVER-MAJOR) fs: use proper .destroy() implementation for SyncWriteStream (Matteo Collina) #26690
  • [1cdeb9f956] - (SEMVER-MAJOR) fs: improve mode validation (Ruben Bridgewater) #26575
  • [70f4f08a9f] - (SEMVER-MAJOR) fs: harden validation of start option in createWriteStream (ZYSzys) #25579
  • [8f4b924f4a] - (SEMVER-MAJOR) fs: make writeFile consistent with readFile wrt fd (Sakthipriyan Vairamani (thefourtheye)) #23709
  • [907941d48e] - (SEMVER-MAJOR) http: validate timeout in ClientRequest() (cjihrig) #26214
  • [bcf2886a84] - (SEMVER-MAJOR) http: return HTTP 431 on HPE_HEADER_OVERFLOW error (Albert Still) #25605
  • [2cb8f24751] - (SEMVER-MAJOR) http: switch default parser to llhttp (Anna Henningsen) #24870
  • [91748dd89c] - (SEMVER-MAJOR) http: change DEP0066 to a runtime deprecation (Morgan Roderick) #24167
  • [f3b49cfa7b] - (SEMVER-MAJOR) http: else case is not reachable (szabolcsit) #24176
  • [bd9109c241] - (SEMVER-MAJOR) lib: move DEP0021 to end of life (cjihrig) #27127
  • [15c0947fee] - (SEMVER-MAJOR) lib: remove Atomics.wake (Gus Caplan) #27033
  • [3fe1e80896] - (SEMVER-MAJOR) lib: validate Error.captureStackTrace() calls (Ruben Bridgewater) #26738
  • [bfbce289c3] - (SEMVER-MAJOR) lib: refactor Error.captureStackTrace() usage (Ruben Bridgewater) #26738
  • [f9ddbb6b2f] - (SEMVER-MAJOR) lib: move DTRACE_* probes out of global scope (James M Snell) #26541
  • [c7e628f8b3] - (SEMVER-MAJOR) lib: deprecate _stream_wrap (Sam Roberts) #26245
  • [be78266fb3] - (SEMVER-MAJOR) lib: don't use util.inspect() internals (Ruben Bridgewater) #24971
  • [a02e3e2d5f] - (SEMVER-MAJOR) lib: improve error message for MODULE_NOT_FOUND (Ali Ijaz Sheikh) #25690
  • [05cd1a0929] - (SEMVER-MAJOR) lib: requireStack property for MODULE_NOT_FOUND (Ali Ijaz Sheikh) #25690
  • [29d3d1ea13] - (SEMVER-MAJOR) lib: move DEP0029 to end of life (cjihrig) #25377
  • [a665d13ad9] - (SEMVER-MAJOR) lib: move DEP0028 to end of life (cjihrig) #25377
  • [10df21b071] - (SEMVER-MAJOR) lib: move DEP0027 to end of life (cjihrig) #25377
  • [2d578ad996] - (SEMVER-MAJOR) lib: move DEP0026 to end of life (cjihrig) #25377
  • [853bee0acf] - (SEMVER-MAJOR) lib: move DEP0023 to end of life (cjihrig) #25280
  • [d4934ae6f2] - (SEMVER-MAJOR) lib: move DEP0006 to end of life (cjihrig) #25279
  • [4100001624] - (SEMVER-MAJOR) lib: remove unintended access to deps/ (Anna Henningsen) #25138
  • [b416dafb87] - (SEMVER-MAJOR) lib: move DEP0120 to end of life (cjihrig) #24862
  • [59257543c3] - (SEMVER-MAJOR) lib: use ES6 class inheritance style (Ruben Bridgewater) #24755
  • [dcc82b37b6] - (SEMVER-MAJOR) lib: remove inherits() usage (Ruben Bridgewater) #24755
  • [d11c4beb4b] - (SEMVER-MAJOR) module: remove dead code (Ruben Bridgewater) #26983
  • [75007d64c0] - (SEMVER-MAJOR) module: mark DEP0019 as End-of-Life (Ruben Bridgewater) #26973
  • [115f0f5a57] - (SEMVER-MAJOR) module: throw an error for invalid package.json main entries (Ruben Bridgewater) #26823
  • [60ce2fd827] - (SEMVER-MAJOR) module: don't search in require.resolve.paths (cjihrig) #23683
  • [f0f26cedcc] - (SEMVER-MAJOR) n-api: remove code from error name (Ruben Bridgewater) #26738
  • [96204c3c71] - (SEMVER-MAJOR) net: do not manipulate potential user code (Ruben Bridgewater) #26751
  • [9389b464ea] - (SEMVER-MAJOR) net: emit "write after end" errors in the next tick (Ouyang Yadong) #24457
  • [1523111250] - (SEMVER-MAJOR) net: deprecate _setSimultaneousAccepts() undocumented function (James M Snell) #23760
  • [802ea05a37] - (SEMVER-MAJOR) net,http2: merge setTimeout code (ZYSzys) #25084
  • [16e4cd19f2] - (SEMVER-MAJOR) os: implement os.type() using uv_os_uname() (cjihrig) #25659
  • [53ebd3311d] - (SEMVER-MAJOR) process: global.process, global.Buffer getters (Guy Bedford) #26882
  • [fa5e097530] - (SEMVER-MAJOR) process: move DEP0062 (node --debug) to end-of-life (Joyee Cheung) #25828
  • [154efc9bde] - (SEMVER-MAJOR) process: exit on --debug and --debug-brk after option parsing (Joyee Cheung) #25828
  • [3439c955ab] - (SEMVER-MAJOR) process: improve --redirect-warnings handling (Ruben Bridgewater) #24965
  • [d3a62fe7fc] - (SEMVER-MAJOR) readline: support TERM=dumb (Vladislav Kaminsky) #26261
  • [fe963149f6] - (SEMVER-MAJOR) repl: add welcome message (gengjiawen) #25947
  • [97737fd5fb] - (SEMVER-MAJOR) repl: fix terminal default setting (Ruben Bridgewater) #26518
  • [82b3ee776b] - (SEMVER-MAJOR) repl: check colors with .getColorDepth() (Vladislav Kaminsky) #26261
  • [584305841d] - (SEMVER-MAJOR) repl: deprecate REPLServer.rli (Ruben Bridgewater) #26260
  • [bf766c1b44] - (SEMVER-MAJOR) src: remove unused INT_MAX constant (Sam Roberts) #27078
  • [7df9e77236] - (SEMVER-MAJOR) src: update NODE_MODULE_VERSION to 72 (Ujjwal Sharma) #26685
  • [96c3224de0] - (SEMVER-MAJOR) src: remove AddPromiseHook() (Anna Henningsen) #26574
  • [9577f7724d] - (SEMVER-MAJOR) src: update NODE_MODULE_VERSION to 71 (Michaël Zasso) #25852
  • [6d9aa73b1f] - (SEMVER-MAJOR) src: clean up MultiIsolatePlatform interface (Anna Henningsen) #26384
  • [1d996f58af] - (SEMVER-MAJOR) src: properly configure default heap limits (Ali Ijaz Sheikh) #25576
  • [9021b0d3fc] - (SEMVER-MAJOR) src: remove icuDataDir from node config (GauthamBanasandra) #24780
  • [a6f69ebc05] - (SEMVER-MAJOR) src: explicitly allow JS in ReadHostObject (Yang Guo) #23423
  • [3d25544148] - (SEMVER-MAJOR) src: update postmortem constant (cjihrig) #23423
  • [23603447ad] - (SEMVER-MAJOR) src: update NODE_MODULE_VERSION to 68 (Michaël Zasso) #23423
  • [afad3b443e] - (SEMVER-MAJOR) test: update postmortem metadata test for V8 7.4 (cjihrig) #26685
  • [e96e3f9eb0] - (SEMVER-MAJOR) test: remove redundant common.mustCall (Ruben Bridgewater) #26738
  • [01b112a031] - (SEMVER-MAJOR) test: update postmortem metadata test for V8 7.3 (cjihrig) #25852
  • [38ad285a2e] - (SEMVER-MAJOR) test: fix tests after V8 update (Michaël Zasso) #25852
  • [260d5f8c3b] - (SEMVER-MAJOR) test: update test-v8-stats (Michaël Zasso) #25852
  • [78c8491a7e] - (SEMVER-MAJOR) test: remove apply calls over 65534 arg limit (Peter Marshall) #25852
  • [22a9fe3552] - (SEMVER-MAJOR) test: add test for net-socket-setTimeout callback (ZYSzys) #25084
  • [379bf1aa8e] - (SEMVER-MAJOR) test: update postmortem metadata test for V8 7.1 (cjihrig) #23423
  • [624a242b05] - (SEMVER-MAJOR) test: simplify regression test for SEGV (Sam Roberts) #24241
  • [42dbaed460] - (SEMVER-MAJOR) tls: support TLSv1.3 (Sam Roberts) #26209
  • [0f745bf9bd] - (SEMVER-MAJOR) tls: return correct version from getCipher() (Sam Roberts) #26625
  • [6b7c402518] - (SEMVER-MAJOR) tls: check arg types of renegotiate() (Sam Roberts) #25876
  • [b05b330025] - (SEMVER-MAJOR) tls: add code for ERR_TLS_INVALID_PROTOCOL_METHOD (Sam Roberts) #24729
  • [9b2ffff62c] - (SEMVER-MAJOR) tls: emit a warning when servername is an IP address (Rodger Combs) #23329
  • [60eca6a5d4] - (SEMVER-MAJOR) tls: disable TLS v1.0 and v1.1 by default (Ben Noordhuis) #23814
  • [3b4159c8ed] - (SEMVER-MAJOR) tls: remove unused arg to createSecureContext() (Sam Roberts) #24241
  • [246a6fc107] - (SEMVER-MAJOR) tls: deprecate Server.prototype.setOptions() (cjihrig) #23820
  • [87719d792b] - (SEMVER-MAJOR) tls: load NODE_EXTRA_CA_CERTS at startup (Ouyang Yadong) #23354
  • [c9fece38c8] - (SEMVER-MAJOR) util: change inspect compact and breakLength default (Ruben Bridgewater) #27109
  • [892c51f330] - (SEMVER-MAJOR) util: improve inspect edge cases (Ruben Bridgewater) #27109
  • [63e13fd220] - (SEMVER-MAJOR) util: only the first line of the error message (Simon Zünd) #26685
  • [b5ea925c8e] - (SEMVER-MAJOR) util: don't set the prototype of callbackified functions (Ruben Bridgewater) #26893
  • [46bf0d0f4f] - (SEMVER-MAJOR) util: rename callbackified function (Ruben Bridgewater) #26893
  • [61d1334e5b] - (SEMVER-MAJOR) util: increase function length when using callbackify() (Ruben Bridgewater) #26893
  • [5672ab7668] - (SEMVER-MAJOR) util: prevent tampering with internals in inspect() (Ruben Bridgewater) #26577
  • [a32cbe1597] - (SEMVER-MAJOR) util: fix proxy inspection (Ruben Bridgewater) #26241
  • [7b674697d8] - (SEMVER-MAJOR) util: prevent leaking internal properties (Ruben Bridgewater) #24971
  • [1847696f4b] - (SEMVER-MAJOR) util: protect against monkeypatched Object prototype for inspect() (Rich Trott) #25953
  • [c1b9be53c8] - (SEMVER-MAJOR) util: treat format arguments equally (Roman Reiss) #23162
  • [cda6b20816] - (SEMVER-MAJOR) win, fs: detect if symlink target is a directory (Bartosz Sosnowski) #23724
  • [9a2654601e] - (SEMVER-MAJOR) zlib: throw TypeError if callback is missing (Anna Henningsen) #24929
  • [4eee55d354] - (SEMVER-MAJOR) zlib: make “bare” constants un-enumerable (Anna Henningsen) #24824
  • Semver-Minor Commits:
  • [3d8532f851] - (SEMVER-MINOR) buffer: add {read|write}Big[U]Int64{BE|LE} methods (Nikolai Vavilov) #19691
  • [969bd1eb7b] - (SEMVER-MINOR) crypto: add support for RSA-PSS keys (Tobias Nießen) #26960
  • [7d0e50dcfe] - (SEMVER-MINOR) crypto: add crypto.sign() and crypto.verify() (Brian White) #26611
  • [bcbd35a48d] - (SEMVER-MINOR) crypto: add openssl specific error properties (Sam Roberts) #26868
  • [85fda7e848] - (SEMVER-MINOR) crypto: add support for x25119 and x448 KeyObjects (Filip Skokan) #26774
  • [3a9592496c] - (SEMVER-MINOR) crypto: add support for EdDSA key pair generation (Tobias Nießen) #26554
  • [4895927a0a] - (SEMVER-MINOR) crypto: add KeyObject.asymmetricKeySize (Patrick Gansterer) #26387
  • [2161690024] - (SEMVER-MINOR) deps: update nghttp2 to 1.38.0 (gengjiawen) #27295
  • [ffd2df063c] - (SEMVER-MINOR) doc: update util colors (Ruben Bridgewater) #27052
  • [b1094dbe19] - (SEMVER-MINOR) esm: phase two of new esm implementation (guybedford) #26745
  • [e0e3084482] - (SEMVER-MINOR) inspector: implement --cpu-prof[-path] (Joyee Cheung) #27147
  • [9f1282d536] - (SEMVER-MINOR) lib: move queueMicrotask to stable (Gus Caplan) #25594
  • [9b6b567bc4] - (SEMVER-MINOR) lib,src,doc: add --heapsnapshot-signal CLI flag (cjihrig) #27133
  • [9dcc9b6a6b] - (SEMVER-MINOR) process: add --unhandled-rejections flag (Ruben Bridgewater) #26599
  • [ece507394a] - (SEMVER-MINOR) src: do not reuse async resource in http parsers (Daniel Beckert) #25094
  • [2755471bf3] - (SEMVER-MINOR) src: print error before aborting (Ruben Bridgewater) #26599
  • [ca9c0c90c2] - (SEMVER-MINOR) src: add .code and SSL specific error properties (Sam Roberts) #25093
  • [8c69e06972] - (SEMVER-MINOR) tls: return an OpenSSL error from renegotiate (Sam Roberts) #26868
  • [90e958aa4d] - (SEMVER-MINOR) util: only sort weak entries once (Ruben Bridgewater) #27052
  • [1940114ac3] - (SEMVER-MINOR) util: highlight stack frames (Ruben Bridgewater) #27052
  • Semver-Patch Commits:
  • [75463a9004] - assert: fix rejects stack trace and operator (Ruben Bridgewater) #27047
  • [d3d4e10107] - async_hooks: improve AsyncResource performance (Anatoli Papirovski) #27032
  • [3973354951] - benchmark: fix buffer-base64-decode.js (Rich Trott) #27260
  • [f98679f3b2] - benchmark: add benchmark for dns.promises.lookup() (Rich Trott) #27249
  • [29d0b43426] - benchmark: fix http headers benchmark (Anatoli Papirovski) #27021
  • [77dee25efd] - benchmark: remove deprecated argument (Rich Trott) #27091
  • [b08a867d60] - benchmark,doc,lib: capitalize more comments (Ruben Bridgewater) #26849
  • [d834275a48] - buffer: fix custom inspection with extra properties (Ruben Bridgewater) #27074
  • [75eaf25e78] - buffer: use stricter from() input validation (Ruben Bridgewater) #26825
  • [5aaf666b3b] - build: improve embedded code-cache detection (Refael Ackermann) #27311
  • [d17dfc7bb1] - build: remove redundant pyenv call in Travis build (Richard Lau) #27247
  • [14df42fd00] - build: run mkcodecache as an action (Refael Ackermann) #27161
  • [b468a1dfc3] - build: pin Python version in Travis (Richard Lau) #27166
  • [7b0d867389] - build: fix test failures not failing Travis builds (Richard Lau) #27176
  • [56354d480d] - build: run flaky tests in Travis (Anna Henningsen) #27158
  • [72f4a830d7] - build: tidy up additional libraries on Windows (Richard Lau) #27138
  • [af03de48d8] - build: don't use lint-ci on Travis (Richard Lau) #27062
  • [41ba699973] - build: update configure for Node.js 12 (Richard Lau) #26719
  • [20a917c571] - build: move optimizing link directives to node.exe target (Refael Ackermann) #25931
  • [4698757610] - build,deps: remove cygwin configuration which is not supported (Refael Ackermann) #25931
  • [cd5c7bf240] - build,deps: use PCH also for v8_initializers (Refael Ackermann) #25931
  • [6608cf286d] - build,deps,v8: tie up loose ends (Refael Ackermann) #26666
  • [6ac80f0e2b] - build,src: add PCH to node.gypi (Refael Ackermann) #25931
  • [f216d5bbb1] - build,test: fail coverage target if tests fail (Refael Ackermann) #25432
  • [82b798907d] - build,tools: add more headers to V8 PCH file (Refael Ackermann) #25931
  • [d66c7e3470] - build,win: deprecate vcbuild test-ci (Refael Ackermann) #27231
  • [0fc27f6bc0] - build,win: bail vcbuild if mklink fails (Refael Ackermann) #27216
  • [88beaf01f1] - build,win: rename node.lib to libnode.lib (Refael Ackermann) #27150
  • [25df3c10f4] - build,win: put all compilation artifacts into out (Refael Ackermann) #27149
  • [06c10cdc4c] - build,win: teach GYP MSVS generator about MARMASM (Jon Kunkee) #26020
  • [2ffd20bb91] - build,win: emit MSBuild summary (Refael Ackermann) #25931
  • [ff4adab78c] - build,win: always build with PCH (Refael Ackermann) #25931
  • [28e2c3771d] - child_process: rename _validateStdtio to getValidStdio (Ruben Bridgewater) #26809
  • [091902ae00] - console: remove trace frame (Ruben Bridgewater) #27159
  • [a8eac78f8d] - Revert "console: use consolePropAttributes for k-bind properties in constructor" (Daniel Bevenius) #26943
  • [ed5e69d7e6] - console: use consolePropAttributes for k-bind properties in constructor (Beni von Cheni) #26850
  • [69140bc7f8] - crypto: do not abort when setting throws (Sam Roberts) #27157
  • [0911e88056] - crypto: fix rsa key gen with non-default exponent (Sam Roberts) #27092
  • [fadcb2d850] - crypto: simplify missing passphrase detection (Tobias Nießen) #27089
  • [73bca57988] - crypto: fail early if passphrase is too long (Tobias Nießen) #27010
  • [05bd6071a6] - crypto: use EVP_PKEY_X448 in GetEphemeralKeyInfo (cjihrig) #26988
  • [6ac692a3db] - crypto: use EVP_PKEY_X25519 in GetEphemeralKeyInfo (cjihrig) #26988
  • [7c1fc93e30] - crypto: don't crash on unknown asymmetricKeyType (Filip Skokan) #26786
  • [df1c9eb975] - crypto: rename generateKeyPairEdDSA (Tobias Nießen) #26900
  • [751c92d972] - crypto: remove obsolete encoding check (Ruben Bridgewater) #26809
  • [6f77af541e] - Revert "crypto: add KeyObject.asymmetricKeySize" (Tobias Nießen) #26636
  • [247c14c040] - crypto: fix EdDSA support for KeyObject (Brian White) #26319
  • [90cf2d5f00] - deps: use nghttp2's config.h on all platforms (Sam Roberts) #27283
  • [aec2ce4ee1] - deps: upgrade to libuv 1.28.0 (cjihrig) #27241
  • [7f29117de3] - deps: patch V8 to 7.4.288.21 (Matheus Marchini) #27265
  • [033f6b566e] - deps: upgrade npm to 6.9.0 (Kat Marchán) #26244
  • [135b79a31d] - deps: patch V8 to 7.4.288.18 (Michaël Zasso) #27066
  • [c1d61f2b4b] - deps: patch V8 to 7.4.288.17 (Michaël Zasso) #27066
  • [5b8434eebc] - deps: V8: cherry-pick 0188634 (Michaël Zasso) #27013
  • [8cc181c8ee] - deps: V8: cherry-pick c8785d1 (Michaël Zasso) #27013
  • [2ea9de2e85] - deps: V8: cherry-pick f4b860d (Michaël Zasso) #27013
  • [ddbb7d7777] - deps: cherry-pick 56f6a76 from upstream V8 (Ruben Bridgewater) #25269
  • [59fa7f1257] - deps: cherry-pick 26b145a from upstream V8 (Sam Roberts) #25148
  • [a9812142ca] - deps: patch V8 to 7.1.302.33 (Ruben Bridgewater) #25101
  • [f0e460968e] - deps: remove test-related GYP files (Michaël Zasso) #25097
  • [323a365766] - deps: float 26d7fce1 from openssl (Rod Vagg) #24353
  • [d8fb81fab3] - deps: float 99540ec from openssl (CVE-2018-0735) (Rod Vagg) #23950
  • [213c7d2d64] - deps: float a9cfb8c2 from openssl (CVE-2018-0734) (Rod Vagg) #23965
  • [e2260e901d] - deps: float 415c3356 from openssl (DSA vulnerability) (Rod Vagg) #23965
  • [e356807a79] - deps,test: bump googletest to 39f72ea6f5 (Refael Ackermann) #27231
  • [8e308e8b28] - deps,v8: cherry-pick 385aa80 (Refael Ackermann) #26702
  • [d1b7193428] - deps,v8: silence V8 self-deprecation warnings (Refael Ackermann) #25394
  • [9e960175d1] - dgram: add support for UDP connected sockets (Santiago Gimeno) #26871
  • [09cdc37824] - dns: do not indicate invalid IPs are IPv6 (Rich Trott) #27081
  • [bc2d258a3e] - dns: refactor internal/dns/promises.js (Rich Trott) #27081
  • [72308a5deb] - doc: simplify nomination process text (Rich Trott) #27317
  • [290faec0e7] - doc: fix extname with the correct description (himself65) #27303
  • [d4dae5e1ca] - doc: simplify bullet points in GOVERNANCE.md (Rich Trott) #27284
  • [ba74e42000] - doc: revise Collaborator Nominations introduction (Rich Trott) #27237
  • [c61c722c8c] - doc: add ABI version registry (Rod Vagg) #24114
  • [7938238b31] - doc: add internal documentation (Aymen Naghmouchi) #26665
  • [82e6c3378f] - doc: revise TSC Meetings material in GOVERNANCE.md (Rich Trott) #27204
  • [d5f9cf81e3] - doc: fix some links (Vse Mozhet Byt) #27141
  • [7b854959e7] - doc: revise TSC text in GOVERNANCE.md (Rich Trott) #27169
  • [9b859f50d5] - doc: add missing n-api version indicator (Michael Dawson) #27155
  • [41d5666aaa] - doc: consolidate Collaborator status in GOVERNANCE (Rich Trott) #27128
  • [1656cd2edb] - doc: remove outdated link (cjihrig) #27126
  • [643a2fa447] - doc: specify return type for tty.isatty() (Mykola Bilochub) #27154
  • [557bd861aa] - doc: revise Collaborator material in GOVERNANCE.md (Rich Trott) #27103
  • [1afec97130] - doc: link bigint type to MDN instead of proposal (Vse Mozhet Byt) #27101
  • [21b739fb69] - doc: add missing step to npm release process (Myles Borins) #27105
  • [181052d7c2] - doc: revise Collaborator description in GOVERNANCE.md (Rich Trott) #27071
  • [10eaf6a09f] - doc: fix section sorting, add link reference (Vse Mozhet Byt) #27075
  • [d989e20717] - doc: describe tls.DEFAULT_MIN_VERSION/_MAX_VERSION (Sam Roberts) #26821
  • [0622ce6e7f] - doc: fix changelog date typo (Jesse McCarthy) #26831
  • [cd9898a52a] - doc: add missing pr-url (cjihrig) #26753
  • [06879aafee] - doc: fix year in changelog (Colin Prince) #26584
  • [7e0ddf66b9] - doc: fix deprecation "End-of-Life" capitalization (Tobias Nießen) #26251
  • [3d4db3a7bf] - doc: fix metadata of DEP0114 (Tobias Nießen) #26250
  • [ccf37b3a84] - doc: fix deprecations metadata (Richard Lau) #25434
  • [3614157b78] - doc: fix lint in CHANGELOG_V6 (Myles Borins) #25233
  • [928f776385] - doc: add missing pr-url (cjihrig) #25091
  • [43273262e5] - doc: describe secureProtocol and CLI interaction (Sam Roberts) #24386
  • [34eccb2a1b] - doc: fix missing PR id of 23329 (Ouyang Yadong) #24458
  • [db2ac1dbd9] - doc: fix headings for CHANGELOG_v10.md (Myles Borins) #23973
  • [c99026bdd7] - doc: update missing deprecation (cjihrig) #23883
  • [4afd503465] - doc,test,repl: fix deprecation code (cjihrig) #26368
  • [3b044962c4] - errors: add more information in case of invalid callbacks (Ruben Bridgewater) #27048
  • [96e46d37c4] - esm: replace --entry-type with --input-type (Geoffrey Booth) #27184
  • [5e98f875b9] - esm: fix typos (Geoffrey Booth) #27067
  • [7a547098d5] - esm: use primordials (Myles Borins) #26954
  • [2400cbcf7c] - fs: fix infinite loop with async recursive mkdir on Windows (Richard Lau) #27207
  • [b925379f50] - fs: warn on non-portable mkdtemp() templates (cjihrig) #26980
  • [eb2d4161f5] - fs: improve readFile performance (Ruben Bridgewater) #27063
  • [92db780d9e] - http2: rename function for clarity (Ruben Bridgewater) #26809
  • [ce265908eb] - http2: remove side effects from validateSettings (Ruben Bridgewater) #26809
  • [cd3a9eebca] - https: remove usage of public require('util') (dnlup) #26772
  • [49d3d11ba7] - inspector: split --cpu-prof-path to --cpu-prof-dir and --cpu-prof-name (Joyee Cheung) #27306
  • [94adfe9831] - lib: replace --diagnostic-report-* with --report-* (Joyee Cheung) #27312
  • [49ee010005] - lib: use getOptionValue instead of process underscore aliases (Joyee Cheung) #27278
  • [a38e9c438a] - lib: require globals instead of using the global proxy (Joyee Cheung) #27112
  • [914d6c9ab8] - lib: use primordials in domexception.js (Joyee Cheung) #27171
  • [3da36d0e94] - lib: create primordials in every context (Joyee Cheung) #27171
  • [908292cf1f] - lib: enforce the use of Object from primordials (Michaël Zasso) #27146
  • [47f5cc1ad1] - lib: faster FreeList (Anatoli Papirovski) #27021
  • [5b9e57012a] - lib: add signal name validator (cjihrig) #27137
  • [112cc7c275] - lib: use safe methods from primordials (Michaël Zasso) #27096
  • [5a8c55f078] - lib: fix outdated comment (Vse Mozhet Byt) #27122
  • [de23055536] - lib: remove env: node in eslint config for lib files (Joyee Cheung) #27082
  • [2c49e8b537] - lib: make queueMicrotask faster (Anatoli Papirovski) #27032
  • [0817840f77] - lib: force using primordials for JSON, Math and Reflect (Michaël Zasso) #27027
  • [7bddfcc61a] - lib: consolidate arrayBufferView validation (Ruben Bridgewater) #26809
  • [6c913fb028] - lib: remove return values from validation functions (Ruben Bridgewater) #26809
  • [50a3fe20ea] - lib: rename validateMode to parseMode (Ruben Bridgewater) #26809
  • [76e67e9884] - lib: assign missed deprecation code (Anna Henningsen) #26492
  • [f3b5cc0807] - meta: travis: run compilation jobs first (Refael Ackermann) #27205
  • [7c816b7588] - module: explicitly initialize CJS loader (Joyee Cheung) #27313
  • [d6317d0a45] - module: remove usage of require('util') (dnlup) #26803
  • [ff89670902] - n-api: reduce gc finalization stress (Michael Dawson) #27085
  • [655c90b287] - net: inline maybeDestroy() (Luigi Pinca) #27136
  • [f0b3855a90] - net: remove usage of require('util') (dnlup) #26920
  • [9946c59707] - path: simplify normalizeString (Ruben Bridgewater) #27240
  • [9dba96dc1a] - process: patch more process properties during pre-execution (Joyee Cheung) #26945
  • [d4eda4d876] - process: remove protection for SyncWriteStream destroy in stdio (Matteo Collina) #26902
  • [2701f5538f] - readline: remove usage of require('util') (dnlup) #26818
  • [415a825dc0] - repl: remove usage of require('util') in repl.js (dnlup) #26820
  • [af35d4044f] - report: use uv_gettimeofday for dumpEventTimeStamp (cjihrig) #27029
  • [44a3acb627] - report: improve signal name validation (cjihrig) #27137
  • [e3032708e0] - report: add support for UDP connected sockets (Richard Lau) #27072
  • [8e1e9946a9] - src: use uv_gettimeofday() to get microseconds (cjihrig) #27029
  • [8eaf31181a] - src: apply modernize-use-nullptr in node_win32_etw_provider.cc (gengjiawen) #27263
  • [19e3e02a2d] - src: move SIGINT watchdog utils to the contextify binding (Joyee Cheung) #27290
  • [5356b4a675] - src: split per-process initialization and teardown routines (Joyee Cheung) #27276
  • [8d901bb44e] - src: move guessHandleType in the util binding (Joyee Cheung) #27289
  • [758191033f] - src: fix performance-faster-string-find in node_report.cc (gengjiawen) #27262
  • [dc8b57fdc1] - src: use ArrayBufferAllocator::Create in node_worker.cc (Anna Henningsen) #27251
  • [f9da3f0cce] - src: enable non-nestable V8 platform tasks (Anna Henningsen) #27252
  • [3ef1512f9e] - src: allows escaping NODE_OPTIONS with backslashes (Maël Nison) #24065
  • [cdba9f23ec] - src: handle fatal error when Environment is not assigned to context (Joyee Cheung) #27236
  • [83d1ca7de9] - src: disallow calling env-dependent methods during bootstrap (Joyee Cheung) #27234
  • [cab1dc5bb3] - src: use RAII to manage the main isolate data (Joyee Cheung) #27220
  • [1e7823dd4e] - src: remove redundant call in node_options-inl.h (gengjiawen) #26959
  • [73471236d8] - src: remove unimplemented method in TracingAgent (gengjiawen) #26959
  • [427fce711f] - src: fix check for accepting Buffers into Node’s allocator (Anna Henningsen) #27174
  • [dfd7e99425] - src: make a Environment-independent proxy class for NativeModuleLoader (Joyee Cheung) #27160
  • [060d901f87] - src: replace FromJust() with Check() when possible (Sam Roberts) #27162
  • [ee7daf76c0] - src: remove redundant string initialization (gengjiawen) #27152
  • [845a6214f8] - src: use macro instead of magic number for fd (gengjiawen) #27152
  • [547576f530] - src: always use diagnostic file sequence number (cjihrig) #27142
  • [c1e03eda07] - src: use SealHandleScope for inspector tasks (Anna Henningsen) #27116
  • [a3f30a48c2] - src: unify crypto constant setup (Sam Roberts) #27077
  • [97c0a34935] - src: don't point to out of scope variable (cjihrig) #27070
  • [864860e9f3] - src: port coverage serialization to C++ (Joyee Cheung) #26874
  • [d0e2650d03] - src: add NOLINT to js_native_.* (gengjiawen) #26884
  • [eb2dccb17a] - src: move AsyncResource impl out of public header (Ben Noordhuis) #26348
  • [e1d55a0cbc] - src: port bootstrap/cache.js to C++ (Joyee Cheung) #27046
  • [f59ec2abee] - src: implement MemoryRetainer in Environment (Joyee Cheung) #27018
  • [1087805eeb] - src: check return value, silence coverity warning (Ben Noordhuis) #26997
  • [bb98f27181] - src: check uv_fs_close() return value (cjihrig) #26967
  • [8bc7d2a5be] - src: fix data type when using uv_get_total_memory() (gengjiawen) #26886
  • [c0f031c5bd] - src: remove unused variable (cjihrig) #26879
  • [1935625df4] - src: disallow constructor behaviour for native methods (Anna Henningsen) #26700
  • [f091d4e840] - src: apply clang-tidy rule modernize-use-emplace (gengjiawen) #26564
  • [f47adfbda5] - src: fix DTrace GC callbacks DCHECKs and add cleanup (Joyee Cheung) #26742
  • [0752a18b88] - src: fix warning in node_messaging (ZYSzys) #26682
  • [b200a46bef] - src: remove process.binding('config').debugOptions (Joyee Cheung) #25999
  • [c2d374fccc] - src: remove unused method in env.h (gengjiawen) #25934
  • [55569759b3] - src: pass along errors from PromiseWrap instantiation (Anna Henningsen) #25734
  • [24e6b709ea] - src: use isolate version of BooleanValue() (cjihrig) #24883
  • [b0089a580f] - src: make model counter in GetCPUInfo() unsigned (Anna Henningsen) #23880
  • [53e0f632db] - stream: inline onwriteStateUpdate() (Luigi Pinca) #27203
  • [1a67c9948c] - stream: remove dead code (Marcos Casagrande) #27125
  • [a3d1922958] - test: unskip copyfile permission test (cjihrig) #27241
  • [b368571fba] - test: move known issue test to parallel (cjihrig) #27241
  • [528d100394] - test: mark some known flakes (Refael Ackermann) #27225
  • [e37eee2b1e] - test: remove flaky designation for test-cli-node-options (Rich Trott) #27305
  • [7167eb2f12] - test: increase coverage for dns.promises.lookup() (Rich Trott) #27299
  • [b66f01d903] - test: skip test-cpu-prof in debug builds with code cache (Joyee Cheung) #27308
  • [57ab3b56fc] - test: allow leaked global check to be skipped (cjihrig) #27239
  • [02885dad5a] - test: add ability to skip common flag checks (Anna Henningsen) #27254
  • [ed893111b9] - test: do not strip left whitespace in pseudo-tty tests (Ruben Bridgewater) #27244
  • [8712edf53a] - test: fix postmortem metadata test (Matheus Marchini) #27265
  • [d5bb500d0f] - test: fix test-benchmark-buffer (Rich Trott) #27260
  • [4f8b497991] - test: try to stabalize test-child-process-fork-exec-path.js (Refael Ackermann) #27277
  • [c6c37e9e85] - test: use assert.rejects() and assert.throws() (Richard Lau) #27207
  • [f85ef977e6] - test: log errors in test-fs-readfile-tostring-fail (Richard Lau) #27058
  • [de463f1490] - test: ec2 generateKeyPairSync invalid parameter encoding (Ruwan Geeganage) #27212
  • [2fed83dee8] - test: test privateEncrypt/publicDecrypt + padding (Ben Noordhuis) #27188
  • [f6bd3b27ee] - test: fix test-dns-idna2008.js (Rich Trott) #27208
  • [8cf3af1486] - test: optimize total Travis run time (Refael Ackermann) #27182
  • [abe4183d41] - test: mark some known flakes (Refael Ackermann) #27193
  • [06c803d9b9] - test: pass null params to napi_create_function() (Octavian Soldea) #26998
  • [2a51ae424a] - test: cover thenables when we check for promises (szabolcsit) #24219
  • [3a6eba3de6] - test: use assert.rejects (Ruben Bridgewater) #27123
  • [3d6533ea02] - test: simplify vm-module-errors test (Ruben Bridgewater) #27123
  • [d1413305e0] - test: print child stderr in test-http-chunk-problem (Anna Henningsen) #27117
  • [f96a6608eb] - test: fix test-worker-memory.js for large cpu #s (Michael Dawson) #27090
  • [93df085386] - test: fix this scope bug in test-stream2-writable.js (gengjiawen) #27111
  • [58aaf58406] - test: fix test-repl-require-after-write (Michaël Zasso) #27088
  • [baa54a5ae7] - test: cover napi_get/set/has_named_property() (Gabriel Schulhof) #26947
  • [c86883cfac] - test: fix test-benchmark-module (Rich Trott) #27094
  • [f13733d12d] - test: test vm.runInNewContext() filename option (Ben Noordhuis) #27056
  • [666c67e078] - test: simplify date inspection tests (Ruben Bridgewater) #26922
  • [1375af204a] - test: revert fail coverage target if tests fail" (Michael Dawson) #25543
  • [3235d318dc] - test: add test for _setSimultaneousAccepts() (Andrey Melikhov) #24180
  • [9e8c9be3ff] - timers: rename validateTimerDuration to getTimerDuration (Ruben Bridgewater) #26809
  • [a1d05e49fe] - timers: support name in validateTimerDuration() (cjihrig) #26215
  • [2d5387e143] - tls: add debugging to native TLS code (Anna Henningsen) #26843
  • [f87b3a72cd] - tls: add CHECK for impossible condition (Anna Henningsen) #26843
  • [a1330af6a3] - tls: remove usage of public require('util') (dnlup) #26747
  • [00d49ad673] - tls: null not valid as a renegotiate callback (Sam Roberts) #25929
  • [54b4beb506] - tls: support TLS_client_method, TLS_server_method (Sam Roberts) #24386
  • [5ac0308af9] - tools: refactor mkcodecache (Refael Ackermann) #27161
  • [4fd7193579] - tools: implement mkcodecache as an executable (Joyee Cheung) #27161
  • [d4e743169e] - tools: update js-yaml to 3.13.1 for lint-md.js (Rich Trott) #27195
  • [1fc4255221] - tools: python: ignore instead of select flake8 rules (Refael Ackermann) #25614
  • [a16a0fe962] - tools: python: activate more flake8 rules (Refael Ackermann) #25614
  • [0befda6970] - tools: python: update flake8 rules (Refael Ackermann) #25614
  • [0a25ace9c3] - tools: move cpplint configuration to .cpplint (Refael Ackermann) #27098
  • [cd2987f83f] - tools: refloat 4 Node.js patches to cpplint.py (Refael Ackermann) #27098
  • [1302e0174a] - tools: bump cpplint.py to 1.4.4 (Refael Ackermann) #27098
  • [dd89a1182f] - tools: print a better message for unexpected use of globals (Michaël Zasso) #27083
  • [39141426d4] - tools: update capitalize-comments eslint rule (Ruben Bridgewater) #26849
  • [964174e339] - tools,doc: fix 404 broken links in docs (Gerson Niño) #27168
  • [bbfa93af3d] - url: refactor validateHostname (Ruben Bridgewater) #26809
  • [2e4ceb5747] - util: access process states lazily in debuglog (Joyee Cheung) #27281
  • [2948e96afd] - util: fix wrong usage of Error.prepareStackTrace (Simon Zünd) #27250
  • [a9bf6652b5] - util: use minimal object inspection with %s specifier (Ruben Bridgewater) #26927
  • [f7c96856f9] - util: improve error property inspection (Ruben Bridgewater) #26984
  • [14b2db0145] - util: improve inspect() compact number mode (Ruben Bridgewater) #26984
  • [0f58ae392b] - util: format() now formats bigint and booleans (Ruben Bridgewater) #25046
  • [9752fce34d] - util: improve format performance (Ruben Bridgewater) #24981
  • [e9fb92dc42] - vm: remove require('util') from lib/vm/source_text_module.js (freestraws) #27285
  • [002dacb7f7] - worker: handle exception when creating execArgv errors (Anna Henningsen) #27245
  • [d070f5d965] - worker: improve coverage (Ruben Bridgewater) #27230
  • [5450e48f69] - worker: simplify filename checks (Ruben Bridgewater) #27233

New in Node.js 11.14.0 (Apr 11, 2019)

  • Notable changes:
  • child_process: doc deprecate ChildProcess._channel (cjihrig) #26982
  • deps: update nghttp2 to 1.37.0 (gengjiawen) #26990
  • dns:
  • make dns.promises enumerable (cjihrig) #26592
  • remove dns.promises experimental warning (cjihrig) #26592
  • fs: remove experimental warning for fs.promises (Anna Henningsen) #26581
  • stream: make Symbol.asyncIterator support stable (Matteo Collina) #26989
  • worker: use copy of process.env (Anna Henningsen) #26544

New in Node.js 11.13.0 (Apr 11, 2019)

  • Notable Changes:
  • crypto:
  • Allow deriving public from private keys (Tobias Nießen) #26278.
  • events:
  • Added a once function to use EventEmitter with promises (Matteo Collina) #26078.
  • tty:
  • Added a hasColors method to WriteStream (Ruben Bridgewater) #26247.
  • Added NO_COLOR and FORCE_COLOR support (Ruben Bridgewater) #26485.
  • v8:
  • Added v8.getHeapSnapshot and v8.writeHeapSnapshot to generate snapshots in the format used by tools such as Chrome DevTools (James M Snell) #26501.
  • worker:
  • Added worker.moveMessagePortToContext. This enables using MessagePorts in different vm.Contexts, aiding with the isolation that the vm module seeks to provide (Anna Henningsen) #26497.
  • C++ API:
  • AddPromiseHook is now deprecated. This API was added to fill an use case that is served by async_hooks, since that has Promise support (Anna Henningsen) #26529.
  • Added a Stop API to shut down Node.js while it is running (Gireesh Punathil) #21283.
  • meta:
  • Gireesh Punathil is now a member of the Technical Steering Committee #26657.
  • Added Yongsheng Zhang to collaborators #26730.

New in Node.js 11.12.0 (Apr 11, 2019)

  • Notable Changes:
  • bootstrap:
  • Add experimental --frozen-intrinsics flag (Guy Bedford) #25685
  • build:
  • Enable v8's siphash for hash seed creation (Rod Vagg) #26367
  • deps:
  • Upgrade openssl to 1.1.1b (Sam Roberts) #26327
  • process:
  • Make process[Symbol.toStringTag] writable again (Ruben Bridgewater) #26488
  • repl:
  • Add util.inspect.replDefaults to customize the writer (Ruben Bridgewater) #26375
  • report:
  • Rename triggerReport() to writeReport() (Colin Ihrig) #26527

New in Node.js 11.11.0 (Apr 11, 2019)

  • Notable Changes:
  • n-api:
  • Implement date object (Jarrod Connolly) #25917
  • util:
  • Add compact depth mode for util.inspect() (Ruben Bridgewater) #26269
  • worker:
  • Improve integration with native addons (Anna Henningsen) #26175
  • MessagePort.prototype.onmessage takes arguments closer to the Web specification now (Anna Henningsen) #26082

New in Node.js 11.10.0 (Feb 15, 2019)

  • deps
  • Updated libuv to 1.26.0. #26037
  • Updated npm to 6.7.0. #25804 http, http2
  • response.writeHead now returns the response object. #25974 perf_hooks
  • Implemented a histogram based API. #25378 process
  • Exposed process.features.inspector. #25819 repl
  • Added repl.setupHistory for programmatic repl. #25895 tls
  • Introduced client "session" event. #25831
  • Commits
  • [ccf60bbad2] - assert: add internal assert.fail() (Rich Trott) #26047
  • [0b4055e616] - assert: create internal/assert micro-module (Rich Trott) #25956
  • [37d207cc0c] - assert: refactor internal assert.js (Rich Trott) #25956
  • [2b1f88185f] - benchmark: remove unreachable return (ZYSzys) #25883
  • [c4d16e80b7] - benchmark: refactor for consistent style (Rich Trott) #25944
  • [c4e2bbbcab] - benchmark: use consistent coding style in assert/* (Rich Trott) #25865
  • [18b344c0d2] - benchmark: refactor benchmark/common.js (Rich Trott) #25805
  • [40398fd07a] - benchmark: refactor _http-benchmarkers.js (Rich Trott) #25803
  • [d5d163d8b9] - build: export deprecated OpenSSL symbols on Windows (Richard Lau) #25991
  • [197efb7f84] - child_process: close pipe ends that are re-piped (Gireesh Punathil) #21209
  • [f87352366a] - cluster: migrate round_robin_handle to internal assert (Rich Trott) #26047
  • [8c9800ce27] - crypto: include 'Buffer' in error output of Hash.update method (Amit Zur) #25533
  • [baa0865886] - crypto: don't crash X509ToObject on error (David Benjamin) #25717
  • [3e010aff83] - crypto: fix malloc mixing in X509ToObject (David Benjamin) #25717
  • [da46be2542] - crypto: fix public key encoding name in comment (David Benjamin) #25736
  • [8b5a2c4f61] - deps: upgrade to libuv 1.26.0 (cjihrig) #26037
  • [1c5fbeab34] - deps: upgrade npm to 6.7.0 (Kat Marchán) #25804
  • [3f8c22b4cb] - deps: update llhttp to 1.1.1 (Fedor Indutny) #25753
  • [823fd5b493] - (SEMVER-MINOR) deps: float fix for building HdrHistogram on Win x86 (jasnell) #25378
  • [c01bbc5258] - deps: update acorn to 6.0.7 (Michaël Zasso) #25844
  • [a6c8e40655] - deps: patch to fix *.onion MX query on c-ares (XadillaX) #25840
  • [8b71464711] - deps: remove OpenSSL git and travis configuration (Sam Roberts) #25689
  • [673e434714] - deps: v8, cherry-pick 9365d09, aac2f8c, 47d34a3 (Benjamin Coe) #25429
  • [411f6fe832] - deps: cherry-pick c736883 from upstream V8 (Yang Guo)
  • [4a254a6ce4] - doc: edit N-API introductory material in Collaborator Guide (Rich Trott) #26051
  • [44fc2f6094] - doc: clarify effect of stream.destroy() on write() (Sam Roberts) #25973
  • [21e6d353af] - doc: renamed remote's name (Thang Tran) #26050
  • [e629afa6ae] - doc: fix minor typo in dgram.md (Daniel Bevenius) #26055
  • [663b6251a0] - doc: fix some nits in perf_hooks (Vse Mozhet Byt) #26022
  • [9420a737fe] - doc: edit process.report related documentation (cjihrig) #25983
  • [eb4b5ea233] - doc: clarify http timeouts (Andrew Moss) #25748
  • [a225f99ea8] - doc: revise Introducing New Modules (Rich Trott) #25975
  • [f516f68032] - doc: add a sentence about REPLACEME in code changes (Lance Ball) #25961
  • [3b74cc6c26] - doc: revise Collaborator Guide on reverting (Rich Trott) #25942
  • [353de0f752] - doc: fix err_synthetic issue on v11.x (sreepurnajasti) #25770
  • [cc4ae20d20] - doc: improve doc on unintended breaking changes (Rich Trott) #25887
  • [1f6acbb279] - doc: document os.userInfo() throwing SystemError (Raido Kuli) #25724
  • [699d161f9e] - doc: fix machine field in example report (cjihrig) #25855
  • [618f641271] - doc: remove redundant LTS/Current information in Collaborator Guide (Rich Trott) #25842
  • [7a1f166cfa] - doc: add documentation for request.path (Kei Ito) #25788
  • [f5db5090bc] - doc: remove outdated COLLABORATOR_GUIDE sentence about breaking changes (Rich Trott) #25780
  • [accb8aec35] - doc: revise inspect security info in cli.md (Rich Trott) #25779
  • [fd98d62909] - doc: revise style guide (Rich Trott) #25778
  • [60c5099f4b] - domain: avoid circular memory references (Anna Henningsen) #25993
  • [2b48a381b9] - fs: remove redundant callback check (ZYSzys) #25160
  • [29c195e17f] - fs: remove useless internalFS (ZYSzys) #25161
  • [51982978eb] - http: improve performance for incoming headers (Weijia Wang) #26041
  • [90c9f1d323] - http: reduce multiple output arrays into one (Weijia Wang) #26004
  • [a5247cc180] - (SEMVER-MINOR) http: makes response.writeHead return the response (Mark S. Everitt) #25974
  • [b7fb49e70a] - http: remove redundant call to socket.setTimeout() (Luigi Pinca) #25928
  • [25c19eb1d8] - http: make timeout event work with agent timeout (Luigi Pinca) #25488
  • [0899c8bb32] - http2: improve compat performance (Matteo Collina) #25567
  • [237b5e65e4] - (SEMVER-MINOR) http2: makes response.writeHead return the response (Mark S. Everitt) #25974
  • [6967407b19] - inspector, trace_events: make sure messages are sent on a main thread (Eugene Ostroukhov) #24814
  • [d02ad40d42] - inspector,vm: remove --eval wrapper (Anna Henningsen) #25832
  • [32e6bb32b2] - lib: merge 'undefined' into one 'break' branch (MaleDong) #26039
  • [b2b37c631a] - lib: simplify 'umask' (MaleDong) #26035
  • [b1a8927adc] - lib: fix the typo error (MaleDong) #26032
  • [d5f4a1f2ac] - lib: save a copy of Symbol in primordials (Joyee Cheung) #26033
  • [bd932a347e] - lib: move per_context.js under lib/internal/bootstrap (Joyee Cheung) #26033
  • [f40e0fcdcb] - lib: replace 'assert' with 'internal/assert' for many built-ins (Rich Trott) #25956
  • [8ade433f51] - lib: move signal event handling into bootstrap/node.js (Joyee Cheung) #25859
  • [92ca50636c] - lib: save primordials during bootstrap and use it in builtins (Joyee Cheung) #25816
  • [1b8d2ca85f] - lib: remove dollar symbol for private function (MaleDong) #25590
  • [b06f2fafe7] - lib: use internal/options to query --abort-on-uncaught-exception (Joyee Cheung) #25862
  • [0b302e4520] - lib: fix a few minor issues flagged by lgtm (Robin Neatherway) #25873
  • [99bc0df74c] - lib: refactor ERR_SYNTHETIC (cjihrig) #25749
  • [1c6fadea31] - meta: clarify EoL platform support (João Reis) #25838
  • [03ffcf76b7] - n-api: finalize during second-pass callback (Gabriel Schulhof) #25992
  • [5f6a710d8d] - os,report: use UV_MAXHOSTNAMESIZE (cjihrig) #26038
  • [2cbb7a85db] - (SEMVER-MINOR) perf_hooks: implement histogram based api (James M Snell) #25378
  • [e81c6c81de] - perf_hooks: only enable GC tracking when it's requested (Joyee Cheung) #25853
  • [9d6291ad46] - process: refactor lib/internal/bootstrap/node.js (Joyee Cheung) #26033
  • [8d3eb47d48] - process: use primordials in bootstrap/node.js (Joyee Cheung) #26033
  • [85bc64a5c9] - process: document the bootstrap process in node.js (Joyee Cheung) #26033
  • [ae21fca36b] - process: normalize process.execPath in CreateProcessObject() (Joyee Cheung) #26002
  • [614bb9f3c8] - process: normalize process.argv before user code execution (Joyee Cheung) #26000
  • [9a7e883b83] - process: group main thread execution preparation code (Joyee Cheung) #26000
  • [d7bf070652] - process: move deprecation warning initialization into pre_execution.js (Joyee Cheung) #25825
  • [d7ed125fd1] - process: stub unsupported worker methods (cjihrig) #25587
  • [c8bf4327d8] - process: move process mutation into bootstrap/node.js (Joyee Cheung) #25821
  • [1d76ba1b3d] - (SEMVER-MINOR) process: expose process.features.inspector (Joyee Cheung) #25819
  • [e6a4fb6d01] - process: split execution into main scripts (Joyee Cheung) #25667
  • [f4cfbf4c9e] - process: move setup of process warnings into node.js (Anto Aravinth) #25263
  • [cc253b5f2d] - process: simplify report uncaught exception logic (cjihrig) #25744
  • [4c22d6eaa1] - (SEMVER-MINOR) repl: add repl.setupHistory for programmatic repl (Lance Ball) #25895
  • [2c737a89d5] - repl: remove obsolete buffer clearing (Ruben Bridgewater) #25731
  • [5aaeb01655] - repl: fix eval return value (Ruben Bridgewater) #25731
  • [e66cb58a9b] - repl: simplify and improve completion (Ruben Bridgewater) #25731
  • [dfd47aa1e8] - report: make more items programmatically accessible (Anna Henningsen) #26019
  • [88019b051c] - report: rename setDiagnosticReportOptions() (cjihrig) #25990
  • [c8ceece815] - report: refactor report option validation (cjihrig) #25990
  • [afb2d17c16] - report: use uv_getnameinfo() for socket endpoints (cjihrig) #25962
  • [3f400310bd] - report: widen scope of #ifndef (cjihrig) #25960
  • [8494a61d79] - report: remove unnecessary case block scopes (cjihrig) #25960
  • [7443288c68] - report: remove empty string stream insertion (cjihrig) #25960
  • [6c51ec3014] - report: include information about event loop itself (Anna Henningsen) #25906
  • [30a4e8900a] - report: print libuv handle addresses as hex (cjihrig) #25910
  • [6d39a54354] - report: use libuv calls for OS and machine info (cjihrig) #25900
  • [1007416596] - report: separate release metadata (Richard Lau) #25826
  • [b1e0c43abd] - report: disambiguate glibc versions (cjihrig) #25781
  • [f6c8820b46] - report: fix typo in error message (cjihrig) #25782
  • [d4631816ef] - report: use consistent format for dumpEventTime (Anna Henningsen) #25751
  • [cc22fd7be9] - report: split up osVersion and machine values (cjihrig) #25755
  • [f71d6762ca] - src: remove redundant cast in node_http2.h (gengjiawen) #25978
  • [adaa2ae70b] - src: add lock to inspector MainThreadHandle dtor (Anna Henningsen) #26010
  • [731c2731d2] - src: add WeakReference utility (Anna Henningsen) #25993
  • [7ab34ae421] - src: remove unused method in class Http2Stream (gengjiawen) #25979
  • [d7ae1054ef] - src: remove redundant cast in node_file.cc (gengjiawen) #25977
  • [6c6e678eaa] - src: remove unused class in node_errors.h (gengjiawen) #25980
  • [24d9e9c8b6] - src: remove redundant void (gengjiawen) #26003
  • [5de103430f] - src: use NULL check macros to check nullptr (ZYSzys) #25916
  • [c47eb932bc] - src: move process.reallyExit impl into node_process_methods.cc (Joyee Cheung) #25860
  • [01bb7b7559] - src: split ownsProcessState off isMainThread (Anna Henningsen) #25881
  • [fd6ce533aa] - src: remove main_isolate (Anna Henningsen) #25823
  • [b72ec23201] - src: move public C++ APIs into src/api/*.cc (Joyee Cheung) #25541
  • [0a154ff7ad] - src: move v8_platform implementation into node_v8_platform-inl.h (Joyee Cheung) #25541
  • [d342707fa7] - src: remove unused internalBinding('config') properties (Joyee Cheung) #25463
  • [756558617e] - src: pass cli options to bootstrap/loaders.js lexically (Joyee Cheung) #25463
  • [85d5f67efe] - src: fix return type in Hash (gengjiawen) #25936
  • [779a5773cf] - src: refactor macro to std::min in node_buffer.cc (gengjiawen) #25919
  • [76687dedce] - src: remove unused variable (cjihrig) #25481
  • [b280d90279] - src: simplify NativeModule caching and remove redundant data (Joyee Cheung) #25352
  • [469cdacd59] - src: pass along errors from StreamBase req obj creations (Anna Henningsen) #25822
  • [d6f3b8785f] - src: pass along errors from fs object creations (Anna Henningsen) #25822
  • [0672c24dc3] - src: pass along errors from http2 object creation (Anna Henningsen) #25822
  • [e3fd7520d0] - src: pass along errors from tls object creation (Anna Henningsen) #25822
  • [e0af205c98] - src: nullcheck on trace controller (Gireesh Punathil) #25943
  • [c72c4b041d] - src: allow --perf-prof-unwinding-info in NODE_OPTIONS (Tom Gallacher) #25565
  • [e6a2548807] - src: allow --perf-basic-prof-only-functions in NODE_OPTIONS (Tom Gallacher) #25565
  • [7cf484c656] - src: refactor SSLError case statement (Sam Roberts) #25861
  • [55a313bb31] - src: make watchdog async callback a lambda (Gireesh Punathil) #25945
  • [de9f37d314] - src: make deleted function public in agent.h (gengjiawen) #25909
  • [620d429343] - src: use bool instead of integer literal in connection_wrap.cc (gengjiawen) #25923
  • [8cedfb8196] - src: refactor to nullptr in cpp code (gengjiawen) #25888
  • [f5d50342b0] - src: clean unused code in agent.h (gengjiawen) #25914
  • [2d575044ff] - src: fix compiler warnings in node_buffer.cc (Daniel Bevenius) #25665
  • [015ed0b1d7] - src: remove redundant method in node_worker.h (gengjiawen) #25849
  • [44655e93dd] - src: delete unreachable code in node_perf.h (gengjiawen) #25850
  • [5a66e380ff] - src: fix data type in node_crypto.cc (gengjiawen) #25889
  • [d4c4f77d31] - src: const_cast is necessary for 1.1.1, not 0.9.7 (Sam Roberts) #25861
  • [b5a8376ffe] - src: organize TLSWrap declarations by parent (Sam Roberts) #25861
  • [0772ce35fb] - src: remove unused TLWrap::EnableTrace() (Sam Roberts) #25861
  • [703549665e] - src: add PrintLibuvHandleInformation debug helper (Anna Henningsen) #25905
  • [2e80b912ef] - src: use visibility("default") exports on POSIX (Jeremy Apthorp) #25893
  • [e28d891788] - src: fix race condition in ~NodeTraceBuffer (Anna Henningsen) #25896
  • [bd771d90fd] - src: remove unimplemented method in node_http2.h (gengjiawen) #25732
  • [00f8e86702] - src: use nullptr in node_buffer.cc (gengjiawen) #25820
  • [84358b5010] - src: handle errors while printing error objects (Anna Henningsen) #25834
  • [f027290542] - src: use struct as arguments to node::Assert (Anna Henningsen) #25869
  • [8a8c17880e] - src: remove unused AsyncResource constructor in node.h (gengjiawen) #25793
  • [7556994d83] - src: remove unused method in js_stream.h (gengjiawen) #25790
  • [882902c672] - src: pass along errors from PromiseWrap instantiation (Anna Henningsen) #25837
  • [998cea567f] - src: workaround MSVC compiler bug (Refael Ackermann) #25596
  • [b779c072d0] - src: make StreamPipe::Unpipe() more resilient (Anna Henningsen) #25716
  • [0b014d5299] - src: make deleted functions public in node.h (gengjiawen) #25764
  • [be499c3c7b] - src: simplify SlicedArguments (Anna Henningsen) #25745
  • [35454e0008] - src: fix indentation in a few node_http2 enums (Daniel Bevenius) #25761
  • [3f080d12f4] - src: add debug check for inspector uv_async_t (Anna Henningsen) #25777
  • [0949039d26] - src: add handle scope to OnFatalError() (Anna Henningsen) #25775
  • [d9c2690705] - src: turn ROUND_UP into an inline function (Anna Henningsen) #25743
  • [3cd134cec4] - src,lib: remove dead process.binding() code (Anna Henningsen) #25829
  • [cb86357d22] - test: replaced anonymous fn with arrow syntax (Pushkal B) #26029
  • [64cc234a84] - test: use emitter.listenerCount() in test-http-connect (Luigi Pinca) #26031
  • [6323a9fc57] - test: refactor two http client timeout tests (Luigi Pinca) #25473
  • [61330b2f84] - test: add assert test for position indicator (Rich Trott) #26024
  • [896962fd08] - test: add Worker + --prof regression test (Anna Henningsen) #26011
  • [3eb6f6130a] - test: capture stderr from child processes (Gireesh Punathil) #26007
  • [d123f944a2] - test: remove extraneous report validation argument (cjihrig) #25986
  • [de587bae8a] - test: refactor to block-scope (LakshmiSwethaG) #25532
  • [4dca3ab23d] - test: exit sequence sanity tests (Gireesh Punathil) #25085
  • [ef9139e5a0] - test: end tls gracefully, rather than destroy (Sam Roberts) #25508
  • [7e9f5ea295] - test: pin regression test for #8074 to TLS 1.2 (Sam Roberts) #25508
  • [1b9a608dca] - test: refactor test-http-agent-timeout-option (Luigi Pinca) #25886
  • [c457d007cd] - test: clarify confusion over "client" in comment (Sam Roberts) #25508
  • [1be867685c] - test: use mustCall(), not global state checks (Sam Roberts) #25508
  • [50d2c8e945] - test: use common.mustCall(), and log the events (Sam Roberts) #25508
  • [1b542e8ba0] - test: use mustCall in ephemeralkeyinfo test (Sam Roberts) #25508
  • [898cf782f8] - test: send a bad record only after connection done (Sam Roberts) #25508
  • [ace267b21c] - test: do not race connection and rejection (Sam Roberts) #25508
  • [639dc07ca0] - test: do not assume tls handshake order (Sam Roberts) #25508
  • [cc6b30f4b7] - test: do not assume server gets secure connection (Sam Roberts) #25508
  • [c17a37d95a] - test: wait for TCP connect, not TLS handshake (Sam Roberts) #25508
  • [1f8991fae6] - test: add util.isDeepStrictEqual edge case tests (Rich Trott) #25932
  • [baa10aeb75] - test: add BigInt test for isDeepStrictEqual (Rich Trott) #25932
  • [c866b52942] - test: remove obsolete code (Ruben Bridgewater) #25731
  • [ee3165d6e7] - test: relax expectations in test-icu-transcode (Yang Guo) #25866
  • [025a7c3e31] - test: do not fail SLOW tests if they are not slow (Yang Guo) #25868
  • [059d30e369] - test: add hasCrypto to worker-cleanexit-with-moduleload (Daniel Bevenius) #25811
  • [7cb943937f] - test: refactor test-http-agent-timeout-option (Luigi Pinca) #25854
  • [cdf3e84804] - test: exclude additional test for coverage (Michael Dawson) #25833
  • [704a440d52] - test: allow coverage threshold to be enforced (Benjamin Coe) #25675
  • [5bffcf6246] - test: run html/webappapis/timers WPT (Joyee Cheung) #25618
  • [579220815a] - test: pull html/webappapis/timers WPT (Joyee Cheung) #25618
  • [d683da7ffa] - test, tools: suppress addon function cast warnings (Daniel Bevenius) #25663
  • [2009f18064] - test,tracing: use close event to wait for stdio (Anna Henningsen) #25894
  • [8495a788c6] - tls: renegotiate should take care of its own state (Sam Roberts) #25997
  • [fb83f842a8] - tls: in-line comments and other cleanups (Sam Roberts) #25861
  • [4d0b56f3f7] - tls: don't shadow the tls global with a local (Sam Roberts) #25861
  • [7656d58eed] - (SEMVER-MINOR) tls: introduce client 'session' event (Sam Roberts) #25831
  • [6ca8d26020] - tools: apply more stringent lint rules for benchmark code (Rich Trott) #25944
  • [c55d662bd1] - tools: replace deprecated ESLint configuration (Rich Trott) #25877
  • [e13c1850d2] - tools: update ESLint to 5.13.0 (Rich Trott) #25877
  • [8d14870b15] - tools: update dmn in update-estlint.sh (Rich Trott) #25877
  • [988c7141d4] - tools: improve prerequisites for test-all-suites (Rich Trott) #25892
  • [f395728b32] - tools: exclude benchmark code from coverage report (Rich Trott) #25841
  • [9d2ea1802b] - tools: add test-all-suites to Makefile (Rich Trott) #25799
  • [9f1bcd44df] - tools: make test.py Python 3 compatible (Sakthipriyan Vairamani (thefourtheye)) #25767
  • [454278a701] - tools: refloat Node.js patches to cpplint.py (Refael Ackermann) #25771
  • [b9289f41af] - tools: bump cpplint.py to 3d8f6f876d (Refael Ackermann) #25771
  • [9c9aefe2a0] - worker: set stack size for worker threads (Anna Henningsen) #26049
  • [23868ba45e] - worker: keep stdio after exit (Anna Henningsen) #26017
  • [6c1e92817f] - worker: set up child Isolate inside Worker thread (Anna Henningsen) #26011
  • [1764aae193] - worker: pre-allocate thread id (Anna Henningsen) #26011
  • [f63817fd38] - worker: refactor thread id management (Anna Henningsen) #25796
  • [8db6b8a95a] - worker: move worker thread setup code into the main script (Joyee Cheung) #25667
  • [5d2e064973] - worker: no throw on property access/postMessage after termination (Christopher Jeffrey) #25871
  • [508a2e7f0f] - worker: use correct ctor for error serialization (Anna Henningsen) #25951
  • [52d4b7a928] - worker: remove undocumented .onclose property (Rich Trott) #25904
  • [e70aa30ebd] - worker: add mutex lock to MessagePort ctor (Anna Henningsen) #25911
  • [55c270253b] - worker: throw for duplicates in transfer list (Anna Henningsen) #25815
  • [c959d60242] - worker,etw: only enable ETW on the main thread (Anna Henningsen) #25907

New in Node.js 11.9.0 (Jan 31, 2019)

  • Notable Changes:
  • deps:
  • OpenSSL has been updated to 1.1.1a, which is API/ABI compatible with the previous OpenSSL 1.1.0j. Note that while OpenSSL 1.1.1a supports TLS1.3, Node.js still does not. #25381)
  • Commits:
  • [bc81a68f20] - build: make compress_json python3 compatible (Sakthipriyan Vairamani (thefourtheye)) #25582
  • [30949f8dba] - build: make configure.py compatible with python 3 (Sakthipriyan Vairamani (thefourtheye)) #25580
  • [d4ec110c65] - (SEMVER-MINOR) deps: update archs files for OpenSSL-1.1.1a (Sam Roberts) #25381
  • [5225214d07] - (SEMVER-MINOR) deps: fix for non GNU assembler in AIX (Shigeki Ohtsu) #25381
  • [ad04d7bea1] - (SEMVER-MINOR) deps: add only avx2 configs for OpenSSL-1.1.1 (Shigeki Ohtsu) #25381
  • [670f10053a] - (SEMVER-MINOR) deps: add s390 asm rules for OpenSSL-1.1.1 (Shigeki Ohtsu) #25381
  • [0a0f15f768] - (SEMVER-MINOR) deps: fix MacOS and Win build for OpenSSL-1.1.1 (Shigeki Ohtsu) #25381
  • [e2043999bd] - (SEMVER-MINOR) deps: fix gyp/gypi for openssl-1.1.1 (Shigeki Ohtsu) #25381
  • [c581b9a253] - (SEMVER-MINOR) deps: upgrade openssl sources to 1.1.1a (Sam Roberts) #25381
  • [c82f2445e5] - dns: use IDNA 2008 to encode non-ascii hostnames (Ben Noordhuis) #25679
  • [c56ddc7736] - doc: document uniqueness of worker.threadId (Anna Henningsen) #25644
  • [7c8d57d4a9] - doc: revise breaking changes material in COLLABORATOR_GUIDE (Rich Trott) #25730
  • [edc9ceb16e] - doc: fix issue with worker_threads docs (Lee Byron) #25712
  • [1d6e18b128] - doc: fix http.Agent timeout option description (Luigi Pinca) #25489
  • [5d5c528120] - (SEMVER-MINOR) doc: fix assembler requirement for OpenSSL-1.1.1 (Shigeki Ohtsu) #25381
  • [34bc69d376] - doc: fix file extension on ESM file example (Eric Whitebloom) #25692
  • [b218b1204a] - doc: remove outdated s_client information in tls.md (Rich Trott) #25678
  • [1aa7f4d72d] - doc: fix metadata for v11.8.0 doc changes (Richard Lau) #25709
  • [3c5a7a2f97] - doc: fix keyObject.symmetricSize to be keyObject.symmetricKeySize (Filip Skokan) #25670
  • [e47511943b] - doc: add metadata to report docs (Richard Lau) #25708
  • [237ec396d0] - doc: fix 11.8.0 changelog (Myles Borins) #25705
  • [48149cfa3a] - doc: clarify what dns.setResolvers() affects (Sam Roberts) #25570
  • [3488f0df3b] - doc: link nextTick docs to the nextTick guide (Sam Roberts) #25619
  • [c93e5e1f65] - doc: simplify process.binding() deprecation message (Rich Trott) #25654
  • [0640b09243] - lib: refactor policy code for readability (Anna Henningsen) #25629
  • [634cf131f4] - module: do not use process.exit() (Anna Henningsen) #25769
  • [143274af38] - module: silence ModuleJob unhandled rejection warnings (Anna Henningsen) #25769
  • [fc38b20c7c] - perf_hooks: clean up GC listeners (Anna Henningsen) #25647
  • [f3179f7701] - policy: ensure workers do not read fs for policy (Bradley Farias) #25710
  • [ee61ab6894] - repl: improve doc for disabling REPL history on Windows (Samuel D. Leslie) #25672
  • [ce28caf517] - report: represent numbers as numbers (Anna Henningsen) #25651
  • [1dfdbc6cf7] - report: refactor JSON writer (Anna Henningsen) #25651
  • [14bce1ea5a] - report: do not use uv_default_loop() as fallback (Anna Henningsen) #25652
  • [152d633366] - src: remove unused env_ field from env.h (Daniel Bevenius) #25784
  • [c0951062b9] - src: pass along errors from i18n converter instantiation (Anna Henningsen) #25734
  • [deebf10bd5] - src: pass along errors from vm data wrapper creation (Anna Henningsen) #25734
  • [8ee4810029] - src: pass along errors from KeyObject instantiation (Anna Henningsen) #25734
  • [ced4e71504] - src: pass along errors from perf obj instantiation (Anna Henningsen) #25734
  • [5add2b56ac] - src: pass along errors from process obj instantiation (Anna Henningsen) #25734
  • [2928672679] - src: pass along errors from stream obj instantiation (Anna Henningsen) #25734
  • [ebcdbebcee] - src: remove unused field in node_http2.h (gengjiawen) #25727
  • [6d9af41aef] - src: in-source comments and minor TLS cleanups (Sam Roberts) #25713
  • [09a10858f7] - src: remove unnecessary call to SSL_get_mode (Sam Roberts) #25711
  • [86e79a521d] - src: remove unused and unimplemented method in env.h (gengjiawen) #25699
  • [021d1975ff] - src: fix macro duplicate declaration in env.h (gengjiawen) #25703
  • [845bcfa1ce] - src: simplify inspector initialization in node::Start() (Joyee Cheung) #25612
  • [797111a69b] - src: avoid race condition in tracing code (Anna Henningsen) #25624
  • [b113332daf] - src: ensure no more platform foreground tasks after Deinit (Clemens Hammacher) #25653
  • [7cc51531a7] - src: remove has_experimental_policy option (Anna Henningsen) #25628
  • [4b43eeaf9a] - src,test: fix JSON escaping in node-report (Denys Otrishko) #25626
  • [af9592d6b1] - test: refactor test/common/report.js (cjihrig) #25754
  • [e2ee031060] - test: move client renegotiation tests to parallel (Rich Trott) #25757
  • [b174dd7280] - test: use fipsMode in test-crypto-fips (Daniel Bevenius) #25563
  • [fa2a857e6a] - test: refactor test-http-client-timeout-option-with-agent (Rich Trott) #25752
  • [15f6b8e25d] - test: add test for worker.terminate() + timeout fns (Anna Henningsen) #25735
  • [c2136348a1] - test: move heapdump tests to pummel (Rich Trott) #25181
  • [ae19f944f8] - test: exit sequence sanity tests (Gireesh Punathil) #25083
  • [af6e439ad8] - test: enable marking of failing coverage tests (Michael Dawson) #25671
  • [6203d05a3c] - test: fix zlib-brotli output assumptions (Adam Majer) #25697
  • [77274d07d2] - test: rewrite fs {f}utimes test file (Jeremiah Senkpiel) #25656
  • [29002ceb4e] - (SEMVER-MINOR) test: assert on client and server side seperately (Sam Roberts) #25381
  • [c7dbb72530] - test: remove pummel/test-exec (Rich Trott) #25722
  • [4b2a1eadbd] - test: replace s_client in test-https-ci-reneg-attack (Rich Trott) #25720
  • [7d682234a6] - test: remove unused uncaughtException handler (Anna Henningsen) #25641
  • [271126ad3b] - test: remove s_client from test-tls-ci-reneg-attack (Rich Trott) #25700
  • [190c063ecb] - test: replace Google servers with localhost (Rich Trott) #25694
  • [f33d705033] - test: fix sequential/test-performance delay (Anatoli Papirovski) #25695
  • [1905f8ef55] - test: remove common.isOSXMojave (Rich Trott) #25658
  • [9f1b5c6193] - test: remove known_issues/test-cluster-bind-privileged-port (Rich Trott) #25649
  • [d0705bd24b] - timers: truncate decimal values (Jeremiah Senkpiel) #24819
  • [d5b2135dde] - tls: fix malloc mismatch in SSL_set_tlsext_status_ocsp_resp call (David Benjamin) #25706
  • [6e80f6d9a1] - (SEMVER-MINOR) tls: workaround handshakedone in renegotiation (Shigeki Ohtsu) #25381
  • [c34c5694eb] - (SEMVER-MINOR) tls: make ossl 1.1.1 cipher list throw error (Sam Roberts) #25381
  • [8032969c69] - tools: make trailing commas consistent in .eslintrc (Rich Trott) #25739
  • [7ba66505e3] - tools: make test.py Queue part Python 3 compatible (gengjiawen) #25701
  • [e6ad7f4c9c] - tools: make mkssldef.py Python 3 compatible (Sakthipriyan Vairamani (thefourtheye)) #25584
  • [bc81fef988] - vm: mark scripts as shareable cross-origin (Jeremy Apthorp) #25380
  • [fb69b2bf14] - worker: export workerData to ESM workers (Anna Henningsen) #25768

New in Node.js 11.6.0 (Dec 26, 2018)

  • Notable Changes:
  • cli:
  • add --max-http-header-size flag (cjihrig) #24811
  • crypto:
  • always accept certificates as public keys (Tobias Nießen) #24234
  • add key object API (Tobias Nießen) #24234
  • update root certificates (Sam Roberts) #25113
  • deps:
  • upgrade to libuv 1.24.1 (cjihrig) #25078
  • upgrade npm to 6.5.0 (Audrey Eschright) #24734
  • http:
  • add maxHeaderSize property (cjihrig) #24860
  • Commits
  • [a9ab28df2c] - assert: inspect getters (Ruben Bridgewater) #25004
  • [c6bfa66b2e] - buffer: simplify code (Ruben Bridgewater) #25151
  • [9b38bbff7f] - build: correct fi indentation in Makefile (Daniel Bevenius) #25107
  • [4513516f5e] - build: add a space to clarify skipping crypto msg (Daniel Bevenius) #25011
  • [7b2eefc103] - child_process: spawn ignores options in case args is undefined (Eduard Bondarenko) #24913
  • [edd8bd0ee0] - (SEMVER-MINOR) cli: add --max-http-header-size flag (cjihrig) #24811
  • [e6c1e8de95] - (SEMVER-MINOR) crypto: always accept certificates as public keys (Tobias Nießen) #24234
  • [3b53df0748] - (SEMVER-MINOR) crypto: add key object API (Tobias Nießen) #24234
  • [6f6f339ef0] - crypto: update root certificates (Sam Roberts) #25113
  • [e855018968] - (SEMVER-MINOR) deps: upgrade npm to 6.5.0 (Audrey Eschright) #24734
  • [155d1d54bf] - deps: upgrade to libuv 1.24.1 (cjihrig) #25078
  • [0057af293a] - (SEMVER-MINOR) deps: cherry-pick http_parser_set_max_header_size (cjihrig) #24811
  • [b78d48749a] - doc: fix links in test/common/README.md (Vse Mozhet Byt) #25172
  • [6a690ee51b] - doc: revise "Breaking Changes and Deprecations" (Rich Trott) #25116
  • [4ca09517c2] - doc: describe root cert update process (Sam Roberts) #25113
  • [4561e2c984] - doc: revise "Breaking Changes" section of Collaborator Guide (Rich Trott) #25071
  • [2516e9cfd0] - doc,lib,test: capitalize comment sentences (Ruben Bridgewater) #24996
  • [d1a98a8d0a] - events: simplify stack compare function (Ruben Bridgewater) #24744
  • [ae50f480d2] - (SEMVER-MINOR) http: add maxHeaderSize property (cjihrig) #24860
  • [b3f45daf7b] - lib: make internal API warning more direct (Rich Trott) #25125
  • [2fc43fbe43] - lib: switch to object spread where possible (Ruben Bridgewater) #25104
  • [96bdd47734] - lib: refactor argument validation using validateString (ZYSzys) #24960
  • [0cde1a4fdc] - lib: remove unused NativeModule/NativeModule wraps (Joyee Cheung) #24904
  • [add566eee5] - os: use uv_os_gethostname() in hostname() (cjihrig) #25111
  • [85a136974e] - perf_hooks: make GC tracking state per-Environment (Anna Henningsen) #25053
  • [3f82144c98] - process: move environment variable proxy code into node_env_var.cc (Joyee Cheung) #25067
  • [c9f809e36f] - src: add DCHECK macros (kiyomizumia) #24359
  • [b801b0372a] - src: use std::vector for setting up process.execPath (Anna Henningsen) #25069
  • [54e42f04a7] - src: port GetLoadedLibraries for freebsd (Gireesh Punathil) #25106
  • [fd0361bff0] - src: mark options parsers as const (Anna Henningsen) #25065
  • [c6388edf34] - src: handle empty Maybe in uv binding initialize (Anna Henningsen) #25079
  • [6f3b421dd5] - src: schedule destroy hooks in BeforeExit early during bootstrap (Joyee Cheung) #25020
  • [a4505c698f] - src: extract common Bind method (Jon Moss) #22315
  • [09a99c6834] - src: mark some global state as const (Anna Henningsen) #25052
  • [7f34c768da] - src: remove internalBinding('config').warningFile (Joyee Cheung) #24959
  • [c80ac7fae3] - (SEMVER-MINOR) src: add kUInteger parsing (Matteo Collina) #24811
  • [45d48510bd] - test: fix test-tls-session-timeout (Rich Trott) #25188
  • [6557ea180c] - test: mark test-trace-events-api-worker-disabled flaky (Rich Trott) #25197
  • [db54531c8d] - test: remove Files: comment processing from Python test runner (Rich Trott) #25183
  • [a28cae0e55] - test: add hasCrypto check to common flags check (Daniel Bevenius) #25147
  • [175f7b60c2] - test: remove unnecessary eslint-disable comments (Rich Trott) #25119
  • [d09e3335a6] - test: remove obsolete eslint comments (cjihrig) #25088
  • [8279826ce6] - test: verify input flags (Ruben Bridgewater) #24876
  • [1f45b2370d] - test: add signal check to test-esm-cjs-main (Rich Trott) #25073
  • [3e1fe19194] - test: add missing tmpdir.refresh() in recently-added test (Rich Trott) #25098
  • [5eb5d1d7b1] - test: test internal/util/types in vm (ZYSzys) #25056
  • [9ad6bc2e6e] - test: remove magic numbers in test-gc-http-client-onerror (Rich Trott) #24943
  • [30b61554f6] - test: merge test with unnecessary child process (Sam Roberts) #25025
  • [e340b8f1ff] - tls: re-define max supported version as 1.2 (Sam Roberts) #25024
  • [8ab0a48928] - tools: update ESLint to 5.11.0 (cjihrig) #25191
  • [c7fa132aea] - tools: alphabetize IGNORED_SUITES in tools/test.py (Rich Trott) #25182
  • [073a51220e] - tools: report unused disable-directives for ESLint (Rich Trott) #25119
  • [9b941da78d] - tools: update certdata.txt (Sam Roberts) #25113
  • [a5bccc2919] - tools: make apilinks building more robust (Joyee Cheung) #25019
  • [ed3303ba99] - tools: enable no-useless-constructor lint rule (cjihrig) #25055
  • [7df59f824b] - vm: reuse validateString of internal/validators (ZYSzys) #25074
  • [74e08c0458] - vm: simplify Script constructor options validation (cjihrig) #25054
  • [4f28da883f] - worker: fix nullptr deref after MessagePort deser failure (Anna Henningsen) #25076

New in Node.js 11.5.0 (Dec 19, 2018)

  • Notable Changes:
  • tls:
  • support "BEGIN TRUSTED CERTIFICATE" for ca: (Sam Roberts) #24733
  • util:
  • add inspection getter option (Ruben Bridgewater) #24852
  • Commits:
  • [bf4faf3ffc] - assert,util: harden comparison (Ruben Bridgewater) #24831
  • [302081bafc] - build: make lint-addon-docs run only if needed (Daniel Bevenius) #24993
  • [cc8a805e31] - build: fix compiler version detection (Richard Lau) #24879
  • [bde5df20d6] - doc: fix node.1 --http-parser sort order (cjihrig) #25045
  • [a9f239fb60] - doc: add EventTarget link to worker_threads (Azard) #25058
  • [00ce972305] - doc: make README formatting more consistent (wenjun ye) #25003
  • [dbdea36190] - doc: add codebytere's info to release team (Shelley Vohr) #25022
  • [877f8a0094] - doc: revise internal vs. public API in Collaborator Guide (Rich Trott) #24975
  • [f0bcacdcc6] - doc: update a link of npm repository (Daijiro Wachi) #24969
  • [1e096291d6] - doc: fix author-ready conflict (Ruben Bridgewater) #25015
  • [b2e6cbddd8] - doc: update Useful CI Jobs section of Collaborator Guide (Rich Trott) #24916
  • [9bfbb6822b] - doc: add class worker documentation (yoshimoto koki) #24849
  • [0220cd3260] - doc: remove bad link to irc info (Richard Lau) #24967
  • [a6a3829962] - doc: simplify author ready (Ruben Bridgewater) #24893
  • [cda1da9200] - doc: update "Testing and CI" in Collaborator Guide (Rich Trott) #24884
  • [81dce68a9d] - doc: update http doc for new Agent()/support options in socket.connect() (Beni von Cheni) #24846
  • [643ca14d2c] - doc: fix order of events when request is aborted (Luigi Pinca) #24779
  • [c300aaa208] - doc: update LICENSE file (Anna Henningsen) #24898
  • [c4f3cf9759] - doc: revise Waiting for Approvals documentation (Rich Trott) #24845
  • [56b2a7274c] - inspector: split the HostPort being used and the one parsed from CLI (Joyee Cheung) #24772
  • [2456a545a6] - lib: ensure readable stream flows to end (Mikko Rantanen) #24918
  • [79c52a9f88] - lib: improve error creation performance (Ruben Bridgewater) #24747
  • [25dae6cffd] - module: use validateString in modules/esm (ZYSzys) #24868
  • [2a11e6aaf3] - module: use validateString in modules/cjs (ZYSzys) #24863
  • [f4d5c358d9] - net: use strict comparisons for fd (cjihrig) #25014
  • [5f60ed7647] - path: replace assertPath() with validator (cjihrig) #24840
  • [f43f45a26c] - process: properly close file descriptor on exit (Ruben Bridgewater) #24972
  • [8b109f05d9] - process: simplify check in previousValueIsValid() (cjihrig) #24836
  • [2e94f3b798] - querystring: remove eslint-disable (cjihrig) #24995
  • [5f8950b652] - src: emit 'params' instead of 'data' for NodeTracing.dataCollected (Kelvin Jin) #24949
  • [d0270f3a5c] - src: add GetLoadedLibraries routine (Gireesh Punathil) #24825
  • [f8547019c7] - src: include node_internals.h in node_metadata.cc (Daniel Bevenius) #24933
  • [5a1289d128] - src: create env->inspector_console_api_object earlier (Joyee Cheung) #24906
  • [d7605725df] - src: remove use of CallOnForegroundThread() (cjihrig) #24925
  • [08c6b2126c] - src: use Local version of ToBoolean() (cjihrig) #24924
  • [5206f3add5] - src: do not alias new and old signal masks (Sam Roberts) #24810
  • [94d02cabb9] - src: fix warning for potential snprintf truncation (Sam Roberts) #24810
  • [9b000e5088] - src: remove finalized_ member from Hash class (Daniel Bevenius) #24822
  • [90d481ea45] - src: remove unused env variables in node_util (Daniel Bevenius) #24820
  • [d449c36500] - stream: re-use existing once() implementation (Anna Henningsen) #24991
  • [39af61faa2] - stream: fix end-of-stream for HTTP/2 (Anna Henningsen) #24926
  • [4f0d17b019] - test: remove unnecessary linter comment (cjihrig) #25013
  • [ab1801b8ad] - test: use global.gc() instead of gc() (cjihrig) #25012
  • [ddff644172] - test: run eslint on test file and fix errors (Ruben Bridgewater) #25009
  • [110fd39dfe] - test: remove dead code (Ruben Bridgewater) #25009
  • [e04e85460f] - test: use blocks instead of async IIFE (Anna Henningsen) #24989
  • [eb9e6e6576] - test: adding history regression test case (Anto Aravinth) #24843
  • [ac919efbaf] - test: mark test-child-process-execfile flaky (Rich Trott) #25051
  • [1e3fb0ae03] - test: mark test-child-process-exit-code flaky (Rich Trott) #25050
  • [7e0dbc6e01] - test: improve WPT runner name matching (Joyee Cheung) #24826
  • [da984be0a3] - test: remove reference to whatwg in file names under test/wpt (Joyee Cheung) #24826
  • [282589456c] - test: mark test-worker-memory flaky on Windows CI (Rich Trott) #25042
  • [9bd42671c9] - test: mark test-cli-node-options flaky on arm (Rich Trott) #25032
  • [a4ef54a0a6] - test: mark test-child-process-execsync flaky on AIX (Rich Trott) #25031
  • [900a412f3f] - test: increase error information in test-cli-syntax-* (Rich Trott) #25021
  • [d5b0ce15d3] - test: refactor test-enable-in-init (Mitch Hankins) #24976
  • [649a7289dc] - test: from functools import reduce in test/testpy/__init__.py (cclauss) #24954
  • [d366676cc5] - test: split test-cli-syntax into multiple tests (Rich Trott) #24922
  • [e61bbda85d] - test: improve internet/test-dns (Ilarion Halushka) #24927
  • [016e35210c] - (SEMVER-MINOR) test: test TLS client authentication (Sam Roberts) #24733
  • [e050a5756f] - test: replace callback with arrows (Shubham Urkade) #24866
  • [22b6befa14] - test: mark test-cli-syntax as flaky/unreliable (Rich Trott) #24957
  • [56fd127ef0] - test: do not lint macros files (again) (cclauss) #24886
  • [bc71e9e0d6] - test: prepare test/pseudo-tty/testcfg.py Python 3 (cclauss) #24887
  • [f41443cc5c] - test: move test-cli-syntax to sequential (Rich Trott) #24907
  • [592bad1b0b] - test: move http2 test to parallel (Rich Trott) #24877
  • [91ce957037] - test: make http2 timeout test robust (Rich Trott) #24877
  • [3d87688fba] - test: fix wrong parameter (zhmushan) #24844
  • [6db760c231] - test: improve test-net-socket-timeout (Rich Trott) #24859
  • [526ff1d1d2] - test: prepare test/pseudo-tty/testcfg.py for Python 3 (cclauss) #24791
  • [a5c57861a9] - test: refactor test-fs-write-file-sync.js (cjihrig) #24834
  • [a5c8af7af4] - test: prepare test/message/testcfg.py for Python 3 (cclauss) #24793
  • [390e050ae0] - (SEMVER-MINOR) tls: support "BEGIN TRUSTED CERTIFICATE" for ca: (Sam Roberts) #24733
  • [16a75beffc] - tools: prepare ./tools/compress_json.py for Python 3 (cclauss) #24889
  • [b60808a2da] - tools: prepare tools/testp.py for Python 3 (cclauss) #24890
  • [1f61c89a7f] - tools: prepare tools/icu/icutrim.py for Python 3 (cclauss) #24888
  • [e140d41789] - tools: capitalize sentences (Ruben Bridgewater) #24808
  • [ad6104dbac] - tools: update ESLint to 5.10.0 (cjihrig) #24903
  • [ac46e27714] - tools: do not lint tools/inspector_protocol or tools/markupsafe (cclauss) #24882
  • [c3dda00e48] - tools: prepare tools/js2c.py for Python 3 (cclauss) #24798
  • [7cac76cdd5] - tools: prepare tools/specialize_node_d.py for Python 3 (cclauss) #24797
  • [15632c3867] - tools: prepare tools/test.py for Python 3 (cclauss) #24799
  • [022599c0e1] - tools: prepare tools/genv8constants.py for Python 3 (cclauss) #24801
  • [e7b77ead74] - url: remove an eslint-disable comment (cjihrig) #24995
  • [59317470e3] - util: inspect all prototypes (Ruben Bridgewater) #24974
  • [a1f0da1d40] - util: remove todo (Ruben Bridgewater) #24982
  • [117e99121c] - (SEMVER-MINOR) util: add inspection getter option (Ruben Bridgewater) #24852
  • [331f6044b9] - worker: drain messages from internal message port (Yael Hermon) #24932

New in Node.js 11.4.0 (Dec 9, 2018)

  • console,util:
  • console functions now handle symbols as defined in the spec.
  • The inspection depth default is now back at 2.
  • dgram,net:
  • Added ipv6Only option for net and dgram.
  • http:
  • Chosing between the http parser is now possible per runtime flag.
  • readline:
  • The readline module now supports async iterators.
  • repl:
  • The multiline history feature is removed.
  • tls:
  • Added min/max protocol version options.
  • The X.509 public key info now includes the RSA bit size and the elliptic curve.
  • url:
  • pathToFileURL() now supports LF, CR and TAB.
  • Windows:
  • Tools are not installed using Boxstarter anymore.
  • The install-tools scripts or now included in the dist.
  • Added new collaborator:
  • antsmartian - Anto Aravinth.

New in Node.js 11.3.0 (Nov 28, 2018)

  • Fixes for the following CVEs are included in this release:
  • Node.js: Denial of Service with large HTTP headers (CVE-2018-12121)
  • Node.js: Slowloris HTTP Denial of Service (CVE-2018-12122 / Node.js)
  • Node.js: Hostname spoofing in URL parser for javascript protocol (CVE-2018-12123)
  • OpenSSL: Timing vulnerability in DSA signature generation (CVE-2018-0734)
  • OpenSSL: Timing vulnerability in ECDSA signature generation (CVE-2019-0735)
  • Notable Changes:
  • deps:
  • Upgrade to OpenSSL 1.1.0j, fixing CVE-2018-0734 and CVE-2019-0735
  • http:
  • Headers received by HTTP servers must not exceed 8192 bytes in total to prevent possible Denial of Service attacks. Reported by Trevor Norris. (CVE-2018-12121 / Matteo Collina)
  • A timeout of 40 seconds now applies to servers receiving HTTP headers. This value can be adjusted with server.headersTimeout. Where headers are not completely received within this period, the socket is destroyed on the next received chunk. In conjunction with server.setTimeout(), this aids in protecting against excessive resource retention and possible Denial of Service. Reported by Jan Maybach (liebdich.com). (CVE-2018-12122 / Matteo Collina)
  • url:
  • Fix a bug that would allow a hostname being spoofed when parsing URLs with url.parse() with the 'javascript:' protocol. Reported by Martin Bajanik (Kentico). (CVE-2018-12123 / Matteo Collina)
  • Commits:
  • [8f191f3759] - deps: update openssl 1.1.0 upgrade docs (Sam Roberts) #24523
  • [f20ac47d7a] - deps: update archs files for OpenSSL-1.1.0 (Sam Roberts) #24523
  • [8248d227b7] - deps: add s390 asm rules for OpenSSL-1.1.0 (Shigeki Ohtsu) #24523
  • [65d03f0180] - deps: upgrade openssl sources to 1.1.0j (Sam Roberts) #24523
  • [a2b8aba23c] - deps,http: llhttp set max header size to 8KB (Rod Vagg) nodejs-private/node-private#149
  • [74e01d0020] - deps,http: http_parser set max header size to 8KB (Matteo Collina) nodejs-private/node-private#143
  • [4ecbd3bdaa] - http: reset headers_nread_ on llhttp parser reuse (Rod Vagg) nodejs-private/node-private#149
  • [04e0620597] - http: fix header limit errors and test for llhttp (Fedor Indutny) nodejs-private/node-private#149
  • [315ee2e626] - (SEMVER-MINOR) http,https: protect against slow headers attack (Matteo Collina) nodejs-private/node-private#144
  • [d7504324e1] - url: avoid hostname spoofing w/ javascript protocol (Matteo Collina) nodejs-private/node-private#145

New in Node.js 10.11.0 (Sep 20, 2018)

  • Fs:
  • Fixed fsPromises.readdir withFileTypes. #22832
  • Http2:
  • Added http2stream.endAfterHeaders property. #22843
  • Util:
  • Added util.types.isBoxedPrimitive(value). #22620
  • Added new collaborators:
  • Boneskull - Christopher Hiller
  • The Technical Steering Committee has new members:
  • Apapirovski - Anatoli Papirovski
  • Gabrielschulhof - Gabriel Schulhof

New in Node.js 10.10.0 (Sep 7, 2018)

  • Notable Changes
  • Child_process:
  • TypedArray and DataView values are now accepted as input by execFileSync and spawnSync. #22409
  • Coverage:
  • Native V8 code coverage information can now be output to disk by setting the environment variable NODE_V8_COVERAGE to a directory. #22527
  • Deps:
  • The bundled npm was upgraded to version 6.4.1. #22591
  • Changelogs: 6.3.0-next.0 6.3.0 6.4.0 6.4.1
  • Fs:
  • The methods fs.read, fs.readSync, fs.write, fs.writeSync, fs.writeFile and fs.writeFileSync now all accept TypedArray and DataView objects. #22150
  • A new boolean option, withFileTypes, can be passed to to fs.readdir and fs.readdirSync. If set to true, the methods return an array of directory entries. These are objects that can be used to determine the type of each entry and filter them based on that without calling fs.stat. #22020
  • Http2:
  • The http2 module is no longer experimental. #22466
  • Os:
  • Added two new methods: os.getPriority and os.setPriority, allowing to manipulate the scheduling priority of processes. #22407
  • Process:
  • Added process.allowedNodeEnvironmentFlags. This object can be used to programmatically validate and list flags that are allowed in the NODE_OPTIONS environment variable. #19335
  • Src:
  • Deprecated option variables in public C++ API. #22515
  • Refactored options parsing. #22392
  • Vm:
  • Added vm.compileFunction, a method to create new JavaScript functions from a source body, with options similar to those of the other vm methods. #21571

New in Node.js 10.9.0 (Aug 16, 2018)

  • Notable Changes:
  • buffer:
  • Fix out-of-bounds (OOB) write in Buffer.write() for UCS-2 encoding (CVE-2018-12115)
  • Fix unintentional exposure of uninitialized memory in Buffer.alloc() (CVE-2018-7166)
  • deps:
  • Upgrade to OpenSSL 1.1.0i, fixing:
  • Client DoS due to large DH parameter (CVE-2018-0732)
  • ECDSA key extraction via local side-channel (CVE not assigned)
  • Upgrade V8 from 6.7 to 6.8 (Michaël Zasso) #21079
  • Memory reduction and performance improvements, details at: https://v8project.blogspot.com/2018/06/v8-release-68.html
  • http: http.get() and http.request() (and https variants) can now accept three arguments to allow for a URL and an options object (Sam Ruby) #21616
  • Added new collaborators:
  • Sam Ruby (https://github.com/rubys)
  • George Adams (https://github.com/gdams)
  • Commits:
  • [58a9ae118e] - assert: fix loose assert with map and set (Ruben Bridgewater) #22145
  • [1c577016b8] - benchmark: improve assert benchmarks (Ruben Bridgewater) #22211
  • [734323d9eb] - buffer: stop alloc() uninitialized memory return (cjihrig) nodejs-private/node-private#137
  • [2c4c17b708] - buffer: avoid overrun on UCS-2 string write (Rod Vagg) nodejs-private/node-private#138
  • [6622ac798d] - buffer: use FastBuffer when fill is set to 0 (Сковорода Никита Андреевич) #21989
  • [f506a5f46e] - build: make --shared-[...]-path work on Windows (Jeremy Apthorp) #21530
  • [1be6fb93c8] - build: add CONFIG_FLAGS to with-code-cache target (Daniel Bevenius) #22207
  • [4520bb8a73] - build: make tools/doc/node_modules non-phony (Daniel Bevenius) #22189
  • [c42ff4ebd8] - build: add crypto check to build targets (Daniel Bevenius) #22148
  • [cdb8c1b44d] - build: extract common parts from addon .buildstamp (Daniel Bevenius) #22171
  • [1e7a8c3016] - build: reset embedder string to "-node.0" (Michaël Zasso) #21079
  • [86ab2c041e] - crypto: remove unused SSLWrap handle methods (Jon Moss) #22216
  • [9212875406] - crypto: simplify state failure handling (Tobias Nießen) #22131
  • [916a1d59f0] - crypto: simplify Hmac::HmacUpdate (Tobias Nießen) #22132
  • [2dc7f17e8b] - (SEMVER-MINOR) crypto: add better scrypt option aliases (Anna Henningsen) #21525
  • [fcf422e921] - deps: backport c608122b from upstream (Ruben Bridgewater) #22210
  • [a07ccaeb19] - deps: update archs files for OpenSSL-1.1.0i (Shigeki Ohtsu) #22318
  • [473996c90f] - deps: add s390 asm rules for OpenSSL-1.1.0 (Shigeki Ohtsu) #19794
  • [05e48fd018] - deps: upgrade openssl sources to 1.1.0i (Shigeki Ohtsu) #22318
  • [f8bc5d6320] - deps: cherry-pick 09bca09 from upstream V8 (Matheus Marchini) #22068
  • [c69fdc9d5f] - (SEMVER-MINOR) deps: remove thread_local to fix V8 compilation (Peter Marshall) #21668
  • [981fff714e] - deps: refactor v8.gyp (Michaël Zasso) #22017
  • [5fa3ffad20] - (SEMVER-MINOR) deps: patch the V8 API to be backwards compatible with 6.7 (Peter Marshall) #21668
  • [6eed40acbb] - deps: cherry-pick 804a693 from upstream V8 (Matheus Marchini) #21855
  • [7eccaf86d6] - deps: V8: Backport of 0dd3390 from upstream (James M Snell) #21899
  • [328c89925a] - deps: cherry-pick 907d7bc from upstream V8 (Michaël Zasso) #21838
  • [afacfd2992] - deps: cherry-pick 2075910 from upstream V8 (Michaël Zasso) #21838
  • [4f24256274] - deps: cherry-pick 555c811 from upstream V8 (Anna Henningsen) #21741
  • [7b4272a14d] - deps: cherry-pick 477df06 from upstream v8 (Gus Caplan) #21644
  • [a0bf7aa07c] - deps: cherry-pick 70c4340 from upstream V8 (Matheus Marchini) #21126
  • [4994ac65b0] - deps: cherry-pick acc336c from upstream V8 (Matheus Marchini) #21126
  • [be569f82f1] - deps: cherry-pick b20faff from upstream V8 (Matheus Marchini) #21126
  • [6df5feb13f] - deps: cherry-pick aa6ce3e from upstream V8 (Michaël Zasso) #21079
  • [8b9a956f9e] - deps: cherry-pick 5dd3395 from upstream V8 (Matheus Marchini) #21386
  • [548008a6f6] - deps: update v8.gyp and run Torque (Michaël Zasso) #21079
  • [9c74271a96] - deps: update V8 to 6.8.275.24 (Michaël Zasso) #21079
  • [a3f3c40966] - doc: simplify urlObject.hash text (Rich Trott) #22326
  • [d2848697dc] - doc: simplify urlObject.hash description (Rich Trott) #22326
  • [6d29986f4d] - doc: simplify format description of urlObject.auth (Rich Trott) #22324
  • [a658a4df34] - doc: remove redundant explanation of format (Rich Trott) #22324
  • [3236697c0b] - doc: use italics for words-as-words (Rich Trott) #22324
  • [da76b61f59] - doc: bump ICU version to avoid confusion (Csaba Palfi) #22313
  • [e04b0532bf] - doc: document 'inherit' option for stdio (non-shorthand) (James Bromwell) #22309
  • [882c2c017a] - doc: clarify http2 docs around class exports (James M Snell) #22247
  • [dd96ba5b89] - doc: add multiple issue templates for GitHub (Tobias Nießen) #22215
  • [d95a22c304] - doc: declare all parameter types (Sam Ruby) #21782
  • [9e25028981] - doc: add missing option for child_process.spawnSync() (James Bromwell) #22231
  • [ef8d0fc490] - doc: list encodings supported by buffer.transcode (James M Snell) #22263
  • [1b41cd44b5] - doc: discuss special protocol handling (James M Snell) #22261
  • [cea8d4f4e9] - doc: replace _WG_ with _team_ (Rich Trott) #22183
  • [fafdae4ce1] - doc: add subprocess.ref() and subprocess.unref() (Thomas Hunter II) #22220
  • [d4f3615aaf] - doc: add gdams to collaborators (George Adams) #22236
  • [e75885f2e6] - doc: specify options parameter type in zlib.md (Vse Mozhet Byt) #21920
  • [40af9767a2] - doc: declare all parameter types (Sam Ruby) #21782
  • [38dd407c83] - doc: remove unused error codes from errors.md (Сковорода Никита Андреевич) #21491
  • [6c7733f58a] - doc: update recommendations for createCipher (Tobias Nießen) #22087
  • [34300aaaa4] - doc: correct crypto.randomFill() and randomFillSync() (Gerhard Stoebich) #21550
  • [28870a46ac] - doc: add rubys to collaborators (Sam Ruby) #22109
  • [d2ad9a2c13] - doc: fix return type of server.address() (Weijia Wang) #22043
  • [168abb5801] - doc: rename stackStartFunction in assert.md (Eugene Y. Q. Shen) #22077
  • [d364f9c8e7] - doc: fix changelog for v10.8.0 (Michaël Zasso) #22072
  • [abac0c56b8] - doc: mark DEP0004 and DEP0042 as End-of-Life (Jon Moss) #22033
  • [c6a56ae23e] - doc: correct grammatical error in BUILDING.md (Brandon Lee) #22067
  • [29bc55320c] - doc: fixup process.binding deprecation code (James M Snell) #22062
  • [ec9d529a32] - doc: documentation deprecation of process.binding (James M Snell) #22004
  • [37369eba38] - (SEMVER-MINOR) http: allow url and options to be passed to http*.request and http*.get (Sam Ruby) #21616
  • [1ca46ab6f4] - http,tls: name anonymous callbacks (Marco Levrero) #21412
  • [8d226c6a79] - http2: correcting the heading format (Anto Aravinth) #22262
  • [7223a91a50] - http2: explicitly disallow nested push streams (James M Snell) #22245
  • [cee78bf7a2] - http2: avoid race condition in OnHeaderCallback (James M Snell) #22256
  • [fcca2f7e49] - http2: remove streamError from docs (James M Snell) #22246
  • [2bf9a4a09e] - https: allow url and options to be passed to https.request (Sam Ruby) #22003
  • [4c5dc6e012] - inspector: tie objects lifetime to the thread they belong to (Eugene Ostroukhov) #22242
  • [1afcea107e] - inspector: unmark tests as flaky (Eugene Ostroukhov) #22253
  • [39898695b6] - inspector: add inspector_protocol as a direct dependency (Andrey Lushnikov) #21975
  • [311ec12702] - inspector: fixed V8InspectorClient::currentTimeMS (Aleksey Kozyatinskiy) #21917
  • [8f7e37337f] - lib: remove unused filterInternalStackFrames param (MaleDong) #22267
  • [3f729aac20] - lib: extract validateString validator (Jon Moss) #22101
  • [f570c19c89] - perf_hooks: avoid memory leak on gc observer (James M Snell) #22241
  • [76a65921d3] - readline,zlib: named anonymous functions (Anto Aravinth) #21792
  • [e4f346892c] - repl: support mult-line string-keyed objects (Sam Ruby) #21805
  • [d0b0ea971a] - src: remove unnecessary writes in tls_wrap.cc (Anna Henningsen) #21984
  • [b2ac7a750f] - src: avoid possible race during NodeBIO initialization (Anna Henningsen) #21984
  • [d85b0a3c10] - src: use smart pointers for NodeBIO (Anna Henningsen) #21984
  • [82e71dd8bd] - src: fix integer overflow in GetNow (Anatoli Papirovski) #22214
  • [2737b46e16] - src: add READONLY_STRING_PROPERTY and simplify config (Jon Moss) #22222
  • [8b5485dcf5] - src: fix up doc comment for experimental-worker bool (Anna Henningsen) #22165
  • [e90e56f4ca] - src: remove calls to deprecated v8 functions (NumberValue) (Ujjwal Sharma) #22094
  • [c09872b749] - src: remove unused env->vm_parsing_context_symbol (Jon Moss) #22034
  • [6ca00d7044] - src: remove unused env strings (Jon Moss) #22137
  • [0ca831a0ed] - src: clean up PackageConfig pseudo-boolean fields (Anna Henningsen) #21987
  • [00c33a5131] - src: clean up agent loop when exiting through destructor (Anna Henningsen) #21867
  • [ba480d33ce] - src: use only one tracing write fs req at a time (Anna Henningsen) #21867
  • [6b58746b2e] - src: use unique_ptr for internal JSON trace writer (Anna Henningsen) #21867
  • [ce48936077] - src: plug trace file file descriptor leak (Anna Henningsen) #21867
  • [89e23021fb] - src: initialize file trace writer on tracing thread (Anna Henningsen) #21867
  • [56edd5fc5b] - src: close tracing event loop (Anna Henningsen) #21867
  • [4c9c1bbc45] - src: fix tracing if cwd or file path is inaccessible (Anna Henningsen) #21867
  • [c101b396aa] - src: refactor default trace writer out of agent (Anna Henningsen) #21867
  • [daafe6c195] - src: refactor tracing agent code (Anna Henningsen) #21867
  • [4379140dbf] - src: minor refactor of node_trace_events.cc (Anna Henningsen) #21867
  • [cde0e5f396] - src: reduce unnecessary includes (Anna Henningsen) #21867
  • [31e3e6f1f8] - stream: fix readable behavior for highWaterMark === 0 (Denys Otrishko) #21690
  • [9d89b3c7ec] - test: rename some allegories (Vse Mozhet Byt) #22307
  • [1d15f33277] - test: call gc() explicitly to avoid OOM (Refael Ackermann) #22301
  • [a7dad4565b] - test: move test-http-client-timeout-option-with-agent to sequential (Ouyang Yadong) #22083
  • [a414b0757a] - test: add test-http2-large-file sequential test (James M Snell) #22254
  • [01fe2cee5b] - test: fix error messages for OpenSSL-1.1.0i (Shigeki Ohtsu) #22318
  • [c145690aad] - test: improve test coverage for comparisons (Ruben Bridgewater) #22212
  • [bdc644f2ec] - test: remove common.fileExists() (Rich Trott) #22151
  • [bc1cb7b7fc] - test: handle errors correctly in GC http test (Ouyang Yadong) #22185
  • [cefc4a03cc] - test: remove second arg from assert.ifError() (Musa Hamwala) #22190
  • [b1cbbbc7af] - test: move require of https to after crypto check (Daniel Bevenius) #22148
  • [a6ab19a96a] - test: move require of http2 to after crypto check (Daniel Bevenius) #22148
  • [7a4c7e6c82] - test: don't mask descriptor.enumerable (Thomas Leah) #22172
  • [5018661a85] - test: remove common.fileExists() (Richard Lau) #22200
  • [77ce40fa03] - test: remove unused argument in assertion (yahavfuchs) #22113
  • [ca0fb3acce] - test: check arg type for dnsPromises.resolve (Masashi Hirano) #22000
  • [6daa4f8797] - test: update postmortem metadata test (cjihrig) #21079
  • [16a929b867] - test: fix scriptParsed event expectations (Ingvar Stepanyan) #21079
  • [e58c17b849] - test: update certificates and private keys (Fedor Indutny) #22184
  • [d38ccaa421] - test: fix n-api addon build warnings (Kyle Farnung) #21808
  • [d66e52fb8e] - test: run ESM tests in parallel (Michaël Zasso) #21919
  • [6cff57e98d] - test: fix incorrect file mode check (Timothy Gu) #22023
  • [dafaff3a5e] - test: remove unused config (Benjamin Gruenbaum) #21985
  • [a569ae4b44] - test: remove third argument from assert.strictEqual() (Rishabh Singh) #22051
  • [a60060b499] - test: remove third argument from call to assert.strictEqual() (Michael Sommer) #22047
  • [246a94f301] - test: see value of "hadError" in tls test (Oryan Moshe) #22069
  • [a40ee213b3] - test: improve reliability in http2-session-timeout (Rich Trott) #22026
  • [e2d97eeb65] - test: remove outdated documentation (Jon Moss) #22009
  • [94746d6a47] - test: remove outdated, non-functioning test (Anatoli Papirovski) #20894
  • [0beffc0f3b] - test: remove test/gc, integrate into parallel (Anna Henningsen) #22001
  • [c2372eac16] - test: add tracing crash regression test (Eugene Ostroukhov) #21867
  • [7e23080d45] - test: pass through stderr in benchmark tests (Anna Henningsen) #21860
  • [52020dc09a] - test: refactor test-http2-compat-serverresponse-finished.js (Anto Aravinth) #21929
  • [88665b3cef] - test,doc: fix async-hooks coverage doc for md lint (Rod Vagg) #22296
  • [d60b017135] - test,doc: adjust markdown table for linting (Rich Trott) #22221
  • [8f56cc0321] - test,doc: adjust async-hooks coverage doc for lint (Rich Trott) #22221
  • [5c41caa1cc] - test,doc: wrap common module md doc at 80 chars (Rich Trott) #22221
  • [21883be05d] - test,doc: fix lint error in test fixtures (Rich Trott) #22221
  • [ec2209dc8b] - tls: change var to const (Eugen Cazacu) #22219
  • [2d1c1853e9] - tls: remove SLAB_BUFFER_SIZE (Anatoli Papirovski) #21199
  • [f989681e34] - tls: preallocate SSL cipher array (Tobias Nießen) #22136
  • [6cd2d1dddc] - tools: fix header escaping regression (Sam Ruby) #22084
  • [80dd0445c6] - tools: add no-misleading-character-class ESLint rule (Vse Mozhet Byt) #22278
  • [bc35f17b7b] - tools: do not autolink section to itself (Vse Mozhet Byt) #22138
  • [950a4a9b91] - tools: update ESLint to 5.3.0 (Rich Trott) #22134
  • [0c67d326dc] - tools: convert addon-verify to remark (Sam Ruby) #21978
  • [c85d00b786] - tools: produce JSON documentation using unified/remark/rehype (Sam Ruby) #21697
  • [f0c871b0c7] - tools: add make format-cpp to run clang-format on C++ diffs (Joyee Cheung) #21997
  • [5a4abbadfe] - tools: update to using dmn 1.0.11 (Rich Trott) #22035
  • [7a7c194f4e] - tools: fix docs and run known_issues by default (Jon Moss) #21910
  • [4995b28a11] - tools,build: apply markdown linting to test dir (Rich Trott) #22221
  • [ad46cca104] - trace_events: add node.promises category, rejection counter (James M Snell) #22124
  • [b171fa2530] - util: improve display of iterators and weak entries (Ruben Bridgewater) #20961
  • [f1c22eaa56] - util,assert: fix boxed primitives bug (Ruben Bridgewater) #22243
  • [677d10cdd1] - worker: fix deadlock when calling terminate from exit handler (Anna Henningsen) #22073
  • [4b0d2de5f4] - zlib: remove unused parameters (MaleDong) #22115

New in Node.js 10.8.0 (Aug 2, 2018)

  • Upgrade npm to 6.2.0. #21592:
  • npm has moved. This release updates various URLs to point to the right places for bugs, support, and PRs.
  • Fix the regular expression matching in xcode_emulation in node-gyp to also handle version numbers with multiple-digit major versions which would otherwise break under use of XCode 10.
  • The npm tree has been significantly flattened. Tarball size for the npm package has gone from 8MB to 4.8MB.
  • Changelogs: 6.2.0-next.0, 6.2.0-next.1, 6.2.0.

New in Node.js 10.7.0 (Jul 19, 2018)

  • Notable Changes
  • Console:
  • The console.timeLog() method has been implemented. #21312
  • Deps:
  • Upgrade to libuv 1.22.0. #21731
  • Upgrade to ICU 62.1 (Unicode 11, CLDR 33.1). #21728
  • Http:
  • Added support for passing both timeout and agent options to http.request. #21204
  • Inspector:
  • Expose the original console API in require('inspector').console. #21659
  • Napi:
  • Added experimental support for functions dealing with bigint numbers. #21226
  • Process:
  • The process.hrtime.bigint() method has been implemented. #21256
  • Added the --title command line argument to set the process title on startup. #21477
  • Trace_events:
  • Added process_name metadata. #21477
  • Added new collaborators
  • Codebytere - Shelley Vohr

New in Node.js 10.6.0 (Jul 4, 2018)

  • Notable Changes:
  • dns:
  • An experimental promisified version of the dns module is now available. Give it a try with require('dns').promises. #21264
  • fs:
  • fs.lchown has been undeprecated now that libuv supports it. #21498
  • lib:
  • Atomics.wake is being renamed to Atomics.notify in the ECMAScript specification (reference). Since Node.js now has experimental support for worker threads, we are being proactive and added a notify alias, while emitting a warning if wake is used. #21413 #21518
  • n-api:
  • Add API for asynchronous functions. #17887
  • util:
  • util.inspect is now able to return a result instead of throwing when the maximum call stack size is exceeded during inspection. #20725
  • vm:
  • Add script.createCachedData(). This API replaces the produceCachedData option of the Script constructor that is now deprecated. #20300
  • worker:
  • Support for relative paths has been added to the Worker constructor. Paths are interpreted relative to the current working directory. #21407

New in Node.js 10.5.0 (Jun 21, 2018)

  • Crypto:
  • Support for crypto.scrypt() has been added. #20816
  • Fs:
  • BigInt support has been added to fs.stat and fs.watchFile. #20220
  • APIs that take mode as arguments no longer throw on values larger than 0o777. #20636 #20975 (Fixes: #20498)
  • Fix crashes in closed event watchers. #20985 (Fixes: #20297)
  • Worker Threads:
  • Support for multi-threading has been added behind the --experimental-worker flag in the worker_threads module. This feature is experimental and may receive breaking changes at any time. #20876

New in Node.js 10.2.1 (May 25, 2018)

  • Notable Changes
  • This is a follow up release to fix two regressions that were introduced in v10.2.0.
  • Commits
  • [2a9c83321b] - http: fix res emit close before user finish (Robert Nagy) #20941
  • [0b1ba20fc0] - src: re-integrate headers into node.h (Anna Henningsen) #20939
  • [52f21fbfbc] - test: mark test-zlib.zlib-binding.deflate as flaky (Matheus Marchini) #20935

New in Node.js 10.1.0 (May 9, 2018)

  • Notable Changes:
  • console:
  • make console.table() use colored inspect (TSUYUSATO Kitsune) #20510
  • fs:
  • move fs/promises to fs.promises (cjihrig) #20504
  • http:
  • added aborted property to request (Robert Nagy) #20094
  • n-api:
  • initialize a module via a special symbol (Gabriel Schulhof) #20161
  • src:
  • add public API to expose the main V8 Platform (Allen Yonghuang Wang) #20447

New in Node.js 10.0.0 (Apr 25, 2018)

  • Notable changes
  • c-ares: fix for single-byte buffer overwrite, CVE-2016-5180, more information at https://c-ares.haxx.se/adv_20160929.html (Rod Vagg)
  • Commits
  • [a14a6a3a11] - deps: c-ares, avoid single-byte buffer overwrite (Rod Vagg)
  • [b798f598af] - tls: fix minor jslint failure (Rod Vagg)
  • [92b232ba01] - win,build: try multiple timeservers when signing (Rod Vagg)

New in Node.js 9.11.1 (Apr 5, 2018)

  • An infrastructure issue caused a non-functioning msi installer for x64 to be promoted. The patch release is to ensure that all binaries and installers work as expected.

New in Node.js 9.11.0 (Apr 5, 2018)

  • deps:
  • Updated ICU to 61.1 (Steven R. Loomis) #19621 Includes CLDR 33 (many new languages and data improvements).
  • fs:
  • Emit 'ready' event for ReadStream and WriteStream (Sameer Srivastava) #19408
  • n-api:
  • Bump version of n-api supported (Michael Dawson) #19497
  • net:
  • Emit 'ready' event for Socket (Sameer Srivastava) #19408
  • Added new collaborators:
  • mafintosh Mathias Buus

New in Node.js 9.10.1 (Mar 30, 2018)

  • Due to incorrect staging of the upgrade to the GCC 4.9.X compiler, the latest releases for PPC little endian were built using GCC 4.9.X instead of GCC 4.8.X. This caused an ABI breakage on PPCLE based environments. This has been fixed in our infrastructure and we are doing this release to ensure that the hosted binaries are adhering to our platform support contract.
  • Note that Node.js versions 10.X and later will be built with version 4.9.X or later of the GCC compiler, and it is possible that Node.js version 9.X may be built on the 4.9.X compiler at a later time as the stated minimum compiler requirement for Node.js version 9.X is 4.9.4.

New in Node.js 9.10.0 (Mar 29, 2018)

  • Fixes for the following CVEs are included in this release:
  • CVE-2018-7158
  • CVE-2018-7159
  • CVE-2018-7160
  • Notable Changes:
  • Upgrade to OpenSSL 1.0.2o: Does not contain any security fixes that are known to impact Node.js.
  • Fix for inspector DNS rebinding vulnerability (CVE-2018-7160): A malicious website could use a DNS rebinding attack to trick a web browser to bypass same-origin-policy checks and allow HTTP connections to localhost or to hosts on the local network, potentially to an open inspector port as a debugger, therefore gaining full code execution access. The inspector now only allows connections that have a browser Host value of localhost or localhost6.
  • Fix for 'path' module regular expression denial of service (CVE-2018-7158): A regular expression used for parsing POSIX paths could be used to cause a denial of service if an attacker were able to have a specially crafted path string passed through one of the impacted 'path' module functions.
  • Reject spaces in HTTP Content-Length header values (CVE-2018-7159): The Node.js HTTP parser allowed for spaces inside Content-Length header values. Such values now lead to rejected connections in the same way as non-numeric values.
  • Update root certificates: 5 additional root certificates have been added to the Node.js binary and 30 have been removed.
  • cluster:
  • Add support for NODE_OPTIONS="--inspect" (Sameer Srivastava) #19165
  • crypto:
  • Expose the public key of a certificate (Hannes Magnusson) #17690
  • n-api:
  • Add napi_fatal_exception to trigger an uncaughtException in JavaScript (Mathias Buus) #19337
  • path:
  • Fix regression in posix.normalize (Michaël Zasso) #19520
  • stream:
  • Improve stream creation performance (Brian White) #19401

New in Node.js 9.9.0 (Mar 21, 2018)

  • Notable Changes:
  • assert:
  • From now on all error messages produced by assert in strict mode will produce a error diff. (Ruben Bridgewater) #17615
  • From now on it is possible to use a validation object in throws instead of the other possibilities. (Ruben Bridgewater) #17584
  • crypto:
  • allow passing null as IV unless required (Tobias Nießen) #18644
  • fs:
  • support as and as+ flags in stringToFlags() (Sarat Addepalli) #18801
  • tls:
  • expose Finished messages in TLSSocket (Anton Salikhmetov) #19102
  • tty:
  • Add getColorDepth function to determine if terminal supports colors. (Ruben Bridgewater) #17615
  • util:
  • add util.inspect compact option (Ruben Bridgewater) #17576
  • Added new collaborators
  • watson Thomas Watson
  • Commits:
  • [acc86ed246] - 2018-03-XX, Version 9.9.0 (Current) (Michaël Zasso)
  • [8d33e5c214] - assert: improve error check (Ruben Bridgewater) #17574
  • [5e6b42ec9c] - assert: show proper differences (Ruben Bridgewater) #18611
  • [9abbb6b857] - assert: fix infinite loop (Ruben Bridgewater) #18611
  • [e9ac468146] - assert: fix throws trace (Ruben Bridgewater) #18595
  • [d3c2534bbe] - assert: use destructuring for errors (Ruben Bridgewater) #18247
  • [5aa3a2d172] - (SEMVER-MINOR) assert: improve error messages (Ruben Bridgewater) #17615
  • [f96ea47cf5] - assert: fix strict regression (Ruben Bridgewater) #17903
  • [ebd60fa505] - (SEMVER-MINOR) assert: .throws accept objects (Ruben Bridgewater) #17584
  • [612ba1a3f0] - (SEMVER-MINOR) assert: improve assert.throws (Ruben Bridgewater) #17585
  • [24aeca7dd5] - assert: fix throws and doesNotThrow stack frames (Ruben Bridgewater) #17703
  • [db73d1c13b] - assert: use object argument in innerFail (Ruben Bridgewater) #17582
  • [bae5de1949] - (SEMVER-MINOR) assert: add strict functionality export (Ruben Bridgewater) #17002
  • [f0f31d080a] - async_hooks: add copyHooks function (Daniel Bevenius) #19391
  • [71b1c7f79f] - async_hooks: don't set hook_fields[kTotals] to 0 (Daniel Bevenius) #19219
  • [530b8a4077] - benchmark: fix benchmark for url (Sergey Golovin) #19084
  • [563bed00f5] - benchmark,lib,test,tools: use consistent quotes (Rich Trott) #19156
  • [3f7c4eea04] - build: do not cd on vcbuild help (Vse Mozhet Byt) #19291
  • [5a1437cdbd] - build: update arm64 minimum supported platform (Gibson Fahnestock) #19164
  • [07845fc19e] - console: port errors to new system (Ruben Bridgewater) #18857
  • [03c321a713] - (SEMVER-MINOR) crypto: allow passing null as IV unless required (Tobias Nießen) #18644
  • [044995e546] - crypto: use bool over int consistently (Tobias Nießen) #19238
  • [36f664ef9a] - deps: V8: backport 596d55a from upstream (Myles Borins) #19477
  • [5966b8cc06] - deps: v8: cherry-pick fixes for v8:7535 (Flarna) #19333
  • [cb732aeda4] - doc: enable eslint prefer-template rule (Ruben Bridgewater) #18831
  • [ff82acb95a] - doc: update buffer examples (Ruben Bridgewater) #18758
  • [a4c28d77f7] - doc: fix deprecation removed by mistake (Michaël Zasso) #19482
  • [b229912f6f] - doc: do not announce obvious examples (Rich Trott) #19270
  • [c1fa0926e3] - doc: fix typos on n-api (Kyle Robinson Young) #19385
  • [99e6734f19] - doc: improve best practices in onboarding-extras (Rich Trott) #19315
  • [5a56327e79] - doc: fix minor issues in async_hooks.md (Rich Trott) #19313
  • [5da3ee7719] - doc: clarify default TLS handshake timeout (Rich Trott) #19290
  • [7f652c2bcc] - doc: update username and email (Yuta Hiroto) #19338
  • [e247f19ac3] - doc: improve style guide text (Rich Trott) #19269
  • [c9b12f302a] - doc: remove superfluous text in onboarding-extras (Rich Trott) #19247
  • [6c5afebf55] - doc: make caveat in stream.md more concise (Rich Trott) #19251
  • [8e88a180b9] - doc: add warning to assert.doesNotThrow() (Ruben Bridgewater) #18699
  • [a04e4ae5e4] - doc: remove confusing "cats" from style guide (Rich Trott) #19246
  • [7c3617558e] - doc: remove superfluous adverb from style guide (Rich Trott) #19246
  • [d117f5ff22] - doc: remove warning against readable/readable.read (Rich Trott) #19193
  • [5c21d16c31] - doc: add watson to collaborators (Thomas Watson) #19234
  • [9557e66ae1] - doc: update labels info in onboarding-extras.md (Rich Trott) #19160
  • [84acb9fae5] - doc: add inspector usage example (Ali Ijaz Sheikh) #19172
  • [27088cfaa7] - doc: improve onboarding instructions (Joyee Cheung) #19108
  • [9ec0eab019] - doc: make suggestion more direct in stream.md (Rich Trott) #19124
  • [968b867bf2] - doc: document asserts Weak(Map|Set) behavior (Ruben Bridgewater) #18248
  • [745709396c] - (SEMVER-MINOR) doc: improve .throws RegExp info (Ruben Bridgewater) #17585
  • [5a78c6c0a6] - (SEMVER-MINOR) doc: improve assert documentation (Ruben Bridgewater) #17002
  • [f4f0266bfe] - errors: add comments about falsy error types (Ruben Bridgewater) #18857
  • [ffa16aad60] - errors: update all internal errors (Ruben Bridgewater) #18857
  • [d57a2421fc] - errors: implement new error handling (Ruben Bridgewater) #18857
  • [607b33cfcc] - (SEMVER-MINOR) fs: support as and as+ flags in stringToFlags() (Sarat Addepalli) #18801
  • [b01bd800c6] - fs: fix createReadStream(…, {end: n}) for non-seekable fds (Anna Henningsen) #19329
  • [3914e97741] - http2: fixes error handling (Matteo Collina) #19232
  • [3bf69cd3e7] - http2: some general code improvements (James M Snell) #19400
  • [4277635bed] - http2: clean up Http2Settings (James M Snell) #19400
  • [42b6d801dc] - http2: don't aggressively inline (James M Snell) #19400
  • [89fbbc48ff] - http2: simplify timeout tracking (Anna Henningsen) #19206
  • [f06622cd56] - lib: define printErr() in script string (cjihrig) #19285
  • [b35eabb837] - lib: handle throw undefined in assert.throws() (Ben Noordhuis) #18029
  • [0e6f720991] - n-api: separate out async_hooks test (Gabriel Schulhof) #19392
  • [528798c3f4] - n-api: add missing exception checking (Michael Dawson) #19362
  • [f679ac19e0] - n-api: resolve promise in test (Gabriel Schulhof) #19245
  • [12f19a6b86] - n-api: update documentation (Gabriel Schulhof) #19078
  • [0c9577edfc] - n-api,test: add int64 bounds tests (Kyle Farnung) #19309
  • [f36521becf] - n-api,test: add a new.target test to addons-napi (Taylor Woll) #19236
  • [5b12d3a58e] - net: do not inherit the no-half-open enforcer (Luigi Pinca) #18974
  • [a9bd8bff8a] - path: remove redundant function (Sergey Golovin) #19237
  • [55f7bbb0bd] - repl: refactor code for readability (Ruben Bridgewater) #17919
  • [6997af7378] - repl: upper case comments first char (Ruben Bridgewater) #17919
  • [3e6858e4a7] - repl: better handling of recoverable errors (Prince J Wesley) #18915
  • [49391a70e1] - src: fix util abort (Ruben Bridgewater) #19223
  • [1ba1861731] - src: remove unused using declarations async_wrap (Daniel Bevenius) #18893
  • [8757799d69] - src: remove unused stdlib.h include (Daniel Bevenius) #19427
  • [da62c5ca68] - src: fix minor typo in comment stream_base.h (Daniel Bevenius) #19429
  • [43c482b9c8] - src: fix indentation of params in env-inl.h (Daniel Bevenius) #19390
  • [054dd28da6] - src: make AsyncWrap constructors delegate (Daniel Bevenius) #19366
  • [7a3d1d205e] - src: remove unused uv.h include from async_wrap.cc (Daniel Bevenius) #19342
  • [126a161928] - src: fix indenting of wrap->EmitTraceEventBefore (Daniel Bevenius) #19340
  • [03fb817a1d] - src: add extractPromiseWrap function (Daniel Bevenius) #19340
  • [e208282f68] - src: refactor emit before/after/promiseResolve (Daniel Bevenius) #19295
  • [49481d0e3b] - src: add convenience ctor for async trigger id scope (Anna Henningsen) #19204
  • [4b9914a318] - src: avoid duplicate Before/AtExitCallback structs (Daniel Bevenius) #19226
  • [27754c5408] - src: add incr/decr operators for Reference (Daniel Bevenius) #19083
  • [64f646269a] - src: use smart pointer in AsyncWrap::WeakCallback (Daniel Bevenius) #19168
  • [152c931f53] - stream: make Duplex inherits from DuplexBase (Luigi Pinca) #18974
  • [9c0c0e68ac] - stream: add no-half-open enforcer only if needed (Luigi Pinca) #18953
  • [1eac1d7d85] - test: minor refactoring (Ruben Bridgewater) #18669
  • [574d061c3c] - test: remove assert.doesNotThrow() (Ruben Bridgewater) #18669
  • [5478746203] - test: refactor assert test (Ruben Bridgewater) #18610
  • [4e9279df5c] - test: remove NodeTestFixture from Env constructor (Daniel Bevenius) #18558
  • [22b8f9fba6] - test: introduce SetUpTestCase/TearDownTestCase (Daniel Bevenius) #18558
  • [519850f21e] - test: http2 client setNextStreamID errors (Trivikram) #18848
  • [e3ce084f7c] - test: fix flaky test-http2-ping-flood (Rich Trott) #19395
  • [7df6d9ddc8] - test: rename regression tests file names (Ujjwal Sharma) #19332
  • [f49042131a] - test: use descriptive names for regression tests (Ujjwal Sharma) #19275
  • [01749f07bd] - test: fix flaky test-http2-settings-flood (Rich Trott) #19349
  • [9aa5090689] - test: fix test-cluster-send-handle-large-payload (Rich Trott) #19311
  • [11a0ef566a] - test: delete test/parallel/test-regress-GH-4948 (Ujjwal Sharma) #19279
  • [be20914958] - test: shared lib build doesn't handle SIGPIPE (Yihong Wang) #19211
  • [f84f548986] - test: fix assertion argument order (Rich Trott) #19264
  • [84ae59e5f8] - test: fix path in doctool/test-doctool-json (Vse Mozhet Byt) #19287
  • [b8ca616baa] - test: fix compiler warnings in callback-scope (Daniel Bevenius) #19252
  • [d3bc72e9cc] - test: name test files appropriately (Ujjwal Sharma) #19212
  • [f0c8f6969f] - test: fix test-abort-backtrace in shared lib build (Yihong Wang) #19213
  • [e4c320e5d7] - test: Remove unnecessary asserion messages in test-crypto-hash.js (Piotr Grzesik) #18984
  • [411f3e03fe] - test: remove flaky status for test-npm-install (Rich Trott) #19216
  • [a4a4819954] - test: do not check text for engine-generated error (Rich Trott) #19215
  • [38eb432260] - test: refactor http-https-default-ports (Ken Lin) #19130
  • [0ece7cc227] - test: rename test-regress-GH-877.js (Ujjwal Sharma) #19161
  • [636a5f627e] - test: rename test-regress-GH-784.js (Ujjwal Sharma) #19161
  • [c0c6d5848f] - test: address nits and rename the corresponding fixture (Ujjwal Sharma) #19161
  • [22484e1fb2] - test: rename tests to remove "regress" keyword (Ujjwal Sharma) #19161
  • [2262a34f0b] - test: rename test-regress-GH-4027 (Ujjwal Sharma) #19161
  • [bdbfc0e20e] - test: rename test-regress-GH-4015 (Ujjwal Sharma) #19161
  • [da44c2ccf0] - test: rename test-regress-GH-1697 (Ujjwal Sharma) #19161
  • [fa43d2f69e] - test: rename test-regress-GH-1726 (Ujjwal Sharma) #19161
  • [46b5915dab] - test: skip postmortem metadata test when nm fails (Joyee Cheung) #19107
  • [16ab3b54d1] - test: address unreliable test-performance (Rich Trott) #19228
  • [1e5c7e3e47] - test: refactor common.expectsError (Ruben Bridgewater) #17703
  • [060216689a] - (SEMVER-MINOR) tls: expose Finished messages in TLSSocket (Anton Salikhmetov) #19102
  • [b04dd7b351] - tools: enable eslint one-var rule (Ruben Bridgewater) #18831
  • [d4d7df8371] - tools: enable eslint strict key-spacing (Ruben Bridgewater) #18831
  • [9e10ddc215] - tools: enable eslint no-undef-init rule (Ruben Bridgewater) #18831
  • [9d1e409ee3] - tools: enable no-unsafe-finally (Ruben Bridgewater) #18745
  • [d7958657d7] - tools: add assert.doesNotThrow eslint rule (Ruben Bridgewater) #18669
  • [66694e28b1] - tools: fix test-npm-package (Michaël Zasso) #19293
  • [9613e02ff7] - tools,bootstrap: preprocess gypi files to json (Gus Caplan) #19140
  • [74f0d1aa60] - (SEMVER-MINOR) tty: refactor to es6 (Ruben Bridgewater) #17615
  • [ead727c274] - (SEMVER-MINOR) tty: add getColorDepth function (Ruben Bridgewater) #17615
  • [072adfea8c] - url: replace "magic" numbers by constants (Sergey Golovin) #19035
  • [c18ac52970] - (SEMVER-MINOR) util: add util.inspect compact option (Ruben Bridgewater) #17576
  • [ce3a5af69f] - (SEMVER-MINOR) util: rename util.inspect argument (Ruben Bridgewater) #17576
  • [fd4c05ab56] - (SEMVER-MINOR) util: fix custom inspect description (Ruben Bridgewater) #17576

New in Node.js 9.8.0 (Mar 8, 2018)

  • Notable Changes:
  • crypto:
  • add cert.fingerprint256 as SHA256 fingerprint (Hannes Magnusson) #17690
  • http2:
  • Fixed issues with aborted connections in the HTTP/2 implementation (Anna Henningsen) #18987 #19002
  • loader:
  • --inspect-brk now works properly for esmodules (Gus Caplan) #18949
  • src:
  • make process.dlopen() load well-known symbol (Ben Noordhuis) #18934
  • trace_events:
  • add file pattern cli option (Andreas Madsen) #18480

New in Node.js 9.7.0 (Mar 1, 2018)

  • libuv:
  • Updated to libuv 1.19.2 (Colin Ihrig) #18918
  • src:
  • Add initial support for Node.js-specific post-mortem metadata (Matheus Marchini) #14901
  • timers:
  • The return value of setImmediate() now has ref() and unref() methods (Anatoli Papirovski) #18139
  • util:
  • It is now possible to get the name for a numerical platform-specific error code as a string (Joyee Cheung) #18186

New in Node.js 9.6.1 (Feb 23, 2018)

  • NOTABLE CHANGES:
  • events:
  • events.usingDomains being set to false by default was removed in 9.6.0 which was a change in behavior compares to 9.5.0. This behavior change has been reverted and the events object now has usingDomains preset to false, which is the behavior in 9.x prior to 9.6.0 (Myles Borins) #18944
  • Commits:
  • [761caec379] - events: preset usingDomains to false (Myles Borins) #18944

New in Node.js 9.6.0 (Feb 22, 2018)

  • Notable Changes:
  • async_hooks:
  • deprecate unsafe emit{Before,After} (Ali Ijaz Sheikh) #18513
  • rename PromiseWrap.parentId to PromiseWrap.isChainedPromise (Ali Ijaz Sheikh) #18633
  • deps:
  • update node-inspect to 1.11.3 (Jan Krems) #18354
  • ICU 60.2 bump (Steven R. Loomis) #17687
  • Introduce ScriptOrModule and HostDefinedOptions to V8 (Jan Krems) #16889
  • http:
  • add options to http.createServer() for IncomingMessage and ServerReponse (Peter Marton) #15752
  • http2:
  • add http fallback options to .createServer (Peter Marton) #15752
  • https:
  • Adds the remaining options from tls.createSecureContext() to the string generated by Agent#getName(). This allows https.request() to accept the options and generate unique sockets appropriately. (Jeff Principe) #16402
  • inspector:
  • --inspect-brk for es modules (Guy Bedford) #18194
  • lib:
  • allow process kill by signal number (Sam Roberts) #16944
  • module:
  • enable dynamic import (Myles Borins) #18387
  • dynamic import is now supported (Jan Krems) #15713
  • n-api:
  • add methods to open/close callback scope (Michael Dawson) #18089
  • src:
  • allow --perf-(basic-)?prof in NODE_OPTIONS (Leko) #17600
  • vm:
  • add support for es modules (Gus Caplan) #17560

New in Node.js 9.5.0 (Feb 22, 2018)

  • Notable Changes:
  • cluster:
  • add cwd to cluster.settings (cjihrig) #18399
  • deps:
  • upgrade libuv to 1.19.1 (cjihrig) #18260
  • meta:
  • add Leko to collaborators (Leko) #18117
  • add vdeturckheim as collaborator (vdeturckheim) #18432
  • n-api:
  • expose n-api version in process.versions (Michael Dawson) #18067
  • perf_hooks:
  • add performance.clear() (James M Snell) #18046
  • stream:
  • avoid writeAfterEnd() while ending (陈刚) #18170

New in Node.js 9.4.0 (Jan 10, 2018)

  • async_hooks:
  • deprecate AsyncHooks Sensitive API and runInAsyncIdScope. Neither API were documented. (Andreas Madsen) #16972
  • deps:
  • update nghttp2 to 1.29.0 (James M Snell) #17908
  • upgrade npm to 5.6.0 (Kat Marchán) #17535
  • cherry-pick 50f7455 from upstream V8 (Michaël Zasso) #16591
  • events:
  • remove reaches into _events internals (Anatoli Papirovski) #17440
  • http:
  • add rawPacket in err of clientError event (XadillaX) #17672
  • http2:
  • implement maxSessionMemory (James M Snell) #17967
  • add initial support for originSet (James M Snell) #17935
  • add altsvc support (James M Snell) #17917
  • perf_hooks integration (James M Snell) #17906
  • Refactoring and cleanup of Http2Session and Http2Stream destroy (James M Snell) #17406
  • net:
  • remove Socket.prototype.write (Anna Henningsen) #17644
  • remove Socket.prototype.listen (Ruben Bridgewater) #13735
  • repl:
  • show lexically scoped vars in tab completion (Michaël Zasso) #16591
  • stream:
  • rm {writeable/readable}State.length (Calvin Metcalf) #12857
  • add flow and buffer properties to streams (Calvin Metcalf) #12855
  • util:
  • allow wildcards in NODE_DEBUG variable (Tyler) #17609
  • zlib:
  • add ArrayBuffer support (Jem Bezooyen) #16042
  • Added new collaborator:
  • starkwang Weijia Wang
  • Added new TSC member:
  • danbev Daniel Bevenius

New in Node.js 9.3.0 (Dec 13, 2017)

  • async_hooks:
  • add trace events to async_hooks (Andreas Madsen) #15538
  • add provider types for net server (Andreas Madsen) #17157
  • console:
  • console.debug can now be used outside of the inspector (Benjamin Zaslavsky) #17033
  • deps:
  • upgrade libuv to 1.18.0 (cjihrig) #17282
  • patch V8 to 6.2.414.46 (Myles Borins) #17206
  • module:
  • module.builtinModules will return a list of built in modules (Jon Moss) #16386
  • n-api:
  • add helper for addons to get the event loop (Anna Henningsen) #17109
  • process:
  • process.setUncaughtExceptionCaptureCallback can now be used to customize behavior for --abort-on-uncaught-exception (Anna Henningsen) #17159
  • A signal handler is now able to receive the signal code that triggered the handler. (Robert Rossmann) #15606
  • src:
  • embedders can now use Node::CreatePlatform to create an instance of NodePlatform (Cheng Zhao) #16981
  • stream:
  • writable.writableHighWaterMark and readable.readableHighWaterMark will return the values the stream object was instantiated with (Calvin Metcalf) #12860
  • Added new collaborators:
  • maclover7 Jon Moss
  • guybedford Guy Bedford
  • hashseed Yang Guo

New in Node.js 9.2.1 (Dec 8, 2017)

  • Fixes for the following CVEs are included in this release:
  • CVE-2017-15896
  • CVE-2017-15897
  • CVE-2017-3738 (from the openssl project)
  • Notable Changes:
  • buffer: buffer allocated with an invalid content will now be zero filled (Anna Henningsen) #17428
  • deps: openssl updated to 1.0.2n (Shigeki Ohtsu) #17526
  • Commits:
  • [15bf640668] - buffer: zero-fill buffer allocated with invalid content (Anna Henningsen) #17428
  • [c0954f4ba1] - deps: update openssl asm and asm_obsolete files (Shigeki Ohtsu) #17526
  • [dfd7cd3038] - deps: add -no_rand_screen to openssl s_client (Shigeki Ohtsu) nodejs/io.js#1836
  • [76e7ff2915] - deps: fix asm build error of openssl in x86_win32 (Shigeki Ohtsu) iojs/io.js#1389
  • [593f21ee9c] - deps: fix openssl assembly error on ia32 win32 (Fedor Indutny) iojs/io.js#1389
  • [235c78f968] - deps: copy all openssl header files to include dir (Shigeki Ohtsu) #17526
  • [b0ebe5cb4b] - deps: upgrade openssl sources to 1.0.2n (Shigeki Ohtsu) #17526
  • [99fc75e9bc] - doc: warn against filling buffer with invalid data (Anna Henningsen) #17428
  • [f0f9e1abf0] - http2: use correct connect event for TLS Socket (James M Snell) #17328
  • [65f209ccf1] - http2: use 'close' event instead of 'streamClosed' (James M Snell) #17328
  • [d3e2bf0c8d] - http2: general cleanups in core.js (James M Snell) #17209
  • [6a76097fad] - http2: major update to internals (James M Snell) #17105
  • [e14c0babe0] - openssl: fix keypress requirement in apps on win32 (Shigeki Ohtsu) iojs/io.js#1389

New in Node.js 9.2.0 (Nov 15, 2017)

  • Notable Changes:
  • crypto: Support building with both 1.1.0 and 1.0.2 (David Benjamin) #16130
  • fs: fs.realpathSync.native and fs.realpath.native are now exposed (Ben Noordhuis) #15776
  • process: expose process.ppid (cjihrig) #16839
  • Commits:
  • [02ea0ee507] - build: fix cctest compilation (Daniel Bevenius) #16887
  • [a4557f294a] - build: remove cctest extension (Yihong Wang) #16680
  • [1dc4fc1390] - build: include srctracing when linting on win (Daniel Bevenius) #16720
  • [4c11801ed7] - build: add missing options to help message (Daniel Bevenius) #16707
  • [bed0560fb5] - console: avoid adding infinite error listeners (Matteo Collina) #16770
  • [31dadd2007] - (SEMVER-MINOR) crypto: deprecate {ecdhCurve: false} (David Benjamin) #16130
  • [f952caa677] - (SEMVER-MINOR) crypto: clear some SSL_METHOD deprecation warnings (David Benjamin) #16130
  • [a5e7255385] - (SEMVER-MINOR) crypto: make ALPN the same for OpenSSL 1.0.2 & 1.1.0 (David Benjamin) #16130
  • [07102ace9e] - (SEMVER-MINOR) crypto: remove deprecated ECDH calls w/ OpenSSL 1.1 (David Benjamin) #16130
  • [627a15f9e5] - (SEMVER-MINOR) crypto: emulate OpenSSL 1.0 ticket scheme in 1.1 (David Benjamin) #16130
  • [8a8ac8ce4d] - (SEMVER-MINOR) crypto: hard-code tlsSocket.getCipher().version (David Benjamin) #16130
  • [c42935b79c] - (SEMVER-MINOR) crypto: add compat logic for "DSS1" and "dss1" (David Benjamin) #16130
  • [5c24fc32c9] - (SEMVER-MINOR) crypto: Make Hmac 1.1.0-compatible (David Benjamin) #16130
  • [fa1fc16c3e] - (SEMVER-MINOR) crypto: make SignBase compatible with OpenSSL 1.1.0 (David Benjamin) #16130
  • [abe3dc48cc] - (SEMVER-MINOR) crypto: make Hash 1.1.0-compatible (David Benjamin) #16130
  • [59acd27409] - (SEMVER-MINOR) crypto: make CipherBase 1.1.0-compatible (David Benjamin) #16130
  • [6c3ae36cab] - (SEMVER-MINOR) crypto: remove locking callbacks for OpenSSL 1.1.0 (David Benjamin) #16130
  • [81760ffea9] - (SEMVER-MINOR) crypto: use RSA and DH accessors (David Benjamin) #16130
  • [568d9d0eac] - (SEMVER-MINOR) crypto: test DH keys work without a public half (David Benjamin) #16130
  • [6a9c528a50] - (SEMVER-MINOR) crypto: account for new 1.1.0 SSL APIs (David Benjamin) #16130
  • [cc744b9b26] - (SEMVER-MINOR) crypto: remove unnecessary SSLerr calls (David Benjamin) #16130
  • [201393f655] - (SEMVER-MINOR) crypto: estimate kExternalSize (David Benjamin) #16130
  • [efd9bc36fa] - (SEMVER-MINOR) crypto: make node_crypto_bio compat w/ OpenSSL 1.1 (David Benjamin) #16130
  • [8da4983cb4] - (SEMVER-MINOR) crypto: use X509_STORE_CTX_new (David Benjamin) #16130
  • [9c6f63bf3b] - deps: cherry-pick 3c8195d from V8 upstream (Franziska Hinkelmann) #16897
  • [6ddba2e08e] - deps: patch V8 to 6.2.414.44 (Myles Borins) #16848
  • [f82d3e44c8] - deps: upgrade libuv to 1.16.1 (cjihrig) #16835
  • [38ac50a084] - deps: cherry-pick cc55747 from V8 upstream (Franziska Hinkelmann) #16890
  • [75405a1481] - deps: ICU 60 bump (Steven R. Loomis) #16876
  • [28b7bf062a] - deps: cherry-pick b8331cc030 from upstream V8 (Daniel Bevenius) #16900
  • [2266cafba5] - Revert "deps: cherry-pick b8331cc030 from upstream V8" (Daniel Bevenius) #16899
  • [81f14bffff] - deps: cherry-pick b8331cc030 from upstream V8 (Daniel Bevenius) #16743
  • [6922fda1b5] - doc: recommend node-core-utils for metadata (Rich Trott) #16978
  • [ccf1f6aa13] - doc: fix typo in http2 doc (Gus Caplan) #16993
  • [54768f5094] - doc: reorganize COLLABORATOR_GUIDE.md (Rich Trott) #15710
  • [c4e2343bfb] - doc: drop support for VS2015 (Nikolai Vavilov) #16868
  • [74f33724a2] - doc: clarify the prerequisites for building with VS2017 (Nikolai Vavilov) #16903
  • [1510fda1b0] - doc: outline commit message for breaking changes (Maton Anthony) #16846
  • [1fcd95e517] - doc: remove duplicate 'the' from http2 API doc (Vipin Menon) #16924
  • [b46714c023] - doc: fix typos in N-API (Swathi Kalahastri) #16911
  • [3ba52c1582] - doc: correct the spelling of omitting in dgram.md (Vidya Subramanyam) #16910
  • [e60eff6c01] - doc: fix a typo in the documentation (Mamatha J V) #16909
  • [6e9973e912] - doc: improve documentation for the vm module (Franziska Hinkelmann) #16867
  • [15dcb96b28] - doc: fix a typo in n-api documentation (Vipin Menon) #16879
  • [928647c77c] - doc: fix typo in assert.md (Andres Kalle) #16866
  • [a184dbcb2c] - doc: update subprocess.killed (cjihrig) #16748
  • [deff9f5527] - events: remove emit micro-optimizations (Anatoli Papirovski) #16869
  • [8611e3b93b] - (SEMVER-MINOR) fs: expose realpath(3) bindings (Ben Noordhuis) #15776
  • [8dfd5a515a] - http2: multiple smaller code cleanups (James M Snell) #16764
  • [8245e5a2d4] - http2: simplify subsequent rstStream calls (Anatoli Papirovski) #16753
  • [afbdd017c1] - lib: replace string concatenation with template (Suryanarayana Murthy N) #16933
  • [6c0fd55488] - lib: guard inspector console using process var (Daniel Bevenius) #15008
  • [c1792544e8] - lib: improve the usage of TypeError[INVALID_ARG_TYPE] (Weijia Wang) #16401
  • [44c3cc2bec] - lib: change concatenated string to template (Pawan Jangid) #16930
  • [8eb32e1b35] - lib: replace String concatenation with template (saiHemak) #16922
  • [678e738d70] - lib: change concatenated string to template (Nayana Das K) #16925
  • [df181745b8] - lib: replace string concatenation with template (Jayashree S Kumar) #16921
  • [a9358068db] - lib: replace string concatenation with template (Chandrakala) #16920
  • [16c622209a] - lib: replace string concatenation with template (subrahmanya chari p) #16917
  • [64a0c80773] - loader: test search module (Cyril Lakech) #16795
  • [bfdaa28fdb] - meta: 32 bit linux is experimental (Refael Ackermann) #16723
  • [76e6422868] - src: fix compiler warning in process.ppid (cjihrig) #16958
  • [60a6caea76] - src: turn inspector raw pointer into unique_ptr (Franziska Hinkelmann) #16974
  • [79648496ec] - src: explain implementation of vm module (Franziska Hinkelmann) #16962
  • [a79d86db21] - src: use unrefed async for GC tracking (Anna Henningsen) #16758
  • [5df3dc1169] - src: make StreamBase prototype accessors robust (Joyee Cheung) #16860
  • [41937bedf9] - (SEMVER-MINOR) src: add process.ppid (cjihrig) #16839
  • [0b93bbb419] - src: add openssl-system-ca-path configure option (Daniel Bevenius) #16790
  • [43c5726028] - src: fix UB in InternalModuleReadFile() (Ben Noordhuis) #16871
  • [bce5db2225] - src: CHECK() for argument overflow in Spawn() (cjihrig) #16761
  • [120db20a1a] - test: reuse existing PassThrough implementation (Tobias Nießen) #16936
  • [9f0b0fbd0e] - test: use fixtures module for path resolve (sercan yersen) #16842
  • [d5f2601bc8] - test: refactor comments in test-child-process-spawnsync-maxbuf (ChrBergert) #16829
  • [93af193821] - test: refactor addons-napi/test_promise/test.js (ka3e) #16814
  • [ad02676816] - test: used fixturesDir from fixtures modules (Klemen Kogovsek) #16813
  • [809dc099ac] - test: refactor fs.write() test (Patrick Heneise) #16827
  • [35fc317d8f] - test: add a test description (Grant Gasparyan) #16833
  • [83f9604adc] - test: use ES6 classes instead of util.inherits (Tobias Nießen) #16938
  • [7c364a269c] - test: use common/fixtures module in hash-seed test (Javier Blanco) #16823
  • [3136578871] - test: make test-tls-external-accessor agnostic (Rich Trott) #16272
  • [0be7f8c48c] - test: make test-require-json engine agnostic (Rich Trott) #16272
  • [835ca63595] - test: make test-repl engine agnostic (Rich Trott) #16272
  • [f8337cea8e] - test: make test-repl-syntax-error-stack agnostic (Rich Trott) #16272
  • [c81b086928] - test: make test-repl-harmony engine agnostic (Rich Trott) #16272
  • [591a6927ee] - test: make test-querystring-escape engine agnostic (Rich Trott) #16272
  • [e2f564821e] - test: make test-process-env-symbols agnostic (Rich Trott) #16272
  • [9bf887475e] - test: make test-os-eol engine agnostic (Rich Trott) #16272
  • [79e183186c] - test: make error stack test engine agnostic (Rich Trott) #16272
  • [b5b23bd3e8] - test: make test-http-outgoing-proto agnostic (Rich Trott) #16272
  • [bd7822b8f6] - test: make test-error-reporting engine agnostic (Rich Trott) #16272
  • [4604294647] - test: make test-console engine agnostic (Rich Trott) #16272
  • [025eadfcd5] - test: make test-console-count engine agnostic (Rich Trott) #16272
  • [c74467f938] - test: make test-cli-syntax engine agnostic (Rich Trott) #16272
  • [2e2e8020e7] - test: make test-buffer-slow engine agnostic (Rich Trott) #16272
  • [7a5378377f] - test: improve template value for test message (Stephan Smith) #16826
  • [6ea8768141] - test: unmark flaky test (Anna Henningsen) #16758
  • [651fee4c54] - test: change concatenated string to template (Deepthi Sebastian) #16929
  • [1ea546c9ee] - test: change concatenated string to template (Anawesha Khuntia) #16912
  • [385f65826a] - test: change string concatenation to template (Suryanarayana Murthy N) #16919
  • [61fbd857d7] - test: use template string for concatenation (Vipin Menon) #16918
  • [fbec5ec4d9] - test: replace string concatenation with template (Kabir Islam) #16916
  • [407eb6f93e] - test: enable mustCall() during child exit (Vipin Menon) #16915
  • [26e4c587eb] - (SEMVER-MINOR) test: fix flaky test-http2-create-client-connect (David Benjamin) #16130
  • [8c294203cf] - (SEMVER-MINOR) test: fix test-https-agent-session-eviction for 1.1 (David Benjamin) #16130
  • [3d438f84b2] - (SEMVER-MINOR) test: configure certs in tests (David Benjamin) #16130
  • [08ac21423e] - (SEMVER-MINOR) test: revise test-tls-econnreset for OpenSSL 1.1.0 (David Benjamin) #16130
  • [d95b608d98] - (SEMVER-MINOR) test: test with a larger RSA key (David Benjamin) #16130
  • [85ffc2f960] - (SEMVER-MINOR) test: remove sha from test expectations (David Benjamin) #16130
  • [bec042183c] - (SEMVER-MINOR) test: update test expectations for OpenSSL 1.1.0 (David Benjamin) #16130
  • [b42013c31e] - test: replace string concatenation with template (Sabari Lakshmi Krishnamoorthy) #16914
  • [fbc7451553] - test: replace string concatenation with template (Tanvi Kini) #16913
  • [7f7dec8b08] - test: cover vm.runInNewContext() (cjihrig) #16906
  • [8311561ed5] - test: improve assertion messages (Neil Vass) #16885
  • [1ee6df9612] - test: pass process.env to child processes (Rod Vagg) #16405
  • [172652ba27] - test: improve assert messages in stream test (Katie Stockton Roberts) #16884
  • [271c89e569] - test: improve assertion in test-require-dot (Adam Wegrzynek) #16805
  • [5d3a4ad1cf] - test: improve error emssage reporting in testNapiRun.js (Paul Ashfield) #16821
  • [f71f41d79b] - test: add values to error message (Adam Jeffery) #16831
  • [c1cdc658c0] - test: replace common.fixtiresDir with fixtures.readKey() (woj) #16817
  • [c662cc0b70] - test: use internet.addresses in internet tests (Joyee Cheung) #16390
  • [a465f2bc78] - test: introduce test/common/internet.addresses (Joyee Cheung) #16390
  • [bc19a93093] - test: use tmpDir in test-fs-utimes (Rich Trott) #16774
  • [4d55a1dc2f] - test: improve assert messages in napi exception test (Paul Blanche) #16820
  • [8ad4f768c0] - test: remove message argument in cluster setup test (mbornath) #16838
  • [21e9888237] - test: check session timeout in http2 (Anatoli Papirovski) #16754
  • [be266bdbbd] - test: move test-http-keepalive-maxsockets to sequential (Rich Trott) #16777
  • [adcaddfce8] - test: improve assert messages in test-global (Mark McNelis) #16843
  • [535eb64e55] - tools: enforce no unused trailing arguments tools directory (Rich Trott) #16953
  • [ad27e2c2e8] - tools: remove unused trailing function arguments (Rich Trott) #16953
  • [7ba35995a7] - tools: fix inspector-check reporting (Daniel Bevenius) #16902
  • [25dd8f66be] - tools: add direct anchors for error codes (Joyee Cheung) #16779
  • [625999b840] - tools: don't lint files that have not changed (Joyee Cheung) #16581
  • [942a9ed6a8] - tools,build: allow build without remark-cli (Refael Ackermann) #16893

New in Node.js 9.1.0 (Nov 8, 2017)

  • Notable Changes:
  • CLI:
  • NODE_OPTIONS now supports the --stack-trace-limit option. #16495
  • deps:
  • OpenSSL is upgraded to 1.0.2m #16691
  • http:
  • A 'connect' event handler leak has been fixed. #16725
  • The 103 Early Hints status code is now supported. #16644
  • Commits:
  • [32417999ac] - build: suppress lint-md output (Gibson Fahnestock) #16551
  • [433745e7eb] - build: add missing comma in sources list (Daniel Bevenius) #16613
  • [8bc5249223] - build: make test-doc and lint addon docs (Joyee Cheung) #16377
  • [88ad01fce7] - build: make doc target quiet (Daniel Bevenius) #16516
  • [f3e01618f1] - build,src: Add CloudABI as a POSIX-like runtime environment. (Ed Schouten) #16612
  • [7349d42945] - (SEMVER-MINOR) cli: add --stack-trace-limit to NODE_OPTIONS (Anna Henningsen) #16495
  • [ed0fbd8d72] - deps: cherry-pick e7f4e9e from upstream libuv (Bartosz Sosnowski) #16724
  • [185229e258] - deps: update openssl asm and asm_obsolete files (Shigeki Ohtsu) #16691
  • [162686f5f4] - deps: add -no_rand_screen to openssl s_client (Shigeki Ohtsu) nodejs/io.js#1836
  • [e0f6dee961] - deps: fix asm build error of openssl in x86_win32 (Shigeki Ohtsu) iojs/io.js#1389
  • [3d7eea5da8] - deps: fix openssl assembly error on ia32 win32 (Fedor Indutny) iojs/io.js#1389
  • [3438765781] - deps: copy all openssl header files to include dir (Shigeki Ohtsu) #16691
  • [b130febd1d] - deps: upgrade openssl sources to 1.0.2m (Shigeki Ohtsu) #16691
  • [90e8e81bbb] - doc: mention constant-time in crypto doc (Mithun Sasidharan) #16604
  • [dee7800ae8] - doc: add links to EventEmitter in errors.md (Delapouite) #16861
  • [f097e2775b] - doc: fix a link in dgram.md (Vse Mozhet Byt) #16854
  • [978aa8476b] - doc: add isTTY property documentation (SonaySevik) #16828
  • [6739f41f2d] - doc: fix json generator warnings (Luigi Pinca) #16742
  • [2bb148f7bb] - doc: make stream.Readable consistent (Sakthipriyan Vairamani (thefourtheye)) #16786
  • [e05d4f43b6] - doc: correct effects to affects (gowpen) #16794
  • [d7df4dfa1c] - doc: correct EventEmitter reference (gowpen) #16791
  • [77e4ec8c51] - doc: update license to include node-inspect (Myles Borins) #16659
  • [7388144dbc] - doc: add 9.x to version picker and mark 8.x as LTS (Chris Young) #16672
  • [e585c41487] - doc: add docs for Zlib#close() (Luigi Pinca) #16592
  • [d5ea177652] - doc: add nodejs/gyp team for GYP related issues (Gibson Fahnestock) #16638
  • [09181eb976] - doc: add details about rss on process.memoryUsage (Anthony Nandaa) #16566
  • [3fd7eddb44] - doc: add windowsVerbatimArguments docs (Andrew Stucki) #16299
  • [1771bb5039] - doc: fix Changelog link order (Gibson Fahnestock) #16632
  • [6ee28b2823] - doc: util.isDeepStrictEqual returns boolean (Lucas Azzola) #16653
  • [59a4789eee] - doc: howto decode buffers extending from Writable (dicearr) #16403
  • [d733dd9468] - doc: add *-inl.h include rule to C++ style guide (Joyee Cheung) #16548
  • [1cef9ef1de] - doc: make default values and periods consistent (Matej Krajčovič) #16563
  • [77f0359708] - http: use 'connect' event only if socket is connecting (Luigi Pinca) #16725
  • [9c39d79908] - http: use arrow fns for lexical this in Agent (Bryan English) #16475
  • [1b090c9b66] - http, http2: add 103 Early Hints status code (Yosuke Furukawa) #16644
  • [d6d461003f] - http, tls: better support for IPv6 addresses (Mattias Holmlund) #14772
  • [762a11fab3] - http2: improve errors thrown in header validation (Joyee Cheung) #16718
  • [72d0e7e70b] - http2: refactor multiple internals (James M Snell) #16676
  • [e3283c71ce] - http2: allocate on every chunk send (James M Snell) #16669
  • [dfe56847ac] - http2: refactor settings handling (James M Snell) #16668
  • [bf7dc38ae4] - http2: make sessions garbage-collectible (Anna Henningsen) #16461
  • [3f529620cc] - http2: remove unused assignment (Anna Henningsen) #16461
  • [b50c33470e] - http2: track async state for sending (Anna Henningsen) #16461
  • [224ea159ae] - http2: move uv_prepare handle to Http2Session (Anna Henningsen) #16461
  • [6074c8cdbb] - inspector: include node_platform.h header (Alexey Kuzmin) #16677
  • [e0c7b3d13f] - lib: shuffle v8_prof_polyfill.js for unit testing (Ben Noordhuis) #16769
  • [c14030ec7a] - lib: fix version check in tick processor (Ben Noordhuis) #16769
  • [a0b94f4e12] - lib: refactor ES module loader for readability (Anna Henningsen) #16579
  • [083a6e3830] - openssl: fix keypress requirement in apps on win32 (Shigeki Ohtsu) iojs/io.js#1389
  • [05f90478fc] - repl: avoid crashing from null and undefined errors (cPhost) #16574
  • [da66610798] - src: fix -Winconsistent-missing-override warning (Ben Noordhuis) #16726
  • [6a2cb124e3] - src: clean up uv_fs_t's in module_wrap.cc (cjihrig) #16722
  • [8a2b4ee7bb] - src: remove unnecessary call to SetHiddenPrototype (Toon Verwaest) #16554
  • [a87f846cc1] - src: add method to compute storage in WriteWrap (Anna Henningsen) #16727
  • [a814786a06] - src: improve module loader readability (Anna Henningsen) #16536
  • [c40b3c6d2a] - src: add 'dynamic' process.release.lts property (Rod Vagg) #16656
  • [f3a65a85d9] - src: pass context to Get() operations for cares_wrap (Evan Lucas) #16641
  • [4f8765d4c8] - src: remove unused includes in string_bytes.h (Daniel Bevenius) #16606
  • [c4736cfcba] - src: fix etw provider include on Windows (Joyee Cheung) #16639
  • [f31b796175] - src: add InternalCallbackScope util constructor (Anna Henningsen) #16461
  • [97fd6df920] - src: do not include x.h if x-inl.h is included (Joyee Cheung) #16548
  • [2294ba49be] - test: tick processor version check regression test (Ben Noordhuis) #16769
  • [b44157378a] - test: use default assertion message (jonask) #16819
  • [a409b874d9] - test: improve message in test-fs-readfile-pipe-large (fjau) #16840
  • [527dddac2f] - test: remove custom message from assertion (Nicolas Morel) #16824
  • [a85d6e9be8] - test: show incorrect value on test failure (Sean Karson) #16818
  • [50d505c188] - test: include file mode in assert message (Sascha Tandel) #16815
  • [5f88543778] - test: refactor tls test to use fixtres.readSync (Brian O'Connell) #16816
  • [d054e94fdc] - test: add detailed message for assertion failure (Attila Gonda) #16812
  • [6831e42988] - test: use fixtures module in test-repl (Maring, Damian Lion) #16809
  • [ef679803a0] - test: update test to use fixtures.readKey (Dara Hayes) #16811
  • [219ac4bde6] - test: fix typos in read-buffer tests (Jimi van der Woning) #16834
  • [e4b3c00e48] - test: replace fixturesDir with usage of fixtures module (Octavian Ionescu) #16810
  • [021ccb4011] - test: use default assertion messages (John Byrne) #16808
  • [2156828f20] - test: clarified assert message for test-require-json.js (Matthias Reis) #16807
  • [ec1b1108af] - test: replace common.fixturesDir with fixtures module (Dumitru Glavan) #16803
  • [700c5e7795] - test: replace common.fixturesDir with fixtures.readSync() (Adri Van Houdt) #16802
  • [bcd818af2a] - test: replace common.fixturesDir usage (Sascha Tandel) #16800
  • [f3e63f254c] - test: update test to use fixtures (Adam Wegrzynek) #16799
  • [0ab3d37be5] - test: refactor exitedAfterDisconnect test (Rich Trott) #16729
  • [26f1a1d9e9] - test: fix test-cli-node-options on Windows (Anna Henningsen) #16709
  • [fc58c5231f] - test: fix malformed parallel.status line (Rich Trott) #16702
  • [689c9d401e] - test: mark test-async-wrap-uncaughtexception as flaky (Refael Ackermann) #16694
  • [0b337cbee8] - test: fix flaky test-http2-server-rst-stream.js (Anatoli Papirovski) #16690
  • [5077faffaa] - test: pause child until parent is ready (jBarz) #15774
  • [d178c6dc91] - test: update process-release for Node 8 Carbon (Jeremiah Senkpiel) #16656
  • [ffe4d7b468] - test: increase coverage for ModuleMap (Rob Paton) #16045
  • [f9b2099d51] - test: use fixtures module in test-https-pfx (Ken Takagi) #15895
  • [6998591be7] - test,net: remove scatological terminology (Rich Trott) #16599
  • [87b4e3ed49] - tls: accept array of protocols in TLSSocket (Mark S. Everitt) #16655
  • [e9396d28b1] - tools: remove unneeded parentheses in doc/html.js (Vse Mozhet Byt) #16845
  • [6e22dc817f] - tools: replace string concatenation with template literals (Kevin Yu) #16804
  • [e781d93bd0] - tools: replace string concatenation with template literals (Giovanni Lela) #16806
  • [422d3158ee] - tools: replace string concetation with templates (Patrick Heneise) #16801
  • [fa5a8419c7] - tools: update to ESLint 4.10.0 (cjihrig) #16738
  • [326a048a5c] - tools: add fixer for no-let-in-for-declaration (Weijia Wang) #16642
  • [d6a0ffe367] - zlib: warn before crash on invalid internals usage (Anna Henningsen) #16657

New in Node.js 9.0.0 (Nov 1, 2017)

  • Notable Changes:
  • Async hooks:
  • Older experimental APIs have been removed. [d731369b1d] #14414
  • Errors:
  • Improvements have been made to buffer module error messages. [9e0f771224] #14975
  • The assignment of static error codes to Node.js error continues:
  • buffer: [e79a61cf80] #16352, [dbfe8c4ea2] #13976
  • child_process: [fe730d34ce] #14009
  • console: [0ecdf29340] #11340
  • crypto: [ee76f3153b] #16428, [df8c6c3651] #16453, [0a03e350fb] #16454, [eeada6ca63] #16448, [a78327f48b] #16429, [b8bc652869] #15757, [7124b466d9] #15746, [3ddc88b5c2] #15756
  • dns: [9cb390d899] #14212
  • events: [e5ad5456a2] #15623
  • fs: [219932a9f7] #15043, [b61cab2234] #11317
  • http: [11a2ca29ba] #14735, [a9f798ebcc] #13301, [bdfbce9241] #14423, [4843c2f415] #15603
  • inspector: [4cf56ad6f2] #15619
  • net: [a03d8cee1f] #11356, [7f55349079] #14782
  • path: [dcfbbacba8] #11319
  • process: [a0f7284346] #13739, [062071a9c3] #13285, [3129b2c035] #13982
  • querystring: [9788e96836] #15565
  • readline: [7f3f72c19b] #11390
  • repl: [aff8d358fa] #11347, [28227963fa] #13299
  • streams: [d50a802feb] #13310, [d2913384aa] #13291, [6e86a6651c] #16589, [88fb359c57] #15042, [db7d1339c3] #15665
  • string_decoder: [eb4940e2d2] #14682
  • timers: [4d893e093a] #14659
  • tls: [f67aa566a6] #13476, [3ccfeb483d] #13994
  • url: [473f0eff29] #13963
  • util: [de4a749788] #11301, [1609899142] #13293
  • v8: [ef238fb485] #16535
  • zlib: [896eaf6820] #16540, [74891412f1] #15618
  • Child Processes:
  • Errors are emitted on process nextTick. [f2b01cba7b] #4670
  • Domains:
  • The long-deprecated .dispose() method has been removed [602fd36d95] #15412
  • fs:
  • The fs.ReadStream and fs.WriteStream classes now use destroy(). [e5c290bed9] #15407
  • fs module callbacks are now invoked with an undefined context. [2249234fee] #14645
  • HTTP/1:
  • A 400 Bad Request response will now be sent when parsing fails. [f2f391e575] #15324
  • Socket timeout will be set when the socket connects. [10be20a0e8] #8895
  • A bug causing the request 'error' event to fire twice was fixed. [620ba41694] #14659
  • HTTP clients may now use generic Duplex streams in addition to net.Socket. [3e25e4d00f] #16267
  • Intl:
  • The deprecated Intl.v8BreakIterator has been removed. [668ad44922] #15238
  • OS:
  • The os.EOL property is now read-only [f6caeb9526] #14622
  • Timers:
  • setTimeout() will emit a warning if the timeout is larger that the maximum 32-bit unsigned integer. [ce3586da31] #15627
  • Commits:
  • Semver-Major:
  • [de4a749788] - (SEMVER-MAJOR) internal/util: use internal/errors.js (Sebastian Van Sande) #11301
  • [db2e093e05] - (SEMVER-MAJOR) assert: handle enumerable symbol keys (Ruben Bridgewater) #15169
  • [b0d3bec95c] - (SEMVER-MAJOR) assert: use Same-value equality in deepStrictEqual (Ruben Bridgewater) #15398
  • [e13d1df89b] - (SEMVER-MAJOR) assert: support custom errors (geek) #15304
  • [ea2e6363f2] - (SEMVER-MAJOR) assert: use SameValueZero in deepStrictEqual (Ruben Bridgewater) #15036
  • [c53db1e8e9] - (SEMVER-MAJOR) assert: show thrown message in doesNotThrow() (Ruslan Bekenev) #12167
  • [fc463639fa] - (SEMVER-MAJOR) assert: fix assert.fail with zero arguments (Ruben Bridgewater) #13974
  • [07d71c94ef] - (SEMVER-MAJOR) async_hooks: enable runtime checks by default (Andreas Madsen) #16318
  • [d731369b1d] - (SEMVER-MAJOR) async_hooks: remove deprecated APIs (Anna Henningsen) #14414
  • [97c43940c8] - (SEMVER-MAJOR) benchmark: cover more nextTick() code (Rich Trott) #14645
  • [e79a61cf80] - (SEMVER-MAJOR) buffer: buffer.transcode to use internal/errors (Weijia Wang) #16352
  • [9e0f771224] - (SEMVER-MAJOR) buffer: improve error messages (Weijia Wang) #14975
  • [70832bc353] - (SEMVER-MAJOR) build: add V8 embedder version string (Michaël Zasso) #15785
  • [c5eb5bfc2e] - (SEMVER-MAJOR) build: enable runtime linking (jBarz) #15286
  • [2062a69879] - (SEMVER-MAJOR) build: stop support building addons with VS 2013 (Michaël Zasso) #14764
  • [f2b01cba7b] - (SEMVER-MAJOR) child_process: defer error to next tick (Tristian Flanagan) #4670
  • [fe730d34ce] - (SEMVER-MAJOR) child_process: use internal/errors (Tobias Nießen) #14009
  • [448c4c62d2] - (SEMVER-MAJOR) child_process: do not extend result for *Sync() (Brian White) #13601
  • [1fcb76e8f2] - (SEMVER-MAJOR) cluster: remove deprecated property (James M Snell) #13702
  • [4da8b99a74] - (SEMVER-MAJOR) console: coerce label to string in console.time() (James M Snell) #14643
  • [ee76f3153b] - (SEMVER-MAJOR) crypto: migrate setFipsCrypto to internal/errors (James M Snell) #16428
  • [df8c6c3651] - (SEMVER-MAJOR) crypto: use CHECK instead in getSSLCiphers (James M Snell) #16453
  • [0a03e350fb] - (SEMVER-MAJOR) crypto: migrate crypto.randomBytes to internal/errors (James M Snell) #16454
  • [eeada6ca63] - (SEMVER-MAJOR) crypto: migrate timingSafeEqual to internal/errors (James M Snell) #16448
  • [a78327f48b] - (SEMVER-MAJOR) crypto: migrate setEngine to internal/errors (James M Snell) #16429
  • [b8bc652869] - (SEMVER-MAJOR) crypto: migrate crypto sign to internal/errors (James M Snell) #15757
  • [7124b466d9] - (SEMVER-MAJOR) crypto: refactor argument validation for pbkdf2 (James M Snell) #15746
  • [3ddc88b5c2] - (SEMVER-MAJOR) crypto: migrate Certificate to internal/errors (James M Snell) #15756
  • [c75f87cc4c] - (SEMVER-MAJOR) crypto: refactor the crypto module (James M Snell) #15231
  • [484bfa2e37] - (SEMVER-MAJOR) crypto: accept decimal Number in randomBytes (Benjamin Gruenbaum) #15130
  • [c39caa997c] - (SEMVER-MAJOR) deps: backport 0f1dfae from V8 upstream (Tobias Tebbi) #15362
  • [2780f01392] - (SEMVER-MAJOR) deps: backport b096c44 from upstream V8 (Michaël Zasso) #15785
  • [3d1b3df948] - (SEMVER-MAJOR) deps: update V8 to 6.2.414.32 (Michaël Zasso) #15362
  • [acb9b8f73c] - (SEMVER-MAJOR) deps: backport b096c44 from upstream V8 (Michaël Zasso) #15785
  • [d82e1075db] - (SEMVER-MAJOR) deps: update V8 to 6.1.534.36 (Michaël Zasso) #14730
  • [0a66b223e1] - (SEMVER-MAJOR) deps: update V8 to 6.0.286.52 (Myles Borins) #14004
  • [2db2857c72] - (SEMVER-MAJOR) deps: cherry-pick 6d38f89 from upstream V8 (Michaël Zasso) #13263
  • [bc8e4878c0] - (SEMVER-MAJOR) deps: add missing include to V8 i18n.cc (Michaël Zasso) #13263
  • [9b4a891ca2] - (SEMVER-MAJOR) deps: run memory hungry V8 test in exclusive mode (Michaël Zasso) #13263
  • [3dc8c3bed4] - (SEMVER-MAJOR) deps: update V8 to 5.9.211.32 (Michaël Zasso) #13263
  • [1a452f1928] - (SEMVER-MAJOR) dgram,process,util: refactor Error to TypeError (Ruben Bridgewater) #13857
  • [758a17f1d5] - (SEMVER-MAJOR) dns: return TypeError on invalid resolve() input (Rich Trott) #13090
  • [1789dcfc87] - (SEMVER-MAJOR) doc: add missing changelogs to assert docs (Ruben Bridgewater) #15036
  • [8ca9338655] - (SEMVER-MAJOR) doc: document missing error types (Ruben Bridgewater) #13857
  • [3fab9f2cd7] - (SEMVER-MAJOR) doc: EOL deprecated API and update notes (James M Snell) #13702
  • [602fd36d95] - (SEMVER-MAJOR) domain: remove .dispose() (Anna Henningsen) #15412
  • [219932a9f7] - (SEMVER-MAJOR) errors: convert 'fs' (matzavinos) #15043
  • [11a2ca29ba] - (SEMVER-MAJOR) errors: migrate _http_outgoing (Weijia Wang) #14735
  • [9cb390d899] - (SEMVER-MAJOR) errors: migrate dns to use internal/errors (Weijia Wang) #14212
  • [a03d8cee1f] - (SEMVER-MAJOR) errors: migrate socket_list to internal/errors (Bougarfaoui El houcine) #11356
  • [f67aa566a6] - (SEMVER-MAJOR) errors: migrate tls_wrap to use internal/errors (Bidisha Pyne) #13476
  • [b61cab2234] - (SEMVER-MAJOR) errors: port internal/fs errors to internal/errors (Gunar C. Gessner) #11317
  • [1698c8e165] - (SEMVER-MAJOR) errors: fix and improve error types (Ruben Bridgewater) #13857
  • [3e178848a5] - (SEMVER-MAJOR) errors: improve ERR_INVALID_ARG_TYPE (Ruben Bridgewater) #13730
  • [0ecdf29340] - (SEMVER-MAJOR) errors: migrate lib/console (mskec) #11340
  • [7f3f72c19b] - (SEMVER-MAJOR) errors, readline: migrate to use internal/errors.js (Scott McKenzie) #11390
  • [aff8d358fa] - (SEMVER-MAJOR) errors, repl: migrate to use internal/errors.js (Dan Homola) #11347
  • [dbfe8c4ea2] - (SEMVER-MAJOR) errors,buffer: port errors to internal/errors (starkwang) #13976
  • [a9f798ebcc] - (SEMVER-MAJOR) errors,http_server: migrate to use internal/errors.js (Bidisha Pyne) #13301
  • [a0f7284346] - (SEMVER-MAJOR) errors,process: fix error message of hrtime() (Tobias Nießen) #13739
  • [062071a9c3] - (SEMVER-MAJOR) errors,process: migrate to use internal/errors.js (sreepurnajasti) #13285
  • [28227963fa] - (SEMVER-MAJOR) errors,repl: migrate to use internal/errors.js (sreepurnajasti) #13299
  • [d50a802feb] - (SEMVER-MAJOR) errors,stream-transform: migrate to use internal/errors.js (sreepurnajasti) #13310
  • [d2913384aa] - (SEMVER-MAJOR) errors,stream_wrap: use internal/errors.js (LAKSHMI SWETHA GOPIREDDY) #13291
  • [473f0eff29] - (SEMVER-MAJOR) errors,url: port url errors to internal/errors (starkwang) #13963
  • [1609899142] - (SEMVER-MAJOR) errors,util: migrate to use internal/errors.js (Bidisha Pyne) #13293
  • [e5ad5456a2] - (SEMVER-MAJOR) events: migrate to internal/errors (James M Snell) #15623
  • [e5c290bed9] - (SEMVER-MAJOR) fs: refactor close to use destroy (Matteo Collina) #15407
  • [2249234fee] - (SEMVER-MAJOR) fs: invoke callbacks with undefined context (Rich Trott) #14645
  • [f2f391e575] - (SEMVER-MAJOR) http: send 400 bad request on parse error (mog422) #15324
  • [10be20a0e8] - (SEMVER-MAJOR) http: set socket timeout when socket connects (Luigi Pinca) #8895
  • [620ba41694] - (SEMVER-MAJOR) http: don't double-fire the req error event (fengmk2) #14659
  • [156549d8ff] - (SEMVER-MAJOR) http: disable OutgoingMessage pipe method (Roee Kasher) #14358
  • [2fa2a60721] - (SEMVER-MAJOR) http: simplify if statement (Ruben Bridgewater) #13857
  • [80c9ef0b6b] - (SEMVER-MAJOR) http: edit _storeHeader to check for Trailer header (Artur G Vieira) #12990
  • [f55ee6e24a] - (SEMVER-MAJOR) http2: make --expose-http2 flag a non-op (James M Snell) #15535
  • [bdfbce9241] - (SEMVER-MAJOR) http_client, errors: migrate to internal/errors (Weijia Wang) #14423
  • [4843c2f415] - (SEMVER-MAJOR) https: convert to using internal/errors (Rami Moshe) #15603
  • [4cf56ad6f2] - (SEMVER-MAJOR) inspector: migrate to internal/errors (James M Snell) #15619
  • [668ad44922] - (SEMVER-MAJOR) intl: unexpose Intl.v8BreakIterator (Ben Noordhuis) #15238
  • [c885ea727d] - (SEMVER-MAJOR) lib: deprecate fd usage for fs.truncate(Sync) (r1cebank) #15990
  • [095357e26e] - (SEMVER-MAJOR) lib: tweak use of internal/errors (Ruben Bridgewater) #13829
  • [8520e6f280] - (SEMVER-MAJOR) lib: fix urlObject parameter name in url.format (Eduardo Leggiero) #14031
  • [9836cf5717] - (SEMVER-MAJOR) lib: lazy instantiation of fs.Stats dates (Daniel Pihlstrom) #12818
  • [234353a1b8] - (SEMVER-MAJOR) lib,src: refactor buffer out of range index (larissayvette) #11296
  • [9d7574eef5] - (SEMVER-MAJOR) module: deprecate Module._debug (Jackson Tian) #13948
  • [a517466aa7] - (SEMVER-MAJOR) module: mark DEP0019 as EOL and remove compat code (Roman Reiss) #3384
  • [7f55349079] - (SEMVER-MAJOR) net: convert to using internal/errors (matzavinos) #14782
  • [b24e269a48] - (SEMVER-MAJOR) net: multiple listen() events fail silently (Eduard Bondarenko) #13149
  • [75a19fb379] - (SEMVER-MAJOR) net,child_process: improve naming in internal code (Anna Henningsen) #14449
  • [f6caeb9526] - (SEMVER-MAJOR) os: make EOL configurable and read only (XadillaX) #14622
  • [1f8d527e94] - (SEMVER-MAJOR) path: deprecate internal _makeLong, replace (James M Snell) #14956
  • [dcfbbacba8] - (SEMVER-MAJOR) path: use internal/errors.js (Sebastian Van Sande) #11319
  • [a253704446] - (SEMVER-MAJOR) process: make this value consistent (Rich Trott) #14645
  • [43e105f645] - (SEMVER-MAJOR) process: improve hrtime() error message (Rich Trott) #14324
  • [3129b2c035] - (SEMVER-MAJOR) process: use internal/errors in internalNextTick (Tobias Nießen) #13982
  • [9788e96836] - (SEMVER-MAJOR) querystring: convert to using internal/errors (Rami Moshe) #15565
  • [7a29f44071] - (SEMVER-MAJOR) repl: deprecate REPLServer.prototype.memory (Lance Ball) #16242
  • [e416b3ee36] - (SEMVER-MAJOR) repl: deprecate turnOffEditorMode (Lance Ball) #15136
  • [ed1ba4580b] - (SEMVER-MAJOR) repl: remove REPLServer.createContext side effects (Lance Ball) #14331
  • [2ca9f94e33] - (SEMVER-MAJOR) repl: make REPLServer.bufferedCommand private (Lance Ball) #13687
  • [3d9e7bb1d4] - (SEMVER-MAJOR) repl: remove unused function convertToContext (Nikolai Vavilov) #13434
  • [33b2b10b68] - (SEMVER-MAJOR) src: fix rename of entry frame in v8abbr.h (geek) #15362
  • [8f9e738a69] - (SEMVER-MAJOR) src: update ustack offset identifiers (geek) #15362
  • [205a4d2331] - (SEMVER-MAJOR) src: update NODE_MODULE_VERSION to 59 (Michaël Zasso) #15362
  • [ddc16e505b] - (SEMVER-MAJOR) src: update NODE_MODULE_VERSION to 58 (Michaël Zasso) #14730
  • [5f22375922] - (SEMVER-MAJOR) src: add support to pass flags to dlopen (Ezequiel Garcia) #12794
  • [784c6d40f8] - (SEMVER-MAJOR) src: use proper errors as coming from StringBytes (Anna Henningsen) #14579
  • [80ebb4282d] - (SEMVER-MAJOR) src: adjust windows abort behavior (Jared Kantrowitz) #13947
  • [db476fc8b5] - (SEMVER-MAJOR) src: update NODE_MODULE_VERSION to 57 (Myles Borins) #14004
  • [24709b2e4a] - (SEMVER-MAJOR) src: update NODE_MODULE_VERSION to 56 (Michaël Zasso) #13263
  • [6e86a6651c] - (SEMVER-MAJOR) stream: complete migration to internal/errors (Matteo Collina) #16589
  • [88fb359c57] - (SEMVER-MAJOR) stream: migrate _stream_readable use error codes (Ben Halverson) #15042
  • [db7d1339c3] - (SEMVER-MAJOR) stream: migrate to internal/errors (Ruben Bridgewater) #15665
  • [4536128e7c] - (SEMVER-MAJOR) stream: remove dead code (Ruben Bridgewater) #15665
  • [eb4940e2d2] - (SEMVER-MAJOR) string_decoder: Migrate to use internal/errors (Weijia Wang) #14682
  • [a7487c92e2] - (SEMVER-MAJOR) test: fix message test after V8 upgrade (Michaël Zasso) #15362
  • [fca7e49e44] - (SEMVER-MAJOR) test: adjust windows failed alloc test to V8 6.2 (Bartosz Sosnowski) #14730
  • [95c8df18f1] - (SEMVER-MAJOR) test: add test to verify ErrnoException path (Daniel Bevenius) #13958
  • [0d3ef5b0f8] - (SEMVER-MAJOR) test: check this value for nextTick() (Rich Trott) #14645
  • [c6126b1308] - (SEMVER-MAJOR) test: refactor test-fs-stat (Rich Trott) #14645
  • [eaaec57332] - (SEMVER-MAJOR) test: use worker.exitedAfterDisconnect consistently (James M Snell) #13702
  • [839faae45a] - (SEMVER-MAJOR) timers: cleanup extraneous property on Immediates (Jeremiah Senkpiel) #16355
  • [ce3586da31] - (SEMVER-MAJOR) timers: warn on overflowed timeout duration (Jeremiah Senkpiel) #15627
  • [11f7dcf91e] - (SEMVER-MAJOR) timers: do not expose .unref()._handle._list (Jeremiah Senkpiel) #8422
  • [4d893e093a] - (SEMVER-MAJOR) timers: Migrate to use internal/errors (Weijia Wang) #14659
  • [468110b327] - (SEMVER-MAJOR) tls: deprecate parseCertString & move to internal (XadillaX) #14249
  • [0f7c06eb2d] - (SEMVER-MAJOR) tls: fix object prototype type confusion (Ben Noordhuis) #14447
  • [a7dccd040d] - (SEMVER-MAJOR) tls: type checking for key, cert and ca options (Jimmy Cann) #14807
  • [3ccfeb483d] - (SEMVER-MAJOR) tls: migrate tls.js to use internal/errors.js (Michael Dawson) #13994
  • [c88ba036b4] - (SEMVER-MAJOR) url: ensure search property is consistently null vs empty (Justin Beckwith) #13606
  • [b1c8f15c5f] - (SEMVER-MAJOR) util: use constructor name (Ruben Bridgewater) #14886
  • [3b0e800f18] - (SEMVER-MAJOR) util: make util.debuglog() consistent with doc (Vse Mozhet Byt) #13841
  • [58831b2f24] - (SEMVER-MAJOR) uv: improvements to process.binding('uv') (James M Snell) #14933
  • [ef238fb485] - (SEMVER-MAJOR) v8: migrate setFlagsFromString to internal/errors (James M Snell) #16535
  • [b3e5c4621d] - (SEMVER-MAJOR) v8: add new to the throw statement (Ruben Bridgewater) #13857
  • [88e55fe5e0] - (SEMVER-MAJOR) vm: deprecate vm.runInDebugContext (Josh Gavant) #12815
  • [896eaf6820] - (SEMVER-MAJOR) zlib: finish migrating to internal/errors (James M Snell) #16540
  • [74891412f1] - (SEMVER-MAJOR) zlib: migrate to internal/errors (James M Snell) #15618
  • Semver-Minor:
  • [3e25e4d00f] - (SEMVER-MINOR) http: support generic Duplex streams (Anna Henningsen) #16267
  • [af3aa682ac] - (SEMVER-MINOR) util: add callbackify (Refael Ackermann) #12712
  • [36732084db] - (SEMVER-MINOR) util,assert: expose util.isDeepStrictEqual() (Rich Trott) #16084
  • Semver-Patch:
  • [6e86a70da2] - assert: replace many if's with if-else statement (kuroljov) #14043
  • [f8063d51d7] - benchmark: fix punycode test for --without-intl (Timothy Gu) #16251
  • [095c0de94d] - benchmark,lib,test: use braces for multiline block (Rich Trott) #13828
  • [8172f4547e] - buffer: move setupBufferJS to internal (Bryan English) #16391
  • [355523fcfb] - buffer: refactor module.exports, imports (James M Snell) #13807
  • [e0340af455] - buffer: fix indentation nits (Rich Trott) #14224
  • [aa011a111d] - Revert "build: don't add libraries when --enable-static" (Ben Noordhuis) #14893
  • [be63c26e8c] - build: don't add libraries when --enable-static (Daniel Bevenius) #14837
  • [556ebab30e] - child_process: restore exec{File}Sync error props (Michaël Zasso) #16060
  • [9bc4f86201] - crypto: make createXYZ inlineable (Matteo Collina) #16067
  • [43e7e8d106] - crypto: remove useless if statement (Weijia Wang) #15041
  • [237067d54e] - deps: manually add 9.x support to npm (Myles Borins) #16509
  • [0ea8ff3deb] - deps: backport 4ca695819 from npm upstream (Myles Borins) #16509
  • [664512678d] - Revert "deps: update V8 to 6.2.414.33" (Michaël Zasso) #16513
  • [d4033c1547] - deps: update V8 to 6.2.414.33 (Michaël Zasso) #16412
  • [801e61ad5a] - deps: cherry-pick 37a3a15c3 from V8 upstream (Franziska Hinkelmann) #16294
  • [34d125f16c] - deps: c-ares float, win ipv6 bad fec0 prefix (Rod Vagg) #15378
  • [af171b7ba2] - deps: c-ares float, manual ares_ssize_t definition (Rod Vagg) #15378
  • [13c74706ef] - deps: upgrade to c-ares v1.13.0 (Rod Vagg) #15378
  • [d0d1eba872] - deps: update license-builder & LICENSE for c-ares (Rod Vagg) #15378
  • [a9f125449e] - deps: upgrade to c-ares v1.12.0 (Rod Vagg) #15378
  • [8dce05fa71] - deps: backport rehash strings after deserialization (Yang Guo) #14345
  • [785a9e5a57] - deps: cherry-pick 6cb999b97b from V8 upstream (Igor Sheludko) #14188
  • [31349e2245] - deps: cherry-pick 3f4536894ac from V8 upstream (ochang) #13985
  • [0ba74dbcc6] - deps: backport c0f1ff2 from upstream V8 (Michaël Zasso) #13517
  • [7cdcca7623] - deps: cherry-pick 866ee63 from upstream V8 (Michaël Zasso) #13630
  • [8f907b6baf] - deps: update V8 to 5.9.211.37 (Michaël Zasso) #13631
  • [554fa24916] - deps: cherry-pick f5fad6d from upstream v8 (daniel.bevenius) #12826
  • [36ba9e6e0c] - deps: cherry-pick bfae9db from upstream v8 (Ben Noordhuis) #12722
  • [863d1922df] - doc: add link for stream.pipe() (Jon Moss) #16593
  • [fb477f3fa5] - doc: add missing error codes (James M Snell) #16450
  • [1261b94a3f] - doc: fix unassigned deprecation code (James M Snell) #15741
  • [cd1b55a942] - doc: delete link to removed doc part (Vse Mozhet Byt) #15510
  • [a5916107dd] - doc: fix wrong history entry in deepStrictEqual (hisener) #15381
  • [8b2c61c169] - doc: fix api docs style (Daijiro Wachi) #13970
  • [102e1aa4e3] - doc: fix ordering error in errors.md (Rich Trott) #13274
  • [8a8a6865c0] - doc,net: assign deprecation code (Anna Henningsen) #14576
  • [55d49eb3cc] - errors: replace .split() with .replace() (Rich Trott) #15545
  • [cef6e1c55f] - errors: refactor invalidArgType() (Rich Trott) #15544
  • [324aa6488f] - errors: alphabetize error codes (Jon Moss) #15083
  • [fa73087fcf] - errors: keep error codes in alphabetical order (Weijia Wang) #14242
  • [873e2f270f] - errors: add missing ERR_ prefix on util.callbackify error (James M Snell) #13604
  • [5f469446e1] - errors,tools: ASCIIbetical instead of alphabetical (Refael Ackermann) #15578
  • [fe13e0077f] - events: onceWrapper apply directly with arguments (Anatoli Papirovski) #16212
  • [d5fb78982a] - events: use spread function param in emit (Anatoli Papirovski) #16212
  • [fd166a8759] - events: return values directly in listeners (Anatoli Papirovski) #16212
  • [c8d4ff1d52] - events: remove unnecessary console instantiation (Anatoli Papirovski) #16212
  • [f61cc15c6a] - events: stricter prop & variable checks for perf (Anatoli Papirovski) #16212
  • [5d99a9bf65] - http: emit close as the last event in the client (Robert Nagy) #15588
  • [f912080bf2] - Revert "http2: refactor error handling" (Rich Trott) #15047
  • [a6973a3811] - Revert "inspector: rewrite inspector test helper" (Anna Henningsen) #14777
  • [2296b677fb] - inspector: rewrite inspector test helper (Eugene Ostroukhov) #14460
  • [e6dfd59be0] - lib: pass internalBinding more implicitly (Anna Henningsen) #16218
  • [a577bde917] - lib: fix off-by-one indentation (Rich Trott) #14064
  • [c474f88987] - lib: fix typos (Ruben Bridgewater) #13741
  • [ae6c7044c8] - Revert "lib: lazy instantiation of fs.Stats dates" (Anna Henningsen) #13256
  • [45873d24e4] - module: revert #3384 DEP0019 EOL (Myles Borins) #16634
  • [44256bb0aa] - path: fix incorrect use of ERR_INVALID_ARG_TYPE (Tobias Nießen) #14011
  • [c5f54b1fad] - repl: remove internal frames from runtime errors (Lance Ball) #15351
  • [da40050b59] - repl: fix deprecation code (Ruben Bridgewater) #15668
  • [766506a2e9] - repl: deprecate REPLServer.parseREPLKeyword (Lance Ball)
  • [f0b871bada] - src: remove unused warning in node_contextify (Michaël Zasso) #16408
  • [f1d6b04ac9] - src: use new V8 API in vm module (Franziska Hinkelmann) #16293
  • [2146c88bc7] - src: fix NewContext for --without-intl (Timothy Gu) #16251
  • [a84c3be075] - src: unset NODE_VERSION_IS_RELEASE (Anna Henningsen) #14005
  • [1b54371c50] - stream: use more explicit statements (Ruben Bridgewater) #13863
  • [9702ac5088] - test: add test for WrapStream readStop (Ashish Kaila) #16356
  • [a37a0ad5f6] - test: add test for prop interceptors on sandbox (Michaël Zasso) #16409
  • [ed116dc3c6] - test: fix test for inherited properties on vm (Franziska Hinkelmann) #16411
  • [438e7fdaf2] - test: remove --harmony-sharedarraybuffer usage (Ben Smith) #16343
  • [cd5ee52d70] - test: add tests for eslint rules (Teddy Katz) #16138
  • [16ed116203] - test: clean up string concat in dlopen-ping-pong (agilbert) #15820
  • [2e215f169a] - test: fix and refactor test-http-invalid-urls (Rich Trott) #15678
  • [44d486500d] - test: increase coverage for internal/errors.js (Weijia Wang) #15044
  • [467385a49b] - test: use invalid host according to RFC2606 (Tobias Nießen) #14863
  • [f417add1f4] - test: add test-benchmark-zlib (Rich Trott) #14763
  • [3566195196] - test: replace concatenation with template literals (xeodou) #14281
  • [b923b9dee1] - test: replace string concat in test-child-process-constructor (mac-haojin) #14283
  • [2a621d4051] - test: validate more properties in expectsError (Ruben Bridgewater) #14058
  • [5ffb5b6fce] - test: improve the test common documentation (Ruben Bridgewater) #14148
  • [1b2733f272] - test: common.expectsError should be a must call (Ruben Bridgewater) #14088
  • [d69ecc6f51] - Revert "test: improve test-process-kill-null for Windows" (Refael Ackermann) #14142
  • [d6fece1436] - test: add optional throw fn to expectsError (Ruben Bridgewater) #14089
  • [44483b6898] - test: improve test-process-kill-null for Windows (starkwang) #14099
  • [5723b5dbbc] - tls: improve TLSSocket & Server performance (Anatoli Papirovski) #15575
  • [1403d28e7d] - tls: re-allow falsey option values (Anna Henningsen) #15131
  • [5723c4c5f0] - tls: replace forEach with for (Brian White) #15053
  • [193926ecab] - tls,doc: fix unallocated deprecation code (James M Snell) #15534
  • [76b8803630] - tools: add eslint rule for documented errors (James M Snell) #16450
  • [50fe1a8409] - tools, benchmark: test util benchmark (Sarah Meyer) #16050
  • [44f5523260] - v8: fix stack overflow in recursive method (Ben Noordhuis) #12460
  • [241eb6122e] - zlib: gracefully set windowBits from 8 to 9 (Myles Borins) #16511
  • [2421984727] - zlib: check cleanup return values (Anna Henningsen) #14673
  • [add4b0ab8c] - zlib: improve performance (Brian White) #13322

New in Node.js 8.8.1 (Oct 26, 2017)

  • Notable Changes:
  • Net: Fix timeout with null handle issue. This is a regression in Node 8.8.0 #16489
  • Commits:
  • [db8c92fb42] - doc: fix spelling in v8.8.0 changelog (Myles Borins) #16477
  • [c8396b8370] - doc: remove loader hooks from unsupported features (Teppei Sato) #16465
  • [2b0bb57055] - doc: fix wrong URL (Jon Moss) #16470
  • [9ffc32974e] - doc: fix typo in changelog for 8.8.0 (Alec Perkins) #16462
  • [7facaa5031] - doc: fix missing newline character (Daijiro Wachi) #16447
  • [16eb7d3a5f] - doc: fix doc styles (Daijiro Wachi) #16385
  • [99fdc1d04f] - doc: add recommendations for first timers (Refael Ackermann) #16350
  • [6fbef7f350] - doc: fix typo in zlib.md (Luigi Pinca) #16480
  • [655e017e40] - net: fix timeout with null handle (Anatoli Papirovski) #16489
  • [7fad10cc7e] - test: make test-v8-serdes work without stdin (Anna Henningsen)
  • [12dc06e3e1] - test: call toLowerCase on the resolved module (Daniel Bevenius) #16486
  • [10894c3835] - test: allow for different nsswitch.conf settings (Daniel Bevenius) #16378
  • [2a53165aa0] - test: add missing assertion (cjihrig) #15519

New in Node.js 8.8.0 (Oct 25, 2017)

  • crypto:
  • expose ECDH class #8188
  • http2:
  • http2 is now exposed by default without the need for a flag #15685
  • a new environment varible NODE_NO_HTTP2 has been added to allow userland http2 to be required #15685
  • support has been added for generic Duplex streams #16269
  • module:
  • resolve and instantiate loader pipeline hooks have been added to the ESM lifecycle #15445
  • zlib:
  • CVE-2017-14919 - In zlib v1.2.9, a change was made that causes an error to be raised when a raw deflate stream is initialized with windowBits set to 8. On some versions this crashes Node and you cannot recover from it, while on some versions it throws an exception. Node.js will now gracefully set windowBits to 9 replicating the legacy behavior to avoid a DOS vector. nodejs-private/node-private#95

New in Node.js 8.7.0 (Oct 12, 2017)

  • Notable Changes:
  • deps:
  • update npm to 5.4.2 #15600
  • upgrade libuv to 1.15.0 #15745
  • update V8 to 6.1.534.42 15393
  • dgram:
  • support for setting dgram socket buffer size #13623
  • fs:
  • add support O_DSYNC file open constant #15451
  • util:
  • deprecate obj.inspect for custom inspection #15631
  • tools, build:
  • there is a fancy new macOS installer #15179
  • Added new collaborators
  • bmeurer - Benedikt Meurer
  • kfarnung - Kyle Farnung
  • Commits:
  • [16bdbb9e76] - async_hooks: fix reference in code comment (Brian White) #15748
  • [1bc0c1fb5f] - async_hooks: consistent internal naming (Andreas Madsen) #15569
  • [9da8346c96] - async_wrap: allow user to pass execution_async_id (Trevor Norris) #14208
  • [09b3faef40] - async_wrap: add constructor for PromiseWrap (Trevor Norris) #14208
  • [67cef9b182] - build: allow build with system python 3 (Emily Marigold Klassen) #16058
  • [3d2481e6cb] - build: call setlocal in vcbuild.bat (Daniel Bevenius) #15754
  • [ed8c89a07d] - build: fix shared installing target (Yorkie Liu) #15148
  • [7dd0ca40e2] - build: run es-module tests in CI (Benjamin Coe) #15276
  • [81515c7b62] - build: add test-with-async-hooks (Trevor Norris) #14208
  • [1ed0c7706f] - crypto: better crypto error messages (Greg Alexander) #15518
  • [be4e809af2] - crypto: use X509V3_EXT_d2i (David Benjamin) #15348
  • [93d5ead37a] - crypto: use SSL_SESSION_get_id (David Benjamin) #15348
  • [9eeaab4ba5] - crypto: only try to set FIPS mode if different (Gibson Fahnestock) #12210
  • [77bdfc96ae] - deps: upgrade libuv to 1.15.0 (cjihrig) #15745
  • [c17ff62376] - deps: cherry-pick f4a2b7f3 from V8 upstream. (Erin Spiceland) #16053
  • [1c0ae10c26] - deps: V8: cherry-pick 163d360 from upstream (Ali Ijaz Sheikh) #15664
  • [3f2ea53043] - deps: update npm to 5.4.2 (Michaël Zasso)
  • [6a019183c6] - deps: cherry-pick 0353a1e from upstream V8 (Michaël Zasso) #15599
  • [97c0880052] - deps: update V8 to 6.1.534.42 (Michaël Zasso) #15521
  • [b4ad15be5f] - deps: cherry-pick 9b21865822243 from V8 upstream (Anna Henningsen) #15391
  • [e1828eb50d] - deps: cherry-pick b6158eb6befae from V8 upstream (Anna Henningsen) #15391
  • [aa1a3ea998] - (SEMVER-MINOR) deps: revert ABI breaking changes in V8 6.1 (Anna Henningsen) #15393
  • [847174759d] - deps: patch V8 to 6.1.534.38 (Myles Borins) #15431
  • [c0b5b09381] - (SEMVER-MINOR) deps: add postmortem metadata for V8 TurboFan (Michaël Zasso) #14730
  • [9934dfeb5e] - deps: cherry-pick 1aead19 from upstream V8 (Ben Noordhuis) #15184
  • [273822f756] - deps: cherry-pick e020aae394 from V8 upstream (Ben Noordhuis) #14913
  • [d85283b76b] - deps: backport f9c4b7a from upstream V8 (Matt Loring) #14001
  • [19a5021ee3] - deps: backport bca8409 from upstream V8 (Matt Loring) #14001
  • [2601a515f9] - deps: backport 6e9e2e5 from upstream V8 (Matt Loring) #14001
  • [ede9d2ed8e] - (SEMVER-MINOR) deps: cherry-pick f19b889 from upstream V8 (Michaël Zasso) #14730
  • [63ebad5a04] - (SEMVER-MINOR) deps: fix addons compilation with VS2013 (Bartosz Sosnowski) #13263
  • [21004dda00] - deps: limit regress/regress-crbug-514081 v8 test (Michael Dawson) #6678
  • [d67fb8188f] - (SEMVER-MINOR) deps: update V8 to 6.1.534.36 (Michaël Zasso) #15393
  • [827f843dfa] - dgram: refactor SO_RCVBUF and SO_SNDBUF methods (cjihrig) #15483
  • [e3658143e5] - (SEMVER-MINOR) dgram: support for setting socket buffer size (Damien O'Reilly) #13623
  • [bae46dc806] - doc: add kfarnung to collaborators (Kyle Farnung) #16108
  • [d1266a3c57] - doc: mention collaboration summit in onboarding.md (Joyee Cheung) #16079
  • [140c98b327] - doc: document the benchmark CI (Joyee Cheung) #16086
  • [66a2c710f2] - doc: fix macosx-firewall suggestion BUILDING (suraiyah) #15829
  • [44719ed74d] - doc: add clearer setup description (Emily Platzer) #15962
  • [9f6d535b87] - doc: update style guide for markdown extension (Rich Trott) #15786
  • [acd4924448] - doc: fix http2 API docs typos (Daniela Borges Matos de Carvalho) #15778
  • [74755415cc] - doc: fix: correctly use public key instead of private key (Pavel Pomerantsev) #16038
  • [0ae84c2434] - doc: fix incorrect vm.createContext usage (tshemsedinov) #16059
  • [344d6132ee] - doc: fix YAML syntax in fs.md (Luigi Pinca) #15769
  • [df1d988270] - doc: explain common.restore* functions (Rich Trott) #15720
  • [dcad2df78b] - doc: fix typo in tls.md (kohta ito) #15738
  • [979e38b13c] - doc: add 'git clean -xfd' to backport guide (Lance Ball) #15715
  • [978f78ef01] - doc: alphabetize TSC Emeriti in README.md (Rich Trott) #15722
  • [54a43a6d38] - doc: change encoding to decoding (Sakthipriyan Vairamani (thefourtheye)) #15706
  • [cf579eae25] - doc: fix dead link in doc/releases.md (Luigi Pinca) #15733
  • [fcea265421] - doc: fix v8.6 changelog entry (Ruben Bridgewater) #15716
  • [5630c8cd5d] - doc: add missing TOC entry in CONTRIBUTING.md (Vse Mozhet Byt) #15729
  • [db0ba97bec] - doc: update fs.utimes{,Sync} changelog (Luigi Pinca) #15680
  • [cc902832e2] - doc: edit COLLABORATORS_GUIDE.md for readability (Rich Trott) #15629
  • [f8e93e888e] - doc: fix links in some intra-repository docs (Vse Mozhet Byt) #15675
  • [9c247c56ab] - doc: standardize function param/object prop style (Gibson Fahnestock) #13769
  • [e5b5a03e00] - doc: do not begin yaml value with backtick (Jon Moss) #15447
  • [f8805c4465] - doc: fix link in the test/README.md (Rimas Misevičius) #15642
  • [1141e930a3] - doc: update libuv license (Timothy Gu) #15649
  • [db70874c8f] - doc: add bmeurer to collaborators (Benedikt Meurer) #15677
  • [ec56cbe572] - doc: improve fs.utimes (Refael Ackermann) #14154
  • [6565ddabd0] - doc: add callback function signatures in fs.md (Matej Krajčovič) #13424
  • [22b2d1a786] - doc: fix mistake in http2stream.respondWithFile. (Antoine AMARA) #15501
  • [d1d2ca5bef] - doc: retire bnoordhuis from the TSC (Ben Noordhuis) #15626
  • [e0a76347d4] - doc: update table of contents for common/README.md (Rich Trott) #15595
  • [6003afcc71] - doc,test: minor improvements to O_DSYNC (Tobias Nießen) #15547
  • [a814a551f3] - (SEMVER-MINOR) fs: add O_DSYNC (Jussi Räsänen) #15451
  • [9c1e48dca5] - http: client keep-alive for UNIX domain sockets (Bryan English) #13214
  • [10622c6331] - http2: near full http1 compatibility, add tests (Anatoli Papirovski) #15702
  • [86dfcc609c] - http2: making sending to the socket more efficient (James M Snell) #15693
  • [68cd233a7b] - http2: eliminate dead code (James M Snell) #15693
  • [078ee27f13] - http2: refactor method arguments to avoid bools (James M Snell) #15693
  • [86ee05d5ca] - http2: simplify TypeName (James M Snell) #15693
  • [df271f4f00] - http2: setting shuttingDown=true after validation (Trivikram Kamat) #15676
  • [a4a5bee933] - http2: adjust error emit in core, add tests (Anatoli Papirovski) #15586
  • [5f469a26f3] - n-api: add check for large strings (Michael Dawson) #15611
  • [de52eb8680] - perf_hooks: remove docs for unimplemented API (Sam Roberts) #15641
  • [e4c461ba7d] - src: replace manual memory mgmt with std::string (Ben Noordhuis) #15782
  • [6642f54184] - src: fix ^ in stack trace with vm's columnOffset (Timothy Gu) #15771
  • [824b8dfe9e] - src: remove unused node_dtrace.h from node_win32 (Daniel Bevenius) #15768
  • [0004214ea7] - src: trace_event macro line continuation cleanup (Daniel Bevenius) #15750
  • [15063844cb] - src: fix windows-only build breakage (Ben Noordhuis) #15724
  • [965efd7b47] - src: remove unused includes in src/tracing (Daniel Bevenius) #15682
  • [64d0c7422d] - src: use UV_EINVAL instead of EINVAL in udp_wrap (Daniel Bevenius) #15444
  • [6551bb3ace] - src: fix compiler warning in udp_wrap.cc (Daniel Bevenius) #15402
  • [7e1003aad3] - src: remove unused using in node_trace_writer.h (Daniel Bevenius) #15646
  • [25fd85df36] - src: add help for NODE_PENDING_DEPRECATION env (Thomas Corbière) #15609
  • [ca02576fb4] - src: fix typo in probe description (Evan Lucas) #15397
  • [69f8738a59] - src: remove unused variable in node_url.cc (cjihrig) #15592
  • [9fcf5d7f25] - src: remove unused computation (cjihrig) #15593
  • [44ea5254f3] - src: clear async id stack if bootstrap throws (Trevor Norris) #15553
  • [67205391b3] - src: move node_trace_writer/buffer.h to agent.cc (Daniel Bevenius) #15598
  • [fd1a8924fd] - src: constify PerformanceEntry data members (Ben Noordhuis) #15458
  • [e72761a27f] - src: return references from getters, not copies (Ben Noordhuis) #15458
  • [aded597c10] - src: handle uv_async_init() failure (Ben Noordhuis) #15458
  • [d202c05f7e] - src: remove unused static variable (Ben Noordhuis) #15458
  • [902feeaad8] - src: use InstantiateModule instead of deprecated (Daniel Bevenius) #15423
  • [e8da556eca] - src: keep track of env properly in node_perf.cc (Anna Henningsen) #15391
  • [2e8652e164] - (SEMVER-MINOR) src: fix SmartOS compilation (Michaël Zasso) #14730
  • [a43f681c20] - src,etw: fix event 9 on 64 bit Windows (João Reis) #15563
  • [ae91ffe53c] - stream: fix disparity between buffer and the count (jlvivero) #15661
  • [3d6390b32b] - stream: fix todo (Ruben Bridgewater) #15667
  • [6f42b680e3] - test: replace common.fixturesDir w/ fixtures.path (Druotic) #15819
  • [b1e6373dcc] - test: replaces fixturesDir with fixtures (Alireza Alidousti) #15838
  • [50cae5c44f] - test: remove assert message (Joe Henry)
  • [e48c8b3b6c] - test: replace fixtureDir with fixtures.path (matthewreed26) #15943
  • [572492a088] - test: clarify assert messages in crypto tests (cpandrews8) #16019
  • [d962ee35de] - test: use common.fixtures module for file path (Adil L) #16017
  • [8f367bb1a6] - test: fix race condition in addon test (Kinnan Kwok) #16037
  • [5d63c1033d] - test: create benchmark test for misc and module (Charles T Wall III) #16044
  • [e9f6a624db] - test: include expected result in error messages (Chowdhurian) #16039
  • [f8496553df] - test: use fixtures module (Maurice Hayward) #16034
  • [e4f0483fb9] - test: replace fixturesDir with fixtures module (tabulatedreams) #16036
  • [387b0b8b10] - test: replace concat with template literals (gitHubTracey) #15885
  • [6e25b081b6] - test: clarify assertion failure (ryshep111) #15889
  • [6a44442b5f] - test: use fixtures.readKey (Robin Lungwitz) #15892
  • [f7ab12685e] - test: replace fixturesDir with fixtures module (Ivan Etchart) #15893
  • [36a0d3f0b1] - test: cleanup test-buffer-sharedarraybuffer (Rafal Leszczynski) #15896
  • [bbbf58e951] - test: change fixturesDir to fixtures.path (Savio Lucena) #15902
  • [dba620b178] - test: changed fixtures require (creisle) #15899
  • [ccecaca056] - test: replaced fixturesDir with fixtures module (Alex McKenzie) #15908
  • [547c284335] - test: replace string concatenation with templates (Colin Leong) #15903
  • [a625d82c78] - test: updated error message (Emily Platzer) #15906
  • [3b682aa857] - test: assert.strictEqual using template literals (jmcgui05) #15944
  • [329d22fb32] - test: use common.fixtures in tls test (Ben Michel) #15965
  • [9f9bd38aa0] - test: replace error msg w/ template literal (Sushil Tailor) #15910
  • [181d4bf5b3] - test: add NODE_UNIQUE_ID value to err message (Daniele Lisi) #15914
  • [2d25a3b5f8] - test: replace string concatenation with template (Rob Paton) #15915
  • [802f99ba27] - test: change concatenation to template literal (nodexpertsdev) #15916
  • [c5c51ebae4] - test: improve asset msg in test (Gene Wu) #15918
  • [f201edc4be] - test: replace fixturesDir with fixtures module (penDerGraft) #15919
  • [906f2b14ca] - test: remove message from asserts (Justin Lee) #15920
  • [a14b447bbb] - test: improve an error message (Pavel Pomerantsev) #15921
  • [27e0532eab] - test: added string_decoder.js a parallel test (Uttam Pawar) #15923
  • [2ea339a346] - test: use fixtures module instead of common (Joe Grace) #15925
  • [5bfc4f5e5a] - test: replace fixtureDir with fixtures module (Charlie Duong) #15823
  • [7d8a808959] - test: replaced fixturesDir with fixtures module (Alex McKenzie) #15881
  • [d3272c487a] - test: use common.fixtures module (Christopher Choi) #15891
  • [e7c55bf77d] - test: replaced literals in errors with templates (Paul Milham) #15911
  • [205927fe6b] - test: display better error message for assertion (Russell Dempsey) #15883
  • [768060d5e7] - test: changed buffer-zero output (heeeunkimmm) #15926
  • [0286da0992] - test: replaced fixturesDir with fixtures module (Alex McKenzie) #15927
  • [84dd5783c6] - test: remove literal error messages (Faisal Yaqoob) #15928
  • [633772a90c] - test: refactor test to use the fixtures module (Daniel Kostro) #15934
  • [dd23140015] - test: replace fixturesDir with fixtures module (Greg Matthews) #15932
  • [5b29e5a1f3] - test: modify test messages to template literals (Alice Tsui) #15931
  • [7df8e0b0db] - test: replace common.fixturesDir with fixture (BradLarson) #15940
  • [26536e46ed] - test: changes to use template literal (joanne-jjb) #15937
  • [e12dc40c2f] - test: replace fixturesDir with fixtures (Mujtaba Al-Tameemi) #15949
  • [30631528e4] - test: remove common.fixturesDir (Luis Del Águila) #15950
  • [9059b09a34] - test: remove template literal (Emily Ford) #15953
  • [ba9aa46b6d] - test: removed string from assert message arg (dpaulino) #15954
  • [3fd4f62f35] - test: replace literal with template string (Brant Barger) #15957
  • [a224760639] - test: upgrade from fixturesDir to fixtures.path (jacjam) #15960
  • [b564fe2231] - test: use defaultHistoryPath instead of path.join (Chris Budy) #15969
  • [ece6cd1f9e] - test: replace fixturesDir with fixtures module (BinarySo1o) #15961
  • [d1bb608b45] - test: replaced fixturesDir with common.fixtures (jopann) #15971
  • [adceca44b2] - test: improve assert messages (Eric Pemberton) #15972
  • [ab046beeeb] - test: replacing assert message with template (Barry Tam) #15974
  • [75ab6c00a9] - test: use common.fixtures module in test-preload (Laura Cabrera) #15975
  • [530b62fc0d] - test: more informative test failure messages (Alec Ferguson) #15977
  • [4a9e3312fd] - test: alter assert.strictEqual to default message (Luke Greenleaf) #15978
  • [e9d31bc6e4] - test: replaced common.fixturesDir with readKey (Sean Cox) #15933
  • [054f8f6683] - test: replace fixturesDir in tls-env-bad-extra-ca (Annie Weng) #15813
  • [d410f74e23] - test: use common.fixtures in checkServerIdentity (Emily Marigold Klassen) #15951
  • [145d1db923] - test: replaced common.fixturesDir with readKey (rhalldearn) #15952
  • [9592a486e0] - test: use fixtures.path for cmd string building (John Miller) #15982
  • [4594315eae] - test: replace fixturesDir with fixtures.readKey (Thomas Schorn) #15948
  • [73231d95af] - test: replace common.fixturesDir with readKey (ashleyraymaceli) #15946
  • [73a41cf653] - test: replace common.fixturesDir with fixtures. (Sam Skjonsberg) #15802
  • [de198a9dc0] - test: update test to use fixtures module (gbugaisky) #15955
  • [7ca02b0f0c] - test: replace fixturesDir with common.fixtures (rachelnicole) #16051
  • [1d7e1c0f18] - test: remove messages in assert.strictEqual (Saeed H) #16014
  • [8ea96488bc] - test: update fixturesDir to fixtures.readKey (bitandbang) #16016
  • [b766d27197] - test: replace fixturesDir with common.fixtures (Paul Berry) #15973
  • [c47ebe20dd] - test: replace fixturesDir with common.fixtures (Pooya Paridel) #15837
  • [516fda6c64] - test: update 'fixturesDir' refs in a test file (James M. Greene) #15824
  • [e1a1d2e13d] - test: replace common.fixturesDir in test-exception (Chowdhurian) #15964
  • [47169216d8] - test: use fixtures.readKey in https-agent test (Greg Byram) #15913
  • [f39c7926cf] - test: http2 client destroy tests in one file (Trivikram Kamat) #15749
  • [21a8a820a3] - test: add common.fixtures to https-req-split (Bruce Fletcher) #15801
  • [bd49ada52a] - test: http2 stored settings returned when present (Trivikram Kamat) #15751
  • [1e79a06ac6] - test: fix flaky async-hooks/test-tlswrap (Rich Trott) #15744
  • [22ea3a8cd2] - test: remove common.PORT from test-tlswrap (Rich Trott) #15742
  • [3f1210992c] - test: refactor test-internal-errors (Rich Trott) #15721
  • [995948a1f9] - test: skip test if host is too slow (Rich Trott) #15688
  • [af304b21c7] - test: mark test-bindings and test-debug-end flaky (João Reis) #15747
  • [1582260067] - test: increase test coverage for os.js (kuroljov) #14098
  • [88f69d3ec3] - test: check that this != new.target in addon (Ben Noordhuis) #15681
  • [7842f63069] - test: Http2Stream destroy server before shutdown (Trivikram Kamat) #15597
  • [41539381fe] - test: http2Stream redundant shutdown and single cb (Trivikram Kamat) #15612
  • [803d5bbf50] - test: update es-module.status prefix (Jack Horton) #15690
  • [bd7b216936] - test: fix test-https-writable-true-after-close (Rich Trott) #15705
  • [0aea258f0e] - test: fix http-writable-true-after-close flakyness (Matteo Collina) #15520
  • [bbdd93f34f] - test: skip test when checking async_hooks (Trevor Norris) #14208
  • [98fc665940] - test: print resource stack on error (Trevor Norris) #14208
  • [ab7448e0d5] - tools: replace concatenation with string templates (Ethan Arrowood) #15858
  • [0e707f3f9e] - tools: replace concat with template literals (Minya Liang) #16046
  • [ca5f4f0ed3] - tools: use more template literals (Govee91) #15942
  • [94c6296d83] - tools: use template literals (Sarah Meyer) #15956
  • [eebb2d775a] - (SEMVER-MINOR) tools, build: refactor macOS installer (JP Wesselink) #15179
  • [f68f572d7f] - tty: require readline at top of file (Bryan English) #15647
  • [d181147b2c] - url: const-ify APIs, and pass URL by ref (Sam Roberts) #15615
  • [1cc4245bfb] - url: fix remaining calculation (Rimas Misevičius) #15637
  • [34b4180d7d] - url: change variable name to be more descriptive (Yang-Kichang) #15551
  • [58c68c2fcb] - util: use faster -0 check (Brian White) #15726
  • [d2e1545406] - (SEMVER-MINOR) util: deprecate obj.inspect for custom inspection (Rich Trott) #15631

New in Node.js 8.6.0 (Sep 27, 2017)

  • crypto:
  • Support for multiple ECDH curves. #15206
  • dgram:
  • Added setMulticastInterface() API. #7855
  • Custom lookup functions are now supported. #14560
  • n-api:
  • The command-line flag is no longer required to use N-API. #14902
  • tls:
  • Docs-only deprecation of parseCertString(). #14245
  • New Contributors:
  • Welcome Sebastiaan Deckers (@sebdeckers) as a new Collaborator! #15354

New in Node.js 8.5.0 (Sep 13, 2017)

  • build:
  • Snapshots are now re-enabled in V8 #14875
  • console:
  • Implement minimal console.group(). #14910
  • deps:
  • upgrade libuv to 1.14.1 #14866
  • update nghttp2 to v1.25.0 #14955
  • dns:
  • Add verbatim option to dns.lookup(). When true, results from the DNS resolver are passed on as-is, without the reshuffling that Node.js otherwise does that puts IPv4 addresses before IPv6 addresses. #14731
  • fs:
  • add fs.copyFile and fs.copyFileSync which allows for more efficient copying of files. #15034
  • inspector:
  • Enable async stack traces #13870
  • module:
  • Add support for ESM. This is currently behind the --experimental-modules flag and requires the .mjs extension. node --experimental-modules index.mjs #14369
  • napi:
  • implement promise #14365
  • os:
  • Add support for CIDR notation to the output of the networkInterfaces() method. #14307
  • perf_hooks:
  • An initial implementation of the Performance Timing API for Node.js. This is the same Performance Timing API implemented by modern browsers with a number of Node.js specific properties. The User Timing mark() and measure() APIs are implemented, as is a Node.js specific flavor of the Frame Timing for measuring event loop duration. #14680
  • tls:
  • multiple PFX in createSecureContext #14793
  • Added new collaborators:
  • BridgeAR – Ruben Bridgewater

New in Node.js 8.4.0 (Aug 22, 2017)

  • HTTP2:
  • Experimental support for the built-in http2 has been added via the --expose-http2 flag. #14239
  • Inspector:
  • require() is available in the inspector console now. #8837
  • Multiple contexts, as created by the vm module, are supported now. #14465
  • N-API:
  • New APIs for creating number values have been introduced. #14573
  • Stream:
  • For Duplex streams, the high water mark option can now be set independently for the readable and the writable side. #14636
  • Util:
  • util.format now supports the %o and %O specifiers for printing objects. #14558

New in Node.js 8.3.0 (Aug 10, 2017)

  • V8 6.0:
  • The V8 engine has been upgraded to version 6.0, which has a significantly changed performance profile. #14574
  • Other notable changes
  • DNS
  • Independent DNS resolver instances are supported now, with support for cancelling the corresponding requests. #14518
  • N-API
  • Multiple N-API functions for error handling have been changed to support assigning error codes. #13988
  • REPL
  • Autocompletion support for require() has been improved. #14409
  • Utilities
  • The WHATWG Encoding Standard (TextDecoder and TextEncoder) has been implemented as an experimental feature. #13644
  • Added new collaborators
  • XadillaX – Khaidi Chu
  • gabrielschulhof – Gabriel Schulhof
  • Commits
  • [e2356e72e7] - assert: improve deepEqual Set and Map worst case (Ruben Bridgewater) #14258
  • [9252b8c057] - assert: refactor to reduce unecessary code paths (Ruben Bridgewater) #13973
  • [89586f6684] - assert: fix incorrect use of ERR_INVALID_ARG_TYPE (Tobias Nießen) #14011
  • [26785a23bb] - assert: refactor the code (Ruben Bridgewater) #13862
  • [0cf1e22448] - benchmark: remove unused parameters (Matthew Alsup) #14526
  • [9b104b4ea8] - benchmark: add assert map and set benchmarks (Ruben Bridgewater) #14258
  • [2c364ab291] - buffer: remove a wrongly added attribute specifier (Jiajie Hu) #14466
  • [c0f0c38535] - build: enable C++ linting for src// (jeyanthinath) #14497
  • [87e108059b] - build: fix build without icu (Jimmy Thomson) #14533
  • [0ebb4dff17] - build: codesign tarball binary on macOS (Evan Lucas) #14179
  • [7f5bcbd2e9] - build,test: run v8 tests on windows (Kunal Pathak) #13992
  • [5ab4471d72] - build,tools: do not force codesign prefix (Evan Lucas) #14179
  • [7b96944254] - build,win: fix python detection script (Jason Ginchereau) #14546
  • [1f16c43e80] - child_process: fix handle passing w large payloads (Anna Henningsen) #14588
  • [9c1199e88f] - (SEMVER-MINOR) console: add console.count() and console.clear() (James M Snell) #12678
  • [255b9bfa8a] - console,test: make message test more accurate (Anna Henningsen) #14580
  • [51c1afafa6] - crypto: change segmentation faults to CHECKs (Tobias Nießen) #14548
  • [e2b306c831] - (SEMVER-MINOR) deps: backport rehash strings after deserialization (Yang Guo) #14004
  • [2dbf95d5ee] - (SEMVER-MINOR) deps: backport c0f1ff2 from upstream V8 (Michaël Zasso) #14004
  • [efd297a5c9] - (SEMVER-MINOR) deps: fix addons compilation with VS2013 (Bartosz Sosnowski) #14004
  • [160e2f03d2] - (SEMVER-MINOR) deps: limit regress/regress-crbug-514081 v8 test (Michael Dawson) #14004
  • [44ad55d493] - (SEMVER-MINOR) deps: update V8 to 6.0.286.52 (Myles Borins) #14574
  • [d9273ed5ed] - deps: cherry-pick 18ea996 from c-ares upstream (Anna Henningsen) #13883
  • [32b30d519e] - (SEMVER-MINOR) dns: name generated functions (Anna Henningsen) #14518
  • [0982810208] - (SEMVER-MINOR) dns: add channel.cancel() (Anna Henningsen) #14518
  • [69e41dc5da] - (SEMVER-MINOR) dns: enable usage of independent cares resolvers (Anna Henningsen) #14518
  • [ad901ed272] - doc: add gabrielschulhof to collaborators (Gabriel Schulhof) #14692
  • [dd586c6bd4] - doc: erase unneeded eslint-plugin-markdown comment (Vse Mozhet Byt) #14598
  • [8c80e91a2e] - doc: fix typo in writing-and-running-benchmarks.md (Yuta Hiroto) #14600
  • [91b7843aeb] - doc: add entry for subprocess.killed property (Rich Trott) #14578
  • [342f4cccb5] - doc: change child to subprocess (Rich Trott) #14578
  • [b6bd3cf00f] - doc: cross-link util.TextDecoder and intl.md (Vse Mozhet Byt) #14486
  • [fffd8f5335] - doc: document napi_finalize() signature (cjihrig) #14230
  • [92b0555965] - doc: various small revisions in url (Timothy Gu) #14478
  • [9dd9760951] - doc: update url.origin IDNA behavior (Timothy Gu) #14478
  • [4e2493a20d] - doc: fix minor typos in net.md (Daiki Arai) #14502
  • [e9088f92d8] - doc: fix verify in crypto.md (Ruslan Iusupov) #14469
  • [8a9de1b3c5] - doc: fix typo in using-internal-errors.md (Anton Paras) #14429
  • [ab9bc81b0e] - doc: add docs for module.paths (atever) #14435
  • [bdcd496c98] - doc: update experimental status to reflect use (James M Snell) #12723
  • [6c6da38518] - doc: fix some links (Vse Mozhet Byt) #14400
  • [83c8e5c517] - doc: describe labelling process for backports (Anna Henningsen) #12431
  • [592787ef4d] - doc: error message are still major (Refael Ackermann) #14375
  • [f1b09c0a44] - doc: fix typo in stream.md (Marc Hernández Cabot) #14364
  • [4be373bc4b] - doc: fixes default shell in child_process.md (Henry) #14203
  • [b12924d894] - doc: add XadillaX to collaborators (XadillaX) #14388
  • [dc0a26f254] - doc: replace dead link in v8 module (Devin Boyer) #14372
  • [d2121ab768] - doc: fix minor typo in cluster.md (Lance Ball) #14353
  • [eb023ef7df] - doc, lib, test: do not re-require needlessly (Vse Mozhet Byt) #14244
  • [cfed48e81c] - doc, url: add changelog metadata for url.format (Timothy Gu) #14543
  • [78f0c2aa75] - doc,assert: document stackStartFunction in fail (Ruben Bridgewater) #13862
  • [53ad91c3b1] - doc,stream: _transform happens one at a time (Matteo Collina) #14321
  • [f6a03439d8] - docs: add note about fs.rmdir() (Oleksandr Kushchak) #14323
  • [142ce5ce2c] - errors: order internal errors list alphabetically (Anna Henningsen) #14453
  • [50447e837b] - http: reset stream to unconsumed in unconsume() (Anna Henningsen) #14410
  • [751e87338f] - http: check for handle before running asyncReset() (Trevor Norris) #14419
  • [deea68cbb2] - inspector: fix console with inspector disabled (Timothy Gu) #14489
  • [71cb1cdf69] - inspector: implement V8Inspector timer (Eugene Ostroukhov) #14346
  • [4836f3b9b9] - inspector: send messages after the Node is done (Eugene Ostroukhov) #14463
  • [9e5a08884a] - lib: adjust indentation for impending lint change (Rich Trott) #14403
  • [a7b3e06e9b] - lib: modify destructuring for indentation (Rich Trott) #14417
  • [28f0693796] - lib: include cached modules in module.children (Ben Noordhuis) #14132
  • [19a0e06317] - linkedlist: correct grammar in comments (alexbostock) #14546
  • [60e0f2bb0d] - (SEMVER-MINOR) n-api: add support for DataView (Shivanth MP) #14382
  • [b849b3d223] - n-api: re-use napi_env between modules (Gabriel Schulhof) #14217
  • [6078dea35d] - n-api: directly create Local from Persistent (Kyle Farnung) #14211
  • [f2efdc880f] - (SEMVER-MINOR) n-api: add code parameter to error helpers (Michael Dawson) #13988
  • [fa134dd60c] - n-api: add fast paths for integer getters (Anna Henningsen) #14393
  • [58446912a6] - net: fix bytesWritten during writev (Brendan Ashworth) #14236
  • [b41ae9847e] - path: fix win32 volume-relative paths (Timothy Gu) #14440
  • [509039fcaf] - path: remove unnecessary string copies (Tobias Nießen) #14438
  • [e813cfaead] - querystring: avoid indexOf when parsing (Matteo Collina) #14703
  • [37e55bf559] - readline: remove max limit of crlfDelay (Azard) #13497
  • [e54f75b831] - readline: remove the caching variable (Lyall Sun) #14275
  • [1a5927fc27] - repl: do not consider ... as a REPL command (Shivanth MP) #14467
  • [5a8862bfa3] - (SEMVER-MINOR) repl: improve require() autocompletion (Alexey Orlenko) #14409
  • [34821f6400] - repl: don't terminate on null thrown (Benjamin Gruenbaum) #14306
  • [32ba8aea0b] - repl: fix old history error handling (Ruben Bridgewater) #13733
  • [264e4345f8] - src: reuse 'ondone' string in node_crypto.cc (Tobias Nießen) #14587
  • [6ae6469d4a] - src: use existing strings over creating new ones (Anna Henningsen) #14587
  • [eb068a0526] - src: remove unused Connection::ClearError() (Ben Noordhuis) #14514
  • [4b01d8cac3] - src: replace assert with CHECK_LE in node_api.cc (Ben Noordhuis) #14514
  • [3c6b5e5fac] - src: properly manage timer in cares ChannelWrap (Anna Henningsen) #14634
  • [8c5cd1439e] - src: avoid dereference without existence check (Timothy Gu) #14591
  • [8a3bc874fa] - src: fix process.abort() interaction with V8 (Anna Henningsen) #13985
  • [997204a213] - (SEMVER-MINOR) src: fix new V8 compiler warnings (Michaël Zasso) #14004
  • [fa3aa2e1f7] - src: return MaybeLocal in AsyncWrap::MakeCallback (Tobias Nießen) #14549
  • [d90a5e0069] - src: replace deprecated ForceSet() method (Franziska Hinkelmann) #14450
  • [eb7faf6734] - src: replace ASSERT with CHECK (Ben Noordhuis) #14474
  • [106a23bd27] - (SEMVER-MINOR) src,dns: refactor cares_wrap to avoid global state (Anna Henningsen) #14518
  • [3c46ef4717] - test: explain sloppy mode for test-global (Rich Trott) #14604
  • [28b9c7a477] - test: fix test-readline-position w/o ICU (Timothy Gu) #14489
  • [636ba8caef] - test: support odd value for kStringMaxLength (Michaël Zasso) #14476
  • [5094f2c299] - test: refactor test-domain-abort-on-uncaught (Rich Trott) #14541
  • [b1fef05446] - test: improvements to various http tests (James M Snell) #14315
  • [ce9e3cfe10] - test: refactor test/sequential/test-fs-watch.js (Rich Trott) #14534
  • [9f50db2450] - test: refactor test-vm-new-script-new-context (Rich Trott) #14536
  • [f40b9062fc] - test: add check on an addon that does not register (Ezequiel Garcia) #13954
  • [ddd97fe15c] - test: fix error when foo in path to git clone (Matt Woicik) #14506
  • [8fea17484d] - test: add DISABLED_ prefix to commented out test (Daniel Bevenius) #14317
  • [7b6a77403c] - test: remove disabled tests directory (Rich Trott) #14505
  • [15b9aa1359] - test: improve error logging for inspector test (Rich Trott) #14508
  • [451e643cf2] - test: remove --no-crankshaft (Myles Borins) #14531
  • [7c51240b1a] - test: adjust indentation for stricter linting (Rich Trott) #14431
  • [c704c02290] - test: increase coverage for path.parse (Tobias Nießen) #14438
  • [23cd934d71] - test: refactor test-httpparser.response.js (erdun) #14290
  • [91b6ba1973] - test: refactor test-benchmark-timers (Rich Trott) #14464
  • [c2853893cf] - test: refactor test-http-parser.js (Rich Trott) #14431
  • [4ff562f41e] - test: make flaky crypto test more deterministic (Ben Noordhuis) #14451
  • [100e862dfa] - test: rename crypto test (Ben Noordhuis) #14451
  • [f8c2302a66] - test: use common.mustCall() instead of exit handle (笑斌) #14262
  • [0ff19b0c4c] - test: changed error message validator (Pratik Jain) #14443
  • [14f6a5a367] - test: fix flaky test-force-repl (Rich Trott) #14439
  • [5057c7a953] - test: replace concatenation with template literal (rockcoder23) #14270
  • [6420a73f3e] - test: replace concatenation with template literal (Ching Hsu) #14284
  • [cd0fffd86a] - test: convert table in test doc to markdown table (vixony) #14291
  • [1c6135f431] - test: fix flaky http(s)-set-server-timeout tests (Rich Trott) #14380
  • [de3d73c88c] - test: replace CRLF by LF in a fixture (Vse Mozhet Byt) #14437
  • [aeb8d66eec] - test: fix test-async-wrap-getasyncid flakyness (Julien Gilli) #14329
  • [3c50c592a5] - test: replace concatenation with template literals (笑斌) #14293
  • [1813467d27] - test: upgrade tests to work with master’s common (Anna Henningsen) #14459
  • [d89bb1c6f3] - test: bump test/common to master (Anna Henningsen) #14459
  • [d7a1637897] - test: change isAix to isAIX (章礼平) #14263
  • [552d2be625] - test: improve test-util-inspect (Peter Marshall) #14003
  • [0418a70d7c] - test: add non-internet resolveAny tests (Anna Henningsen) #13883
  • [265f159881] - test: replace concatenation with template literals (Song, Bintao Garfield) #14295
  • [3414e42127] - test: replace concatenation with template literals (Zongmin Lei) #14298
  • [953736cdde] - test: move timing-dependent tests to sequential (Alexey Orlenko) #14377
  • [9b22acc29e] - test: fix flaky test-net-write-after-close (Rich Trott) #14361
  • [11ae8c33bd] - test: delete obsolete test-sendfd.js (decareano) #14334
  • [99104e1b58] - test: improve fs.exists coverage (jkzing) #14301
  • [e237720537] - test: replace string concatenation with template (ziyun) #14286
  • [3c92b787d7] - test: use path.join in async-hooks/test-tlswrap.js (Vincent Xue) #14319
  • [0197ba00a5] - test: add comments for whatwg-url tests (Gautam Arora) #14355
  • [956a473107] - test: move test-fs-largefile to pummel (Rich Trott) #14338
  • [c866c9078b] - test: use path.join for long path concatenation (zzz) #14280
  • [94c7331277] - test: replace string concatenation with path.join (jkzing) #14272
  • [def98c6959] - test: replace string concatenation with template (Nathan Jiang) #14342
  • [3bc7d2a5ea] - test: replace string concat in test-fs-watchfile.js (Helianthus21) #14287
  • [72febfd3b6] - test: replace concatenation with template literals (SkyAo) #14296
  • [b5d0a03a9e] - test: fix error handling test-http-full-response (Rich Trott) #14252
  • [e90af29604] - tls: fix empty issuer/subject/infoAccess parsing (Ben Noordhuis) #14473
  • [767644def5] - tools: simplify no-unescaped-regexp-dot rule (Rich Trott) #14561
  • [9f319d5dfb] - tools: replace assert-throw-arguments custom lint (Rich Trott) #14547
  • [fa8c5f4372] - tools: remove legacy indentation linting (Rich Trott) #14515
  • [d11840c180] - tools: enable stricter linting in lib directory (Rich Trott) #14403
  • [5e952182e7] - tools: update to ESLint 4.3.0 (Rich Trott) #14417
  • [ebb90900af] - tools: skip workaround for newer llvm (nanaya) #14077
  • [c0ea5d8ce5] - tools: always include llvm_version in config (nanaya) #14077
  • [32259421ca] - url: update sort() behavior with no params (Timothy Gu) #14185
  • [9a3fc10dd4] - (SEMVER-MINOR) util: implement WHATWG Encoding Standard API (James M Snell) #13644
  • [f593960d35] - util: refactor util module (James M Snell) #13803
  • [357873ddb0] - (SEMVER-MINOR) v8: fix stack overflow in recursive method (Ben Noordhuis) #14004
  • [a8132943c5] - zlib: fix crash when initializing failed (Anna Henningsen) #14666
  • [e529914e70] - zlib: fix interaction of flushing and needDrain (Anna Henningsen) #14527

New in Node.js 8.2.1 (Jul 21, 2017)

  • http: Writes no longer abort if the Socket is missing.
  • process, async_hooks: Avoid problems when triggerAsyncId is undefined.
  • zlib: Streams no longer attempt to process data when destroyed.

New in Node.js 8.2.0 (Jul 20, 2017)

  • Async Hooks:
  • Multiple improvements to Promise support in async_hooks have been made.
  • Build:
  • The compiler version requirement to build Node with GCC has been raised to GCC 4.9.4. [820b011ed6] #13466
  • Cluster:
  • Users now have more fine-grained control over the inspector port used by individual cluster workers. Previously, cluster workers were restricted to incrementing from the master's debug port. [dfc46e262a] #14140
  • DNS:
  • The server used for DNS queries can now use a custom port. [ebe7bb29aa] #13723
  • Support for dns.resolveAny() has been added. [6e30e2558e] #13137
  • npm:
  • The npm CLI has been updated to version 5.3.0. In particular, it now comes with the npx binary, which is also shipped with Node.

New in Node.js 8.1.4 (Jul 12, 2017)

  • Build:
  • Disable V8 snapshots - The hashseed embedded in the snapshot is currently the same for all runs of the binary. This opens node up to collision attacks which could result in a Denial of Service. We have temporarily disabled snapshots until a more robust solution is found (Ali Ijaz Sheikh)
  • Deps:
  • CVE-2017-1000381 - The c-ares function ares_parse_naptr_reply(), which is used for parsing NAPTR responses, could be triggered to read memory outside of the given input buffer if the passed in DNS response packet was crafted in a particular way. This patch checks that there is enough data for the required elements of an NAPTR record (2 int16, 3 bytes for string lengths) before processing a record. (David Drysdale)

New in Node.js 8.1.3 (Jun 29, 2017)

  • Stream: Two regressions with the stream module have been fixed:
  • The finish event will now always be emitted after the error event if one is emitted
  • In object mode, readable streams can now use undefined again.

New in Node.js 8.1.2 (Jun 18, 2017)

  • Release to fix broken process.release properties

New in Node.js 8.1.1 (Jun 18, 2017)

  • Child processes:
  • stdout and stderr are now available on the error output of a failed call to the util.promisify()ed version of child_process.exec. [d66d4fc94c] #13388
  • HTTP:
  • A regression that broke certain scenarios in which HTTP is used together with the cluster module has been fixed. [fff8a56d6f] #13578
  • HTTPS:
  • The rejectUnauthorized option now works properly for unix sockets. [c4cbd99d37] #13505
  • Readline:
  • A change that broke npm init and other code which uses readline multiple times on the same input stream is reverted. [0df6c0b5f0] #13560

New in Node.js 8.1.0 (Jun 8, 2017)

  • Async Hooks:
  • When one Promise leads to the creation of a new Promise, the parent Promise will be identified as the trigger [135f4e6643] #13367.
  • Dependencies:
  • libuv has been updated to 1.12.0 [968596ec77] #13306.
  • npm has been updated to 5.0.3 [ffa7debd7a] #13487.
  • File system:
  • The fs.exists() function now works correctly with util.promisify() [6e0eccd7a1] #13316.
  • fs.Stats times are now also available as numbers [c756efb25a] #13173.
  • Inspector:
  • It is now possible to bind to a random port using --inspect=0 [cc6ec2fb27] #5025.
  • Zlib:
  • A regression in the Zlib module that made it impossible to properly subclasses zlib.Deflate and other Zlib classes has been fixed. [6aeb555cc4] #13374.

New in Node.js 8.0.0 (May 31, 2017)

  • Async Hooks:
  • The async_hooks module has landed in core [4a7233c178] #12892.
  • Buffer:
  • Using the --pending-deprecation flag will cause Node.js to emit a deprecation warning when using new Buffer(num) or Buffer(num). [d2d32ea5a2] #11968.
  • new Buffer(num) and Buffer(num) will zero-fill new Buffer instances [7eb1b4658e] #12141.
  • Many Buffer methods now accept Uint8Array as input [beca3244e2] #10236.
  • Child Process:
  • Argument and kill signal validations have been improved [97a77288ce] #12348, [d75fdd96aa] #10423.
  • Child Process methods accept Uint8Array as input [627ecee9ed] #10653.
  • Console:
  • Error events emitted when using console methods are now supressed. [f18e08d820] #9744.
  • Dependencies:
  • The npm client has been updated to 5.0.0 [3c3b36af0f] #12936.
  • V8 has been updated to 5.8 with forward ABI stability to 6.0 [60d1aac8d2] #12784.
  • Domains:
  • Native Promise instances are now Domain aware [84dabe8373] #12489.
  • Errors:
  • We have started assigning static error codes to errors generated by Node.js. This has been done through multiple commits and is still a work in progress.
  • File System:
  • The utility class fs.SyncWriteStream has been deprecated [7a55e34ef4] #10467.
  • The deprecated fs.read() string interface has been removed [3c2a9361ff] #9683.
  • HTTP:
  • Improved support for userland implemented Agents [90403dd1d0] #11567.
  • Outgoing Cookie headers are concatenated into a single string [d3480776c7] #11259.
  • The httpResponse.writeHeader() method has been deprecated [fb71ba4921] #11355.
  • New methods for accessing HTTP headers have been added to OutgoingMessage [3e6f1032a4] #10805.
  • Lib:
  • All deprecation messages have been assigned static identifiers [5de3cf099c] #10116.
  • The legacy linkedlist module has been removed [84a23391f6] #12113.
  • N-API:
  • Experimental support for the new N-API API has been added [56e881d0b0] #11975.
  • Process:
  • Process warning output can be redirected to a file using the --redirect-warnings command-line argument [03e89b3ff2] #10116.
  • Process warnings may now include additional detail [dd20e68b0f] #12725.
  • REPL:
  • REPL magic mode has been deprecated [3f27f02da0] #11599.
  • Src:
  • NODE_MODULE_VERSION has been updated to 57 (https://github.com/nodejs/node/commit/ec7cbaf266)] #12995.
  • Add --pending-deprecation command-line argument and NODE_PENDING_DEPRECATION environment variable [a16b570f8c] #11968.
  • The --debug command-line argument has been deprecated. Note that using --debug will enable the new Inspector-based debug protocol as the legacy Debugger protocol previously used by Node.js has been removed. [010f864426] #12949.
  • Throw when the -c and -e command-line arguments are used at the same time [a5f91ab230] #11689.
  • Throw when the --use-bundled-ca and --use-openssl-ca command-line arguments are used at the same time. [8a7db9d4b5] #12087.
  • Stream:
  • Stream now supports destroy() and _destroy() APIs [b6e1d22fa6] #12925.
  • Stream now supports the _final() API [07c7f198db] #12828.
  • TLS:
  • The rejectUnauthorized option now defaults to true [348cc80a3c] #5923.
  • The tls.createSecurePair() API now emits a runtime deprecation [a2ae08999b] #11349.
  • A runtime deprecation will now be emitted when dhparam is less than 2048 bits [d523eb9c40] #11447.
  • URL:
  • The WHATWG URL implementation is now a fully-supported Node.js API [d080ead0f9] #12710.
  • Util:
  • Symbol keys are now displayed by default when using util.inspect() [5bfd13b81e] #9726.
  • toJSON errors will be thrown when formatting %j [455e6f1dd8] #11708.
  • Convert inspect.styles and inspect.colors to prototype-less objects [aab0d202f8] #11624.
  • The new util.promisify() API has been added [99da8e8e02] #12442.
  • Zlib:
  • Support Uint8Array in Zlib convenience methods [91383e47fd] #12001.
  • Zlib errors now use RangeError and TypeError consistently [b514bd231e] #11391.

New in Node.js 7.10.0 (May 3, 2017)

  • Crypto: add randomFill and randomFillSync (Evan Lucas) #10209
  • Process: fix crash when Promise rejection is a Symbol (Cameron Little) #11640
  • Url: make WHATWG URL more spec compliant (Timothy Gu) #12507
  • Meta: Added new collaborators:
  • Add lucamaraschi to collaborators (Luca Maraschi) #12538
  • Add DavidCai1993 to collaborators (David Cai) #12435
  • Add jkrems to collaborators (Jan Krems) #12427
  • Add AnnaMag to collaborators (AnnaMag) #12414
  • V8:
  • Fix stack overflow in recursive method (Ben Noordhuis) #12460
  • Fix build errors with g++ 7 (Ben Noordhuis) #12392

New in Node.js 7.9.0 (Apr 12, 2017)

  • Util: console is now closer to what is supported in all major browsers (Roman Reiss) #10308

New in Node.js 7.8.0 (Apr 7, 2017)

  • buffer:
  • do not segfault on out-of-range index (Timothy Gu) #11927
  • crypto:
  • Fix memory leak if certificate is revoked (Tom Atkinson) #12089
  • deps:
  • upgrade npm to 4.2.0 (Kat Marchán) #11389
  • fix async await desugaring in V8 (Michaël Zasso) #12004
  • readline:
  • add option to stop duplicates in history (Danny Nemer) #2982

New in Node.js 7.2.1 (Dec 9, 2016)

  • buffer:
  • Reverted the runtime deprecation of calling Buffer() without new. (Anna Henningsen)
  • Fixed buffer.transcode() for single-byte character encodings to UCS2. (Anna Henningsen)
  • promise:
  • trace-warnings now produces useful stacktraces for Promise warnings. (Anna Henningsen)
  • repl:
  • Fixed a bug preventing correct parsing of generator functions. (Teddy Katz)
  • V8: Fixed a significant instanceof performance regression. (Franziska Hinkelmann)

New in Node.js 6.5.0 (Sep 13, 2016)

  • buffer: Fix regression introduced in v6.4.0 that prevented .write() at buffer end (Anna Henningsen) #8154
  • deps: update V8 to 5.1.281.75 (Ali Ijaz Sheikh) #8054
  • inspector:
  • fix inspector hang while disconnecting (Aleksei Koziatinskii) #8021
  • add support for uncaught exception (Aleksei Koziatinskii) #8043
  • repl: Fix saving editor mode text in .save (Prince J Wesley) #8145
  • Revert "repl,util: insert carriage returns in output" (Evan Lucas) #8143

New in Node.js 6.4.0 (Sep 13, 2016)

  • build: zlib symbols and additional OpenSSL symbols are now exposed on Windows platforms. (Alex Hultman) #7983 and #7576
  • child_process, cluster: Forked child processes and cluster workers now support stdio configuration. (Colin Ihrig) #7811 and #7838
  • child_process: argv[0] can now be set to arbitrary values in spawned processes. (Pat Pannuto) #7696
  • fs: fs.ReadStream now exposes the number of bytes it has read so far. (Linus Unnebäck) #7942
  • repl: The REPL now supports editor mode. (Prince J Wesley) #7275
  • util: inspect() can now be configured globally using util.inspect.defaultOptions. (Roman Reiss) #8013

New in Node.js 6.3.1 (Sep 13, 2016)

  • buffer:
  • Improve performance of Buffer.from(str, 'hex') and Buffer#write(str, 'hex'). (Christopher Jeffrey) #7602
  • Fix creating from zero-length ArrayBuffer. (Ingvar Stepanyan) #7176
  • deps:
  • Upgrade to V8 5.0.71.57. (Ben Noordhuis) #7531
  • Backport V8 instanceof bugfix (Franziska Hinkelmann) #7638
  • repl: Fix issue with function redeclaration. (Prince J Wesley) #7794
  • util: Fix inspecting of boxed symbols. (Anna Henningsen) #7641

New in Node.js 6.3.0 (Sep 13, 2016)

  • buffer: Added buffer.swap64() to complement swap16() & swap32(). (Zach Bjornson) #7157
  • build: New configure options have been added for building Node.js as a shared library. (Stefan Budeanu) #6994
  • The options are: --shared, --without-v8-platform & --without-bundled-v8.
  • crypto: Root certificates have been updated. (Ben Noordhuis) #7363
  • debugger: The server address is now configurable via --debug=:. (Ben Noordhuis) #3316
  • npm: Upgraded npm to v3.10.3 (Kat Marchán) #7515 & (Rebecca Turner) #7410
  • readline: Added the prompt option to the readline constructor. (Evan Lucas) #7125
  • repl / vm: sigint/ctrl+c will now break out of infinite loops without stopping the Node.js instance. (Anna Henningsen) #6635
  • src:
  • Added a node::FreeEnvironment public C++ API. (Cheng Zhao) #3098
  • Refactored require('constants'), constants are now available directly from their respective modules. (James M Snell) #6534
  • stream: Improved readable.read() performance by up to 70%. (Brian White) #7077
  • timers: setImmediate() is now up to 150% faster in some situations. (Andras) #6436
  • util: Added a breakLength option to util.inspect() to control how objects are formatted across lines. (cjihrig) #7499
  • v8-inspector: Experimental support has been added for debugging Node.js over the inspector protocol. (Ali Ijaz Sheikh) #6792
  • Note: This feature is experimental, and it could be altered or removed.
  • You can try this feature by running Node.js with the --inspect flag.

New in Node.js 6.2.2 (Sep 13, 2016)

  • http:
  • req.read(0) could cause incoming connections to stall and time out under certain conditions. (Fedor Indutny) #7211
  • When freeing the socket to be reused in keep-alive Agent wait for both prefinish and end events. Otherwise the next request may be written before the previous one has finished sending the body, leading to a parser errors. (Fedor Indutny) #7149
  • npm: upgrade npm to 3.9.5 (Kat Marchán) #7139

New in Node.js 6.2.1 (Sep 13, 2016)

  • buffer: Ignore negative lengths in calls to Buffer() and Buffer.allocUnsafe(). This fixes a possible security concern (reported by Feross Aboukhadijeh) where user input is passed unchecked to the Buffer constructor or allocUnsafe() as it can expose parts of the memory slab used by other Buffers in the application. Note that negative lengths are not supported by the Buffer API and user input to the constructor should always be sanitised and type-checked. (Anna Henningsen) #7051
  • npm: Upgrade npm to 3.9.3 (Kat Marchán) #7030
  • npm/npm@42d71be npm/npm#12685 When using npm ls without a semver specifier, npm ls would skip any packages in your tree that matched by name, but had a prerelease version in their package.json. (@zkat)
  • npm/npm@f04e05 npm/npm#10013 [email protected]: Fixes an issue where npm install would fail if your node_modules was symlinked. (@iarna)
  • b894413 #12372 Changing a nested dependency in an npm-shrinkwrap.json and then running npm install would not get up the updated package. This corrects that. (@misterbyrne)
  • This release includes [email protected], which is the result of our Windows testing push -- the test suite (should) pass on Windows now. We're working on getting AppVeyor to a place where we can just rely on it like Travis.
  • tty: Default to blocking mode for stdio on OS X. A bug fix in libuv 1.9.0, introduced in Node.js v6.0.0, exposed problems with Node's use of non-blocking stdio, particularly on OS X which has a small output buffer. This change should fix CLI applications that have been having problems with output since Node.js v6.0.0 on OS X. The core team is continuing to address stdio concerns that exist across supported platforms and progress can be tracked at https://github.com/nodejs/node/issues/6980. (Jeremiah Senkpiel) #6895
  • V8: Upgrade to V8 5.0.71.52. This includes a fix that addresses problems experienced by users of node-inspector since Node.js v6.0.0, see https://github.com/node-inspector/node-inspector/issues/864 for details. (Michaël Zasso) #6928

New in Node.js 6.2.0 (Sep 13, 2016)

  • buffer: fix lastIndexOf and indexOf in various edge cases (Anna Henningsen) #6511
  • child_process: use /system/bin/sh on android (Ben Noordhuis) #6745
  • deps:
  • upgrade npm to 3.8.9 (Rebecca Turner) #6664
  • upgrade to V8 5.0.71.47 (Ali Ijaz Sheikh) #6572
  • upgrade libuv to 1.9.1 (Saúl Ibarra Corretgé) #6796
  • Intl: ICU 57 bump (Steven R. Loomis) #6088
  • repl:
  • copying tabs shouldn't trigger completion (Eugene Obrezkov) #5958
  • exports Recoverable (Blake Embrey) #3488
  • src: add O_NOATIME constant (Rich Trott) #6492
  • src,module: add --preserve-symlinks command line flag (James M Snell) #6537
  • util: adhere to noDeprecation set at runtime (Anna Henningsen) #6683

New in Node.js 6.1.0 (Sep 13, 2016)

  • CHANGES:
  • assert: deep{Strict}Equal() now works correctly with circular references. (Rich Trott)
  • debugger: Arrays are now formatted correctly in the debugger repl. (cjihrig)
  • deps: Upgrade OpenSSL sources to 1.0.2h (Shigeki Ohtsu)
  • Please see our blog post for more info on the security contents of this release.
  • net: Introduced a Socket#connecting property. (Fedor Indutny)
  • Previously this information was only available as the undocumented, internal _connecting property.
  • process: Introduced process.cpuUsage(). (Patrick Mueller)
  • stream: Writable#setDefaultEncoding() now returns this. (Alexander Makarenko)
  • util: Two new additions to util.inspect():
  • Added a maxArrayLength option to truncate the formatting of Arrays. (James M Snell)
  • This is set to 100 by default.
  • Added a showProxy option for formatting proxy intercepting handlers. (James M Snell)
  • Inspecting proxies is non-trivial and as such this is off by default.
  • Commits:
  • [76c9ab5fcf] - assert: allow circular references (Rich Trott) #6432
  • [7b9ae70757] - benchmark: Fix crash in net benchmarks (Matt Loring) #6407
  • [0d1985358a] - build: use shorthand lint target from test (Johan Bergström) #6406
  • [7153f96f0e] - build: unbreak -prof, disable PIE on OS X (Ben Noordhuis) #6453
  • [8956432e18] - build: exclude tap files from tarballs (Brian White) #6348
  • [11e7cc5310] - build: don't compile with -B (Ben Noordhuis) #6393
  • [1330496bbf] - cluster: remove use of bind() in destroy() (yorkie) #6502
  • [fdde36909c] - crypto: fix error in deprecation message (Rich Trott) #6344
  • [2d503b1d4b] - debugger: display array contents in repl (cjihrig) #6448
  • [54f8600613] - deps: update openssl asm and asm_obsolete files (Shigeki Ohtsu) #6550
  • [a5a2944877] - deps: add -no_rand_screen to openssl s_client (Shigeki Ohtsu) nodejs/io.js#1836
  • [3fe68129c8] - deps: fix asm build error of openssl in x86_win32 (Shigeki Ohtsu) iojs/io.js#1389
  • [d159462fed] - deps: fix openssl assembly error on ia32 win32 (Fedor Indutny) iojs/io.js#1389
  • [3af28d3693] - deps: copy all openssl header files to include dir (Shigeki Ohtsu) #6550
  • [e6ab3ece65] - deps: upgrade openssl sources to 1.0.2h (Shigeki Ohtsu) #6550
  • [65b6574d59] - deps: backport IsValid changes from 4e8736d in V8 (Michaël Zasso) #6544
  • [33f24c821b] - doc: adds 'close' events to fs.ReadStream and fs.WriteStream (Jenna Vuong) #6499
  • [4f728df1bf] - doc: linkify remaining references to fs.Stats object (Kevin Donahue) #6485
  • [9a29b50c52] - doc: fix the lint of an example in cluster.md (yorkie) #6516
  • [d674493fa5] - doc: add missing underscore for markdown italics (Kevin Donahue) #6529
  • [7c30f15e1b] - doc: ensure consistent grammar in node.1 file (justshiv) #6426
  • [e5ce53a217] - doc: fix sentence fragment in fs doc (Rich Trott) #6488
  • [3e028a143c] - doc: remove obsolete comment in isError() example (cjihrig) #6486
  • [969f96a019] - doc: fix a typo in __dirname section (William Luo) #6473
  • [ab7055b003] - doc: fix fs.realpath man pg links (phette23) #6451
  • [13e660888f] - doc: extra clarification of historySize option (vsemozhetbyt) #6397
  • [3d5b732660] - doc: clarifies http.serverResponse implementation (Allen Hernandez) #6072
  • [7034ebe2bc] - doc: use Node.js in synopsis document (Rich Trott) #6476
  • [4ae39f9863] - doc: remove all scrollbar styling (Claudio Rodriguez) #6479
  • [e6c8da45b1] - (SEMVER-MINOR) doc: make writable.setDefaultEncoding() return this (Alexander Makarenko) #5040
  • [4068d64f4f] - doc: fix EventEmitter#eventNames() example (Сковорода Никита Андреевич) #6417
  • [bfcde97251] - doc: fix incorrect syntax in examples (Evan Lucas) #6463
  • [8eb87ee239] - doc: Remove extra space in REPL example (Juan) #6447
  • [fd37d54eb5] - doc: added note warning about change to console.endTime() (Ben Page) #6454
  • [b3f75ec801] - doc: expand documentation for process.exit() (James M Snell) #6410
  • [fc0fbf1c63] - doc: subdivide TOC, add auxiliary links (Jeremiah Senkpiel) #6167
  • [150dd36503] - doc: no Node.js(1) (Jeremiah Senkpiel) #6167
  • [ab84d69048] - doc: better example & synopsis (Jeremiah Senkpiel) #6167
  • [f6d72791a1] - doc: update build instructions for OS X (Rich Trott) #6309
  • [36207c6daf] - doc: correctly document the behavior of ee.once(). (Lance Ball) #6371
  • [19fb1345ba] - doc: use Buffer.from() instead of new Buffer() (Jackson Tian) #6367
  • [fb6753c75c] - doc: fix v6 changelog (James M Snell) #6435
  • [2c92a1fe03] - events: pass the original listener added by once (DavidCai) #6394
  • [9ea6b282e8] - meta: split CHANGELOG into two files (Myles Borins) #6337
  • [cbbe95e1e1] - (SEMVER-MINOR) net: introduce Socket#connecting property (Fedor Indutny) #6404
  • [534f03c2f0] - openssl: fix keypress requirement in apps on win32 (Shigeki Ohtsu) iojs/io.js#1389
  • [1b9fdba04e] - (SEMVER-MINOR) process: add process.cpuUsage() - implementation, doc, tests (Patrick Mueller) #6157
  • [fa9d82d120] - src: unify implementations of Utf8Value etc. (Anna Henningsen) #6357
  • [65030c77b7] - test: fix alpn tests for openssl1.0.2h (Shigeki Ohtsu) #6550
  • [7641f9a6de] - test: refactor large event emitter tests (cjihrig) #6446
  • [5fe5fa2897] - test: make addon testing part of make test (Ben Noordhuis) #6232
  • [457d12a0a1] - test: add failing url parse tests as known_issue (James M Snell) #5885
  • [089362f8b8] - test,tools: limit lint tolerance of gc global (Rich Trott) #6324
  • [6d1606ee94] - test,tools: adjust function argument alignment (Rich Trott) #6390
  • [08e0884ae0] - tools: add -F flag for fixing lint issues (Rich Trott) #6483
  • [9f23cb24f2] - tools: fix exit code when linting from CI (Brian White) #6412
  • [e62c42b8f4] - tools: remove default parameters from lint rule (Rich Trott) #6411
  • [66903f6695] - tools: add tests for the doctool (Ian Kronquist) #6031
  • [3f608b16a7] - tools: lint for function argument alignment (Rich Trott) #6390
  • [91ab769940] - (SEMVER-MINOR) util: truncate inspect array and typed array (James M Snell) #6334
  • [0bca959617] - (SEMVER-MINOR) util: fix inspecting of proxy objects (James M Snell) #6465

New in Node.js 6.0.0 (Sep 13, 2016)

  • Buffer:
  • New Buffer constructors have been added #4682 and #5833.
  • Existing Buffer() and SlowBuffer() constructors have been deprecated in docs #4682 and #5833.
  • Previously deprecated Buffer APIs are removed #5048, #4594.
  • Improved error handling #4514.
  • The Buffer.prototype.lastIndexOf() method has been added #4846.
  • Cluster:
  • Worker emitted as first argument in 'message' event #5361.
  • The worker.exitedAfterDisconnect property replaces worker.suicide #3743.
  • Console:
  • Calling console.timeEnd() with an unknown label now emits a process warning rather than throwing #5901.
  • Crypto:
  • Improved error handling #3100, #5611.
  • Simplified Certificate class bindings #5382.
  • Improved control over FIPS mode #5181.
  • pbkdf2 digest overloading is deprecated #4047.
  • Dependencies:
  • Reintroduce shared c-ares build support #5775.
  • V8 updated to 5.0.71.35 #6372.
  • DNS:
  • Add dns.resolvePtr() API to query plain DNS PTR records #4921.
  • Domains:
  • Clear stack when no error handler #4659.
  • Events:
  • The EventEmitter.prototype._events object no longer inherits from Object.prototype #6092.
  • The EventEmitter.prototype.prependListener() and EventEmitter.prototype.prependOnceListener() methods have been added #6032.
  • File System:
  • The fs.realpath() and fs.realpathSync() methods have been updated to use a more efficient libuv-based implementation. This change includes the removal of the cache argument and the method can throw new errors #3594.
  • FS apis can now accept and return paths as Buffers #5616.
  • Error handling and type checking improvements #5616, #5590, #4518, #3917.
  • fs.read's string interface is deprecated #4525.
  • HTTP:
  • 'clientError' can now be used to return custom errors from an HTTP server #4557.
  • Modules:
  • Current directory is now prioritized for local lookups #5689.
  • Symbolic links are preserved when requiring modules #5950.
  • Net:
  • DNS hints no longer implicitly set #6021.
  • Improved error handling and type checking #5981, #5733, #2904.
  • npm
  • Running npm requires the node binary to be in the path #6098.
  • Path:
  • Improved type checking #5348.
  • Process:
  • Introduce process warnings API #4782.
  • Throw exception when non-function passed to nextTick #3860.
  • Querystring:
  • The object returned by querystring.parse() no longer inherits from Object.prototype #6055.
  • Readline:
  • Key info is emitted unconditionally #6024.
  • History can now be explicitly disabled #6352.
  • REPL:
  • Assignment to _ will emit a warning #5535.
  • Expressions will no longer be completed when eval fails #6328.
  • Timers:
  • Fail early when callback is not a function #4362.
  • Streams:
  • null is now an invalid chunk to write in object mode #6170.
  • TLS:
  • Rename 'clientError' to 'tlsClientError' #4557.
  • SHA1 used for sessionIdContext #3866.
  • TTY:
  • Previously deprecated setRawMode wrapper is removed #2528.
  • URL:
  • Username and password will be dropped by url.resolve() if the host changes #1480.
  • Util:
  • Changes to Error object formatting #4582.
  • The util._extend() method has been deprecated #4903
  • The util.log() method has been deprecated #6161.
  • Windows:
  • Windows XP and Vista are no longer supported #5167.
  • Zlib
  • Multiple improvements have been made to Zlib processing #5883 and #5707.

New in Node.js 5.5.0 (Jan 22, 2016)

  • Notable changes:
  • events: make sure console functions exist #4479
  • fs: add autoClose option to fs.createWriteStream #3679
  • http: improves expect header handling #4501
  • node: allow preload modules with -i #4696
  • v8,src: expose statistics about heap spaces (v8.getHeapSpaceStatistics()) #4463
  • Minor performance improvements:
  • lib: Use arrow functions instead of bind where possible #3622.
  • Mistakenly missing from v5.4.0)
  • module: cache stat() results more aggressively #4575
  • querystring: improve parse() performance #4675

New in Node.js 5.4.1 (Jan 22, 2016)

  • Notable changes:
  • Minor performance improvements:
  • module: move unnecessary work for early return (Andres Suarez) #3579
  • Various bug fixes
  • Various doc fixes
  • Various test improvements

New in Node.js 5.4.0 (Jan 22, 2016)

  • Notable changes:
  • http:
  • A new status code was added: 451 - "Unavailable For Legal Reasons" #4377.
  • Idle sockets that have been kept alive now handle errors #4482.
  • This release also includes several minor performance improvements:
  • assert: deepEqual is now speedier when comparing TypedArrays #4330.
  • lib: Use arrow functions instead of bind where possible node#3622.
  • node: Improved accessor perf of process.env #3780.
  • node: Improved performance of process.hrtime() #3780, #4484.
  • node: Improved GetActiveHandles performance #3780.
  • util: Use faster iteration in util.format() #3964.

New in Node.js 5.3.0 (Jan 22, 2016)

  • Notable changes:
  • buffer:
  • Buffer.prototype.includes() has been added to keep parity with TypedArrays. #3567.
  • domains:
  • Fix handling of uncaught exceptions. #3654.
  • https:
  • Added support for disabling session caching. #4252.
  • repl:
  • Allow third party modules to be imported using require(). This corrects a regression from 5.2.0. #4215.
  • deps:
  • Upgrade libuv to 1.8.0. #4276.

New in Node.js 5.2.0 (Jan 22, 2016)

  • Notable changes:
  • build:
  • Add support for Intel's VTune JIT profiling when compiled with --enable-vtune-profiling. For more information about VTune, see https://software.intel.com/en-us/node/544211. #3785.
  • Properly enable V8 snapshots by default. Due to a configuration error, snapshots have been kept off by default when the intention is for the feature to be enabled. #3962.
  • crypto:
  • Simplify use of ECDH (Elliptic Curve Diffie-Hellman) objects (created via crypto.createECDH(curve_name)) with private keys that are not dynamically generated via generateKeys(). The public key is now computed when explicitly setting a private key. Added validity checks to reduce the possibility of computing weak or invalid shared secrets. Also, deprecated the setPublicKey() method for ECDH objects as its usage is unnecessary and can lead to inconsistent state. #3511.
  • Update root certificates from the current list stored maintained by Mozilla NSS. #3951.
  • Multiple CA certificates can now be passed with the ca option to TLS methods as an array of strings or in a single new-line separated string. #4099
  • tools: Include a tick processor in core, exposed via the --prof-process command-line argument which can be used to process V8 profiling output files generated when using the --prof command-line argument. #4021.

New in Node.js 5.1.1 (Jan 22, 2016)

  • Notable changes:
  • http: Fix CVE-2015-8027, a bug whereby an HTTP socket may no longer have a parser associated with it but a pipelined request attempts to trigger a pause or resume on the non-existent parser, a potential denial-of-service vulnerability.
  • openssl: Upgrade to 1.0.2e, containing fixes for:
  • CVE-2015-3193 "BN_mod_exp may produce incorrect results on x86_64", an attack may be possible against a Node.js TLS server using DHE key exchange.
  • CVE-2015-3194 "Certificate verify crash with missing PSS parameter", a potential denial-of-service vector for Node.js TLS servers using client certificate authentication; TLS clients are also impacted.
  • v8: Backport fix for CVE-2015-6764, a bug in JSON.stringify() that can result in out-of-bounds reads for arrays. (Ben Noordhuis)

New in Node.js 5.1.0 (Jan 22, 2016)

  • Notable changes:
  • buffer: The noAssert option for many buffer functions will now silently drop invalid write values rather than crashing (P.S.V.R) #3767
  • This makes the behavior match what the docs suggest
  • child_process: child.send() now properly returns a boolean like the docs suggest #3577
  • doc: All of the API docs have been re-ordered so as to read in alphabetical order #3662
  • http_parser: update http-parser to 2.6.0 from 2.5.0 (James M Snell) #3569
  • Now supports the following HTTP methods: LINK, UNLINK, BIND, REBIND, UNBIND
  • Also added ACL and IPv6 Zone ID support
  • npm: upgrade npm to 3.3.12 from v3.3.6 #3685
  • See the release notes for v3.3.7, v3.3.8, v3.3.9, v3.3.10, v3.3.11, and v3.3.12 for more details
  • repl: The REPL no longer crashes if the persistent history file cannot be opened #3630
  • tls: The default sessionIdContext now uses SHA1 in FIPS mode rather than MD5 #3755
  • v8: Added some more useful post-mortem data #3779

New in Node.js 0.12.7 (Aug 12, 2015)

  • openssl: upgrade to 1.0.1p
  • npm: upgrade to 2.11.3
  • V8: cherry-pick JitCodeEvent patch from upstream
  • win,msi: create npm folder in AppData directory

New in Node.js 0.12.6 (Jul 6, 2015)

  • V8: fix out-of-band write in utf8 decoder

New in Node.js 0.12.5 (Jul 6, 2015)

  • openssl: upgrade to 1.0.1o (Addressing multiple CVEs)
  • npm: upgrade to 2.11.2
  • uv: upgrade to 1.6.1
  • V8: avoid deadlock when profiling is active
  • install: fix source path for openssl headers
  • install: make sure opensslconf.h is overwritten
  • timers: fix timeout when added in timer's callback
  • windows: broadcast WM_SETTINGCHANGE after install

New in Node.js 0.12.4 (Jul 6, 2015)

  • npm: upgrade to 2.10.1
  • V8: revert v8 Array.prototype.values() removal
  • win: bring back xp/2k3 support

New in Node.js 0.12.3 (May 15, 2015)

  • V8: update to 3.28.71.19
  • uv: upgrade to 1.5.0
  • npm: upgrade to 2.9.1
  • V8: don't busy loop in v8 cpu profiler thread
  • V8: fix issue with let bindings in for loops
  • debugger: don't spawn child process in remote mode
  • net: do not set V4MAPPED on FreeBSD
  • repl: make 'Unexpected token' errors recoverable
  • src: backport ignore ENOTCONN on shutdown race
  • src: fix backport of SIGINT crash fix on FreeBSD

New in Node.js 0.12.2 (Apr 7, 2015)

  • uv: Upgrade to 1.4.2
  • npm: Upgrade to 2.7.4
  • V8: do not add extra newline in log file
  • V8: Fix --max_old_space_size=4096 integer overflow
  • asyncwrap: fix constructor condition for early ret
  • buffer: align chunks on 8-byte boundary
  • buffer: fix pool offset adjustment
  • build: fix use of strict aliasing
  • console: allow Object.prototype fields as labels
  • fs: make F_OK/R_OK/W_OK/X_OK not writable
  • fs: properly handle fd passed to truncate()
  • http: fix assert on data/end after socket error
  • lib: fix max size check in Buffer constructor
  • lib: fix stdio/ipc sync i/o regression
  • module: replace NativeModule.require
  • net: allow port 0 in connect()
  • net: unref timer in parent sockets
  • path: refactor for performance and consistency
  • smalloc: extend user API
  • src: fix for SIGINT crash on FreeBSD
  • src: fix builtin modules failing with --use-strict
  • watchdog: fix timeout for early polling return

New in Node.js 0.12.1 (Mar 24, 2015)

  • openssl: upgrade to 1.0.1m (Addressing multiple CVES)

New in Node.js 0.12.0 (Feb 7, 2015)

  • Streams 3:
  • The Streams implementation now works the way you thought it already should, without introducing any changes to the API. Basically this means no more getting stuck in "old mode", there are only streams that are flowing or not.
  • Streams now support the use of cork and uncork mechanisms to prevent flushing writes out to the system if an application is going to be performing many writes in a row. There is an implicit uncork performed when you end a writable stream.
  • HTTP:
  • maxSockets are no longer limited to 5. The default is now set to Infinity with the developer and the operating system given control over how many simultaneous connections an application can keep open to a given host.
  • Proper KeepAlive support means that sockets will stay open until they timeout at the configured time, are closed by the remote side, or the process exits. Developer's no longer have to make sure requests have been pipelined to keep the socket open, or use an alternative module to get that support.
  • Developers can also now explicitly flushHeaders to ensure time to first byte is low and proxied connections are held open.
  • Cluster:
  • Now has two modes of operation, the new default is a round robin distribution mechanism where the master accepts new connections and distributes them to your workers. If you want you can still opt back into the old method where your workers are responsible for acception connections.
  • TLS:
  • We have the new TLSWrap mechanism under the hood, this eliminates quite a few of the hops back and forth between JavaScript and our C++ implementations.
  • Added APIs for asynchronous SNI callbacks, OCSP stapling, and storage events.
  • Buffer:
  • We use a more accurate mechanism for allocating memory for buffers now, which means you'll see less overhead and impact from holding onto to small slices of Buffers. This reduces the amount of memory pressure on the system, which means GC runs are quicker, which means Node.js is on CPU less, and thus lower latency for your applications.
  • child_process:
  • spawnSync/execSync have been added to facilitate synchronous child processes, warning your node process won't make forward progress while waiting for the child to exit, caveat emptor!
  • Crypto:
  • Added APIs for loading custom engines for use with compiled in OpenSSL.
  • More APIs support supplying the pass phrases.
  • Added APIs for RSA public/private key encryption/decryption.
  • VM:
  • The module is now based on the Contextify module, which shares values from the sandbox to avoid missing changes inside the execution from appearing in the parent context.
  • Initial support for ECMAScript Internationalization API 1.0 (ECMA-402):
  • By default, Node.js v0.12.0 binaries are shipped with ECMA-402 support, but only for the English language. In other words, the ECMA-402 API is working as you would expect, but only data for the English language is included.

New in Node.js 0.11.16 Beta (Jan 31, 2015)

  • openssl: Upgrade to 1.0.1l
  • npm: Upgrade to 2.3.0
  • url: revert support of `path` for url.format"
  • assert: use util.inspect() to create error messages
  • net: throw on invalid socket timeouts (
  • url: fix parsing of ssh urls

New in Node.js 0.10.36 (Jan 27, 2015)

  • openssl: update to 1.0.1l
  • v8: Fix debugger and strict mode regression
  • v8: don't busy loop in cpu profiler thread

New in Node.js 0.10.35 (Jan 27, 2015)

  • tls: re-add 1024-bit SSL certs removed by f9456a2
  • timers: don't close interval timers when unrefd
  • timers: don't mutate unref list while iterating it

New in Node.js 0.10.34 (Dec 23, 2014)

  • uv: update to v0.10.30
  • zlib: upgrade to v1.2.8
  • child_process: check execFile args is an array
  • child_process: check fork args is an array
  • crypto: update root certificates
  • domains: fix issues with abort on uncaught
  • timers: Avoid linear scan in _unrefActive.
  • timers: fix unref() memory leak
  • v8: add api for aborting on uncaught exception
  • debugger: fix when using "use strict"

New in Node.js 0.10.33 (Dec 23, 2014)

  • openssl: Update to 1.0.1j (Addressing multiple CVEs)
  • uv: Update to v0.10.29
  • child_process: properly support optional args (cjihrig)
  • crypto: Disable autonegotiation for SSLv2/3 by default

New in Node.js 0.11.14 Beta (Sep 26, 2014)

  • uv: Upgrade to v1.0.0-rc1
  • http_parser: Upgrade to v2.3.0
  • npm: Upgrade to v2.0.0
  • openssl: Upgrade to v1.0.1i
  • v8: Upgrade to 3.26.33
  • Add fast path for simple URL parsing (Gabriel Wicke)
  • Added support for options parameter in console.dir() (Xavi Magrinya`)
  • Cluster: fix shared handles on Windows (Alexis Campailla)
  • buffer: Fix incorrect Buffer.compare behavior (Feross Aboukhadijeh)
  • buffer: construct new buffer from buffer toJSON() output (cjihrig)
  • buffer: improve Buffer constructor (Kang-Hao Kenny)
  • build: linking CoreFoundation framework for OSX (Thorsten Lorenz)
  • child_process: accept uid/gid everywhere (Fedor Indutny)
  • child_process: add path to spawn ENOENT Error (Ryan Cole)
  • child_process: copy spawnSync() cwd option to proper buffer (cjihrig)
  • child_process: do not access stderr when stdio set to 'ignore' (cjihrig)
  • child_process: don't throw on EAGAIN (Charles)
  • child_process: don't throw on EMFILE/ENFILE (Ben Noordhuis)
  • child_process: use full path for cmd.exe on Win32 (Ed Morley)
  • cluster: allow multiple calls to setupMaster() (Ryan Graham)
  • cluster: centralize removal from workers list. (Julien Gilli)
  • cluster: enable error/message events using .worker (cjihrig)
  • cluster: include settings object in 'setup' event (Ryan Graham)
  • cluster: restore v0.10.x setupMaster() behaviour (Ryan Graham)
  • cluster: support options in Worker constructor (cjihrig)
  • cluster: test events emit on cluster.worker (Sam Roberts)
  • console: console.dir() accepts options object (Xavi Magrinya`)
  • crypto: add honorCipherOrder argument (Fedor Indutny)
  • crypto: allow padding in RSA methods (Fedor Indutny)
  • crypto: clarify RandomBytes() error msg (Mickael van der Beek)
  • crypto: never store pointer to conn in SSL_CTX (Fedor Indutny)
  • crypto: unsigned value can't be negative (Brian White)
  • dgram: remove new keyword from errnoException (Jackson Tian)
  • dns: always set variable family in lookup() (cjihrig)
  • dns: include host name in error message if available (Maciej Malecki)
  • dns: introduce lookupService function (Saúl Ibarra Corretgé)
  • dns: send lookup c-ares errors to callback (Chris Dickinson)
  • dns: throw if hostname is not string or falsey (cjihrig)
  • events: Output the event that is leaking (Arnout Kazemier)
  • fs: close file if fstat() fails in readFile() (cjihrig)
  • fs: fs.readFile should not throw uncaughtException (Jackson Tian)
  • http: add 308 status_code, see RFC7238 (Yazhong Liu)
  • http: don't default OPTIONS to chunked encoding (Nick Muerdter)
  • http: fix bailout for writeHead (Alex Kocharin)
  • http: remove unused code block (Fedor Indutny)
  • http: write() after end() emits an error. (Julien Gilli)
  • lib, src: add vm.runInDebugContext() (Ben Noordhuis)
  • lib: noisy deprecation of child_process customFds (Ryan Graham)
  • module: don't require fs several times (Robert Kowalski)
  • net,dgram: workers can listen on exclusive ports (cjihrig)
  • net,stream: add isPaused, don't read() when paused (Chris Dickinson)
  • net: Ensure consistent binding to IPV6 if address is absent (Raymond Feng)
  • net: add remoteFamily for socket (Jackson Tian)
  • net: don't emit listening if handle is closed (Eli Skeggs)
  • net: don't prefer IPv4 addresses during resolution (cjihrig)
  • net: don't throw on net.Server.close() (cjihrig)
  • net: reset errorEmitted on reconnect (Ed Umansky)
  • node: set names for prototype methods (Trevor Norris)
  • node: support v8 microtask queue (Vladimir Kurchatkin)
  • path: fix slice OOB in trim (Lucio M. Tato)
  • path: isAbsolute() should always return boolean (Herman Lee)
  • process: throw TypeError if kill pid not a number (Sam Roberts)
  • querystring: custom encode and decode (fengmk2)
  • querystring: do not add sep for empty array (cjihrig)
  • querystring: remove prepended ? from query field (Ezequiel Rabinovich)
  • readline: fix close event of readline.Interface() (Yazhong Liu)
  • readline: fixes scoping bug (Dan Kaplun)
  • readline: implements keypress buffering (Dan Kaplun)
  • repl: fix multi-line input (Fedor Indutny)
  • repl: fix overwrite for this._prompt (Yazhong Liu)
  • repl: proper setPrompt() and multiline support (Fedor Indutny)
  • stream: don't try to finish if buffer is not empty (Vladimir Kurchatkin)
  • stream: only end reading on null, not undefined (Jonathan Reem)
  • streams: set default hwm properly for Duplex (Andrew Oppenlander)
  • string_bytes: ucs2 support big endian (Andrew Low)
  • tls, crypto: add DHE support (Shigeki Ohtsu)
  • tls: checkServerIdentity option (Trevor Livingston)
  • tls: add DHE-RSA-AES128-SHA256 to the def ciphers (Shigeki Ohtsu)
  • tls: better error reporting at cert validation (Fedor Indutny)
  • tls: support multiple keys/certs (Fedor Indutny)
  • tls: throw an error, not string (Jackson Tian)
  • udp: make it possible to receive empty udp packets (Andrius Bentkus)
  • url: treat the same as / (isaacs)

New in Node.js 0.10.32 (Sep 17, 2014)

  • npm: Update to 1.4.28
  • v8: fix a crash introduced by previous release
  • configure: add --openssl-no-asm flag
  • crypto: use domains for any callback-taking method
  • http: do not send 0rnrn in TE HEAD responses
  • querystring: fix unescape override
  • url: Add support for RFC 3490 separators

New in Node.js 0.10.31 (Sep 17, 2014)

  • v8: backport CVE-2013-6668
  • openssl: Update to v1.0.1i
  • npm: Update to v1.4.23
  • cluster: disconnect should not be synchronous
  • fs: fix fs.readFileSync fd leak when get RangeError
  • stream: fix Readable.wrap objectMode falsy values
  • timers: fix timers with non-integer delay hanging.

New in Node.js 0.10.29 (Jun 10, 2014)

  • openssl: to 1.0.1h (CVE-2014-0224)
  • npm: upgrade to 1.4.10
  • utf8: Prevent Node from sending invalid UTF-8 (Felix Geisendörfer) *NOTE* this introduces a breaking change, previously you could construct invalid UTF-8 and invoke an error in a client that was expecting valid UTF-8, now unmatched surrogate pairs are replaced with the unknown UTF-8 character. To restore the old functionality simply have NODE_INVALID_UTF8 environment variable set.
  • child_process: do not set args before throwing (Greg Sabia Tucker)
  • child_process: spawn() does not throw TypeError (Greg Sabia Tucker)
  • constants: export O_NONBLOCK (Fedor Indutny)
  • crypto: improve memory usage (Alexis Campailla)
  • fs: close file if fstat() fails in readFile() (cjihrig)
  • lib: name EventEmitter prototype methods (Ben Noordhuis)
  • tls: fix performance issue (Alexis Campailla)

New in Node.js 0.10.28 (Jun 6, 2014)

  • npm: upgrade to v1.4.9

New in Node.js 0.11.13 Beta (May 3, 2014)

  • v8: upgrade to 3.24.35.22
  • buffer: add compare and equals methods (Sean McArthur)
  • buffer: improve {read,write}{U}Intmethods (Nick Apperson)
  • buffer: return uint if MSB is 1 in readUInt32 (goussardg)
  • buffer: truncate buffer after string decode (Fedor Indutny)
  • child_process: fix assertion error in spawnSync (Shigeki Ohtsu)
  • crypto: fix memory leak in CipherBase::Final (Fedor Indutny)
  • crypto: improve error messages (Ingmar Runge)
  • crypto: move `createCredentials` to tls (Fedor Indutny)
  • crypto: work around OpenSSL oddness (Fedor Indutny)
  • dgram: introduce `reuseAddr` option (Fedor Indutny)
  • domain: don't crash on "throw null" (Alex Kocharin)
  • events: check if _events is an own property (Vladimir Kurchatkin)
  • fs: improve performance of all stat functions (James Pickard)
  • fs: return blksize on stats object (Trevor Norris)
  • http: add request.flush() method (Ben Noordhuis)
  • http: better client "protocol not supported" error (Nathan Rajlich)
  • http: use defaultAgent.protocol in protocol check (Nathan Rajlich)
  • main: Handle SIGINT properly. (Geir Hauge)
  • net: bind to `::` TCP address by default (Fedor Indutny)
  • readline: consider newlines for cursor position (Yazhong Liu)
  • stream: split `objectMode` for Duplex (Vladimir Kurchatkin)
  • tls: `getPeerCertificate(detailed)` (Fedor Indutny)
  • tls: do not call SNICallback unless present (Fedor Indutny)
  • tls: force readable/writable to `true` (Fedor Indutny)
  • tls: support OCSP on client and server (Fedor Indutny)
  • util: made util.isArray a direct alias for Array.isArray (Evan Carroll)

New in Node.js 0.10.27 (May 2, 2014)

  • npm: upgrade to v1.4.8
  • openssl: upgrade to 1.0.1g
  • uv: update to v0.10.27
  • dns: fix certain txt entries (Fedor Indutny)
  • assert: Ensure reflexivity of deepEqual (Mike Pennisi)
  • child_process: fix deadlock when sending handles (Fedor Indutny)
  • child_process: fix sending handle twice (Fedor Indutny)
  • crypto: do not lowercase cipher/hash names (Fedor Indutny)
  • dtrace: workaround linker bug on FreeBSD (Fedor Indutny)
  • http: do not emit EOF non-readable socket (Fedor Indutny)
  • http: invoke createConnection when no agent (Nathan Rajlich)
  • stream: remove useless check (Brian White)
  • timer: don't reschedule timer bucket in a domain (Greg Brail)
  • url: treat \ the same as / (isaacs)
  • util: format as Error if instanceof Error (Rod Vagg)

New in Node.js 0.11.12 Beta (Mar 12, 2014)

  • uv: Upgrade to v0.11.22 (Timothy J Fontaine)
  • buffer: allow toString to accept Infinity for end (Brian White)
  • child_process: add spawnSync/execSync (Bert Belder, Timothy J Fontaine)
  • cluster: handle bind errors on Windows (Alexis Campailla)
  • contextify: handle infinite recursion errors (Fedor Indutny)
  • crypto: allow custom generator for DiffieHellman (Brian White)
  • crypto: allow setting add'l authenticated data (Brian White)
  • crypto: fix CipherFinal return value check (Brian White)
  • crypto: make NewSessionDoneCb public (Fedor Indutny)
  • dgram: pass the bytes sent to the send callback (Timothy J Fontaine)
  • dns: validate arguments in resolver (Kenan Sulayman)
  • dns: verify argument is valid function in resolve (Kenan Sulayman)
  • http: avoid duplicate keys in writeHead (David Björklund)
  • net: add localPort to connect options (Timothy J Fontaine)
  • node: do not print SyntaxError hints to stderr (Fedor Indutny)
  • node: invoke `beforeExit` again if loop was active (Fedor Indutny)
  • node: make AsyncListenerInst field more explicit (Trevor Norris)
  • os: networkInterfaces include scopeid for ipv6 (Xidorn Quan)
  • process: allow changing `exitCode` in `on('exit')` (Fedor Indutny)
  • readline: fix `line` event, if input emit 'end' (Yazhong Liu)
  • src: add tracing.v8.on('gc') statistics hooks (Ben Noordhuis)
  • src: add v8.getHeapStatistics() function (Ben Noordhuis)
  • src: emit 'beforeExit' event on process object (Ben Noordhuis)
  • src: move AsyncListener from process to tracing (Trevor Norris)
  • tls: fix crash in SNICallback (Fedor Indutny)
  • tls: introduce asynchronous `newSession` (Fedor Indutny)
  • util: show meaningful values for boxed primitives (Nathan Rajlich)
  • vm: don't copy Proxy object from parent context (Ben Noordhuis)
  • windows: make stdout/sterr pipes blocking (Alexis Campailla)
  • zlib: add sync versions for convenience methods (Nikolai Vavilov)

New in Node.js 0.10.26 (Feb 19, 2014)

  • uv: Upgrade to v0.10.25 (Timothy J Fontaine)
  • npm: upgrade to 1.4.3 (isaacs)
  • v8: support compiling with VS2013 (Fedor Indutny)
  • cares: backport TXT parsing fix (Fedor Indutny)
  • crypto: throw on SignFinal failure (Fedor Indutny)
  • crypto: update root certificates (Ben Noordhuis)
  • debugger: Fix breakpoint not showing after restart (Farid Neshat)
  • fs: make unwatchFile() insensitive to path (iamdoron)
  • net: do not re-emit stream errors (Fedor Indutny)
  • net: make Socket destroy() re-entrance safe (Jun Ma)
  • net: reset endEmitted on reconnect (Fedor Indutny)
  • node: do not close stdio implicitly (Fedor Indutny)
  • zlib: avoid assertion in close (Fedor Indutny)

New in Node.js 0.11.11 Beta (Jan 29, 2014)

  • http_parser: Upgrade to 2.2.1
  • openssl: Upgrade to 1.0.1f
  • uv: Upgrade to 0.11.18
  • async-listener: revamp of subsystem
  • node: do not ever close stdio
  • http: use writev on chunked encoding
  • async_wrap/timers: remove Add/RemoveAsyncListener
  • child_process: better error reporting for exec
  • crypto: add newline to cert and key if not present
  • crypto: clear error in GetPeerCertificate
  • crypto: honor default ciphers in client mode
  • crypto: introduce .setEngine(engine, [flags])
  • crypto: support custom pbkdf2 digest methods
  • domain: fix off-by-one in Domain.exit()
  • http: concatenate duplicate headers by default
  • http: do not emit EOF non-readable socket
  • node: fix argument parsing with -p arg
  • path: improve POSIX path.join() performance
  • tls: emit `clientError` on early socket close
  • tls: introduce `.setMaxSendFragment(size)`
  • tls: make cert/pfx optional in tls.createServer()
  • tls: process accumulated input
  • tls: show human-readable error messages
  • util: handle escaped forward slashes correctly

New in Node.js 0.10.25 (Jan 25, 2014)

  • uv: Upgrade to v0.10.23
  • npm: Upgrade to v1.3.24
  • v8: Fix enumeration for objects with lots of properties
  • child_process: fix spawn() optional arguments (Sam Roberts)
  • cluster: report more errors to workers (Fedor Indutny)
  • domains: exit() only affects active domains (Ryan Graham)
  • src: OnFatalError handler must abort() (Timothy J Fontaine)
  • stream: writes may return false but forget to emit drain (Yang Tianyang)

New in Node.js 0.11.10 Beta (Jan 3, 2014)

  • http_parser: update to 2.2
  • uv: Upgrade to v0.11.17
  • v8: Upgrade to 3.22.24.10
  • buffer: optimize writeInt* methods (Paul Loyd)
  • child_process: better error handling (Alexis Campailla)
  • cluster: do not synchronously emit 'setup' event (Sam Roberts)
  • cluster: restore backwards compatibility and various fixes (Sam Roberts)
  • crypto: remove unnecessary OpenSSL_add_all_digests (Yorkie)
  • crypto: support GCM authenticated encryption mode. (Ingmar Runge)
  • dns: add resolveSoa and 'SOA' rrtype (Tuğrul Topuz)
  • events: move EE c'tor guts to EventEmitter.init (Bert Belder)
  • http: DELETE shouldn't default to chunked encoding (Lalit Kapoor)
  • http: parse the status message in a http response. (Cam Swords)
  • node: fix removing AsyncListener in callback (Vladimir Kurchatkin)
  • node: follow specification, zero-fill ArrayBuffers (Trevor Norris)
  • openssl: use ASM optimized routines (Fedor Indutny)
  • process: allow nextTick infinite recursion (Trevor Norris)
  • querystring: remove `name` from `stringify()` (Yorkie)
  • timers: setImmediate v8 optimization fix (pflannery)
  • tls: add serialNumber to getPeerCertificate() (Ben Noordhuis)
  • tls: reintroduce socket.encrypted (Fedor Indutny)
  • tls: fix handling of asterisk in SNI context (Fedor Indutny)
  • util: Format negative zero as '-0' (David Chan)
  • vm: fix race condition in timeout (Alexis Campailla)
  • windows: fix dns lookup of localhost with ipv6 (Alexis Campailla)

New in Node.js 0.10.24 (Dec 20, 2013)

  • uv: Upgrade to v0.10.21
  • npm: upgrade to 1.3.21
  • v8: backport fix for CVE-2013-{6639|6640}
  • build: unix install node and dep library headers (Timothy J Fontaine)
  • cluster, v8: fix --logfile=%p.log (Ben Noordhuis)
  • module: only cache package main (Wyatt Preul)

New in Node.js 0.10.23 (Dec 12, 2013)

  • uv: Upgrade to v0.10.20 (Timothy J Fontaine)
  • npm: Upgrade to 1.3.17 (isaacs)
  • gyp: update to 78b26f7 (Timothy J Fontaine)
  • build: include postmortem symbols on linux (Timothy J Fontaine)
  • crypto: Make Decipher._flush() emit errors. (Kai Groner)
  • dgram: fix abort when getting `fd` of closed dgram (Fedor Indutny)
  • events: do not accept NaN in setMaxListeners (Fedor Indutny)
  • events: avoid calling `once` functions twice (Tim Wood)
  • events: fix TypeError in removeAllListeners (Jeremy Martin)
  • fs: report correct path when EEXIST (Fedor Indutny)
  • process: enforce allowed signals for kill (Sam Roberts)
  • tls: emit 'end' on .receivedShutdown (Fedor Indutny)
  • tls: fix potential data corruption (Fedor Indutny)
  • tls: handle `ssl.start()` errors appropriately (Fedor Indutny)
  • tls: reset NPN callbacks after SNI (Fedor Indutny)

New in Node.js 0.11.9 Beta (Dec 4, 2013)

  • uv: upgrade to v0.11.15 (Timothy J Fontaine)
  • v8: upgrade to 3.22.24.5 (Timothy J Fontaine)
  • buffer: remove warning when no encoding is passed (Trevor Norris)
  • build: make v8 use random seed for hash tables (Ben Noordhuis)
  • crypto: build with shared openssl without NPN (Ben Noordhuis)
  • crypto: update root certificates (Ben Noordhuis)
  • debugger: pass on v8 debug switches (Ben Noordhuis)
  • domain: use AsyncListener API (Trevor Norris)
  • fs: add recursive subdirectory support to fs.watch (Nick Simmons)
  • fs: make fs.watch() non-recursive by default (Ben Noordhuis)
  • http: cleanup freeSockets when socket destroyed (fengmk2)
  • http: force socket encoding to be null (isaacs)
  • http: make DELETE requests set req.method (Nathan Rajlich)
  • node: add AsyncListener support (Trevor Norris)
  • src: remove global HandleScope that hid memory leaks (Ben Noordhuis)
  • tls: add ECDH ciphers support (Erik Dubbelboer)
  • tls: do not default to 'localhost' servername (Fedor Indutny)
  • tls: more accurate wrapping of connecting socket (Fedor Indutny)

New in Node.js 0.10.22 (Nov 13, 2013)

  • npm: Upgrade to 1.3.14
  • uv: Upgrade to v0.10.19
  • child_process: don't assert on stale file descriptor events (Fedor Indutny)
  • darwin: Fix "Not Responding" in Mavericks activity monitor (Fedor Indutny)
  • debugger: Fix bug in sb() with unnamed script (Maxim Bogushevich)
  • repl: do not insert duplicates into completions (Maciej Małecki)
  • src: Fix memory leak on closed handles (Timothy J Fontaine)
  • tls: prevent stalls by using read(0) (Fedor Indutny)
  • v8: use correct timezone information on Solaris (Maciej Małecki)

New in Node.js 0.11.8 Beta (Oct 31, 2013)

  • uv: Upgrade to v0.11.14
  • v8: upgrade 3.21.18.3
  • assert: indicate if exception message is generated (Glen Mailer)
  • buffer: add buf.toArrayBuffer() API (Trevor Norris)
  • cluster: fix premature 'disconnect' event (Ben Noordhuis)
  • crypto: add SPKAC support (Jason Gerfen)
  • debugger: count space for line numbers correctly (Alex Kocharin)
  • debugger: make busy loops SIGUSR1-interruptible (Ben Noordhuis)
  • debugger: repeat last command (Alex Kocharin)
  • debugger: show current line, fix for #6150 (Alex Kocharin)
  • dgram: send() can accept strings (Trevor Norris)
  • dns: rename domain to hostname (Ben Noordhuis)
  • dns: set hostname property on error object (Ben Noordhuis)
  • dtrace, mdb_v8: support more string, frame types (Dave Pacheco)
  • http: add statusMessage (Patrik Stutz)
  • http: expose supported methods (Ben Noordhuis)
  • http: provide backpressure for pipeline flood (isaacs)
  • process: Add exitCode property (isaacs)
  • tls: socket.renegotiate(options, callback) (Fedor Indutny)
  • util: format as Error if instanceof Error (Rod Vagg)

New in Node.js 0.10.21 (Oct 19, 2013)

  • uv: Upgrade to v0.10.18
  • crypto: clear errors from verify failure (Timothy J Fontaine)
  • dtrace: interpret two byte strings (Dave Pacheco)
  • fs: fix fs.truncate() file content zeroing bug (Ben Noordhuis)
  • http: provide backpressure for pipeline flood (isaacs)
  • tls: fix premature connection termination (Ben Noordhuis)

New in Node.js 0.10.20 (Oct 1, 2013)

  • tls: fix sporadic hang and partial reads
  • fixes "npm ERR! cb() never called!"

New in Node.js 0.10.19 (Sep 25, 2013)

  • uv: Upgrade to v0.10.17
  • npm: upgrade to 1.3.11
  • readline: handle input starting with control chars (Eric Schrock)
  • configure: add mips-float-abi (soft, hard) option (Andrei Sedoi)
  • stream: objectMode transforms allow falsey values (isaacs)
  • tls: prevent duplicate values returned from read (Nathan Rajlich)
  • tls: NPN protocols are now local to connections (Fedor Indutny)

New in Node.js 0.10.18 (Sep 5, 2013)

  • uv: Upgrade to v0.10.15
  • stream: Don't crash on unset _events property (isaacs)
  • stream: Pass 'buffer' encoding with decoded writable chunks (isaacs)

New in Node.js 0.11.7 Beta (Sep 5, 2013)

  • uv: upgrade to v0.11.13
  • v8: upgrade to 3.20.17
  • buffer: adhere to INSPECT_MAX_BYTES (Timothy J Fontaine)
  • buffer: fix regression for large buffer creation (Trevor Norris)
  • buffer: don't throw if slice length too long (Trevor Norris)
  • buffer: Buffer(buf) constructor copies into the proper buffer (Ben Noordhuis)
  • cli: remove --max-stack-size (Ben Noordhuis)
  • cli: unknown command line options are errors (Ben Noordhuis)
  • child_process: exec accept buffer as an encoding (Seth Fitzsimmons)
  • crypto: make randomBytes/pbkdf2 callbacks domain aware (Ben Noordhuis)
  • domain: deprecate domain.dispose(). (Forrest L Norvell)
  • fs: Expose birthtime on stat objects (isaacs)
  • http: Only send connection:keep-alive if necessary (isaacs)
  • repl: Catch syntax errors better (isaacs, Nathan Rajlich)
  • stream: change default highWaterMark for objectMode to 16 (Mathias Buus)
  • stream: make setEncoding/pause/resume chainable (Julian Gruber, isaacs)
  • util: pass opts to custom inspect functions (Timothy J Fontaine)
  • vm: rewritten to behave like Contextify (Domenic Denicola)

New in Node.js 0.10.17 (Aug 22, 2013)

  • uv: Upgrade v0.10.14
  • http_parser: Do not accept PUN/GEM methods as PUT/GET (Chris Dickinson)
  • tls: fix assertion when ssl is destroyed at read (Fedor Indutny)
  • stream: Throw on 'error' if listeners removed (isaacs)
  • dgram: fix assertion on bad send() arguments (Ben Noordhuis)
  • readline: pause stdin before turning off terminal raw mode (Daniel Chatfield)

New in Node.js 0.11.6 Beta (Aug 22, 2013)

  • uv: Upgrade to v0.11.8
  • v8: upgrade v8 to 3.20.14.1
  • build: disable SSLv2 by default (Ben Noordhuis)
  • build: don't auto-destroy existing configuration (Ben Noordhuis)
  • crypto: add TLS 1.1 and 1.2 to secureProtocol list (Matthias Bartelmeß)
  • crypto: fix memory leak in randomBytes() error path (Ben Noordhuis)
  • dgram: don't call into js when send cb is omitted (Ben Noordhuis)
  • dgram: fix regression in string argument handling (Ben Noordhuis)
  • domains: performance improvements (Trevor Norris)
  • events: EventEmitter = require('events') (Jake Verbaten)
  • http: Add write()/end() callbacks (isaacs)
  • http: Consistent 'finish' event semantics (isaacs)
  • http: Prefer 'binary' over 'ascii' (isaacs)
  • http: Support legacy agent.addRequest API (isaacs)
  • http: Write hex/base64 chunks properly (isaacs)
  • http: add agent.maxFreeSockets option (isaacs)
  • http: provide access to raw headers/trailers (isaacs)
  • http: removed headers stay removed (James Halliday)
  • http,timers: improve callback performance (Ben Noordhuis)
  • net: family option in net.connect (Vsevolod Strukchinsky)
  • readline: pause stdin before turning off terminal raw mode (Daniel Chatfield)
  • smalloc: allow different external array types (Trevor Norris)
  • smalloc: expose ExternalArraySize (Trevor Norris)
  • stream: Short-circuit buffer pushes when flowing (isaacs)
  • tls: handle errors on socket before releasing it (Fedor Indutny)
  • util: fix isPrimitive check (Trevor Norris)
  • util: isObject should always return boolean (Trevor Norris)

New in Node.js 0.10.16 (Aug 17, 2013)

  • v8: back-port fix for CVE-2013-2882
  • npm: Upgrade to 1.3.8
  • crypto: fix assert() on malformed hex input (Ben Noordhuis)
  • crypto: fix memory leak in randomBytes() error path (Ben Noordhuis)
  • events: fix memory leak, don't leak event names (Ben Noordhuis)
  • http: Handle hex/base64 encodings properly (isaacs)
  • http: improve chunked res.write(buf) performance (Ben Noordhuis)
  • stream: Fix double pipe error emit (Eran Hammer)

New in Node.js 0.11.5 Beta (Aug 7, 2013)

  • v8: upgrade to 3.20.11
  • uv: upgrade to v0.11.7
  • buffer: return offset for end of last write (Trevor Norris)
  • build: embed the mdb_v8.so into the binary (Timothy J Fontaine)
  • build: fix --without-ssl build (Ben Noordhuis)
  • child_process: add 'shell' option to .exec() (Ben Noordhuis)
  • dgram: report send errors to cb, don't pass bytes (Ben Noordhuis)
  • fs: write strings directly to disk (Trevor Norris)
  • https: fix default port (Koichi Kobayashi)
  • openssl: use asm for sha, md5, rmd (Fedor Indutny)
  • os: add mac address to networkInterfaces() output (Brian White)
  • smalloc: introduce smalloc module (Trevor Norris)
  • stream: Simplify flowing, passive data listening (streams3) (isaacs)
  • tls: asynchronous SNICallback (Fedor Indutny)
  • tls: share tls tickets key between cluster workers (Fedor Indutny)
  • util: don't throw on circular %j input to format() (Ben Noordhuis)

New in Node.js 0.10.15 (Jul 26, 2013)

  • src: fix process.getuid() return value

New in Node.js 0.11.4 Beta (Jul 13, 2013)

  • npm: Upgrade to 1.3.4
  • v8: Upgrade to v3.20.2
  • c-ares: Upgrade to piscisaureus/cares@805d153
  • timers: setImmediate process full queue each turn (Ben Noordhuis)
  • http: Add agent.get/request methods (isaacs)
  • http: Proper KeepAlive behavior (isaacs)
  • configure: fix the --without-ssl option (Nathan Rajlich)
  • buffer: propagate originating parent (Trevor Norris)
  • tls_wrap: return Error not throw for missing cert (Timothy J Fontaine)
  • src: enable native v8 typed arrays (Ben Noordhuis)
  • stream: objectMode transform should allow falsey values (Jeff Barczewski)
  • slab_allocator: remove SlabAllocator (Trevor Norris)
  • crypto: fix memory leak in LoadPKCS12 (Fedor Indutny)
  • tls: export TLSSocket (Fedor Indutny)
  • zlib: allow changing of level and strategy (Brian White)
  • zlib: allow custom flush type for flush() (Brian White)

New in Node.js 0.10.13 (Jul 10, 2013)

  • uv: Upgrade to v0.10.12
  • npm: Upgrade to 1.3.2
  • windows: get proper errno (Ben Noordhuis)
  • tls: only wait for finish if we haven't seen it (Timothy J Fontaine)
  • http: Dump response when request is aborted (isaacs)
  • http: use an unref'd timer to fix delay in exit (Peter Rust)
  • zlib: level can be negative (Brian White)
  • zlib: allow zero values for level and strategy (Brian White)
  • buffer: add comment explaining buffer alignment (Ben Noordhuis)
  • string_bytes: properly detect 64bit (Timothy J Fontaine)
  • src: fix memory leak in UsingDomains() (Ben Noordhuis)

New in Node.js 0.11.3 Beta (Jun 27, 2013)

  • uv: Upgrade to v0.11.5
  • c-ares: upgrade to 1.10.0
  • v8: upgrade to v3.19.13
  • punycode: update to v1.2.3 (Mathias Bynens)
  • debugger: break on uncaught exception (Miroslav Bajtos)
  • child_process: emit 'disconnect' asynchronously (Ben Noordhuis)
  • dtrace: enable uv's probes if enabled (Timothy J Fontaine)
  • dtrace: unify dtrace and systemtap interfaces (Timothy J Fontaine)
  • buffer: New API for backing data store (Trevor Norris)
  • buffer: return this in fill() for chainability (Brian White)
  • build: fix include order for building on windows (Timothy J Fontaine)
  • build: add android support (Linus Mårtensson)
  • readline: strip ctrl chars for prompt width calc (Krzysztof Chrapka)
  • tls: introduce TLSSocket based on tls_wrap binding (Fedor Indutny)
  • tls: add localAddress and localPort properties (Ben Noordhuis)
  • crypto: free excessive memory in NodeBIO (Fedor Indutny)
  • process: remove maxTickDepth (Trevor Norris)
  • timers: use uv_now instead of Date.now (Timothy J Fontaine)
  • util: Add debuglog, deprecate console lookalikes (isaacs)
  • module: use path.sep instead of a custom solution (Robert Kowalski)
  • http: don't escape request path, reject bad chars (Ben Noordhuis)
  • net: emit dns 'lookup' event before connect (Ben Noordhuis)
  • dns: add getServers and setServers (Timothy J Fontaine)

New in Node.js 0.10.12 (Jun 21, 2013)

  • npm: Upgrade to 1.2.32
  • readline: make ctrl + L clear the screen
  • v8: add setVariableValue debugger command
  • net: Do not destroy socket mid-write
  • v8: fix build for mips32r2 architecture
  • configure: fix cross-compilation host_arch_cc()

New in Node.js 0.10.9 (May 31, 2013)

  • npm: Upgrade to 1.2.24
  • uv: Upgrade to v0.10.9
  • repl: fix JSON.parse error check
  • tls: proper .destroySoon
  • tls: invoke write cb only after opposite read end
  • tls: ignore .shutdown() syscall error

New in Node.js 0.10.8 (May 25, 2013)

  • v8: update to 3.14.5.9
  • uv: upgrade to 0.10.8
  • npm: Upgrade to 1.2.23
  • http: remove bodyHead from 'upgrade' events (Nathan Zadoks)
  • http: Return true on empty writes, not false (isaacs)
  • http: save roundtrips, convert buffers to strings (Ben Noordhuis)
  • configure: respect the --dest-os flag consistently (Nathan Rajlich)
  • buffer: throw when writing beyond buffer (Trevor Norris)
  • crypto: Clear error after DiffieHellman key errors (isaacs)
  • string_bytes: strip padding from base64 strings (Trevor Norris)

New in Node.js 0.10.7 (May 18, 2013)

  • uv: upgrade to v0.10.7
  • npm: Upgrade to 1.2.21
  • crypto: Don't ignore verify encoding argument (isaacs)
  • buffer, crypto: fix default encoding regression (Ben Noordhuis)
  • timers: fix setInterval() assert (Ben Noordhuis)

New in Node.js 0.10.6 (May 15, 2013)

  • module: Deprecate require.extensions (isaacs)
  • stream: make Readable.wrap support objectMode, empty streams (Daniel Moore)
  • child_process: fix handle delivery (Ben Noordhuis)
  • crypto: Fix performance regression (isaacs)
  • src: DRY string encoding/decoding (isaacs)

New in Node.js 0.11.2 Beta (May 14, 2013)

  • uv: Upgrade to 0.11.2
  • V8: Upgrade to 3.19.0
  • npm: Upgrade to 1.2.21
  • build: Makefile should respect configure --prefix (Timothy J Fontaine)
  • cluster: use round-robin load balancing (Ben Noordhuis)
  • debugger, cluster: each worker has new debug port (Miroslav Bajtoš)
  • debugger: `restart` with custom debug port (Miroslav Bajtoš)
  • debugger: breakpoints in scripts not loaded yet (Miroslav Bajtoš)
  • event: EventEmitter#setMaxListeners() returns this (Sam Roberts)
  • events: add EventEmitter.defaultMaxListeners (Ben Noordhuis)
  • install: Support $(PREFIX) install target directory prefix (Olof Johansson)
  • os: Include netmask in os.networkInterfaces() (Ben Kelly)
  • path: add path.isAbsolute(path) (Ryan Doenges)
  • stream: Guarantee ordering of 'finish' event (isaacs)
  • streams: introduce .cork/.uncork/._writev (Fedor Indutny)
  • vm: add support for timeout argument (Andrew Paprocki)

New in Node.js 0.10.5 (Apr 24, 2013)

  • uv: Upgrade to 0.10.5 (isaacs)
  • build: added support for Visual Studio 2012 (Miroslav Bajtoš)
  • http: Don't try to destroy nonexistent sockets (isaacs)
  • crypto: LazyTransform on properties, not methods (isaacs)
  • assert: put info in err.message, not err.name (Ryan Doenges)
  • dgram: fix no address bind() (Ben Noordhuis)
  • handle_wrap: fix NULL pointer dereference (Ben Noordhuis)
  • stream: Fix unshift() race conditions (isaacs)

New in Node.js 0.11.1 Beta (Apr 20, 2013)

  • V8: upgrade to 3.18.0
  • uv: Upgrade to v0.11.1
  • http: split into multiple separate modules (Timothy J Fontaine)
  • http: escape unsafe characters in request path (Ben Noordhuis)
  • url: Escape all unwise characters (isaacs)
  • build: depend on v8 postmortem-metadata if enabled (Paddy Byers)
  • etw: update prototypes to match dtrace provider (Timothy J Fontaine)
  • buffer: change output of Buffer.prototype.toJSON() (David Braun)
  • dtrace: actually use the _handle.fd value (Timothy J Fontaine)
  • dtrace: pass more arguments to probes (Dave Pacheco)
  • build: allow building with dtrace on osx (Dave Pacheco)
  • zlib: allow passing options to convenience methods (Kyle Robinson Young)

New in Node.js 0.10.4 (Apr 12, 2013)

  • uv: Upgrade to 0.10.4
  • npm: Upgrade to 1.2.18
  • v8: Avoid excessive memory growth in JSON.parse (Fedor Indutny)
  • child_process, cluster: fix O(n*m) scan of cmd string (Ben Noordhuis)
  • net: fix socket.bytesWritten Buffers support (Fedor Indutny)
  • buffer: fix offset checks (Łukasz Walukiewicz)
  • stream: call write cb before finish event (isaacs)
  • http: Support write(data, 'hex') (isaacs)
  • crypto: dh secret should be left-padded (Fedor Indutny)
  • process: expose NODE_MODULE_VERSION in process.versions (Rod Vagg)
  • crypto: fix constructor call in crypto streams (Andreas Madsen)
  • net: account for encoding in .byteLength (Fedor Indutny)
  • net: fix buffer iteration in bytesWritten (Fedor Indutny)
  • crypto: zero is not an error if writing 0 bytes (Fedor Indutny)
  • tls: Re-enable check of CN-ID in cert verification (Tobias Müllerleile)

New in Node.js 0.10.3 (Apr 4, 2013)

  • npm: Upgrade to 1.2.17
  • child_process: acknowledge sent handles (Fedor Indutny)
  • etw: update prototypes to match dtrace provider (Timothy J Fontaine)
  • dtrace: pass more arguments to probes (Dave Pacheco)
  • build: allow building with dtrace on osx (Dave Pacheco)
  • http: Remove legacy ECONNRESET workaround code (isaacs)
  • http: Ensure socket cleanup on client response end (isaacs)
  • tls: Destroy socket when encrypted side closes (isaacs)
  • repl: isSyntaxError() catches "strict mode" errors (Nathan Rajlich)
  • crypto: Pass options to ctor calls (isaacs)
  • src: tie process.versions.uv to uv_version_string() (Ben Noordhuis)

New in Node.js 0.10.2 (Mar 29, 2013)

  • npm: Upgrade to 1.2.15
  • uv: Upgrade to 0.10.3
  • tls: handle SSL_ERROR_ZERO_RETURN (Fedor Indutny)
  • tls: handle errors before calling C++ methods (Fedor Indutny)
  • tls: remove harmful unnecessary bounds checking (Marcel Laverdet)
  • crypto: make getCiphers() return non-SSL ciphers (Ben Noordhuis)
  • crypto: check randomBytes() size argument (Ben Noordhuis)
  • timers: do not calculate Timeout._when property (Alexey Kupershtokh)
  • timers: fix off-by-one ms error (Alexey Kupershtokh)
  • timers: handle signed int32 overflow in enroll() (Fedor Indutny)
  • stream: Fix stall in Transform under very specific conditions (Gil Pedersen)
  • stream: Handle late 'readable' event listeners (isaacs)
  • stream: Fix early end in Writables on zero-length writes (isaacs)
  • domain: fix domain callback from MakeCallback (Trevor Norris)
  • child_process: don't emit same handle twice (Ben Noordhuis)
  • child_process: fix sending utf-8 to child process (Ben Noordhuis)

New in Node.js 0.11.0 Beta (Mar 29, 2013)

  • V8: update to 3.17.13
  • os: use %SystemRoot% or %windir% in os.tmpdir() (Suwon Chae)
  • util: fix util.inspect() line width calculation (Marcin Kostrzewa)
  • buffer: remove _charsWritten (Trevor Norris)
  • fs: uv_[fl]stat now reports subsecond resolution (Timothy J Fontaine)
  • fs: Throw if error raised and missing callback (bnoordhuis)
  • tls: expose SSL_CTX_set_timeout via tls.createServer (Manav Rathi)
  • tls: remove harmful unnecessary bounds checking (Marcel Laverdet)
  • buffer: write ascii strings using WriteOneByte (Trevor Norris)
  • dtrace: fix generation of v8 constants on freebsd (Fedor Indutny)
  • dtrace: x64 ustack helper (Fedor Indutny)
  • readline: handle wide characters properly (Nao Iizuka)
  • repl: Use a domain to catch async errors safely (isaacs)
  • repl: emit 'reset' event when context is reset (Sami Samhuri)
  • util: custom `inspect()` method may return an Object (Nathan Rajlich)
  • console: `console.dir()` bypasses inspect() methods (Nathan Rajlich)

New in Node.js 0.10.1 (Mar 22, 2013)

  • npm: upgrade to 1.2.15
  • crypto: Improve performance of non-stream APIs (Fedor Indutny)
  • tls: always reset this.ssl.error after handling (Fedor Indutny)
  • tls: Prevent mid-stream hangs (Fedor Indutny, isaacs)
  • net: improve arbitrary tcp socket support (Ben Noordhuis)
  • net: handle 'finish' event only after 'connect' (Fedor Indutny)
  • http: Don't hot-path end() for large buffers (isaacs)
  • fs: Missing cb errors are deprecated, not a throw (isaacs)
  • fs: make write/appendFileSync correctly set file mode (Raymond Feng)
  • stream: Return self from readable.wrap (isaacs)
  • stream: Never call decoder.end() multiple times (Gil Pedersen)
  • windows: enable watching signals with process.on('SIGXYZ') (Bert Belder)
  • node: revert removal of MakeCallback (Trevor Norris)
  • node: Unwrap without aborting in handle fd getter (isaacs)

New in Node.js 0.10.0 (Mar 12, 2013)

  • npm: Upgrade to 1.2.14
  • core: Append filename properly in dlopen on windows (isaacs)
  • zlib: Manage flush flags appropriately (isaacs)
  • domains: Handle errors thrown in nested error handlers (isaacs)
  • buffer: Strip high bits when converting to ascii (Ben Noordhuis)
  • win/msi: Enable modify and repair (Bert Belder)
  • win/msi: Add feature selection for various node parts (Bert Belder)
  • win/msi: use consistent registry key paths (Bert Belder)
  • child_process: support sending dgram socket (Andreas Madsen)
  • fs: Raise EISDIR on Windows when calling fs.read/write on a dir (isaacs)
  • unix: fix strict aliasing warnings, macro-ify functions (Ben Noordhuis)
  • unix: honor UV_THREADPOOL_SIZE environment var (Ben Noordhuis)
  • win/tty: fix typo in color attributes enumeration (Bert Belder)
  • win/tty: don't touch insert mode or quick edit mode (Bert Belder)

New in Node.js 0.8.22 (Mar 7, 2013)

  • npm: Update to 1.2.14
  • cluster: propagate bind errors (Ben Noordhuis)
  • crypto: don't assert when calling Cipher#final() twice (Ben Noordhuis)
  • build, windows: disable SEH (Ben Noordhuis)

New in Node.js 0.9.12 Beta (Mar 7, 2013)

  • stream: Allow strings in Readable.push/unshift (isaacs)
  • stream: Remove bufferSize option (isaacs)
  • stream: Increase highWaterMark on large reads (isaacs)
  • stream: _write: takes an encoding argument (isaacs)
  • stream: _transform: remove output() method, provide encoding (isaacs)
  • stream: Don't require read(0) to emit 'readable' event (isaacs)
  • node: Add --throw-deprecation (isaacs)
  • http: fix multiple timeout events (Eugene Girshov)
  • http: More useful setTimeout API on server (isaacs)
  • net: use close callback, not process.nextTick (Ben Noordhuis)
  • net: Provide better error when writing after FIN (isaacs)
  • dns: Support NAPTR queries (Pavel Lang)
  • dns: fix ReferenceError in resolve() error path (Xidorn Quan)
  • child_process: handle ENOENT correctly on Windows (Scott Blomquist)
  • cluster: Rename destroy() to kill(signal=SIGTERM) (isaacs)
  • build: define nightly tag external to build system (Timothy J Fontaine)
  • build: make msi build work when spaces are present in the path (Bert Belder)
  • build: fix msi build issue with WiX 3.7/3.8 (Raymond Feng)
  • repl: make compatible with domains (Dave Olszewski)
  • events: Code cleanup and performance improvements (Trevor Norris)

New in Node.js 0.9.11 Beta (Mar 2, 2013)

  • V8: downgrade 3.14.5
  • openssl: update to 1.0.1e
  • darwin: Make process.title work properly (Ben Noordhuis)
  • fs: Support mode/flag options to read/append/writeFile (isaacs)
  • stream: _read() no longer takes a callback (isaacs)
  • stream: Add stream.unshift(chunk) (isaacs)
  • stream: remove lowWaterMark feature (isaacs)
  • net: omit superfluous 'connect' event (Ben Noordhuis)
  • build, windows: disable SEH (Ben Noordhuis)
  • core: remove errno global (Ben Noordhuis)
  • core: Remove the nextTick for running the main file (isaacs)
  • core: Mark exit() calls with status codes (isaacs)
  • core: Fix debug signal handler race condition lock (isaacs)
  • crypto: clear error stack (Ben Noordhuis)
  • test: optionally set common.PORT via env variable (Timothy J Fontaine)
  • path: Throw TypeError on non-string args to path.resolve/join (isaacs, Arianit Uka)
  • crypto: fix uninitialized memory access in openssl (Ben Noordhuis)

New in Node.js 0.8.21 (Feb 26, 2013)

  • http: Do not free the wrong parser on socket close (isaacs)
  • http: Handle hangup writes more gently (isaacs)
  • zlib: fix assert on bad input (Ben Noordhuis)
  • test: add TAP output to the test runner (Timothy J Fontaine)
  • unix: Handle EINPROGRESS from domain sockets (Ben Noordhuis)

New in Node.js 0.9.10 Beta (Feb 20, 2013)

  • V8: Upgrade to 3.15.11.15
  • npm: Upgrade to 1.2.12
  • fs: Change default WriteStream config, increase perf (isaacs)
  • process: streamlining tick callback logic (Trevor Norris)
  • stream_wrap, udp_wrap: add read-only fd property (Ben Noordhuis)
  • buffer: accept negative indices in Buffer#slice() (Ben Noordhuis)
  • tls: Cycle data when underlying socket drains (isaacs)
  • stream: read(0) should not always trigger _read(n,cb) (isaacs)
  • stream: Empty strings/buffers do not signal EOF any longer (isaacs)
  • crypto: improve cipher/decipher error messages (Ben Noordhuis)
  • net: Respect the 'readable' flag on sockets (isaacs)
  • net: don't suppress ECONNRESET (Ben Noordhuis)
  • typed arrays: copy Buffer in typed array constructor (Ben Noordhuis)
  • typed arrays: make DataView throw on non-ArrayBuffer (Ben Noordhuis)
  • windows: MSI installer enhancements (Scott Blomquist, Jim Schubert)

New in Node.js 0.8.20 (Feb 16, 2013)

  • npm: Upgrade to v1.2.11
  • http: Do not let Agent hand out destroyed sockets (isaacs)
  • http: Raise hangup error on destroyed socket write (isaacs)
  • http: protect against response splitting attacks (Bert Belder)

New in Node.js 0.9.9 Beta (Feb 8, 2013)

  • tls: port CryptoStream to streams2 (Fedor Indutny)
  • typed arrays: only share ArrayBuffer backing store (Ben Noordhuis)
  • stream: make Writable#end() accept a callback function (Nathan Rajlich)
  • buffer: optimize 'hex' handling (Ben Noordhuis)
  • dns, cares: don't filter NOTIMP, REFUSED, SERVFAIL (Ben Noordhuis)
  • readline: treat bare \r as a line ending (isaacs)
  • readline: make \r\n emit one 'line' event (Ben Noordhuis)
  • cluster: support datagram sockets (Bert Belder)
  • stream: Correct Transform class backpressure (isaacs)
  • addon: Pass module object to NODE_MODULE init function (isaacs, Rod Vagg)
  • buffer: slow buffer copy compatibility fix (Trevor Norris)
  • Add bytesWritten to tls.CryptoStream (Andy Burke)

New in Node.js 0.8.19 (Feb 7, 2013)

  • npm: Upgrade to v1.2.10
  • zlib: pass object size hint to V8 (Ben Noordhuis)
  • zlib: reduce memory consumption, release early (Ben Noordhuis)
  • buffer: slow buffer copy compatibility fix (Trevor Norris)
  • zlib: don't assert on malformed dictionary (Ben Noordhuis)
  • zlib: don't assert on missing dictionary (Ben Noordhuis)
  • windows: better ipv6 support (Bert Belder)
  • windows: add error mappings related to unsupported protocols (Bert Belder)
  • windows: map ERROR_DIRECTORY to UV_ENOENT (Bert Belder)

New in Node.js 0.9.8 Beta (Jan 25, 2013)

  • npm: Upgrade to v1.2.3
  • V8: Upgrade to 3.15.11.10
  • streams: Support objects other than Buffers (Jake Verbaten)
  • buffer: remove float write range checks (Trevor Norris)
  • http: close connection on 304/204 responses with chunked encoding (Ben Noordhuis)
  • build: fix build with dtrace support on FreeBSD (Fedor Indutny)
  • console: Support formatting options in trace() (isaacs)
  • domain: empty stack on all exceptions (Dave Olszewski)
  • unix, windows: make uv_*_bind() error codes consistent (Andrius Bentkus)
  • linux: add futimes() fallback (Ben Noordhuis)

New in Node.js 0.8.18 (Jan 19, 2013)

  • npm: Upgrade to v1.2.2
  • dns: make error message match errno (Dan Milon)
  • tls: follow RFC6125 more stricly (Fedor Indutny)
  • buffer: reject negative SlowBuffer offsets (Ben Noordhuis)
  • install: add simplejson fallback (Chris Dent)
  • http: fix "Cannot call method 'emit' of null" (Ben Noordhuis)

New in Node.js 0.9.7 Beta (Jan 19, 2013)

  • V8: Upgrade to 3.15.11.7
  • npm: Upgrade to 1.2.2
  • punycode: Upgrade to 1.2.0 (Mathias Bynens)
  • repl: make built-in modules available by default (Felix Böhm)
  • windows: add support for '_Total' perf counters (Scott Blomquist)
  • cluster: make --prof work for workers (Ben Noordhuis)
  • child_process: do not keep list of sent sockets (Fedor Indutny)
  • tls: Follow RFC6125 more strictly (Fedor Indutny)
  • buffer: floating point read/write improvements (Trevor Norris)
  • TypedArrays: Improve dataview perf without endian param (Dean McNamee)
  • module: assert require() called with a non-empty string (Felix Böhm, James Campos)
  • stdio: Set readable/writable flags properly (isaacs)
  • stream: Properly handle large reads from push-streams (isaacs)

New in Node.js 0.9.6 Beta (Jan 12, 2013)

  • V8: update to 3.15.11.5
  • node: remove ev-emul.h (Ben Noordhuis)
  • path: make basename and extname ignore trailing slashes (Bert Belder)
  • typed arrays: fix sunos signed/unsigned char issue (Ben Noordhuis)
  • child_process: Fix {stdio:'inherit'} regression (Ben Noordhuis)
  • child_process: Fix pipe() from child stdio streams (Maciej Małecki)
  • child_process: make fork() execPath configurable (Bradley Meck)
  • stream: Add readable.push(chunk) method (isaacs)
  • dtrace: x64 ustack helper (Fedor Indutny)
  • repl: fix floating point number parsing (Nirk Niggler)
  • repl: allow overriding builtins (Ben Noordhuis)
  • net: add localAddress and localPort to Socket (James Hight)
  • fs: make pool size coincide with ReadStream bufferSize (Shigeki Ohtsu)
  • typed arrays: implement load and store swizzling (Dean McNamee)
  • windows: fix perfctr crash on XP and 2003 (Scott Blomquist)
  • dgram: fix double implicit bind error (Ben Noordhuis)

New in Node.js 0.8.17 (Jan 10, 2013)

  • typed arrays: fix 32 bit size/index overflow
  • http: Improve performance of single-packet responses
  • install: fix openbsd man page location
  • http: bubble up parser errors to ClientRequest

New in Node.js 0.9.5 Beta (Dec 30, 2012)

  • assert: improve support for new execution contexts (lukebayes)
  • domain: use camelCase instead of snake_case (isaacs)
  • domain: Do not use uncaughtException handler (isaacs)
  • fs: make 'end' work with ReadStream without 'start' (Ben Noordhuis)
  • https: optimize createConnection() (Ryunosuke SATO)
  • buffer: speed up base64 encoding by 20% (Ben Noordhuis)
  • doc: Colorize API stabilitity index headers in docs (Luke Arduini)
  • net: socket.readyState corrections (bentaber)
  • http: Performance enhancements for http under streams2 (isaacs)
  • stream: fix to emit end event on http.ClientResponse (Shigeki Ohtsu)
  • stream: fix event handler leak in readstream pipe and unpipe (Andreas Madsen)
  • build: Support ./configure --tag switch (Maciej Małecki)
  • repl: don't touch `require.cache` (Nathan Rajlich)
  • node: Emit 'exit' event when exiting for an uncaught exception (isaacs)

New in Node.js 0.9.4 Beta (Dec 22, 2012)

  • streams: Update all streaming interfaces to use new classes (isaacs)
  • node: remove idle gc (Ben Noordhuis)
  • http: protect against response splitting attacks (Bert Belder)
  • fs: Raise error when null bytes detected in paths (isaacs)
  • fs: fix 'object is not a function' callback errors (Ben Noordhuis)
  • fs: add autoClose=true option to fs.createReadStream (Farid Neshat)
  • process: add getgroups(), setgroups(), initgroups() (Ben Noordhuis)
  • openssl: optimized asm code on x86 and x64 (Bert Belder)
  • crypto: fix leak in GetPeerCertificate (Fedor Indutny)
  • add systemtap support (Jan Wynholds)
  • windows: add ETW and PerfCounters support (Scott Blomquist)
  • windows: fix normalization of UNC paths (Bert Belder)
  • crypto: fix ssl error handling (Sergey Kholodilov)
  • node: remove eio-emul.h (Ben Noordhuis)
  • os: add os.endianness() function (Nathan Rajlich)
  • readline: don't emit "line" events with a trailing '\n' char (Nathan Rajlich)
  • build: add configure option to generate xcode build files (Timothy J Fontaine)
  • build: allow linking against system libuv, cares, http_parser (Stephen Gallagher)
  • typed arrays: add slice() support to ArrayBuffer (Anthony Pesch)
  • debugger: exit and kill child on SIGTERM or SIGHUP (Fedor Indutny)
  • url: url.format escapes delimiters in path and query (J. Lee Coltrane)

New in Node.js 0.8.16 (Dec 14, 2012)

  • npm: Upgrade to 1.1.69
  • fs: fix WriteStream/ReadStream fd leaks
  • crypto: fix leak in GetPeerCertificate
  • buffer: Don't double-negate numeric buffer arg
  • net: More accurate IP address validation and IPv6 dotted notation.

New in Node.js 0.8.15 (Nov 27, 2012)

  • npm: Upgrade to 1.1.66
  • windows: map WSAESHUTDOWN to UV_EPIPE
  • windows: map ERROR_GEN_FAILURE to UV_EIO
  • domains: don't crash if domain is set to null
  • windows: fix the x64 debug build
  • net, tls: fix connect() resource leak

New in Node.js 0.8.14 (Oct 26, 2012)

  • events: Don't clobber pre-existing _events obj in EE ctor (isaacs)
  • V8: Upgrade to 3.11.10.25
  • npm: Upgrade to 1.1.65
  • url: parse hostnames that start with - or _ (Ben Noordhuis)
  • repl: Fix Windows 8 terminal issue (Bert Belder)
  • typed arrays: use signed char for signed int8s (Aaron Jacobs)
  • crypto: fix bugs in DiffieHellman (Ben Noordhuis)
  • configure: turn on VFPv3 on ARMv7 (Ben Noordhuis)
  • Re-enable OpenSSL UI for entering passphrases via tty (Ben Noordhuis)
  • repl: ensure each REPL instance gets its own "context" (Nathan Rajlich)

New in Node.js 0.9.3 Beta (Oct 25, 2012)

  • V8: Upgrade to 3.13.7.4
  • crypto: Default to buffers instead of binary strings (isaacs, Fedor Indutny)
  • crypto: add getHashes() and getCiphers() (Ben Noordhuis)
  • unix: add custom thread pool, remove libeio (Ben Noordhuis)
  • util: make inspect() accept an "options" argument (Nathan Rajlich)
  • https: fix renegotation attack protection (Ben Noordhuis)
  • cluster: make 'listening' handler see actual port (Aaditya Bhatia)
  • windows: use USERPROFILE to get the user's home dir (Bert Belder)
  • path: add platform specific path delimiter (Paul Serby)
  • http: add response.headersSent property (Pavel Lang)
  • child_process: make .fork()'d child auto-exit (Ben Noordhuis)
  • events: add 'removeListener' event (Ben Noordhuis)
  • string_decoder: Add 'end' method, do base64 properly (isaacs)
  • buffer: include encoding value in exception when invalid (Ricky Ng-Adam)
  • http: make http.ServerResponse no longer emit 'end' (isaacs)
  • streams: fix pipe is destructed by 'end' from destination (koichik)

New in Node.js 0.8.12 (Oct 15, 2012)

  • npm: Upgrade to 1.1.63
  • crypto: Reduce stability index to 2-Unstable (isaacs)
  • buffer: report proper retained size in profiler (Ben Noordhuis)
  • buffer: fix byteLength with UTF-16LE (koichik)
  • repl: make "end of input" JSON.parse() errors throw in the REPL (Nathan Rajlich)
  • repl: make invalid RegExp modifiers throw in the REPL (Nathan Rajlich)
  • http: handle multiple Proxy-Authenticate values (Willi Eggeling)

New in Node.js 0.8.11 (Sep 28, 2012)

  • fs: Fix stat() size reporting for large files (Ben Noordhuis)

New in Node.js 0.8.10 (Sep 26, 2012)

  • npm: Upgrade to 1.1.62
  • repl: make invalid RegExps throw in the REPL (Nathan Rajlich)
  • v8: loosen artificial mmap constraint (Bryan Cantrill)
  • process: fix setuid() and setgid() error reporting (Ben Noordhuis)
  • domain: Properly exit() on domain disposal (isaacs)
  • fs: fix watchFile() missing deletion events (Ben Noordhuis)
  • fs: fix assert in fs.watch() (Ben Noordhuis)
  • fs: don't segfault on deeply recursive stat() (Ben Noordhuis)
  • http: Remove timeout handler when data arrives (Frédéric Germain)
  • http: make the client "res" object gets the same domain as "req" (Nathan Rajlich)
  • windows: don't blow up when an invalid FD is used (Bert Belder)
  • unix: map EDQUOT to UV_ENOSPC (Charlie McConnell)
  • linux: improve /proc/cpuinfo parser (Ben Noordhuis)
  • win/tty: reset background brightness when color is set to default (Bert Belder)
  • unix: put child process stdio fds in blocking mode (Ben Noordhuis)
  • unix: fix EMFILE busy loop (Ben Noordhuis)
  • sunos: don't set TCP_KEEPALIVE (Ben Noordhuis)
  • tls: Use slab allocator for memory management (Fedor Indutny)
  • openssl: Use optimized assembly code for x86 and x64 (Bert Belder)

New in Node.js 0.9.2 Beta (Sep 18, 2012)

  • http_parser: upgrade to ad3b631
  • openssl: upgrade 1.0.1c
  • darwin: use FSEvents to watch directory changes (Fedor Indutny)
  • unix: support missing API on NetBSD (Shigeki Ohtsu)
  • unix: fix EMFILE busy loop (Ben Noordhuis)
  • windows: un-break writable tty handles (Bert Belder)
  • windows: map WSAESHUTDOWN to UV_EPIPE (Bert Belder)
  • windows: make spawn with custom environment work again (Bert Belder)
  • windows: map ERROR_DIRECTORY to UV_ENOENT (Bert Belder)
  • tls, https: validate server certificate by default (Ben Noordhuis)
  • tls, https: throw exception on missing key/cert (Ben Noordhuis)
  • tls: async session storage (Fedor Indutny)
  • installer: don't install header files (Ben Noordhuis)
  • buffer: implement Buffer.prototype.toJSON() (Nathan Rajlich)
  • buffer: added support for writing NaN and Infinity (koichik)
  • http: make http.ServerResponse emit 'end' (Ben Noordhuis)
  • build: ./configure --ninja (Ben Noordhuis, Timothy J Fontaine)
  • installer: fix --without-npm (Ben Noordhuis)
  • cli: make -p equivalent to -pe (Ben Noordhuis)
  • url: Go much faster by using Url class (isaacs)

New in Node.js 0.8.9 (Sep 12, 2012)

  • v8: upgrade to 3.11.10.22
  • GYP: upgrade to r1477
  • npm: Upgrade to 1.1.61
  • npm: Don't create world-writable files (isaacs)
  • windows: fix single-accept mode for shared server sockets (Bert Belder)
  • windows: fix uninitialized memory access in uv_update_time() (Bert Belder)
  • windows: don't throw when a signal handler is attached (Bert Belder)
  • unix: fix memory leak in udp (Ben Noordhuis)
  • unix: map errno ESPIPE (Ben Noordhuis)
  • unix, windows: fix memory corruption in fs-poll.c (Ben Noordhuis)
  • sunos: fix os.cpus() on x86_64 (Ben Noordhuis)
  • child process: fix processes with IPC channel don't emit 'close' (Bert Belder)
  • build: add a "--dest-os" option to force a gyp "flavor" (Nathan Rajlich)
  • build: set process.platform to "sunos" on SunOS (Nathan Rajlich)
  • build: fix make -j fails after make clean (Bearice Ren)
  • build: fix openssl configuration for "arm" builds (Nathan Rajlich)
  • tls: support unix domain socket/named pipe in tls.connect (Shigeki Ohtsu)
  • https: make https.get() accept a URL (koichik)
  • http: respect HTTP/1.0 TE header (Ben Noordhuis)
  • crypto, tls: Domainify setSNICallback, pbkdf2, randomBytes (Ben Noordhuis)
  • stream.pipe: Don't call destroy() unless it's a function (isaacs)

New in Node.js 0.9.1 Beta (Aug 29, 2012)

  • buffer: Add Buffer.isEncoding(enc) to test for valid encoding values (isaacs)
  • Raise UV_ECANCELED on premature close. (Ben Noordhuis)
  • Remove c-ares from libuv, move to a top-level node dependency (Bert Belder)
  • ref/unref for all HandleWraps, timers, servers, and sockets (Timothy J Fontaine)
  • addon: remove node-waf, superseded by node-gyp (Ben Noordhuis)
  • child_process: emit error on exec failure (Ben Noordhuis)
  • cluster: do not use internal server API (Andreas Madsen)
  • constants: add O_DIRECT (Ian Babrou)
  • crypto: add sync interface to crypto.pbkdf2() (Ben Noordhuis)
  • darwin: emulate fdatasync() (Fedor Indutny)
  • dgram: make .bind() always asynchronous (Ben Noordhuis)
  • events: Make emitter.listeners() side-effect free (isaacs, Joe Andaverde)
  • fs: Throw early on invalid encoding args (isaacs)
  • fs: fix naming of truncate/ftruncate functions (isaacs)
  • http: bubble up parser errors to ClientRequest (Brian White)
  • linux: improve cpuinfo parser on ARM and MIPS (Ben Noordhuis)
  • net: add support for IPv6 addresses ending in :: (Josh Erickson)
  • net: support Server.listen(Pipe) (Andreas Madsen)
  • node: don't scan add-on for "init" symbol (Ben Noordhuis)
  • remove process.uvCounters() (Ben Noordhuis)
  • repl: console writes to repl rather than process stdio (Nathan Rajlich)
  • timers: implement setImmediate (Timothy J Fontaine)
  • tls: fix segfault in pummel/test-tls-ci-reneg-attack (Ben Noordhuis)
  • tools: Move gyp addon tools to node-gyp (Nathan Rajlich)
  • unix: preliminary signal handler support (Ben Noordhuis)
  • unix: remove dependency on ev_child (Ben Noordhuis)
  • unix: work around darwin bug, don't poll() on pipe (Fedor Indutny)
  • util: Formally deprecate util.pump() (Ben Noordhuis)
  • windows: make active and closing handle state independent (Bert Belder)
  • windows: report spawn errors to the exit callback (Bert Belder)
  • windows: signal handling support with uv_signal_t (Bert Belder)

New in Node.js 0.8.8 (Aug 23, 2012)

  • V8: upgrade to 3.11.10.19
  • npm: upgrade to 1.1.59
  • windows: fix uninitialized memory access in uv_update_time() (Bert Belder)
  • unix, windows: fix memory corruption in fs-poll.c (Ben Noordhuis)
  • unix: fix integer overflow in uv_hrtime (Tim Holy)
  • sunos: fix uv_cpu_info() on x86_64 (Ben Noordhuis)
  • tls: update default cipher list (Ben Noordhuis)
  • unix: Fix llvm and older gcc duplicate symbol warnings (Bert Belder)
  • fs: fix use after free in stat watcher (Ben Noordhuis)
  • build: Fix using manually compiled gcc on OS X (Nathan Rajlich)
  • windows: make junctions work again (Bert Belder)

New in Node.js 0.8.7 (Aug 16, 2012)

  • npm: Upgrade to 1.1.49
  • website: download page (Golo Roden)
  • crypto: fix uninitialized memory access in openssl (Ben Noordhuis)
  • buffer, crypto: fix buffer decoding (Ben Noordhuis)
  • build: compile with -fno-tree-vrp when gcc >= 4.0 (Ben Noordhuis)
  • tls: handle multiple CN fields when verifying cert (Ben Noordhuis)
  • doc: remove unused util from child_process (Kyle Robinson Young)
  • build: rework -fvisibility=hidden detection (Ben Noordhuis)
  • windows: don't duplicate invalid stdio handles (Bert Belder)
  • windows: fix typos in process-stdio.c (Bert Belder)

New in Node.js 0.8.6 (Aug 8, 2012)

  • npm: Upgrade to v1.1.48
  • Add 'make binary' to build binary tarballs for all Unixes (Nathan Rajlich)
  • zlib: Emit 'close' on destroy(). (Dominic Tarr)
  • child_process: Fix stdout=null when stdio=['pipe'] (Tyler Neylon)
  • installer: prevent ETXTBSY errors (Ben Noordhuis)
  • installer: honor --without-npm, default install path (Ben Noordhuis)
  • net: make pause work with connecting sockets (Bert Belder)
  • installer: fix cross-compile installs (Ben Noordhuis)
  • net: fix .listen({fd:0}) (Ben Noordhuis)
  • windows: map WSANO_DATA to UV_ENOENT (Bert Belder)

New in Node.js 0.8.5 (Aug 3, 2012)

  • node: tag Encode and friends NODE_EXTERN (Ben Noordhuis)
  • fs: fix ReadStream / WriteStream missing callback (Gil Pedersen)
  • fs: fix readFileSync("/proc/cpuinfo") regression (Ben Noordhuis)
  • installer: don't assume bash is installed (Ben Noordhuis)
  • Report errors properly from --eval and stdin (isaacs)
  • assert: fix throws() throws an error without message property (koichik)
  • cluster: fix libuv assert in net.listen() (Ben Noordhuis)
  • build: always link sunos builds with libumem (Trent Mick)
  • build: improve armv7 / hard-float detection (Adam Malcontenti-Wilson)
  • https: Use host header as effective servername (isaacs)
  • sunos: work around OS bug to prevent fs.watch() from spinning (Bryan Cantrill)
  • linux: fix 'two watchers, one path' segfault (Ben Noordhuis)
  • windows: fix memory leaks in many fs functions (Bert Belder)
  • windows: don't allow directories to be opened for writing/appending (Bert Belder)
  • windows: make fork() work even when not all stdio handles are valid (Bert Belder)
  • windows: make unlink() not remove mount points, and improve performance (Bert Belder)
  • build: Sign pkg installer for OS X (isaacs)

New in Node.js 0.8.4 (Jul 26, 2012)

  • V8: Upgrade to 3.11.10.17
  • npm: Upgrade to 1.1.45
  • net: fix Socket({ fd: 42 }) api (Ben Noordhuis)
  • readline: Remove event listeners on close (isaacs)
  • windows: correctly prep long path for fs.exists(Sync) (Bert Belder)
  • debugger: wake up the event loop when a debugger command is dispatched (Peter Rybin)
  • tls: verify server's identity (Fedor Indutny)
  • net: ignore socket.setTimeout(Infinity or NaN) (Fedor Indutny)

New in Node.js 0.9.0 Beta (Jul 21, 2012)

  • punycode: update to v1.1.1 (Mathias Bynens)
  • c-ares: upgrade to 1.9.0 (Saúl Ibarra Corretgé)
  • dns: ignore rogue DNS servers reported by windows (Saúl Ibarra Corretgé)
  • unix: speed up uv_async_send() (Ben Noordhuis)
  • darwin: get cpu model correctly on mac (Xidorn Quan)
  • nextTick: Handle tick callbacks before any other I/O (isaacs)
  • Enable color customization of `util.inspect` (Pavel Lang)
  • tls: Speed and memory improvements (Fedor Indutny)
  • readline: Use one history item for reentered line (Vladimir Beloborodov)
  • Fix #3521 Make process.env more like a regular Object (isaacs)

New in Node.js 0.8.3 (Jul 20, 2012)

  • V8: upgrade to 3.11.10.15
  • npm: Upgrade to 1.1.43
  • net: fix net.Server.listen({fd:x}) error reporting (Ben Noordhuis)
  • net: fix bogus errno reporting (Ben Noordhuis)
  • build: Move npm shebang logic into an npm script (isaacs)
  • build: fix add-on loading on freebsd (Ben Noordhuis)
  • build: disable unsafe optimizations (Ben Noordhuis)
  • build: fix spurious mksnapshot crashes for good (Ben Noordhuis)
  • build: speed up genv8constants (Dave Pacheco)
  • fs: make unwatchFile() remove a specific listener (Ben Noordhuis)
  • domain: Remove first arg from intercepted fn (Toshihiro Nakamura)
  • domain: Fix memory leak on error (isaacs)
  • events: Fix memory leak from removeAllListeners (Nathan Rajlich)
  • zlib: Fix memory leak in Unzip class. (isaacs)
  • crypto: Fix memory leak in DecipherUpdate() (Ben Noordhuis)

New in Node.js 0.8.2 (Jul 11, 2012)

  • npm: Upgrade to 1.1.36
  • readline: don't use Function#call() (Nathan Rajlich)
  • Code cleanup to pass 'use strict' (Jonas Westerlund)
  • module: add filename to require() json errors (TJ Holowaychuk)
  • readline: fix for unicode prompts (Tim Macfarlane)
  • timers: fix handling of large timeouts (Ben Noordhuis)
  • repl: fix passing an empty line inserting "undefined" into the buffer (Nathan Rajlich)
  • repl: fix crashes when buffering command (Maciej Małecki)
  • build: rename strict_aliasing to node_no_strict_aliasing (Ben Noordhuis)
  • build: disable -fstrict-aliasing for any gcc < 4.6.0 (Ben Noordhuis)
  • build: detect cc version with -dumpversion (Ben Noordhuis)
  • build: handle output of localized gcc or clang (Ben Noordhuis)
  • unix: fix memory corruption in freebsd.c (Ben Noordhuis)
  • unix: fix 'zero handles, one request' busy loop (Ben Noordhuis)
  • unix: fix busy loop on unexpected tcp message (Ben Noordhuis)
  • unix: fix EINPROGRESS busy loop (Ben Noordhuis

New in Node.js 0.8.1 (Jul 4, 2012)

  • V8: upgrade to v3.11.10.12
  • npm: upgrade to v1.1.33
  • Support for parallel use of the cache folder
  • Retry on registry timeouts or network failures (Trent Mick)
  • Reduce 'engines' failures to a warning
  • Use new zsh completion if aviailable (Jeremy Cantrell)
  • Fix #3577 Un-break require('sys')
  • util: speed up formatting of large arrays/objects (Ben Noordhuis)
  • windows: make fs.realpath(Sync) work with UNC paths (Bert Belder)
  • build: fix --shared-v8 option (Ben Noordhuis)
  • doc: `detached` is a boolean (Andreas Madsen)
  • build: use proper python interpreter (Ben Noordhuis)
  • build: expand ~ in `./configure --prefix=~/a/b/c` (Ben Noordhuis)
  • build: handle CC env var with spaces (Gabriel de Perthuis)
  • build: fix V8 build when compiling with gcc 4.5 (Ben Noordhuis)
  • build: fix --shared-v8 option (Ben Noordhuis)
  • windows msi: Fix icon issue which caused huge file size (Bert Belder)
  • windows: better (f)utimes and (f)stat (Bert Belder)

New in Node.js 0.7.9 Beta (May 30, 2012)

  • Upgrade V8 to 3.11.1
  • Upgrade npm to 1.1.23
  • uv: rework reference counting scheme
  • uv: add interface for joining external event loops
  • repl, readline: Handle Ctrl+Z and SIGCONT better
  • fs: 64bit offsets for fs calls
  • fs: add sync open flags 'rs' and 'rs+'
  • windows: enable creating directory junctions with fs.symlink
  • windows: fix fs.lstat to properly detect symlinks.
  • Fix #3270 Escape url.parse delims
  • http: make http.get() accept a URL
  • Cleanup vm module memory leakage
  • Optimize writing strings with Socket.write
  • add support for CESU-8 and UTF-16LE encodings
  • path: add path.sep to get the path separator.
  • net, http: add backlog parameter to .listen()
  • debugger: support mirroring Date objects
  • addon: add AtExit() function
  • net: signal localAddress bind failure in connect
  • util: handle non-string return value in .inspect()

New in Node.js 0.7.8 Beta (May 10, 2012)

  • Upgrade V8 to 3.9.24.9
  • Upgrade OpenSSL to 1.0.0f
  • Upgrade npm to 1.1.18
  • Show licenses in Binary installers
  • Domains
  • readline: rename "end" to "close"
  • tcp: make getsockname() return address family as string
  • http, https: fix .setTimeout()
  • os: add cross platform EOL character
  • typed arrays: unexport SizeOfArrayElementForType()
  • net: honor 'enable' flag in .setNoDelay()
  • child_process: emit error when .kill fails
  • gyp: fix 'argument list too long' build error
  • fs.WriteStream: Handle modifications to fs.open
  • repl, readline: Handle newlines better
  • build: target OSX 10.5 when building on darwin
  • Fix #3052 Handle errors properly in zlib
  • build: add support for DTrace and postmortem
  • core: add reusable Slab allocator

New in Node.js 0.6.17 (May 10, 2012)

  • Upgrade npm to 1.1.21
  • uv: Add support for EROFS errors
  • uv: Add support for EIO and ENOSPC errors
  • windows: Add support for EXDEV errors
  • http: Fix client memory leaks
  • fs: fix file descriptor leak in sync functions
  • fs: fix ReadStream / WriteStream double close bug

New in Node.js 0.6.0 (Nov 8, 2011)

  • print undefined on undefined values in REPL (Nathan Rajlich)
  • doc improvements (koichik, seebees, bnoordhuis, Maciej Małecki, Jacob Kragh)
  • support native addon loading in windows (Bert Belder)
  • rename getNetworkInterfaces() to networkInterfaces() (bnoordhuis)
  • add pending accepts knob for windows (igorzi)
  • http.request(url.parse(x)) (seebees)
  • #1929 zlib Respond to 'resume' events properly (isaacs)
  • stream.pipe: Remove resume and pause events
  • test fixes for windows (igorzi)
  • build system improvements (bnoordhuis)
  • #1936 tls: does not emit 'end' from EncryptedStream (koichik)
  • #758 tls: add address(), remoteAddress/remotePort
  • #1399 http: emit Error object after .abort() (bnoordhuis)
  • #1999 fs: make mkdir() default to 0777 permissions (bnoordhuis)
  • #2001 fix pipe error codes
  • #2002 Socket.write should reset timeout timer
  • stdout and stderr are blocking when associated with file too.
  • remote debugger support on windows (Bert Belder)
  • convenience methods for zlib (Matt Robenolt)
  • process.kill support on windows (igorzi)
  • process.uptime() support on windows (igorzi)
  • Return IPv4 addresses before IPv6 addresses from getaddrinfo
  • util.inspect improvements (Nathan Rajlich)
  • cluster module api changes
  • Downgrade V8 to 3.6.6.6

New in Node.js 0.5.1 (Jul 15, 2011)

  • Fix os.totalmem on FreeBSD amd64
  • IDNA and Punycode support in url.parse
  • Export $CC and $CXX to uv and V8's build systems
  • Include pthread-win32 static libraries in build
  • Fix fs can't handle large file on 64bit platform
  • Make require a public member of module
  • Stream.pipe returns the destination
  • Addons should not -DEV_MULTIPLICITY=0
  • libuv backend improvements
  • Upgrade V8 to 3.4.10