Node v13.0.0(현재 버전)

주요 변경사항

  • assert:
    • assert.throws() 또는 assert.rejects()에 전달된 유효성 검사 함수가 true 이외의 값을 반환하면 프로그래밍 상의 실수를 강조하기 위해 원래의 오류 대신 단언문 오류가 발생합니다. (Ruben Bridgewater) #28263.
    • assert.throws() 또는 assert.rejects()에서 발생한 오류 인스턴스의 유효성을 검사하기 위해 생성자 함수가 전달되면 원래 오류 대신 단언문 오류가 발생합니다. (Ruben Bridgewater) #28263.
  • build:
    • Node.js 릴리스는 이제 기본 full-icu 지원으로 빌드됩니다. 이는 ICU가 지원하는 모든 로케일이 포함되었으며 Intl 관련 API가 이전과 다른 값을 반환할 수 있음을 의미합니다. (Richard Lau) #29887.
    • macOS에서 지원되는 최소 Xcode 버전이 10으로 올라갔습니다. Xcode 8을 사용하여 Node.js를 빌드할 수는 있지만, 이후의 v13.x 릴리스에서는 불가능 할 수 있습니다. (Michael Dawson) #29622.
  • child_process:
    • ChildProcess._channel(DEP0129)이 런타임 폐기 예정 상태가 되었습니다. (cjihrig) #27949.
  • console:
    • 출력되는 console.timeEnd()console.timeLog()가 항상 밀리초를 사용하는 대신 적합한 시간 단위를 자동으로 선택합니다. (Xavier Stouder) #29251.
  • deps:
    • V8 엔진이 버전 7.8로 업데이트되었습니다. 이 업데이트에는 객체 디스트럭처링(destructuring), 메모리 사용 및 WebAssembly 시동 시간에 대한 성능 향상이 포함됩니다. (Myles Borins) #29694.
  • domain:
    • 내부적인 재귀를 막기 위해 domain의 오류 핸들러가 부모로 설정된 활성 domain으로 실행됩니다. (Julien Gilli) #26211.
  • fs:
    • 문서화되지 않은 FSWatcher.prototype.start() 메서드가 삭제되었습니다. (Lucas Holmquist) #29905.
    • ReadStream 또는 WriteSream에서 open() 메서드를 호출하면 이제 런타임 폐기 경고가 발생합니다. 메서드는 내부에 있어야 하며 사용자의 코드로 호출하면 안 됩니다. (Robert Nagy) #29061.
    • fs.read/write, fs.readSync/writeSyncfd.read/write는 이제 offset 파라미터로 안전한 정수를 받아들입니다. offset의 값도 이제 강제되지 않으므로 유효한 타입이 함수에 전달되어야 합니다. (Zach Bjornson) #26572.
  • http:
    • 중단된 요청은 이제 aborted 이벤트 후에 end 또는 error 이벤트를 생성하지 않습니다.
      (Robert Nagy) #27984, #20077.
    • 이제 소켓 오류 발생 이후 데이터가 방출되지 않습니다. (Robert Nagy) #28711.
    • 레거시 HTTP 파서(이전에는 --http-parser=legacy 플래그에서 사용 가능)가 삭제되었습니다. (Anna Henningsen) #29589.
    • HTTP 요청에 대한 host 옵션은 이제 문자열 값인지 검증됩니다. (Giorgos Ntemiris) #29568.
    • request.connectionresponse.connection 속성이 런타임 폐기 예정 상태가 되었습니다. 대신 이와 동등한 request.socketresponse.socket을 사용해야 합니다. (Robert Nagy) #29015.
  • http, http2:
    • 기본 서버 타임아웃이 삭제되었습니다. (Ali Ijaz Sheikh) #27558.
    • RFC 8470에 따라 425 상태 코드 이름을 가져왔습니다. 이름이 "Unordered Collection"에서 "Too Early"로 변경되었습니다. (Sergei Osipov) #29880.
  • lib:
    • error.errno 속성은 이제 항상 숫자입니다. 문자열 값을 얻으려면 error.code를 사용하세요. (Joyee Cheung) #28140.
  • module:
    • module.createRequireFromPath()는 폐기 예정 상태가 되었습니다. module.createRequire()를 대신 사용하세요. (cjihrig) #27951.
  • src:
    • process.env.TZ의 값을 변경하면 TZ 캐시가 삭제됩니다. 이는 Data.prototype.toString 등의 메서드가 사용하는 기본 시간대에 영향을 줍니다. (Ben Noordhuis) #20026.
  • stream:
    • 스트림의 타이밍과 동작은 여러가지 엣지 케이스에 대비하여 강화되었습니다. 자세한 내용은 아래의 개별 커밋을 참고하세요.

Semver-Major Commits

  • [5981fb7faa] - (SEMVER-MAJOR) assert: fix line number calculation after V8 upgrade (Michaël Zasso) #29694
  • [48d1ea5e7f] - (SEMVER-MAJOR) assert: special handle identical error names in instance checks (Ruben Bridgewater) #28263
  • [97c52ca5dc] - (SEMVER-MAJOR) assert: add more information to AssertionErrors (Ruben Bridgewater) #28263
  • [5700cd17dd] - (SEMVER-MAJOR) assert: do not repeat .throws() code (Ruben Bridgewater) #28263
  • [d47b6786c9] - (SEMVER-MAJOR) assert: wrap validation function errors (Ruben Bridgewater) #28263
  • [0b3242c3ce] - (SEMVER-MAJOR) assert: fix generatedMessage property (Ruben Bridgewater) #28263
  • [ace3f16917] - (SEMVER-MAJOR) assert: improve class instance errors (Ruben Bridgewater) #28263
  • [0376b5b7ba] - (SEMVER-MAJOR) benchmark: use test/common/tmpdir consistently (João Reis) #28858
  • [4885e50f7e] - (SEMVER-MAJOR) build: make full-icu the default for releases (Richard Lau) #29887
  • [60a3bd93ce] - (SEMVER-MAJOR) build: reset embedder string to “-node.0” (Myles Borins) #29694
  • [9f830f37da] - (SEMVER-MAJOR) build: update minimum Xcode version for macOS (Michael Dawson) #29622
  • [66eaeac1df] - (SEMVER-MAJOR) build: reset embedder string to “-node.0” (Michaël Zasso) #28016
  • [d05668d688] - (SEMVER-MAJOR) child_process: runtime deprecate _channel (cjihrig) #27949
  • [4f9cd2770a] - (SEMVER-MAJOR) child_process: simplify spawn argument parsing (cjihrig) #27854
  • [66043e1812] - (SEMVER-MAJOR) console: display timeEnd with suitable time unit (Xavier Stouder) #29251
  • [80f2b67367] - (SEMVER-MAJOR) deps: patch V8 to 7.8.279.14 (Myles Borins) #29694
  • [eeafb263f4] - (SEMVER-MAJOR) deps: patch V8 to 7.8.279.12 (Myles Borins) #29694
  • [ddfc3b0a76] - (SEMVER-MAJOR) deps: patch V8 to 7.8.279.10 (Myles Borins) #29694
  • [8d05991d10] - (SEMVER-MAJOR) deps: update V8’s postmortem script (cjihrig) #29694
  • [858602445b] - (SEMVER-MAJOR) deps: V8: cherry-pick 716875d (Myles Borins) #29694
  • [f7f6c928c1] - (SEMVER-MAJOR) deps: update V8 to 7.8.279.9 (Myles Borins) #29694
  • [84d3243ce9] - (SEMVER-MAJOR) deps: V8: cherry-pick b33af60 (Michaël Zasso) #28016
  • [2dcc3665ab] - (SEMVER-MAJOR) deps: update V8 to 7.6.303.28 (Michaël Zasso) #28016
  • [eef1b5aa0f] - (SEMVER-MAJOR) doc: make AssertionError a link (Ruben Bridgewater) #28263
  • [8fd7184959] - (SEMVER-MAJOR) doc: update assert.throws() examples (Ruben Bridgewater) #28263
  • [80d9b1c712] - (SEMVER-MAJOR) doc: wrap long line (cjihrig) #27951
  • [43a5170858] - (SEMVER-MAJOR) domain: error handler runs outside of its domain (Julien Gilli) #26211
  • [7eacb74389] - (SEMVER-MAJOR) fs: make FSWatcher.start private (Lucas Holmquist) #29905
  • [773769df60] - (SEMVER-MAJOR) fs: add runtime deprecate for file stream open() (Robert Nagy) #29061
  • [5e3b4d6ed9] - (SEMVER-MAJOR) fs: allow int64 offset in fs.write/writeSync/fd.write (Zach Bjornson) #26572
  • [a3c0014e73] - (SEMVER-MAJOR) fs: use IsSafeJsInt instead of IsNumber for ftruncate (Zach Bjornson) #26572
  • [0bbda5e5ae] - (SEMVER-MAJOR) fs: allow int64 offset in fs.read/readSync/fd.read (Zach Bjornson) #26572
  • [eadc3850fe] - (SEMVER-MAJOR) fs: close file descriptor of promisified truncate (João Reis) #28858
  • [5f80df8820] - (SEMVER-MAJOR) http: do not emit end after aborted (Robert Nagy) #27984
  • [e573c39b88] - (SEMVER-MAJOR) http: don’t emit ‘data’ after ‘error’ (Robert Nagy) #28711
  • [ac59dc42ed] - (SEMVER-MAJOR) http: remove legacy parser (Anna Henningsen) #29589
  • [2daf883a18] - (SEMVER-MAJOR) http: throw if ‘host’ agent header is not a string value (Giorgos Ntemiris) #29568
  • [0daec61b9b] - (SEMVER-MAJOR) http: replace superfluous connection property with getter/setter (Robert Nagy) #29015
  • [461bf36d70] - (SEMVER-MAJOR) http: fix test where aborted should not be emitted (Robert Nagy) #20077
  • [d5577f0395] - (SEMVER-MAJOR) http: remove default ‘timeout’ listener on upgrade (Luigi Pinca) #26030
  • [c30ef3cbd2] - (SEMVER-MAJOR) http, http2: remove default server timeout (Ali Ijaz Sheikh) #27558
  • [4e782c9deb] - (SEMVER-MAJOR) http2: remove security revert flags (Anna Henningsen) #29141
  • [41637a530e] - (SEMVER-MAJOR) http2: remove callback-based padding (Anna Henningsen) #29144
  • [91a4cb7175] - (SEMVER-MAJOR) lib: rename validateInteger to validateSafeInteger (Zach Bjornson) #26572
  • [1432065e9d] - (SEMVER-MAJOR) lib: correct error.errno to always be numeric (Joyee Cheung) #28140
  • [702331be90] - (SEMVER-MAJOR) lib: no need to strip BOM or shebang for scripts (Refael Ackermann) #27375
  • [e2c0c0c680] - (SEMVER-MAJOR) lib: rework logic of stripping BOM+Shebang from commonjs (Gus Caplan) #27768
  • [14701e539c] - (SEMVER-MAJOR) module: runtime deprecate createRequireFromPath() (cjihrig) #27951
  • [04633eeeb9] - (SEMVER-MAJOR) readline: error on falsy values for callback (Sam Roberts) #28109
  • [3eea43af07] - (SEMVER-MAJOR) repl: close file descriptor of history file (João Reis) #28858
  • [458a38c904] - (SEMVER-MAJOR) src: bring 425 status code name into accordance with RFC 8470 (Sergei Osipov) #29880
  • [7fcc1f7047] - (SEMVER-MAJOR) src: update NODE_MODULE_VERSION to 79 (Myles Borins) #29694
  • [4b7be335b9] - (SEMVER-MAJOR) src: update NODE_MODULE_VERSION to 78 (Michaël Zasso) #28918
  • [a0e2c6d284] - (SEMVER-MAJOR) src: add error codes to errors thrown in C++ (Yaniv Friedensohn) #27700
  • [94e980c9d3] - (SEMVER-MAJOR) src: use non-deprecated overload of V8::SetFlagsFromString (Michaël Zasso) #28016
  • [655e0dc01a] - (SEMVER-MAJOR) src: update NODE_MODULE_VERSION to 77 (Michaël Zasso) #28016
  • [e3cd79ef8e] - (SEMVER-MAJOR) src: update NODE_MODULE_VERSION to 74 (Refael Ackermann) #27375
  • [eba348b6ae] - (SEMVER-MAJOR) src: make process.env.TZ setter clear tz cache (Ben Noordhuis) #20026
  • [f2061930c8] - (SEMVER-MAJOR) src: enable V8’s WASM trap handlers (Gus Caplan) #27246
  • [f8f6a21580] - (SEMVER-MAJOR) stream: throw unhandled error for readable with autoDestroy (Robert Nagy) #29806
  • [f663b31cc2] - (SEMVER-MAJOR) stream: always invoke callback before emitting error (Robert Nagy) #29293
  • [aa32e13968] - (SEMVER-MAJOR) stream: do not flush destroyed writable (Robert Nagy) #29028
  • [ba3be578d8] - (SEMVER-MAJOR) stream: don’t emit finish on error (Robert Nagy) #28979
  • [db706da235] - (SEMVER-MAJOR) stream: disallow stream methods on finished stream (Robert Nagy) #28687
  • [188896ea3e] - (SEMVER-MAJOR) stream: do not emit after ‘error’ (Robert Nagy) #28708
  • [4a2bd69db9] - (SEMVER-MAJOR) stream: fix destroy() behavior (Robert Nagy) #29058
  • [824dc576db] - (SEMVER-MAJOR) stream: simplify .pipe() and .unpipe() in Readable (Weijia Wang) #28583
  • [8ef68e66d0] - (SEMVER-MAJOR) test: clean tmpdir on process exit (João Reis) #28858
  • [d3f20a4725] - (SEMVER-MAJOR) test: use unique tmpdirs for each test (João Reis) #28858
  • [174723354e] - (SEMVER-MAJOR) tools: patch V8 to run on older XCode versions (Ujjwal Sharma) #29694
  • [1676502318] - (SEMVER-MAJOR) tools: update V8 gypfiles (Michaël Zasso) #29694
  • [1a25e901b7] - (SEMVER-MAJOR) tools: support full-icu by default (Steven R. Loomis) #29522
  • [2664dacf7e] - (SEMVER-MAJOR) util: validate formatWithOptions inspectOptions (Ruben Bridgewater) #29824

Semver-Minor Commits

  • [8915b15f8c] - (SEMVER-MINOR) http: add reusedSocket property on client request (themez) #29715
  • [6afed1dc85] - (SEMVER-MINOR) n-api: add napi\_detach\_arraybuffer (legendecas) #29768
  • [c0305af2c4] - (SEMVER-MINOR) repl: check for NODE_REPL_EXTERNAL_MODULE (Gus Caplan) #29778

Semver-Patch Commits

Windows 32-bit Installer: https://nodejs.org/dist/v13.0.0/node-v13.0.0-x86.msi

Windows 64-bit Installer: https://nodejs.org/dist/v13.0.0/node-v13.0.0-x64.msi

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

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

macOS 64-bit Installer: https://nodejs.org/dist/v13.0.0/node-v13.0.0.pkg

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

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

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

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

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

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

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

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

Source Code: https://nodejs.org/dist/v13.0.0/node-v13.0.0.tar.gz

Other release files: https://nodejs.org/dist/v13.0.0/

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

9164c8b7eb9f2acccf8fe2d783122bfe967774a400ba7551695b4252181ffbcf node-v13.0.0-aix-ppc64.tar.gz
612556a8c7e6b4cd08f6134b8afe5a05bf84c0121225fa9c542be1c98af04a35 node-v13.0.0-darwin-x64.tar.gz
4c459f1a40a10d3f4e65eef6b8f3d35ee55f5b60db124c659aa06b9c32238572 node-v13.0.0-darwin-x64.tar.xz
45431760583b62552941751cf2e53b0114679589b462eacbeae48147d239f6eb node-v13.0.0-headers.tar.gz
40f0842e7a61e8ffb3be44a5b8fb7b7facc3bd6fd8921e629a1b263bf927c13a node-v13.0.0-headers.tar.xz
18e28a5ed3a474e8d0619c5b17c14b88c72a55630e637d4547485d88863dc1a9 node-v13.0.0-linux-arm64.tar.gz
6ed882e17123861b5b81683de2b2c86be02c5916ef0beda04fd176329888fd12 node-v13.0.0-linux-arm64.tar.xz
dbbe30ba285c012a456a33b0ea5d6c7bdd0ce9a5095bcd1f2fd130109023e132 node-v13.0.0-linux-armv7l.tar.gz
84cc5c1a0d2003f194936756fcffdbe308c91c51711c29a857f29a0259f29c18 node-v13.0.0-linux-armv7l.tar.xz
fdb1ac3adca9a2943459ee763837a98ba986b73e5938e1233921a2128c9325c9 node-v13.0.0-linux-ppc64le.tar.gz
7223ffc4e1b61dab831e10f3ae778eaf3aedca2001e439032a080e1013bd7e17 node-v13.0.0-linux-ppc64le.tar.xz
86c727017d8c4b6399c8c3a5df5e231e9fe25328a6e5ca0191664e12dedef2f6 node-v13.0.0-linux-s390x.tar.gz
ab663af82f9734a438e4078a9fa935f1eee4716be692063d16aebcc69d0b7249 node-v13.0.0-linux-s390x.tar.xz
807a617fa1363d5bac9775afda0610a0e55d2e78b976e3c97d3e25a94de27dfd node-v13.0.0-linux-x64.tar.gz
799d890f00a3a2a7415b813b286d32d38573df6525bc8ef80f40077cdd210d39 node-v13.0.0-linux-x64.tar.xz
c1faf0b561da02a4896dd64bcb36f2fe494b08a366a93cf987842d5d87e482d5 node-v13.0.0.pkg
cc8cfe1ad406f63445bd6a942bd818da0f3794e1a8acc140086b2b36dfc28ceb node-v13.0.0-sunos-x64.tar.gz
64791dea08ef3ebc444fba27e8c6d858f303bda99010825dcdab64885a44823b node-v13.0.0-sunos-x64.tar.xz
103fc63b631a24ddc47189deee8c689e8158d7d804a67bd59fef04a1790bb217 node-v13.0.0.tar.gz
45ff3b40afc3fc93fd62e31c0f5dfa046f307f0b33d0f32e09019f306bc74767 node-v13.0.0.tar.xz
2d4c62e07e3f739d4245400f1e20c9eef153333ba64fa69932515d49e9221b5e node-v13.0.0-win-x64.7z
8ffcefde5e080d70790a9a2e1aab0724cc88b5526d5128b53fc59bf94f6ad5de node-v13.0.0-win-x64.zip
abe5d685c804e167af649ded10cb4a42a1c9b198057c2bc29d749bee9b8b32e4 node-v13.0.0-win-x86.7z
12d2d0ee105ae55f8cdd15a60f62a6855f04ff98526310745635e74d0cbdbf7c node-v13.0.0-win-x86.zip
1b62678b0b0bf7c5c8f37f90dfbcae7fd6baec8bceeb217b44048d2c86ae88b6 node-v13.0.0-x64.msi
5e04d9d5e1e138c7f2896fa0c80e2a8415304e4b4961501da21361dca0a8a394 node-v13.0.0-x86.msi
e3f93b5fcc9f4e77c0e2fd4e851862db563f4060fd2442344e385cfd46df80eb win-x64/node.exe
76630cbe65f925cf9e9ad2ae46fb20680dc183bb1f2844abd8d884fe7acb5bf5 win-x64/node.lib
c3f217acf0b0793e021a805b3d2b1fbbb8347645c0f07583ca3fb2f1524e81af win-x64/node_pdb.7z
a1f0207fa4cd7460e07c0d1e2f8e1676a5b4b90176fc3643b1dccae7386e900e win-x64/node_pdb.zip
6ad9574f5326030c1ec47146ce02a331781e6eac66ab414308235ac5942c8a64 win-x86/node.exe
43702c64c141d50e4df6a1dee3ac68c94a54e5c767c2501c34ea2c3d0f82d14b win-x86/node.lib
0ccab3cd028b0acf76ef82b14ece9119730aee743dfeffa2af86c1eef846816c win-x86/node_pdb.7z
ba5498e17fe5ee541aaa179c4e900f667bc2b175366f5f37047e649b0c6b0138 win-x86/node_pdb.zip
-----BEGIN PGP SIGNATURE-----

iQEzBAEBCAAdFiEETtd49TnjY0x3nIfG1wYoSKGrAFwFAl2vKzAACgkQ1wYoSKGr
AFwMNAf9GEiC5yHR8fxTmrat/gQCJrVLD5dCCidXoI2QwVPiqXIS1evFGA9/Q7/8
CXhOzDRP5ZfJGnXTkG6JwzJcC6N+PxTlGKLA0UWR1YXDShnw1H3vzqRc+dNWy5Vo
ExJ1Bo7kfTlsOr1h1Zq8oIp6tjl0WrT2DJ89ZzUAG3130an3mfSs9Bvm7WCbZqcq
ogV9RiET/fxgZarZAFZxxurPltx2abifWOHP1SeGhbgRI7QSoI1wMF+sJhV4wd8N
WS3CJiwVuUbGPaU/27Y+wn92ewfGZZ2+9h+PuPJZDhMJiQ6+Q1Xdxeez0n89fGUx
m8B9YBsN2vHdHRTC4bZpeCBAvb3yVQ==
=YPLH
-----END PGP SIGNATURE-----