The Nodesource Blog

#shoptalk Subscribe

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 __defineGetter__ 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.