Node.js v12.20.0 (LTS)
Myles Borins
Notable Changes
- crypto:
- update certdata to NSS 3.56 (Shelley Vohr) https://github.com/nodejs/node/pull/35546
 
- deps:
- update llhttp to 2.1.3 (Fedor Indutny) https://github.com/nodejs/node/pull/35435
- (SEMVER-MINOR) upgrade to libuv 1.40.0 (Colin Ihrig) https://github.com/nodejs/node/pull/35333
 
- doc:
- add aduh95 to collaborators (Antoine du Hamel) https://github.com/nodejs/node/pull/35542
 
- fs:
- (SEMVER-MINOR) add .ref() and .unref() methods to watcher classes (rickyes) https://github.com/nodejs/node/pull/33134
 
- http:
- (SEMVER-MINOR) added scheduling option to http agent (delvedor) https://github.com/nodejs/node/pull/33278
 
- module:
- (SEMVER-MINOR) exports pattern support (Guy Bedford) https://github.com/nodejs/node/pull/34718
- (SEMVER-MINOR) named exports for CJS via static analysis (Guy Bedford) https://github.com/nodejs/node/pull/35249
 
- n-api:
- (SEMVER-MINOR) add more property defaults (Gerhard Stoebich) https://github.com/nodejs/node/pull/35214
 
- src:
- (SEMVER-MINOR) move node*contextify to modern THROW_ERR_* (James M Snell) https://github.com/nodejs/node/pull/35470
- (SEMVER-MINOR) move node_process to modern THROW_ERR* (James M Snell) https://github.com/nodejs/node/pull/35472
- (SEMVER-MINOR) expose v8::Isolate setup callbacks (Shelley Vohr) https://github.com/nodejs/node/pull/35512
 
Commits
- [c6eb0b62d9] - benchmark: ignore build artifacts for napi addons (Richard Lau) #35970
- [f3a045720c] - build: fuzzer that targets node::LoadEnvironment() (davkor) #34844
- [48bc3fcd4c] - build: improved release lint error message (Shelley Vohr) #35523
- [2e766a6adf] - console: add Symbol.toStringTag property (Leko) #35399
- [90244362cc] - crypto: fix KeyObject garbage collection (Anna Henningsen) #35481
- [42f64eba89] - crypto: update certdata to NSS 3.56 (Shelley Vohr) #35546
- [a6f58c0888] - crypto: set env values in KeyObject Deserialize method (ThakurKarthik) #35416
- [6539cf2725] - deps: upgrade to cjs-module-lexer@1.0.0 (Guy Bedford) #35928
- [bdcc77bdf4] - deps: update to cjs-module-lexer@0.5.2 (Guy Bedford) #35901
- [5b8d3c74e8] - deps: upgrade to cjs-module-lexer@0.5.0 (Guy Bedford) #35871
- [d7f0e3e5f0] - deps: update to cjs-module-lexer@0.4.3 (Guy Bedford) #35745
- [0a1474d9df] - deps: update llhttp to 2.1.3 (Fedor Indutny) #35435
- [cf07a8695a] - deps: upgrade to libuv 1.40.0 (Colin Ihrig) #35333
- [cc11464b4e] - deps: upgrade to c-ares v1.16.1 (Shelley Vohr) #35324
- [5405e62eaf] - deps: update to uvwasi 0.0.11 (Colin Ihrig) #35104
- [44c739cc49] - deps: V8: cherry-pick 6be2f6e26e8d (Benjamin Coe) #35055
- [b78a1a186f] - doc: update releaser in v12.18.4 changelog (Beth Griggs) #35217
- [1cd1d0159d] - doc: move package.import content higher (Myles Borins) #35535
- [79f3c323f6] - doc: fix broken links in modules.md (Rich Trott) #35182
- [b4941cfaec] - doc: make minor improvements to module.md (Rich Trott) #35083
- [7dc3b74c34] - doc: add ESM examples inmoduleAPI doc page (Antoine du HAMEL) #34875
- [f0b06b64ff] - doc: move module core module doc to separate page (Antoine du HAMEL) #34747
- [77555d8500] - doc: put landing specifics in details tag (Rich Trott) #35296
- [b50b34b30e] - doc: put release script specifics in details (Myles Borins) #35260
- [1a8f3a844e] - doc: copyedit esm.md (Rich Trott) #35414
- [d99120040c] - doc: error code fix in resolver spec (Guy Bedford) #34998
- [df52814113] - doc: document Buffer.concat may use internal pool (Andrey Pechkurov) #35541
- [42a587f9ba] - doc: use test username instead of real (Pooja D.P) #35611
- [bfff4fc3c9] - doc: revise description of process.ppid (Pooja D.P) #35589
- [a9ac75480f] - doc: add symlink information for process.execpath (Pooja D.P) #35590
- [5fea51b66c] - doc: add PoojaDurgad as a triager (Pooja D.P) #35153
- [a0b541c3e0] - doc: use kbd element in process doc (Rich Trott) #35584
- [992355cdf9] - doc: simplify wording in tracing APIs doc (Pooja D.P) #35556
- [05db4b8343] - doc: improve SIGINT error text (Rich Trott) #35558
- [42c479572c] - doc: use sentence case for class property (Rich Trott) #35540
- [fb9bb05ee2] - doc: fix util.inspect change history (Antoine du Hamel) #35528
- [6952c45202] - doc: add aduh95 to collaborators (Antoine du Hamel) #35542
- [b5f752528b] - doc: update AUTHORS list (Anna Henningsen) #35280
- [370f8e3afd] - doc: update sxa's email address to Red Hat from IBM (Stewart X Addison) #35442
- [edf3fbbd14] - doc: update contact information for @BethGriggs (Beth Griggs) #35451
- [8be289e58c] - doc: update contact information for richardlau (Richard Lau) #35450
- [42c0dfcc23] - doc: importable node protocol URLs (Bradley Meck) #35434
- [c192af66e7] - doc: unhide resolver spec (Guy Bedford) #35358
- [b0e43c718c] - doc: add gpg key export directions to releases doc (Danielle Adams) #35298
- [884755f1e5] - doc: simplify circular dependencies text in modules.md (Rich Trott) #35126
- [85c47d753c] - doc: avoid double-while sentence in perf_hooks.md (Rich Trott) #35078
- [68c5ee45a2] - doc: update fs promise-based examples (Richard Lau) #35760
- [66f8730441] - doc: add history entry for exports patterns (Antoine du Hamel) #35410
- [a7e66b635d] - doc: fix conditional exports flag removal version (Antoine du Hamel) #35428
- [9197a6651d] - doc: copyedit packages.md (Rich Trott) #35427
- [f507ca9e21] - doc: packages docs feedback (Guy Bedford) #35370
- [5330930128] - doc: refine require/import conditions constraints (Guy Bedford) #35311
- [5f0b1571a7] - doc: edit subpath export patterns introduction (Rich Trott) #35254
- [d6a13a947e] - doc: document support for package.json fields (Antoine du HAMEL) #34970
- [7c1700e143] - doc: move package config docs to separate page (Antoine du HAMEL) #34748
- [7510667d87] - doc: rename module pages (Antoine du HAMEL) #34663
- [b644ab6ae6] - doc: fix line length in worker_threads.md (Jucke) #34419
- [fb9b66bdd7] - doc: fix typos in n-api, tls and worker_threads (Jucke) #34419
- [1f34230373] - doc,esm: document experimental warning removal (Antoine du Hamel) #35750
- [985b96a7d5] - doc,esm: add history support info (Antoine du Hamel) #35395
- [548137f4ec] - errors: simplify ERR_REQUIRE_ESM message generation (Rich Trott) #35123
- [f22672de18] - errors: improve ERR_INVALID_OPT_VALUE error (Denys Otrishko) #34671
- [7a98961a26] - esm: fix hook mistypes and links to types (Derek Lewis) #34240
- [0f757bc2df] - esm: use "node:" namespace for builtins (Guy Bedford) #35387
- [b48473228c] - events: assume an EventEmitter if emitter.on is a function (Luigi Pinca) #35818
- [19d711391e] - fs: simplify realpathSync (himself65) #35413
- [decfc2ae5c] - fs: add .ref() and .unref() methods to watcher classes (rickyes) #33134
- [cce464513e] - http: added scheduling option to http agent (delvedor) #33278
- [d477e2e147] - http: only set keep-alive when not exists (atian25@qq.com) #35138
- [f10d721737] - http: reset headers timeout on headers complete (Robert Nagy) #34578
- [c8a778985b] - http2: avoid unnecessary buffer resize (Denys Otrishko) #34480
- [b732c92e3d] - http2: use and support non-empty DATA frame with END_STREAM flag (Carlos Lopez) #33875
- [bfce0eb13a] - Revert "http2: streamline OnStreamRead streamline memory accounting" (Rich Trott) #34315
- [e85ca7af43] - http2: wait for session socket writable end on close/destroy (Denys Otrishko) #30854
- [2471197099] - http2: wait for session to finish writing before destroy (Denys Otrishko) #30854
- [82af8acc8e] - http2,doc: minor fixes (Alba Mendez) #28044
- [a3e8829d4a] - inspector: do not hardcode Debugger.CallFrameId in tests (Dmitry Gozman) #35570
- [6efa140f8f] - lib: change http client path assignment (Yohanan Baruchel) #35508
- [ad7281b081] - lib: use remaining typed arrays from primordials (Michaël Zasso) #35499
- [a9a606f06b] - lib: use full URL to GitHub issues in comments (Rich Trott) #34686
- [ea239392c2] - module: cjs-module-lexer@0.4.1 big endian fix (Guy Bedford) #35634
- [354f358c1b] - module: use Wasm CJS lexer when available (Guy Bedford) #35583
- [76f76017bf] - module: fix builtin reexport tracing (Guy Bedford) #35500
- [992af4e112] - module: fix specifier resolution option value (himself65) #35098
- [1ff956f49e] - module: remove experimental modules warning (Guy Bedford) #31974
- [41af927efb] - module: exports pattern support (Guy Bedford) #34718
- [a18d0df33a] - module: update to cjs-module-lexer@0.4.0 (Guy Bedford) #35501
- [6ca8fb552d] - module: refine module type mismatch error cases (Guy Bedford) #35426
- [9eb1fa1924] - module: named exports for CJS via static analysis (Guy Bedford) #35249
- [a93ca2d494] - n-api: revert change to finalization (Michael Dawson) #35777
- [5faaa603d8] - n-api: support for object freeze/seal (Shelley Vohr) #35359
- [d938e8508b] - n-api: add more property defaults (Gerhard Stoebich) #35214
- [18f01ddcb5] - repl: improve static import error message in repl (Myles Borins) #33588
- [70768ce109] - repl: give repl entries unique names (Bradley Meck) #34372
- [e9bee3950c] - src: move node_contextify to modern THROW_ERR_* (James M Snell) #35470
- [b741f2ff84] - src: move node_process to modern THROW_ERR* (James M Snell) #35472
- [2d5393bb28] - src: fix freeing unintialized pointer bug in ParseSoaReply (Aastha Gupta) #35502
- [dec004f742] - src: expose v8::Isolate setup callbacks (Shelley Vohr) #35512
- [7f8834f76c] - src: more idiomatic error pattern in node_wasi (James M Snell) #35493
- [ade27b732b] - src: use env->ThrowUVException in pipe_wrap (James M Snell) #35493
- [e70b05208f] - src: remove invalid ToLocalChecked in EmitBeforeExit (Anna Henningsen) #35484
- [cd80195524] - src: make MakeCallback() check can_call_into_js before getting method (Anna Henningsen) #35424
- [8a1091648c] - stream: destroy wrapped streams on error (Robert Nagy) #34102
- [fdc67ebf5f] - test: replace annonymous functions with arrow (Pooja D.P) #34921
- [c3e1bf78c4] - test: add wasi readdir() test (Colin Ihrig) #35202
- [607f3c5d84] - test: fix comment about DNS lookup test (Tobias Nießen) #35080
- [02787ce5d1] - test: add ALPNProtocols option to clientOptions (Luigi Pinca) #35482
- [12d76b8e8e] - tls: reset secureConnecting on client socket (David Halls) #33209
- [adf4f90bce] - tools: refloat 7 Node.js patches to cpplint.py (Rich Trott) #35569
- [1173efca27] - tools: bump cpplint.py to 1.4.6 (Rich Trott) #35569
- [09552670fe] - tools: add missing uv_setup_argv() calls (Anna Henningsen) #35491
- [ae149232a1] - tools: exclude gyp from markdown link checker (Michaël Zasso) #35423
- [a9ce9b2614] - tools: update ESLint to 7.10.0 (Colin Ihrig) #35366
- [bc7da0c22c] - tools: ignore build folder when checking links (Ash Cripps) #35315
- [f29717437f] - tools,doc: enforce alphabetical order for md refs (Antoine du Hamel) #35244
- [11b10d7d1f] - tools,doc: upgrade dependencies (Antoine du Hamel) #35244
Windows 32-bit Installer: https://nodejs.org/dist/v12.20.0/node-v12.20.0-x86.msi 
Windows 64-bit Installer: https://nodejs.org/dist/v12.20.0/node-v12.20.0-x64.msi 
Windows 32-bit Binary: https://nodejs.org/dist/v12.20.0/win-x86/node.exe 
Windows 64-bit Binary: https://nodejs.org/dist/v12.20.0/win-x64/node.exe 
macOS 64-bit Installer: https://nodejs.org/dist/v12.20.0/node-v12.20.0.pkg 
macOS 64-bit Binary: https://nodejs.org/dist/v12.20.0/node-v12.20.0-darwin-x64.tar.gz 
Linux 64-bit Binary: https://nodejs.org/dist/v12.20.0/node-v12.20.0-linux-x64.tar.xz 
Linux PPC LE 64-bit Binary: https://nodejs.org/dist/v12.20.0/node-v12.20.0-linux-ppc64le.tar.xz 
Linux s390x 64-bit Binary: https://nodejs.org/dist/v12.20.0/node-v12.20.0-linux-s390x.tar.xz 
AIX 64-bit Binary: https://nodejs.org/dist/v12.20.0/node-v12.20.0-aix-ppc64.tar.gz 
SmartOS 64-bit Binary: https://nodejs.org/dist/v12.20.0/node-v12.20.0-sunos-x64.tar.xz 
ARMv7 32-bit Binary: https://nodejs.org/dist/v12.20.0/node-v12.20.0-linux-armv7l.tar.xz 
ARMv8 64-bit Binary: https://nodejs.org/dist/v12.20.0/node-v12.20.0-linux-arm64.tar.xz 
Source Code: https://nodejs.org/dist/v12.20.0/node-v12.20.0.tar.gz 
Other release files: https://nodejs.org/dist/v12.20.0/ 
Documentation: https://nodejs.org/docs/v12.20.0/api/
SHASUMS
-----BEGIN PGP SIGNED MESSAGE-----
Hash: SHA256
e31578c5fad164c2b292d3e13a8eded6aefd094e2abe3c9f4d9d0bf94743cc84  node-v12.20.0-aix-ppc64.tar.gz
6a8f4a0f1060552386181e10aa8db5f4b7771f7a28b3d367d7ac246d52654e6e  node-v12.20.0-darwin-x64.tar.gz
dd065bc124f9d5bbc51e34cb207827757b66c0d544b76ce495820a82a4e9f330  node-v12.20.0-darwin-x64.tar.xz
66220b276c3348e8a27e45c445cec1b3b9e113566f21abe9f4ed501d94f5676a  node-v12.20.0-headers.tar.gz
654f52da8a678291a6b76adcbb3bfcf0405a3f65c38a2e1f0627414c55f0a734  node-v12.20.0-headers.tar.xz
4c44beb80f08bd815c813a2acd3a8736593022b5a1d53ec779be0e9df0ab32ff  node-v12.20.0-linux-arm64.tar.gz
976285886f734ac4e13be8b34586136499b088aa32c6430ca8eee166d167dca5  node-v12.20.0-linux-arm64.tar.xz
4fb30d1ebd1a98b43c742b6a587423280168530e53f8008fbf442e4cb6063e9f  node-v12.20.0-linux-armv7l.tar.gz
abef7d431d6d0e067fe5797d4fe44039a5577f01ed9e40d7a3496cbb22502f55  node-v12.20.0-linux-armv7l.tar.xz
804bd2f0a77491410ff2121ce4268f846c86e445fc62e6bf7e28f2bcdfc5e80c  node-v12.20.0-linux-ppc64le.tar.gz
dbf96c192ecb5ffc234eefdb8c3f21df22b0805e5896ecdde85649d3cd79821e  node-v12.20.0-linux-ppc64le.tar.xz
976d76755efd9c1e4870ab426e6fb6249d32173772bbad23e77817d8e8dc7a7f  node-v12.20.0-linux-s390x.tar.gz
8295be2df01d29e741adb4431eb846470a9dc96b4096a6f64161e4579229ce58  node-v12.20.0-linux-s390x.tar.xz
3e25dc786fed5b3799613a9dfb8b1cea99b1208476fa06115f15e4539b333d82  node-v12.20.0-linux-x64.tar.gz
8eddb41e4b8a76cb99dd3c38826193eeb3e187301e5ef060a8bc7c18031b94f5  node-v12.20.0-linux-x64.tar.xz
aaff10ef470fcb8f0c09e5fee3a01425921bc75ddb27c54854c14cbbfa92a321  node-v12.20.0.pkg
d0c97cdedfc5b9d206c0a959f650a1058865571ded4b1a838f4dbae3931534a2  node-v12.20.0-sunos-x64.tar.gz
eacf5b957e876f2af15b92e69aa8b97c57d5c163b11759bf044f42e5f15062ff  node-v12.20.0-sunos-x64.tar.xz
b91065ebe60981faa0e1f0a37d1788154141c710bb0521635a900895a7ce8dd8  node-v12.20.0.tar.gz
61e3fd5c9af565e8d25403ce56b2c0097e2e3270381f2d4216573d48b3dc428b  node-v12.20.0.tar.xz
7467b191d36d2476b8344727c06a1f7b955021756a1af9ac15643837a64fe811  node-v12.20.0-win-x64.7z
60653195f04fd4f3fd2ae6eef85a4c872d31e3a10fded9b75904195c60b143de  node-v12.20.0-win-x64.zip
8b5ebdf1dbc2e8dfc7d42d3f0f5eaa20ef85e4f726e7a8d822a026df650937eb  node-v12.20.0-win-x86.7z
5e7f3ed6d65f08db262891bf3f933fa67ded4996e9525b90a5d0b513721f381e  node-v12.20.0-win-x86.zip
a7689d82bbb8ee8b999b15d3d87fbde682f890bf8757d714f649ebfbfb78cb23  node-v12.20.0-x64.msi
5963084911fb324afdecd31a3477484eaf441b4c2253c6dacb3d5daa78d2badb  node-v12.20.0-x86.msi
dcab6985fd97746856fe584b77c6da4069f5ece0378a38068dc81c2781fada09  win-x64/node.exe
14a0bde6ada5572a986aeb0a2f64eccf606a01a55ed588bfdce4d8b2a4724b14  win-x64/node.lib
b4cc91b6c76f1b3c9ff1f79da89cb207432edf2a8fcb0cfa7f635a0ac31e4be4  win-x64/node_pdb.7z
21a07d2a8bd2ae5269fb7cb6ed689a251b7cd63e825bf477ae30ee08e8668a34  win-x64/node_pdb.zip
87472721a30f74663b234c1f7d3b0c36ed17cd28485f376523950c74bbd636d6  win-x86/node.exe
6e8b652eea291930c3bb101e996bea256f222aec49b35864a79f00886ebb1954  win-x86/node.lib
2017ce5bc61a3dce037a3662c63fd522238235176758f88885b79aa214821f40  win-x86/node_pdb.7z
b3e40bc17265ffd7a16fd42156de624aeade91efd099cefeeed3e6ad23942783  win-x86/node_pdb.zip
-----BEGIN PGP SIGNATURE-----
iQEzBAEBCAAdFiEEDv/hvO/ZyE49CYFSkzsB9AtcqUYFAl+9NmQACgkQkzsB9Atc
qUayPwf/Yjnn+M5ggxMINjFXjHTwbBY8tBrm7O2hSOCmGkQsykG67C9jhyWFWQ7W
iOHjlltewpY34aYjBlhAuAYy1GQyjaMgGBg6ue4MALDfQv+cpuj+tmKlVMeCFnXz
jQ6KR6WRyqMzOsXyM2x6wWnUz3hv09+f2S5GeAxA8e5fFEwgJ7EQwG2yDcpeL09/
AJiy+okfm+9WIeUkkqnNRTrbUh4ln3yGT5pb4KNjMhkMd3p0ncEMcOGUtXkfUpkD
zbF6EnoJ0Z5UAZBgv7NK6YipdPSR3ckdDJr9j0hDm4RoN7PpT/0vQdHWRZH7YYiH
eZz3P3LjZelsmicjaP1zL2f4t0L6Ew==
=4vWz
-----END PGP SIGNATURE-----