Node v19.9.0 (Current)

By Rafael Gonzaga,

Notable Changes

Tracing Channel in diagnostic_channel

TracingChannel adds a new, high-performance channel to publish tracing data about the timing and purpose of function executions.

Contributed by Stephen Belanger in #44943

New URL.canParse API

A new API was added to the URL. URL.canParse checks if an input with an optional base value can be parsed correctly according to WHATWG URL specification.

const isValid = URL.canParse('/foo', 'https://example.org/'); // true
const isNotValid = URL.canParse('/foo'); // false

Contributed by Khafra in #47179

Other notable changes

events:

Commits

  • [2cea7d8141] - benchmark: fix invalid requirementsURL (Deokjin Kim) #47378
  • [6a4076a188] - benchmark: lower URL.canParse runs (Khafra) #47351
  • [23a69d9279] - buffer: fix blob range error with many chunks (Khafra) #47320
  • [e3d98c3e7a] - buffer: use private properties for brand checks in File (Khafra) #47154
  • [9dc6aef98d] - build: bump github/codeql-action from 2.2.6 to 2.2.9 (dependabot[bot]) #47366
  • [910d2967f1] - build: update stale action from v7 to v8 (Rich Trott) #47357
  • [666df20ad9] - build: remove Python pip --no-user option (Christian Clauss) #47372
  • [3970537bb4] - build: avoid usage of pipes library (Mohammed Keyvanzadeh) #47271
  • [254a03b2eb] - crypto: unify validation of checkPrime checks (Tobias Nießen) #47165
  • [8e1e9edc57] - deps: update timezone to 2023c (Node.js GitHub Bot) #47302
  • [30c043c2b9] - deps: update timezone to 2023b (Node.js GitHub Bot) #47256
  • [40be01bc9c] - deps: update simdutf to 3.2.3 (Node.js GitHub Bot) #47331
  • [4b09222569] - deps: upgrade npm to 9.6.3 (npm team) #47325
  • [2a6c23ea5e] - deps: update corepack to 0.17.1 (Node.js GitHub Bot) #47156
  • [06b718363d] - deps: V8: cherry-pick 3e4952cb2a59 (Richard Lau) #47236
  • [7e24498d81] - deps: upgrade npm to 9.6.2 (npm team) #47108
  • [7a4beaa182] - deps: V8: cherry-pick 215ccd593edb (Joyee Cheung) #47212
  • [8a69929f23] - deps: V8: cherry-pick 975ff4dbfd1b (Debadree Chatterjee) #47209
  • [10569de53f] - deps: cherry-pick win/arm64/clang fixes (Cheng Zhao) #47011
  • [ff6070eb1d] - deps: V8: cherry-pick cb30b8e17429 (Darshan Sen) #47307
  • [0bbce034f9] - doc: add a note about os.cpus() returning an empty list (codedokode) #47363
  • [f8511e0b27] - doc: clarify reports are only evaluated on active versions (Rafael Gonzaga) #47341
  • [863b4d9c5b] - doc: remove Vladimir de Turckheim from Security release stewards (Vladimir de Turckheim) #47318
  • [2192b5b163] - doc: add importing util to example of `process.report.getReport' (Deokjin Kim) #47298
  • [1c21fbfa9a] - doc: vm.SourceTextModule() without context option (Axel Kittenberger) #47295
  • [89445fbea9] - doc: make win arm64 tier 2 platform (Stefan Stojanovic) #47233
  • [296577a549] - doc: document process for sharing project news (Michael Dawson) #47189
  • [e29a1462c7] - doc: revise example of assert.CallTracker (Deokjin Kim) #47252
  • [bac893adbe] - doc: fix typo in SECURITY.md (Rich Trott) #47282
  • [0949f238d1] - doc: use serial comma in cli docs (Tobias Nießen) #47262
  • [71246247a9] - doc: improve example for Error.captureStackTrace() (Julian Dax) #46886
  • [0b2ba441b2] - doc: clarify http error events after calling destroy() (Zach Bjornson) #46903
  • [a21459e0d5] - doc: update output of example in AbortController (Deokjin Kim) #47227
  • [7a2090c14c] - doc: drop one-week branch sync on major releases (Rafael Gonzaga) #47149
  • [eb4de0043d] - doc: fix grammar in the collaborator guide (Mohammed Keyvanzadeh) #47245
  • [908798ae19] - doc: update stream.reduce concurrency note (Raz Luvaton) #47166
  • [36c118bc92] - doc: remove use of DEFAULT_ENCODING in PBKDF2 docs (Tobias Nießen) #47181
  • [7ec87fd5ce] - doc: fix typos in async_context.md (Shubham Sharma) #47155
  • [a03aaba996] - doc: update collaborator guide to reflect TSC changes (Rich Trott) #47126
  • [c45a6977ec] - doc: clarify that fs.create{Read,Write}Stream support AbortSignal (Antoine du Hamel) #47122
  • [82c7757177] - doc: improve documentation for util.types.isNativeError() (Julian Dax) #46840
  • [8f9b9c17d5] - doc: rename the startup performance initiative to startup snapshot (#47111) (Joyee Cheung)
  • [c08995e897] - doc: indicate that name is no longer an optional argument (Daniel Roe) #47102
  • [316d626e61] - doc: fix "maintaining dependencies" heading typos (Keyhan Vakil) #47082
  • [a4b1a7761f] - esm: skip file: URL conversion to path when possible (Antoine du Hamel) #46305
  • [c5cd6b7f3b] - (SEMVER-MINOR) events: add getMaxListeners method (Khafra) #47039
  • [2c2b07ce5f] - fs: invalidate blob created from empty file when written to (Debadree Chatterjee) #47199
  • [e33dfce401] - inspector: log response and requests in the inspector for debugging (Joyee Cheung) #46941
  • [f6ec81dc05] - inspector: fix session.disconnect crash (theanarkh) #46942
  • [a738164fed] - lib: define Event.isTrusted in the prototype (Santiago Gimeno) #46974
  • [7d37dcdd9a] - (SEMVER-MINOR) lib: add tracing channel to diagnostics_channel (Stephen Belanger) #44943
  • [16d3dfa0aa] - meta: fix notable-change comment label url (Filip Skokan) #47300
  • [2c95f6e18b] - meta: clarify the threat model to explain the JSON.parse case (Matteo Collina) #47276
  • [22b9acdbf8] - meta: update link to collaborators discussion page (Michaël Zasso) #47211
  • [dc024d930a] - meta: automate description requests when notable change label is added (Danielle Adams) #47078
  • [54195357f3] - meta: move TSC voting member(s) to regular member(s) (Node.js GitHub Bot) #47180
  • [a3bffbaa11] - meta: move TSC voting member to regular membership (Node.js GitHub Bot) #46985
  • [d2a6aa6ecd] - meta: update GOVERNANCE.md to reflect TSC charter changes (Rich Trott) #47126
  • [b0aad345bf] - meta: ask expected behavior reason in bug template (Ben Noordhuis) #47049
  • [c03e79b141] - (SEMVER-MINOR) msi: migrate to WiX4 (Stefan Stojanovic) #45943
  • [ca981be2b9] - (SEMVER-MINOR) node-api: deprecate napi_module_register (Vladimir Morozov) #46319
  • [77f7200cce] - node-api: extend type-tagging to externals (Gabriel Schulhof) #47141
  • [55f3d215b8] - node-api: document node-api shutdown finalization (Chengzhong Wu) #45903
  • [b3fe2ba59b] - node-api: verify cleanup hooks order (Chengzhong Wu) #46692
  • [d6a12328a6] - repl: preserve preview on ESCAPE key press (Xuguang Mei) #46878
  • [33b0906640] - sea: fix memory leak detected by asan (Darshan Sen) #47309
  • [069515153f] - src: remove usage of std::shared_ptr<T>::unique() (Darshan Sen) #47315
  • [4405fc879a] - src: use stricter compile-time guidance (Tobias Nießen) #46509
  • [bbde68e5de] - src: remove unused variable in crypto_x509.cc (Michaël Zasso) #47344
  • [7a80312e19] - src: don't reset embeder signal handlers (Dmitry Vyukov) #47188
  • [d0a5e7e342] - src: fix some recently introduced coverity issues (Michael Dawson) #47240
  • [0a4ff2f9a0] - src: replace impossible THROW with CHECK (Tobias Nießen) #47168
  • [2fd0f79963] - src: fix duplication of externalized builtin code (Keyhan Vakil) #47079
  • [36a026bf44] - src: remove dead comments about return_code_cache (Keyhan Vakil) #47083
  • [aefe26692c] - src: remove SSL_CTX_get_tlsext_ticket_keys guards (Tobias Nießen) #47068
  • [90f4e16350] - src: fix clang 14 linker error (Keyhan Vakil) #47057
  • [b0809a73da] - src,http2: ensure cleanup if a frame is not sent (ywave620) #47244
  • [1fc62c7b35] - (SEMVER-MINOR) stream: add setter & getter for default highWaterMark (#46929) (Robert Nagy) #46929
  • [b8c6ceddd5] - stream: expose stream symbols (Robert Nagy) #45671
  • [f37825660c] - stream: dont wait for next item in take when finished (Raz Luvaton) #47132
  • [8eceaaeb4d] - test: fix flaky test-watch-mode-inspect (Moshe Atlow) #47403
  • [db95ed0b1b] - test: move debugger tests with --port=0 to parallel (Joyee Cheung) #47274
  • [041885ebd0] - test: use --port=0 in debugger tests that do not have to work on 9229 (Joyee Cheung) #47274
  • [130420b9e1] - test: run doctool tests in parallel (Joyee Cheung) #47273
  • [4b4336c34e] - test: verify tracePromise does not do runStores (Stephen Belanger) #47349
  • [54261f3294] - test: run WPT files in parallel again (Filip Skokan) #47283
  • [e2eb0543be] - test: update wasm/jsapi WPT (Michaël Zasso) #47210
  • [d341d0389f] - test: skip test-wasm-web-api on ARM (Michaël Zasso) #47299
  • [567573b16a] - test: skip instantiateStreaming-bad-imports WPT (Michaël Zasso) #47292
  • [45e7b10287] - test: fix 'checks' validation test for checkPrime (Tobias Nießen) #47139
  • [5749dfae70] - test: update URL web-platform-tests (Yagiz Nizipli) #47135
  • [49981b93d2] - test: reduce flakiness of test-http-remove-header-stays-removed.js (Debadree Chatterjee) #46855
  • [6772aa652a] - test: fix test-child-process-exec-cwd (Stefan Stojanovic) #47235
  • [41a69e772b] - test: skip broken tests win arm64 (Stefan Stojanovic) #47020
  • [7bcfd18f2c] - test: mark test-http-max-sockets as flaky on win32 (Tobias Nießen) #47134
  • [b96808b3e2] - test,crypto: update WebCryptoAPI WPT (Filip Skokan) #47222
  • [65955f1e46] - test,crypto: update WebCryptoAPI WPT (Filip Skokan) #47131
  • [bc6511a243] - test_runner: color errors only when colors are available (Moshe Atlow) #47394
  • [463361e625] - test_runner: hide failing tests title when all tests pass (Moshe Atlow) #47370
  • [eb837ce80d] - test_runner: stringify AssertError expected and actual (Moshe Atlow) #47088
  • [6b87f29000] - test_runner: add code coverage support to spec reporter (Pulkit Gupta) #46674
  • [bd4697a2a3] - test_runner: expose reporter for use in run api (Chemi Atlow) #47238
  • [3e7f8e8482] - test_runner: report failing tests after summary (HinataKah0) #47164
  • [4530582767] - test_runner: count nested tests (Moshe Atlow) #47094
  • [5a43586554] - test_runner: accept \x1b as a escape symbol (Debadree Chatterjee) #47050
  • [a5ebc896f1] - test_runner: support defining test reporter in NODE_OPTIONS (Steve Herzog) #46688
  • [a65fe5c29a] - tools: fix update-openssl.yml compare version (Marco Ippolito) #47384
  • [760e13c58d] - tools: ensure failed daily wpt run still generates a report (Filip Skokan) #47376
  • [9c975f79f0] - tools: use ref_name to get branch pushed on (Debadree Chatterjee) #47358
  • [b1d6a15028] - tools: add a at here tag for slack messages (Debadree Chatterjee) #47358
  • [c340de6d51] - tools: disable Codecov commit statuses (Michaël Zasso) #47306
  • [034082f0e5] - tools: update eslint to 8.37.0 (Node.js GitHub Bot) #47333
  • [03b6650c81] - tools: fix duration_ms to be milliseconds (Moshe Atlow) #44490
  • [30c667ec3a] - tools: automate brotli update (Marco Ippolito) #47205
  • [83791e5459] - tools: fix typo in nghttp2 path (Marco Ippolito) #47330
  • [53e8dad64a] - tools: add scorecard workflow (Mateo Nunez) #47254
  • [2499677d0b] - tools: pin actions by hash for auto-start-ci.yml (Gabriela Gutierrez) #46820
  • [98f64ee724] - tools: standardize base64 update (Marco Ippolito) #47201
  • [c1ef1fde8f] - tools: update codecov branch (Rich Trott) #47285
  • [9ecf2a4144] - tools: update lint-md-dependencies to [email protected] (Node.js GitHub Bot) #47255
  • [def7e3d908] - tools: upgrade Windows digital signature to SHA256 (Tobias Nießen) #47206
  • [0b78ac53ad] - tools: standardize update-llhttp.sh (Marco Ippolito) #47198
  • [deb80b1c46] - tools: add button to copy code example to clipboard (jakecastelli) #46928
  • [6dca79f1ce] - tools: standardize update-nghttp2.sh (Marco Ippolito) #47197
  • [0c613c9347] - tools: fix Slack notification action (Antoine du Hamel) #47237
  • [3f49da5113] - tools: notify on Slack when invalid commit lands (Antoine du Hamel) #47178
  • [337123d657] - tools: update daily wpt actions summary (Filip Skokan) #47138
  • [78ce8d3469] - tools: allow test tap output to include unicode characters (Moshe Atlow) #47175
  • [8850dacc88] - tools: update lint-md-dependencies to [email protected] (Node.js GitHub Bot) #47045
  • [d1ca5b6d47] - tools: align update-ada.sh with other scripts (Tony Gorez) #47044
  • [b58d52301e] - tools: update eslint to 8.36.0 (Node.js GitHub Bot) #47046
  • [d78bef8a1f] - tools,meta: update README and tools to reflect changes in TSC charter (Rich Trott) #47126
  • [d243115f41] - url: improve URLSearchParams creation performance (Yagiz Nizipli) #47190
  • [461ef04f87] - url: add pending-deprecation to url.parse() (Yagiz Nizipli) #47203
  • [ef62e5a59e] - (SEMVER-MINOR) url: implement URL.canParse (Khafra) #47179
  • [0b565e8f62] - url: allow extension of user provided URL objects (Antoine du Hamel) #46989
  • [cbb362736b] - util: fix inspecting error with a throwing getter for cause (Antoine du Hamel) #47163
  • [9537672511] - vm: properly handle defining props on any value (Nicolas DUBIEN) #46615
  • [75669e98bf] - watch: fix watch path with equals (Moshe Atlow) #47369

Windows 32-bit Installer: https://nodejs.org/dist/v19.9.0/node-v19.9.0-x86.msi
Windows 64-bit Installer: https://nodejs.org/dist/v19.9.0/node-v19.9.0-x64.msi
Windows ARM 64-bit Installer: https://nodejs.org/dist/v19.9.0/node-v19.9.0-arm64.msi
Windows 32-bit Binary: https://nodejs.org/dist/v19.9.0/win-x86/node.exe
Windows 64-bit Binary: https://nodejs.org/dist/v19.9.0/win-x64/node.exe
Windows ARM 64-bit Binary: https://nodejs.org/dist/v19.9.0/win-arm64/node.exe
macOS 64-bit Installer: https://nodejs.org/dist/v19.9.0/node-v19.9.0.pkg
macOS Apple Silicon 64-bit Binary: https://nodejs.org/dist/v19.9.0/node-v19.9.0-darwin-arm64.tar.gz
macOS Intel 64-bit Binary: https://nodejs.org/dist/v19.9.0/node-v19.9.0-darwin-x64.tar.gz
Linux 64-bit Binary: https://nodejs.org/dist/v19.9.0/node-v19.9.0-linux-x64.tar.xz
Linux PPC LE 64-bit Binary: https://nodejs.org/dist/v19.9.0/node-v19.9.0-linux-ppc64le.tar.xz
Linux s390x 64-bit Binary: https://nodejs.org/dist/v19.9.0/node-v19.9.0-linux-s390x.tar.xz
AIX 64-bit Binary: https://nodejs.org/dist/v19.9.0/node-v19.9.0-aix-ppc64.tar.gz
ARMv7 32-bit Binary: https://nodejs.org/dist/v19.9.0/node-v19.9.0-linux-armv7l.tar.xz
ARMv8 64-bit Binary: https://nodejs.org/dist/v19.9.0/node-v19.9.0-linux-arm64.tar.xz
Source Code: https://nodejs.org/dist/v19.9.0/node-v19.9.0.tar.gz
Other release files: https://nodejs.org/dist/v19.9.0/
Documentation: https://nodejs.org/docs/v19.9.0/api/

SHASUMS

-----BEGIN PGP SIGNED MESSAGE-----
Hash: SHA256

86a6024daff66e468c5feb15648ce03d6072ef88834f9d453ef6b5de5e7255de  node-v19.9.0-aix-ppc64.tar.gz
ee5f875605d96bdc5968799960df26044da3ef7d451661ccd702836c2b8cba51  node-v19.9.0-arm64.msi
13f7f0e57a2123e55a3172b65e08bc2a51fb52bf366a83d7dda12456ebdc3da0  node-v19.9.0-darwin-arm64.tar.gz
79bee93e746eb3a5497a92343e2f83adf7b60202eb913019b6b071f24ad562e7  node-v19.9.0-darwin-arm64.tar.xz
4f1a5b72ef0bcb6757e5daaf3fcf2c26fa35dc5d5fdff7692b63775ed51934a4  node-v19.9.0-darwin-x64.tar.gz
313a7e05af8137d179ac547b3270ce0aa23986e11838bfb7ab1874b3f6540277  node-v19.9.0-darwin-x64.tar.xz
61ad287af371315998742d431b14964856932337c3478140d3a8c787060a0df9  node-v19.9.0-headers.tar.gz
8e448ed5cc292a34ba159d367101f4d552845f5fba4d4ba4575f03f1a9ec8323  node-v19.9.0-headers.tar.xz
1ebddd6ac062270ac895233b78eb0feabc5fd08ea88502dfede626f4a1b4b037  node-v19.9.0-linux-arm64.tar.gz
7dd78091f8cf34fc094c79b6dfcdbf427abd2ecc4df266a99964bf853b5d6ca0  node-v19.9.0-linux-arm64.tar.xz
6d9258355f791b8f0517a0317d432afa9e6aff57be6697d625c361853efb62a0  node-v19.9.0-linux-armv7l.tar.gz
a9cc87fc5f86e8077c293dd0e39d4241dc7b490d87096526f642aeccee1701f2  node-v19.9.0-linux-armv7l.tar.xz
ba363f760f185ab808ba1a3828ad9393dbd4f786ccea347085d94e58f771b6aa  node-v19.9.0-linux-ppc64le.tar.gz
9e5cf7c3f31c1028ca6ee6f854711573cb382d7eaf64497d1b2448f6ed5f3fb1  node-v19.9.0-linux-ppc64le.tar.xz
a31ac53084eda27881e48a71ecb45408d47027df1591a485240bfd9092d8abe7  node-v19.9.0-linux-s390x.tar.gz
8c956f305a8ca1964e3d0572980083ae01614e0bf14a695a319aed981b65dd08  node-v19.9.0-linux-s390x.tar.xz
15168a298d150335c098f19449f9baef0b0758466723fafc23ef209156dae604  node-v19.9.0-linux-x64.tar.gz
e8ea737ee15a62c8752159d12765ed757b5d4b18036b1011d9e4c9e692a4e58d  node-v19.9.0-linux-x64.tar.xz
2db67c5dacfb600abd16e30a3b1c63d11c0328793f51cc4fe8d6d5a740be3ffb  node-v19.9.0.pkg
c9293eb40dff8e5f55ef8da7cf1b9fd71b4a6a513620d02bbd158936e85216f2  node-v19.9.0.tar.gz
c7fce9d46ca6ce0d8990433cbf601bb9279c0eaed8705b357018cf50be9bed29  node-v19.9.0.tar.xz
8b6c30caab941b57d408c1b8858c470d9caeb1610dd4c055c89e08ac3aa4bf67  node-v19.9.0-win-arm64.7z
761ab28aa0f228e701ca11c0ba9b5decc9f54035ac477b4fc3d9854f32992d00  node-v19.9.0-win-arm64.zip
b670d61fa2ca1fb0248d1af741a2d691136b6eedb899decaf8e26e6e886c48a8  node-v19.9.0-win-x64.7z
589f7880af8de21ee371de8c06a85b5e996d049bf499fbac1245fb10b441e504  node-v19.9.0-win-x64.zip
6db5a772709207bb78d01405f19b912d295dd4bb3f4ecc8f793dcb211d5359dd  node-v19.9.0-win-x86.7z
4517d95051c6bfc589dcd6f7546f716cd28f2d3e3663cb5326613ca4de87ab8b  node-v19.9.0-win-x86.zip
a508c50ab0c6f35c40bfe1dd047036de3a24317b2fba048e7e79408ea183311c  node-v19.9.0-x64.msi
3cf665f8efae4cc8d697099f850d87f98d860a01df9bb0402b503351a1dc5eff  node-v19.9.0-x86.msi
11da4828c17e7e948564459770f0f6fe9cf0a310720b0ff5db4059fdde902f86  win-arm64/node.exe
cf4ed315c06367f6098a91b60306b3ddca255ef02e9dfd25ceb438f5c56b29c9  win-arm64/node.lib
5fba674eff0c26915cf7dc877006a64fef3f0fcbf18e830b167a9bca13a26bb2  win-arm64/node_pdb.7z
b22959f9ecb8ded1011381a2f2f0646c4a9c6cafb0b3007768fabbcb93dce3cc  win-arm64/node_pdb.zip
4e3f15c87f43dfdf8e200dbc1e27fd2ebdb572c0bb6db2925e387ec13aa26728  win-x64/node.exe
7828f4c3b82dfdac0da50d33374c60e76dcf5e957c7c73254c9c3e3bc92f8ea0  win-x64/node.lib
24be9c261c49d8c3e4a8223ee828de9dc1bb7b5f4b66694f5d92d92559e9d05e  win-x64/node_pdb.7z
e319a1923ed4b923c3b5cfc2e1d23fae388766774b989350450c28e9d8b3a67e  win-x64/node_pdb.zip
3ecd67884a7b6f5afcbe90180b3caeffa6729e48a05d79036c9be6527b1c6ebb  win-x86/node.exe
6a6aebc149e09cd7cc221d0e439a0220943554e7121f424f890b3c2dba449885  win-x86/node.lib
060f77b3cd05cbacce7ea8c2e40f77a0fbd8cac1ac6412804f343e1e9135c282  win-x86/node_pdb.7z
dbc91ab1bb913d2e1119768b8024f1456cff56aadb5a3426c4c6118627a86312  win-x86/node_pdb.zip
-----BEGIN PGP SIGNATURE-----

iQGzBAEBCAAdFiEEiQwI24V5Fi/uDfnbi+q0389VXvQFAmQ0qeIACgkQi+q0389V
XvRYYQv/Zsu/xyA7cFHM+YJr/x6ikvLMWfaVTxKud6wxg+I19WpIuv7pCedZdiUy
FkuoVuZTy9Z4oR85ir14wwxIMI+rZ78wsUXK4/q6UHt4/R040+Vhh1MWpRlfiK2v
ox9pwlnlSpF1qzzBkSlnZ8ZthtCOBMFT/t1ZeriMJhCsjvOq70XBVi1jFNKFWyaq
qA8neASedpTOCR4hFIR9XE95SAXBBmOVd/TMiocO5btvGwam9H/c0FJau9gRgGvf
UuzQ2y5kOcbD9BLV8GYt4cG9Dv/tVuzAB3X8K+9l+vHEoDA7pWq/RFfyPl10xgc5
MjsSC7EmJ9HiL0HlZERMDuCGHdS4bQAzkoRcuPXUIgpKWtOcQTr03kPKFpr+Hq5J
sZY6EHZRjBNNH+AiWmzfOlhAXCpzY7g6p27ewvckM1OAUYh83OWq6ehTKmgbrMbj
urf/C94Y1WkRHDlsF3E2GK8PgU0RmfyDs1tkXGBTtXXFDsxZ0YiIGadOlsGCimS2
M2bO4cNX
=WKW6
-----END PGP SIGNATURE-----