Node v8.9.0 (LTS)

A New LTS Release Line

Node.js 8.x is now in LTS!

Node v8.9.0 marks the transition of Node v8.x into Long Term Support (LTS), with the codename "Carbon". The v8.x line now moves into "Active LTS", and will remain so until April 2019, at which point it will move into "Maintenance LTS" until December 2019. For more info see the Release Schedule.

Notable Changes between 6.x (Boron) and 8.x (Carbon)

For a full list of notable changes, see the blog posts for Node v7.0.0 and Node v8.0.0.

The Node v8.0.0 post also contains an in-depth look at the significant changes in the Node 8.x release line.

Notable Changes in v8.9.0

doc : add Gibson Fahnestock to Release team (Gibson Fahnestock) #16620

: deps : update npm to 5.5.1 (Myles Borins) #16509

: http2 : The exposed http2 socket is no longer manipulatable (Anatoli Papirovski) #16330

: module : support custom paths to require.resolve() (cjihrig) #16397

: util : util.TextEncoder and util.TextDecoder are no longer experimental. There will no longer be a warning when they are used (James M Snell) #15743

:

Commits

[ d576e17691 ] - build : make test-doc and lint addon docs (Joyee Cheung) #16377

] - : make test-doc and lint addon docs (Joyee Cheung) #16377 [ 63e33ac327 ] - build : make doc target quiet (Daniel Bevenius) #16516

] - : make doc target quiet (Daniel Bevenius) #16516 [ 528edb2ea8 ] - build : ignore empty folders in test-addons-napi (Anna Henningsen) #16380

] - : ignore empty folders in test-addons-napi (Anna Henningsen) #16380 [ c8a3b2d171 ] - build : run linter before running tests (Joyee Cheung) #16284

] - : run linter before running tests (Joyee Cheung) #16284 [ a763fcd7a7 ] - build : improve make clean (Refael Ackermann) #16372

] - : improve (Refael Ackermann) #16372 [ 0a1f7fefc6 ] - build : skip bin override on windows (Hitesh Kanwathirtha) #16460

] - : skip bin override on windows (Hitesh Kanwathirtha) #16460 [ 3b64fa451e ] - build : fix npm install with --shared (Ben Noordhuis) #16438

] - : fix npm install with --shared (Ben Noordhuis) #16438 [ 9185cfef9c ] - build : add lint-md-build (Daijiro Wachi) #12756

] - : add lint-md-build (Daijiro Wachi) #12756 [ 22ec800b20 ] - build : do not include deleted directory (Jon Moss) #16384

] - : do not include deleted directory (Jon Moss) #16384 [ b5c6d596ca ] - build,win : set /MP separately in Debug and Release (Nikolai Vavilov) #16415

] - : set /MP separately in Debug and Release (Nikolai Vavilov) #16415 [ 9bea207e83 ] - child_process : fix memory leak in .fork() (Ben Noordhuis) #15679

] - : fix memory leak in .fork() (Ben Noordhuis) #15679 [ bf2564df0d ] - deps : V8: backport b1cd96e from upstream (Ali Ijaz Sheikh) #16308

] - : V8: backport b1cd96e from upstream (Ali Ijaz Sheikh) #16308 [ ad692074a4 ] - deps : cherry-pick e0d64dc from upstream V8 (Michaël Zasso) #16490

] - : cherry-pick e0d64dc from upstream V8 (Michaël Zasso) #16490 [ 7bdb8db440 ] - deps : cherry-pick 676c413 from upstream V8 (Michaël Zasso) #16490

] - : cherry-pick 676c413 from upstream V8 (Michaël Zasso) #16490 [ 5787f5331f ] - deps : cherry-pick 2c75616 from upstream V8 (Michaël Zasso) #16490

] - : cherry-pick 2c75616 from upstream V8 (Michaël Zasso) #16490 [ 0d7e4d2bdc ] - deps : update npm to 5.5.1 (Myles Borins) #16509

] - : update npm to 5.5.1 (Myles Borins) #16509 [ 4d9c1bedbd ] - doc : add Gibson Fahnestock to Release team (Gibson Fahnestock) #16620

] - : add Gibson Fahnestock to Release team (Gibson Fahnestock) #16620 [ d6619b9ad4 ] - doc : document missing error codes (George Bezerra) #15160

] - : document missing error codes (George Bezerra) #15160 [ fdc072bd9c ] - doc : fix inconsistent server.listen documentation (Martin Michaelis) #16020

] - : fix inconsistent server.listen documentation (Martin Michaelis) #16020 [ a6b3cd8166 ] - doc : more accurate zlib windowBits information (Anna Henningsen) #16511

] - : more accurate zlib windowBits information (Anna Henningsen) #16511 [ e5c2059f88 ] - doc : make default values and periods consistent (Matej Krajčovič) #16563

] - : make default values and periods consistent (Matej Krajčovič) #16563 [ b93275e1a3 ] - doc : slightly relax 50 character rule (James M Snell) #16523

] - : slightly relax 50 character rule (James M Snell) #16523 [ 1b08ae853e ] - doc : http2.connect accepts net & tls options (Anatoli Papirovski) #16576

] - : http2.connect accepts net & tls options (Anatoli Papirovski) #16576 [ 04602109e8 ] - doc : add note to releases.md (Jon Moss) #16507

] - : add note to releases.md (Jon Moss) #16507 [ 03b233ed40 ] - doc : fix CHANGELOG_V8 indentation (Jon Moss) #16507

] - : fix CHANGELOG_V8 indentation (Jon Moss) #16507 [ a7540d59e8 ] - doc : remove http2 pushStream weight option (Sebastiaan Deckers) #16451

] - : remove http2 pushStream weight option (Sebastiaan Deckers) #16451 [ 4ba06d07cc ] - doc : add dot in documentations (erwinwahyura) #16542

] - : add dot in documentations (erwinwahyura) #16542 [ 83902e6e02 ] - doc : add multiple build guide to benchmarking doc (Peter Marton) #16142

] - : add multiple build guide to benchmarking doc (Peter Marton) #16142 [ 04fac61fdd ] - doc : improve http2 documentation (Jacob Hoffman-Andrews) #16366

] - : improve http2 documentation (Jacob Hoffman-Andrews) #16366 [ fe5d4535c9 ] - doc, win : remove note about resize (Bartosz Sosnowski) #16320

] - : remove note about resize (Bartosz Sosnowski) #16320 [ 54ebf91394 ] - http2 : make sessions garbage-collectible (Anna Henningsen) #16461

] - : make sessions garbage-collectible (Anna Henningsen) #16461 [ bfc1ad07a3 ] - http2 : remove unused assignment (Anna Henningsen) #16461

] - : remove unused assignment (Anna Henningsen) #16461 [ 56dd734a6a ] - http2 : track async state for sending (Anna Henningsen) #16461

] - : track async state for sending (Anna Henningsen) #16461 [ 5390d7e374 ] - http2 : move uv_prepare handle to Http2Session (Anna Henningsen) #16461

] - : move uv_prepare handle to (Anna Henningsen) #16461 [ 95a61cbb1e ] - http2 : fix stream reading resumption (Anatoli Papirovski) #16580

] - : fix stream reading resumption (Anatoli Papirovski) #16580 [ 98b9705cb8 ] - http2 : simplify mapToHeaders, stricter validation (Anatoli Papirovski) #16575

] - : simplify mapToHeaders, stricter validation (Anatoli Papirovski) #16575 [ e592c320ce ] - http2 : fix several timeout related issues (Anatoli Papirovski) #16525

] - : fix several timeout related issues (Anatoli Papirovski) #16525 [ 24fd8ff32a ] - http2 : adjust stream buffer size (Anatoli Papirovski) #16445

] - : adjust stream buffer size (Anatoli Papirovski) #16445 [ 2c2b6586e7 ] - http2 : fix mapToHeaders() with single string value (Jinwoo Lee) #16458

] - : fix mapToHeaders() with single string value (Jinwoo Lee) #16458 [ e6e99eb447 ] - http2 : do not allow socket manipulation (Anatoli Papirovski) #16330

] - : do not allow socket manipulation (Anatoli Papirovski) #16330 [ 3638694d8b ] - http2 : fix errors in debug statements (Anatoli Papirovski) #16373

] - : fix errors in debug statements (Anatoli Papirovski) #16373 [ 754df71a79 ] - https : refactor to use http internals (Bryan English) #16395

] - : refactor to use http internals (Bryan English) #16395 [ 2ea25ad3e2 ] - inspector : track async stacks when necessary (Ali Ijaz Sheikh) #16308

] - : track async stacks when necessary (Ali Ijaz Sheikh) #16308 [ ab0d7a64aa ] - lib : refactor wrap_js_stream for ES6/readability (Anna Henningsen) #16158

] - : refactor wrap_js_stream for ES6/readability (Anna Henningsen) #16158 [ 87fd5b798f ] - lib : move _stream_wrap into internals (Anna Henningsen) #16158

] - : move _stream_wrap into internals (Anna Henningsen) #16158 [ 96e82509b0 ] - lib : use destructuring for some constants (Weijia Wang) #16063

] - : use destructuring for some constants (Weijia Wang) #16063 [ 6be494251b ] - lib : move duplicate spliceOne into internal/util (Weijia Wang) #16221

] - : move duplicate spliceOne into internal/util (Weijia Wang) #16221 [ 8c0c456c73 ] - lib : setup IPC channel before console (Nikolai Vavilov) #16562

] - : setup IPC channel before console (Nikolai Vavilov) #16562 [ 3a230b42f3 ] - lib : internal/errors should not be executable (Jon Moss) #16369

] - : internal/errors should not be executable (Jon Moss) #16369 [ 415fb56735 ] - module : fix extension lookups for top-level main (Guy Bedford) #16526

] - : fix extension lookups for top-level main (Guy Bedford) #16526 [ e68307737c ] - module : fix hook module CJS dependency loading (guybedford) #16381

] - : fix hook module CJS dependency loading (guybedford) #16381 [ ac02a0be28 ] - (SEMVER-MINOR) module : support custom paths to require.resolve() (cjihrig) #16397

] - : support custom paths to require.resolve() (cjihrig) #16397 [ e578268ef9 ] - src : add InternalCallbackScope util constructor (Anna Henningsen) #16461

] - : add util constructor (Anna Henningsen) #16461 [ 6ac7eefe41 ] - src : move handle properties to prototype (Ben Noordhuis) #16482

] - : move handle properties to prototype (Ben Noordhuis) #16482 [ 3a54bb5c2c ] - src : remove superfluous HandleScope (Ben Noordhuis) #16482

] - : remove superfluous HandleScope (Ben Noordhuis) #16482 [ 77c02aab5b ] - src : use uv_stream_t, not uv_stream_s (Ben Noordhuis) #16512

] - : use uv_stream_t, not uv_stream_s (Ben Noordhuis) #16512 [ a194d831fe ] - src : use maybe versions of methods (Tom Boutell) #16005

] - : use maybe versions of methods (Tom Boutell) #16005 [ ec5168813b ] - src : use V8 function to get Module Namespace (Bradley Farias) #16261

] - : use V8 function to get Module Namespace (Bradley Farias) #16261 [ 0a5a2c43b1 ] - src : fix vm module for strict mode (Franziska Hinkelmann) #16487

] - : fix vm module for strict mode (Franziska Hinkelmann) #16487 [ ee40368c87 ] - src : make header file self-contained (Joyee Cheung) #16518

] - : make header file self-contained (Joyee Cheung) #16518 [ 465540cc98 ] - src : destroy inspector agent before context (Ali Ijaz Sheikh) #16472

] - : destroy inspector agent before context (Ali Ijaz Sheikh) #16472 [ 9bca6200ad ] - src : remove empty comment in node_http2.h (Daniel Bevenius) #16400

] - : remove empty comment in node_http2.h (Daniel Bevenius) #16400 [ f0576c5ee0 ] - src : remove unused include in tty_wrap.h (Daniel Bevenius) #16379

] - : remove unused include in tty_wrap.h (Daniel Bevenius) #16379 [ f00ba6b142 ] - src : fix http2 debug build errors (Daniel Bevenius) #16432

] - : fix http2 debug build errors (Daniel Bevenius) #16432 [ 889f42a924 ] - test : remove empty comments in http2 tests (Gibson Fahnestock) #16631

] - : remove empty comments in http2 tests (Gibson Fahnestock) #16631 [ a62845565e ] - test : add block scoping to test-assert-deep (Rich Trott) #16532

] - : add block scoping to test-assert-deep (Rich Trott) #16532 [ 0510f42efc ] - test : update test-timers-block-eventloop.js (zhangzifa) #16314

] - : update test-timers-block-eventloop.js (zhangzifa) #16314 [ bac2aff23d ] - test : include actual value in assertion message (Matthew Cantelon) #15935

] - : include actual value in assertion message (Matthew Cantelon) #15935 [ d185bfdcef ] - test : replace fixturesDir in test-tls-connect (Casie Lynch) #15849

] - : replace fixturesDir in test-tls-connect (Casie Lynch) #15849 [ ce07cbeacb ] - test : use fixtures module (Iryna Yaremtso) #15901

] - : use fixtures module (Iryna Yaremtso) #15901 [ 2e1b45db07 ] - test : add details in assertions in test-vm-context (Vladimir Ilic) #16116

] - : add details in assertions in test-vm-context (Vladimir Ilic) #16116 [ 4f47e2df44 ] - test : increase fs.exists coverage (Nigel Kibodeaux) #15963

] - : increase fs.exists coverage (Nigel Kibodeaux) #15963 [ 01058c412e ] - test : use fixtures module in test-fs-realpath.js (Raphael Rheault) #15904

] - : use fixtures module in test-fs-realpath.js (Raphael Rheault) #15904 [ fe9cca2e0f ] - test : use fixtures module (Scott J Beck) #15843

] - : use fixtures module (Scott J Beck) #15843 [ b4af92280b ] - test : imporove assert messages (Hadis-Fard) #16021

] - : imporove assert messages (Hadis-Fard) #16021 [ 604ab12447 ] - test : show values instead of assertion message (Cheyenne Arrowsmith) #15979

] - : show values instead of assertion message (Cheyenne Arrowsmith) #15979 [ aea09da6f9 ] - test : include values in assertion messages (nhoel) #15996

] - : include values in assertion messages (nhoel) #15996 [ ea32d0ec4e ] - test : use process.features.debug in common module (Rich Trott) #16537

] - : use process.features.debug in common module (Rich Trott) #16537 [ a0fcd4d219 ] - test : use common.buildType in repl-domain-abort (Rich Trott) #16538

] - : use common.buildType in repl-domain-abort (Rich Trott) #16538 [ 525700b3d5 ] - test : skip test-process-config if no config.gypi (Gibson Fahnestock) #16436

] - : skip test-process-config if no config.gypi (Gibson Fahnestock) #16436 [ aaacddbcbf ] - test : use fixtures module in tls-handshake-error (Mark Walker) #15939

] - : use fixtures module in tls-handshake-error (Mark Walker) #15939 [ 977fe22290 ] - test : add failing vm tests to known_issues (Michaël Zasso) #16410

] - : add failing vm tests to known_issues (Michaël Zasso) #16410 [ 02ac8bae91 ] - test : change tmp directories prefix (Refael Ackermann) #16372

] - : change tmp directories prefix (Refael Ackermann) #16372 [ 568d614dc3 ] - test : allow tests to pass without internet (Daniel Bevenius) #16255

] - : allow tests to pass without internet (Daniel Bevenius) #16255 [ 3d8a7e97fe ] - tools : modernize license2rtf (Tobias Nießen) #16220

] - : modernize license2rtf (Tobias Nießen) #16220 [ d5891b5330 ] - tools : replace loop with padStart (Tobias Nießen) #16220

] - : replace loop with padStart (Tobias Nießen) #16220 [ b1e2a38d90 ] - tools : fix cpplint.py when path contains non-ascii (sharkfisher) #16047

] - : fix cpplint.py when path contains non-ascii (sharkfisher) #16047 [ e80d878b3f ] - tools : no trailing slash in ignore patterns (Refael Ackermann) #16372

] - : no trailing slash in ignore patterns (Refael Ackermann) #16372 [ 31f54e5fb9 ] - tools : add make lint-md-clean (Daijiro Wachi) #12756

] - : add make lint-md-clean (Daijiro Wachi) #12756 [ ea415a663e ] - tools : add lint-md command in Makefile (Daijiro Wachi) #12756

] - : add lint-md command in Makefile (Daijiro Wachi) #12756 [ 3522e765be ] - tools : use remark-preset-lint-node in .remarkrc (Daijiro Wachi) #12756

] - : use remark-preset-lint-node in .remarkrc (Daijiro Wachi) #12756 [ 8d62116cf0 ] - tools : introduce remark-preset-lint-node (Daijiro Wachi) #12756

] - : introduce remark-preset-lint-node (Daijiro Wachi) #12756 [ 3d499b3712 ] - tools : introduce [email protected] (Daijiro Wachi) #12756

] - : introduce (Daijiro Wachi) #12756 [ 55ba1d4115 ] - util : expand test coverage for util.deprecate (Ashish Kaila) #16305

] - : expand test coverage for util.deprecate (Ashish Kaila) #16305 [ 8fd75fb9b5 ] - (SEMVER-MINOR) util: graduate TextEncoder/TextDecoder, tests (James M Snell) #15743

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

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

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

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

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

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

Linux 32-bit Binary: https://nodejs.org/dist/v8.9.0/node-v8.9.0-linux-x86.tar.xz

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

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

Linux PPC BE 64-bit Binary: https://nodejs.org/dist/v8.9.0/node-v8.9.0-linux-ppc64.tar.xz

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

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

SmartOS 32-bit Binary: https://nodejs.org/dist/v8.9.0/node-v8.9.0-sunos-x86.tar.xz

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

ARMv6 32-bit Binary: https://nodejs.org/dist/v8.9.0/node-v8.9.0-linux-armv6l.tar.xz

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

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

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

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

Documentation: https://nodejs.org/docs/v8.9.0/api/

SHASUMS