The NodeSource Blog

Node.js v6.6.0 Release Brief

Node.js

This Current release is the result of a regular buildup of maintenance commits, documentation updates, and minor features.
Of note, a new process warning was added to indicate when a promise rejection has not be handled.

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 113 commits:

7 commits were tagged as semver-minor, adding new functionality and justifying the jump to v6.6.0:

  • [afb9917f16] - crypto: add crypto.timingSafeEqual() (not-an-aardvark) #8304
  • [605db31fe7] - events: make memory leak warning more accessible (Anna Henningsen) #8298
  • [180867d6a6] - promise: warn on unhandled rejections (Benjamin Gruenbaum) #8223
  • [408308f2e6] - readline: key interval delay for \r & \n (Prince J Wesley) #8109
  • [6f20f477c4] - repl: Auto alignment for .editor mode (Prince J Wesley) #8241
  • [e9c4805c1f] - util: allow returning this from custom inspect (Anna Henningsen) #8174
  • [4cb55ff392] - util: allow Symbol-based custom inspection methods (Anna Henningsen) #8174

The remaining significant commits are as follows:

  • [2ecc8c4c23] - async_wrap: add a missing case to test-async-wrap-throw-no-init (yorkie) #8198
  • [00f4bc3105] - benchmark: add benches for fs.stat & fs.statSync (Anna Henningsen) #8338
  • [7cc1391287] - benchmark: fix off-by-one error in fs benchmarks (Anna Henningsen) #8338
  • [6e3db283ed] - buffer: fix ArrayBuffer checks (Brian White) #8453
  • [dd51b1f428] - buffer,string_decoder: consolidate encoding validation logic (James M Snell) #7207
  • [a830e37dc9] - build: don't require processing docs for nightlies (Johan Bergström) #8325
  • [836bfc188b] - build: fix dependencies on AIX (Michael Dawson) #8285
  • [bc9d2fb543] - build: fix dependencies on AIX (Michael Dawson) #8272
  • [206b105b1e] - build: add missing files to zip and 7z packages (Richard Lau) #8069
  • [1640e7a4da] - crypto: fix getDecoder() encoding check (atstojanov) #8301
  • [49f996f4f6] - crypto: make malloc failure check cross-platform (Rich Trott) #8352
  • [fa4c4d655a] - http: fix connection upgrade checks (Brian White) #8238
  • [b603ac24cb] - inspector: use script name for target title (Eugene Ostroukhov) #8243
  • [13a522ac39] - inspector: make sure all messages are dispatched (Eugene Ostroukhov) #8264
  • [250a380231] - inspector: simplify buffer management (Eugene Ostroukhov) #8257
  • [354166c061] - inspector: use new inspector headers (Eugene Ostroukhov) #8150
  • [3ef8ba8bdc] - net: make holding the buffer in memory more robust (Anna Henningsen) #8252
  • [0d24247e50] - src: pull AfterConnect from pipe_wrap and tcp_wrap (Daniel Bevenius) #8448
  • [16202264d1] - src: remove unneeded Environment error methods (Ben Noordhuis) #8427
  • [8cbbb47e39] - src: update f function call comment (Daniel Bevenius) #8416
  • [d1d1433b02] - src: normalize malloc, realloc (Michael Dawson) #7564
  • [2c2a21ab56] - src: unbreak build when compiling against uclibc (Ben Noordhuis) #8308
  • [4e368c58ff] - src: moving f function call comment (Daniel Bevenius) #8405
  • [0f2c619f55] - src: avoid duplicate AtExit functions (Ali Ijaz Sheikh) #8273
  • [eff771f399] - tickprocessor: apply c++filt manually on mac (Fedor Indutny) #8480
  • [f840bc87d6] - url: fix off-by-one error in loop handling dots (Luigi Pinca) #8420
  • [6ae7af0fa3] - url: keep auth in url.resolve() if host matches (Ilkka Myller) #8215
  • [eec5d02266] - url: url.format() encodes all # in search (Ilkka Myller) #8072
  • [d67ece2f68] - util: improve function signature of util._extend() (Sakthipriyan Vairamani) #8187
  • [151d1ea6a6] - vm: change ContextifyScript to Script in comment (Daniel Bevenius) #8415
  • [f346dee940] - win,build: forward release_urlbase to configure (João Reis) #8430
  • [6bb057ec6a] - win,build: exit when addons fail to build (João Reis) #8412
  • [14d356d0ab] - win,build: skip finding VS when not needed (João Reis) #8412
  • [81d063e174] - win,build: fail on invalid option in vcbuild (João Reis) #8412

Notable Changes

  • crypto: Added crypto.timingSafeEqual(). (not-an-aardvark) #8304
  • events: Made the "max event listeners" memory leak warning more accessible. (Anna Henningsen) #8298
  • promises: Unhandled rejections now emit a process warning after the first tick. (Benjamin Gruenbaum) #8223
  • repl: Added auto alignment for .editor mode. (Prince J Wesley) #8241
  • util: Some functionality has been added to util.inspect():
    • Returning this from a custom inspect function now works. (Anna Henningsen) #8174
    • Added support for Symbol-based custom inspection methods. (Anna Henningsen) #8174

Git Diffstats

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

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

 .eslintrc                         |   6 +-
 .gitignore                        |   1 +
 .mailmap                          |  15 ++-
 Makefile                          |  17 ++-
 lib/_http_common.js               |  16 +--
 lib/_http_outgoing.js             |  24 +++-
 lib/assert.js                     |   2 +
 lib/buffer.js                     |  42 ++-----
 lib/crypto.js                     |   5 +-
 lib/events.js                     |   7 +-
 lib/internal/child_process.js     |   2 +-
 lib/internal/process/promises.js  |  27 ++++-
 lib/internal/util.js              |  33 ++++++
 lib/internal/v8_prof_polyfill.js  |  36 +++++-
 lib/internal/v8_prof_processor.js |   3 +-
 lib/net.js                        |   1 -
 lib/readline.js                   |  37 ++++--
 lib/repl.js                       |   9 ++
 lib/string_decoder.js             |  35 ++----
 lib/url.js                        |   8 +-
 lib/util.js                       |  44 ++++---
 lib/vm.js                         |   4 +-
 src/backtrace_posix.cc            |   4 +-
 src/cares_wrap.cc                 |   3 +-
 src/connection_wrap.cc            |  48 ++++++++
 src/connection_wrap.h             |   1 +
 src/env-inl.h                     |  36 ++----
 src/env.h                         |   9 +-
 src/inspector_agent.cc            | 227 +++++++++++++++++++++++-------------
 src/inspector_agent.h             |   2 +-
 src/inspector_socket.cc           |  99 +++++++---------
 src/inspector_socket.h            |  19 ++-
 src/node.cc                       |  43 ++++---
 src/node_buffer.cc                |  12 +-
 src/node_contextify.cc            |  50 ++++----
 src/node_crypto.cc                |  39 +++++--
 src/node_internals.h              |   3 +-
 src/node_version.h                |   2 +-
 src/pipe_wrap.cc                  |  40 -------
 src/pipe_wrap.h                   |   2 -
 src/stream_base.cc                |   1 +
 src/stream_wrap.cc                |   4 +-
 src/string_bytes.cc               |   8 +-
 src/tcp_wrap.cc                   |  28 -----
 src/tcp_wrap.h                    |   2 -
 src/tls_wrap.cc                   |   2 +-
 src/udp_wrap.cc                   |   4 +-
 src/util-inl.h                    |  26 +++++
 src/util.h                        |  13 ++-
 vcbuild.bat                       |  26 ++++-
 50 files changed, 664 insertions(+), 463 deletions(-)

Tools only:

 tools/create_expfile.sh | 6 ++++--
 1 file changed, 4 insertions(+), 2 deletions(-)

Deps only:

   0.0% deps/v8/include/
   0.1% deps/v8/src/heap/
   0.3% deps/v8/src/
   0.1% deps/v8/test/cctest/
  64.4% deps/v8_inspector/third_party/v8_inspector/platform/inspector_protocol/
   0.9% deps/v8_inspector/third_party/v8_inspector/platform/v8_inspector/public/
  33.0% deps/v8_inspector/third_party/v8_inspector/platform/v8_inspector/
   0.9% deps/v8_inspector/third_party/v8_inspector/platform/
 128 files changed, 4677 insertions(+), 4386 deletions(-)

Docs only:

 AUTHORS                                          | 113 +++++++-
 BUILDING.md                                      |  25 +-
 CHANGELOG.md                                     |   3 +-
 README.md                                        |  10 +-
 doc/api/buffer.md                                |   4 +-
 doc/api/child_process.md                         |   2 +
 doc/api/crypto.md                                | 228 +++++++++++++++
 doc/api/dgram.md                                 |  52 ++++
 doc/api/dns.md                                   |   2 +-
 doc/api/events.md                                |  10 +
 doc/api/fs.md                                    | 241 +++++++++++++++-
 doc/api/http.md                                  |  11 +
 doc/api/modules.md                               |  27 ++
 doc/api/net.md                                   |   9 +
 doc/api/os.md                                    |   2 +-
 doc/api/path.md                                  |  17 +-
 doc/api/process.md                               |  11 +-
 doc/api/readline.md                              |  15 +-
 doc/api/repl.md                                  |   2 +-
 doc/api/stream.md                                |   9 +-
 doc/api/timers.md                                |   6 +-
 doc/api/tls.md                                   |   2 +-
 doc/api/url.md                                   |   4 +-
 doc/api/util.md                                  |  39 ++-
 doc/api/zlib.md                                  |   2 +-
 doc/changelogs/CHANGELOG_V6.md                   | 130 +++++++++
 doc/ctc-meetings/2016-08-10.md                   | 281 ++++++++++++++++++
 doc/ctc-meetings/2016-08-17.md                   | 300 ++++++++++++++++++++
 doc/ctc-meetings/2016-08-31.md                   | 315 +++++++++++++++++++++
 doc/guides/timers-in-node.md                     |   2 +-
 doc/onboarding.md                                |  81 +++---
 doc/topics/blocking-vs-non-blocking.md           |   2 +-
 doc/topics/the-event-loop-timers-and-nexttick.md |  15 +-
 33 files changed, 1857 insertions(+), 115 deletions(-)

Tests & Benchmarks only:

   0.1% benchmark/assert/
   0.5% benchmark/fs/
   0.3% test/cctest/
   0.2% test/fixtures/clustered-server/
   0.6% test/fixtures/
   0.1% test/internet/
   0.6% test/known_issues/
  93.3% test/parallel/
   0.1% test/pseudo-tty/
   0.0% test/pummel/
   3.5% test/sequential/
   0.0% test/
 91 files changed, 2595 insertions(+), 1764 deletions(-)

Most active commit

Of the 113 commits, afb9917 was the most active:
(Excluding docs, deps, and tests.)

commit afb9917f16377312a5a22ef05886cda8323d9363
Author: not-an-aardvark <not-an-aardvark@users.noreply.github.com>
Date:   Tue Aug 23 22:49:22 2016 -0400

    crypto: add crypto.timingSafeEqual()

    Reinstate crypto.timingSafeEqual() which was reverted due to test
    issues. The flaky test issues are resolved in this new changeset.

    PR-URL: https://github.com/nodejs/node/pull/8304
    Reviewed-By: James M Snell <jasnell@gmail.com>
    Reviewed-By: Anna Henningsen <anna@addaleax.net>

 doc/api/crypto.md                                |  13 ++
 lib/crypto.js                                    |   3 +
 src/node_crypto.cc                               |  17 +++
 test/sequential/test-crypto-timing-safe-equal.js | 166 +++++++++++++++++++++
 4 files changed, 199 insertions(+)

This is a regular and routine release for a Node.js Current 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.

The NodeSource platform offers a high-definition view of the performance, security and behavior of Node.js applications and functions.

Start for Free