Wednesday, 14 July, 2021 UTC


Summary

Notable Changes

Experimental Web Streams API

Node.js now exposes an experimental implementation of the Web Streams API.
While it is experimental, the API is not exposed on the global object and is only accessible using the new stream/web core module:
import { ReadableStream, WritableStream } from 'stream/web';
// Or from 'node:stream/web'
Importing the module will emit a single experimental warning per process.
The raw API is implemented and we are now working on its integration with various existing core APIs.
Contributed by James M Snell - #39062

Other notable changes

  • [83f3b959f9] - (SEMVER-MINOR) fs: allow empty string for temp directory prefix (Voltrex) #39028
  • [c04fd2bb97] - deps: upgrade npm to 7.19.1 (npm team) #39225

Commits

  • [aafa08d7b9] - bootstrap: load perf_hooks eagerly during bootstrap (Joyee Cheung) #38971
  • [6e46eb186c] - bootstrap: support perf hooks in snapshot (Joyee Cheung) #38971
  • [10681828ac] - build: update gcovr for gcc 8 compatibility (Richard Lau) #39326
  • [8381132f76] - build: add riscv into host_arch_cc (Lu Yahan) #39004
  • [a7ba21864d] - build: restore libplatform headers in distribution (Jeroen Ooms) #39288
  • [41161eabf2] - build: remove unused comment in Makefile (LitoMore) #39171
  • [f6a1092471] - build: allow to build riscv64 using Makefile (Makoto Kato) #39048
  • [a7cd40ed8d] - build: uvwasi honours node_shared_libuv (Jérémy Lal) #39260
  • [3ed04994b7] - build: shorten path used in tarball build workflow (Richard Lau) #39192
  • [65b56b3774] - build: fix building with external builtins (Momtchil Momtchev) #39091
  • [412b1012d2] - build: pass directory instead of list of files to js2c.py (Joyee Cheung) #39069
  • [171ca6bb3c] - build: don't pass --mode argument to V8 test-runner (Richard Lau) #39055
  • [cf8536ea3f] - build: fix commit linter on unrebased PRs (Mary Marchini) #39121
  • [cf0533b8b2] - build: use Actions to validate commit message (Mary Marchini) #32417
  • [4202274851] - crypto: move OPENSSL_IS_BORINGSSL guard (Shelley Vohr) #39136
  • [89f5a73ba5] - crypto: use compatible ecdh function (Shelley Vohr) #39054
  • [30e878b603] - crypto: add OPENSSL_IS_BORINGSSL guard (Shelley Vohr) #39138
  • [630266cba2] - debugger: indicate server is ending (Rich Trott) #39334
  • [48d9680f84] - debugger: remove final lint exceptions in inspect_repl.js (Rich Trott) #39078
  • [4507714f9d] - deps: V8: backport 5c76da8ddcf8 (Michaël Zasso) #39337
  • [0e64bd0dd6] - deps: V8: cherry-pick 359d44df4cdd (Michaël Zasso) #39337
  • [142ce6838b] - deps: V8: cherry-pick 3805a698f7b6 (Michaël Zasso) #39337
  • [2657c305cb] - deps: V8: cherry-pick 56fe020eec0c (Michaël Zasso) #39337
  • [5c5a93e533] - deps: V8: cherry-pick 2b77ca200c56 (Michaël Zasso) #39337
  • [cf49ebb052] - deps: V8: cherry-pick 53784bdb8f01 (Michaël Zasso) #39337
  • [3d351b29c1] - deps: V8: cherry-pick cb4faa902e9f (Michaël Zasso) #39337
  • [165130a3e0] - deps: patch V8 to 9.1.269.38 (Michaël Zasso) #39196
  • [c04fd2bb97] - deps: upgrade npm to 7.19.1 (npm team) #39225
  • [bf4c50f9d9] - deps: upgrade npm to 7.19.0 (npm team) #39148
  • [8630b39376] - deps: update Acorn to v8.4.1 (Michaël Zasso) #39166
  • [38ae4077c7] - doc: fix typos in Web Streams API documentation (Tobias Nießen) #39351
  • [fb6616ecbb] - doc: add text about moving long commit lists out of PR description (Danielle Adams) #39186
  • [29c9cc8f03] - doc: do not use & for "and" in text (Rich Trott) #39345
  • [0b3b2695bc] - doc: do not use tilde for "about" or "approximately" (Rich Trott) #39344
  • [64a185e595] - doc: use consistent abbreviation formatting (Rich Trott) #39343
  • [2573bf5116] - doc: update AUTHORS (Rich Trott) #39277
  • [63b6084724] - doc: put information about the past in details tags (Rich Trott) #39321
  • [e26635085a] - doc: replace outdated util.promisify timer examples with references (foxxyz) #39164
  • [d101a85e36] - doc: move AndreasMadsen to emeritus (Rich Trott) #39315
  • [2d552a32d6] - doc: move ofrobots to collaborator emeritus (Rich Trott) #39307
  • [131d676f64] - doc: simplify CRAN mirror text in benchmark guide (Rich Trott) #39287
  • [c92b80e631] - doc: use "repository" instead of "repo" in onboarding.md (Rich Trott) #39286
  • [81df9b1e92] - doc: update collaborator email address (Rich Trott) #39263
  • [b8860f35c9] - doc: remove GitHub mark (Rich Trott) #39251
  • [f06ebf1775] - doc: remove emailing the TSC from offboarding doc (Rich Trott) #39280
  • [175a6569f4] - doc: add annotation to writeFile data as Object (Jacob) #39167
  • [4d53c63c22] - doc: fix boldface punctuation for full sentences (Rich Trott) #39278
  • [146f733f43] - doc: fix constants usage in fs.access example (Cyrille Bourgois) #39289
  • [eacee0ab17] - doc: use "repository" in guides versus repo (Michael Dawson) #39198
  • [04bcfcfff1] - doc: update Node-api version matrix (Michael Dawson) #39197
  • [4dd6ab389a] - doc: remove onboarding-extras (Rich Trott) #39252
  • [a01dacfdcd] - doc: move Sam Ruby to emeritus (Rich Trott) #39264
  • [2bb3713b74] - doc: update AUTHORS file (Rich Trott) #39250
  • [2227c1368f] - doc: fix color contrast for anchor marks in dark mode (Rich Trott) #39168
  • [f8cdaad9d4] - doc: rename datatypes to data types (FrankEntriken) #39209
  • [250024eaec] - doc: normalize CSS variable names and indentation (Rich Trott) #39199
  • [db74a35348] - doc: remove unnecessary module format comments (Rich Trott) #39219
  • [24a1f7ec84] - doc: use more consistent formatting for deprecations (Rich Trott) #39218
  • [24c0d7d872] - doc: update AUTHORS (Rich Trott) #39217
  • [3e5ed72b0a] - doc: use "pull request" instead of "PR" in packages.md (Rich Trott) #39213
  • [ddc24b2105] - doc: move v8.stopCoverage() to expected location in doc (Rich Trott) #39212
  • [68c334c8c9] - doc: move vm.measureMemory() to expected location in doc (Rich Trott) #39211
  • [81d52d7c79] - doc: fix CHANGELOG.md formatting (Richard Lau) #39223
  • [9c3a5fd53e] - doc: add cc [email protected] (Daniel Bevenius) #39191
  • [07ba2875ae] - doc: remove instructions for unsupported Node.js versions (Rich Trott) #39185
  • [482851f647] - doc: remove obsolete cc recommendations (Rich Trott) #39181
  • [8311b29083] - doc: use "repository" in maintaining-V8 doc (Rich Trott) #39179
  • [952580e1bf] - doc: fix broken link in errors.md (Rich Trott) #39200
  • [af1e1dba36] - doc: correct JavaScript primitive value names in n-api.md (legendecas) #39129
  • [00728d1301] - doc: apply logical ordering to CSS variables (Rich Trott) #39169
  • [aec2744e14] - doc: remove file name from self-reference links (Antoine du Hamel) #39165
  • [74bb915178] - doc: use repository instead of repo (Rich Trott) #39157
  • [a669a191a1] - doc: use ASCII order for md refs (Antoine du Hamel) #39170
  • [21e8720155] - doc: fix EventTarget.dispatchEvent docs (Rohan Sharma) #39127
  • [90ec7660bc] - doc: update AUTHORS file (Rich Trott) #39082
  • [81cebec5cc] - doc: esm examples /w imports for process, Buffer (Guy Bedford) #39043
  • [c1588887a6] - doc: fix napi_default_property name (Davidson Francis) #39104
  • [a440f6c69c] - doc: fix dead links in packages.md (Michaël Zasso) #39113
  • [33cad271c5] - errors: remove eager stack generation for node errors (Gus Caplan) #39182
  • [ac05a0a8a3] - errors: don't throw TypeError on missing export (Benjamin Coe) #39017
  • [83f3b959f9] - (SEMVER-MINOR) fs: allow empty string for temp directory prefix (Voltrex) #39028
  • [ac7184d8c7] - http: clean up HttpParser correctly (Tobias Koppers) #39292
  • [35331cbd13] - http,https: align server option of https with http (Qingyu Deng) #38992
  • [29194d4f88] - inspector: move inspector async hooks to environment (Joyee Cheung) #39112
  • [ecf627a9af] - lib: rename TransferedReadableStream etc (Tobias Nießen) #39352
  • [0e55cb72df] - lib: make lazyDOMException more common (Khaidi Chu) #39105
  • [cfd96aa8f9] - meta: fix tls code owners (Robert Nagy) #39355
  • [e5c2d80560] - meta: use form schema for bug report template (Michaël Zasso) #39194
  • [bd472daf0c] - meta: add @nodejs/actions as CODEOWNERS (Mary Marchini) #39119
  • [63f87027e3] - node-api: cctest on v8impl::Reference (legendecas) #38970
  • [7ea98fbccd] - perf_hooks: refactor perf_hooks for snapshot building (Joyee Cheung) #38971
  • [20cc8ec2af] - readline: allow completer to rewrite existing input (Anna Henningsen) #39178
  • [b168ec2a2a] - repl: processTopLevelAwait fallback error handling (ejose19) #39290
  • [a101fe68ad] - repl: correctly hoist top level await declarations (ejose19) #39265
  • [d441d91450] - repl: ensure correct syntax err for await parsing (Guy Bedford) #39154
  • [9184259a54] - src: add JSDoc typings for v8 (Voltrex) #38944
  • [66553feeba] - src: compare IPv4 addresses in host byte order (Colin Ihrig) #39096
  • [ea8d83bf59] - src,crypto: fix 0-length output crash in webcrypto (Khaidi Chu) #38913
  • [683c995001] - src,zlib: tighten up Z_*_WINDOWBITS macros (Khaidi Chu) #39115
  • [cb32f69e00] - stream: cleanup async handling (Robert Nagy) #39329
  • [1fc6382942] - stream: don't emit prefinish after error or close (Robert Nagy) #39332
  • [35b6669e13] - stream: use finished for pump (Robert Nagy) #39203
  • [9af62a1357] - (SEMVER-MINOR) stream: implement WHATWG streams (James M Snell) #39062
  • [0bb980aeaf] - test: remove eslint-disable comment from fixture file (Rich Trott) #39320
  • [21f77031fb] - test: move debugger test case to parallel (Rich Trott) #39300
  • [0ec93a1fc1] - test: use common.PORT instead of hardcoded port number (Rich Trott) #39298
  • [11a8b81caf] - test: remove debugger workaround for AIX (Rich Trott) #39296
  • [8e77aa23f1] - test: add test for debugger restart message issue (Rich Trott) #39273
  • [13755599e1] - test: remove workaround code in debugger test (Rich Trott) #39238
  • [1f31e3c774] - test: remove checks for armv6 (Rich Trott) #39162
  • [d486d0117c] - test: move test-debugger-address to parallel (Rich Trott) #39236
  • [cdc7a19f48] - test: remove common.enoughTestCpu (Rich Trott) #39161
  • [cc32365f56] - (SEMVER-MINOR) test: add WPT streams tests (James M Snell) #39062
  • [fff21a4afb] - test: replace "inspector-cli" with "debugger" (Rich Trott) #39156
  • [df17c62818] - test: use localhost test instead of connecting to remote (Adam Majer) #39011
  • [dfe99d2aac] - tls: move legacy code into own file (Robert Nagy) #39333
  • [f338fddbb0] - tools: add GitHub Action to run find-inactive-collaborators.mjs (Rich Trott) #39335
  • [b3a0dd1e4a] - tools: pass bot token to node-pr-labeler (Michaël Zasso) #39271
  • [b56a3d9009] - tools: update gyp-next to v0.9.3 (Jiawen Geng) #39291
  • [3cd9f5e298] - tools: add find-inactive-collaborators.js (Rich Trott) #39262
  • [0673ede3ad] - tools: take ownership of deps/v8/tools/node (Michaël Zasso) #39222
  • [cb8c6ffbce] - tools: update ESLint to 7.30.0 (Colin Ihrig) #39242
  • [d5113f9e34] - tools: remove armv6 from test tools (Rich Trott) #39162
  • [802d9c4488] - tools: update path-parse to 1.0.7 (Rich Trott) #39232
  • [ab9ccd014c] - tools: remove unused lint-pr-commit-message.sh (Richard Lau) #39120
  • [6200f3b35f] - tools: update @babel/eslint-parser to 7.14.7 (Rich Trott) #39160
  • [dfe5d1139c] - tools: update remark-preset-lint-node to 2.4.1 (Rich Trott) #39201
  • [4715105581] - tools: upgrade highlight.js to version 11.0.1 (Antoine du Hamel) #39032
  • [2481ddd08d] - tools,doc: fix error message for unrecognized type (Antoine du Hamel) #39221
  • [adb812c042] - typings: add a few JSDoc typings for the net lib module (nerdthatnoonelikes) #38953
  • [29673b8ac8] - typings: add JSDoc typings for timers (Voltrex) #38834
  • [fe1c81f247] - wasi: use missing validator (Voltrex) #39070
Windows 32-bit Installer: https://nodejs.org/dist/v16.5.0/node-v16.5.0-x86.msi
Windows 64-bit Installer: https://nodejs.org/dist/v16.5.0/node-v16.5.0-x64.msi
Windows 32-bit Binary: https://nodejs.org/dist/v16.5.0/win-x86/node.exe
Windows 64-bit Binary: https://nodejs.org/dist/v16.5.0/win-x64/node.exe
macOS 64-bit Installer: https://nodejs.org/dist/v16.5.0/node-v16.5.0.pkg
macOS Apple Silicon 64-bit Binary: https://nodejs.org/dist/v16.5.0/node-v16.5.0-darwin-arm64.tar.gz
macOS Intel 64-bit Binary: https://nodejs.org/dist/v16.5.0/node-v16.5.0-darwin-x64.tar.gz
Linux 64-bit Binary: https://nodejs.org/dist/v16.5.0/node-v16.5.0-linux-x64.tar.xz
Linux PPC LE 64-bit Binary: https://nodejs.org/dist/v16.5.0/node-v16.5.0-linux-ppc64le.tar.xz
Linux s390x 64-bit Binary: https://nodejs.org/dist/v16.5.0/node-v16.5.0-linux-s390x.tar.xz
AIX 64-bit Binary: https://nodejs.org/dist/v16.5.0/node-v16.5.0-aix-ppc64.tar.gz
ARMv7 32-bit Binary: https://nodejs.org/dist/v16.5.0/node-v16.5.0-linux-armv7l.tar.xz
ARMv8 64-bit Binary: https://nodejs.org/dist/v16.5.0/node-v16.5.0-linux-arm64.tar.xz
Source Code: https://nodejs.org/dist/v16.5.0/node-v16.5.0.tar.gz
Other release files: https://nodejs.org/dist/v16.5.0/
Documentation: https://nodejs.org/docs/v16.5.0/api/

SHASUMS

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

3d134a7499d7b022febaa50d1923fb799c8edd9c2478be180eb88bfee06165b1  node-v16.5.0-aix-ppc64.tar.gz
4296521e8b5d73d4c3b9b7f6f9f666e577342ea92a520f33040f1a252387d079  node-v16.5.0-darwin-arm64.tar.gz
cc28582b5e4d91d92d61a29c8c63473dc151e816801a4718ef7518162bd4fd60  node-v16.5.0-darwin-arm64.tar.xz
b779bd40b7c9366adcbe4f9fd2afd9ee5f085e333200380b34d285eb32c121bc  node-v16.5.0-darwin-x64.tar.gz
681fa06160fd9f7534508e7bdd114fb70bc7f25747560335f552ffb6bb5de9ed  node-v16.5.0-darwin-x64.tar.xz
3dd36740be57f63135653c241ed671aa1b1a10cde949e79d3dc99f7ec19ee77c  node-v16.5.0-headers.tar.gz
6c3434c609b37205405198c4faf6ea7904fbca97d63be9e6a3b04fe33c804aa5  node-v16.5.0-headers.tar.xz
9447361c2b19d0f59b2f3acdcd9326bd1542c13828f9c8807ed46d3b6024fe09  node-v16.5.0-linux-arm64.tar.gz
acbadd349afe21cbd41280ae3512fe8121fc93a0778a63354e6cca87190ff0f1  node-v16.5.0-linux-arm64.tar.xz
17e887d9182cd6d7f92be4ecebd05ebf4dc887ec5eb05244403625a4c84ed337  node-v16.5.0-linux-armv7l.tar.gz
df3b2269150ba7494a7f59ebf551277ba32530529c9d168caa16bd8cee8c4cf4  node-v16.5.0-linux-armv7l.tar.xz
935cbd6195c0b08edd801eb3c0373bb97454a1105d032365d0df1bbc782e836a  node-v16.5.0-linux-ppc64le.tar.gz
6b3f26648c7f28dd7cf3de919d05f0cfcdae3ee35154b1789cbd3bd2eb280258  node-v16.5.0-linux-ppc64le.tar.xz
fbe5c2d3f5e6d490357f4a451ba0355113d6e8175d8939542f11a81c6c65a8f7  node-v16.5.0-linux-s390x.tar.gz
b5c294a39c1400ef32dee365323ecdaf78a205f8625a3f67d8ed4f7f3f6e81ea  node-v16.5.0-linux-s390x.tar.xz
837d76357d8622aac81a5b7f27ba0fd9556faa311a44254f1ffd26aaf42b052f  node-v16.5.0-linux-x64.tar.gz
e41fb3f6ba1ba248d6facd0ccb35ea3b043845b5d358839a344ef3fb39d744c3  node-v16.5.0-linux-x64.tar.xz
c0510db7132fcc97f483f77b68d62a57944500e5ae4d8a33844c292afdf9424e  node-v16.5.0.pkg
a0d233cde072822af7fd3043b866e526a1739df32c3ace6210ae289f3266ccb7  node-v16.5.0.tar.gz
3f37e38dd1129b6905f8d184616d41b3ab8433fa54cadce8a8c18b7a8bbcaa99  node-v16.5.0.tar.xz
eb2136d451cbc4c7027437c48450b3da99f04e9863011504c0308b99df2b82ea  node-v16.5.0-win-x64.7z
9223eb2cbd913fd313ab4456d5fdc6b73e44f916e76189bdaecaa08dc9f5de7d  node-v16.5.0-win-x64.zip
c2ced414a78a6d6965292408fe28efa033f7b30775f9d0401feb841abee86a00  node-v16.5.0-win-x86.7z
456675c3c7bba7d219a493f9b2109bb2dd05d95c9d660a0384b3a91e0a9b8610  node-v16.5.0-win-x86.zip
f80b770b00896672d7d26c70b2d7ecafecef492d260b0552c81138a675758f59  node-v16.5.0-x64.msi
691e8225e6eb4ce5850078dc0d8d4c18836ab92e6032a77fb98566df5b568518  node-v16.5.0-x86.msi
d1751bd9eeb147a48971e40ae9e4374ace30678bbca3754ba35231e0add1a8f4  win-x64/node.exe
4218ef0c41c2d9c8e236a276e8abd8cc36dacdeba54b147cfcbab54848cfb28e  win-x64/node.lib
c184211d64d7616806949db63cb70dd07fe6afb87a0aaf17f1d54f07593d5d12  win-x64/node_pdb.7z
8fe6df2fad2e969c2ee8cb42c400875f9b902c7ca1aee38f4a61c02079afbfc4  win-x64/node_pdb.zip
ff1bf2e0330a5599117bcfd371f929574aa2b7213d9bec21345b4e80185160a8  win-x86/node.exe
e899517caf4e57f674ff37ca8c9db892d676d86960698b2663bbe16e82fa2542  win-x86/node.lib
78d1bd79b287590c4b577e6c66d982b7519f66a73190c4ddd38a00b9e04ef3ec  win-x86/node_pdb.7z
57f82d54e082619c38eacc7b7d88043a6102143b3198c988508ad7e1402e5bfd  win-x86/node_pdb.zip
-----BEGIN PGP SIGNATURE-----

iQIzBAEBCAAdFiEEj8yhP+8dDC6RAI4Jdw96mlrhVgAFAmDuqg8ACgkQdw96mlrh
VgDevQ//aYzwiAyoWndAGm+Sxt8xsDhPcYOZQNbg7SYH+RCSgpTtTVmnGO72x/ob
JbRhypry035aWrMBo/69ITAjAX61sCkx3sHHEvkA9JLgUm2pVKHxQIrX175y/bfv
n2dLUP+DxTZCICjlgWbYJig/kXAJEiOLas70v8vBuVXRTXOT0cBGo8nUnz31+mGx
eLPQMi/0IShHzG7E72FLvGjYn1hGw1eb8f3VFkYyLwiDWBGfX8GYa+uXPDkaU0qn
jdioAjOLf4mvfcg0RtDXlRItl6NuqTTKG6NI7lBmsJkMNpt6lTZI3gFm0TwlPGkH
tnV9kAGkGhjYN6gsBGpR/UO7cvhdYPp5xtykh1xTWD+LXns6BUuxvRA87I54Pv+X
cZeZDcaYLHw0Y4ORzAh/icm0mQ0SfpdhopWQ1nA/uSayusNMlcr52d+M1nIqo2/4
NR4LcDMOF/wrnJDkt6q+QyBRkYGCXYBUdRJGCFE9oopNKk1ocAgG1wCpujTNb19S
GWwJ1d6PEHGTDPeLaRfTE83a5AwyyrMecqTIqlsgrANqnIFwRG6vcSD66tUNz+LQ
4ATc+lAq3uB7OxAzl+nQwR2ZGCWmBaTizKPcX9GxxvFtvQB4IRCbggYLM5ztzhZ4
gMcEa0R2S+PPYkMMHGxLEg1HiZVLyjMyCST6YSQ2x16zDfEB8Rc=
=uuQR
-----END PGP SIGNATURE-----