Node.js 24.14.0 (LTS)
Ruy Adorno
2026-02-24, Version 24.14.0 'Krypton' (LTS), @ruyadorno prepared by @aduh95
Notable Changes
- [
8b6d31d379] - (SEMVER-MINOR) async_hooks: addtrackPromisesoption tocreateHook()(Joyee Cheung) #61415 - [
68da144b4e] - build,deps: replace cjs-module-lexer with merve (Yagiz Nizipli) #61456 - [
f3a24c76e4] - (SEMVER-MINOR) deps: add LIEF as a dependency (Joyee Cheung) #61167 - [
1948861d23] - (SEMVER-MINOR) events: repurposeevents.listenerCount()to accept EventTargets (René) #60214 - [
d6f7c8d06f] - (SEMVER-MINOR) fs: addignoreoption tofs.watch(Matteo Collina) #61433 - [
cb54b3ca6e] - (SEMVER-MINOR) http: addhttp.setGlobalProxyFromEnv()(Joyee Cheung) #60953 - [
35b1759d06] - (SEMVER-MINOR) module: allow subpath imports that start with#/(Jan Martin) #60864 - [
2d72ea66f2] - (SEMVER-MINOR) process: preserveAsyncLocalStorageinqueueMicrotaskonly when needed (Gürgün Dayıoğlu) #60913 - [
6f4a4f6c8e] - (SEMVER-MINOR) sea: split sea binary manipulation code (Joyee Cheung) #61167 - [
c0ceb9b065] - (SEMVER-MINOR) sqlite: enable defensive mode by default (Bart Louwers) #61266 - [
33d8e8303b] - (SEMVER-MINOR) sqlite: add sqlite prepare options args (Guilherme Araújo) #61311 - [
563ab699eb] - (SEMVER-MINOR) src: add initial support for ESM in embedder API (Joyee Cheung) #61548 - [
4c80031000] - (SEMVER-MINOR) stream: addbytes()method tonode:stream/consumers(wantaek) #60426 - [
f5233df4ff] - (SEMVER-MINOR) stream: do not passreadable.compose()output viaReadable.from()(René) #60907 - [
345a40fda3] - (SEMVER-MINOR) test: use fixture directories for sea tests (Joyee Cheung) #61167 - [
972f82411d] - (SEMVER-MINOR) test_runner: addenvoption torunfunction (Ethan Arrowood) #61367 - [
d77f98c4b6] - (SEMVER-MINOR) test_runner: support expecting a test-case to fail (Jacob Smith) #60669 - [
8e900af6ba] - (SEMVER-MINOR) util: addconvertProcessSignalToExitCodeutility (Erick Wendel) #60963
Commits
- [
180778fb9a] - assert: fix loose deepEqual arrays with undefined and null failing (Ruben Bridgewater) #61587 - [
8b6d31d379] - (SEMVER-MINOR) async_hooks: add trackPromises option to createHook() (Joyee Cheung) #61415 - [
83bcd38d35] - benchmark: add streaming TextDecoder benchmark (Сковорода Никита Андреевич) #61549 - [
4c105844c5] - build: add support for Visual Studio 2026 (Michaël Zasso) #60727 - [
1f84fd91d9] - build: skip sscache action on non-main branches (Joyee Cheung) #61790 - [
30601b680f] - build: add--shared-nbytesconfigure flag (Antoine du Hamel) #61341 - [
c6253eda49] - build: add--shared-hdr-histogramconfigure flag (Antoine du Hamel) #61280 - [
584c189037] - build: add--shared-gtestconfigure flag (Antoine du Hamel) #61279 - [
5998987881] - build: aix: deoptimize implementation-visitor.cc with --shared (Stewart X Addison) #61550 - [
68da144b4e] - build,deps: replace cjs-module-lexer with merve (Yagiz Nizipli) #61456 - [
6a4511bafb] - build,win: fix vs2022 compilation (Stefan Stojanovic) #61530 - [
2d6735db8a] - deps: upgrade npm to 11.9.0 (npm team) #61685 - [
699e2f8f81] - deps: update amaro to 1.1.7 (Node.js GitHub Bot) #61730 - [
7be76316d6] - deps: update minimatch to 10.1.2 (Node.js GitHub Bot) #61732 - [
97e5a65013] - deps: update undici to 7.21.0 (Node.js GitHub Bot) #61683 - [
74e4710ee7] - deps: update googletest to 56efe3983185e3f37e43415d1afa97e3860f187f (Node.js GitHub Bot) #61605 - [
b5113e2a2a] - deps: update amaro to 1.1.6 (Node.js GitHub Bot) #61603 - [
f3a24c76e4] - (SEMVER-MINOR) deps: add LIEF as a dependency (Joyee Cheung) #61167 - [
c370c3dc06] - (SEMVER-MINOR) deps: add tools and scripts to pull LIEF as a dependency (Joyee Cheung) #61167 - [
e54975e17d] - deps: V8: cherry-pick highway@dcc0ca1cd42 (Richard Lau) #61008 - [
625b90b76b] - deps: update undici to 7.19.2 (Node.js GitHub Bot) #61566 - [
05e9a9fb5e] - deps: update undici to 7.19.1 (Node.js GitHub Bot) #61514 - [
3d41643e38] - deps: update undici to 7.19.0 (Node.js GitHub Bot) #61470 - [
17b363a66c] - dns: fix Windows SRV ECONNREFUSED by adjusting c-ares fallback detection (notvivek12) #61453 - [
33d0a8c22d] - doc: clarify EventEmitter error handling in threat model (Matteo Collina) #61701 - [
5b8e72cf85] - doc: mention default option for test runner env (Steven) #61659 - [
f44e67fac2] - doc: fix --inspect security warning section (Tim Perry) #61675 - [
a0e09c9043] - doc: documenturl.format(urlString)as deprecated under DEP0169 (René) #61644 - [
5e719248fe] - doc: deprecation add more codemod (Augustin Mauroy) #61642 - [
8f5a3e5df4] - doc: fix grammatical error in README.md (ayj8201) #61653 - [
d52b535163] - doc: correct tools README Boxstarter link (Mike McCready) #61638 - [
4889dc4f59] - doc: updateserver.dropMaxConnectionlink (YuSheng Chen) #61584 - [
8e48e72f2a] - doc: clean up writing-and-running-benchmarks.md (Hardanish Singh) #61345 - [
1948861d23] - (SEMVER-MINOR) events: repurposeevents.listenerCount()to accept EventTargets (René) #60214 - [
d6f7c8d06f] - (SEMVER-MINOR) fs: add ignore option to fs.watch (Matteo Collina) #61433 - [
2d7e5f9581] - http: implement slab allocation for HTTP header parsing (Mert Can Altin) #61375 - [
cb54b3ca6e] - (SEMVER-MINOR) http: add http.setGlobalProxyFromEnv() (Joyee Cheung) #60953 - [
6df8be48ce] - lib: use utf8 fast path for streaming TextDecoder (Сковорода Никита Андреевич) #61549 - [
830fff0aca] - lib: recycle queues (Robert Nagy) #61461 - [
069874bdbd] - lib: use StringPrototypeStartsWith from primordials in locks (Taejin Kim) #61492 - [
7824c7589e] - lib: unify ICU and no-ICU TextDecoder (Сковорода Никита Андреевич) #61409 - [
f81430702a] - lib: prefercall()overapply()if argument list is not array (Livia Medeiros) #60796 - [
a723f72e1e] - lib: add support for readable byte streams to .toWeb() (Hans Klunder) #58664 - [
b78d814b3d] - meta: persist sccache daemon until end of build workflows (René) #61639 - [
40a872a4b9] - meta: bump github/codeql-action from 4.31.9 to 4.32.0 (dependabot[bot]) #61622 - [
0637bdb3be] - meta: bump step-security/harden-runner from 2.14.0 to 2.14.1 (dependabot[bot]) #61621 - [
e8d9bd9fc5] - meta: bump actions/setup-python from 6.1.0 to 6.2.0 (dependabot[bot]) #61627 - [
c517df2b65] - meta: bump actions/setup-node from 6.1.0 to 6.2.0 (dependabot[bot]) #61625 - [
9a64f2f25d] - meta: bump actions/cache from 5.0.1 to 5.0.3 (dependabot[bot]) #61624 - [
0e5922e95e] - meta: bump peter-evans/create-pull-request from 8.0.0 to 8.1.0 (dependabot[bot]) #61623 - [
5da7b51091] - meta: bump actions/stale from 10.1.0 to 10.1.1 (dependabot[bot]) #61620 - [
c085c8a43f] - meta: bump actions/checkout from 6.0.1 to 6.0.2 (dependabot[bot]) #61619 - [
ce2acf0275] - meta: bump actions/download-artifact from 6.0.0 to 7.0.0 (dependabot[bot]) #61242 - [
629f0eaac5] - meta: bump actions/checkout from 6.0.0 to 6.0.1 (dependabot[bot]) #61239 - [
cd80d369c9] - meta: bump actions/upload-artifact from 5.0.0 to 6.0.0 (dependabot[bot]) #61238 - [
8c75e4e1fa] - meta: bump actions/checkout from 5.0.1 to 6.0.0 (dependabot[bot]) #60925 - [
5a9e9f4127] - meta: bump actions/checkout from 5.0.0 to 5.0.1 (dependabot[bot]) #60767 - [
1519251dd1] - module: do not invoke resolve hooks twice for imported cjs (Joyee Cheung) #61529 - [
8d7190b3fe] - module: do not wrap module._load when tracing is not enabled (Joyee Cheung) #61479 - [
35b1759d06] - (SEMVER-MINOR) module: allow subpath imports that start with#/(Jan Martin) #60864 - [
7a83b38921] - net: defer synchronous destroy calls in internalConnect (RajeshKumar11) #61658 - [
16bab79421] - process: do not truncate long strings in--print(Mohamed Akram) #61497 - [
2d72ea66f2] - (SEMVER-MINOR) process: preserve AsyncLocalStorage in queueMicrotask only when needed (Gürgün Dayıoğlu) #60913 - [
9cc1c4604f] - repl: fix getters triggering side effects during completion (Dario Piotrowicz) #61043 - [
93703306a1] - repl: tab completion targets<class>instead ofnew <class>(Đỗ Trọng Hải) #60319 - [
6f4a4f6c8e] - (SEMVER-MINOR) sea: split sea binary manipulation code (Joyee Cheung) #61167 - [
46a2dad4db] - sqlite: avoid extra copy for large text binds (Ali Hassan) #61580 - [
f91a377f7e] - sqlite: use DictionaryTemplate for run() result (Mert Can Altin) #61432 - [
0e7571ae3e] - sqlite: change approach to fix segfault SQLTagStore (Bart Louwers) #60462 - [
8e8f70524a] - sqlite: reserve vectors space (Guilherme Araújo) #61540 - [
c0ceb9b065] - (SEMVER-MINOR) sqlite: enable defensive mode by default (Bart Louwers) #61266 - [
33d8e8303b] - (SEMVER-MINOR) sqlite: add sqlite prepare options args (Guilherme Araújo) #61311 - [
f0d8f37002] - src: elide heap allocation in structured clone implementation (Anna Henningsen) #61703 - [
db478c4336] - src: use simdutf for one-byte string UTF-8 write in stringBytes (Mert Can Altin) #61696 - [
563ab699eb] - (SEMVER-MINOR) src: add initial support for ESM in embedder API (Joyee Cheung) #61548 - [
da13186a15] - src: throw RangeError on failed ArrayBuffer BackingStore allocation (Chengzhong Wu) #61480 - [
4c80031000] - (SEMVER-MINOR) stream: add bytes() method to stream/consumers (wantaek) #60426 - [
f5233df4ff] - (SEMVER-MINOR) stream: do not passreadable.compose()output viaReadable.from()(René) #60907 - [
ad04a469c8] - test: restraint version replacement pattern in snapshots (Chengzhong Wu) #61748 - [
2d3b4a8d65] - test: print stack immediately avoiding GC interleaving (Chengzhong Wu) #61699 - [
38f43a6d4e] - test: fix case-insensitive path matching on Windows (Matteo Collina) #61682 - [
06513f5ff2] - test: fix flaky test-performance-eventloopdelay (Matteo Collina) #61629 - [
9d79c66c61] - test: remove duplicate wpt tests (Filip Skokan) #61617 - [
eac9f4f401] - test: fix race condition in watch mode tests (Matteo Collina) #61615 - [
ecf5947575] - test: update WPT for url to e3c46fdf55 (Node.js GitHub Bot) #61602 - [
356ff5fece] - test: use the skipIfNoWatch() utility function (Luigi Pinca) #61531 - [
4b2187aea2] - test: unify assertSnapshot common patterns (Chengzhong Wu) #61590 - [
8c25489d63] - test: split test-fs-watch-ignore-* (Luigi Pinca) #61494 - [
43b8a2b7e7] - test: add some validation for JSON doc output (Antoine du Hamel) #61413 - [
345a40fda3] - (SEMVER-MINOR) test: use fixture directories for sea tests (Joyee Cheung) #61167 - [
24cf6b8326] - test: reveal wpt evaluation errors in status files (Chengzhong Wu) #61358 - [
d4034dfb62] - test: forbid use of named imports for fixtures (Antoine du Hamel) #61228 - [
4f871ee897] - test: enforce better never-settling-promise detection (Antoine du Hamel) #60976 - [
8e9adedf02] - test: ensure assertions are reached on all tests (Antoine du Hamel) #60845 - [
273832802e] - test: ensure assertions are reached on more tests (Antoine du Hamel) #60763 - [
e06adcb52f] - test: ensure assertions are reached on more tests (Antoine du Hamel) #60760 - [
aeed0ccc02] - test: useRegExp.escapeto improve test reliability (Antoine du Hamel) #60803 - [
74bcd0adab] - test: ensure assertions are reached on more tests (Antoine du Hamel) #60728 - [
407807b08e] - test: skip tests not passing withoutNODE_OPTIONSsupport (Antoine du Hamel) #60912 - [
a9e70cefb0] - test: ensure assertions are reached on more tests (Antoine du Hamel) #60634 - [
21b23cd0d0] - test_runner: fix test enqueue when test file has syntax error (Edy Silva) #61573 - [
6a4de694b2] - test_runner: fix passingexpectFailure(Moshe Atlow) #61568 - [
6640de2b0f] - test_runner: differentiate todo and failure styles (Moshe Atlow) #61564 - [
972f82411d] - (SEMVER-MINOR) test_runner: add env option to run function (Ethan Arrowood) #61367 - [
d77f98c4b6] - (SEMVER-MINOR) test_runner: support expecting a test-case to fail (Jacob Smith) #60669 - [
f98986cbb9] - tools: switch to ARM runners on GHA jobs (Antoine du Hamel) #61903 - [
034589dd93] - tools: avoid building twice in coverage jobs (Antoine du Hamel) #61899 - [
e50e2f00bb] - tools: use ubuntu-slim runner in GHA (Antoine du Hamel) #61759 - [
f658f48ccb] - tools: use ubuntu-slim runner in GHA (Antoine du Hamel) #61734 - [
65c77d74ff] - tools: use ubuntu-latest runner innotify-on-pushworkflow (Antoine du Hamel) #61742 - [
605905556a] - tools: enforce removal oflts-watch-*labels on release proposals (Antoine du Hamel) #61672 - [
f0f98d4c03] - tools: use ubuntu-slim runner in meta GitHub Actions (Tierney Cyren) #61663 - [
ab63ddf354] - tools: add LIEF to license builder (Chengzhong Wu) #61523 - [
8a0f6192c9] - tools: enforce trailing commas intest/es-module(Antoine du Hamel) #60891 - [
4afbbcf39e] - tools: enforce trailing commas intest/sequential(Antoine du Hamel) #60892 - [
4c1abf752c] - tools,win: upgrade install additional tools to Visual Studio 2026 (Mike McCready) #61562 - [
8e900af6ba] - (SEMVER-MINOR) util: add convertProcessSignalToExitCode utility (Erick Wendel) #60963
Windows 64-bit Installer: https://nodejs.org/dist/v24.14.0/node-v24.14.0-x64.msi
Windows ARM 64-bit Installer: https://nodejs.org/dist/v24.14.0/node-v24.14.0-arm64.msi
Windows 64-bit Binary: https://nodejs.org/dist/v24.14.0/win-x64/node.exe
Windows ARM 64-bit Binary: https://nodejs.org/dist/v24.14.0/win-arm64/node.exe
macOS 64-bit Installer: https://nodejs.org/dist/v24.14.0/node-v24.14.0.pkg
macOS Apple Silicon 64-bit Binary: https://nodejs.org/dist/v24.14.0/node-v24.14.0-darwin-arm64.tar.gz
macOS Intel 64-bit Binary: https://nodejs.org/dist/v24.14.0/node-v24.14.0-darwin-x64.tar.gz
Linux 64-bit Binary: https://nodejs.org/dist/v24.14.0/node-v24.14.0-linux-x64.tar.xz
Linux PPC LE 64-bit Binary: https://nodejs.org/dist/v24.14.0/node-v24.14.0-linux-ppc64le.tar.xz
Linux s390x 64-bit Binary: https://nodejs.org/dist/v24.14.0/node-v24.14.0-linux-s390x.tar.xz
AIX 64-bit Binary: https://nodejs.org/dist/v24.14.0/node-v24.14.0-aix-ppc64.tar.gz
ARMv8 64-bit Binary: https://nodejs.org/dist/v24.14.0/node-v24.14.0-linux-arm64.tar.xz
Source Code: https://nodejs.org/dist/v24.14.0/node-v24.14.0.tar.gz
Other release files: https://nodejs.org/dist/v24.14.0/
Documentation: https://nodejs.org/docs/v24.14.0/api/
SHASUMS
-----BEGIN PGP SIGNED MESSAGE-----
Hash: SHA256
27ac48f94c7e88f4b0c5d9077f0fec10256289c7dca21e0d9f82cbaad13d6e3d node-v24.14.0-aix-ppc64.tar.gz
63d07136eead197b66c58f4ee6c4343e0b4027cc3a1f852ada45b081250e21b7 node-v24.14.0-arm64.msi
a1a54f46a750d2523d628d924aab61758a51c9dad3e0238beb14141be9615dd3 node-v24.14.0-darwin-arm64.tar.gz
448f01d4dfa5a21d280cfbacf00abc22b51aad52f38db0f4886e0e5d00df541d node-v24.14.0-darwin-arm64.tar.xz
f2879eb810e25993a0578e5d878930266fd2eafcffe9f2839b3d8db354d4879e node-v24.14.0-darwin-x64.tar.gz
c17b234c4db75eeb03c3a86664428ec25ee849e1ebbe8cb05c4a70f282187866 node-v24.14.0-darwin-x64.tar.xz
bc1505c8e2b2b1f7b7cf3808bf53691e5d110c816d1bc1a48075195c5dcafe05 node-v24.14.0-headers.tar.gz
87d1a7d80599ce330de0f0832f6b85c7d93c5be7b6a203725afa016405227988 node-v24.14.0-headers.tar.xz
f44740cd218de8127f1c44c41510a3a740fa5c9c8d1cdce1c3bedada79f3cde7 node-v24.14.0-linux-arm64.tar.gz
e7adfca03d9173276114a6f2219df1a7d25e1bfd6bbd771d3f839118a2053094 node-v24.14.0-linux-arm64.tar.xz
83b263f9c2ea946c0c4a15c3caea6470dc49fe0beb6f33dfd29aa9128250637a node-v24.14.0-linux-ppc64le.tar.gz
33beedaf3ff82ee511cfc5ca0cc7076161a54a982321d061409299e27bc5f41e node-v24.14.0-linux-ppc64le.tar.xz
8fa220a1f7b7769605c2e929fdbf736822997bf4cf88a3db05188eabd7712328 node-v24.14.0-linux-s390x.tar.gz
d133f1aac2d6dbaa4de9fe183184e57adbc9f45d62e37f55a864c8af92d4cb5a node-v24.14.0-linux-s390x.tar.xz
dbf5b8665dec15e59e6359a517fefb47b23fdb9152d8def975b9bca3dfc6d355 node-v24.14.0-linux-x64.tar.gz
41cd79bb7877c81605a9e68ec4c91547774f46a40c67a17e34d7179ef11729df node-v24.14.0-linux-x64.tar.xz
5514f833980f172088ce22883000d1aea9db9eea41cb1a306154eb4f333ec1c0 node-v24.14.0.pkg
852c73dd5b6ba15b231d036da6312dbcdabd6295adc3940586f3187b77731cf3 node-v24.14.0.tar.gz
9fe025ef4028aba95d16e7810518bf4a5e8abfb0bdc07d8a3fdbb0afd538d77f node-v24.14.0.tar.xz
6cd8d95799dc70e89585522e5cfe5d576b6ac44f6ff5afc0a4b0318c9f7aa8cd node-v24.14.0-win-arm64.7z
88d36e8109736a2fa9bdc596f2cf507a3c52c69cdf96e54f8acd473ec14be853 node-v24.14.0-win-arm64.zip
90f18586ef8ca13dd94e7f571d27b8a5120116fea218bcc41e3ef6697dcbc777 node-v24.14.0-win-x64.7z
313fa40c0d7b18575821de8cb17483031fe07d95de5994f6f435f3b345f85c66 node-v24.14.0-win-x64.zip
e75802e82be6875b03b63377a9e12e4416799d0fb6dd460f0605d29144d386a6 node-v24.14.0-x64.msi
8c5fd45a4a1fd3cc4a6f07da8803b05194108906cb6fb7d962448a12582a5922 win-arm64/node.exe
59f1c42e5962e9333bb1673c21125b7a7ce9a6908299aee8f7673803c2e24212 win-arm64/node.lib
5a7c7261b40fd4e39bc4410e23d31e48857d737d830434ea2dc215fec892a8dd win-arm64/node_pdb.7z
3bf09a2b133893208ad48b3c439dad570aa4cc2a5fe842bc137f795aa4e72944 win-arm64/node_pdb.zip
63c259c81e5d472b5f11c8d506070130cb04a1ecf84b80377a34ed6ec9048088 win-x64/node.exe
35fcdd35d3d22e283c0e2e095cc43ef676301bb85f950c344a73d59231bd7e61 win-x64/node.lib
802553494ca6c8049aa542ddcc54e2616a0a1819ae23f894767a4110a1ec0b5a win-x64/node_pdb.7z
b8e1aee14390b2828ede1f4b89ed8a8b0c5da40e43fbfe14dc4b42dc14ed3710 win-x64/node_pdb.zip
-----BEGIN PGP SIGNATURE-----
iQIzBAEBCAAdFiEEEI9StI21e7DMQ5spl7AUGb2S+AoFAmmdxM8ACgkQl7AUGb2S
+AqtGg//VNRQePlUD0cVBO0AnCnV4LlkmkIdxYDmD1Myk2blqC1rvLsGDj1kwfp0
cOrDI1PvnYrasK9N5Q1cF+g9ZJDgv59v8lLkPYng8hYPiVgyYE4e00QSPMebDzwu
jwIZtNdR0sdD6nAq3WLQQFqkvytj2y4OhL1w4+OiXomBXYRC7CU3/ZwzEsrJ/od6
QeO10KezF3luDGiMXVoJzn1pxm6Itvcdyqu0DZkBsbX6IrzR+Kbb2wv/dWUafas+
PM9J89QhV4UTgRSHo6O5FnG6ZStcOpa/o4yCWmO9EA1GBv/n3Jnr/uk8zNE2ODwe
TV0OiJnbUrCx0dQQTx42wVQL+Ust/PLu5m5csnO0R5E/QCVBxwwF6+CnPyNP6HgF
fA+2PoKuv5pSCbfupfJg0KLSxToX6p3wO02sRzQnpzY8usdEel071n6246TjYRqM
o4nS5FgLlBLd1djKjOna62QYsKtOvldZ1+R96rQBOW7oYeAG9vggGcbuWN2y2zvu
ctcVpC3+cj2wEQ/N2NQOz/Zd//m8j19XgIoNxHuU6w0xGXxHnyTpJhrd5bI3L3R4
QMK+v67uM9qVLPPZdEFbRpwVv/UhtM2jewcQtwnplo2dseWO3n+CXgRs8DOK5JKX
RN7ozy+bCPm3ayU6O01MmUiUaD9PQA/lIE2M4jZ9qfmhWuTlk20=
=i+aM
-----END PGP SIGNATURE-----