The NodeSource Blog

Node.js v4.4.7 Release Brief

This LTS patch release is the result of a built-up of regular maintenance commits.
It was scheduled for release in this LTS WG GitHub issue.

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

The remaining significant commits are as follows:

  • [87cdb83a96] - benchmark: merge url.js with url-resolve.js (Andreas Madsen) #5177
  • [921e8568d5] - benchmark: move misc to categorized directories (Andreas Madsen) #5177
  • [c189eec14e] - benchmark: fix configuration parameters (Andreas Madsen) #5177
  • [58ad451f0b] - benchmark: move string-decoder to its own category (Andreas Madsen) #5177
  • [a01caa3166] - build: don't compile with -B, redux (Ben Noordhuis) #6650
  • [37606caeaf] - build: don't compile with -B (Ben Noordhuis) #6393
  • [64fb7a1929] - build: update android-configure script for npm (Robert Chiras) #6349
  • [43ce6fc8d2] - build: fix DESTCPU detection for binary target (Richard Lau) #6310
  • [2389006720] - debugger: display array contents in repl (Colin Ihrig) #6448
  • [1c6809ce75] - debugger: introduce exec method for debugger (Jackson Tian)
  • [1549899531] - dgram,test: add addMembership()/dropMembership() tests (Rich Trott) #6753
  • [bac87d01d9] - gitignore: adding .vs/ directory to .gitignore (Mike Kaufman) #6070
  • [93f2314dc2] - gitignore: ignore VS 2015 *.VC.opendb files (Mike Kaufman) #6070
  • [c98aaf59bf] - http: speed up checkIsHttpToken() (Jackson Tian) #4790
  • [552e25cb6b] - lib,test: update in preparation for linter update (Rich Trott) #6498
  • [aaeeec4765] - lib,test,tools: alignment on variable assignments (Rich Trott) #6869
  • [b3acbc5648] - net: replace <i>defineGetter</i> with defineProperty() (Fedor Indutny) #6284
  • [4c1eb5bf03] - repl: create history file with mode 0600 (Carl Lei) #3394
  • [90306bb81d] - src: use size_t for http parser array size fields (Ben Noordhuis) #5969
  • [af41a63d0f] - src: replace ARRAY_SIZE with typesafe arraysize() (Ben Noordhuis) #5969
  • [037291e31f] - src: make sure Utf8Value() always zero-terminates (Anna Henningsen) #7101
  • [a08a0179e9] - stream: ensure awaitDrain is increased once (David Halls) #7292
  • [b73ec46dcb] - stream: reset awaitDrain after manual .resume() (Anna Henningsen) #7160
  • [55319fe798] - stream_base: expose bytesRead getter (Fedor Indutny) #6284

Notable Changes

  • debugger: All properties of an array (aside from length) can now be printed in the debugger (Colin Ihrig) #6448
  • npm: Upgraded to v2.15.8 (Rebecca Turner) #7412
  • stream: Fixed a bug that became more prevalent with the stream changes that landed in v4.4.5. (Anna Henningsen) #7160
  • V8:
    • Fixed a bug in crankshaft that was causing crashes on arm64 (Myles Borins) #7442
    • Added missing classes to postmortem info such as JSMap and JSSet (Evan Lucas) #3792

Git Diffstats

(Showing the delta between v4.4.6 and v4.4.7, ignoring deps/npm.)

Without deps, docs, benchmarks, or tests:

 .eslintrc                         |  5 ++--
 .gitignore                        |  2 ++
 Makefile                          | 35 +++++++++++++++++++++++---
 android-configure                 | 27 ++++++++++++++++----
 lib/_debugger.js                  | 30 ++++++++++++++++++----
 lib/_http_common.js               | 50 +++++++++++++++++++++++++++++++++++--
 lib/_stream_readable.js           | 10 +++++++-
 lib/buffer.js                     |  1 +
 lib/child_process.js              |  7 +++---
 lib/internal/repl.js              |  5 +++-
 lib/net.js                        | 38 ++++++++++++++++++++--------
 lib/readline.js                   |  1 +
 lib/repl.js                       |  4 +--
 lib/util.js                       |  9 ++++---
 lib/zlib.js                       |  4 +--
 src/async-wrap-inl.h              |  2 +-
 src/cares_wrap.cc                 |  8 +++---
 src/debug-agent.cc                |  8 +++---
 src/env.h                         |  1 +
 src/fs_event_wrap.cc              |  2 +-
 src/js_stream.cc                  |  4 +--
 src/node.cc                       | 16 ++++++------
 src/node_contextify.cc            |  2 +-
 src/node_counters.cc              |  2 +-
 src/node_crypto.cc                | 22 ++++++++--------
 src/node_dtrace.cc                |  2 +-
 src/node_file.cc                  |  4 +--
 src/node_http_parser.cc           | 26 +++++++++----------
 src/node_internals.h              |  7 ++++--
 src/node_lttng.cc                 |  2 +-
 src/node_stat_watcher.cc          |  2 +-
 src/node_version.h                |  2 +-
 src/node_win32_etw_provider-inl.h |  2 +-
 src/node_win32_etw_provider.cc    |  2 +-
 src/node_zlib.cc                  |  4 +--
 src/pipe_wrap.cc                  |  6 ++---
 src/process_wrap.cc               |  2 +-
 src/stream_base-inl.h             | 17 +++++++++++++
 src/stream_base.cc                | 10 ++++----
 src/stream_base.h                 | 13 ++++++++--
 src/tcp_wrap.cc                   |  4 +--
 src/tls_wrap.cc                   |  6 ++---
 src/udp_wrap.cc                   |  4 +--
 src/util.cc                       |  4 +++
 tools/gyp_node.py                 |  7 ++++++
 tools/js2c.py                     | 23 -----------------
 tools/license-builder.sh          | 20 ++++++++++++---
 tools/test.py                     |  1 +
 vcbuild.bat                       |  4 +--
 49 files changed, 323 insertions(+), 146 deletions(-)

Deps only:

 deps/cares/cares.gyp                              |  4 +++
 deps/v8/src/arm64/lithium-codegen-arm64.cc        |  2 ++
 .../mjsunit/regress/regress-arm64-spillslots.js   | 34 +++++++++++++++++++++
 deps/v8/tools/gen-postmortem-metadata.py          | 23 ++++++++++++--
 4 files changed, 61 insertions(+), 2 deletions(-)

Docs only:

 AUTHORS                                          | 121 ++++++++++++++++++-
 BUILDING.md                                      |  21 +++-
 CHANGELOG.md                                     | 131 +++++++++++++++++++--
 CONTRIBUTING.md                                  |   1 +
 LICENSE                                          |   2 +-
 README.md                                        |  51 ++++----
 WORKING_GROUPS.md                                |  29 +++--
 doc/api/_toc.markdown                            |  10 +-
 doc/api/buffer.markdown                          |  10 +-
 doc/api/child_process.markdown                   |  14 +--
 doc/api/cluster.markdown                         |   8 +-
 doc/api/crypto.markdown                          |   2 +-
 doc/api/debugger.markdown                        |   1 +
 doc/api/documentation.markdown                   |   2 +-
 doc/api/errors.markdown                          |   2 +-
 doc/api/events.markdown                          |   7 +-
 doc/api/fs.markdown                              |  17 +--
 doc/api/globals.markdown                         |   7 +-
 doc/api/modules.markdown                         |  29 ++++-
 doc/api/repl.markdown                            |   2 +-
 doc/api/synopsis.markdown                        |  30 +++--
 doc/api_assets/style.css                         |  73 +++++++-----
 doc/node.1                                       |   4 +-
 doc/onboarding-extras.md                         |  44 +++----
 doc/releases.md                                  |   4 +-
 doc/template.html                                |   2 +-
 doc/topics/the-event-loop-timers-and-nexttick.md |  18 +--
 27 files changed, 482 insertions(+), 160 deletions(-)

Tests & Benchmarks only:

   0.9% benchmark/assert/
   0.2% benchmark/buffers/
   1.3% benchmark/child_process/
   0.8% benchmark/domain/
   1.1% benchmark/http/
  10.4% benchmark/misc/
   1.5% benchmark/module/
   2.9% benchmark/process/
   1.8% benchmark/string_decoder/
   0.7% benchmark/timers/
   2.2% benchmark/url/
   0.1% benchmark/
   3.1% test/addons/stringbytes-external-exceed-max/
   0.9% test/debugger/
   0.1% test/disabled/
   4.8% test/doctool/
   0.0% test/fixtures/
   1.7% test/internet/
   1.2% test/known_issues/
  60.4% test/parallel/
   2.1% test/pummel/
   0.5% test/sequential/
   0.0% test/
 300 files changed, 1525 insertions(+), 994 deletions(-)

Most active commit

Of the 91 commits, c98aaf5 was the most active:
(Excluding docs, npm, eslint, tests, and tools.)

commit c98aaf59bf383d6e76b6a28a77345372048da433
Author: Jackson Tian <shyvo1987@gmail.com>
Date:   Thu Jan 21 15:53:20 2016 +0800

    http: speed up checkIsHttpToken

    The Regex implementation is not faster than ascii code compare.

    the field name is shorter, the speed is faster.

    benchmark result here:

    https://bitbucket.org/snippets/JacksonTian/Rnbad/benchmark-result

    PR-URL: https://github.com/nodejs/node/pull/4790
    Reviewed-By: James M Snell <jasnell@gmail.com>
    Reviewed-By: Brian White <mscdex@mscdex.net>

 benchmark/http/check_is_http_token.js | 52 +++++++++++++++++++++++++++++++++
 lib/_http_common.js                   | 50 +++++++++++++++++++++++++++++--
 2 files changed, 100 insertions(+), 2 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