Node v12.4.0 (Current)

By Node.js Foundation

  • doc:
    • The JSON variant of the API documentation is no longer experimental (Rich Trott) #27842.
  • esm:
    • JSON module support is always enabled under --experimental-modules. The --experimental-json-modules flag has been removed (Myles Borins) #27752.
  • http,http2:
    • A new flag has been added for overriding the default HTTP server socket timeout (which is two minutes). Pass --http-server-default-timeout=milliseconds or --http-server-default-timeout=0 to respectively change or disable the timeout. Starting with Node.js 13.0.0, the timeout will be disabled by default (Ali Ijaz Sheikh) #27704.
  • inspector:
    • Added an experimental --heap-prof flag to start the V8 heap profiler on startup and write the heap profile to disk before exit (Joyee Cheung) #27596.
  • stream:
    • The readable.unshift() method now correctly converts strings to buffers. Additionally, a new optional argument is accepted to specify the string's encoding, such as 'utf8' or 'ascii' (Marcos Casagrande) #27194.
  • v8:
    • The object returned by v8.getHeapStatistics() has two new properties: number_of_native_contexts and number_of_detached_contexts (Yuriy Vasiyarov) #27933.
  • [5bbc6d79c3] - assert: remove unreachable code (Rich Trott) #27840
  • [530e63a4eb] - assert: remove unreachable code (Rich Trott) #27786
  • [9b08c458be] - build,aix: link with noerrmsg to eliminate warnings (Refael Ackermann) #27773
  • [08b0ca9645] - build,win: create junction instead of symlink to out\\%config% (Refael Ackermann) #27736
  • [ea2d550507] - child_process: move exports to bottom for consistent code style (himself65) #27845
  • [a9f95572c3] - child_process: remove extra shallow copy (zero1five) #27801
  • [449ee8dd42] - console: fix table() output (Brian White) #27917
  • [9220a68a76] - crypto: fix KeyObject handle type error message (Alexander Avakov) #27904
  • [3b6424fa29] - deps: histogram: unexport symbols (Ben Noordhuis) #27779
  • [ef25ac5223] - doc: clarify wording in modules.md (Alex Temny) #27853
  • [c683cd99d7] - doc: improve explanation for directory with fs.rename() (Rich Trott) #27963
  • [70b485478c] - doc: fix the wrong name of AssertionError (Kyle Zhang) #27982
  • [11c3ddb4cb] - doc: simplify system call material in doc overview (Rich Trott) #27966
  • [c56640138a] - doc: warn about relying on fs gc close behavior (Benjamin Gruenbaum) #27972
  • [bab9f5a891] - doc: add information to revoked deprecations (cjihrig) #27952
  • [f4fc75d245] - doc: add missing status to DEP0121 (cjihrig) #27950
  • [77ff597faa] - doc: add missing --experimental-wasm-modules docs (cjihrig) #27948
  • [6ca4f03ccf] - doc: revise additional Experimental status text (Rich Trott) #27931
  • [a1788de0a4] - doc: adds link to nightly code coverage report (Tariq Ramlall) #27922
  • [b7cd0de145] - doc: fix typo in pipe from async iterator example (Luigi Pinca) #27870
  • [f621b8f178] - doc: reword Experimental stability index (Rich Trott) #27879
  • [7a7fc4e7e6] - doc: update n-api support matrix (teams2ua) #27567
  • [9d9b32eff5] - doc: fix for OutgoingMessage.prototype._headers/_headerNames (Daniel Nalborczyk) #27574
  • [263e53317b] - doc: reposition "How to Contribute" README section (Anish Asrani) #27811
  • [85f505c292] - doc: add version info for types (Michael Dawson) #27754
  • [e3bb2aef60] - doc: remove experimental status for JSON documentation (Rich Trott) #27842
  • [6981565c20] - doc: edit stability index overview (Rich Trott) #27831
  • [1a8e67cc1f] - doc: simplify contributing documentation (Rich Trott) #27785
  • [041b2220be] - doc,n-api: fix typo in N-API introduction (Richard Lau) #27833
  • [6cd64c8279] - doc,test: clarify that Http2Stream is destroyed after data is read (Alba Mendez) #27891
  • [cc69d5af8e] - doc,tools: get altDocs versions from CHANGELOG.md (Richard Lau) #27661
  • [e72d4aa522] - errors: create internal connResetException (Rich Trott) #27953
  • [be1166fd01] - esm: refactor createDynamicModule() (cjihrig) #27809
  • [e66648e887] - (SEMVER-MINOR) esm: remove experimental status from JSON modules (Myles Borins) #27752
  • [d948656635] - http: fix deferToConnect comments (Robert Nagy) #27876
  • [24eaeed393] - http: fix socketOnWrap edge cases (Anatoli Papirovski) #27968
  • [8b38dfbf39] - http: call write callback even if there is no message body (Luigi Pinca) #27777
  • [588fd0c20d] - (SEMVER-MINOR) http, http2: flag for overriding server timeout (Ali Ijaz Sheikh) #27704
  • [799aeca134] - http2: respect inspect() depth (cjihrig) #27983
  • [83aaef87d0] - http2: fix tracking received data for maxSessionMemory (Anna Henningsen) #27914
  • [8c35198499] - http2: support net.Server options (Luigi Pinca) #27782
  • [23119cacf8] - inspector: supported NodeRuntime domain in worker (Aleksei Koziatinskii) #27706
  • [89483be254] - inspector: more conservative minimum stack size (Ben Noordhuis) #27855
  • [512ab1fddf] - inspector: removing checking of non existent field in lib/inspector.js (Keroosha) #27919
  • [d99e70381e] - SEMVER-MINOR inspector: implement --heap-prof (Joyee Cheung) #27596
  • [25eb05a97a] - lib: removed unnecessary fs.realpath options arg check + tests (Alex Pry) #27909
  • [9b90385825] - Revert "lib: print to stdout/stderr directly instead of using console" (Richard Lau) #27823
  • [18650579e8] - meta: correct personal info (Refael Ackermann (רפאל פלחי)) #27940
  • [d982f0b7e2] - meta: create github support file (Gus Caplan) #27926
  • [2b7ad122b2] - n-api: DRY napi_coerce_to_x() API methods (Ben Noordhuis) #27796
  • [1da5acbf91] - os: assume UTF-8 for hostname (Anna Henningsen) #27849
  • [d406785814] - src: unimplement deprecated v8-platform methods (Michaël Zasso) #27872
  • [33236b7c54] - (SEMVER-MINOR) src: export number_of_native_contexts and number_of_detached_contexts (Yuriy Vasiyarov) #27933
  • [1a179e1736] - src: use ArrayBufferViewContents more frequently (Anna Henningsen) #27920
  • [b9cc4072e6] - src: make UNREACHABLE variadic (Refael Ackermann) #27877
  • [44846aebd2] - src: move DiagnosticFilename inlines into a -inl.h (Sam Roberts) #27839
  • [d774ea5cce] - src: remove env-inl.h from header files (Sam Roberts) #27755
  • [02f794a53f] - src: remove memory_tracker-inl.h from header files (Sam Roberts) #27755
  • [940577bd76] - src: move ThreadPoolWork inlines into a -inl.h (Sam Roberts) #27755
  • [c0cf17388c] - src: ignore SIGXFSZ, don't terminate (ulimit -f) (Ben Noordhuis) #27798
  • [a47ee80114] - (SEMVER-MINOR) stream: convert string to Buffer when calling unshift(\<string\>) (Marcos Casagrande) #27194
  • [5eccd642ef] - stream: convert existing buffer when calling .setEncoding (Anna Henningsen) #27936
  • [6a5ce36fb8] - test: handle unknown message type in worker threads (Rich Trott) #27995
  • [182725651b] - test: add coverage for unserializable worker thread error (Rich Trott) #27995
  • [887dd604f1] - test: simplify fs promises test (Daniel Nalborczyk) #27242
  • [9229825496] - test: covering destroying when worker already disconnected (Keroosha) #27896
  • [10bdd13972] - test: rename test-performance to test-perf-hooks (Ujjwal Sharma) #27969
  • [6129376cd9] - test: add coverage for sparse array maxArrayLength (went.out) #27901
  • [38e3827ca8] - test: add util inspect null getter test (Mikhail Kuklin) #27884
  • [0e1ce2055e] - test: rsa-pss generateKeyPairSync invalid option hash (Evgenii Shchepotev) #27883
  • [0d74198123] - test: cover import of a *.node file with a policy manifest (Evgenii Shchepotev) #27903
  • [6f9aa3f722] - test: add test cases for paramEncoding 'explicit' (oksana) #27900
  • [682319f449] - test: switch assertEqual arguments (Evgenii Shchepotev) #27910
  • [b5b234deff] - test: add testcase for SourceTextModule custom inspect (Grigory Gorshkov) #27889
  • [630cc3ac30] - test: cover util.inspect on boxed primitive with colors (Alexander Avakov) #27897
  • [67b692bdb9] - test: add test case for checking typeof mgf1Hash (Levin Eugene) #27892
  • [2a509d40f4] - test: switch assertEqual arguments (Evgenii Shchepotev) #27912
  • [3ba354aaaa] - test: add test for util.inspect (Levin Eugene) #27906
  • [313077ea62] - test: expect wpt/encoding/encodeInto.any.js to fail (Joyee Cheung) #27860
  • [8fc6914d09] - test: update wpt/encoding to 7287608f90 (Joyee Cheung) #27860
  • [0f86c2b185] - test: run WPT in subdirectories (Joyee Cheung) #27860
  • [51ccdae445] - test: expect wpt/encoding/streams to fail (Joyee Cheung) #27860
  • [652cadba1c] - test: fix arguments order of comparsion functions (martyns0n) #27907
  • [b117f6d5d8] - test: switch assertEqual arguments (Evgenii Shchepotev) #27913
  • [e7966bcb80] - test: unhardcode server port (MurkyMeow) #27908
  • [b83571d236] - test: add a test case for the path.posix.resolve (Grigorii K. Shartsev) #27905
  • [f5bb1b380f] - test: switch actual value argument and expected in deepStrictEqual call (Kopachyov Vitaliy) #27888
  • [531669b917] - test: fix test-http2-multiheaders-raw (Grigorii K. Shartsev) #27885
  • [724d9c89bc] - test: change expected and actual values in assert call (oksana) #27881
  • [34ef9e4a2b] - test: detect missing postmortem metadata (cjihrig) #27828
  • [bfcbab4c0c] - test: fix test-https-agent-additional-options (Rich Trott) #27830
  • [a4c1fd5ffc] - test: refactor test-https-agent-additional-options (Rich Trott) #27830
  • [17abc8c942] - test: favor arrow functions for anonymous callbacks (Rich Trott) #27830
  • [155b947251] - test: replace flag with option (Rich Trott) #27830
  • [144db48b6d] - test: update wpt/url to 418f7fabeb (Joyee Cheung) #27822
  • [65d4f734e0] - test: use ShellTestEnvironment in WPT (Joyee Cheung) #27822
  • [a9a400e604] - test: update wpt/resources to e1fddfbf80 (Joyee Cheung) #27822
  • [8040d8b321] - test: increase debugging information on failure (Rich Trott) #27790
  • [6548b91835] - tls: trace errors can show up as SSL errors (Sam Roberts) #27841
  • [0fe16edfab] - tls: group chunks into TLS segments (Alba Mendez) #27861
  • [e8fa0671a4] - tls: destroy trace BIO instead of leaking it (Sam Roberts) #27834
  • [10e0d7f2ac] - tls: support the hints option (Luigi Pinca) #27816
  • [4716caa12e] - tls: set tlsSocket.servername as early as possible (oyyd) #27759
  • [2ce24a9452] - tools: fix js2c regression (Refael Ackermann) #27980
  • [a75a59d3e3] - tools: update inspector_protocol to 0aafd2 (Michaël Zasso) #27770
  • [728bc2f59a] - tools: update dependencies in tools/doc (Rich Trott) #27927
  • [b54f3e0405] - tools: edit .eslintrc.js for minor maintainability improvements (Rich Trott) #27789

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

SHASUMS

-----BEGIN PGP SIGNED MESSAGE-----
Hash: SHA256 b5fbeca9b72725a9825cad0a73af3f804ec01f8a7bac335fc9547c89443ad7f6 node-v12.4.0-aix-ppc64.tar.gz
aaff97d59cda775165ef966ae74e70f55f3267e86d735ed3740ae9bf1d40531e node-v12.4.0-darwin-x64.tar.gz
2457811f736d94ee33f94c6cc31cd5463ff526fc7f0d9bcc020c3c605c6077fd node-v12.4.0-darwin-x64.tar.xz
3a5bbb6ad1a5f3ba912981c13910d7c617bb8fa6b6ae2026d6aee2edcd590a45 node-v12.4.0-headers.tar.gz
00ec93780abfc32ab207c25319ac370a75f383efe84d541b5be4e29583c4ea35 node-v12.4.0-headers.tar.xz
312a7942f5fbd0aa83d6e624a06681275db2cb3c3eeaf3e452ad04aac17b6de5 node-v12.4.0-linux-arm64.tar.gz
bb2e7eabebdceb52424516dabce94cb37f55419e6ed19493916843a323c423cd node-v12.4.0-linux-arm64.tar.xz
12929c2128f740a47690c5e991c401b213a0b0923383f40ed53c1ca44ae99ec2 node-v12.4.0-linux-armv7l.tar.gz
5f3334d313804671dac22720ea8ef801efac231a1933e255beebe9217c9294d7 node-v12.4.0-linux-armv7l.tar.xz
7fc99ee4ea2fb145599e115f04f68070e221c83677a1089fc2d5a271133c6f7d node-v12.4.0-linux-ppc64le.tar.gz
6de87f20b43cd621b745f4c476965e705d3416e0acdc8acb67aa69ed62a98e99 node-v12.4.0-linux-ppc64le.tar.xz
bf7c825cdad31696bdc947a621434bbf3f48280161c333037853752591b60832 node-v12.4.0-linux-s390x.tar.gz
8dfa841d83e47db766d0ac6f7866d233276138691f3a56ff2f6e2a5c7f00d9d0 node-v12.4.0-linux-s390x.tar.xz
9a16909157e68d4e409a73b008994ed05b4b6bc952b65ffa7fbc5abb973d31e9 node-v12.4.0-linux-x64.tar.gz
9aec6a2a50c1791704a6069cbda6da62781361e44814d024e8bbaaf0deb41c5e node-v12.4.0-linux-x64.tar.xz
df5f09b785f34fe545beb43dd73d410de5f4577fe1631f88b49d736a009f93d1 node-v12.4.0.pkg
69c143a49e7f8276b8058e7dd35c07b723aa6003d0a24cd3842818328c502b7e node-v12.4.0-sunos-x64.tar.gz
b91deefabdb52ce12645e04f2d089ec8b9daa63adc9e4b4898664c7060198a64 node-v12.4.0-sunos-x64.tar.xz
cf39befb8ea486363cac6f297d8f451fd0d5dd8ad21dca51e9c2ea86b242baa0 node-v12.4.0.tar.gz
20b52366d3502c60d4aec0bd5052c841a94bf1cd5d74b2ea1e498c1a2ada8ce3 node-v12.4.0.tar.xz
0044440b9d2b6f99d5c93eee6da3ecbf9d186130e2a1c61664f03a1b52797c41 node-v12.4.0-win-x64.7z
ec8623e2528a35d3219200308e7ed41e24d4f7cd96530a4e6ac2513e44f7fad1 node-v12.4.0-win-x64.zip
b85b199e84fb3a3912481c6ccf01031857717ce91b2137e4150b0ba6aff0de7c node-v12.4.0-win-x86.7z
9240ba7da7f8704aa5d1e9caeac8914bd3d38965564c5f5a49bb9727e15b2cb4 node-v12.4.0-win-x86.zip
323a41a8c5ec6fc6f48dc853e9db886a1c23853d6d08a679907a77eda6ae5e61 node-v12.4.0-x64.msi
2bb09ebce2b62da1382f8f7b28116bea7aa37f5d1d9509e9daa4a94a76860cf7 node-v12.4.0-x86.msi
7c042a1980ba080199486ecf32272e28f205bcffcae54a1fa72c150910fbb3f8 win-x64/node.exe
5b198b078cb2924b29148de188296151ce8fca9683735c63d3104969e132bdd0 win-x64/node.lib
b83d389a4e0b4397703fd7b0f3bcf6516923d377816e009435566e68f34eb110 win-x64/node_pdb.7z
f32cb2c6d468a1bd2fa38d064eb39cfd069c49bce6a505e5de120c3d5d0925dd win-x64/node_pdb.zip
15618b6a205b8a7814122124348d0154cdfc2512682c2ab75a4f26bb78d5a44a win-x86/node.exe
094cf74776ea08a116e65d19e1facf705c2ac64e6f04c347aa4bf2293c1378c0 win-x86/node.lib
2d6e1fa44f9484a7f415109adb927ed5f558c4343e2939c3d50f7f9611c19b69 win-x86/node_pdb.7z
72b09155fce8fe93644f2af062682bcfaea1908302e12f1576189e145d07cda1 win-x86/node_pdb.zip
-----BEGIN PGP SIGNATURE----- iQIzBAEBCAAdFiEEj8yhP+8dDC6RAI4Jdw96mlrhVgAFAlz2eiAACgkQdw96mlrh
VgDfexAAlvr9rWDSXETbJBMc98KoFsguCiDPmrE1m87S70DhATfgEtmJe9gFckQj
5toAyH2m7BvgaKUiCUCadJXalciIS7i5vIP+c3H9/FQAaw/uO7a/Q4Ye+Onb5YUR
myAiBtAF9fHjyioxV7rW62LQHZukHxCREHznvLrUQ4WcB14RmR8JT6Udw1DQCrX2
GjJhAIQrS4h3fLOBf1B2On8sDq26+k17pbn++YiMd9z9053WxQJrN6xjYfRORRcg
BgISlddh1vQ/xJMtd51bt1VJU+U5a2yfyyPIcZSsbkBMlUspu3hifAhRAbSARHdw
uRQxKUmxIjoZMNyGuGx3qTRIhZkurhtKnw96ZQSTKwNx2t2x897qebYnbmTgF8un
xsVT3FA/Wq67PgZCTH3Hhn1OJICB2K9uciWV9MfH9b9VXdGY79PrTvdoLYJJMXwT
hwaMtR1zisWukpsD/cTH7ftiKB/Kt6rIS1YesmQdtpXjf+Zyejgbg6foJGsMVYZJ
44ZEoSeFxzS4AL/QCvI8X6oqbZjDyk30pgL1DmSIvIDBA/4xcWmvLLs28sMf63F5
U2lPH/is/WbmtMI2+ACvzkAZygWARNE3Vu88rpD4CKRfrcnqaQ04uxkyQRU4ZbKH
nmeLvopym5OvIbsEKvjh0S2VXAkJ1CZ4+ZKYNfaw/ggyiw6+x+0=
=XgQX
-----END PGP SIGNATURE-----