Commits on Apr 26, 2016
  1. readline: allow history to be disabled

    1.  The `historySize` to default to `30` only if `undefined`.
    2.  If `historySize` is set to 0, then disable caching the line.
    3.  Added unit tests.
    4.  Updated documentation.
    Fixes: nodejs#6336
    PR-URL: nodejs#6352
    Reviewed-By: Anna Henningsen <>
    Reviewed-By: Colin Ihrig <>
    suryagh committed with addaleax Apr 22, 2016
  2. cluster: migrate from worker.suicide

    Replace it with worker.exitedAfterDisconnect. Print deprecation
    message when getting or setting until it is removed.
    PR-URL: nodejs#3743
    Fixes: nodejs#3721
    Reviewed-By: James M Snell <>
    Reviewed-By: Сковорода Никита Андреевич <>
    Reviewed-By: Anna Henningsen <>
    Reviewed-By: Myles Borins <>
    Reviewed-By: Stephen Belanger <>
    evanlucas committed Nov 10, 2015
Commits on Apr 25, 2016
  1. handle_wrap: IsRefed -> Unrefed, no isAlive check

    This fixes my perceived usability issues with 7d8882b. Which, at the
    time of writing, has not landed in any release except v6 RCs. This
    should not be considered a breaking change due to that.
    It is useful if you have a handle, even if it has been closed, to be
    able to inspect whether that handle was unrefed or not. As such, this
    renames the method accordingly. If people need to check a handle's
    aliveness, that is a separate API we should consider exposing.
    Refs: nodejs#5834
    PR-URL: nodejs#6204
    Reviewed-By: James M Snell <>
    Reviewed-By: Trevor Norris <>
    Fishrock123 committed Apr 14, 2016
  2. url: drop auth in `url.resolve()` if host changes

    Fixes: nodejs#1435
    PR-URL: nodejs#1480
    Reviewed-By: James M Snell <>
    Reviewed-By: Brian White <>
    rlidwka committed with jasnell Apr 20, 2015
  3. repl: don’t complete expressions when eval fails

    Instead of changing the way “simple” expressions are detected,
    switch to ignoring errors when completing. This approach is more
    generic than the previous one from 0b66b8f, but also changes
    the way errors are thrown when completing.
    This reverts the code changes from commit 0b66b8f.
    The test case is left intact.
    Fixes: nodejs#6325
    PR-URL: nodejs#6328
    Reviewed-By: James M Snell <>
    Reviewed-By: Colin Ihrig <>
    addaleax committed with jasnell Apr 21, 2016
  4. deps: upgrade to V8

    Pick up the latest bug fix from the V8 5.0 branch.
    Original commit message:
    V8-Commit: v8/v8@c1d51c7
      Version (cherry-pick)
      Merged 2837cb387
      disallow left-trim fast path when sampling heap profiler is active
      Review URL: .
    PR-URL: nodejs#6372
    Reviewed-By: Colin Ihrig <>
    Reviewed-By: Anna Henningsen <>
    Reviewed-By: James M Snell <>
    Reviewed-By: Fedor Indutny <>
    Reviewed-By: Michaël Zasso <>
    ofrobots committed with jasnell Apr 25, 2016
  5. module: preserve symlinks when requiring

    Currently, required modules use the real location of the
    package/file as their __filename and __dirname, instead
    of the symlinked path if it exists. This behaviour is
    undocumented (it even goes against documentation in
    certain scenarios), creating hard-to-debug problems
    for developers who wish to leverage filesystem abstractions
    to lay out their application.
    This patch resolves all required modules to their canonical
    path while still preserving any symlinks within the path,
    instead of resolving to their canonical realpath. The one
    special case observed is when the main module is loaded
    -- in this case, the realpath does need to be used
    in order for the main module to load properly.
    PR-URL: nodejs#5950
    Reviewed-By: James M Snell <>
    lamara committed with jasnell Mar 30, 2016
  6. doc: doc-only deprecation for util.log()

    There are more powerful loggers in user land like `debug`, soft
    deprecate it.
    PR-URL: nodejs#6161
    Reviewed-By: James M Snell <>
    Reviewed-By: Brian White <>
    Reviewed-By: Evan Lucas <>
    JacksonTian committed with jasnell Apr 12, 2016
  7. console: timeEnd() with no label emits warning

    When timeEnd() provided with label that doesn't exists
    it emits warning in the console, so developer get know about it.
    PR-URL: nodejs#5901
    Reviewed-By: Colin Ihrig <>
    Reviewed-By: James M Snell <>
    Reviewed-By: Sakthipriyan Vairamani <>
    ghaiklor committed with jasnell Apr 21, 2016
  8. buffer: add Buffer.prototype.lastIndexOf()

    * Remove unnecessary templating from SearchString
      SearchString used to have separate PatternChar and SubjectChar template type
      arguments, apparently to support things like searching for an 8-bit string
      inside a 16-bit string or vice versa. However, SearchString is only used from, where PatternChar and SubjectChar are always the same. Since
      this is extra complexity that's unused and untested (simplifying to a single
      Char template argument still compiles and didn't break any unit tests), I
      removed it.
    * Use Boyer-Hoore[-Horspool] for both indexOf and lastIndexOf
      Add test cases for lastIndexOf. Test the fallback from BMH to
      Boyer-Moore, which looks like it was totally untested before.
    * Extra bounds checks in
    * Extra asserts in string_search.h
    * Buffer.lastIndexOf: clean up, enforce consistency w/ String.lastIndexOf
    * Polyfill memrchr(3) for non-GNU systems
    PR-URL: nodejs#4846
    Reviewed-By: James M Snell <>
    Reviewed-By: Trevor Norris <>
    dcposch committed with jasnell Jan 28, 2016
  9. querystring: fix comments

    PR-URL: nodejs#6365
    Reviewed-By: Colin Ihrig <>
    Reviewed-By: Michaël Zasso <>
    Reviewed-By: Evan Lucas <>
    mscdex committed Apr 25, 2016
  10. src: fix linter errors

    This patch fixes all the linter errors.
    PR-URL: nodejs#6105
    Reviewed-By: Ben Noordhuis <>
    Reviewed-By: Fedor Indutny <>
    Reviewed-By: James M Snell <>
    thefourtheye committed Apr 7, 2016
  11. tools: rewrite in python

    As it is, does not show more helpful error messages,
    and supporting various shells could be a problem. This patch rewrites
    the same in Python.
    This patch also enables in the linting process
    PR-URL: nodejs#6105
    Reviewed-By: Ben Noordhuis <>
    Reviewed-By: Fedor Indutny <>
    Reviewed-By: James M Snell <>
    thefourtheye committed Apr 7, 2016
  12. test: increase the platform timeout for AIX

    There have been failures on AIX due to the slower
    default loopback performance. So far I've resisted
    updating the global timeout but seeing another
    new failure in a newly added test I now think the
    right thing is to just extend the platform
    timeout for AIX. This commit does that.
    PR-URL: nodejs#6342
    Reviewed-By: James M Snell <>
    Reviewed-By: Jeremiah Senkpiel <>
    mhdawson committed Apr 21, 2016
Commits on Apr 24, 2016
  1. gyp: inherit parent for `*.host`

    Gyp defaults to gcc/g++ if is unset. This is not
    suitable for environments that only uses the clang toolchain.
    Since we already assume that the user will provide clang/clang++
    through CC/CXX, lean against it (then drop to gcc/g++).
    Also apply the same logic for link/ar for consistency although
    it doesn't affect us.
    PR-URL: nodejs#6173
    Fixes: nodejs#6152
    Reviewed-By: João Reis <>
    Reviewed-By: Ben Noordhuis <>
    jbergstroem committed Apr 13, 2016
Commits on Apr 23, 2016
  1. doc: fix broken references

    PR-URL: nodejs#6350
    Reviewed-By: James M Snell <>
    Reviewed-By: Colin Ihrig <>
    Reviewed-By: Minwoo Jung <>
    gromnitsky committed with jasnell Apr 22, 2016
Commits on Apr 22, 2016
  1. v8: warn in Template::Set() on improper use

    The next major release will make it a fatal error to use non-primitive
    values in function templates and object templates.
    Print a warning that includes the C and JS stack trace to tell people to
    upgrade their add-ons.  The C stack trace is only printed on platforms
    that support it (the BSDs, OS X and Linux+glibc.)
    The warning can be disabled with the new `--nowarn_template_set` flag.
    Refs: nodejs#6216
    PR-URL: nodejs#6277
    Reviewed-By: James M Snell <>
    bnoordhuis committed Apr 19, 2016
  2. tools: enforce deepStrictEqual over deepEqual

    Introduce a lint rule that enforces use of `assert.deepStrictEqual()`
    over `assert.deepEqual()`.
    PR-URL: nodejs#6213
    Reviewed-By: James M Snell <>
    Reviewed-By: Colin Ihrig <>
    Trott committed Apr 19, 2016
  3. test,benchmark: use deepStrictEqual()

    In preparation for a lint rule that will enforce
    assert.deepStrictEqual() over assert.deepEqual(), change tests and
    benchmarks accordingly. For tests and benchmarks that are testing or
    benchmarking assert.deepEqual() itself, apply a comment to ignore the
    upcoming rule.
    PR-URL: nodejs#6213
    Reviewed-By: James M Snell <>
    Reviewed-By: Colin Ihrig <>
    Trott committed Apr 19, 2016
  4. src: squelch -Wunused-variable in non-icu builds

    Silence the following compiler warning when building without ICU:
        ../src/ warning: unused variable 'env'
           Environment* env = Environment::GetCurrent(context);
    PR-URL: nodejs#6351
    Reviewed-By: James M Snell <>
    bnoordhuis committed Apr 22, 2016
  5. build: update android-configure script for npm

    Now, that we can cross-compile node for Android, we also need to take
    care of native node modules installed with npm. Since there is no way to
    install and run npm on an Android device, we could instal node on host
    and setup an environment for installing node modules and cross-compile
    the native sources using Android NDK.
    The changes to this script will allow npm, when installing a module, to
    compile it using NDK.
    In order to do this, the developer should do the following steps:
    1. Compile and install node on host, using: configure, make and make
    2. Build node for Android, using: source android-configure <path_to_ndk>
    arch and make
    3. Push node binary to Android device
    4. Using the same session, configure npm arch using: npm config set
    5. Install desired node modules using: npm install
    6. Push installed node modules to Android device
    Signed-off-by: Robert Chiras <>
    PR-URL: nodejs#6349
    Reviewed-By: Ben Noordhuis <>
    robertchiras committed with bnoordhuis Apr 22, 2016
  6. doc: add note for platform specific flags ``

    Note describing platform specific differences in
    E.g.'<directory>', 'a+', console.log)
    Fixes: nodejs#3643
    PR-URL: nodejs#6136
    Reviewed-By: Roman Reiss <>
    Reviewed-By: Benjamin Gruenbaum <>
    Reviewed-By: James M Snell <>
    eljefedelrodeodeljefe committed with jasnell Apr 21, 2016
  7. src: fix out-of-bounds write in TwoByteValue

    Plan 2 bytes instead of 1 byte for the final zero terminator
    for UTF-16. This is unlikely to cause real-world problems,
    but that ultimately depends on the `malloc` implementation.
    The issue can be uncovered by running e.g.
    `valgrind node -e "Buffer(65536).fill('a'.repeat(4096), 'utf16le')"`
    Reviewed-By: James M Snell <>
    Reviewed-By: Ben Noordhuis <>
    PR-URL: nodejs#6330
    addaleax committed Apr 21, 2016
  8. events: add prependListener() and prependOnceListener()

    A handful of modules (including readable-streams) make
    inappropriate use of the internal _events property. One
    such use is to prepend an event listener to the front
    of the array of listeners.
    This adds EE.prototype.prependListener() and
    EE.prototype.prependOnceListener() methods to add handlers
    to the *front* of the listener array.
    Doc update and test case is included.
    Fixes: nodejs#1817
    PR-URL: nodejs#6032
    Reviewed-By: Сковорода Никита Андреевич <>
    Reviewed-By: Brian White <>
    jasnell committed Apr 4, 2016
  9. doc: improvements to child_process, process docs

    Sort links in lexical order. Add missing links.
    Add `disconnect` event description in Process doc.
    Fix typos.
    R-URL: nodejs#5075
    Reviewed-By: James M Snell <>
    Reviewed-By: Robert Jefe Lindstädt <>
    Reviewed-By: Roman Reiss <>
    estliberitas committed with jasnell Feb 18, 2016
  10. doc: fix a typo in the

    Delete a typo dot in the link to stability index.
    PR-URL: nodejs#6343
    Reviewed-By: Myles Borins <>
    Reviewed-By: Rich Trott <>
    Reviewed-By: Minwoo Jung <>
    vsemozhetbyt committed with jasnell Apr 22, 2016
  11. test: add tests for console.assert

    There were previously no tests where console.assert failed
    PR-URL: nodejs#6302
    Reviewed-By: Santiago Gimeno <>
    Reviewed-By: Colin Ihrig <>
    Reviewed-By: Brian White <>
    Reviewed-By: Rich Trott <>
    evanlucas committed with jasnell Apr 20, 2016
  12. doc: add vm example, be able to require modules

    The intention behind is to present the user a way to
    execute code in a vm context. The current API doesn't
    allow this out-of-the-box, since it is neither passing a require
    function nor creating context with one.
    The missing docs for this behaviour have produced a number of
    Q&A items and have also been discussed in the node-archive repo.
    In both cases there was no real canonical answer.
    Refs: nodejs/node-v0.x-archive#9211, #4955
    PR-URL: nodejs#5323
    Reviewed-By: James M Snell <>
    Reviewed-By: Stephen Belanger <>
    Reviewed-By: Myles Borins <>
    Reviewed-By: Sakthipriyan Vairamani <>
    Reviewed-By: Benjamin Gruenbaum <>
    eljefedelrodeodeljefe committed with jasnell Apr 21, 2016
Commits on Apr 21, 2016
  1. cares: Support malloc(0) scenarios for AIX

    Many places in cares library, when the stream data arrives
    from the network with respect to dns and reverse dns
    resolution, they are populated into data structures created
    dymaically based on the size of the data. Malloc is heavily
    used for such cases.
    Often, based on the data length, malloc(0) is invoked. Linux
    behavior on zero byte allocation is to return a valid pointer
    where in AIX, it always return NULL.
    This manifestst as test failure of test/internet/test-dns.js
    Solution is to build cares with Linux compatible malloc behavior
    PR-URL: nodejs#6305
    Reviewed-By: James M Snell <>
    Reviewed-By: Ben Noordhuis <>
    Reviewed-by: Michael Dawson <>
    gireeshpunathil committed with mhdawson Apr 20, 2016
  2. 2016-04-20, Version 5.11.0 (Stable) Release

      * can now compare sub-ranges of two Buffers
       (James M Snell) nodejs#5880
      * update to http-parser 2.7.0
        (Fedor Indutny) nodejs#6279
      * update ESLint to 2.7.0
        (silverwind) nodejs#6132
      * adds support for passing DNS lookup hints to createConnection()
        (Colin Ihrig) nodejs#6000
      * Make the builtin libraries available for the --eval and --print
        CLI options
        (Anna Henningsen) nodejs#6207
      * upgrade npm to 3.8.6
        (Kat Marchán) nodejs#6153
      * Pressing enter in the repl will repeat the last command by default
        if no input has been received. This behaviour was in node
        previously and was not removed intentionally.
        (Rich Trott) nodejs#6090
      * add SIGINFO to supported signals
        (James Reggio) nodejs#6093
      * Fix a regression that caused by net streams requesting multiple
        chunks synchronously when combined with cork/uncork
        (Matteo Collina) nodejs#6164
      * The flushing flag is now configurable allowing for decompression
        of partial data
        (Anna Henningsen) nodejs#6069
    PR-URL: nodejs#6322
    TheAlphaNerd committed Apr 20, 2016
  3. events: make eventNames() use Reflect.ownKeys()

    Use `Reflect.ownKeys()` instead of `Object.keys()` and
    PR-URL: nodejs#5822
    Reviewed-By: James M Snell <>
    Reviewed-By: Colin Ihrig <>
    lpinca committed with jasnell Mar 21, 2016
  4. src: add intl and icu configs to process.binding('config')

    PR-URL: nodejs#6266
    Reviewed-By: Ben Noordhuis <>
    jasnell committed Apr 19, 2016
  5. src: add process.binding('config')

    It turns out that userland likes to override process.config with
    their own stuff. If we want to be able to depend on it in any way,
    we need our own internal mechanism.
    This adds a new private process.binding('config') that is
    intended to serve as a container for internal flags and compile
    time configs that need to be passed on to the JS layer.
    PR-URL: nodejs#6266
    Reviewed-By: Ben Noordhuis <>
    jasnell committed Apr 19, 2016
  6. doc: note that process.config can and will be changed

    PR-URL: nodejs#6266
    Reviewed-By: Ben Noordhuis <>
    jasnell committed Apr 19, 2016
  7. deps: upgrade to V8

    Pick up the latest bug fix from the V8 5.0 branch.
    Original commit message:
    V8-Commit: v8/v8@c36773f
      Version (cherry-pick)
      Merged 9acbca1
      [es6] Fix bug in pattern re-writing
      Review URL: .
    PR-URL: nodejs#6320
    Reviewed-By: cjihrig - Colin Ihrig <>
    Reviewed-By: jasnell - James M Snell <>
    Reviewed-By: targos - Michaël Zasso <>
    ofrobots committed Apr 21, 2016