The Nodesource Blog

#shoptalk Subscribe

Node.js v7 Release Brief

Node.js v7.0.0 Release Brief

This is the first release in the new v7.x release line. It marks the beginning of a 6 month long "Current" cycle. The v7.x release line is only recommended for situations were frequent updating is not disruptive and occasional minor instability is acceptable. Otherwise, we recommend you use an LTS release line, either v4 "Argon" or v6 "Boron".

Recompiling native C++ add-ons will be required when upgrading to v7.0.0, use npm rebuild or reinstall your dependencies from scratch.

Overview

Of a total of 191 commits:

  • 29 were documentation-only commits.
  • 20 only modify tests and 5 only affect internal tooling.
  • V8 was upgraded to 5.4.500.36 + floating patches:

62 commits were tagged as semver-major, justifying the jump to v7.0.0:

  • [d525e6c92a] - (SEMVER-MAJOR) benchmark: remove broken string-creation.js (Andreas Madsen) #7094
  • [6edef1deb9] - (SEMVER-MAJOR) benchmark: update docs after refactor (Andreas Madsen) #7094
  • [0c0f34e2fe] - (SEMVER-MAJOR) benchmark: add script for creating scatter plot (Andreas Madsen) #7094
  • [855009af7f] - (SEMVER-MAJOR) benchmark: use t-test for comparing node versions (Andreas Madsen) #7094
  • [8bb59fdb12] - (SEMVER-MAJOR) benchmark: missing process.exit after bench.end (Andreas Madsen) #7094
  • [f99471b2ae] - (SEMVER-MAJOR) benchmark: refactor to use process.send (Andreas Madsen) #7094
  • [0f9bfaa7c5] - (SEMVER-MAJOR) benchmark: move cli parts of common.js into run.js (Andreas Madsen) #7094
  • [edbed3f3fd] - (SEMVER-MAJOR) benchmark: move http_simple.js to http directory (Andreas Madsen) #7094
  • [ee2843b4ea] - (SEMVER-MAJOR) benchmark: remove unused files (Andreas Madsen) #7094
  • [96b501d338] - (SEMVER-MAJOR) buffer: make byteLength throw on invalid input (Brian White) #8946
  • [f2fe5583c4] - (SEMVER-MAJOR) buffer: runtime deprecation of calling Buffer without new (Nikolai Vavilov) #8169
  • [9cee8b1b62] - (SEMVER-MAJOR) buffer: alias toLocaleString to toString (James M Snell) #8148
  • [8f90dcc1b8] - (SEMVER-MAJOR) buffer: throw on negative .allocUnsafe() argument (Anna Henningsen) #7079
  • [b311906abf] - (SEMVER-MAJOR) build: do not clean V8 gtest directory (Michaël Zasso) #8317
  • [94f68b5b97] - (SEMVER-MAJOR) build: fix mkpeephole configuration (Ali Ijaz Sheikh) #8317
  • [8481ea1ca4] - (SEMVER-MAJOR) build: use libc++ on OSX (Ali Ijaz Sheikh) #8317
  • [197d18795e] - (SEMVER-MAJOR) build: define icu_use_data_file_flag (Ali Ijaz Sheikh) #8317
  • [eab418f7f9] - (SEMVER-MAJOR) build: update V8 gypfile paths (Michaël Zasso) #8317
  • [0548e5d12a] - (SEMVER-MAJOR) child_process: add fork/execFile arg validation (Rich Trott) #7399
  • [b90f3da9de] - (SEMVER-MAJOR) child_process, win: fix shell spawn with AutoRun (Bartosz Sosnowski) #8063
  • [f44b18f010] - (SEMVER-MAJOR) cluster: deprecate worker.suicide (Evan Lucas) #3747
  • [f4aa2c2c93] - (SEMVER-MAJOR) crypto: remove POINT_CONVERSION_HYBRID from documentation. (Adam Langley) #4956
  • [a88bb3a758] - (SEMVER-MAJOR) deps: cherry-pick workaround for clang-3.4 ICE (Michaël Zasso) #8317
  • [90efff6000] - (SEMVER-MAJOR) deps: update V8 to 5.4.500.27 (Michaël Zasso) #8317
  • [e9b6fbbf17] - (SEMVER-MAJOR) dgram: prefer strict equality, type validation (Claudio Rodriguez) #8011
  • [29e49fc286] - (SEMVER-MAJOR) doc, punycode: soft-deprecation of the punycode module (James M Snell) #7941
  • [3b8ec68a3a] - (SEMVER-MAJOR) domain: add message for dispose deprecation (Brian White) #7053
  • [983775d457] - (SEMVER-MAJOR) events: make memory leak warning name more verbose (Anna Henningsen) #8341
  • [b7a8a691b4] - (SEMVER-MAJOR) events: unwrap #once listeners in #listeners (Owen Smith) #6881
  • [7f7d1d385d] - (SEMVER-MAJOR) fs: move stringToFlags() to lib/internal (Ben Noordhuis) #7162
  • [169f485289] - (SEMVER-MAJOR) fs: refactor "options" processing as a function (Sakthipriyan Vairamani) #7165
  • [21124ba23a] - (SEMVER-MAJOR) fs: do not emit 'stop' watch event synchronously (Claudio Rodriguez) #8524
  • [49ef3ae90a] - (SEMVER-MAJOR) Revert "fs: add a temporary fix for re-evaluation support" (James M Snell) #6413
  • [f8f283b8f3] - (SEMVER-MAJOR) fs: warn if no callback is passed to async calls (Sakthipriyan Vairamani) #7897
  • [c86c1eeab5] - (SEMVER-MAJOR) fs: validate args of truncate functions in js (Sakthipriyan Vairamani) #2498
  • [9359de9dd2] - (SEMVER-MAJOR) fs: make callback mandatory to all async functions (Sakthipriyan Vairamani) #7168
  • [2cc7fa5e7d] - (SEMVER-MAJOR) http: remove deprecated Client interface (Brian White) #8104
  • [31bef6b704] - (SEMVER-MAJOR) http: correct error message for invalid trailer (Bryan English) #6308
  • [9f1f7e2a34] - (SEMVER-MAJOR) inspector: listen on process.debugPort (cjihrig) #8386
  • [9ad3082b1c] - (SEMVER-MAJOR) intl: add deprecation warning for v8BreakIterator (Michaël Zasso) #8908
  • [d582193613] - (SEMVER-MAJOR) module: Remove deprecated function requireRepl. (Adri Van Houdt) #8575
  • [fd6af98c2d] - (SEMVER-MAJOR) net: refactor Server.prototype.listen (Jan Schär) #4039
  • [5e5ec2cd1e] - (SEMVER-MAJOR) os: deprecate tmpDir() in favour of tmpdir() (Jeremiah Senkpiel) #6739
  • [62b544290a] - (SEMVER-MAJOR) process: remove deprecated process.EventEmitter (cjihrig) #6862
  • [07dbf7313d] - (SEMVER-MAJOR) promise: hard deprecation for unhandled promise rejection (James M Snell) #8217
  • [ecf474ceba] - (SEMVER-MAJOR) promise: warn on unhandled rejections (Benjamin Gruenbaum) #8217
  • [1a9e247c79] - (SEMVER-MAJOR) readline: show completions only after 2nd TAB (Anna Henningsen) #7754
  • [8a87b29034] - (SEMVER-MAJOR) readline: remove deprecated methods (cjihrig) #6423
  • [488d28d391] - (SEMVER-MAJOR) repl: deprecate unused function convertToContext (Prince J Wesley) #7829
  • [1fda657cac] - (SEMVER-MAJOR) src: update module version mismatch error message (James M Snell) #8391
  • [96933df2ff] - (SEMVER-MAJOR) src: update NODE_MODULE_VERSION to 51 (Myles Borins) #8808
  • [b032f1cfc3] - (SEMVER-MAJOR) src: no longer need to use std::tr1:: (Michaël Zasso) #8317
  • [8e7cbe2546] - (SEMVER-MAJOR) src: make debugger listen on 127.0.0.1 by default (Ben Noordhuis) #8106
  • [a3c5567eb4] - (SEMVER-MAJOR) src,win: use correct exit code in old versions (yorkie) #8204
  • [2f05af4c06] - (SEMVER-MAJOR) stream: improve stream error messages (Italo A. Casas) #8801
  • [9983af0347] - (SEMVER-MAJOR) stream: improve unimplemented _write() error (ratikesh9) #7671
  • [0cd0118334] - (SEMVER-MAJOR) stream: 'data' argument on callback of Transform._flush() (Jesús Leganés Combarro "piranna) #3708
  • [99cfd53097] - (SEMVER-MAJOR) test: test execFile/fork arg validation (Chuck Langford) #7399
  • [1a93e03a0e] - (SEMVER-MAJOR) tools: do not disable ICU's transliteration (Michaël Zasso) #8317
  • [6a3dbdacd6] - (SEMVER-MAJOR) udp: remove ancient check (Saúl Ibarra Corretgé) #8088
  • [336b027411] - (SEMVER-MAJOR) url: return valid file: urls fom url.format() (Rich Trott) #7234
  • [197a465280] - (SEMVER-MAJOR) zlib: move constants into zlib.constants (James M Snell) #7203

In addition, 5 commits were tagged as semver-minor, adding new functionality:

  • [c21458a15d] - (SEMVER-MINOR) buffer: expose underlying buffer object always (Sakthipriyan Vairamani) #8311
  • [0fc5e0dcd9] - (SEMVER-MINOR) crypto: add crypto.timingSafeEqual (not-an-aardvark) #8040
  • [245ac302f5] - (SEMVER-MINOR) deps: update V8 to 5.1.281.75 (Ben Noordhuis) #7615
  • [2cc2951796] - (SEMVER-MINOR) deps: update V8 to 5.1.281.69 (Michaël Zasso) #7016
  • [a8ece149e2] - (SEMVER-MINOR) url: adding WHATWG URL support (James M Snell) #7448

The remaining significant commits are as follows:

  • [1043f5d08e] - assert: name anonymous functions (Miguel Angel Asencio Hurtado) #9051
  • [06f37471aa] - benchmark: use node v4 syntax in common.js (Andreas Madsen) #9064
  • [8b152fcf47] - benchmark: change the execution order (Andreas Madsen) #9064
  • [a5046bf8ef] - benchmark: fixes csv parsing given no parameters (Andreas Madsen) #9064
  • [af01865d66] - benchmark: add info about required Unix tools (Bartosz Sosnowski) #8788
  • [dfb5f301cf] - benchmark: make v8-bench.js output consistent (Bartosz Sosnowski) #8564
  • [84481f9157] - benchmark: add --expose_internals switch (Bartosz Sosnowski) #8547
  • [d3834a1fa3] - benchmark: ignore significance when using --runs 1 (Andreas Madsen) #8299
  • [b1bbc68fb1] - benchmark: support for multiple http benchmarkers (Bartosz Sosnowski) #8140
  • [474e629ddb] - benchmark: add --format csv option (Adrian Nitu) #7961
  • [4b527a4129] - benchmark: update compare.js exit method (Adrian Nitu) #7961
  • [9e7fd8e810] - benchmark: fix comment typos and code format (Adrian Nitu) #7961
  • [60042ca70e] - buffer: fix range checks for slice() (Trevor Norris) #9174
  • [14d1a8a631] - buffer: coerce slice parameters consistently (Sakthipriyan Vairamani (thefourtheye)) #9101
  • [2c9a86f01e] - buffer: directly use ArrayBuffer as the pool (Anna Henningsen) #8302
  • [bd23290657] - buffer: remove obsolete and confusing comment (Nikolai Vavilov) #7264
  • [5292a1358f] - buffer: improve creation performance. (Ingvar Stepanyan) #6893
  • [c5f5bcb331] - build: fix config.gypi target (Daniel Bevenius) #9053
  • [88e862ba82] - build: windows sharedlib support (Stefan Budeanu) #7487
  • [6eece7773e] - child_process: update outdated comment (Tanuja-Sawant)
  • [bd7d7a7e17] - console: name anonymous functions (Tyler Brazier) #9047
  • [c60d43b6d9] - crypto: fix faulty logic in iv size check (Ben Noordhuis) #9032
  • [72f1c41fb6] - crypto: naming anonymous functions (solebox) #8993
  • [89643b645e] - crypto: use SSL_get_SSL_CTX. (Adam Langley) #8995
  • [0764bc4711] - Revert "crypto: add crypto.timingSafeEqual" (James M Snell) #8225
  • [5e3a480ad5] - deps: revert default gtest reporter change (Brian White) #8948
  • [260f41f2cc] - dns: name anonymous functions (Miguel Angel Asencio Hurtado) #9052
  • [108c1fbbe2] - fs: clarify fs.link and fs.linkSync arguments (Kyle E. Mitchell) #9145
  • [fe9f5bcd75] - fs: don't alter user provided options object (Sakthipriyan Vairamani (thefourtheye)) #7831
  • [b50557b51b] - fs: use process.emitWarning to print deprecation warning (James M Snell) #8166
  • [dc7277909b] - fs: move SyncWriteStream to internal/fs (James M Snell) #6749
  • [21b0a27af8] - Revert "fs: make callback mandatory to all async functions" (Myles Borins) #7846
  • [c5a18e748d] - Revert "fs: validate args of truncate functions in js" (Myles Borins) #7950
  • [179150091f] - http: name anonymous functions in http (maasencioh) #9055
  • [73a8d3b0da] - http: name anonymous functions in _http_server (maasencioh) #9055
  • [ffa5c9ea30] - http: name anonymous functions in _http_outgoing (maasencioh) #9055
  • [fa035ada90] - http: name anonymous functions in _http_incoming (maasencioh) #9055
  • [ec17e76656] - http: name anonymous functions in _http_client (maasencioh) #9055
  • [9099a43073] - http: name anonymous functions (maasencioh) #9054
  • [cde2ca96e4] - http: reject control characters in http.request() (Ben Noordhuis) #8923
  • [a54ec7f49c] - inspector: no URLs when the debugger is connected (Eugene Ostroukhov) #8919
  • [626a07df5b] - inspector: restore 9229 as a default port (Eugene Ostroukhov) #8550
  • [7b73f55902] - internal/util: remove printDeprecationWarning (James M Snell) #8166
  • [15eaba98a1] - lib: use emitWarning instead of printDeprecationMessage (James M Snell) #8166
  • [3a3996315c] - lib,src: reset zero fill flag on exception (Ben Noordhuis) #7093
  • [27e84ddd4e] - lib,src: clean up ArrayBufferAllocator (Ben Noordhuis) #7082
  • [334ef4f19d] - lib,src: drop dependency on v8::Private::ForApi() (Ben Noordhuis) #7082
  • [6f1cae70eb] - net: fix ambiguity in EOF handling (Fedor Indutny) #9066
  • [aedb72e03b] - process: improve performance of nextTick (Evan Lucas) #8932
  • [bf91035364] - process: fix handling of process.noDeprecation in emitWarning (James M Snell) #8166
  • [b2be04ac85] - src: refactor contextify (Franziska Hinkelmann) #8909
  • [e175188a94] - src: fix typo rval to value (Miguel Angel Asencio Hurtado) #9023
  • [ebad04326d] - src: notify V8 for low memory when alloc fails (Anna Henningsen) #8482
  • [aed9792ff4] - src: provide allocation + nullptr check shortcuts (Anna Henningsen) #8482
  • [d2470d4dff] - src: pass desired return type to allocators (Anna Henningsen) #8482
  • [de946013c2] - src: add Malloc() size param + overflow detection (Anna Henningsen) #8482
  • [5bf94357a9] - src: remove unused StringValue macro parameters (Daniel Bevenius) #7905
  • [cc00be6ace] - src: fix -Wunused-result warning (Santiago Gimeno) #8450
  • [781713d5ef] - src: remove unused isolate member (Ben Noordhuis) #7334
  • [de4161d367] - src: remove unused internals from node.cc (Anna Henningsen) #7117
  • [ac0665c908] - src: fix ArrayBuffer size for zero fill flag (Anna Henningsen) #7142
  • [aac79dfd78] - src: use stack-allocated Environment instances (Ben Noordhuis) #7090
  • [58cec4e85b] - src: move env init logic into Environment class (Ben Noordhuis) #7090
  • [c3cd453cba] - src: make IsolateData creation explicit (Ben Noordhuis) #7082
  • [0301ce9f55] - src: move IsolateData out of Environment (Ben Noordhuis) #7082
  • [1afd7c166e] - url: fix building when using --without-intl (James M Snell) #9041

Notable Changes

  • Buffer
    • Passing invalid input to Buffer.byteLength will now throw an error #8946.
    • Calling Buffer without new is now deprecated and will emit a process warning #8169.
    • Passing a negative number to allocUnsafe will now throw an error #7079.
  • Child Process
    • The fork and execFile methods now have stronger argument validation #7399.
  • Cluster
    • The worker.suicide method is deprecated and will emit a process warning #3747.
  • Deps
    • V8 has been updated to 5.4.500.36 #8317, #8852, #9253.
    • NODE_MODULE_VERSION has been updated to 51 #8808.
  • File System
    • A process warning is emitted if a callback is not passed to async file system methods #7897.
  • Intl
    • Intl.v8BreakIterator constructor has been deprecated and will emit a process warning #8908.
  • Punycode
    • The punycode module has been deprecated #7941.
  • URL
    • An Experimental WHATWG URL Parser has been introduced #7448.

In addition, the upgrade to V8 5.4 brings the new ES7 exponentiation arithmetic operator, ** and **=.

Git Diffstats

(Showing the delta between v6.9.1 and v7.0.0, ignoring deps/npm.)

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

 .eslintignore                          |    5 +-
 .eslintrc                              |  106 ++-
 .gitignore                             |    4 +
 .mailmap                               |   15 +-
 .remarkrc                              |   63 ++
 Makefile                               |  256 ++++--
 android-configure                      |   27 +-
 common.gypi                            |   70 +-
 configure                              |  146 +++-
 lib/.eslintrc                          |    1 +
 lib/_debug_agent.js                    |   24 +-
 lib/_debugger.js                       |   27 +-
 lib/_http_agent.js                     |   27 +-
 lib/_http_client.js                    |   67 +-
 lib/_http_common.js                    |  147 ++--
 lib/_http_incoming.js                  |   29 +-
 lib/_http_outgoing.js                  |   96 +-
 lib/_http_server.js                    |  151 ++--
 lib/_linklist.js                       |    6 +-
 lib/_stream_readable.js                |  335 ++++---
 lib/_stream_transform.js               |   13 +-
 lib/_stream_wrap.js                    |    4 +-
 lib/_stream_writable.js                |   66 +-
 lib/_tls_common.js                     |   20 +-
 lib/_tls_legacy.js                     |   59 +-
 lib/_tls_wrap.js                       |   37 +-
 lib/assert.js                          |   61 +-
 lib/buffer.js                          |  440 ++++++----
 lib/child_process.js                   |   91 +-
 lib/cluster.js                         |  154 ++--
 lib/console.js                         |   40 +-
 lib/constants.js                       |   10 +-
 lib/crypto.js                          |  118 +--
 lib/dgram.js                           |   89 +-
 lib/dns.js                             |   31 +-
 lib/domain.js                          |    5 +-
 lib/events.js                          |  114 ++-
 lib/fs.js                              |  674 +++++---------
 lib/http.js                            |   90 +-
 lib/internal/bootstrap_node.js         |  238 +++--
 lib/internal/child_process.js          |   51 +-
 lib/internal/fs.js                     |   98 +++
 lib/internal/linkedlist.js             |   20 +-
 lib/internal/module.js                 |   56 +-
 lib/internal/net.js                    |    8 +-
 lib/internal/process.js                |   96 +-
 lib/internal/process/next_tick.js      |   12 +-
 lib/internal/process/promises.js       |   43 +-
 lib/internal/process/stdio.js          |   56 +-
 lib/internal/process/warning.js        |   20 +-
 lib/internal/readline.js               |    9 +-
 lib/internal/repl.js                   |   17 +-
 lib/internal/streams/BufferList.js     |   72 ++
 lib/internal/streams/lazy_transform.js |    2 +-
 lib/internal/url.js                    |  629 +++++++++++++
 lib/internal/util.js                   |  103 ++-
 lib/internal/v8_prof_polyfill.js       |   44 +-
 lib/internal/v8_prof_processor.js      |    6 +-
 lib/module.js                          |  335 +++++--
 lib/net.js                             |  251 +++---
 lib/os.js                              |   10 +-
 lib/path.js                            |   30 +-
 lib/punycode.js                        |  860 ++++++++----------
 lib/querystring.js                     |   26 +-
 lib/readline.js                        |  164 ++--
 lib/repl.js                            |  381 ++++++--
 lib/string_decoder.js                  |  401 +++++----
 lib/sys.js                             |    5 +-
 lib/timers.js                          |  407 +++++----
 lib/tls.js                             |  290 +++---
 lib/tty.js                             |    7 +
 lib/url.js                             |  131 +--
 lib/util.js                            |  249 ++++--
 lib/v8.js                              |    2 +-
 lib/vm.js                              |   51 +-
 lib/zlib.js                            |  201 +++--
 node.gyp                               |  246 +++++-
 src/async-wrap-inl.h                   |   10 +-
 src/async-wrap.cc                      |   14 +-
 src/async-wrap.h                       |    3 +
 src/atomic-polyfill.h                  |   18 -
 src/backtrace_posix.cc                 |   52 ++
 src/backtrace_win32.cc                 |    8 +
 src/base-object-inl.h                  |   24 +-
 src/base-object.h                      |    6 +-
 src/base64.h                           |  194 +++++
 src/cares_wrap.cc                      |  116 +--
 src/connect_wrap.cc                    |   22 +
 src/connect_wrap.h                     |   26 +
 src/connection_wrap.cc                 |  141 +++
 src/connection_wrap.h                  |   38 +
 src/debug-agent.cc                     |   54 +-
 src/debug-agent.h                      |   11 +-
 src/env-inl.h                          |  209 ++---
 src/env.cc                             |   92 +-
 src/env.h                              |  206 ++---
 src/fs_event_wrap.cc                   |   27 +-
 src/handle_wrap.cc                     |   60 +-
 src/handle_wrap.h                      |   23 +-
 src/inspector_agent.cc                 |  884 +++++++++++++++++++
 src/inspector_agent.h                  |   49 ++
 src/inspector_socket.cc                |  626 +++++++++++++
 src/inspector_socket.h                 |  100 +++
 src/js_stream.cc                       |   27 +-
 src/js_stream.h                        |    6 +-
 src/node.cc                            |  955 +++++++++++---------
 src/node.h                             |   74 +-
 src/node_buffer.cc                     |  412 +++++----
 src/node_config.cc                     |   51 ++
 src/node_constants.cc                  |  122 ++-
 src/node_constants.h                   |    6 +-
 src/node_contextify.cc                 |  284 +++---
 src/node_counters.h                    |    4 +
 src/node_crypto.cc                     |  535 +++++++-----
 src/node_crypto.h                      |   18 +-
 src/node_crypto_bio.cc                 |    6 +-
 src/node_crypto_bio.h                  |    7 +-
 src/node_crypto_clienthello-inl.h      |    4 +
 src/node_crypto_clienthello.cc         |    4 +-
 src/node_crypto_clienthello.h          |    6 +-
 src/node_crypto_groups.h               |    4 +
 src/node_dtrace.cc                     |    1 -
 src/node_dtrace.h                      |    4 +
 src/node_file.cc                       |  135 ++-
 src/node_file.h                        |    4 +
 src/node_http_parser.cc                |   38 +-
 src/node_http_parser.h                 |    4 +
 src/node_i18n.cc                       |  136 +++
 src/node_i18n.h                        |   14 +
 src/node_internals.h                   |  255 +++---
 src/node_javascript.h                  |    4 +
 src/node_lttng.h                       |    4 +
 src/node_lttng_provider.h              |    4 +
 src/node_lttng_tp.h                    |   64 +-
 src/node_main.cc                       |   11 +-
 src/node_mutex.h                       |  187 ++++
 src/node_os.cc                         |   71 +-
 src/node_revert.h                      |    4 +
 src/node_root_certs.h                  |  136 ++-
 src/node_stat_watcher.cc               |    6 +-
 src/node_stat_watcher.h                |    7 +-
 src/node_url.cc                        | 1406 ++++++++++++++++++++++++++++++
 src/node_url.h                         |  538 ++++++++++++
 src/node_util.cc                       |   81 +-
 src/node_v8.cc                         |    2 -
 src/node_version.h                     |    8 +-
 src/node_watchdog.cc                   |  229 ++++-
 src/node_watchdog.h                    |   69 +-
 src/node_win32_etw_provider-inl.h      |    4 +
 src/node_win32_etw_provider.cc         |    9 +-
 src/node_win32_etw_provider.h          |    4 +
 src/node_win32_perfctr_provider.cc     |   30 +-
 src/node_win32_perfctr_provider.h      |    4 +
 src/node_wrap.h                        |    6 +
 src/node_zlib.cc                       |   77 +-
 src/pipe_wrap.cc                       |  145 +--
 src/pipe_wrap.h                        |   14 +-
 src/process_wrap.cc                    |   25 +-
 src/req-wrap-inl.h                     |    5 +
 src/req-wrap.h                         |   14 +-
 src/signal_wrap.cc                     |   17 +-
 src/spawn_sync.cc                      |   38 +-
 src/spawn_sync.h                       |    8 +-
 src/stream_base-inl.h                  |   49 +-
 src/stream_base.cc                     |   18 +-
 src/stream_base.h                      |   28 +-
 src/stream_wrap.cc                     |   36 +-
 src/stream_wrap.h                      |    3 +
 src/string_bytes.cc                    |  380 +++-----
 src/string_bytes.h                     |   48 +-
 src/string_search.cc                   |    5 +-
 src/string_search.h                    |  392 +++++----
 src/tcp_wrap.cc                        |  164 ++--
 src/tcp_wrap.h                         |   14 +-
 src/timer_wrap.cc                      |    5 +-
 src/tls_wrap.cc                        |   43 +-
 src/tls_wrap.h                         |    7 +-
 src/tty_wrap.cc                        |   14 +-
 src/tty_wrap.h                         |    4 +
 src/udp_wrap.cc                        |   66 +-
 src/udp_wrap.h                         |    5 +-
 src/util-inl.h                         |  217 ++++-
 src/util.cc                            |   83 +-
 src/util.h                             |  295 +++++--
 src/uv.cc                              |    4 +-
 src/v8abbr.h                           |    7 +-
 src/v8ustack.d                         |    4 +-
 vcbuild.bat                            |  153 +++-
 188 files changed, 14412 insertions(+), 6337 deletions(-)

Tools only:

 tools/certdata.txt                | 1793 +++----------
 tools/check-imports.py            |   42 +
 tools/check-imports.sh            |   36 -
 tools/compress_json.py            |   25 +
 tools/configure.d/nodedownload.py |    2 +-
 tools/cpplint.py                  | 5059 +++++++++++++++++++++++++++--------
 tools/create_expfile.sh           |    6 +-
 tools/getmoduleversion.py         |   24 +
 tools/getnodeversion.py           |   14 +-
 tools/gyp_node.py                 |    7 +
 tools/icu/README.md               |   79 +-
 tools/icu/icu-generic.gyp         |  193 +-
 tools/icu/icu_small.json          |    5 +-
 tools/icu/iculslocs.cc            |   52 +-
 tools/icu/shrink-icu-src.py       |  122 +
 tools/install.py                  |   43 +-
 tools/js2c.py                     |   23 -
 tools/jslint.js                   |  283 ++
 tools/license-builder.sh          |   40 +-
 tools/license2rtf.js              |  108 +-
 tools/mk-ca-bundle.pl             |    2 +
 tools/mkssldef.py                 |   53 +
 tools/msvs/msi/i18n/it-it.wxl     |   38 +
 tools/msvs/msi/i18n/zh-cn.wxl     |   38 +
 tools/msvs/msi/nodemsi.wixproj    |   12 +-
 tools/msvs/msi/product.wxs        |    2 +-
 tools/release.sh                  |   18 +-
 tools/sign.bat                    |   15 +
 tools/specialize_node_d.py        |    2 -
 tools/test.py                     |  149 +-
 30 files changed, 5450 insertions(+), 2835 deletions(-)

Deps only:

 4784 files changed, 1200506 insertions(+), 249652 deletions(-)

Docs only:

 117 files changed, 37773 insertions(+), 19825 deletions(-)

Tests & Benchmarks only:

 1299 files changed, 37567 insertions(+), 14982 deletions(-)

Most active commit

Of the 191 commits, a8ece14 was the most active:
(Excluding docs, deps, and tests.)

commit a8ece149e210ed477e1ee308bd052ee95b41d286
Author: James M Snell <jasnell@gmail.com>
Date:   Tue May 31 11:52:19 2016 -0700


    url: adding WHATWG URL support


    Implements WHATWG URL support. Example:


    ```
    var u = new url.URL('http://example.org');
    ```


    Currently passing all WHATWG url parsing tests and all but two of the
    setter tests. The two setter tests are intentionally skipped for now
    but will be revisited.


    PR-URL: https://github.com/nodejs/node/pull/7448
    Reviewed-By: Ilkka Myller <ilkka.myller@nodefield.com>


 benchmark/url/new-url-parse.js                |   57 +
 lib/internal/url.js                           |  629 ++++++++++
 lib/url.js                                    |   70 +-
 node.gyp                                      |    2 +
 src/node_i18n.cc                              |   12 +-
 src/node_i18n.h                               |    7 +
 src/node_url.cc                               | 1406 +++++++++++++++++++++++
 src/node_url.h                                |  538 +++++++++
 test/fixtures/url-setter-tests.json           | 1134 ++++++++++++++++++
 test/parallel/test-whatwg-url-parsing.js      |  122 ++
 test/parallel/test-whatwg-url-searchparams.js |   36 +
 test/parallel/test-whatwg-url-setters.js      |   24 +
 12 files changed, 3965 insertions(+), 72 deletions(-)