Node v12.16.1 (LTS)

By Myles Borins,

Notable changes

Node.js 12.16.0 included 6 regressions that are being fixed in this release

Accidental Unflagging of Self Resolving Modules:

12.16.0 included a large update to the ESM implementation. One of the new features, Self Referential Modules, was accidentally released without requiring the --experimental-modules flag. This release is being made to appropriately flag the feature.

Process Cleanup Changed Introduced WASM-Related Assertion:

A change during Node.js process cleanup led to a crash in combination with specific usage of WASM. This has been fixed by partially reverted said change. A regression test and a full fix are being worked on and will likely be included in future 12.x and 13.x releases.

Use Largepages Runtime Option Introduced Linking Failure:

A Semver-Minor change to introduce --use-largepages as a runtime option introduced a linking failure. This had been fixed in master but regressed as the fix has not yet gone out in a Current release. The feature has been reverted, but will be able to reland with a fix in a future Semver-Minor release.

Async Hooks was Causing an Exception When Handling Errors:

Changes in async hooks internals introduced a case where an internal api call could be called with undefined causing a process to crash. The change to async hooks was reverted. A regression test and fix has been proposed and the change could re-land in a future Semver-Patch release if the regression is reliably fixed.

New Enumerable Read-Only Property on EventEmitter breaks @types/extend

A new property for enumerating events was added to the EventEmitter class. This broke existing code that was using the @types/extend module for extending classses as @types/extend was attemping to write over the existing field which the new change made read-only. As this is the first property on EventEmitter that is read-only this feature could be considered Semver-Major. The new feature has been reverted but could re-land in a future Semver-Minor release if a non breaking way of applying it is found.

Exceptions in the HTTP parser were not emitting an uncaughtException

A refactoring to Node.js interanls resulted in a bug where errors in the HTTP parser were not being emitted by process.on('uncaughtException') when the async_hooks after hook exists. The fix to this bug has been included in this release.

Commits

  • [51fdd759b9] - async_hooks: ensure event after been emitted on runInAsyncScope (legendecas) #31784
  • [7a1b0ac06f] - Revert "build: re-introduce --use-largepages as no-op" (Myles Borins) #31782
  • [a53eeca2a9] - Revert "build: switch realpath to pwd" (Myles Borins) #31782
  • [6d432994e6] - Revert "build: warn upon --use-largepages config option" (Myles Borins) #31782
  • [a5bc00af12] - Revert "events: allow monitoring error events" (Myles Borins)
  • [f0b2d875d9] - module: 12.x self resolve flag as experimental modules (Guy Bedford) #31757
  • [42b68a4e24] - src: inform callback scopes about exceptions in HTTP parser (Anna Henningsen) #31801
  • [065a32f064] - Revert "src: make --use-largepages a runtime option" (Myles Borins) #31782
  • [3d5beebc62] - Revert "src: make large_pages node.cc include conditional" (Myles Borins) #31782
  • [43d02e20e0] - src: keep main-thread Isolate attached to platform during Dispose (Anna Henningsen) #31795
  • [7a5954ef26] - src: fix -Winconsistent-missing-override warning (Colin Ihrig) #30549

Windows 32-bit Installer: https://nodejs.org/dist/v12.16.1/node-v12.16.1-x86.msi
Windows 64-bit Installer: https://nodejs.org/dist/v12.16.1/node-v12.16.1-x64.msi
Windows 32-bit Binary: https://nodejs.org/dist/v12.16.1/win-x86/node.exe
Windows 64-bit Binary: https://nodejs.org/dist/v12.16.1/win-x64/node.exe
macOS 64-bit Installer: https://nodejs.org/dist/v12.16.1/node-v12.16.1.pkg
macOS 64-bit Binary: https://nodejs.org/dist/v12.16.1/node-v12.16.1-darwin-x64.tar.gz
Linux 64-bit Binary: https://nodejs.org/dist/v12.16.1/node-v12.16.1-linux-x64.tar.xz
Linux PPC LE 64-bit Binary: https://nodejs.org/dist/v12.16.1/node-v12.16.1-linux-ppc64le.tar.xz
Linux s390x 64-bit Binary: https://nodejs.org/dist/v12.16.1/node-v12.16.1-linux-s390x.tar.xz
AIX 64-bit Binary: https://nodejs.org/dist/v12.16.1/node-v12.16.1-aix-ppc64.tar.gz
SmartOS 64-bit Binary: https://nodejs.org/dist/v12.16.1/node-v12.16.1-sunos-x64.tar.xz
ARMv7 32-bit Binary: https://nodejs.org/dist/v12.16.1/node-v12.16.1-linux-armv7l.tar.xz
ARMv8 64-bit Binary: https://nodejs.org/dist/v12.16.1/node-v12.16.1-linux-arm64.tar.xz
Source Code: https://nodejs.org/dist/v12.16.1/node-v12.16.1.tar.gz
Other release files: https://nodejs.org/dist/v12.16.1/
Documentation: https://nodejs.org/docs/v12.16.1/api/

SHASUMS

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

d928dd3dc4a79c39e45aa8f1f00c33117eb6145001427cb4dd838340932d8f2d  node-v12.16.1-aix-ppc64.tar.gz
34895bce210ca4b3cf19cd480e6563588880dd7f5d798f3782e3650580d35920  node-v12.16.1-darwin-x64.tar.gz
7d20b9955c96d99fad1ef0e849b340d3ca1386dacd6c79e19d1ad3695bad7f6b  node-v12.16.1-darwin-x64.tar.xz
815e732561b6be1b2389b0cac53e34b65ad1835a5f0354d9888d992a4613947f  node-v12.16.1-headers.tar.gz
602ad5ba8ccf076215e0547632329d8a5c3ab0275a293ee1aebbfdd9345d2a6a  node-v12.16.1-headers.tar.xz
22750695d432e22f2a1faadfcd534a88a18933ffd658d45b08a5afa61acbc24a  node-v12.16.1-linux-arm64.tar.gz
396c43ba507b8ec33c70cdc6f73b4a7c725bddb3f74a85a8b8ed77b436856fed  node-v12.16.1-linux-arm64.tar.xz
d418d0516dfd744a8109e4ed58b021e3a1babb64baed2ebc30e613df97c643fb  node-v12.16.1-linux-armv7l.tar.gz
593dbc7e52518815d02dd5019c54afa5ada3dd143482cbc533c8c1ea80f44349  node-v12.16.1-linux-armv7l.tar.xz
c8b1e47ac7a7a98f9f9b596b1ff567ad5416141317a3dcf4bff988508eb85bd6  node-v12.16.1-linux-ppc64le.tar.gz
eee65be6b23245221920f18dded281f74a00dfa2479713134eea3146f1593ea6  node-v12.16.1-linux-ppc64le.tar.xz
fef9eb79a9f5c50193ba369a2399998a86411f26eadc924674d915b06b71ac8f  node-v12.16.1-linux-s390x.tar.gz
6a77be335dec9349a40216cea072f2ca6e53bf10a7276040bfbd33984cdc5b95  node-v12.16.1-linux-s390x.tar.xz
b2d9787da97d6c0d5cbf24c69fdbbf376b19089f921432c5a61aa323bc070bea  node-v12.16.1-linux-x64.tar.gz
b826753f14df9771609ffb8e7d2cc4cb395247cb704cf0cea0f04132d9cf3505  node-v12.16.1-linux-x64.tar.xz
268703502c475a3e6878de0b1e67e6cc06315f41f878c3ec0bd58291537357da  node-v12.16.1.pkg
fec3dd2fdadc2b2fd8be29ebe8cdb859eace84e920a32053585feae0e641e9ce  node-v12.16.1-sunos-x64.tar.gz
fd5786acdc316a5eb64b73e274f44aa74ed2a74ef0b292cec2983bcab1ee96f0  node-v12.16.1-sunos-x64.tar.xz
4fe8c3454f9bee5bbe72d44aa25cd931859b3037b7a9473081b3b2bd1b465b95  node-v12.16.1.tar.gz
0a95845ba02c46102b5671d0c5732460073f2d397488337e18d1fc30146d412d  node-v12.16.1.tar.xz
e97aa4c4dc44185f55be7f46ff70a5594066f50853f3b7ad409cc108d32eef17  node-v12.16.1-win-x64.7z
b93b73572c5e495154a9823d494de5729c77d1c83b041171154c4b5f3f76b590  node-v12.16.1-win-x64.zip
2091f727d84044062e2657e20a24ccfbad3c699ee337c47d60ce77fcdadd711a  node-v12.16.1-win-x86.7z
7d4cb6b9b96d221e5fbb28083d688f36561b05ae2f796a22ebd606f319834b39  node-v12.16.1-win-x86.zip
bb70e966062e860e3497b4c5cd490485b722f28ad8eb0abfda7fe91e987c59f1  node-v12.16.1-x64.msi
9fd8788c089bb77999b7f2e6ef94cb1721dd9f5b1b08d4ed2f81e89529c9137a  node-v12.16.1-x86.msi
3f8dabbe93d05367035df2078cb72a20c1b74cf1b41648ea91d902825902fcee  win-x64/node.exe
4eb31990d5e46ba2a51d4fc14ef187ef51c403afe8823c71c557c0ba3cb6d732  win-x64/node.lib
057803deaa2b29b597e15a82cfe78271f9320fc0cd23239564ab04df19ead3f6  win-x64/node_pdb.7z
deee04ab036212fbaa2eeb5efec7e5ff87666dce3968c68450bf8fa12d1c2a59  win-x64/node_pdb.zip
78fa91d73172df8e10e1824394087a9d6409259fdc3bd5a83fa90d53e4edb6a6  win-x86/node.exe
67967c338c91652bbb376a0a4f3e0162478033d872d71af673e5ce127888ee50  win-x86/node.lib
9e8b18c0df1fed91154fc9f7e5cf4e93a85b99ce653be0f77d6cd87f15556cc0  win-x86/node_pdb.7z
b1a9c35d168c5876d040e1aeeb3e7c44c919f2716c560b44556cf9c6975991fc  win-x86/node_pdb.zip
-----BEGIN PGP SIGNATURE-----

iQEzBAEBCAAdFiEEDv/hvO/ZyE49CYFSkzsB9AtcqUYFAl5MPjUACgkQkzsB9Atc
qUZrhgf/YyjE93K71UoKdkAPN316DY6asYc4+hoOwny+r4W1+0QSiWl7Pe+lm4tC
OfCjrIr5i+OC+/VimWLlZ2ufwxWKJCX560TpE9vLe5z6+CTNEkTR2kA20lT/BnTH
js/A+6BAilkMNrdXWspRGgIytk4/njsgq7uTutY0lx7jOclFPXuW615FCqUNA0Ev
jyTy5b2htDH3J9QrLiHTlLZcz438W1RPvdQ8N8vIfY3QFTcugmBiltIg++rQ4Zh+
tQt/48hI/Xb4MvIQ83azzBwkvnXci4sVcekseuMeKjb5vbnd1qxvSPFMS6zvKmHi
PrJMcpCXJiFuo92YBTL/rCkiTr/jsQ==
=wB4y
-----END PGP SIGNATURE-----