The NodeSource Blog

Node.js v7.2.1 Release Brief

This routine patch release un-deprecates calling Buffer without the new keyword, and also includes more useful stacktraces for promise warnings when --trace-warnings is enabled.

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

  • 23 were documentation-only commits.
  • 139 only modify tests and 4 only affect internal tooling.
  • 3 of the commits consist of 3 dependency updates + floating patches:
  • One dependency was updated:
  • Two commits were floated onto their respective dependencies :

The remaining significant commits are as follows:

  • [5379b9da11] - async_wrap: call destroy() callback in uv_idle_t (Trevor Norris) #9753
  • [5157a5cee9] - async_wrap: make Initialize a static class member (Trevor Norris) #9753
  • [3e5be7fc8b] - async_wrap: mode constructor/destructor to .cc (Trevor Norris) #9753
  • [88464ac6ac] - benchmark: reformat code for clarity (Rich Trott) #9790
  • [573f9db6c9] - buffer: fix transcode for single-byte enc to ucs2 (Anna Henningsen) #9838
  • [0c745e3a3a] - buffer: convert offset & length to int properly (Sakthipriyan Vairamani (thefourtheye)) #9815
  • [e0e62d1113] - Revert "buffer: runtime deprecation of calling Buffer without new" (Anna Henningsen) #9529
  • [371090d817] - build: Make configure file parseable on python3 (kalrover) #9657
  • [16af467146] - build: add shared library support to AIX build (Stewart Addison) #9675
  • [fa38032148] - child_process: name anonymous functions (brad-decker) #9880
  • [5c9aa18484] - constants: errors -> errno (Bryan English) #9349
  • [dfa35d66f5] - debugger: call this.resume() after this.run() (Lance Ball) #10099
  • [ac8d212428] - debugger: refactor _debugger.js (Rich Trott) #9860
  • [9554a974d1] - https: name anonymous functions in https (Pedro Lima) #9217
  • [80a3934cd7] - inspector: /json/version returns object, not array (Ben Noordhuis) #9762
  • [65cda7f265] - lib: use === in _http_server and _tls_wrap (Walter Beller-Morales) #9849
  • [a673d44d68] - lib,tools: remove unneeded escaping of / (Prince J Wesley) #9591
  • [3253954e62] - meta: whitelist dotfiles in .gitignore (Claudio Rodriguez) #8016
  • [cef3a04f62] - promise: better stack traces for --trace-warnings (Anna Henningsen) #9525
  • [a0f6cc718a] - repl: avoid parsing division operator as regex (Teddy Katz) #10103
  • [6087e361e5] - repl: preprocess only for defaultEval (Prince J Wesley) #9752
  • [9099664959] - repl: fix generator function preprocessing (Teddy Katz) #9852
  • [5ae549c3aa] - url: fix -Warray-bounds warning (Santiago Gimeno) #9751
  • [f55a63c86f] - uti: move the case latin1 (Jackson Tian) #9646

Git Diffstats

(Showing the delta between v7.2.0 and v7.2.1, ignoring deps/npm.)

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

 .eslintrc                        |   2 +
 .gitignore                       |  18 ++++-
 Makefile                         |   2 +
 configure                        |  76 +++++++++++---------
 lib/_debugger.js                 |  56 ++++++++-------
 lib/_http_server.js              |   2 +-
 lib/_tls_wrap.js                 |   2 +-
 lib/buffer.js                    |  14 +---
 lib/child_process.js             |  24 ++++---
 lib/constants.js                 |   2 +-
 lib/https.js                     |  10 +--
 lib/internal/process/promises.js |  17 ++++-
 lib/internal/util.js             |  22 +++++-
 lib/repl.js                      |  58 +++++++++-------
 lib/url.js                       | 138 +++++++++++++++++++------------------
 node.gyp                         |  10 ++-
 src/async-wrap-inl.h             |  71 -------------------
 src/async-wrap.cc                | 105 ++++++++++++++++++++++++++--
 src/async-wrap.h                 |  17 +++--
 src/env-inl.h                    |  15 ++++
 src/env.cc                       |   3 +
 src/env.h                        |   8 +++
 src/inspector_agent.cc           |  21 ++++--
 src/node_i18n.cc                 |   2 +-
 src/node_url.cc                  |   4 +-
 src/node_version.h               |   2 +-
 26 files changed, 427 insertions(+), 274 deletions(-)

Tools only:

 tools/license2rtf.js |  4 ++--
 tools/test.py        | 11 +++++++++--
 2 files changed, 11 insertions(+), 4 deletions(-)

Deps only:

 deps/v8/include/v8-version.h          |  2 +-
 deps/v8/src/bootstrapper.cc           |  1 +
 deps/v8/src/contexts.h                |  1 +
 deps/v8/src/crankshaft/hydrogen.cc    | 49 +++++++++++++++++++++------------
 tools/gyp/AUTHORS                     |  7 +++--
 tools/gyp/PRESUBMIT.py                | 26 +++++++++--------
 tools/gyp/pylib/gyp/generator/make.py | 10 +++++--
 7 files changed, 60 insertions(+), 36 deletions(-)

Docs only:

 CHANGELOG.md                                 |   3 +-
 COLLABORATOR_GUIDE.md                        |  74 +++++--
 CONTRIBUTING.md                              |   2 +-
 README.md                                    |   7 -
 doc/api/addons.md                            |  22 +-
 doc/api/buffer.md                            |   6 +-
 doc/api/child_process.md                     |   2 +-
 doc/api/crypto.md                            |  12 +-
 doc/api/debugger.md                          |   8 +-
 doc/api/fs.md                                |   4 +-
 doc/api/https.md                             |   2 +-
 doc/api/modules.md                           |  54 +++--
 doc/api/process.md                           |   6 +-
 doc/api/tls.md                               |   2 +-
 doc/api/url.md                               |   9 +-
 doc/api/util.md                              |   1 -
 doc/api_assets/style.css                     |   5 +
 doc/changelogs/CHANGELOG_V7.md               | 210 +++++++++++++++++++
 doc/guides/maintaining-V8.md                 | 279 +++++++++++++++++++++++++
 doc/guides/writing-tests.md                  | 204 ++++++++++++++++++
 doc/guides/writing_tests.md                  | 204 ------------------
 doc/onboarding-extras.md                     |   1 +
 doc/onboarding.md                            | 192 +++++------------
 doc/topics/event-loop-timers-and-nexttick.md |  10 +-
 24 files changed, 893 insertions(+), 426 deletions(-)

Tests & Benchmarks only:

   0.6% benchmark/arrays/
   1.2% benchmark/buffers/
   0.2% benchmark/es/
   0.6% benchmark/http/
   0.1% benchmark/misc/
   0.1% benchmark/querystring/
   0.8% benchmark/tls/
   0.1% benchmark/util/
   0.4% benchmark/
   0.0% test/addons/async-hello-world/
   0.0% test/addons/hello-world-function-export/
   0.0% test/addons/hello-world/
   0.0% test/addons/load-long-path/
   0.2% test/addons/stringbytes-external-exceed-max/
   0.7% test/cctest/
   0.5% test/debugger/
   0.1% test/inspector/
   0.6% test/message/
  91.4% test/parallel/
   0.1% test/pseudo-tty/
   0.3% test/sequential/
   0.8% test/
 168 files changed, 2332 insertions(+), 1766 deletions(-)

Most active commit

Of the 193 commits, 0c745e3 was the most active:
(Excluding docs, npm, eslint, and tests.)

commit 0c745e3a3ad5472b4827243d8fa4e1b926843cca
Author: Sakthipriyan Vairamani (thefourtheye) <thechargingvolcano@gmail.com>
Date:   Sun Nov 27 15:08:17 2016 +0530


    buffer: convert offset & length to int properly

    As per ecma-262 2015's #sec-%typedarray%-buffer-byteoffset-length,
    `offset` would be an integer, not a 32 bit unsigned integer. Also,
    `length` would be an integer with the maximum value of 2^53 - 1, not a
    32 bit unsigned integer.

    This would be a problem because, if we create a buffer from an
    arraybuffer, from an offset which is greater than 2^32, it would be
    actually pointing to a different location in arraybuffer. For example,
    if we use 2^40 as offset, then the actual value used will be 0,
    because `byteOffset >>>= 0` will convert `byteOffset` to a 32 bit
    unsigned int, which is based on 2^32 modulo.

    This is a redo, as the ca37fa527f174b547893817fe8c67a3befa02317 broke
    CI.

    Refer: https://github.com/nodejs/node/pull/9814
    Refer: https://github.com/nodejs/node/pull/9492

    PR-URL: https://github.com/nodejs/node/pull/9815

    Reviewed-By: Michaël Zasso <targos@protonmail.com>
    Reviewed-By: Trevor Norris <trev.norris@gmail.com>
    Reviewed-By: James M Snell <jasnell@gmail.com>
    Reviewed-By: Colin Ihrig <cjihrig@gmail.com>
    Reviewed-By: Matteo Collina <matteo.collina@gmail.com>


 lib/buffer.js                                    |  4 +--
 lib/internal/util.js                             | 18 ++++++++++
 test/parallel/test-buffer-creation-regression.js | 41 ++++++++++++++++++++++
 test/parallel/test-internal-util-toInteger.js    | 32 +++++++++++++++++
 test/parallel/test-internal-util-toLength.js     | 35 ++++++++++++++++++
 5 files changed, 128 insertions(+), 2 deletions(-)

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