The NodeSource Blog

Node.js v4.4.5 Release Brief

This LTS release is the result of a buildup of regular maintenance commits.
Notably, some erroneous behavior of Buffer#lastIndexOf() was fixed, and a vm-related memory leak has been resolved.

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

The remaining significant commits are as follows:

  • [59a977dd22] - assert: respect assert.doesNotThrow() message. (Ilya Shaisultanov) #2407
  • [8b077faa82] - buffer: fix UCS2 indexOf() for odd buffer length (Anna Henningsen) #6511
  • [12a9699fcf] - buffer: fix needle length misestimation for UCS2 (Anna Henningsen) #6511
  • [292b1b733e] - build: fix make tar-headers for Linux (Gibson Fahnestock) #5978
  • [918d33ad4b] - build: add script to create Android .mk files (Robert Chiras) #5544
  • [4ad71847bc] - build: add support for x86 architecture (Robert Chiras) #5544
  • [6ad85914b1] - child_process: add nullptr checks after allocs (Anna Henningsen) #6256
  • [823f726f66] - contextify: tie lifetimes of context & sandbox (Ali Ijaz Sheikh) #5800
  • [9ddb44ba61] - contextify: cache sandbox and context in locals (Ali Ijaz Sheikh) #5392
  • [8ebdcd65b0] - contextify: replace deprecated SetWeak usage (Ali Ijaz Sheikh) #5392
  • [9e6d8170f7] - contextify: cleanup weak ref for sandbox (Ali Ijaz Sheikh) #5392
  • [b6fc15347d] - contextify: cleanup weak ref for global proxy (Ali Ijaz Sheikh) #5392
  • [620a261240] - http: disallow sending obviously invalid status codes (Brian White) #6291
  • [9a8b53124d] - http: unref socket timer on parser execute (Fedor Indutny) #6286
  • [b28e44deb2] - http: Corrects IPv6 address in Host header (Mihai Potra) #5314
  • [2fac15ba94] - src: fix FindFirstCharacter argument alignment (Anna Henningsen) #6511
  • [2942cff069] - src: add missing inline keywords (Ben Noordhuis) #6056
  • [e0eebf412e] - src,tools: remove null sentinel from source array (Ben Noordhuis) #5418
  • [8f18414cd5] - src,tools: drop null byte from built-in source code (Ben Noordhuis) #5418
  • [d7a3ea457b] - src,tools: allow utf-8 in built-in js source code (Ben Noordhuis) #5418
  • [51c0808b55] - stream: Fix readableState.awaitDrain mechanism (Anna Henningsen) #6023
  • [48684af55f] - zlib: fix use after null when calling .close() (James Lal) #5982

Notable Changes

  • buffer: lastIndexOf() no longer errors if called with a search term longer than the buffer. (Anna Henningsen) #6511
  • contextify: Context objects are now properly garbage collected. (Ali Ijaz Sheikh) #6871
    • This solves a problem some individuals were experiencing with extreme memory growth.
  • http: Invalid status codes can no longer be sent. (Brian White) #6291
    • Now limited to 3 digit numbers between, and including, 100 - 999.

Git Diffstats

(Showing the delta between v4.4.4 and v4.4.5, ignoring deps/npm.)

Without deps, docs, benchmarks, or tests:

 .eslintignore                     |   1 -
 .eslintrc                         |   1 +
 Makefile                          |   7 ++-
 android-configure                 |  47 +++++++++++---
 common.gypi                       |   8 +++
 lib/_http_client.js               |  11 ++++
 lib/_http_server.js               |   5 ++
 lib/_stream_readable.js           |   6 +-
 lib/assert.js                     |   9 ++-
 lib/internal/v8_prof_processor.js |   1 +
 lib/zlib.js                       |   4 +-
 src/base-object.h                 |   4 +-
 src/node_buffer.cc                |   8 ++-
 src/node_contextify.cc            | 122 +++++++++++++++---------------------
 src/node_javascript.cc            |  24 ++++---
 src/node_version.h                |   2 +-
 src/process_wrap.cc               |   2 +
 src/string_search.h               |   3 +-
 tools/create_android_makefiles    |  46 ++++++++++++++
 tools/install.py                  |   7 +--
 tools/js2c.py                     |  33 ++--------
 tools/test-npm.sh                 |   1 -
 tools/test.py                     |  10 ++-
 23 files changed, 216 insertions(+), 146 deletions(-)

Deps only:

 deps/v8/src/compiler/code-generator.cc           |  9 ++++++---
 deps/v8/src/compiler/instruction-selector-impl.h |  2 +-
 deps/v8/src/compiler/instruction-selector.cc     |  3 ++-
 deps/v8/src/compiler/instruction.cc              | 12 ++++++------
 deps/v8/src/compiler/instruction.h               |  7 ++++---
 deps/v8/src/debug-debugger.js                    |  2 +-
 deps/v8/src/heap/incremental-marking.cc          |  4 ++--
 deps/v8/src/heap/spaces-inl.h                    |  2 +-
 deps/v8/src/heap/spaces.cc                       |  2 +-
 deps/v8/src/heap/spaces.h                        |  4 ++--
 deps/v8/test/cctest/test-spaces.cc               |  6 +++---
 deps/v8/tools/tickprocessor.js                   |  5 ++++-
 12 files changed, 33 insertions(+), 25 deletions(-)

Docs only:

 BUILDING.md                    | 15 +++++++
 CHANGELOG.md                   | 96 +++++++++++++++++++++++++++++++++++++++-
 doc/api/child_process.markdown | 26 ++++++++++-
 doc/api/console.markdown       | 41 +++++++++++++++++
 doc/api/crypto.markdown        |  2 +-
 doc/api/errors.markdown        | 31 +++++--------
 doc/api/fs.markdown            | 11 +++++
 doc/api/globals.markdown       |  5 ++-
 doc/api/http.markdown          | 17 +++----
 doc/api/https.markdown         |  4 +-
 doc/api/path.markdown          | 47 +-------------------
 doc/api/stream.markdown        |  2 +-
 doc/api/tls.markdown           |  8 ++--
 doc/api/vm.markdown            |  4 +-
 doc/api/zlib.markdown          | 36 +++++++++++++++
 doc/api_assets/style.css       | 10 +----
 test/README.md                 |  4 +-
 17 files changed, 262 insertions(+), 97 deletions(-)

Tests & Benchmarks only:

   8.2% test/addons/stringbytes-external-exceed-max/
   0.0% test/message/
  53.2% test/parallel/
   0.4% test/pummel/
  37.7% test/sequential/
   0.1% test/
 133 files changed, 2198 insertions(+), 1898 deletions(-)

Most active commit

Of the 75 commits, 620a261 was the most active:
(Excluding docs, npm, eslint, and tests.)

commit 620a261240a20ec1ba00cfc1cfcd9a7ead84c0bf
Author: Brian White <mscdex@mscdex.net>
Date:   Tue Apr 19 20:49:45 2016 -0400

    http: disallow sending obviously invalid status codes

    PR-URL: https://github.com/nodejs/node/pull/6291
    Reviewed-By: James M Snell <jasnell@gmail.com>
    Reviewed-By: Sakthipriyan Vairamani <thechargingvolcano@gmail.com>
    Reviewed-By: Сковорода Никита Андреевич <chalkerx@gmail.com>
    Reviewed-By: Fedor Indutny <fedor.indutny@gmail.com>
    Reviewed-By: Benjamin Gruenbaum <benjamingr@gmail.com>
    Reviewed-By: Colin Ihrig <cjihrig@gmail.com>

 lib/_http_server.js                            |  4 ++
 test/parallel/test-http-response-statuscode.js | 91 ++++++++++++++++++++++++
 2 files changed, 95 insertions(+)

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