The Nodesource Blog

#shoptalk Subscribe

Node.js v6.5.0 Release Brief

Node.js

This Node.js Current release comes a backwards-compatible upgrade to V8 5.1, and ~99% ES2015 feature coverage. This release also fixes some regressions introduced in v6.4.0.

A significant amount of the commits in this release are dedicated to ensuring the stability and backwards compatibility of this V8 upgrade.

As with all releases within major version lines, minor and patch upgrades should be drop-in replacements for previous versions.

Overview

Of a total of 88 commits:

1 commit was tagged as semver-minor, adding new functionality and justifying the jump to v6.5.0:

  • [abbad66126] - (SEMVER-MINOR) deps: update V8 to 5.1.281.75 (Ali Ijaz Sheikh) #8054

The remaining significant commits are as follows:

  • [5bc311909f] - assert: remove code that is never reached (Rich Trott) #8132
  • [e371545dfe] - buffer: allow .write() offset to be at buffer end (Anna Henningsen) #8154
  • [92ecbc4edc] - build: cherry pick V8 change for windows DLL support (Stefan Budeanu) #8084
  • [4e4c091542] - build: windows sharedlib support (Stefan Budeanu) #8084
  • [f4c3456610] - build: do not lint src dir for JS errors (Rich Trott) #8128
  • [71343b6caa] - child_process: reuse existing no-op function (cjihrig) #8164
  • [0884c70535] - child_process: workaround fd passing issue on OS X (Santiago Gimeno) #7572
  • [8eb6e71758] - configure: reword help for --without-npm (BlackYoup) #7471
  • [c406ad8258] - debugger: use arrow function for lexical this (Guy Fraser) #7415
  • [7af2f63f10] - deps: limit regress/regress-crbug-514081 v8 test (Michael Dawson) #6678
  • [d0cb52b967] - dns: remove makeAsync() function check (cjihrig) #8170
  • [70648f47ca] - dns: lookupService() callback must be a function (cjihrig) #8170
  • [b1922e7b5b] - dtrace: fix ustack helper for V8 5.1 (Ali Ijaz Sheikh) #6482
  • [92de0bc1a6] - inspector: fix inspector hang while disconnecting (Aleksei Koziatinskii) #8021
  • [bfd8265ec2] - inspector: add support for uncaught exception (Aleksei Koziatinskii) #8043
  • [089a1cbecb] - net: add length check when normalizing args (Brian White) #8112
  • [17b8381585] - net: remove unnecessary variables (Brian White) #8112
  • [fbc5805e65] - readline: keypress trigger for escape character (Prince J Wesley) #7382
  • [60c50468e3] - repl: Failed to save editor mode text in .save (Prince J Wesley) #8145
  • [66e66e59a4] - repl: fix repl after V8 upgrade (Ali Ijaz Sheikh) #7016
  • [ffb2db8285] - Revert "repl,util: insert carriage returns in output" (Evan Lucas) #8143
  • [4118598dbb] - src: don't include a null character in the WriteConsoleW call (Nikolai Vavilov) #7764
  • [d863619a30] - src: clean up PER_ISOLATE_STRING_PROPERTIES, v2 (Ben Noordhuis) #8207
  • [d3950a2013] - src: clean up PER_ISOLATE_STRING_PROPERTIES, v1 (Ben Noordhuis) #8207
  • [8f9fb8154d] - src: updating references to the old node.js file (Daniel Bevenius) #8092
  • [091ba2c511] - src: fix build break for !NODE_USE_V8_PLATFORM (Kunal Pathak) #8114
  • [1bf80a0a3f] - stream: avoid caching prepend check (Calvin Metcalf) #8018
  • [c26b9af1e2] - tls: copy the Buffer object before using (Sakthipriyan Vairamani) #8055
  • [14c7dcbbcd] - url: fix inconsistent port in url.resolveObject() (Ilkka Myller) #8214
  • [1f9fbade4c] - util: fix deprecated class prototype (Bryan English) #8105
  • [a146e683dd] - win,msi: add zh-CN translations for the installer (Minqi Pan) #2569

Notable Changes

  • buffer: Fixed a regression introduced in v6.4.0 that prevented .write() at buffer end. (Anna Henningsen) #8154
  • deps: Updated V8 to 5.1.281.75 (Ali Ijaz Sheikh) #8054
    • Comes with floating patches to ensure API & ABI stability.
  • inspector:
    • Fixed an inspector hang while disconnecting. (Aleksei Koziatinskii) #8021
    • Added support for uncaught exceptions. (Aleksei Koziatinskii) #8043
  • repl: Fixed saving text while in editor mode when using .save. (Prince J Wesley) #8145
  • Revert "repl,util: insert carriage returns in output" (Evan Lucas) #8143
    • This caused issues in a significant number of applications & test suites.

Git Diffstats

(Showing the delta between v6.4.0 and v6.5.0, ignoring deps/npm.)

Without deps, tools, docs, benchmarks, or tests:

 .eslintrc                     |   5 +-
 Makefile                      |   4 +-
 common.gypi                   |  31 +++++++++-
 configure                     |   3 +-
 lib/_debug_agent.js           |  17 +++---
 lib/_stream_readable.js       |  13 ++---
 lib/assert.js                 |   6 +-
 lib/dns.js                    |   8 +--
 lib/internal/child_process.js |  43 +++++++++++---
 lib/internal/readline.js      |   6 +-
 lib/internal/util.js          |   5 +-
 lib/net.js                    |  16 ++---
 lib/readline.js               |  12 ++++
 lib/repl.js                   |  66 ++++++++++-----------
 lib/tls.js                    |  17 +++---
 lib/url.js                    |   1 +
 lib/util.js                   |  10 ++--
 node.gyp                      |   7 +--
 src/env.h                     |  33 -----------
 src/fs_event_wrap.cc          |   5 +-
 src/inspector_agent.cc        |  55 ++++++++++++++++++
 src/inspector_agent.h         |   7 +++
 src/node.cc                   | 125 +++++++++++++++++++++++-----------------
 src/node_buffer.cc            |   2 +-
 src/node_version.h            |   2 +-
 src/v8abbr.h                  |   4 +-
 src/v8ustack.d                |   4 +-
 vcbuild.bat                   |   7 ++-
 28 files changed, 311 insertions(+), 203 deletions(-)

Tools only:

 tools/msvs/msi/i18n/zh-cn.wxl | 38 ++++++++++++++++++++++++++++++++++++++
 1 file changed, 38 insertions(+)

Deps only:

   1.2% deps/v8/src/compiler/s390/
   3.7% deps/v8/src/compiler/
   3.1% deps/v8/src/crankshaft/s390/
   2.2% deps/v8/src/crankshaft/
   1.1% deps/v8/src/full-codegen/s390/
   0.9% deps/v8/src/full-codegen/
   1.8% deps/v8/src/heap/
   0.5% deps/v8/src/ic/s390/
   1.7% deps/v8/src/interpreter/
   0.5% deps/v8/src/js/
   0.8% deps/v8/src/parsing/
   0.5% deps/v8/src/regexp/
   9.1% deps/v8/src/s390/
   2.2% deps/v8/src/snapshot/
   1.1% deps/v8/src/wasm/
  10.1% deps/v8/src/
   4.7% deps/v8/test/cctest/interpreter/bytecode_expectations/
   3.7% deps/v8/test/cctest/interpreter/
   0.8% deps/v8/test/cctest/wasm/
   2.4% deps/v8/test/cctest/
   3.3% deps/v8/test/mjsunit/es6/
   3.7% deps/v8/test/mjsunit/harmony/
   1.0% deps/v8/test/mjsunit/strong/
  31.7% deps/v8/test/mjsunit/wasm/embenchen/
   1.1% deps/v8/test/mjsunit/wasm/
   1.6% deps/v8/test/mjsunit/
   0.5% deps/v8/test/unittests/interpreter/
   1.1% deps/v8/test/unittests/wasm/
   1.5% deps/v8/test/
   1.0% deps/v8/
 1562 files changed, 291790 insertions(+), 74310 deletions(-)

Docs only:

 CHANGELOG.md                   |   3 +-
 CONTRIBUTING.md                |  10 +--
 README.md                      |   2 +
 ROADMAP.md                     |  10 +--
 doc/api/child_process.md       |  10 ++-
 doc/api/process.md             |   2 +-
 doc/api/querystring.md         |   2 +-
 doc/api/stream.md              |   7 +--
 doc/api/util.md                | 128 ++++++++++++++++++++++++++++++++++++++-
 doc/changelogs/CHANGELOG_V6.md | 105 ++++++++++++++++++++++++++++++++
 doc/onboarding.md              |  56 +++++++++--------
 doc/releases.md                |   4 +-
 12 files changed, 290 insertions(+), 49 deletions(-)

Tests & Benchmarks only:

   5.7% test/addons/zlib-binding/
   1.1% test/fixtures/
  82.0% test/parallel/
   5.6% test/pummel/
   5.3% test/sequential/
 76 files changed, 693 insertions(+), 316 deletions(-)

Most active commit

Of the 88 commits, abbad66 was the most active:
(Excluding docs, npm, eslint, and tests.)

commit abbad661269e12d6f54eb5b53b65f9388b4666a9
Author: Ali Ijaz Sheikh <ofrobots@google.com>
Date:   Wed Aug 17 10:02:58 2016 -0700

    deps: update V8 to 5.1.281.75

    Pick up the latest branch-head for V8 5.1. This branch brings in
    improved language support and performance improvements. For full
    details: http://v8project.blogspot.com/2016/04/v8-release-51.html

    * Picks up the latest branch head for 5.1 [1]
    * Edit v8 gitignore to allow trace_event copy
    * Update V8 DEP trace_event as per deps/v8/DEPS [2]

    [1] https://chromium.googlesource.com/v8/v8.git/+/5.1.281.75
    [2] https://chromium.googlesource.com/chromium/src/base/trace_event/common/+/c8c8665

    Introduces a semver-minor overload of v8::Function::New() for use
    by v8_inspector.

    PR-URL: https://github.com/nodejs/node/pull/8054
    Refs: https://github.com/nodejs/node/pull/7016
    Refs: https://github.com/nodejs/node/pull/7586
    Refs: https://github.com/nodejs/node/pull/7615
    Reviewed-By: addaleax - Anna Henningsen <anna@addaleax.net>
    Reviewed-By: thealphanerd - Myles Borins <myles.borins@gmail.com>
    Reviewed-By: mhdawson - Michael Dawson <michael_dawson@ca.ibm.com>
    Reviewed-By: evanlucas - Evan Lucas <evanlucas@me.com>
    Reviewed-By: bnoordhuis - Ben Noordhuis <info@bnoordhuis.nl>

   4.9% deps/v8/src/compiler/
   3.1% deps/v8/src/crankshaft/s390/
   9.1% deps/v8/src/s390/
  23.9% deps/v8/src/
   4.7% deps/v8/test/cctest/interpreter/bytecode_expectations/
   3.7% deps/v8/test/cctest/interpreter/
   3.2% deps/v8/test/cctest/
   3.3% deps/v8/test/mjsunit/es6/
   3.7% deps/v8/test/mjsunit/harmony/
  31.6% deps/v8/test/mjsunit/wasm/embenchen/
   3.8% deps/v8/test/mjsunit/
   3.2% deps/v8/test/
 1570 files changed, 291775 insertions(+), 74746 deletions(-)

This is a regular and routine release for a Node.js Stable release line. We will be sure to let you know when a release contains a critical update and a recommendation to upgrade. Of course, we'd love you to upgrade, but this release is not critical unless you are experiencing one of the issues identified and fixed above.