Releases: nodejs/node
2024-06-11, Version 22.3.0 (Current), @RafaelGSS
Notable Changes
- [
5a41bcf9ca
] - (SEMVER-MINOR) src: traverse parent folders while running--run
(Yagiz Nizipli) #53154 - [
1d5934524b
] - (SEMVER-MINOR) buffer: add .bytes() method to Blob (Matthew Aitken) #53221 - [
75e5612fae
] - (SEMVER-MINOR) src,permission: --allow-wasi & prevent WASI exec (Rafael Gonzaga) #53124 - [
b5c30e2f5e
] - (SEMVER-MINOR) module: print amount of load time of a cjs module (Vinicius Lourenço) #52213 - [
8c6dffc269
] - (SEMVER-MINOR) test_runner: add snapshot testing (Colin Ihrig) #53169 - [
048478d351
] - (SEMVER-MINOR) doc: add context.assert docs (Colin Ihrig) #53169 - [
f6d2af8ee7
] - (SEMVER-MINOR) test_runner: add context.fullName (Colin Ihrig) #53169 - [
a0766bdf0e
] - (SEMVER-MINOR) net: add new net.server.listen tracing channel (Paolo Insogna) #53136 - [
374743cd4e
] - (SEMVER-MINOR) process: add process.getBuiltinModule(id) (Joyee Cheung) #52762 - [
1eb55f3550
] - (SEMVER-MINOR) doc: improve explanation about built-in modules (Joyee Cheung) #52762 - [
6165894774
] - fs: mark recursive cp methods as stable (ThΓ©o LUDWIG) #53127 - [
db5dd0c6df
] - doc: add StefanStojanovic to collaborators (StefanStojanovic) #53118 - [
cfcde78513
] - (SEMVER-MINOR) cli: addNODE_RUN_PACKAGE_JSON_PATH
env (Yagiz Nizipli) #53058 - [
7a67ecf161
] - (SEMVER-MINOR) test_runner: support module mocking (Colin Ihrig) #52848 - [
ee56aecced
] - (SEMVER-MINOR) lib: add EventSource Client (Aras Abbasi) #51575 - [
6413769bc7
] - (SEMVER-MINOR) lib: replace MessageEvent with undici's (Matthew Aitken) #52370 - [
c70b2f7a76
] - (SEMVER-MINOR) cli: addNODE_RUN_SCRIPT_NAME
env tonode --run
(Yagiz Nizipli) #53032 - [
badec0c38b
] - doc: add Marco Ippolito to TSC (Rafael Gonzaga) #53008
Commits
- [
feb0ba2860
] - benchmark: fix napi/ref addon (MichaΓ«l Zasso) #53233 - [
bb844de4e1
] - benchmark: fix api restriction for the permission category (Ryan Tsien) #51528 - [
1d5934524b
] - (SEMVER-MINOR) buffer: add .bytes() method to Blob (Matthew Aitken) #53221 - [
d87f9af5aa
] - buffer: make compare/equals faster (Tobias NieΓen) #52993 - [
ec83431d71
] - build: generate binlog in out directories (Chengzhong Wu) #53325 - [
0976439417
] - build: fix --v8-lite-mode build (Daeyeon Jeong) #52725 - [
350c733ae6
] - build: support python 3.13 (Chengzhong Wu) #53190 - [
74cefa55a2
] - build: update ruff to v0.4.5 (Yagiz Nizipli) #53180 - [
33242ff042
] - build: add--skip-tests
totest-ci-js
target (Antoine du Hamel) #53105 - [
edcadf7f8a
] - build: fix building embedtest in GN build (Cheng) #53145 - [
d711942fce
] - build: use broader detection for 'help' (Aviv Keller) #53045 - [
ca655b61a7
] - build: fix -j propagation to ninja (Tobias NieΓen) #53088 - [
5fba67ff9f
] - build: exit on unsupported host OS for Android (Mohammed Keyvanzadeh) #52882 - [
b7d7e9a084
] - build: fix--enable-d8
builds (Richard Lau) #53106 - [
14547c5d32
] - build: fix ./configure --help format error (Zhenwei Jin) #53066 - [
f9490806d3
] - build: set "clang" in config.gypi in GN build (Cheng) #53004 - [
638b510ce7
] - cli: add--expose-gc
flag available toNODE_OPTIONS
(Juan JosΓ©) #53078 - [
cfcde78513
] - (SEMVER-MINOR) cli: addNODE_RUN_PACKAGE_JSON_PATH
env (Yagiz Nizipli) #53058 - [
c70b2f7a76
] - (SEMVER-MINOR) cli: addNODE_RUN_SCRIPT_NAME
env tonode --run
(Yagiz Nizipli) #53032 - [
34f20983fd
] - crypto: fix propagation of "memory limit exceeded" (Tobias NieΓen) #53300 - [
fef067f4f4
] - deps: update nghttp2 to 1.62.1 (Node.js GitHub Bot) #52966 - [
fc949928ac
] - deps: update nghttp2 to 1.62.0 (Node.js GitHub Bot) #52966 - [
4a17dda8dc
] - deps: update undici to 6.18.2 (Node.js GitHub Bot) #53255 - [
e45cc2a551
] - deps: update ada to 2.8.0 (Node.js GitHub Bot) #53254 - [
77907a2619
] - deps: update corepack to 0.28.2 (Node.js GitHub Bot) #53253 - [
b688050778
] - deps: update simdjson to 3.9.3 (Node.js GitHub Bot) #53252 - [
6303f19cbe
] - deps: patch V8 to 12.4.254.20 (Node.js GitHub Bot) #53159 - [
257004c68f
] - deps: update c-ares to 1.29.0 (Node.js GitHub Bot) #53155 - [
0b375a3e36
] - deps: upgrade npm to 10.8.1 (npm team) #53207 - [
728c861b1c
] - deps: fix FP16 bitcasts.h (Stefan Stojanovic) #53134 - [
52a78737b1
] - deps: patch V8 to 12.4.254.19 (Node.js GitHub Bot) #53094 - [
4d27b32e58
] - deps: update undici to 6.18.1 (Node.js GitHub Bot) #53073 - [
b94199240b
] - deps: update undici to 6.18.0 (Node.js GitHub Bot) #53073 - [
793af1b3e7
] - deps: update undici to 6.17.0 (Node.js GitHub Bot) #53034 - [[
fe00becc03
](fe00b...
2024-05-28, Version 20.14.0 'Iron' (LTS), @marco-ippolito
Notable Changes
- [
28d2baa17c
] - src,permission: throw async errors on async APIs (Rafael Gonzaga) #52730 - [
77e2bf029a
] - (SEMVER-MINOR) test_runner: support forced exit (Colin Ihrig) #52038
Commits
- [
e3ad05d8b0
] - deps: V8: cherry-pick 500de8bd371b (Richard Lau) #52676 - [
053282e661
] - deps: V8: backport c4be0a97f981 (Richard Lau) #52183 - [
200dadb879
] - deps: V8: cherry-pick f8d5e576b814 (Richard Lau) #52183 - [
f5cd125e02
] - deps: update googletest to fa6de7f (Node.js GitHub Bot) #52949 - [
bbbfd7f4e1
] - deps: update corepack to 0.28.1 (Node.js GitHub Bot) #52946 - [
7ba30a57a6
] - deps: update simdutf to 5.2.8 (Node.js GitHub Bot) #52727 - [
b21a480a28
] - deps: update simdutf to 5.2.6 (Node.js GitHub Bot) #52727 - [
6cfad60d97
] - deps: update googletest to 2d16ed0 (Node.js GitHub Bot) #51657 - [
34708d1429
] - deps: update googletest to d83fee1 (Node.js GitHub Bot) #51657 - [
c1d3e558e8
] - deps: update googletest to 5a37b51 (Node.js GitHub Bot) #51657 - [
69959d0fca
] - deps: update googletest to 5197b1a (Node.js GitHub Bot) #51657 - [
c8305f6057
] - deps: update googletest to eff443c (Node.js GitHub Bot) #51657 - [
760b788704
] - deps: update googletest to c231e6f (Node.js GitHub Bot) #51657 - [
301541cc8f
] - deps: update googletest to e4fdb87 (Node.js GitHub Bot) #51657 - [
981d57e401
] - deps: update googletest to 5df0241 (Node.js GitHub Bot) #51657 - [
a1817f534d
] - deps: update googletest to b75ecf1 (Node.js GitHub Bot) #51657 - [
42070ca189
] - deps: update googletest to 4565741 (Node.js GitHub Bot) #51657 - [
edc3e5d056
] - deps: update uvwasi to 0.0.21 (Node.js GitHub Bot) #52863 - [
26b1231ffb
] - deps: upgrade npm to 10.7.0 (npm team) #52767 - [
e6d9fbece2
] - doc: update process.versions properties (ishabi) #52736 - [
8c1f837c0a
] - doc: remove mold use on mac for speeding up build (Cong Zhang) #52252 - [
d9c5114694
] - doc: fix grammatical mistake (codershiba) #52808 - [
b350f435b7
] - meta: add mailmap entry for legendecas (Chengzhong Wu) #52795 - [
61f9f12eff
] - meta: bump actions/checkout from 4.1.1 to 4.1.4 (dependabot[bot]) #52787 - [
ac563667d6
] - meta: bump github/codeql-action from 3.24.9 to 3.25.3 (dependabot[bot]) #52786 - [
70611d7924
] - meta: bump actions/upload-artifact from 4.3.1 to 4.3.3 (dependabot[bot]) #52785 - [
30482ea273
] - meta: bump actions/download-artifact from 4.1.4 to 4.1.7 (dependabot[bot]) #52784 - [
d1607cdebb
] - meta: bump codecov/codecov-action from 4.1.1 to 4.3.1 (dependabot[bot]) #52783 - [
21f1b6bfc3
] - meta: bump step-security/harden-runner from 2.7.0 to 2.7.1 (dependabot[bot]) #52782 - [
0c6019a222
] - meta: standardize regex (Aviv Keller) #52693 - [
28d2baa17c
] - src,permission: throw async errors on async APIs (Rafael Gonzaga) #52730 - [
cffd2cc0c9
] - Revert "stream: revert fix cloned webstreams not being unref'd" (Marco Ippolito) #53144 - [
3dd96f1fab
] - stream: implement TransformStream cleanup using "transformer.cancel" (Debadree Chatterjee) #50126 - [
8e7e778e01
] - test: skip v8-updates/test-linux-perf (MichaΓ«l Zasso) #49639 - [
f8e18869e9
] - test: replace always-opt flag with alway-turbofan (MichaΓ«l Zasso) #50115 - [
a501860d63
] - test_runner: don't await the same promise for each test (Colin Ihrig) #52185 - [
e2ae4367f4
] - test_runner: run top level tests in a microtask (Colin Ihrig) #52092 - [
77e2bf029a
] - (SEMVER-MINOR) test_runner: support forced exit (Colin Ihrig) #52038 - [
b7bc63565e
] - test_runner: ignore todo flag when running suites (Colin Ihrig) #52117 - [
be587e3ae3
] - test_runner: use paths for test locations (Colin Ihrig) #52010 - [
743281ab25
] - test_runner: support source mapped test locations (Colin Ihrig) #52010 - [
4051316d95
] - tools: update lint-md-dependencies to rollup@4.17.0 (Node.js GitHub Bot) #52729
2024-05-21, Version 18.20.3 'Hydrogen' (LTS), @richardlau
Notable Changes
This release fixes a regression introduced in Node.js 18.19.0 where http.server.close()
was incorrectly closing idle connections.
A fix has also been included for compiling Node.js from source with newer versions of Clang.
The list of keys used to sign releases has been synchronized with the current list from the main
branch.
Updated dependencies
- acorn updated to 8.11.3.
- acorn-walk updated to 8.3.2.
- ada updated to 2.7.8.
- c-ares updated to 1.28.1.
- corepack updated to 0.28.0.
- nghttp2 updated to 1.61.0.
- ngtcp2 updated to 1.3.0.
- npm updated to 10.7.0. Includes a fix from npm@10.5.1 to limit the number of open connections npm/cli#7324.
- simdutf updated to 5.2.4.
- zlib updated to 1.3.0.1-motley-7d77fb7.
Commits
- [
0c260e10e7
] - deps: update zlib to 1.3.0.1-motley-7d77fb7 (Node.js GitHub Bot) #52516 - [
1152d7f919
] - deps: update zlib to 1.3.0.1-motley-24c07df (Node.js GitHub Bot) #52199 - [
755399db9d
] - deps: update zlib to 1.3.0.1-motley-24342f6 (Node.js GitHub Bot) #52123 - [
af3e32073b
] - deps: update ada to 2.7.8 (Node.js GitHub Bot) #52517 - [
e4ea2db58b
] - deps: update c-ares to 1.28.1 (Node.js GitHub Bot) #52285 - [
14e857bea2
] - deps: update corepack to 0.28.0 (Node.js GitHub Bot) #52616 - [
7f5dd44ca6
] - deps: upgrade npm to 10.7.0 (npm team) #52767 - [
78f84ebb09
] - deps: update ngtcp2 to 1.3.0 (Node.js GitHub Bot) #51796 - [
1f489a3753
] - deps: update ngtcp2 to 1.2.0 (Node.js GitHub Bot) #51584 - [
3034968225
] - deps: update ngtcp2 to 1.1.0 (Node.js GitHub Bot) #51319 - [
1aa9da467f
] - deps: add nghttp3/**/.deps to .gitignore (Luigi Pinca) #51400 - [
28c0c78c9a
] - deps: update ngtcp2 and nghttp3 (James M Snell) #51291 - [
8fd5a35364
] - deps: upgrade npm to 10.5.2 (npm team) #52458 - [
2c53ff31c9
] - deps: update acorn-walk to 8.3.2 (Node.js GitHub Bot) #51457 - [
12f28f33c2
] - deps: update acorn to 8.11.3 (Node.js GitHub Bot) #51317 - [
dddb7eb3e0
] - deps: update acorn-walk to 8.3.1 (Node.js GitHub Bot) #50457 - [
c86550e607
] - deps: update acorn-walk to 8.3.0 (Node.js GitHub Bot) #50457 - [
9500817f66
] - deps: update acorn to 8.11.2 (Node.js GitHub Bot) #50460 - [
7a8c7b6275
] - deps: update ada to 2.7.7 (Node.js GitHub Bot) #52028 - [
b199889943
] - deps: update corepack to 0.26.0 (Node.js GitHub Bot) #52027 - [
052b0ba0c6
] - deps: upgrade npm to 10.5.1 (npm team) #52351 - [
209823d3af
] - deps: update simdutf to 5.2.4 (Node.js GitHub Bot) #52473 - [
5114cbe18a
] - deps: update simdutf to 5.2.3 (Yagiz Nizipli) #52381 - [
be30309ea0
] - deps: update simdutf to 5.0.0 (Daniel Lemire) #52138 - [
b56f66e250
] - deps: update simdutf to 4.0.9 (Node.js GitHub Bot) #51655 - [
a9f3b9d9d1
] - deps: update nghttp2 to 1.61.0 (Node.js GitHub Bot) #52395 - [
1b6fa70620
] - deps: update nghttp2 to 1.60.0 (Node.js GitHub Bot) #51948 - [
3c9dbbf4d4
] - deps: update nghttp2 to 1.59.0 (Node.js GitHub Bot) #51581 - [
e28316da54
] - deps: update nghttp2 to 1.58.0 (Node.js GitHub Bot) #50441 - [
678641f470
] - deps: V8: cherry-pick d15d49b09dc7 (Bo Anderson) #52337 - [
1147fee7d9
] - doc: remove ableist language from crypto (Jamie King) #52063 - [
5e93eae972
] - doc: add release key for marco-ippolito (marco-ippolito) #52257 - [
6689a98488
] - http: remove closeIdleConnections function while calling server close (Kumar Rishav) #52336 - [
71616e8a8a
] - node-api: make tsfn accept napi_finalize once more (Gabriel Schulhof) #51801 - [
d9d9e62474
] - src: avoid draining platform tasks at FreeEnvironment (Chengzhong Wu) #51290 - [
e5fc8ec9fc
] - test: skip v8-updates/test-linux-perf (MichaΓ«l Zasso) #49639 - [
351ef189ca
] - test: v8: Add test-linux-perf-logger test suite (Luke Albao) #50352 - [
5cec2efc31
] - test: reduce the number of requests and parsers (Luigi Pinca) #50240 - [
5186e453d9
] - test: deflake test-http-regr-gh-2928 (Luigi Pinca) #49574 - [
c60cd67e1c
] - test: skip test for dynamically linked OpenSSL (Richard Lau) #52542
2024-05-15, Version 22.2.0 (Current), @targos
Notable Changes
- [
fb85d38e80
] - (SEMVER-MINOR) cli: allow running wasm in limited vmem with --disable-wasm-trap-handler (Joyee Cheung) #52766 - [
23a0d3339f
] - doc: add pimterry to collaborators (Tim Perry) #52874 - [
7d7a762156
] - (SEMVER-MINOR) fs: allow 'withFileTypes' to be used with globs (Aviv Keller) #52837 - [
8748dd6477
] - (SEMVER-MINOR) inspector: introduce the--inspect-wait
flag (Kohei Ueno) #52734 - [
9a7ae9b6c4
] - lib,src: remove --experimental-policy (Rafael Gonzaga) #52583 - [
1f7c2a93fc
] - (SEMVER-MINOR) perf_hooks: adddeliveryType
andresponseStatus
fields (Matthew Aitken) #51589 - [
2f59529dc5
] - (SEMVER-MINOR) test_runner: support test plans (Colin Ihrig) #52860 - [
6b4dac3eb5
] - (SEMVER-MINOR) zlib: expose zlib.crc32() (Joyee Cheung) #52692
Commits
- [
0f5716c364
] - assert: add deep equal check for more Error type (Zhenwei Jin) #51805 - [
2c7d7caa8a
] - benchmark: filter non-present deps fromstart-cli-version
(Adam Majer) #51746 - [
5db4c54bd6
] - bootstrap: print--help
message usingconsole.log
(Jacob Hummer) #51463 - [
67fcb6b85e
] - buffer: even faster atob (Daniel Lemire) #52443 - [
a5d63f9052
] - buffer: use size_t instead of uint32_t to avoid segmentation fault (Xavier Stouder) #48033 - [
f1bc994826
] - buffer: remove lines setting indexes to integer value (Zhenwei Jin) #52588 - [
a97ff753ab
] - build: add option to enable clang-cl on Windows (MichaΓ«l Zasso) #52870 - [
f96466a92c
] - build: enable building with shared uvwasi lib (Pooja D P) #43987 - [
b463385aa8
] - build: remove deprecated calls for argument groups (Mohammed Keyvanzadeh) #52913 - [
daeb7dbb3e
] - build: sync V8 warning cflags with BUILD.gn (MichaΓ«l Zasso) #52873 - [
eed967430d
] - build: harmonize Clang checks (MichaΓ«l Zasso) #52873 - [
e4b187433d
] - build: compile with C++20 support (MichaΓ«l Zasso) #52838 - [
aea6ca25ba
] - build: drop base64 dep in GN build (Cheng) #52856 - [
7f866a8225
] - build: make simdjson a public dep in GN build (Cheng) #52755 - [
e1bd53c098
] - build: defineNOMINMAX
in common.gypi (Chengzhong Wu) #52794 - [
18c530f8f7
] - build, tools: copy release assets to staging R2 bucket once built (flakey5) #51394 - [
fb85d38e80
] - (SEMVER-MINOR) cli: allow running wasm in limited vmem with --disable-wasm-trap-handler (Joyee Cheung) #52766 - [
11e978916f
] - cluster: replaceforEach
withfor-of
loop (JΓ©rΓ΄me Benoit) #50317 - [
db76c58d68
] - console: colorize console error and warn (Jithil P Ponnan) #51629 - [
0d040a3035
] - crypto: fix duplicated switch-case return values (Mustafa AteΕ UZUN) #49030 - [
ab7219f0b2
] - deps: update googletest to fa6de7f (Node.js GitHub Bot) #52949 - [
4ab096eccc
] - deps: update simdjson to 3.9.2 (Node.js GitHub Bot) #52947 - [
89f275b1df
] - deps: update corepack to 0.28.1 (Node.js GitHub Bot) #52946 - [
fc568b4b42
] - deps: update simdutf to 5.2.8 (Node.js GitHub Bot) #52727 - [
e399360182
] - deps: update simdutf to 5.2.6 (Node.js GitHub Bot) #52727 - [
232831f013
] - deps: enable unbundling of simdjson, simdutf, ada (Daniel Lemire) #52924 - [
7ca83a5abc
] - deps: update googletest to 2d16ed0 (Node.js GitHub Bot) #51657 - [
3b15eb5911
] - deps: update googletest to d83fee1 (Node.js GitHub Bot) #51657 - [
4190d70035
] - deps: update googletest to 5a37b51 (Node.js GitHub Bot) #51657 - [
7a166a2871
] - deps: update googletest to 5197b1a (Node.js GitHub Bot) #51657 - [
812dbd749f
] - deps: update googletest to eff443c (Node.js GitHub Bot) #51657 - [
cb3ae4b9ef
] - deps: update googletest to c231e6f (Node.js GitHub Bot) #51657 - [
d97317aaa1
] - deps: update googletest to e4fdb87 (Node.js GitHub Bot) #51657 - [
ad8ca1259f
] - deps: update googletest to 5df0241 (Node.js GitHub Bot) #51657 - [
828f0d7096
] - deps: update googletest to b75ecf1 (Node.js GitHub Bot) #51657 - [
3b60dbcf7b
] - deps: update googletest to 4565741 (Node.js GitHub Bot) #51657 - [
37098eb880
] - deps: update simdjson to 3.9.1 (Node.js GitHub Bot) #52397 - [
a13cf1c049
] - deps: update uvwasi to 0.0.21 (Node.js GitHub Bot) #52863 - [
faf8ada719
] - deps: V8: cherry-pick f6bef09b3b0a (Richard Lau) #52802 - [
8e5844c2a4
] - doc: remove reference to AUTHORS file (Marco Ippolito) #52960 - [
1f3634e30f
] - doc: update hljs with the latest styles (Aviv Keller) #52911 - [
9102255749
] - doc: mention quicker way to build docs (Alex Crawford) #52937 - [
15db3ef5fb
] - doc: mention push.followTags config (Rafael Gonzaga) #52906 - [
80fa675af2
] - doc: document pipeline withend
option (Alois Klink) #48970 - [[
c0000f4118
](c0000f4118...
2024-05-09, Version 20.13.1 'Iron' (LTS), @marco-ippolito
2024-05-09, Version 20.13.1 'Iron' (LTS), @marco-ippolito
Revert "tools: install npm PowerShell scripts on Windows"
Due to a regression in the npm installation on Windows, this commit reverts the change that installed npm PowerShell scripts on Windows.
Commits
- [
b7d80802cc
] - Revert "tools: install npm PowerShell scripts on Windows" (marco-ippolito) #52897
2024-05-07, Version 20.13.0 'Iron' (LTS), @marco-ippolito
2024-05-07, Version 20.13.0 'Iron' (LTS), @marco-ippolito
buffer: improve base64
and base64url
performance
The performance of the base64
and base64url
encoding and decoding functions has been improved significantly.
Contributed by Yagiz Nizipli in #52428
crypto: deprecate implicitly shortened GCM tags
This release, introduces a doc-only deprecation of using GCM authentication tags that are shorter than the cipher's block size, unless the user specified the authTagLength
option.
Contributed by Tobias NieΓen in #52345
events,doc: mark CustomEvent as stable
From this release CustomEvent
has been marked stable.
Contributed by Daeyeon Jeong in #52618
fs: add stacktrace to fs/promises
Sync functions in fs throwed an error with a stacktrace which is helpful for debugging. But functions in fs/promises throwed an error without a stacktrace. This commit adds stacktraces by calling Error.captureStacktrace
and re-throwing the error.
Contributed by ηΏ / green in #49849
report: add --report-exclude-network
option
New option --report-exclude-network
, also available as report.excludeNetwork
, enables the user to exclude networking interfaces in their diagnostic report. On some systems, this can cause the report to take minutes to generate so this option can be used to optimize that.
Contributed by Ethan Arrowood in #51645
src: add uv_get_available_memory to report and process
From this release it is possible to get the available memory in the system by calling process.getAvailableMemory()
.
Contributed by theanarkh #52023
stream: support typed arrays
This commit adds support for typed arrays in streams.
Contributed by IlyasShabi #51866
util: support array of formats in util.styleText
It is now possible to pass an array of format strings to util.styleText
to apply multiple formats to the same text.
console.log(util.styleText(['underline', 'italic'], 'My italic underlined message'));
Contributed by Marco Ippolito in #52040
v8: implement v8.queryObjects() for memory leak regression testing
This is similar to the queryObjects() console API provided by the Chromium DevTools console. It can be used to search for objects that have the matching constructor on its prototype chain in the heap after a full garbage collection, which can be useful for memory leak regression tests.
To avoid surprising results, users should avoid using this API on constructors whose implementation they don't control, or on constructors that can be invoked by other parties in the application.
To avoid accidental leaks, this API does not return raw references to the objects found. By default, it returns the count of the objects found. If options.format is 'summary', it returns an array containing brief string representations for each object. The visibility provided in this API is similar to what the heap snapshot provides, while users can save the cost of serialization and parsing and directly filer the target objects during the search.
We have been using this API internally for the test suite, which has been more stable than any other leak regression testing strategies in the CI. With a public implementation we can now use the public API instead.
const { queryObjects } = require('node:v8');
class A { foo = 'bar'; }
console.log(queryObjects(A)); // 0
let a = new A();
console.log(queryObjects(A)); // 1
// [ "A { foo: 'bar' }" ]
console.log(queryObjects(A, { format: 'summary' }));
// Release the object.
a = null;
// Search again. queryObjects() includes a full garbage collection
// so a should disappear.
console.log(queryObjects(A)); // 0
class B extends A { bar = 'qux'; }
// The child class B's prototype has A's prototype on its prototype chain
// so the prototype object shows up too.
console.log(queryObjects(A, { format: 'summary' })); // [ A {}' ]
Contributed by Joyee Cheung in #51927
watch: mark as stable
From this release Watch Mode is considered stable.
When in watch mode, changes in the watched files cause the Node.js process to restart.
Contributed by Moshe Atlow in #52074
Other Notable Changes
- [
f8ad30048d
] - benchmark: add AbortSignal.abort benchmarks (Raz Luvaton) #52408 - [
3b41da9a56
] - (SEMVER-MINOR) deps: update simdutf to 5.0.0 (Daniel Lemire) #52138 - [
0a08c4a7b3
] - (SEMVER-MINOR) deps: update undici to 6.3.0 (Node.js GitHub Bot) #51462 - [
f1b7bda4f5
] - (SEMVER-MINOR) deps: update undici to 6.2.1 (Node.js GitHub Bot) #51278 - [
4acca8ed84
] - (SEMVER-MINOR) dns: add order option and support ipv6first (Paolo Insogna) #52492 - [
cc67720ff9
] - doc: update release gpg keyserver (marco-ippolito) #52257 - [
c2def7df96
] - doc: add release key for marco-ippolito (marco-ippolito) #52257 - [
807c89cb26
] - doc: add UlisesGascon as a collaborator (Ulises GascΓ³n) #51991 - [
5e78a20ef9
] - (SEMVER-MINOR) doc: deprecate fs.Stats public constructor (Marco Ippolito) #51879 - [
722fe64ff7
] - (SEMVER-MINOR) lib, url: add awindows
option to path parsing (Aviv Keller) #52509 - [
d116fa1568
] - (SEMVER-MINOR) net: add CLI option for autoSelectFamilyAttemptTimeout (Paolo Insogna) #52474 - [
6af7b78b0d
] - (SEMVER-MINOR) src: addstring_view
overload to snapshot FromBlob (Anna Henningsen) #52595 - [
b3a11b574b
] - (SEMVER-MINOR) src: preload function for Environment (Cheng Zhao) #51539 - [
41646d9c9e
] - (SEMVER-MINOR) test_runner: add suite() (Colin Ihrig) #52127 - [
fc9ba17f6c
] - (SEMVER-MINOR) test_runner: addtest:complete
event to reflect execution order (Moshe Atlow) #51909
Commits
- [
6fdd748b21
] - benchmark: reduce the buffer size for blob (Debadree Chatterjee) #52548 - [
2274d0c868
] - benchmark: inherit stdio/stderr instead of pipe (Ali Hassan) #52456 - [
0300598315
] - benchmark: add ipc support to spawn stdio config (Ali Hassan) #52456 - [
f8ad30048d
] - benchmark: add AbortSignal.abort benchmarks (Raz Luvaton) #52408 - [
7508d48736
] - benchmark: conditionally use spawn with taskset for cpu pinning (Ali Hassan) #52253 - [
ea8e72e185
] - benchmark: add toNamespacedPath bench (Rafael Gonzaga) #52236 - [
c00715cc1e
] - benchmark: add style-text benchmark (Rafael Gonzaga) #52004 - [
1c1a6935ee
] - buffer: add missing ARG_TYPE(ArrayBuffer) for isUtf8 (Jungku Lee) #52477 - [
1b2aff7dce
] - buffer: improvebase64
andbase64url
performance (Yagiz Nizipli) #52428 - [
328bded5ab
] - buffer: improvebtoa
performance (Yagiz Nizipli) #52427 - [
e67bc34326
] - buffer: use simdutf foratob
implementation (Yagiz Nizipli) #52381 - [
5abddb45d8
] - build: fix typo in node.gyp (MichaΓ«l Zasso) #52719
...
2024-05-02, Version 22.1.0 (Current), @targos prepared by @aduh95
module: implement NODE_COMPILE_CACHE
for automatic on-disk code caching
This patch implements automatic on-disk code caching that can be enabled
via an environment variable NODE_COMPILE_CACHE=/path/to/cache/dir
.
When set, whenever Node.js compiles a CommonJS or a ECMAScript Module,
it will use on-disk V8 code cache
persisted in the specified directory
to speed up the compilation. This may slow down the first load of a
module graph, but subsequent loads of the same module graph may get
a significant speedup if the contents of the modules do not change.
Locally, this speeds up loading of test/fixtures/snapshot/typescript.js
from ~130ms to ~80ms.
To clean up the generated code cache, simply remove the directory.
It will be recreated the next time the same directory is used for
NODE_COMPILE_CACHE
.
Compilation cache generated by one version of Node.js may not be used
by a different version of Node.js. Cache generated by different versions
of Node.js will be stored separately if the same directory is used
to persist the cache, so they can co-exist.
Caveat: currently when using this with V8 JavaScript code coverage, the
coverage being collected by V8 may be less precise in functions that are
deserialized from the code cache. It's recommended to turn this off when
running tests to generate precise coverage.
Contributed by Joyee Cheung in #52535.
Other Notable Changes
- [
44ee04cf9f
] - buffer: improvebase64
andbase64url
performance (Yagiz Nizipli) #52428 - [
3c37ce5710
] - (SEMVER-MINOR) dns: add order option and support ipv6first (Paolo Insogna) #52492 - [
3026401be1
] - events,doc: mark CustomEvent as stable (Daeyeon Jeong) #52618 - [
64428dc1c9
] - (SEMVER-MINOR) lib, url: add awindows
option to path parsing (Aviv Keller) #52509 - [
d79ae74f71
] - (SEMVER-MINOR) net: add CLI option for autoSelectFamilyAttemptTimeout (Paolo Insogna) #52474 - [
43fa6a1a45
] - (SEMVER-MINOR) src: addstring_view
overload to snapshot FromBlob (Anna Henningsen) #52595 - [
c6fe433d42
] - src,permission: throw async errors on async APIs (Rafael Gonzaga) #52730 - [
e247a61d15
] - (SEMVER-MINOR) test_runner: add --test-skip-pattern cli option (Aviv Keller) #52529 - [
9b18df9dcb
] - (SEMVER-MINOR) url: implement parse method for safer URL parsing (Ali Hassan) #52280
Commits
- [
35643c18c0
] - benchmark: reduce the buffer size for blob (Debadree Chatterjee) #52548 - [
7cdfe8a3fc
] - benchmark: inherit stdio/stderr instead of pipe (Ali Hassan) #52456 - [
7b82c17f22
] - benchmark: add ipc support to spawn stdio config (Ali Hassan) #52456 - [
dfda6fed61
] - buffer: add missing ARG_TYPE(ArrayBuffer) for isUtf8 (Jungku Lee) #52477 - [
44ee04cf9f
] - buffer: improvebase64
andbase64url
performance (Yagiz Nizipli) #52428 - [
c64a1a3b89
] - build: fix typo in node.gyp (MichaΓ«l Zasso) #52719 - [
4f713fbc2e
] - build: fix headers install for shared mode on Win (Segev Finer) #52442 - [
4baeb7b21d
] - build: fix arm64 cross-compilation bug on non-arm machines (Mahdi Sharifi) #52559 - [
d5cd468ce8
] - build,tools,node-api: fix building node-api tests for Windows Debug (Vladimir Morozov) #52632 - [
910533fcfd
] - crypto: simplify assertions in Safe*Print (David Benjamin) #49709 - [
61e1ac0b8c
] - crypto: enable NODE_EXTRA_CA_CERTS with BoringSSL (Shelley Vohr) #52217 - [
6e98eee256
] - deps: upgrade npm to 10.7.0 (npm team) #52767 - [
27a5f9418c
] - deps: V8: cherry-pick 500de8bd371b (Richard Lau) #52676 - [
3b422ddcea
] - deps: update corepack to 0.28.0 (Node.js GitHub Bot) #52616 - [
d40e4d4c42
] - deps: update ada to 2.7.8 (Node.js GitHub Bot) #52517 - [
5b52a4870a
] - deps: update icu to 75.1 (Node.js GitHub Bot) #52573 - [
80cbe72c1f
] - deps: update undici to 6.13.0 (Node.js GitHub Bot) #52493 - [
9a44059055
] - deps: update zlib to 1.3.0.1-motley-7d77fb7 (Node.js GitHub Bot) #52516 - [
d67a9a5360
] - deps: update minimatch to 9.0.4 (Node.js GitHub Bot) #52524 - [
8738b89971
] - deps: upgrade npm to 10.5.2 (npm team) #52458 - [
8e4fd2842b
] - deps,src: simplify base64 encoding (Daniel Lemire) #52714 - [
3c37ce5710
] - (SEMVER-MINOR) dns: add order option and support ipv6first (Paolo Insogna) #52492 - [
3987a28a9e
] - doc: update process.versions properties (ishabi) #52736 - [
c0b58e07f1
] - doc: remove mold use on mac for speeding up build (Cong Zhang) #52252 - [
9a032cf6e2
] - doc: remove relative limitation to pm (Rafael Gonzaga) #52648 - [
90c6e77238
] - doc: fix info string causing duplicated code blocks (Mathieu Leenhardt) #52660 - [
4d577fa048
] - doc: add .gitattributes for md files (Hüseyin Açacak) #52161 - [
04c8e110e5
] - doc: run license-builder (github-actions[bot]) #52631 - [
3552829594
] - doc: add info on contributor spotlight program (Michael Dawson) #52598 - [
eeb80ad836
] - doc: correct unsafe URL example in http docs (Malte Legenhausen) #52555 - [
c83526a688
] - doc: replace U+00A0 with U+0020 (Luigi Pinca) #52590 - [
31831e9db8
] - doc: sort options alphabetically (Luigi Pinca) #52589 - [
a93f5d4aaa
] - doc: correct stream.finished changes (KaKa) #52551 - [
27ffa35540
] - doc: add RedYetiDev to triage team (Aviv Keller) #52556 - [
63cc2b870e
] - doc: fix issue detected in markdown lint update (Rich Trott) #52566 - [
7e93c4892b
...
2024-04-24, Version 22.0.0 (Current), @RafaelGSS and @marco-ippolito
We're excited to announce the release of Node.js 22!
Highlights include require()ing ESM graphs, WebSocket client, updates of the V8 JavaScript engine, and more!
As a reminder, Node.js 22 will enter long-term support (LTS) in October, but until then, it will be the "Current" release for the next six months.
We encourage you to explore the new features and benefits offered by this latest release and evaluate their potential impact on your applications.
Other Notable Changes
- [
25c79f3331
] - esm: drop support for import assertions (NicolΓ² Ribaudo) #52104 - [
818c10e86d
] - lib: improve perf ofAbortSignal
creation (Raz Luvaton) #52408 - [
4f68c7c1c9
] - watch: mark as stable (Moshe Atlow) #52074 - [
02b0bc01fe
] - (SEMVER-MAJOR) deps: update V8 to 12.4.254.14 (MichaΓ«l Zasso) #52465 - [
c975384264
] - (SEMVER-MAJOR) lib: enable WebSocket by default (Aras Abbasi) #51594 - [
1abff07392
] - (SEMVER-MAJOR) stream: bump default highWaterMark (Robert Nagy) #52037 - [
1a5acd0638
] - (SEMVER-MAJOR) v8: enable maglev on supported architectures (Keyhan Vakil) #51360 - [
128c60d906
] - (SEMVER-MINOR) cli: implementnode --run <script-in-package-json>
(Yagiz Nizipli) #52190 - [
151d365ad1
] - (SEMVER-MINOR) fs: expose glob and globSync (Moshe Atlow) #51912 - [
5f7fad2605
] - (SEMVER-MINOR) module: support require()ing synchronous ESM graphs (Joyee Cheung) #51977
Semver-Major Commits
- [
2b1e7c2fcb
] - (SEMVER-MAJOR) build: compile with C++20 support on Windows (StefanStojanovic) #52465 - [
12d00f1479
] - (SEMVER-MAJOR) build: reset embedder string to "-node.0" (MichaΓ«l Zasso) #52465 - [
5f08e11a3c
] - (SEMVER-MAJOR) build: reset embedder string to "-node.0" (MichaΓ«l Zasso) #52293 - [
94f0369d1d
] - (SEMVER-MAJOR) build: reset embedder string to "-node.0" (MichaΓ«l Zasso) #51362 - [
58674cd1d8
] - (SEMVER-MAJOR) build: reset embedder string to "-node.0" (MichaΓ«l Zasso) #50115 - [
60e836427e
] - (SEMVER-MAJOR) console: treat non-strings as separate argument in console.assert() (Jacob Hummer) #49722 - [
d62ab3a1ef
] - (SEMVER-MAJOR) crypto: runtime deprecate hmac constructor (Marco Ippolito) #52071 - [
de0602d190
] - (SEMVER-MAJOR) crypto: runtime deprecate Hash constructor (Marco Ippolito) #51880 - [
215f4d04b7
] - (SEMVER-MAJOR) crypto: move createCipher and createDecipher to eol (Marco Ippolito) #50973 - [
30801b8aaf
] - (SEMVER-MAJOR) deps: V8: cherry-pick cd10ad7cdbe5 (Joyee Cheung) #52465 - [
521b629ab1
] - (SEMVER-MAJOR) deps: V8: revert CL 5331688 (MichaΓ«l Zasso) #52465 - [
3795e97e6c
] - (SEMVER-MAJOR) deps: patch V8 to support compilation with MSVC (StefanStojanovic) #52465 - [
5bde9e677d
] - (SEMVER-MAJOR) deps: silence internal V8 deprecation warning (MichaΓ«l Zasso) #52465 - [
46e628c6f2
] - (SEMVER-MAJOR) deps: patch V8 to avoid duplicated zlib symbol (MichaΓ«l Zasso) #52465 - [
f824e40a82
] - (SEMVER-MAJOR) deps: remove usage of a C++20 feature from V8 (MichaΓ«l Zasso) #52465 - [
d2c84c9a13
] - (SEMVER-MAJOR) deps: avoid compilation error with ASan (MichaΓ«l Zasso) #52465 - [
95d6045bdb
] - (SEMVER-MAJOR) deps: disable V8 concurrent sparkplug compilation (MichaΓ«l Zasso) #52465 - [
00f55f5743
] - (SEMVER-MAJOR) deps: silence irrelevant V8 warning (MichaΓ«l Zasso) #52465 - [
764085aa66
] - (SEMVER-MAJOR) deps: always define V8_EXPORT_PRIVATE as no-op (MichaΓ«l Zasso) #52465 - [
02b0bc01fe
] - (SEMVER-MAJOR) deps: update V8 to 12.4.254.14 (MichaΓ«l Zasso) #52465 - [
0ec50a19dd
] - (SEMVER-MAJOR) deps: V8: cherry-pick cd10ad7cdbe5 (Joyee Cheung) #52293 - [
021b0b7dee
] - (SEMVER-MAJOR) deps: V8: backport c4be0a97f981 (Richard Lau) #52293 - [
681aaf85c7
] - (SEMVER-MAJOR) deps: silence internal V8 deprecation warning (MichaΓ«l Zasso) #52293 - [
c563a1c4e4
] - (SEMVER-MAJOR) deps: patch V8 to support compilation with MSVC (Stefan Stojanovic) #52293 - [
11e94b9987
] - (SEMVER-MAJOR) deps: patch V8 to avoid duplicated zlib symbol (MichaΓ«l Zasso) #52293 - [
856163e23c
] - (SEMVER-MAJOR) deps: remove usage of a C++20 feature from V8 (MichaΓ«l Zasso) #52293 - [
b530214127
] - (SEMVER-MAJOR) deps: avoid compilation error with ASan (MichaΓ«l Zasso) #52293 - [
8054f69dd9
] - (SEMVER-MAJOR) deps: disable V8 concurrent sparkplug compilation (MichaΓ«l Zasso) #52293 - [
dee908be42
] - (SEMVER-MAJOR) deps: silence irrelevant V8 warning (MichaΓ«l Zasso) #52293 - [
cf069414ee
] - (SEMVER-MAJOR) deps: always define V8_EXPORT_PRIVATE as no-op (MichaΓ«l Zasso) #52293 - [
cc5792dd85
] - (SEMVER-MAJOR) deps: update V8 to 12.3.219.16 (MichaΓ«l Zasso) #52293 - [
61a0d3b4c4
] - (SEMVER-MAJOR) deps: V8: backport c4be0a97f981 (Richard Lau) #51362 - [
f55380a725
] - (SEMVER-MAJOR) deps: V8: cherry-pick f8d5e576b814 (Richard Lau) #51362 - [
b9d806a2dd
] - (SEMVER-MAJOR) deps: patch V8 to support compilation with MSVC (StefanStojanovic) #51362 - [
63b58bc17b
] - (SEMVER-MAJOR) deps: patch V8 to avoid duplicated zlib symbol (MichaΓ«l Zasso) #51362 - [
86056353c4
] - (SEMVER-MAJOR) deps: remove usage of a C++20 feature from V8 (MichaΓ«l Zasso) #51362 - [[
2e0efc1c8d
](2e0efc1c8...
2024-04-10, Version 21.7.3 (Current), @RafaelGSS
This is a security release.
Notable Changes
- CVE-2024-27980 - Command injection via args parameter of
child_process.spawn
without shell option enabled on Windows
Commits
- [
9095c914ed
] - src: disallow direct .bat and .cmd file spawning (Ben Noordhuis) nodejs-private/node-private#562
2024-04-10, Version 20.12.2 'Iron' (LTS), @RafaelGSS
This is a security release.
Notable Changes
- CVE-2024-27980 - Command injection via args parameter of
child_process.spawn
without shell option enabled on Windows
Commits
- [
69ffc6d50d
] - src: disallow direct .bat and .cmd file spawning (Ben Noordhuis) nodejs-private/node-private#563