Notable Changes
Corepack
Node.js now includes Corepack, a script that acts as a bridge between Node.js projects and the package managers they are intended to be used with during development.
In practical terms, Corepack will let you use Yarn and pnpm without having to install them – just like what currently happens with npm, which is shipped in Node.js by default.
Please head over to the Corepack documentation page for more information on how to use it.
Contributed by Maël Nison – #39608
V8 9.3
V8 is updated to version 9.3, which includes performance improvements and new JavaScript features.
1
Object.hasOwn
1 | Object.hasOwn |
1 | Object.hasOwn |
is a static alias for
1 | Object.prototype.hasOwnProperty.call |
:
1 Object<span class="token punctuation">.</span><span class="token function">hasOwn</span><span class="token punctuation">(</span><span class="token punctuation">{</span> value<span class="token operator">:</span> <span class="token number">42</span> <span class="token punctuation">}</span><span class="token punctuation">,</span> <span class="token string">'value'</span><span class="token punctuation">)</span><span class="token punctuation">;</span> <span class="token comment">// Returns `true`.</span>
Error cause
Errors can now be optionally constructed with a
1 | cause |
option, pointing to another error.
This adds a
1 | cause |
property on the new error:
1
2
3 <span class="token keyword">const</span> error1 <span class="token operator">=</span> <span class="token keyword">new</span> <span class="token class-name">Error</span><span class="token punctuation">(</span><span class="token string">'Error one'</span><span class="token punctuation">)</span><span class="token punctuation">;</span>
<span class="token keyword">const</span> error2 <span class="token operator">=</span> <span class="token keyword">new</span> <span class="token class-name">Error</span><span class="token punctuation">(</span><span class="token string">'Error two'</span><span class="token punctuation">,</span> <span class="token punctuation">{</span> cause<span class="token operator">:</span> error1 <span class="token punctuation">}</span><span class="token punctuation">)</span><span class="token punctuation">;</span>
<span class="token comment">// error2.cause === error1</span>
Contributed by Michaël Zasso – #39947
Other Notable Changes
- [
] – (SEMVER-MINOR) crypto: add RSA-PSS params to asymmetricKeyDetails (Tobias Nießen) #39851134c627e4bc
- [
] – (SEMVER-MINOR) module: support pattern trailers (Guy Bedford) #39635120da0a5379
- [
] – (SEMVER-MINOR) stream: add stream.compose (Robert Nagy) #390291cb44781371
Commits
- [
] – async_hooks: use resource stack for AsyncLocalStorage run (Stephen Belanger) #3989012343c394fb
- [
] – Revert “build: add windows-2022 to GitHub test matrix” (Michaël Zasso) #39982100951827cd
- [
] – build: add windows-2022 to GitHub test matrix (Michaël Zasso) #398571e7834535b3
- [
] – build: add support for Visual Studio 2022 (Michaël Zasso) #398571c49b0c0dd4
- [
] – build: fix find-inactive-collaborators workflow token (Rich Trott) #399091afdb665e57
- [
] – build: update token used for pull requests (Rich Trott) #3990710ff88f362f
- [
] – build: adapt v8_pch.h to V8 9.3 (Michaël Zasso) #394691beca890330
- [
] – build: reset embedder string to “-node.0” (Michaël Zasso) #3994712170346aa3
- [
] – cluster: fix comment regarding child_process file (Yash Ladha) #393081d33ab968ab
- [
] – crypto: fix regression in RSA-PSS keygen (Tobias Nießen) #399371585199497f
- [
] – (SEMVER-MINOR) crypto: add RSA-PSS params to asymmetricKeyDetails (Tobias Nießen) #39851134c627e4bc
- [
] – crypto: fix rsa-pss one-shot sign/verify error handling (Filip Skokan) #3983011dd91582da
- [
] – crypto: fix JWK RSA-PSS SubtleCrypto.exportKey (Filip Skokan) #39828120cf47004e
- [
] – deps: upgrade npm to 7.21.1 (npm team) #399041e25dc8e470
- [
] – deps: update archs files for OpenSSL-1.1.1l+quic (Richard Lau) #3986719270684837
- [
] – deps: upgrade openssl sources to OpenSSL_1_1_1l+quic (Richard Lau) #3986714b5bbec6cc
- [
] – (SEMVER-MINOR) deps: add corepack (Maël Nison) #39608171659fd4ba
- [
] – deps: restore minimum ICU version to 68 (Michaël Zasso) #3947017470db0dfb
- [
] – deps: make V8 9.3 abi-compatible with 9.0 (Michaël Zasso) #39947192d83d18d2
- [
] – deps: V8: cherry-pick 00bb1a77c03e (Darshan Sen) #3982910140face81
- [
] – deps: V8: cherry-pick 81814ed44574 (Stephen Belanger) #3971913e1053e755
- [
] – deps: silence irrelevant V8 warning (Michaël Zasso) #389901d9d0104878
- [
] – deps: silence irrelevant V8 warnings (Michaël Zasso) #375871cd9b03ea40
- [
] – deps: fix V8 build issue with inline methods (Jiawen Geng) #354151b83cab712f
- [
] – deps: make v8.h compatible with VS2015 (Joao Reis) #321161068824d754
- [
] – deps: V8: forward declaration of154f4f1af501Rtl*FunctionTable
(Refael Ackermann) #32116
- [
] – deps: V8: patch register-arm64.h (Refael Ackermann) #32116110ba1cb8b2
- [
] – deps: V8: un-cherry-pick bd019bd (Refael Ackermann) #3211613ce6f72124
- [
] – (SEMVER-MINOR) deps: update V8 to 9.3.345.16 (Michaël Zasso) #399471f43c292520
- [
] – doc: remove {C,Dec}ompressionStream documentation (Luigi Pinca) #3989919e782eb758
- [
] – doc: add descriptions about when17857e9cc771options.mode
is ignored (Ray) #39881
- [
] – doc: remove danbev from TSC member list (Daniel Bevenius) #399781d43b555047
- [
] – doc: add missing changes to generateKeyPair(Sync) (Tobias Nießen) #399631fc01dd916e
- [
] – doc: add nodejs/tweet issue creation to sec. doc (Daniel Bevenius) #399401953f2e9f88
- [
] – doc: update WASI example to use import.meta.url (Guy Bedford) #39925129c4b07716
- [
] – doc: move reference to OpenSSL flags SSL_OP_* (Tobias Nießen) #3993519eb4a70c14
- [
] – doc: add docs for duplex.allowHalfOpen property (Tim Perry) #3912618ea4befc82
- [
] – doc: add FrankQiu to a triager (FrankQiu) #399221bc2b73ec9b
- [
] – doc: add VoltrexMaster to triagers (voltrexmaster) #3992018b68f8ec38
- [
] – doc: document JavaScript tool for benchmark comparison (Michaël Zasso) #3983513a8f77ac0d
- [
] – doc: add Mesteery to triagers (Mestery) #3988714ac703ca8e
- [
] – doc: update maintaining openssl guide (Richard Lau) #398781d059a5186b
- [
] – doc: move ERR_WORKER_UNSPPORTED_EXTENSION to legacy (Qingyu Deng) #397881486150580c
- [
] – events: protect property defs against prototype polution (James M Snell) #397731a4b8c13798
- [
] – events: add brand checks for detached accessors (James M Snell) #397731cfbe9065ae
- [
] – fs: add docs and tests for1112af691941AsyncIterable
support in
1fh.writeFile(Antoine du Hamel) #39836
- [
] – meta: remove duplicate AUTHORS entry for NigelKibodeaux (Rich Trott) #399671402071bc45
- [
] – meta: add mailmap entry for Ethan-Arrowood (Rich Trott) #3993013588f07603
- [
] – meta: add mailmap entry for branisha (Rich Trott) #398891259e0cf4d7
- [
] – meta: update .mailmap to remove duplicate AUTHORS entry for addaleax (Rich Trott) #398801bc236a6714
- [
] – (SEMVER-MINOR) module: support pattern trailers (Guy Bedford) #39635120da0a5379
- [
] – src: remove usage of AllocatedBuffer from src/node_buffer.cc (Darshan Sen) #399411879dc4658e
- [
] – src: remove extra semicolons outside fns (Shelley Vohr) #39800179ce096470
- [
] – (SEMVER-MINOR) stream: add stream.compose (Robert Nagy) #390291cb44781371
- [
] – test: use1ca9b781d201assert.match
instead of
1regexp.test(Michaël Zasso) #39928
- [
] – test: use error code mapping in place of raw errno (Darshan Sen) #386751007e2855af
- [
] – test: add test to verify other extension can be loaded by worker (Qingyu Deng) #39788100529b0ef2
- [
] – test: update error message keywords (leeight) #3982614e7212c88c
- [
] – test: adapt test-fs-read to V8 9.3 (Michaël Zasso) #394691549d717722
- [
] – test: adapt test-util-inspect to V8 9.3 (Michaël Zasso) #394691644b25e068
- [
] – test: adapt test-v8-flags to V8 9.3 (Michaël Zasso) #394691105bff9ea5
- [
] – tools: add support for import assertions in linter (Antoine du Hamel) #399241d92bd9a982
- [
] – tools: update gyp-next to v0.10.0 (Michaël Zasso) #3985719763561e30
- [
] – tools: update V8 gypfiles for 9.3 (Michaël Zasso) #3946919f105c73fc
- [
] – worker: remove file extension check (Qingyu Deng) #39788116271d2f50
- [
] – worker: add brand checks for detached MessageEvent accessors (James M Snell) #3977313b1ce93e03
Windows 32-bit Installer: https://nodejs.org/dist/v16.9.0/node-v16.9.0-x86.msi
Windows 64-bit Installer: https://nodejs.org/dist/v16.9.0/node-v16.9.0-x64.msi
Windows 32-bit Binary: https://nodejs.org/dist/v16.9.0/win-x86/node.exe
Windows 64-bit Binary: https://nodejs.org/dist/v16.9.0/win-x64/node.exe
macOS 64-bit Installer: https://nodejs.org/dist/v16.9.0/node-v16.9.0.pkg
macOS Apple Silicon 64-bit Binary: https://nodejs.org/dist/v16.9.0/node-v16.9.0-darwin-arm64.tar.gz
macOS Intel 64-bit Binary: https://nodejs.org/dist/v16.9.0/node-v16.9.0-darwin-x64.tar.gz
Linux 64-bit Binary: https://nodejs.org/dist/v16.9.0/node-v16.9.0-linux-x64.tar.xz
Linux PPC LE 64-bit Binary: https://nodejs.org/dist/v16.9.0/node-v16.9.0-linux-ppc64le.tar.xz
Linux s390x 64-bit Binary: https://nodejs.org/dist/v16.9.0/node-v16.9.0-linux-s390x.tar.xz
AIX 64-bit Binary: https://nodejs.org/dist/v16.9.0/node-v16.9.0-aix-ppc64.tar.gz
ARMv7 32-bit Binary: https://nodejs.org/dist/v16.9.0/node-v16.9.0-linux-armv7l.tar.xz
ARMv8 64-bit Binary: https://nodejs.org/dist/v16.9.0/node-v16.9.0-linux-arm64.tar.xz
Source Code: https://nodejs.org/dist/v16.9.0/node-v16.9.0.tar.gz
Other release files: https://nodejs.org/dist/v16.9.0/
Documentation: https://nodejs.org/docs/v16.9.0/api/
SHASUMS
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53 -----BEGIN PGP SIGNED MESSAGE-----
Hash: SHA256
d4c91b7321877945403162bb330aa5c30323773aece0bbc65fefb1efd2be8a53 node-v16.9.0-aix-ppc64.tar.gz
13105eb6623f474e4596c725bd4d6fcd500c68155f9f954bd3332c46f5df7378 node-v16.9.0-darwin-arm64.tar.gz
4fc309ad4e663aae2ded6cfca008513bceae9f108637fce3cee89c43b839423f node-v16.9.0-darwin-arm64.tar.xz
37cea8ce6f88c501ed2ed191fc4335e5c4ecbeb0e85247c07b35825f07a60351 node-v16.9.0-darwin-x64.tar.gz
3a4e899c6195c3579d377b3f9fbb27d018ee74211731009b458fd9ccd11b46a7 node-v16.9.0-darwin-x64.tar.xz
a1f38a6e3800bded2fb89d9cb3b3f1ebea33bf4469c725880b58dc692179ee0e node-v16.9.0-headers.tar.gz
7ac337077ddb1fbe3c2a0a9dad8c8a307bb48cd604ebd50037bc0fdc34bd3d4c node-v16.9.0-headers.tar.xz
a5e838ab842f75a9e20275b13cdb67a8a9a10a6feec9b59097903c1a3e16351a node-v16.9.0-linux-arm64.tar.gz
6f5c9f6c95e9b80630d9e280379dab3d442dc4109e324bf9c310d438c0c735c4 node-v16.9.0-linux-arm64.tar.xz
505525dd2e59c6718ee3b49b72c291685ee26e3630d309d116829d77d285629a node-v16.9.0-linux-armv7l.tar.gz
b68a726c56af8cfdc0d98bf13c0f9dfc5011aba7bc803eadc0f0afa6f4221928 node-v16.9.0-linux-armv7l.tar.xz
7316b5c9d7c6c2fc7ca3648792500dfacd8eea68f5f7d4b50b965c49779483c9 node-v16.9.0-linux-ppc64le.tar.gz
85684fb0aaefc367cff1bc8810f9d39db425bc3958b75a5f2e49784f333fd2ec node-v16.9.0-linux-ppc64le.tar.xz
716b5fea0ab13e6f5bb395cbc8a381739eaf57ba7a0c2d4cddd2c2a09216f7c3 node-v16.9.0-linux-s390x.tar.gz
744612d24fbf6bcecc56caf511bde659b2e5eafac8d17e50c0529d934a0723b7 node-v16.9.0-linux-s390x.tar.xz
f7389d3bc9efdf5ce95ff52ea880efcbf2c9de662ef7b143aedf141aeb74ab95 node-v16.9.0-linux-x64.tar.gz
891ecae3826e6dd9b7ed6f484383bcb0803edcb3dc5956e42f6e64d2c3cc269b node-v16.9.0-linux-x64.tar.xz
9dfeaa736129def9eb6520fc4a140649b2f7c09211b21b1bda47c26ce006e6ed node-v16.9.0.pkg
d04e044c498438e0f0de4729529c64345a3db97e412fe59604a6ce4970019c86 node-v16.9.0.tar.gz
1ae764200dfc23a8a6a68387e3ef6c7eb38705effdb38722c9d3916feb8b666f node-v16.9.0.tar.xz
f526cc79568193b5ea66ce8297dbdf48dbd1601005e48952e83fb84fba415687 node-v16.9.0-win-x64.7z
c08c1dff1d43f149a3161f84881a73e9dd3c1772138645ce198b8126e641e313 node-v16.9.0-win-x64.zip
b2b6c83958321784f55cbfe179d8f2907c2d75547f18324a02b9e690cfd69612 node-v16.9.0-win-x86.7z
47230270ffda66b80382f0a12fb43806aac41c813661b6a23b52fa0b02669c5f node-v16.9.0-win-x86.zip
72601300585a6cf6cc8ef86374452158b9e48e619e4810d0b06c432b01377c2f node-v16.9.0-x64.msi
d81d721f97054adfb31b4daaa84f7e2b097be3c0a95a5711af3f2f67fc5767cc node-v16.9.0-x86.msi
42cb10f2733ff5ed80bdf1f595b47de761c06dd3f1ef49d178b189b08aa8518e win-x64/node.exe
774524a2b7c2806a8141a430ce9c6bffb9e8f78ce6bc095ec8fa26a333ff7cef win-x64/node.lib
c22ef2f25123893cac924e3b8cd84a51ae3fcdde8c6f2d7e96c4a1ffc7ad6ed9 win-x64/node_pdb.7z
6bb557600e7e276a03f01b078f14b24f1ada73956df26d814d669e04012f4246 win-x64/node_pdb.zip
26e19ece9c55243066c2a11de00f6476f94e566a7cd7e0d790067dae7e17fb53 win-x86/node.exe
1827162a03517e9a4897bd0195e601216d4ffb3680b11db4599166d0e76b6e98 win-x86/node.lib
1871bbc5ecf783970ea36a2e7dd8899b9d76b1c599d494ea7be2979bf6b3ecbc win-x86/node_pdb.7z
c6fd5e3b3d37b15dc49acfead04b240350d5c548a9e4ff28eb1bf6a48c620f5f win-x86/node_pdb.zip
-----BEGIN PGP SIGNATURE-----
iQIzBAEBCAAdFiEEj8yhP+8dDC6RAI4Jdw96mlrhVgAFAmE3OX4ACgkQdw96mlrh
VgCNRRAAi4qxY30gwmCg9fmYAHfa/b0Kd8bjB7vGmgd1p+jxFeazBXv6Vk/cSg+M
p2i1ZZHUTapelBKXeJYcGA8dcdw/20ELwcY8W5v8tKr2LOCViu/2QRgW3S4+I17z
Uclk1amOhaexrXj9/nP0qCEG0cHx22Nr4GQO4T8qbLIH4/nZKWtoXxPBACJgOLZj
XryhHWwOjxJXF3saQxlaOfC1LYcWdihJR62fqsSRnTTvDq8VYiRMKsUstqrnMFMP
uWu+ZnF9PqM5r11zKv7ecV5Tlx26UBb6UCFlnSBYaEdM8srG8CnAFT6Mx8lGPuPq
9MAAbd94UU8zxn6XROCas/2ii0IB9xnwYbOVibs06sK2KcEtlPMoa+3Ur9LDqS3Q
0sDTN8yffEe5AF7JHDAGNzDRbKfMk38Tra0gG/k+6OGlp21M5TwXXpDQWwzrNwfy
+kotMKHEkwWzL4hiKbCMXjntUXiBjvGD706kX6r8/iIOKCj8U0qn44z8v9VOwWSd
rV3fmJhwV66Zz53gRMIMtorIR8hXmeMtLuv6h2j1+vnHAT9j3lOFaY0bZ2kaVK1Q
05yYPwBZG7B/Ebi8WK05VJNjnJXNBwOouFwHy+jGsDigNKE0jMD0ZvYyrIT2NnS1
sYJsLTjRHv/1Ww9bGIbp8VkZhGO9ONrp+RWKvEGtc9rgOlQykhw=
=cmND
-----END PGP SIGNATURE-----
0 Comments