Skip Navigation

Node v22.4.0 (Current)

Michaël Zasso

2024-07-02, Version 22.4.0 (Current), @targos

Notable Changes

Experimental Web Storage API

  • [9e30724b53] - (SEMVER-MINOR) deps,lib,src: add experimental web storage (Colin Ihrig) #52435

API stability updates

Other Notable Changes

  • [df4762722c] - doc: doc-only deprecate OpenSSL engine-based APIs (Richard Lau) #53329
  • [ad5282e196] - inspector: fix disable async hooks on Debugger.setAsyncCallStackDepth (Joyee Cheung) #53473
  • [e95af740fc] - (SEMVER-MINOR) lib: add diagnostics_channel events to module loading (RafaelGSS) #44340
  • [50733a1abe] - (SEMVER-MINOR) util: support --no- for argument with boolean type for parseArgs (Zhenwei Jin) #53107

Commits

  • [9f32002397] - assert,util: correct comparison when both contain same reference (Daniel Lemire) #53431
  • [dfdc062111] - buffer: make indexOf(byte) faster (Tobias Nießen) #53455
  • [1de437527e] - build: configure with shared sqlite3 (Chengzhong Wu) #53519
  • [c7d44ba1f3] - build: find version of Clang installed on Windows (Stefan Stojanovic) #53228
  • [36aad8b204] - build: fix spacing before NINJA_ARGS (jakecastelli) #53181
  • [82092cdaa3] - crypto: improve GetECGroupBits signature (Tobias Nießen) #53364
  • [073c231607] - deps: update c-ares to v1.31.0 (Node.js GitHub Bot) #53554
  • [977beab729] - (SEMVER-MINOR) deps: sqlite: fix Windows compilation (Colin Ihrig) #52435
  • [e69b8d202c] - deps: update undici to 6.19.2 (Node.js GitHub Bot) #53468
  • [c4a7e051c8] - deps: update undici to 6.19.1 (Node.js GitHub Bot) #53468
  • [fa34f8fcf0] - deps: update undici to 6.19.1 (Node.js GitHub Bot) #53468
  • [0b40bfad43] - deps: update undici to 6.19.0 (Node.js GitHub Bot) #53468
  • [1877f22a79] - deps: update simdjson to 3.9.4 (Node.js GitHub Bot) #53467
  • [1b84964b8d] - deps: patch V8 to 12.4.254.21 (Node.js GitHub Bot) #53470
  • [6acadeb59b] - deps: update acorn-walk to 8.3.3 (Node.js GitHub Bot) #53466
  • [7a7f438841] - deps: update zlib to 1.3.0.1-motley-209717d (Node.js GitHub Bot) #53156
  • [bf891bf64c] - deps: update c-ares to v1.30.0 (Node.js GitHub Bot) #53416
  • [bd68888261] - deps: V8: cherry-pick a3cc8522a4c8 (kxxt) #53412
  • [2defaaf771] - deps: V8: cherry-pick 6ea594ff7132 (kxxt) #53412
  • [9e30724b53] - (SEMVER-MINOR) deps,lib,src: add experimental web storage (Colin Ihrig) #52435
  • [608cc05de1] - doc: recommend not using libuv node-api function (Michael Dawson) #53521
  • [30858eca59] - doc: add additional guidance for PRs to deps (Michael Dawson) #53499
  • [a5852cc710] - doc: only apply content-visibility on all.html (Filip Skokan) #53510
  • [befabe5c58] - doc: update the description of the return type for options.filter (Zhenwei Jin) #52742
  • [5ed1a036ba] - doc: remove first timer badge (Aviv Keller) #53338
  • [201266706b] - doc: move node --run stability to rc (Yagiz Nizipli) #53433
  • [46a7681cc4] - doc: add Buffer.from(string) to functions that use buffer pool (Christian Bates-White) #52801
  • [ec5364f6de] - doc: add initial text for ambassadors program (Michael Dawson) #52857
  • [fa113b8fc7] - doc: fix typo (EhsanKhaki) #53397
  • [d9182d0086] - doc: define more cases for stream event emissions (Aviv Keller) #53317
  • [923d24b6f2] - doc: remove mentions of policy model from security info (Aviv Keller) #53249
  • [48f78cd31b] - doc: fix mistakes in the module load hook api (István Donkó) #53349
  • [16c0884d48] - doc: mark WebSocket as stable (Matthew Aitken) #53352
  • [df4762722c] - doc: doc-only deprecate OpenSSL engine-based APIs (Richard Lau) #53329
  • [cf375e73c1] - doc: mark --heap-prof and related flags stable (Joyee Cheung) #53343
  • [0160745057] - doc: mark --cpu-prof and related flags stable (Joyee Cheung) #53343
  • [6e12d9f049] - doc: remove IRC from man page (Tobias Nießen) #53344
  • [24c7a9415b] - doc, http: add rejectNonStandardBodyWrites option, clear its behaviour (jakecastelli) #53396
  • [ec38f3dc6a] - doc, meta: organize contributing to Node-API guide (Aviv Keller) #53243
  • [cf5a973c42] - doc, meta: use markdown rather than HTML in CONTRIBUTING.md (Aviv Keller) #53235
  • [105b006fd2] - fs: move ToNamespacedPath to c++ (Yagiz Nizipli) #52135
  • [568377f7f0] - fs: do not crash if the watched file is removed while setting up watch (Matteo Collina) #53452
  • [fad179307c] - fs: add fast api for InternalModuleStat (Yagiz Nizipli) #51344
  • [41100b65f6] - http2: reject failed http2.connect when used with promisify (ehsankhfr) #53475
  • [ad5282e196] - inspector: fix disable async hooks on Debugger.setAsyncCallStackDepth (Joyee Cheung) #53473
  • [b5fc227344] - lib: fix typo in comment (codediverdev) #53543
  • [e95af740fc] - (SEMVER-MINOR) lib: add diagnostics_channel events to module loading (RafaelGSS) #44340
  • [123910f1de] - lib: remove the unused code (theanarkh) #53463
  • [452011b719] - lib: speed up MessageEvent creation internally (Matthew Aitken) #52951
  • [710cf7758c] - lib: reduce amount of caught URL errors (Yagiz Nizipli) #52658
  • [45b59e58d1] - lib: fix naming convention of Symbol (Deokjin Kim) #53387
  • [515dd24ee7] - lib: fix timer leak (theanarkh) #53337
  • [77166137be] - meta: use correct source for workflow in PR (Aviv Keller) #53490
  • [d1c10fee53] - meta: move one or more collaborators to emeritus (Node.js GitHub Bot) #53480
  • [a5026386bf] - meta: fix typo in dependency updates (Aviv Keller) #53471
  • [0b9191da99] - meta: bump step-security/harden-runner from 2.7.1 to 2.8.0 (dependabot[bot]) #53245
  • [49cfb9d001] - src: reset process.versions during pre-execution (Richard Lau) #53444
  • [15df4edd22] - src: use args.This() instead of Holder (Michaël Zasso) #53474
  • [e16a04e852] - src: fix dynamically linked OpenSSL version (Richard Lau) #53456
  • [5961253824] - src: remove base64 from process.versions (Richard Lau) #53442
  • [11dd15c0b5] - src: remove SetEncoding from StringEncoder (Yagiz Nizipli) #53441
  • [0c7e69acd2] - src: simplify size() == 0 checks (Yagiz Nizipli) #53440
  • [f077afafda] - src: add utilities to help debugging reproducibility of snapshots (Joyee Cheung) #50983
  • [004b9ea4c4] - src: make sure that memcpy-ed structs in snapshot have no padding (Joyee Cheung) #50983
  • [bfc5236423] - src: return non-empty data in context data serializer (Joyee Cheung) #50983
  • [955454ba4d] - src: fix typo in env.cc (EhsanKhaki) #53418
  • [7d8787768c] - src: avoid strcmp in favor of operator== (Tobias Nießen) #53439
  • [599e7c3d8e] - src: remove ArrayBufferAllocator::Reallocate override (Shu-yu Guo) #52910
  • [f9075ff38e] - src: print v8::OOMDetails::detail when it's available (Joyee Cheung) #53360
  • [4704270443] - src: fix IsIPAddress for IPv6 (Hüseyin Açacak) #53400
  • [63f62d76de] - src: fix permission inspector crash (theanarkh) #53389
  • [70bbc02dac] - src, deps: add nbytes library (James M Snell) #53507
  • [8b877099d0] - stream: update outdated highwatermark doc (Jay Kim) #53494
  • [eded1e9768] - stream: support dispose in writable (Benjamin Gruenbaum) #48547
  • [b3372a8b0e] - stream: callback should be called when pendingcb is 0 (jakecastelli) #53438
  • [f4efb7f625] - stream: make sure _destroy is called (jakecastelli) #53213
  • [7dde37591c] - stream: prevent stream unexpected pause when highWaterMark set to 0 (jakecastelli) #53261
  • [6e66d9763f] - test: mark test-benchmark-crypto as flaky (Antoine du Hamel) #52955
  • [1eebcbf9bf] - test: skip reproducible snapshot test on 32-bit (Michaël Zasso) #53592
  • [91b2850303] - test: extend env for test-node-output-errors (Richard Lau) #53535
  • [bcad560726] - test: update compression web-platform tests (Yagiz Nizipli) #53478
  • [b8f436c755] - test: update encoding web-platform tests (Yagiz Nizipli) #53477
  • [d2c169a4f6] - test: update url web-platform tests (Yagiz Nizipli) #53472
  • [513e6aa4c7] - test: check against run-time OpenSSL version (Richard Lau) #53456
  • [602b9d63c4] - test: update tests for OpenSSL 3.0.14 (Richard Lau) #53373
  • [4a3525bb08] - test: fix test-http-server-keepalive-req-gc (Etienne Pierre-doray) #53292
  • [7349edb28b] - test: update TLS tests for OpenSSL 3.2 (Richard Lau) #53384
  • [a11a05763d] - tls: check result of SSL_CTX_set_*_proto_version (Tobias Nießen) #53459
  • [4b47f89eb2] - tls: avoid taking ownership of OpenSSL objects (Tobias Nießen) #53436
  • [ac8adeb99f] - tls: use SSL_get_peer_tmp_key (Tobias Nießen) #53366
  • [d5c380bb09] - tools: lock versions of irrelevant DB deps (Michaël Zasso) #53546
  • [71321bb249] - tools: fix skip detection of test runner output (Richard Lau) #53545
  • [ca198f4125] - tools: update eslint to 9.5.0 (Node.js GitHub Bot) #53515
  • [30fdd482a1] - tools: move ESLint to tools/eslint (Michaël Zasso) #53413
  • [fe85e05ba9] - tools: fix c-ares update script (Marco Ippolito) #53414
  • [8eb7bdf81b] - tools: update lint-md-dependencies (Node.js GitHub Bot) #53158
  • [9ece63d415] - tools: do not run Corepack code before it's reviewed (Antoine du Hamel) #53405
  • [ab2021492b] - tools: move ESLint tools to tools/eslint (Michaël Zasso) #53393
  • [78a9037a6d] - tools: use Ubuntu 24.04 and Clang on GitHub actions (Michaël Zasso) #53212
  • [855eb25dad] - tools: add stream label on PR when related files being changed in lib (jakecastelli) #53269
  • [50733a1abe] - (SEMVER-MINOR) util: support --no- for argument with boolean type for parseArgs (Zhenwei Jin) #53107

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

SHASUMS

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

bffb8cd1229ad1b572b0354cd858841eebb5b4c8e360da5d1597e91966a4df82  node-v22.4.0-aix-ppc64.tar.gz
06f5e87171eaabe4264e1d6af5f95a5273cde289e236c1cf28e12c9cfa8fadef  node-v22.4.0-arm64.msi
3cac2e50c2bac76700d1bf124cb8836299f82550f9032b94a84e53cfc687c2b4  node-v22.4.0-darwin-arm64.tar.gz
d52d15e86cda4fec28ffafafde955c1a4b3df3920192bd8d0add834ba9c51702  node-v22.4.0-darwin-arm64.tar.xz
d0b978af9b20b7d083ebd00932dee29a57466bd030cd605f6fe6cf00ff9df357  node-v22.4.0-darwin-x64.tar.gz
e39b56ba416425075d6241c359011e7493286b71a8b8aefbddcd2a7acb57394a  node-v22.4.0-darwin-x64.tar.xz
e965433c8bf6676fa22d1f5bd68ccdccdaad92be0db6c75aa69c470d63f71fee  node-v22.4.0-headers.tar.gz
4db890054c6105f62cbd5390154a8da1d7fe76dfa12730d462845baa081dc471  node-v22.4.0-headers.tar.xz
2157b6eca925abae88bd6543b66e2ebefed7106b7ef34fc792553a303309422e  node-v22.4.0-linux-arm64.tar.gz
ae2a05ed0a7de095ddf6b2ee4fa4cfe935754ecdd4d115fde57edbc54818b93e  node-v22.4.0-linux-arm64.tar.xz
3511b88be58a137c2e59507bb1f8023744107f0cfd27fb9714208ffd065615f9  node-v22.4.0-linux-armv7l.tar.gz
dbc373854bfb2d5d2e408263b14f56c286553a7bfc6414665cf7bce23762744c  node-v22.4.0-linux-armv7l.tar.xz
0c02a6c722cdb61ba542128073014d5927aa5e068ba7b9f67cce50f1edefc9a9  node-v22.4.0-linux-ppc64le.tar.gz
8973f6338fb7ebca3e752020da8f71036d254db22cf29d54dadeaa1f2bc432a1  node-v22.4.0-linux-ppc64le.tar.xz
c73714c0867c0503fb4516047f76f1305e932dadb76f1f013e70f3f91c47c505  node-v22.4.0-linux-s390x.tar.gz
e4fb48861a10fe09b4e1efc88fd34ca05c32047131719869057a0d30ad19d590  node-v22.4.0-linux-s390x.tar.xz
407531c82d4ccffa4231b82086f614f2de2e4008146aff124f7d76ebb87ea45a  node-v22.4.0-linux-x64.tar.gz
5ea7c609f4bfcdc20b872f2cf7c80ea4330e5b52164d5d701db97028f9628309  node-v22.4.0-linux-x64.tar.xz
112e8d48e49f9960173e31bbe4b8c12c5fe95b6c907060e81ded400a0468d3fd  node-v22.4.0.pkg
b62cd83c9a57a11349883f89b1727a16e66c02eb6255a4bf32714ff5d93165f5  node-v22.4.0.tar.gz
292b430084f2f32913dc7da4eb2fbc8969252772a9d1bfe8ae6c4b4a98ca3ad3  node-v22.4.0.tar.xz
5f45a76ff5ba0400eb936446f395e4f058e91554659bb0005130767dffe17991  node-v22.4.0-win-arm64.7z
222f68e2bc3527496712db83dbcf6e0b0618ffadea1bf3259019aa4c143b0d18  node-v22.4.0-win-arm64.zip
c098207b8c009c6ecd080d64546016399c41c1ff874050ddf70307be5e4d2f5b  node-v22.4.0-win-x64.7z
ba7746d0c83367365332668c800d95e2e0a0b9b765fecc25d395e04fa5fd5c1d  node-v22.4.0-win-x64.zip
a3977767a4726ad7ce27b9ca78f53b6733fad29fc415e5d8ddbd865c8b75347f  node-v22.4.0-win-x86.7z
cb7d9f7d6803f3447ac91844736d060589ececc930159d12046a643451781b29  node-v22.4.0-win-x86.zip
04ca0f66d06822159fc2e3d21d566645691425c4e3ee422aa8d55a3ac5d30ad6  node-v22.4.0-x64.msi
3e7c379ed68603b646f785686f44e4d2c6d88640696366673aa4a34228a478ae  node-v22.4.0-x86.msi
2c39a66055b1d47b8647f5d01bc66864afe54091199a0947ee46450d0d6714ac  win-arm64/node.exe
30e63a6726cda6539eeb37c311adf915bccd5c1462723b97a6c07ac91e8ae728  win-arm64/node.lib
09d7baa46c430757d62d4ed03b2f582446eedd7659d98ef76b4908badbe6765c  win-arm64/node_pdb.7z
d9a2dc235735b186fa059e9f87a724ec89a7df07f7cab51fb19014c2a8ba35a7  win-arm64/node_pdb.zip
4e07f7a361170db55f9463fe5abfb39340f8f57849ee6839f1089fa095e5c430  win-x64/node.exe
c4d08d45267da3625a30730bf5c8e41518f25d9809179feb267f1b393f5c5f05  win-x64/node.lib
c7683f7309a7be898f6c8ba7dd0d14c02d15e0e87ee60dd83f9e53fa7be77085  win-x64/node_pdb.7z
2cb700e32ad42fed6c1cc4aa8e792ec9caf28020b141050c6b99473c2f8df194  win-x64/node_pdb.zip
39dfc52bacc268c959ce1952b38d42dddc56e05ff798ab1209d5c8a743ec868e  win-x86/node.exe
fc3bf3c1e561da1e1c152be9aa5ed1bce8d263a5124841a4ba41ebc37c727f3e  win-x86/node.lib
261dcb7bb9751fcb4338f0101946ccc12c4be38dcc17ae03db316a870d507893  win-x86/node_pdb.7z
847c000dcdfbaccbad6d76c231d49e7862a19cba34ac2efe252e74e1ee3ee275  win-x86/node_pdb.zip
-----BEGIN PGP SIGNATURE-----

iQIzBAEBCAAdFiEEj8yhP+8dDC6RAI4Jdw96mlrhVgAFAmaDwFwACgkQdw96mlrh
VgAFhg//e+fo6ByzG9J62eMbGUgtXRt9QYBT1Qkfe7AlBoAExFdoJgH+VLdVApMK
odKiGQfu2OqsOPYBocLDa0cVLx7c7LQdae3IHOabTgOgj1NdB3H9gjzbDOpzfxy9
ILeUNcsxJZnb6BNnD58cBPMsjLIsQ78Y5Xa6HCkpmfDaQnUtyexiSqvEl8jf5gQf
E/1DLCKw5muIpF7I07JyoBTCSc63Eg9FK8E8dkkpcz9zj0BBovIVyajKGADs1p5O
BZu6tV1GEOYq0RSEQk0+89tIfIzOSsDloBSh0Yq98oDEqKVPyApZUqNBapDkX+oK
DDOAytpU7mrAmxvr3ChV73QutfNPzMj6m1YMbUVRYoJvhpgmt5xZA0lX8WTJ60tx
dUcihHQVy1NhlPhiKtKelhuS7TiA4Z4B3TIGIMpIdgBbmY/pm7E4pZXgtPgaE0ke
Jg8vx67iXBoyAVvb5GWzXsCPJ1bvDfvkAGSqW2HkWTCW+E2DrM+5jRUqX/wtZHSA
IbtpySCfhKMaR8ZHHTWiq+B5N3gFE5p9XYx/bSUsaGPfshsxBXPQUeLmeOFfr7kB
ZubuvVIgytmw9cD+jgb9UCdAQ6pK4qskj0K3rJ/QK/renV0xz6Cy56HNXUNsrxdI
8WY2fbbMRgaghJqpVb6+xIe/Zg7OL0mHuz1WYaTCQgSDFjBTjkQ=
=WxEV
-----END PGP SIGNATURE-----