You have reached the beginning of time!

Node.js 6.10.1 Release Brief

This routine monthly patch release for the Node 6 LTS line comes with significant performance improvements across 9 APIs, with an average of up to 39% perf increase across 8 APIs and one outlier at up to 28x faster.

Aside from performance, large heap statistics are now enabled and a variety of bugs have been squashed.

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

The remaining significant commits are as follows:

Notable Changes

  • performance: The performance of several APIs has been improved.
    • Buffer.compare() is up to 35% faster on average. (Brian White) #10927
    • buffer.toJSON() is up to 2859% faster on average. (Brian White) #10895
    • fs.*statSync() functions are now up to 9.3% faster on average. (Brian White) #11522
    • os.loadavg() is up to 151% faster. (Brian White) #11516
    • process.memoryUsage() is up to 34% faster. (Brian White) #11497
    • querystring.unescape() for Buffers is 15% faster on average. (Brian White) #10837
    • querystring.stringify() is up to 7.8% faster on average. (Brian White) #10852
    • querystring.parse() is up to 21% faster on average. (Brian White) #10874
  • IPC: Batched writes have been enabled for process IPC on platforms that support Unix Domain Sockets. (Alexey Orlenko) #10677
    • Performance gains may be up to 40% for some workloads.
  • child_process: spawnSync now returns a null status when child is terminated by a signal. (cjihrig) #11288
    • This fixes the behavior to act like spawn() does.
  • http:
    • Control characters are now always rejected when using http.request(). (Ben Noordhuis) #8923
    • Debug messages have been added for cases when headers contain invalid values. (Evan Lucas) #9195
  • node: Heap statistics now support values larger than 4GB. (Ben Noordhuis) #10186
  • timers: Timer callbacks now always maintain order when interacting with domain error handling. (John Barboza) #10522

Git Diffstats

(Showing the delta between v6.10.0 and v6.10.1, ignoring deps/npm.)

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

 .eslintignore                     |    1 +
 .eslintrc                         |  147 -
 .eslintrc.yaml                    |  152 +
 Makefile                          |   52 +-
 common.gypi                       |    4 +
 configure                         |   20 +-
 lib/.eslintrc                     |    5 -
 lib/.eslintrc.yaml                |    5 +
 lib/_http_client.js               |   13 +-
 lib/_http_outgoing.js             |    3 +
 lib/_http_server.js               |    4 +-
 lib/_tls_common.js                |    4 +-
 lib/_tls_legacy.js                |    2 +-
 lib/_tls_wrap.js                  |    9 +-
 lib/assert.js                     |   85 +-
 lib/buffer.js                     |   63 +-
 lib/child_process.js              |    4 +-
 lib/crypto.js                     |   20 +-
 lib/dgram.js                      |   79 +-
 lib/fs.js                         |   28 +-
 lib/https.js                      |    2 +-
 lib/internal/bootstrap_node.js    |    5 +-
 lib/internal/child_process.js     |   83 +-
 lib/internal/module.js            |   10 +-
 lib/internal/process.js           |   20 +-
 lib/internal/process/next_tick.js |   10 +-
 lib/internal/streams/legacy.js    |   93 +
 lib/internal/util.js              |   46 +-
 lib/net.js                        |    5 +-
 lib/os.js                         |    8 +-
 lib/querystring.js                |  207 +-
 lib/readline.js                   |   44 +-
 lib/repl.js                       |   38 +-
 lib/stream.js                     |   99 +-
 lib/timers.js                     |   17 +-
 lib/tls.js                        |    8 +-
 lib/tty.js                        |    4 +-
 lib/url.js                        |   52 +-
 lib/util.js                       |   20 +-
 lib/v8.js                         |    4 +-
 lib/vm.js                         |   63 +-
 node.gyp                          |   21 +-
 src/CNNICHashWhitelist.inc        | 5216 ++++-------------------------------
 src/StartComAndWoSignData.inc     |   89 +
 src/connection_wrap.cc            |    3 +-
 src/env-inl.h                     |    8 +-
 src/env.h                         |   16 +-
 src/node.cc                       |   42 +-
 src/node_contextify.cc            |   11 +-
 src/node_crypto.cc                |   59 +-
 src/node_file.cc                  |   72 +-
 src/node_http_parser.cc           |    2 +-
 src/node_javascript.cc            |   51 -
 src/node_os.cc                    |   16 +-
 src/node_v8.cc                    |   12 +-
 src/node_version.h                |    2 +-
 src/pipe_wrap.cc                  |    4 +
 src/spawn_sync.cc                 |   13 +-
 58 files changed, 1728 insertions(+), 5447 deletions(-)

Tools only:

 tools/js2c.py        | 117 ++++++++++++++++++++++++++++++++-----------------
 tools/license2rtf.js |   4 +-
 tools/test.py        |   2 +-
 3 files changed, 80 insertions(+), 43 deletions(-)

Deps only:

 deps/v8/include/v8-version.h                      |   2 +-
 deps/v8/include/v8.h                              |   4 +-
 deps/v8/src/api-arguments.h                       |   9 +-
 deps/v8/src/api-natives.cc                        |  57 +++-
 deps/v8/src/api-natives.h                         |   3 +-
 deps/v8/src/arm/builtins-arm.cc                   |  13 +-
 deps/v8/src/arm/code-stubs-arm.cc                 |   6 +-
 deps/v8/src/arm64/builtins-arm64.cc               |  13 +-
 deps/v8/src/arm64/code-stubs-arm64.cc             |  10 +-
 deps/v8/src/builtins.cc                           |  90 +++--
 deps/v8/src/builtins.h                            |   3 +-
 deps/v8/src/compiler.cc                           |   5 +-
 deps/v8/src/ia32/builtins-ia32.cc                 |  13 +-
 deps/v8/src/ia32/code-stubs-ia32.cc               |   7 +-
 deps/v8/src/messages.h                            |   2 +
 deps/v8/src/mips/builtins-mips.cc                 |  13 +-
 deps/v8/src/mips/code-stubs-mips.cc               |   6 +-
 deps/v8/src/mips64/builtins-mips64.cc             |  13 +-
 deps/v8/src/mips64/code-stubs-mips64.cc           |   6 +-
 deps/v8/src/objects.cc                            |  74 ++--
 deps/v8/src/parsing/expression-classifier.h       | 353 +++++++++++++-------
 deps/v8/src/parsing/parser-base.h                 |  47 ++-
 deps/v8/src/parsing/parser.cc                     |  19 +-
 deps/v8/src/parsing/parser.h                      |   4 +-
 deps/v8/src/parsing/preparser.h                   |  18 +-
 deps/v8/src/ppc/builtins-ppc.cc                   |  13 +-
 deps/v8/src/ppc/code-stubs-ppc.cc                 |   6 +-
 deps/v8/src/s390/builtins-s390.cc                 |  13 +-
 deps/v8/src/s390/code-stubs-s390.cc               |   6 +-
 deps/v8/src/x64/builtins-x64.cc                   |  13 +-
 deps/v8/src/x64/code-stubs-x64.cc                 |   6 +-
 deps/v8/src/x87/builtins-x87.cc                   |  13 +-
 deps/v8/src/x87/code-stubs-x87.cc                 |   7 +-
 deps/v8/test/cctest/test-api.cc                   |  95 +++++-
 deps/v8/test/mjsunit/regress/regress-666046.js    |  57 ++++
 .../pylib/gyp/generator/compile_commands_json.py  | 115 +++++++
 36 files changed, 764 insertions(+), 370 deletions(-)

Docs only:

 AUTHORS                        |   2 +-
 BUILDING.md                    |   3 +-
 CHANGELOG.md                   |   3 +-
 COLLABORATOR_GUIDE.md          | 225 ++++++++++++++++++++++++--
 CONTRIBUTING.md                |  42 ++---
 README.md                      |  71 +++++----
 WORKING_GROUPS.md              |  16 --
 doc/STYLE_GUIDE.md             |  63 ++++++++
 doc/api/addons.md              |   4 +-
 doc/api/assert.md              |  51 ++++--
 doc/api/buffer.md              | 105 ++++++++++---
 doc/api/child_process.md       |  21 +--
 doc/api/console.md             |  27 ++--
 doc/api/crypto.md              | 103 ++++++------
 doc/api/debugger.md            |   2 +-
 doc/api/dgram.md               |  62 ++++----
 doc/api/dns.md                 |  36 +++--
 doc/api/documentation.md       |   2 +-
 doc/api/domain.md              |  22 +--
 doc/api/errors.md              |  62 ++++++--
 doc/api/fs.md                  |   3 +-
 doc/api/globals.md             |  10 +-
 doc/api/http.md                | 124 ++++++++-------
 doc/api/modules.md             |   2 +-
 doc/api/net.md                 |   9 +-
 doc/api/process.md             | 110 ++++++-------
 doc/api/punycode.md            |   2 +-
 doc/api/readline.md            |   4 +-
 doc/api/repl.md                |  11 +-
 doc/api/stream.md              |  57 ++++++-
 doc/api/string_decoder.md      |   2 +-
 doc/api/tls.md                 |  65 ++++----
 doc/api/util.md                |   2 +-
 doc/api/vm.md                  |  30 +++-
 doc/api/zlib.md                |  17 +-
 doc/api_assets/dnt_helper.js   |  49 ++++++
 doc/changelogs/CHANGELOG_V6.md | 329 +++++++++++++++++++++++++++++++++++++++
 doc/guides/maintaining-V8.md   |   4 +-
 doc/guides/writing-tests.md    | 156 ++++++++++++++-----
 doc/onboarding-extras.md       |   6 +-
 doc/onboarding.md              |   5 +
 doc/template.html              |   1 +
 42 files changed, 1443 insertions(+), 477 deletions(-)

Tests & Benchmarks only:

   2.3% benchmark/assert/
   0.9% benchmark/buffers/
   0.4% benchmark/dgram/
   0.3% benchmark/fs/
   2.7% benchmark/misc/
   1.0% benchmark/net/
   0.1% benchmark/os/
   0.1% benchmark/process/
   0.9% benchmark/querystring/
   2.3% benchmark/timers/
   0.8% benchmark/util/
   0.1% benchmark/
   0.4% test/addons/new-target/
   1.7% test/debugger/
   0.6% test/doctool/
   1.2% test/fixtures/keys/fake-startcom-root-issued-certs/
   8.1% test/fixtures/keys/
   0.1% test/fixtures/
   0.0% test/gc/
   0.1% test/inspector/
   2.9% test/internet/
   0.9% test/known_issues/
   0.8% test/message/
  63.8% test/parallel/
   0.1% test/pseudo-tty/
   2.1% test/pummel/
   3.1% test/sequential/
   0.8% test/
 261 files changed, 4480 insertions(+), 1983 deletions(-)

Most active commit

Of the 297 commits, 34614af was the most active: (Excluding docs, npm, eslint, and tests.)

commit 34614af53b864ac10922cff526ba2295b510fa83
Author: Shigeki Ohtsu <ohtsu@ohtsu.org>
Date:   Fri Nov 4 18:19:20 2016 +0900

    crypto: add cert check issued by StartCom/WoSign
    
    When tls client connects to the server with certification issued by
    either StartCom or WoSign listed in StartComAndWoSignData.inc, check
    notBefore of the server certificate and CERT_REVOKED error returns if
    it is after 00:00:00 on October 21, 2016.
    
    See for details in
    https://blog.mozilla.org/security/2016/10/24/distrusting-new-wosign-and-startcom-certificates/,
    https://security.googleblog.com/2016/10/distrusting-wosign-and-startcom.html
    and
    https://support.apple.com/en-us/HT204132
    
    Fixes: https://github.com/nodejs/node/issues/9434
    PR-URL: https://github.com/nodejs/node/pull/9469
    Reviewed-By: James M Snell <jasnell@gmail.com>
    Reviewed-By: Fedor Indutny <fedor.indutny@gmail.com>
    Reviewed-By: Ben Noordhuis <info@bnoordhuis.nl>

 src/StartComAndWoSignData.inc                     | 89 ++++++++++++++++++++
 src/node_crypto.cc                                | 44 +++++++++-
 test/fixtures/keys/Makefile                       | 68 +++++++++++++++
 test/fixtures/keys/agent8-cert.pem                | 20 +++++
 test/fixtures/keys/agent8-csr.pem                 | 17 ++++
 test/fixtures/keys/agent8-key.pem                 | 27 ++++++
 test/fixtures/keys/agent8.cnf                     | 17 ++++
 test/fixtures/keys/agent9-cert.pem                | 20 +++++
 test/fixtures/keys/agent9-csr.pem                 | 17 ++++
 test/fixtures/keys/agent9-key.pem                 | 27 ++++++
 test/fixtures/keys/agent9.cnf                     | 17 ++++
 test/fixtures/keys/fake-startcom-root-cert.pem    | 22 +++++
 test/fixtures/keys/fake-startcom-root-csr.pem     | 18 ++++
 .../fixtures/keys/fake-startcom-root-database.txt |  2 +
 .../keys/fake-startcom-root-database.txt.attr     |  1 +
 .../keys/fake-startcom-root-database.txt.attr.old |  1 +
 .../keys/fake-startcom-root-database.txt.old      |  1 +
 .../keys/fake-startcom-root-issued-certs/01.pem   | 20 +++++
 .../keys/fake-startcom-root-issued-certs/02.pem   | 20 +++++
 test/fixtures/keys/fake-startcom-root-key.pem     | 27 ++++++
 test/fixtures/keys/fake-startcom-root-serial      |  1 +
 test/fixtures/keys/fake-startcom-root-serial.old  |  1 +
 test/fixtures/keys/fake-startcom-root.cnf         | 46 +++++++++++
 .../test-tls-startcom-wosign-whitelist.js         | 91 +++++++++++++++++++++
 24 files changed, 611 insertions(+), 3 deletions(-)

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