Node v12.9.0(현재 버전)

주요 변경사항

  • crypto:
    • OAEP 패딩을 사용할 때 사용자가 해시 함수를 지정할 수 있도록 비대칭 암호화에 oaepHash 옵션을 추가했습니다. (Tobias Nießen) #28335.
  • deps:
    • V8을 7.6.303.29로 업데이트했습니다. (Michaël Zasso) #28955.
      • JSON.parse와 동결 배열(frozen arrays)에서 호출되는 메서드 등 다양한 API의 성능을 개선했습니다.
      • Promise.allSettled 메서드를 추가했습니다.
      • Intl 메서드의 BigInt 지원을 개선했습니다.
      • 자세한 내용은 https://v8.dev/blog/v8-release-76를 참고하세요.
    • libuv를 1.31.0으로 업데이트했습니다. (cjihrig) #29070.
      • Windows의 메모리 맵 파일에 더 빨리 접근할 수 있도록 UV_FS_O_FILEMAP을 추가했습니다.
      • Windows에서 uv_fs_mkdir()가 유효하지 않은 파일명일 때 UV_EINVAL을 반환합니다. 이전에는 UV_ENOENT를 반환했습니다.
      • uv_fs_statfs() API를 추가했습니다.
      • uv_os_environ()uv_os_free_environ() API를 추가했습니다.
  • fs:
    • fs.writev, fs.writevSync, filehandle.writev (프로미스 버전) 메서드를 추가했습니다. 이 메서드로 파일 디스크립터에 ArrayBufferView의 배열을 작성할 수 있습니다. (Anas Aboureada) #25925, (cjihrig) #29186.
  • http:
    • OutgoingMessage.prototype에 세 가지 속성 writableObjectMode, writableLength, writableHighWaterMark를 추가했습니다. #29018.
  • stream:
    • 읽을 수 있는 스트림에 readableEnded 속성을 새로 추가했습니다. 'end' 이벤트가 발생했을 때 이 값이 true로 설정됩니다. (Robert Nagy) #28814.
    • 쓸 수 있는 스트림에 writableEnded 속성을 새로 추가했습니다. writable.end()가 호출된 후 이 값이 true로 설정됩니다. (Robert Nagy) #28934.

Commits

  • [5008b46159] - benchmark: allow easy passing of process flags (Brian White) #28986
  • [9057814206] - buffer: improve copy() performance (Brian White) #29066
  • [c7a4525bbe] - buffer: improve ERR_BUFFER_OUT_OF_BOUNDS default (cjihrig) #29098
  • [f42eb01d1d] - build: enable linux large pages LLVM lld linkage support (David Carlier) #28938
  • [5c5ef4e858] - build: remove unused option (Rich Trott) #29173
  • [fbe25c7fb7] - build: remove unnecessary Python semicolon (MattIPv4) #29170
  • [e51f924964] - build: add a testclean target (Daniel Bevenius) #29094
  • [0a63e2d9ff] - build: support py3 for configure.py (cclauss) #29106
  • [b04f9e1f57] - build: reset embedder string to “-node.0” (Michaël Zasso) #28955
  • [b085b94fce] - console: minor timeLogImpl() refactor (cjihrig) #29100
  • [54197eac4d] - (SEMVER-MINOR) crypto: extend RSA-OAEP support with oaepHash (Tobias Nießen) #28335
  • [a17d398989] - deps: V8: cherry-pick e3d7f8a (cclauss) #29105
  • [2c91c65961] - deps: upgrade to libuv 1.31.0 (cjihrig) #29070
  • [53c7fac310] - deps: patch V8 to be API/ABI compatible with 7.4 (from 7.6) (Michaël Zasso) #28955
  • [7b8eb83895] - (SEMVER-MINOR) deps: patch V8 to be API/ABI compatible with 7.4 (from 7.5) (Michaël Zasso) #28005
  • [7d411f47b2] - deps: V8: backport b33af60 (Gus Caplan) #28671
  • [492b7cb8c3] - (SEMVER-MINOR) deps: V8: cherry-pick d2ccc59 (Michaël Zasso) #28016
  • [945955ff86] - deps: cherry-pick 13a04aba from V8 upstream (Jon Kunkee) #28602
  • [9b3c115efb] - (SEMVER-MINOR) deps: V8: cherry-pick 3b8c624 (Michaël Zasso) #28016
  • [533b2d4a08] - (SEMVER-MINOR) deps: V8: fix linking issue for MSVS (Refael Ackermann) #28016
  • [c9f8d28f71] - (SEMVER-MINOR) deps: V8: fix BUILDING_V8_SHARED issues (Refael Ackermann) #27375
  • [f24caeff2f] - (SEMVER-MINOR) deps: V8: add workaround for MSVC optimizer bug (Refael Ackermann) #28016
  • [94c8d068f8] - (SEMVER-MINOR) deps: V8: use ATOMIC_VAR_INIT instead of std::atomic_init (Refael Ackermann) #27375
  • [d940403c20] - (SEMVER-MINOR) deps: V8: forward declaration of Rtl*FunctionTable (Refael Ackermann) #27375
  • [ac0c075cad] - (SEMVER-MINOR) deps: V8: patch register-arm64.h (Refael Ackermann) #27375
  • [eefbc0773f] - (SEMVER-MINOR) deps: V8: update postmortem metadata generation script (cjihrig) #28016
  • [33f3e383da] - (SEMVER-MINOR) deps: V8: silence irrelevant warning (Michaël Zasso) #26685
  • [434c127651] - (SEMVER-MINOR) deps: V8: un-cherry-pick bd019bd (Refael Ackermann) #26685
  • [040e7dabe4] - (SEMVER-MINOR) deps: V8: fix filename manipulation for Windows (Refael Ackermann) #28016
  • [cfe2484e04] - deps: update V8 to 7.6.303.29 (Michaël Zasso) #28955
  • [6f7b561295] - dns: update lookupService() first arg name (cjihrig) #29040
  • [ad28f555a1] - doc: improve example single-test command (David Guttman) #29171
  • [edbe38d52d] - doc: mention N-API as recommended approach (Michael Dawson) #28922
  • [ebfe6367f0] - doc: fix introduced_in note in querystring.md (Ben Noordhuis) #29014
  • [9ead4eceeb] - doc: note that stream error can close stream (Robert Nagy) #29082
  • [5ea9237d2b] - doc: clarify async iterator leak (Robert Nagy) #28997
  • [1b6d7c0d00] - doc: fix nits in child_process.md (Vse Mozhet Byt) #29024
  • [375d1ee58b] - doc: improve UV_THREADPOOL_SIZE description (Tobias Nießen) #29033
  • [7b7b8f21cb] - doc: documented default statusCode (Natalie Fearnley) #28982
  • [17d9495afa] - doc: make unshift doc compliant with push doc (EduardoRFS) #28953
  • [3bfca0b7e4] - doc, lib, src, test, tools: fix assorted typos (XhmikosR) #29075
  • [b7696b41e5] - events: give subclass name in unhandled ‘error’ message (Anna Henningsen) #28952
  • [d79d142e0c] - fs: use fs.writev() internally (Robert Nagy) #29189
  • [82eeadb216] - fs: use consistent buffer array validation (cjihrig) #29186
  • [81f3eb5bb1] - fs: add writev() promises version (cjihrig) #29186
  • [435683610b] - fs: validate writev fds consistently (cjihrig) #29185
  • [bb19d8212a] - (SEMVER-MINOR) fs: add fs.writev() which exposes syscall writev() (Anas Aboureada) #25925
  • [178caa56ae] - fs: add default options for *stat() (Tony Brix) #29114
  • [f194626ffb] - fs: validate fds as int32s (cjihrig) #28984
  • [c5edeb9776] - http: simplify drain() (Robert Nagy) #29081
  • [6b9e372198] - http: follow symbol naming convention (Robert Nagy) #29091
  • [2e5008848e] - http: remove redundant condition (Luigi Pinca) #29078
  • [13a497912d] - http: remove duplicate check (Robert Nagy) #29022
  • [16e001112c] - (SEMVER-MINOR) http: add missing stream-like properties to OutgoingMessage (Robert Nagy) #29018
  • [c396b2a5b2] - http: buffer writes even while no socket assigned (Robert Nagy) #29019
  • [f9b61d2bc7] - (SEMVER-MINOR) http,stream: add writableEnded (Robert Nagy) #28934
  • [964dff8a9e] - http2: remove unused FlushData() function (Anna Henningsen) #29145
  • [66249bbcad] - inspector: use const for contextGroupId (gengjiawen) #29076
  • [cb162298eb] - module: pkg exports validations and fallbacks (Guy Bedford) #28949
  • [491b46d605] - module: refine package name validation (Guy Bedford) #28965
  • [925e40cfa7] - module: add warning when import,export is detected in CJS context (Giorgos Ntemiris) #28950
  • [17319e7f44] - net: use callback to properly propagate error (Robert Nagy) #29178
  • [7f11c72cc5] - readline: close dumb terminals on Control+D (cjihrig) #29149
  • [3c346b8bad] - readline: close dumb terminals on Control+C (cjihrig) #29149
  • [e474c6776c] - (SEMVER-MINOR) readline: establish y in cursorTo as optional (Gerhard Stoebich) #29128
  • [2528dee674] - report: list envvars using uv_os_environ() (cjihrig) #28963
  • [a6b9299039] - src: rename --security-reverts to …-revert (Sam Roberts) #29153
  • [62a0e91d8c] - src: simplify UnionBytes (Ben Noordhuis) #29116
  • [b2936cff5d] - src: organize imports in inspector_profiler.cc (pi1024e) #29073
  • [a9f8b62b47] - (SEMVER-MINOR) stream: add readableEnded (Robert Nagy) #28814
  • [1e3e6da9b9] - stream: simplify howMuchToRead() (Robert Nagy) #29155
  • [e2a2a3f4dd] - stream: use lazy registration for drain for fast destinations (Robert Nagy) #29095
  • [2a844599db] - stream: improve read() performance further (Brian White) #29077
  • [e543d35f35] - stream: inline and simplify onwritedrain (Robert Nagy) #29037
  • [6bc4620d8b] - stream: improve read() performance more (Brian White) #28989
  • [647f3a8d01] - stream: encapsulate buffer-list (Robert Nagy) #28974
  • [000999c06c] - stream: improve read() performance (Brian White) #28961
  • [6bafd35369] - test: deflake test-tls-passphrase (Luigi Pinca) #29134
  • [aff1ef9d27] - test: add required settings to test-benchmark-buffer (Rich Trott) #29163
  • [18b711366a] - test: make exported method static (Rainer Poisel) #29102
  • [0aa339e5e1] - test: skip test-fs-access if root (Daniel Bevenius) #29092
  • [e3b1243ea2] - test: unskip tests that now pass on AIX (Sam Roberts) #29054
  • [f9ed5f351b] - test: assert: add failing deepEqual test for faked boxed primitives (Jordan Harband) #29029
  • [43e444b07a] - test: refactor test-sync-io-option (Anna Henningsen) #29020
  • [82edebfebf] - (SEMVER-MINOR) test: add test for OAEP hash mismatch (Tobias Nießen) #28335
  • [f08f154fd6] - (SEMVER-MINOR) test: update postmortem metadata test for V8 7.6 (cjihrig) #28016
  • [5b892c44d6] - tls: allow client-side sockets to be half-opened (Luigi Pinca) #27836
  • [c4f6077994] - tools: make code cache and snapshot deterministic (Ben Noordhuis) #29142
  • [acdc21b832] - tools: make pty_helper.py python3-compatible (Ben Noordhuis) #29167
  • [31c50e5c17] - tools: make nodedownload.py Python 3 compatible (cclauss) #29104
  • [1011a1792c] - tools: allow single JS file for --link-module (Daniel Bevenius) #28443
  • [4d7a7957fc] - (SEMVER-MINOR) tools: sync gypfiles with V8 7.6 (Michaël Zasso) #28016
  • [a4e2549b87] - util: improve debuglog performance (Brian White) #28956
  • [112ec73c95] - util: isEqualBoxedPrimitive: ensure both values are actual boxed Symbols (Jordan Harband) #29029
  • [8426077898] - util: assert: fix deepEqual comparing fake-boxed to real boxed primitive (Jordan Harband) #29029
  • [d4e397a900] - worker: fix crash when SharedArrayBuffer outlives creating thread (Anna Henningsen) #29190

Windows 32-bit Installer: https://nodejs.org/dist/v12.9.0/node-v12.9.0-x86.msi

Windows 64-bit Installer: https://nodejs.org/dist/v12.9.0/node-v12.9.0-x64.msi

Windows 32-bit Binary: https://nodejs.org/dist/v12.9.0/win-x86/node.exe

Windows 64-bit Binary: https://nodejs.org/dist/v12.9.0/win-x64/node.exe

macOS 64-bit Installer: https://nodejs.org/dist/v12.9.0/node-v12.9.0.pkg

macOS 64-bit Binary: https://nodejs.org/dist/v12.9.0/node-v12.9.0-darwin-x64.tar.gz

Linux 64-bit Binary: https://nodejs.org/dist/v12.9.0/node-v12.9.0-linux-x64.tar.xz

Linux PPC LE 64-bit Binary: https://nodejs.org/dist/v12.9.0/node-v12.9.0-linux-ppc64le.tar.xz

Linux s390x 64-bit Binary: https://nodejs.org/dist/v12.9.0/node-v12.9.0-linux-s390x.tar.xz

AIX 64-bit Binary: https://nodejs.org/dist/v12.9.0/node-v12.9.0-aix-ppc64.tar.gz

SmartOS 64-bit Binary: https://nodejs.org/dist/v12.9.0/node-v12.9.0-sunos-x64.tar.xz

ARMv7 32-bit Binary: https://nodejs.org/dist/v12.9.0/node-v12.9.0-linux-armv7l.tar.xz

ARMv8 64-bit Binary: https://nodejs.org/dist/v12.9.0/node-v12.9.0-linux-arm64.tar.xz

Source Code: https://nodejs.org/dist/v12.9.0/node-v12.9.0.tar.gz

Other release files: https://nodejs.org/dist/v12.9.0/

Documentation: https://nodejs.org/docs/v12.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
54
-----BEGIN PGP SIGNED MESSAGE-----
Hash: SHA256

c690810b11e286778c0eacb8f1f56af1973d71b1788c54040f25380fc3ff6bcd node-v12.9.0-aix-ppc64.tar.gz
24c1f0c93e485961446814662db942f1b309d843fb4ecbe50466d9857a51b343 node-v12.9.0-darwin-x64.tar.gz
3e3dcfbfb78c55e582bb16ad6d995edfa93fdb3c4fe2020981e4f0adae255821 node-v12.9.0-darwin-x64.tar.xz
4dfb4147c8e41bacf7ac2bfcc844ec5ff4721cd47ace4b8a7e8ef07548d44773 node-v12.9.0-headers.tar.gz
4baa0822d0321522cdcedfc2025e9395c3a34ea6ef4af53a3147a66f23778219 node-v12.9.0-headers.tar.xz
703134352854e3501023cda8eba68f1f992a426f1cda649dc6b38e248b07fcf1 node-v12.9.0-linux-arm64.tar.gz
f7f6f102d097d64eba26f84f2760597f9831886ef7d0db3cba88459847f2743d node-v12.9.0-linux-arm64.tar.xz
05e3f81f17528d24409028bc66cb03fa18892af4d63e7cddaeb1189fe28ed005 node-v12.9.0-linux-armv7l.tar.gz
689d9e0e180bceb268876d95c86c3d8e64eb0440a90cd2e57c61899209d05acb node-v12.9.0-linux-armv7l.tar.xz
a5b0ac5557df1588d2b74a4ec33a6cf4feb0586d899b048d1eb9befd5de8a738 node-v12.9.0-linux-ppc64le.tar.gz
d5b1f14753eb8c084a22e709f38d024cf7d974cee67ed095a78665d0b62a6b69 node-v12.9.0-linux-ppc64le.tar.xz
149243fed728766eb31eb51534dba53a8eb25a58d08d6b1a354dea8deeade987 node-v12.9.0-linux-s390x.tar.gz
0c4b933cbce5f7153effed002e7aa58abde650256aae05ae951b1e6cfde1c4e6 node-v12.9.0-linux-s390x.tar.xz
3991e5b65fbaab8d70cda813b9bc73dd3b4201aeef42bcb1c000a03869aa0610 node-v12.9.0-linux-x64.tar.gz
7110bdd16e397870142ff0e8d92d4a4502d43ec047d970c843a9a4e5f9e79283 node-v12.9.0-linux-x64.tar.xz
7a18632a187137f21f88dbc0ae85c8a34d20fccb4b7c26be665fdc56a929c3fc node-v12.9.0.pkg
b0260415bf006330ca282a370dc56fcd018981a0024512785ea545fc49fd1d0f node-v12.9.0-sunos-x64.tar.gz
d8ad03d2c9f09d605607fc211749f53c708f8ff51a254f6731d9544c95d9112d node-v12.9.0-sunos-x64.tar.xz
88cb425086a87323288c8389e974e8c1001b81fe11c529e64592e8feb2d12f93 node-v12.9.0.tar.gz
e05fe8ba1bdf58e51cdb5d946ebb7a2dec567b3680da2752e120a763293a41c5 node-v12.9.0.tar.xz
2c25b307d7acbeeb1fb618587ceb6769391a5cfd8ee9be805e1ac5344b9f3a2f node-v12.9.0-win-x64.7z
b5f05deb31ac04b9c3a487542daf151e01c05017403a56ba443da623f36b153b node-v12.9.0-win-x64.zip
87adc248df2b1be102e5025b571849638ac337f595ce6c5dbec3d8cea9d374ce node-v12.9.0-win-x86.7z
a0d680846dff00222b886164e1428d257aa8031a63b52cc21de6540386a4e2d0 node-v12.9.0-win-x86.zip
7e6c6855fc4eb44b95a033f4ad8d73d7823388dd01ceb98a91eb68a7625323f3 node-v12.9.0-x64.msi
cdf09fc5223c4c47e5182803164d641365ef54eaa6dc3fd4c580fe1255faa433 node-v12.9.0-x86.msi
d5e9555256523c188af94ad9736c3a4492578842ccdfe8318ccf9caec2977bfd win-x64/node.exe
654cb8682984cbed2ca698e5b3ebd05edaa60174d964432143bdfc0c38254aa7 win-x64/node.lib
7fb28adbb18c03ecd8a8fc4e5da6a715d7adf3b79a8c626638d0c07faad6e47b win-x64/node_pdb.7z
417b7393c519c70ed96377a50323150714c0c931a571a97789c0f0ba352d2d73 win-x64/node_pdb.zip
cc2f13a4028a5c72aef8d03cb503b76036b87e3dcf400b7e000a30ae39e7f652 win-x86/node.exe
df075eff064bd3e081d848484b4b7c99b3a022a8a8e5988b2d17dbf4d0489a56 win-x86/node.lib
f2b5001a3d5bf3682c5feec610844a4f112d274e6c9b796d38dfde16ff7b0991 win-x86/node_pdb.7z
5f180908b937afbef929f4ad07f7b3355c2510d50e88ec053798b3bdbc57be3b win-x86/node_pdb.zip
-----BEGIN PGP SIGNATURE-----

iQIzBAEBCAAdFiEEj8yhP+8dDC6RAI4Jdw96mlrhVgAFAl1cTCgACgkQdw96mlrh
VgBjJA/9G6n17aIguQqqe9lmAstCDgx5zhCTnVI9vE6CtYB50HIUFQKHlc8+ijXy
QC667tTWcyoLleSEuERnWrymf1Pv+6kVaD+stQnl6nT8ioMKoJ1u16c9NOnErVoj
+AtAR16d9aXXVLTXWO1iy9jOxrXrReUpRh8tgHZ2cBUBrBY3yZZhWaeFSU0fPa1E
N/WxKeyfByLnnOc817QH6a7BUQikx2H6ZRiWis36eGMN/tTZCvh8Bw/mgGg+0jvd
YQhsj784ZoKnUdzEnCceq5WyEwFr/nFsTsrBwbSR109iysv+eQZOaqXaOI2+4Hsa
BQj/2DXuFGog79B9WO7BetkD9LqBPOP6mLXRP70Mbjnm+7GayYi1wblzYpiqekEJ
oyci1ph/AKAXkppzVo/dcIKhFvkJWKAhme8RuRSnc5e7w4uB0x3hrVZBSHrmOUgF
Miu+//N8Sh86Pww1wfmWYy253wC1sbCPgWf4whOjZ1YLf56TbsG223PjZXebI49E
NhX7VqlQC1u9JV3VvmGVHBrL0X0w3+jMcm32tfWlT8Dgzbo8jYO0eUEFNuGqa5uL
kbvyB0W2nFpK5uOPR7JOO32jt+k2y2TEYcbfnL7sYuYL95tP/UNPvjYO0AN9Rk02
dAqybpZw4nLwmge89LYTFo4/YRt1NJZ86c6sN86fNck7HHKYIms=
=o1jr
-----END PGP SIGNATURE-----