Node v20.2.0 (Current)

Michaël Zasso

Michaël Zasso

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
  • [0f58e48792] - meta: bump actions/checkout from 3.3.0 to 3.5.2 (dependabot[bot]) #47805
  • [652b06dd82] - meta: remove extra space in scorecard workflow (Mestery) #47805
  • [9f06eaccaf] - meta: bump github/codeql-action from 2.2.9 to 2.3.2 (dependabot[bot]) #47809
  • [977fd7cf35] - meta: bump codecov/codecov-action from 3.1.1 to 3.1.3 (dependabot[bot]) #47807
  • [c19385c154] - module: refactor to use normalizeRequirableId in the CJS module loader (Darshan Sen) #47896
  • [739113f2fc] - module: block requiring test/reporters without scheme (Moshe Atlow) #47831
  • [f489c6710c] - (NODE-API-SEMVER-MAJOR) node-api: get Node API version used by addon (Vladimir Morozov) #45715
  • [7222f9d74b] - path: indicate index of wrong resolve() parameter (sosoba) #47660
  • [7dd32f1536] - permission: remove unused function declaration (Deokjin Kim) #47957
  • [af86625a05] - permission: resolve reference to absolute path only for fs permission (Daeyeon Jeong) #47930
  • [1625ae11fe] - quic: address recent coverity warning (Michael Dawson) #47753
  • [c4596b9ce7] - (SEMVER-MINOR) sea: add option to disable the experimental SEA warning (Darshan Sen) #47588
  • [1a7fc186bc] - sea: allow requiring core modules with the "node:" prefix (Darshan Sen) #47779
  • [786a1c5398] - src: deduplicate X509Certificate::Fingerprint* (Tobias Nießen) #47978
  • [060c1d502b] - src: stop copying code cache, part 2 (Keyhan Vakil) #47958
  • [1aec718619] - (SEMVER-MINOR) src: add cjs_module_lexer_version base64_version (Jithil P Ponnan) #45629
  • [0c06bfd8dc] - src: move BlobSerializerDeserializer to a separate header file (Darshan Sen) #47933
  • [bd553e7521] - src: rename SKIP_CHECK_SIZE to SKIP_CHECK_STRLEN (Tobias Nießen) #47845
  • [190596c189] - src: register external references for source code (Keyhan Vakil) #47055
  • [4293cc47f4] - src: support V8 experimental shared values in messaging (Shu-yu Guo) #47706
  • [9bc5d78f0c] - src: register ext reference for Fingerprint512 (Tobias Nießen) #47892
  • [a11507e23b] - src: stop copying code cache (Keyhan Vakil) #47144
  • [515c9b8de6] - src: clarify the parameter name in Permission::Apply (Daeyeon Jeong) #47874
  • [c4217613f5] - src: fix creating an ArrayBuffer from a Blob created with openAsBlob (Daeyeon Jeong) #47691
  • [4bc17fd67b] - src: avoid strcmp() with Utf8Value (Tobias Nießen) #47827
  • [d358317f70] - src: get binding data store directly from the realm (Joyee Cheung) #47437
  • [b04d51a0b5] - src: prefer data accessor of string and vector (Mohammed Keyvanzadeh) #47750
  • [2952cc576c] - src: add per-isolate SetFastMethod and Set[Fast]MethodNoSideEffect (Joyee Cheung) #47768
  • [010d2ecf94] - test: mark test-esm-loader-http-imports as flaky (Tobias Nießen) #47987
  • [bb33c74c07] - test: add getRandomValues return length (Jithil P Ponnan) #46357
  • [6e019586f7] - test: unskip negative-settimeout.any.js WPT (Filip Skokan) #47946
  • [8f547afe5f] - test: use appropriate usages for a negative import test (Filip Skokan) #47878
  • [7e34f77518] - test: fix webcrypto wrap unwrap tests (Filip Skokan) #47876
  • [30f4f35244] - test: fix output tests when path includes node version (Moshe Atlow) #47843
  • [54607bfd68] - test: reduce WPT concurrency (Filip Skokan) #47834
  • [17945a2495] - test: migrate a pseudo_tty test to use assertSnapshot (Moshe Atlow) #47803
  • [c9233679e8] - test: fix WPT state when process exits but workers are still running (Filip Skokan) #47826
  • [34bfb69b5b] - test: migrate message tests to use assertSnapshot (Moshe Atlow) #47498
  • [d25c785c2a] - test: allow SIGBUS in signal-handler abort test (Michaël Zasso) #47851
  • [aa2c7e00d7] - test,crypto: update WebCryptoAPI WPT (Filip Skokan) #47921
  • [da27542058] - test_runner: use v8.serialize instead of TAP (Moshe Atlow) #47867
  • [17befe008c] - (SEMVER-MINOR) test_runner: add shorthands to test (Chemi Atlow) #47909
  • [42db1d50a0] - test_runner: fix ordering of test hooks (Phil Nash) #47931
  • [d81c54e3a8] - test_runner: omit inaccessible files from coverage (Colin Ihrig) #47850
  • [a4e261e910] - tools: debug log for nghttp3 (Marco Ippolito) #47992
  • [f6ff318d4c] - tools: automate icu-small update (Marco Ippolito) #47727
  • [706c305381] - tools: update lint-md-dependencies to rollup@3.21.5 (Node.js GitHub Bot) #47903
  • [e22c686ca9] - tools: update eslint to 8.40.0 (Node.js GitHub Bot) #47906
  • [36f7cfac93] - tools: update eslint to 8.39.0 (Node.js GitHub Bot) #47789
  • [7323902a40] - tools: fix jsdoc lint (Moshe Atlow) #47789
  • [a0634d7f89] - (SEMVER-MINOR) url: add value argument to has and delete methods (Sankalp Shubham) #47885
  • [1b06c1e003] - url: improve isURL detection (Yagiz Nizipli) #47886
  • [2bd869d20c] - vm: fix crash when setting __proto__ on context's globalThis (Feng Yu) #47939
  • [e6685f9e82] - vm,lib: refactor microtaskQueue assignment logic (Khaidi Chu) #47765
  • [47fea13dac] - worker: support more cases when (de)serializing errors (Moshe Atlow) #47925
  • [6f3876c035] - worker: use snapshot in workers spawned by workers (Joyee Cheung) #47731

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

SHASUMS

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

40cd0361b75fb13b5cb6edf9113c48b0771dae961750622030c82dff2ac30911  node-v20.2.0-aix-ppc64.tar.gz
35591fc9659662d78ab21e97adc400b33c2ea1e01e1e87866b8c8e715a396d40  node-v20.2.0-arm64.msi
8dd23fb204b2c239239085761ccae232c5cdc129f633489598a8759248e5f063  node-v20.2.0-darwin-arm64.tar.gz
9c2e4d5b4b3b8dd8cfab718044d2484a604a116a3ccdfd6c3a0053d68137d215  node-v20.2.0-darwin-arm64.tar.xz
d92bc1e96b2458595f41f5e75749ad4d2b1dd8e96b5ebc34cf5a45ab21797cb3  node-v20.2.0-darwin-x64.tar.gz
e9ca46512de17de846747b328e059d42e202f6b37b4881170d575a2ea85ae648  node-v20.2.0-darwin-x64.tar.xz
1b1909a179cdff7e664d05e78af4006bde364f4eede614c2af80ba8f40b76bf9  node-v20.2.0-headers.tar.gz
c6b24d67a665fd42ed60cf009417c7a2e55221412fb6fdabf5c7ed72c50c28a3  node-v20.2.0-headers.tar.xz
c5a755230e9cf63ed708a79bd06604fe4c01283bdf9e9bc687ea107d02d3a2fd  node-v20.2.0-linux-arm64.tar.gz
4ff85df72645e17b3d6253fd8eb45d9cdbed7c68b416ac770adb2fd85ac67e3d  node-v20.2.0-linux-arm64.tar.xz
f016635afb75d69585f0b6520478774218a1b800781eab448b5f1ad0417d4bb5  node-v20.2.0-linux-armv7l.tar.gz
1af63104e276269c1c312aeb8ba894716536ae323fb612d8177bdd1c6d713e9b  node-v20.2.0-linux-armv7l.tar.xz
5180d87a815851e39723ae4b8bf00bbc932cf8fbe3de1e87b310321b2f6d2ce0  node-v20.2.0-linux-ppc64le.tar.gz
7cb4e5d680b4cd6543fabdf7b02a8739b17d3980e94f02b0c8902317340868b8  node-v20.2.0-linux-ppc64le.tar.xz
50d062cc0a0588cea5952eb9adc641335d04f90a6243f6baee9065f47e92e108  node-v20.2.0-linux-s390x.tar.gz
e8bdfba9de8937286401c87671d7c436bb950422fe7a8a7f2cc8501222fa5865  node-v20.2.0-linux-s390x.tar.xz
cb0eff87d37f0df1dcd176a58b9ed0be3b5c08a02fe133a5dffd11dcae29626b  node-v20.2.0-linux-x64.tar.gz
9257b5d5cc807d372da0d3574ce0e2d9b14c9510d7099081d30a464e5d4c0b2b  node-v20.2.0-linux-x64.tar.xz
9333ed45178a28a91c0537b5b8f26e34f8592ca7106ef37dadd7ebb74f6eb0d5  node-v20.2.0.pkg
cd1b0eb67fffe83112034fbdc64b363287e017f835251702f041982633e4b6aa  node-v20.2.0.tar.gz
22523df2316c35569714ff1f69b053c2e286ced460898417dee46945efcdf989  node-v20.2.0.tar.xz
3e94296dd5314da3eeecc6280069486317b6e110e49322c164184193d98b5bf4  node-v20.2.0-win-arm64.7z
3307f2824581f5e6b8566c601ed6935b2d0fd8355bcc31c92f6236f4cb139938  node-v20.2.0-win-arm64.zip
d71be022ef9037075fb026cc674f731d42408facb0c74ecd9169ed77d56c6816  node-v20.2.0-win-x64.7z
eda20d37da0c6629414121dc70c639944e0cfce37f0c5351a9c3141bdb80a4ff  node-v20.2.0-win-x64.zip
1ad5011bc31dd99090770fd5e45cdaffc101c0ca08fb25633b4129214441861b  node-v20.2.0-win-x86.7z
c7ac90d7896d8092df3a91925bee21d809a397b0c12316cadf5dfec7154d96e5  node-v20.2.0-win-x86.zip
6dfcc9a997786098caf01686e766a1d337dae037bb77245c92f976eb0786f6ae  node-v20.2.0-x64.msi
72454cbbb6bf365fd9a54d23e245533e4965d3340ce88a824e78b4f509b0e928  node-v20.2.0-x86.msi
c60eb4c8e8f7e1a0b1d0d4bafb0a32fcf0c4dc7d09df1ee12617ebdb66be4efe  win-arm64/node.exe
b6e79c69a02e20e5a7ba9a245b2f4fa43812f67c6fc1f14e5cedab1feca0df85  win-arm64/node.lib
964032febceaf26e55c185dec1ef0ae8fc77796defd8e34e21b4f039bc2c7c7b  win-arm64/node_pdb.7z
ccd5c27bc40304b5be6352d5239051274f4a68189f2d251389c1d0fc5b8cc3c0  win-arm64/node_pdb.zip
6796553b5c8ead97b27d2db72487a0a624d68365981dc421574046dc780d9c85  win-x64/node.exe
6eabe8bd6964ccb5c72fbe92e78022bb8900bac082dc1de1f607a29203fed432  win-x64/node.lib
5f356e6743f8caf6b1987025fb04a2a846cb4683b82b75aaf0d5bc31d1eba1c9  win-x64/node_pdb.7z
c4a32421ed8aafba77715d803f9a1cb22f5e97805f2890e014d686f2ff289d46  win-x64/node_pdb.zip
fcc2cfd45935ce403d949684f8de6de8987dee48b8b04d474b9b427f432817bf  win-x86/node.exe
ba589bd03347e3ab9b0bc05923317d274d1b2f95df48bacbcc14905c28e379cf  win-x86/node.lib
d6335b491dccf1cf0553745fc73965b1fc8b4c07a4080bf90f78826e78a6d426  win-x86/node_pdb.7z
9d17aee95d928fd777e57a37a9bc21884ceb4df98928ae7fc3227df278945bfc  win-x86/node_pdb.zip
-----BEGIN PGP SIGNATURE-----

iQIzBAEBCAAdFiEEj8yhP+8dDC6RAI4Jdw96mlrhVgAFAmRjesMACgkQdw96mlrh
VgCzGQ//VhS1aEG+WCwnijKWb61N51BBOOjBAV2VcgYCsaJIrBEuCR71jdrazRom
MPxHzyuBDSZrXqcX2QP4FmIjvQiyna1CPoCYLMW6tf6rMx57Bc5lqLDbqUx5vi3y
crIEtGxYjFHfADg+HwRLmmiH+xgzJsEo7RDBnLQCXr9S69sus9PFKifBpA1mGW1O
aPVRBW9JgqEDnH6F+UtFhvyaEAujnh6lDvb4ndaKAVV7g0lJ/DAQqxZWsGTmqeii
vZwP4VZ7EmAbkBGck1k65/PpgXQSColt6KvhyjdRchoRIrVqWIvDu7bh1LfbVGX4
IBhAtNH5igAMNRxJ0OSqG5CD0ybudANs0L6HMDdQlzP8mEEUFBqrfLMd/+hAsGFa
T5dE/8reJWEcbJ/Ig6Y6gzE0QbTDnmlJ3KKvGNfguOnTKD+XzXMl3NoW2BEmqE+X
L+5KfBtD0TapeoZbQLsQg2xkK+7aNcCS3BeTSYZX0AbDJpSZhgjaxc7cEX8Ky9K3
Qa6yOY6480w9YX65Dsbqjz2kEpk4uCkqN2wDr0ZNDf2aV+l33rO6qcN4NIJBCLxl
xFouwtFqcFohiH7xexLBAY3bxKM84uAbgnnh9QCljbrci+Q0zPgBQ17s+ftXiobi
LphtgaFJnAunyPJbBCiJA1ySJzXIwz9lS+NbMnXGNKdGSyUqEMQ=
=kLnW
-----END PGP SIGNATURE-----

Last Updated
May 16, 2023
Reading Time
7 min read
Contribute
Edit this page
Table of Contents
  1. Notable Changes
  2. Commits
  3. SHASUMS