platform/upstream/nodejs.git
9 years agotest: test sync version of mkdir & rmdir
Sakthipriyan Vairamani [Fri, 28 Aug 2015 01:31:11 +0000 (07:01 +0530)]
test: test sync version of mkdir & rmdir

This patch includes tests for sync versions of mkdir and rmdir.
Also, it moves the test to `parallel`.

PR-URL: https://github.com/nodejs/node/pull/2588
Reviewed-By: Roman Reiss <me@silverwind.io>
Reviewed-By: Johan Bergström <bugs@bergstroem.nu>
9 years agodeps: backport ff7d70b from V8's upstream
Julien Gilli [Sun, 20 Sep 2015 22:42:08 +0000 (15:42 -0700)]
deps: backport ff7d70b from V8's upstream

Original commit message:

  Update BitField3 type in gen-postmortem-metadata.py

  Since https://codereview.chromium.org/272163002, BitField3 is a raw
  uint32 field, and not a SMI anymore.

  Update tools/gen-postmortem-metadata.py so that post-mortem tools can
  work with versions of V8 that shipped after that change.

  This change was merged in github.com/joyent/node right before node
  v0.12.0 was released.

  R=danno@chromium.org

  TEST=mdb_v8, a post-mortem debugging tool running on SmartOS,  has been
  using this change since Node.js v0.12.0 was released

  BUG=

  Review URL: https://codereview.chromium.org/1296743003

  Cr-Commit-Position: refs/heads/master@{#30839}

PR: #2959
PR-URL: https://github.com/nodejs/node/pull/2959
Reviewed-By: Ali Ijaz Sheikh <ofrobots@google.com>
Reviewed-By: Rod Vagg <r@va.gg>
9 years agotools: single, cross-platform tick processor
Matt Loring [Mon, 14 Sep 2015 22:28:27 +0000 (15:28 -0700)]
tools: single, cross-platform tick processor

Currently there are three separate tick processor scripts for
mac, windows, and linux. These have been replaced with a single
node.js script to improve maintainability and remove the need
to preserve parallel logic in these separate places.

PR-URL: https://github.com/nodejs/node/pull/2868
Reviewed-By: Ben Noordhuis <info@bnoordhuis.nl>
Reviewed-By: Sakthipriyan Vairamani <thechargingvolcano@gmail.com>
9 years agodeps: upgraded to node-gyp@3.0.3 in npm
Kat Marchán [Sat, 19 Sep 2015 01:09:51 +0000 (18:09 -0700)]
deps: upgraded to node-gyp@3.0.3 in npm

PR-URL: https://github.com/nodejs/node/pull/2958
Reviewed-By: Sakthipriyan Vairamani <thechargingvolcano@gmail.com>
Reviewed-By: Jeremiah Senkpiel <fishrock123@rocketmail.com>
9 years agodeps: upgrade to npm 2.14.4
Kat Marchán [Fri, 18 Sep 2015 21:41:44 +0000 (14:41 -0700)]
deps: upgrade to npm 2.14.4

PR-URL: https://github.com/nodejs/node/pull/2958
Reviewed-By: Sakthipriyan Vairamani <thechargingvolcano@gmail.com>
Reviewed-By: Jeremiah Senkpiel <fishrock123@rocketmail.com>
9 years agotest: use tmpDir instead of fixtures in readdir
Sakthipriyan Vairamani [Fri, 28 Aug 2015 01:17:10 +0000 (06:47 +0530)]
test: use tmpDir instead of fixtures in readdir

This patch

 - makes the test use tmp directory instead of the fixtures directory,
 - simplifies the code
 - moves the test to `parallel`.

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

Reviewed-By: Rich Trott <rtrott@gmail.com>
9 years agohttp_parser: do not dealloc during kOnExecute
Fedor Indutny [Fri, 18 Sep 2015 19:15:39 +0000 (12:15 -0700)]
http_parser: do not dealloc during kOnExecute

`freeParser` deallocates `Parser` instances early if they do not fit
into the free list. This does not play well with recent socket
consumption change, because it will try to deallocate the parser while
executing on its stack.

Regression was introduced in: 1bc4468

Fix: https://github.com/nodejs/node/issues/2928
PR-URL: https://github.com/nodejs/node/pull/2956
Reviewed-by: Trevor Norris <trev.norris@gmail.com>
9 years agodoc: clarify description of assert.ifError()
Rich Trott [Fri, 18 Sep 2015 06:17:15 +0000 (23:17 -0700)]
doc: clarify description of assert.ifError()

This fixes a few typographical errors (comma splices and the like) and
clarifies the description of assert.ifError(). It also standardizes the
document on "inequality" rather than having both "inequality" and "non-
equality".

PR-URL: https://github.com/nodejs/node/pull/2941
Reviewed-By: Michaël Zasso <mic.besace@gmail.com>
Reviewed-By: Sakthipriyan Vairamani <thechargingvolcano@gmail.com>
9 years agohttp: guard against response splitting in trailers
Ben Noordhuis [Fri, 18 Sep 2015 03:06:35 +0000 (05:06 +0200)]
http: guard against response splitting in trailers

Commit 3c293ba ("http: protect against response splitting attacks")
filters out newline characters from HTTP headers but forgot to apply
the same logic to trailing HTTP headers, i.e., headers that come after
the response body.  This commit rectifies that.

The expected security impact is low because approximately no one uses
trailing headers.  Some HTTP clients can't even parse them.

PR-URL: https://github.com/nodejs/node/pull/2945
Reviewed-By: Сковорода Никита Андреевич <chalkerx@gmail.com>
Reviewed-By: Rod Vagg <r@va.gg>
9 years agotest: test more http response splitting scenarios
Ben Noordhuis [Fri, 18 Sep 2015 02:25:28 +0000 (04:25 +0200)]
test: test more http response splitting scenarios

The test verified the output of http.OutgoingMessage#writeHead() but
not http.OutgoingMessage#setHeader().  Also check the response body.

PR-URL: https://github.com/nodejs/node/pull/2945
Reviewed-By: Сковорода Никита Андреевич <chalkerx@gmail.com>
Reviewed-By: Rod Vagg <r@va.gg>
9 years agotest: add test-spawn-cmd-named-pipe
Alexis Campailla [Wed, 9 Sep 2015 13:19:24 +0000 (15:19 +0200)]
test: add test-spawn-cmd-named-pipe

Adding a Windows test to verify that a node process spawned via
cmd with named pipes can access its stdio streams.

Ref: https://github.com/nodejs/node-v0.x-archive/issues/7345

PR-URL: https://github.com/nodejs/node/pull/2770
Reviewed-By: cjihrig - Colin Ihrig <cjihrig@gmail.com>
Reviewed-By: thefourtheye - Sakthipriyan Vairamani <thechargingvolcano@gmail.com>
Reviewed-By: evanlucas - Evan Lucas <evanlucas@me.com>
9 years agoreadline: fix tab completion bug
Matt Harrison [Fri, 11 Sep 2015 14:47:41 +0000 (15:47 +0100)]
readline: fix tab completion bug

This fixes a problem where tab completion is empty when the input
stream column size is undefined. As a solution we can force maxColumns
to 1 in this scenario.

PR-URL: https://github.com/nodejs/node/pull/2816
Fixes: https://github.com/nodejs/node/issues/2396
Reviewed-By: Roman Reiss <me@silverwind.io>
9 years agobuffer: don't set zero fill for zero-length buffer
Trevor Norris [Thu, 17 Sep 2015 16:48:16 +0000 (10:48 -0600)]
buffer: don't set zero fill for zero-length buffer

Instantiating a Buffer of length zero would set the kNoZeroFill flag to
true but never actually call ArrayBuffer::Allocator(). Which means the
flag was never set back to false. The result was that the next
allocation would unconditionally not be zero filled.

Add test to ensure Uint8Array's are zero-filled after creating a Buffer
of length zero. This test may falsely succeed, but will not falsely fail.

Fix: https://github.com/nodejs/node/issues/2930
PR-URL: https://github.com/nodejs/node/pull/2931
Reviewed-By: Rod Vagg <rod@vagg.org>
9 years agodoc: refine process.kill() and exit explanations
Rich Trott [Wed, 16 Sep 2015 21:31:42 +0000 (14:31 -0700)]
doc: refine process.kill() and exit explanations

Add corrections about when exit event fires and how .kill() works on
Windows.

PR-URL: https://github.com/nodejs/node/pull/2918
Reviewed-By: Sam Roberts <vieuxtech@gmail.com>
9 years agosrc: honor --abort_on_uncaught_exception flag
Evan Lucas [Wed, 16 Sep 2015 17:44:28 +0000 (12:44 -0500)]
src: honor --abort_on_uncaught_exception flag

Fix regression introduced in 0af4c9ea7434e4f505dbe071357e4bc3b4ab2a8a
that ignores the --abort-on-uncaught-exception flag. Prior to that
commit, the flag was passed through to v8. After that commit, the
process just calls exit(1).

PR-URL: https://github.com/nodejs/node/pull/2776
Reviewed-By: Sakthipriyan Vairamani <thechargingvolcano@gmail.com>
Reviewed-By: Colin Ihrig <cjihrig@gmail.com>
Reviewed-By: Brian White <mscdex@mscdex.net>
Reviewed-by: Trevor Norris <trev.norris@gmail.com>
9 years agosrc: Add ABORT macro
Evan Lucas [Wed, 16 Sep 2015 15:12:41 +0000 (10:12 -0500)]
src: Add ABORT macro

Windows 8+ compiled in Release mode exits with code 0xC0000409 when
abort() is called. This prevents us from being able to reliably verify
an abort exit code (3) on windows.

PR-URL: https://github.com/nodejs/node/pull/2776
Reviewed-By: Sakthipriyan Vairamani <thechargingvolcano@gmail.com>
Reviewed-By: Colin Ihrig <cjihrig@gmail.com>
Reviewed-By: Brian White <mscdex@mscdex.net>
Reviewed-by: Trevor Norris <trev.norris@gmail.com>
9 years agobuild: fix icutrim when building small-icu on BE
Stewart Addison [Fri, 28 Aug 2015 17:05:57 +0000 (18:05 +0100)]
build: fix icutrim when building small-icu on BE

Fix a build error that occurs when icutrim is run to cut down
the ICU locale set on Big-Endian platforms when building with
--with-intl=small-icu (which is done by the "make binary" target).
This fixes the binary build on POWER platforms.

Fixes: https://github.com/nodejs/node/issues/2601
PR-URL: https://github.com/nodejs/node/pull/2602
Reviewed-By: Steven Loomis <srloomis@us.ibm.com>
9 years agotest: make cluster tests more time tolerant
Michael Dawson [Tue, 15 Sep 2015 21:54:20 +0000 (17:54 -0400)]
test: make cluster tests more time tolerant

Port https://github.com/nodejs/node-v0.x-archive/commit/f3f4e282168d243610f8e0241d633ff941c9c260
to master, updating to guard changes for AIX as requested

PR-URL: https://github.com/nodejs/node/pull/2891
Reviewed-By: Rich Trott <rtrott@gmail.com>
Reviewed-By: Jeremiah Senkpiel <fishrock123@rocketmail.com>
9 years agotest: update cwd-enoent tests for AIX
Imran Iqbal [Wed, 16 Sep 2015 15:36:55 +0000 (11:36 -0400)]
test: update cwd-enoent tests for AIX

On AIX you can not remove a directory that you are currently inside of
as it results in an EBUSY error. "EBUSY: resource busy or locked".
Updated the tests accordingly so that they are skipped on AIX.

PR-URL: https://github.com/nodejs/node/pull/2909
Reviewed-By: Ben Noordhuis <ben@strongloop.com>
Reviewed-By: Michael Dawson <michael_dawson@ca.ibm.com>
9 years agoWorking on v4.1.1
Jeremiah Senkpiel [Tue, 15 Sep 2015 20:48:35 +0000 (16:48 -0400)]
Working on v4.1.1

Refs: https://github.com/nodejs/node/issues/2844
PR-URL: https://github.com/nodejs/node/pull/2889

9 years ago2015-09-17, Version 4.1.0 (Stable) Release v4.1.0
Jeremiah Senkpiel [Tue, 15 Sep 2015 20:47:47 +0000 (16:47 -0400)]
2015-09-17, Version 4.1.0 (Stable) Release

Notable changes:

* buffer:
  - Buffers are now created in JavaScript, rather than C++. This increases the speed of buffer creation (Trevor Norris) https://github.com/nodejs/node/pull/2866.
  - `Buffer#slice()` now uses `Uint8Array#subarray()` internally, increasing `slice()` performance (Karl Skomski) https://github.com/nodejs/node/pull/2777.
* fs:
  - `fs.utimes()` now properly converts numeric strings, `NaN`, and `Infinity` (Yazhong Liu) https://github.com/nodejs/node/pull/2387.
  - `fs.WriteStream` now implements `_writev`, allowing for super-fast bulk writes (Ron Korving) https://github.com/nodejs/node/pull/2167.
* http: Fixed an issue with certain `write()` sizes causing errors when using `http.request()` (Fedor Indutny) https://github.com/nodejs/node/pull/2824.
* npm: Upgrade to version 2.14.3, see https://github.com/npm/npm/releases/tag/v2.14.3 for more details (Kat Marchán) https://github.com/nodejs/node/pull/2822.
* src: V8 cpu profiling no longer erroneously shows idle time (Oleksandr Chekhovskyi) https://github.com/nodejs/node/pull/2324.
* v8: Lateral upgrade to 4.5.103.33 from 4.5.103.30, contains minor fixes (Ali Ijaz Sheikh) https://github.com/nodejs/node/pull/2870.
  - This fixes a previously known bug where some computed object shorthand properties did not work correctly (https://github.com/nodejs/node/issues/2507).

Refs: https://github.com/nodejs/node/issues/2844
PR-URL: https://github.com/nodejs/node/pull/2889

9 years agodeps: backport 6d32be2 from v8's upstream
Michaël Zasso [Wed, 16 Sep 2015 19:00:32 +0000 (21:00 +0200)]
deps: backport 6d32be2 from v8's upstream

Original commit message:

    [es6] Bound function name

    Instead of updating the SharedFuntionInfo set the name property on
    the function directly.

    BUG=v8:4278
    LOG=N
    R=verwaest@chromium.org, littledan@chromium.org
    CQ_INCLUDE_TRYBOTS=tryserver.chromium.linux:linux_chromium_rel_ng;tryserver.blink:linux_blink_rel

    Review URL: https://codereview.chromium.org/1227523003

    Cr-Commit-Position: refs/heads/master@{#29558}

Fixes: https://github.com/nodejs/node/issues/2754
PR-URL: https://github.com/nodejs/node/pull/2916
Reviewed-By: Fedor Indutny <fedor@indutny.com>
Reviewed-By: Trevor Norris <trev.norris@gmail.com>
Reviewed-By: Ben Noordhuis <info@bnoordhuis.nl>
9 years agodeps: backport 0d01728 from v8's upstream
Fedor Indutny [Wed, 16 Sep 2015 17:57:30 +0000 (10:57 -0700)]
deps: backport 0d01728 from v8's upstream

Original commit message:

    [objects] do not visit ArrayBuffer's backing store

    ArrayBuffer's backing store is a pointer to external heap, and
    can't be treated as a heap object. Doing so will result in
    crashes, when the backing store is unaligned.

    See: https://github.com/nodejs/node/issues/2791

    BUG=chromium:530531
    R=mlippautz@chromium.org
    LOG=N

    Review URL: https://codereview.chromium.org/1327403002

    Cr-Commit-Position: refs/heads/master@{#30771}

Fix: https://github.com/nodejs/node/issues/2791
PR-URL: https://github.com/nodejs/node/pull/2912
Reviewed-By: Jeremiah Senkpiel <fishrock123@rocketmail.com>
Reviewed-By: Trevor Norris <trev.norris@gmail.com>
Reviewed-By: Ben Noordhuis <info@bnoordhuis.nl>
9 years agotest: use tmp directory in chdir test
Sakthipriyan Vairamani [Fri, 28 Aug 2015 01:50:39 +0000 (07:20 +0530)]
test: use tmp directory in chdir test

This patch

 - makes chdir test to use the tmp directory
 - moves the test to parallel
 - renames the file to test-process-chdir as chdir is in process module

PR-URL: https://github.com/nodejs/node/pull/2589
Reviewed-By: Brendan Ashworth <brendan.ashworth@me.com>
Reviewed-By: Rich Trott <rtrott@gmail.com>
9 years agodoc: process exit event is not guaranteed to fire
Rich Trott [Mon, 14 Sep 2015 17:28:02 +0000 (10:28 -0700)]
doc: process exit event is not guaranteed to fire

This change:

* notes that the exit event is not guaranteed to fire
* provides an example situation where the exit event may not fire
* makes a minor copyediting change
* enforces 80 character wrap in one place where it was not honored

Fixes: https://github.com/nodejs/node/issues/2853
PR-URL: https://github.com/nodejs/node/pull/2861
Reviewed-By: Ben Noordhuis <info@bnoordhuis.nl>
9 years agotest: fix Buffer OOM error message
Trevor Norris [Wed, 16 Sep 2015 19:03:33 +0000 (13:03 -0600)]
test: fix Buffer OOM error message

Now that Buffers instantiate the Uint8Array in JS the error message has
changed in case the allocation fails due to OOM. Tests have been updated
to match.

PR-URL: https://github.com/nodejs/node/pull/2915
Reviewed-By: Jeremiah Senkpiel <fishrock123@rocketmail.com>
Reviewed-By: Michaël Zasso <mic.besace@gmail.com>
9 years agosrc: null env_ field from constructor
Trevor Norris [Wed, 16 Sep 2015 18:00:50 +0000 (12:00 -0600)]
src: null env_ field from constructor

The env_ field in ArrayBufferAllocator needs to be null'd out since it
is used during initialization and checked prior to properly being set by
set_env().

Fixes: 74178a5 "buffer: construct Uint8Array in JS"
PR-URL: https://github.com/nodejs/node/pull/2913
Reviewed-By: Fedor Indutny <fedor@indutny.com>
9 years agodoc: remove incorrect reference to TCP in net docs
Sam Roberts [Sun, 13 Sep 2015 16:03:41 +0000 (17:03 +0100)]
doc: remove incorrect reference to TCP in net docs

createServer() can create socket of types other than TCP.

PR-URL: https://github.com/nodejs/node/pull/2903
Reviewed-By: Colin Ihrig <cjihrig@gmail.com>
9 years agodoc: correct buffer.slice arg syntax
Sam Roberts [Sun, 13 Sep 2015 13:02:01 +0000 (14:02 +0100)]
doc: correct buffer.slice arg syntax

PR-URL: https://github.com/nodejs/node/pull/2903
Reviewed-By: Colin Ihrig <cjihrig@gmail.com>
9 years agodoc: describe spawn option.detached
Sam Roberts [Sun, 13 Sep 2015 12:37:14 +0000 (13:37 +0100)]
doc: describe spawn option.detached

PR-URL: https://github.com/nodejs/node/pull/2903
Reviewed-By: Colin Ihrig <cjihrig@gmail.com>
9 years agotimer: ref/unref return self
Sam Roberts [Sun, 13 Sep 2015 15:21:51 +0000 (16:21 +0100)]
timer: ref/unref return self

Most calls to ref() and unref() are chainable, timers should be
chainable, too.

Typical use:

    var to = setTimeout(ontimeout, 123).unref();

PR-URL: https://github.com/nodejs/node/pull/2905
Reviewed-By: Jeremiah Senkpiel <fishrock123@rocketmail.com>
Reviewed-By: Colin Ihrig <cjihrig@gmail.com>
Reviewed-By: Trevor Norris <trevnorris@nodejs.org>
9 years agobuffer: always allocate typed arrays outside heap
Trevor Norris [Wed, 16 Sep 2015 04:14:18 +0000 (22:14 -0600)]
buffer: always allocate typed arrays outside heap

By default v8 allocates typed arrays <= 64 bytes inside the v8 heap. In
these cases the memory pointer returned by Buffer::Data() can change
while the memory is being operated on. Resolve by passing a flag that
forces all typed arrays outside the v8 heap.

Fixes: 74178a5 "buffer: construct Uint8Array in JS"
PR-URL: https://github.com/nodejs/node/pull/2893
Reviewed-By: Fedor Indutny <fedor@indutny.com>
9 years agobuffer: construct Uint8Array in JS
Trevor Norris [Mon, 14 Sep 2015 22:31:10 +0000 (16:31 -0600)]
buffer: construct Uint8Array in JS

Overall construction time of Typed Arrays is faster in JS, but the
problem with using it normally is zero-fill of memory. Get around this
by using a flag in the ArrayBuffer::Allocator to trigger when memory
should or shouldn't be zero-filled.

Remove Buffer::Create() as it is no longer called.

The creation of the Uint8Array() was done at each callsite because at
the time of this patch there was a performance penalty for centralizing
the call in a single function.

PR-URL: https://github.com/nodejs/node/pull/2866
Reviewed-By: Fedor Indutny <fedor@indutny.com>
9 years agohttp: default Agent.getName to 'localhost'
Malcolm Ahoy [Fri, 11 Sep 2015 21:18:01 +0000 (14:18 -0700)]
http: default Agent.getName to 'localhost'

Refactor out the if/else statement checking for option.host.
Add whitespace to make concatenation chunks more readable and
consistent with the https version of Agent.getName().

PR-URL: https://github.com/nodejs/node/pull/2825
Reviewed-By: Julian Duque <julianduquej@gmail.com>
Reviewed-By: Rich Trott <rtrott@gmail.com>
9 years agosrc: use subarray() in Buffer#slice() for speedup
Karl Skomski [Wed, 9 Sep 2015 16:35:04 +0000 (18:35 +0200)]
src: use subarray() in Buffer#slice() for speedup

Use the built-in Typed Array method subarray() to improve performance of
Buffer#slice().

Benchmark improvements:

    benchmark/buffer-slice: 40%
    benchmark/buffer-creation (pool): 25%

Additional tests also added.

PR-URL: https://github.com/nodejs/node/pull/2777
Reviewed-By: Trevor Norris <trev.norris@gmail.com>
Reviewed-By: Сковорода Никита Андреевич <chalkerx@gmail.com>
9 years agotsc: adjust TSC membership for IBM+StrongLoop
James M Snell [Mon, 14 Sep 2015 16:01:50 +0000 (09:01 -0700)]
tsc: adjust TSC membership for IBM+StrongLoop

Following the IBM+StrongLoop announcement last week, we
(@piscisaureus, @bnoordhuis, @srl295, @mhdawson, and myself)
want to take a moment to reiterate our personal commitment
to Node.js and the Foundation.

Per the TSC rules, any one company is limited to no more than
1/4 of the voting seats on the TSC and after talking it over
amongst ourselves, @srl295 and @mhdawson have elected to step
back from the TSC for now.

What I would propose is that they continue to participate in the
weekly TSC meetings as observers; and that once the membership
expands, they be considered once again for full TSC status.

Both Steven and Michael will continue to be actively involved
with Node.js. Both are active members of various Working Groups.
(Michael chairs the Benchmarking workgroup and Steven chairs the
Intl workgroup.)

/cc @nodejs/tsc

Reviewed-By: Colin Ihrig <cjihrig@gmail.com>
Reviewed-By: Jeremiah Senkpiel <fishrock123@rocketmail.com>
Reviewed-By: Fedor Indutny <fedor@indutny.com>
Reviewed-By: Alexis Campailla <orangemocha@nodejs.org>
Reviewed-By: Rod Vagg <r@va.gg>
Reviewed-By: Trevor Norris <trevnorris@nodejs.org>
PR-URL: https://github.com/nodejs/node/pull/2858

9 years agodoc: rename from iojs(1) to node(1) in benchmarks
Dmitry Vasilyev [Tue, 15 Sep 2015 17:36:49 +0000 (22:36 +0500)]
doc: rename from iojs(1) to node(1) in benchmarks

Examples in the benchmark readme previously sill referenced iojs(1).

PR-URL: https://github.com/nodejs/node/pull/2884
Reviewed-By: Jeremiah Senkpiel <fishrock123@rocketmail.com>
9 years agodoc: add missing backtick in buffer.markdown
Sven Slootweg [Tue, 15 Sep 2015 17:16:22 +0000 (19:16 +0200)]
doc: add missing backtick in buffer.markdown

Fixes: https://github.com/nodejs/node/issues/2880
PR-URL: https://github.com/nodejs/node/pull/2881
Reviewed-By: Jeremiah Senkpiel <fishrock123@rocketmail.com>
9 years agobuild: Updates to enable AIX support
Michael Dawson [Wed, 12 Aug 2015 15:53:33 +0000 (11:53 -0400)]
build: Updates to enable AIX support

These are the core changes that allow AIX to compile.  There
are still some test failures as there are some patches needed for
libuv and npm that we'll need to contribute through those
communities but this set allows node to be built on AIX and
pass most of the core tests

The change in js2c is because AIX does not support $ in
identifier names.  See the discussion/agreement in
https://github.com/nodejs/node/issues/2272

PR-URL: https://github.com/nodejs/node/pull/2364
Reviewed-By: Ben Noordhuis <ben@strongloop.com>
Reviewed-By: Rod Vagg <r@va.gg>
9 years agodeps: upgrade V8 to 4.5.103.33
Ali Ijaz Sheikh [Tue, 15 Sep 2015 00:16:54 +0000 (17:16 -0700)]
deps: upgrade V8 to 4.5.103.33

This brings in the patches from 4.5.103.30...4.5.103.33 fixing the issue with
computed property names not working in nested literals.

Full V8 4.5 commit log at:
https://chromium.googlesource.com/v8/v8.git/+log/branch-heads/4.5

Fixes: https://github.com/nodejs/node/issues/2507
PR-URL: https://github.com/nodejs/node/pull/2870
Reviewed-By: indutny - Fedor Indutny <fedor.indutny@gmail.com>
Reviewed-By: targos - Michaël Zasso <mic.besace@gmail.com>
Reviewed-By: bnoordhuis - Ben Noordhuis <info@bnoordhuis.nl>
Reviewed-By: fishrock123 - Jeremiah Senkpiel <fishrock123@rocketmail.com>
9 years agotest: fix default value for additional param
Sakthipriyan Vairamani [Wed, 26 Aug 2015 09:52:43 +0000 (15:22 +0530)]
test: fix default value for additional param

In Python, the default values of parameters are evaluated only once
during their declaration. So, whenever the default parameter is used
the same object will be used. Since we use a list, which is a mutable
object, this could lead to unexpected results.

PR-URL: https://github.com/nodejs/node/pull/2553
Reviewed-By: Ben Noordhuis <info@bnoordhuis.nl>
9 years agotools: enable arrow functions in .eslintrc
Sakthipriyan Vairamani [Sat, 12 Sep 2015 20:42:39 +0000 (02:12 +0530)]
tools: enable arrow functions in .eslintrc

As of v8 4.5, arrow functions are rolled out. This patch allows eslint
to accept arrow functions as well.

PR-URL: #2840
Reviewed-By: Roman Reiss <me@silverwind.io>
Reviewed-By: Colin Ihrig <cjihrig@gmail.com>
9 years agobuild: clean up the generated tap file
Sakthipriyan Vairamani [Sat, 12 Sep 2015 19:56:33 +0000 (01:26 +0530)]
build: clean up the generated tap file

Make `make clean` cleanup the generated tap file as well.

Fixes: #2834

PR-URL: #2837
Reviewed-By: Johan Bergström <bugs@bergstroem.nu>
Reviewed-By: Ben Noordhuis <info@bnoordhuis.nl>
Reviewed-By: Rod Vagg <rod@vagg.org>
Reviewed-By: Alexis Campailla <orangemocha@nodejs.org>
9 years agotools: open `test.tap` file in write-binary mode
Sakthipriyan Vairamani [Sat, 12 Sep 2015 19:54:57 +0000 (01:24 +0530)]
tools: open `test.tap` file in write-binary mode

By default the logfile is opened in append mode. This commit makes sure
that the file is opened in write-binary mode, so that the file will be
created if it doesn't exist or overwrite if it exists.

Fixes: #2834

PR-URL: #2837
Reviewed-By: Johan Bergström <bugs@bergstroem.nu>
Reviewed-By: Ben Noordhuis <info@bnoordhuis.nl>
Reviewed-By: Rod Vagg <rod@vagg.org>
Reviewed-By: Alexis Campailla <orangemocha@nodejs.org>
9 years agostreams: refactor LazyTransform to internal/
Brendan Ashworth [Wed, 26 Aug 2015 21:41:28 +0000 (14:41 -0700)]
streams: refactor LazyTransform to internal/

This commit refactors LazyTransform from the crypto implementation
(lib/crypto.js) into an internal module (not publicy accessible) in
internal/streams/lazy_transform.js. This promotes a more modular core
design and removes code bloat in crypto, as LazyTransform didn't
specifically have anything to do with cryptography, but rather a fast
way to support two APIs on a stream.

PR-URL: https://github.com/nodejs/node/pull/2566
Reviewed-By: Fedor Indutny <fedor.indutny@gmail.com>
9 years agofs: consider NaN/Infinity in toUnixTimestamp
Yazhong Liu [Sat, 15 Aug 2015 16:30:31 +0000 (00:30 +0800)]
fs: consider NaN/Infinity in toUnixTimestamp

PR-URL: https://github.com/nodejs/node/pull/2387
Reviewed-By: Trevor Norris <trev.norris@gmail.com>
9 years agohttp_server: fix resume after socket close
Fedor Indutny [Fri, 11 Sep 2015 21:04:26 +0000 (14:04 -0700)]
http_server: fix resume after socket close

Socket resume may happen on a next tick, and in following scenario:

1. `socket.resume()`
2. `socket._handle.close()`
3. `socket._handle = null;`

The `_resume` will be invoked with empty `._handle` property. There is
nothing bad about it, and we should just ignore the `resume`/`pause`
events in this case.

Same applies to the unconsuming of socket on adding `data` and/or
`readable` event listeners.

Fix: https://github.com/nodejs/node/issues/2821

PR-URL: https://github.com/nodejs/node/pull/2824
Reviewed-By: Сковорода Никита Андреевич <chalkerx@gmail.com>
Reviewed-By: Colin Ihrig <cjihrig@gmail.com>
Reviewed-By: Jeremiah Senkpiel <fishrock123@rocketmail.com>
9 years agodeps: upgraded to node-gyp@3.0.3 in npm
Kat Marchán [Fri, 11 Sep 2015 19:01:42 +0000 (12:01 -0700)]
deps: upgraded to node-gyp@3.0.3 in npm

No more cherry-picked io patches. hooray.

PR-URL: https://github.com/nodejs/node/pull/2822
Reviewed-By: James M Snell <jasnell@gmail.com>
Reviewed-By: Jeremiah Senkpiel <fishrock123@rocketmail.com>
9 years agodeps: upgrade to npm 2.14.3
Kat Marchán [Fri, 11 Sep 2015 18:39:03 +0000 (11:39 -0700)]
deps: upgrade to npm 2.14.3

PR-URL: https://github.com/nodejs/node/pull/2822
Reviewed-By: James M Snell <jasnell@gmail.com>
Reviewed-By: Jeremiah Senkpiel <fishrock123@rocketmail.com>
9 years agofs: implemented WriteStream#writev
Ron Korving [Tue, 28 Jul 2015 05:59:35 +0000 (14:59 +0900)]
fs: implemented WriteStream#writev

Streams with writev allow many buffers to be pushed to underlying OS
APIs in one batch, in this case improving write throughput by an order
of magnitude. This is especially noticeable when writing many (small)
buffers.

PR-URL: https://github.com/nodejs/node/pull/2167
Reviewed-By: Trevor Norris <trev.norris@gmail.com>
9 years agotools: add missing tick processor polyfill
Matt Loring [Fri, 4 Sep 2015 19:01:07 +0000 (12:01 -0700)]
tools: add missing tick processor polyfill

The polyfill is only needed if incorrect command line arguments
are passed to the script so it was missed in initial testing.

PR-URL: https://github.com/nodejs/node/pull/2694
Reviewed-By: Ben Noordhuis <info@bnoordhuis.nl>
9 years agotools: fix flakiness in test-tick-processor
Matt Loring [Fri, 4 Sep 2015 18:49:36 +0000 (11:49 -0700)]
tools: fix flakiness in test-tick-processor

Per the discussion on #2471, the JS symbols checked for by this test
were occasionally too deep in the stack and were being ignored by the
tick processor.

I have addressed this by increasing the stack depth inspected by the
tick processor and looking for the eval symbol which is more likely
to be present. Additional flakiness was caused by occasional misses
of the code creation event for the JS function being executed. I now
have separate code snippets to test for JS and C++ symbols and if
the code creation event is missed for the JS symbol test then I check
for a percentage of UNKNOWN symbols in processed output. This is
considered a success as the processing scripts in the node repository
are still correctly processing the ticks recieved from the v8
scripts. Further investigation is needed into the v8 profiling
scripts to determine why code creation events are being missed.

PR-URL: https://github.com/nodejs/node/pull/2694
Reviewed-By: Ben Noordhuis <info@bnoordhuis.nl>
9 years agodoc: fix broken link in repl.markdown
Danny Nemer [Sat, 12 Sep 2015 00:23:06 +0000 (20:23 -0400)]
doc: fix broken link in repl.markdown

PR-URL: https://github.com/nodejs/node/pull/2827
Reviewed-By: Rich Trott <rtrott@gmail.com>
Reviewed-By: Jeremiah Senkpiel <fishrock123@rocketmail.com>
9 years agodoc: fix typos in README
Ionică Bizău [Mon, 14 Sep 2015 06:50:23 +0000 (09:50 +0300)]
doc: fix typos in README

 - Fixed typo: "insallation" -> "installation"
 - Added an "that" in a sentence where it was needed for clarity.

PR-URL: https://github.com/nodejs/node/pull/2852
Reviewed-By: Michaël Zasso <mic.besace@gmail.com>
Reviewed-By: Rich Trott <rtrott@gmail.com>
9 years agodoc: add tunniclm as a collaborator
Mike Tunnicliffe [Fri, 11 Sep 2015 22:03:30 +0000 (23:03 +0100)]
doc: add tunniclm as a collaborator

Refs: https://github.com/nodejs/node/issues/2413
PR-URL: https://github.com/nodejs/node/pull/2826
Reviewed-By: Jeremiah Senkpiel <fishrock123@rocketmail.com>
9 years agosrc: use ZCtxt as a source for v8::Isolates
Roman Klauke [Tue, 25 Aug 2015 19:17:36 +0000 (21:17 +0200)]
src: use ZCtxt as a source for v8::Isolates

Other methods like `After` already use ZCtxt as the source for
Enviroment/ v8::Isolate objects, this commit applies the same style
to the other missing methods (`After sync` and `Write`)

PR-URL: https://github.com/nodejs/node/pull/2547
Reviewed-By: Fedor Indutny <fedor@indutny.com>
Reviewed-By: Trevor Norris <trev.norris@gmail.com>
Reviewed-By: Jeremiah Senkpiel <fishrock123@rocketmail.com>
9 years agotest: remove disabled test
Rich Trott [Sat, 12 Sep 2015 21:10:41 +0000 (14:10 -0700)]
test: remove disabled test

Remove test file that has been in disabled from its very first commit
(9ccf0e52) in 2011. It is a test for
https://github.com/nodejs/node-v0.x-archive/issues/670 from 2011. There
are no assertions in the test. In that regard, it is more debugging code
than a test.

PR-URL: https://github.com/nodejs/node/pull/2841
Reviewed-By: Brian White <mscdex@mscdex.net>
Reviewed-By: Yosuke Furukawa <yosuke.furukawa@gmail.com>
9 years agodoc: fix two doc errors in stream and process
Jeremiah Senkpiel [Tue, 25 Aug 2015 21:19:18 +0000 (17:19 -0400)]
doc: fix two doc errors in stream and process

`process.stdout` always blocks as of
20176a98416353d4596900793f739d5ebf4f0ee1

`WritableState.buffer` is `getBuffer()` as of
91586661c983f45d650644451df73c8649a8d459

PR-URL: https://github.com/nodejs/node/pull/2549
Reviewed-By: Alexis Campailla <orangemocha@nodejs.org>
Reviewed-By: Evan Lucas <evanlucas@me.com>
9 years agodoc: fixed io.js references in process.markdown
Tristian Flanagan [Sun, 13 Sep 2015 15:09:32 +0000 (11:09 -0400)]
doc: fixed io.js references in process.markdown

Reviewed-By: Jeremiah Senkpiel <fishrock123@rocketmail.com>
Reviewed-By: Sam Roberts <vieuxtech@gmail.com>
PR-URL: https://github.com/nodejs/node/pull/2846

9 years agotest: split up internet dns tests
Rich Trott [Wed, 9 Sep 2015 22:06:31 +0000 (15:06 -0700)]
test: split up internet dns tests

For whatever reason, the CI win2012 machine was timing out on the
internet test-dns file. Split out ipv4 and ipv6 specific tests to
separate files so tests do not time out. (Each file is given a 60
second timeout on CI. Tests within a file are run in sequence.)

PR-URL: https://github.com/nodejs/node/pull/2802
Fixes: https://github.com/nodejs/node/issues/2468
Reviewed-By: Roman Reiss <me@silverwind.io>
9 years agotest: increase dgram timeout for armv6
Rich Trott [Fri, 11 Sep 2015 04:04:08 +0000 (21:04 -0700)]
test: increase dgram timeout for armv6

test-dgram-broadcast-multi-process.js and
test-dgram-multicast-multi-process.js were failing on Pi 1 because the
test was timing out. Changed static 5000ms timeout to a dynamically
determined timeout based on the processor using
common.platformTimeout().

PR-URL: https://github.com/nodejs/node/pull/2808
Reviewed-By: Ben Noordhuis <info@bnoordhuis.nl>
Reviewed-By: Jeremiah Senkpiel <fishrock123@rocketmail.com>
Reviewed-By: Roman Reiss <me@silverwind.io>
9 years agotools: remove hyphen in TAP result
Sakthipriyan Vairamani [Mon, 7 Sep 2015 06:24:12 +0000 (11:54 +0530)]
tools: remove hyphen in TAP result

As it is, the TAP result shows an extra hyphen in front of test names.
Sample:
ci.nodejs.org/job/node-test-commit-osx/nodes=osx1010/454/tapResults/
This patch removes the extra hyphen.

PR-URL: https://github.com/nodejs/node/pull/2718
Reviewed-By: Johan Bergström <bugs@bergstroem.nu>
9 years agosrc: fix v8::CpuProfiler idle sampling
Oleksandr Chekhovskyi [Fri, 7 Aug 2015 13:03:04 +0000 (15:03 +0200)]
src: fix v8::CpuProfiler idle sampling

Ensure that samples are evenly distributed, which is required for
v8::CpuProfiler users to work correctly (v8-profiler / node-inspector).

PR-URL: https://github.com/nodejs/node/pull/2324
Reviewed-By: Ben Noordhuis <info@bnoordhuis.nl>
9 years agodeps: update libuv to version 1.7.4
Saúl Ibarra Corretgé [Fri, 11 Sep 2015 15:55:29 +0000 (17:55 +0200)]
deps: update libuv to version 1.7.4

PR-URL: https://github.com/nodejs/node/pull/2817
Reviewed-By: Ben Noordhuis <info@bnoordhuis.nl>
Reviewed-By: Colin Ihrig <cjihrig@gmail.com>
9 years agodoc: use "Calls" over "Executes" for consistency
Minwoo Jung [Thu, 10 Sep 2015 15:20:57 +0000 (00:20 +0900)]
doc: use "Calls" over "Executes" for consistency

"Calls" is used frequently throughout the docs except for this line.
Use "Calls" over "Executes" to make it consistent.

PR-URL: https://github.com/nodejs/node/pull/2800
Reviewed-By: Rich Trott <rtrott@gmail.com>
Reviewed-By: Jeremiah Senkpiel <fishrock123@rocketmail.com>
9 years agotest: remove valid hostname check in test-dns.js
Rich Trott [Wed, 9 Sep 2015 21:50:19 +0000 (14:50 -0700)]
test: remove valid hostname check in test-dns.js

Operating systems can and do return invalid hostnames if that's
what they have (for example) in /etc/hosts. Test passes if no
error is thrown and the hostname string is not empty.

Fixes: https://github.com/nodejs/node/issues/2468
PR-URL: https://github.com/nodejs/node/pull/2785
Reviewed-By: Ben Noordhuis <info@bnoordhuis.nl>
9 years agodoc: use US English for consistency
Anne-Gaelle Colom [Wed, 9 Sep 2015 21:21:11 +0000 (22:21 +0100)]
doc: use US English for consistency

behaviour -> behavior

PR-URL: https://github.com/nodejs/node/pull/2784
Reviewed-By: Rich Trott <rtrott@gmail.com>
Reviewed-By: Brendan Ashworth <brendan.ashworth@me.com>
Reviewed-By: Michaël Zasso <mic.besace@gmail.com>
9 years agodeps: cherry-pick 6da51b4 from v8's upstream
Fedor Indutny [Thu, 10 Sep 2015 19:26:50 +0000 (12:26 -0700)]
deps: cherry-pick 6da51b4 from v8's upstream

Original commit message:

    TypedArray accessor detection: consider entire prototype chain

    When looking up a special accessor for known TypedArray fields
    ("length", "byteLength", "byteOffset"), consider the entire
    prototype chain, not only the direct prototype.
    This allows subclasses of TypedArrays to benefit from fast
    specialized accesses.

    Review URL: https://codereview.chromium.org/1313493005

    Cr-Commit-Position: refs/heads/master@{#30678}

Benchmark results:

   buffers/buffer-iterate.js size=16386 type=slow method=for n=1000:
   ./node: 71607 node: 8702.3 ............ 722.85%

Improvement depends on the code, but generally brings us back to the
performance that we had before the v8 update (if not making it
faster).

Fixes: https://github.com/nodejs/node/issues/2463
PR-URL: https://github.com/nodejs/node/pull/2801
Reviewed-By: Ben Noordhuis <info@bnoordhuis.nl>
Reviewed-By: Trevor Norris <trev.norris@gmail.com>
9 years agobindings: close after reading module struct
Fedor Indutny [Thu, 10 Sep 2015 11:01:20 +0000 (04:01 -0700)]
bindings: close after reading module struct

Do not let the module struct to be deallocated by `uv_dlclose`
before reading data from it.

PR-URL: https://github.com/nodejs/node/pull/2792
Reviewed-By: Ben Noordhuis <info@bnoordhuis.nl>
Reviewed-By: Brian White <mscdex@mscdex.net>
Reviewed-By: Yosuke Furukawa <yosuke.furukawa@gmail.com>
9 years agodoc: use 3rd person singular for consistency
Anne-Gaelle Colom [Wed, 9 Sep 2015 10:40:46 +0000 (11:40 +0100)]
doc: use 3rd person singular for consistency

PR-URL: https://github.com/nodejs/node/pull/2765
Reviewed-By: Michaël Zasso <mic.besace@gmail.com>
Reviewed-By: Rich Trott <rtrott@gmail.com>
9 years agowin,msi: fix documentation shortcut url
Brian White [Thu, 10 Sep 2015 03:45:28 +0000 (23:45 -0400)]
win,msi: fix documentation shortcut url

Fixes: https://github.com/nodejs/node/issues/2779
PR-URL: https://github.com/nodejs/node/pull/2781
Reviewed-By: Rod Vagg <rod@vagg.org>
9 years agodoc: describe process API for IPC
Sam Roberts [Mon, 15 Jun 2015 02:06:22 +0000 (19:06 -0700)]
doc: describe process API for IPC

Reviewed-By: Ben Noordhuis <info@bnoordhuis.nl>
PR-URL: https://github.com/nodejs/node/pull/1978

9 years agotest: expect error for test_lookup_ipv6_hint on FreeBSD
Rich Trott [Mon, 7 Sep 2015 03:47:41 +0000 (20:47 -0700)]
test: expect error for test_lookup_ipv6_hint on FreeBSD

FreeBSD does not support the V4MAPPED flag so expect an error.

This is a partial fix for https://github.com/nodejs/node/issues/2468.
It only fixes it on FreeBSD. Failures on other platforms are due to
other reasons and need to be fixed separately.

PR-URL: https://github.com/nodejs/node/pull/2724
Reviewed-By: Sakthipriyan Vairamani <thechargingvolcano@gmail.com>
Reviewed-By: Johan Bergström <bugs@bergstroem.nu>
Fixes: https://github.com/nodejs/node/issues/2468

9 years agodoc: fix comma splice in Assertion Testing doc
Rich Trott [Mon, 7 Sep 2015 18:13:07 +0000 (11:13 -0700)]
doc: fix comma splice in Assertion Testing doc

This fixes a minor typographical error in the Assertion Testing doc.

PR-URL: https://github.com/nodejs/node/pull/2728
Reviewed-By: Colin Ihrig <cjihrig@gmail.com>
Reviewed-By: Michaël Zasso <mic.besace@gmail.com>
Reviewed-By: Johan Bergström <bugs@bergstroem.nu>
9 years agoWorking on 4.0.1
Rod Vagg [Tue, 8 Sep 2015 23:04:53 +0000 (09:04 +1000)]
Working on 4.0.1

9 years ago2015-09-08, Version 4.0.0 (Stable) Release v4.0.0
Rod Vagg [Mon, 7 Sep 2015 03:54:43 +0000 (13:54 +1000)]
2015-09-08, Version 4.0.0 (Stable) Release

This list of changes is relative to the last io.js v3.x branch
release, v3.3.0. Please see the list of notable changes in the v3.x,
v2.x and v1.x releases for a more complete list of changes from
0.12.x. Note, that some changes in the v3.x series as well as major
breaking changes in this release constitute changes required for full
convergence of the Node.js and io.js projects.

* child_process: ChildProcess.prototype.send() and process.send()
  operate asynchronously across all platforms so an optional callback
  parameter has been introduced that will be invoked once the message
  has been sent, i.e. .send(message[, sendHandle][, callback])
  (Ben Noordhuis) #2620.
* node: Rename "io.js" code to "Node.js" (cjihrig) #2367.
* node-gyp: This release bundles an updated version of node-gyp that
  works with all versions of Node.js and io.js including nightly and
  release candidate builds. From io.js v3 and Node.js v4 onward, it
  will only download a headers tarball when building addons rather
  than the entire source. (Rod Vagg) #2700.
* npm: Upgrade to version 2.14.2 from 2.13.3, includes a security
  update, see https://github.com/npm/npm/releases/tag/v2.14.2 for more
  details, (Kat Marchán) #2696.
* timers: Improved timer performance from porting the 0.12
  implementation, plus minor fixes (Jeremiah Senkpiel) #2540,
  (Julien Gilli) nodejs/node-v0.x-archive#8751 nodejs/node-v0.x-archive#8905
* util: The util.is*() functions have been deprecated, beginning with
  deprecation warnings in the documentation for this release, users
  are encouraged to seek more robust alternatives in the npm registry,
  (Sakthipriyan Vairamani) #2447.
* v8: Upgrade to version 4.5.103.30 from 4.4.63.30 (Ali Ijaz Sheikh) #2632.
  - Implement new TypedArray prototype methods: copyWithin(), every(),
    fill(), filter(), find(), findIndex(), forEach(), indexOf(),
    join(), lastIndexOf(), map(), reduce(), reduceRight(), reverse(),
    slice(), some(), sort(). See
    https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/TypedArray
    for further information.
  - Implement new TypedArray.from() and TypedArray.of() functions. See
    https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/TypedArray
    for further information.
  - Implement arrow functions. See
    https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Functions/Arrow_functions
    for further information.
  - Full ChangeLog available at
    https://github.com/v8/v8-git-mirror/blob/4.5.103/ChangeLog

9 years agobuild: fix v8_enable_handle_zapping override
Karl Skomski [Mon, 7 Sep 2015 21:57:18 +0000 (23:57 +0200)]
build: fix v8_enable_handle_zapping override

It was previously ignored by features.gypi and therefore
enabled by default for release builds.

See https://code.google.com/p/chromium/issues/detail?id=318206

PR-URL: https://github.com/nodejs/node/pull/2731
Reviewed-By: Fedor Indutny <fedor@indutny.com>
Reviewed-By: Ben Noordhuis <info@bnoordhuis.nl>
9 years agonode-gyp: float 3.0.1, minor fix for download url
Rod Vagg [Tue, 8 Sep 2015 09:51:35 +0000 (19:51 +1000)]
node-gyp: float 3.0.1, minor fix for download url

PR-URL: https://github.com/nodejs/node/pull/2737
Reviewed-By: Jeremiah Senkpiel <fishrock123@rocketmail.com>
9 years agodeps: improve ArrayBuffer performance in v8
Fedor Indutny [Tue, 8 Sep 2015 00:40:43 +0000 (17:40 -0700)]
deps: improve ArrayBuffer performance in v8

This a backport of the following commits from the v8's upstream:

1a8c38c50513f9af07ada479629a653e1cf36ff3
206f12abee3f1e7eda8fc6521d48f3c319460ee1
9e3676da9ab1aaf7de3e8582cb3fdefcc3dbaf33

Original commit message:

    heap: make array buffer maps disjoint

    Remove intersection from the `std::map`s representing current live
    ArrayBuffers. While being simpler to understand, it poses
    significant performance issue for the active ArrayBuffer users (like
    node.js).

    Store buffers separately, and process them together during
    mark-sweep phase.

    The results of benchmarks are:

    $ ./node-slow bench && ./node-fast bench
    4997.4 ns/op
    4685.7 ns/op

    NOTE: `fast` - was a patched node.js, `slow` - unpatched node.js
    with vanilla v8.

PR-URL: https://github.com/nodejs/node/pull/2732
Reviewed-By: Rod Vagg <rod@vagg.org>
Reviewed-By: Brian White <mscdex@mscdex.net>
Reviewed-By: Roman Reiss <me@silverwind.io>
9 years agocluster: allow shared reused dgram sockets
Fedor Indutny [Tue, 25 Aug 2015 19:24:41 +0000 (12:24 -0700)]
cluster: allow shared reused dgram sockets

Allow listening on reused dgram ports in cluster workers.

Fix: https://github.com/joyent/node/issues/9261
PR-URL: https://github.com/nodejs/node/pull/2548
Reviewed-By: Ben Noordhuis <info@bnoordhuis.nl>
9 years agobuild: remote commands on staging in single session
Rod Vagg [Mon, 7 Sep 2015 05:00:28 +0000 (15:00 +1000)]
build: remote commands on staging in single session

PR-URL: https://github.com/nodejs/node/pull/2717
Reviewed-By: Johan Bergström <bugs@bergstroem.nu>
9 years agodeps: float node-gyp v3.0.0
Rod Vagg [Sat, 5 Sep 2015 05:37:48 +0000 (15:37 +1000)]
deps: float node-gyp v3.0.0

* support process.release
* support all io.js versions
* support node v4+ including new download locations
* enable delay-load hook by default by default
* download header-only tarballs instead of full source

See https://github.com/nodejs/node-gyp/pull/711 for full details

PR-URL: https://github.com/nodejs/node/pull/2700
Reviewed-By: Forrest L Norvell <forrest@npmjs.com>
9 years agosrc: s/ia32/x86 for process.release.libUrl for win
Rod Vagg [Sat, 5 Sep 2015 04:41:34 +0000 (14:41 +1000)]
src: s/ia32/x86 for process.release.libUrl for win

PR-URL: https://github.com/nodejs/node/pull/2699
Reviewed-By: Sakthipriyan Vairamani <thechargingvolcano@gmail.com>
Reviewed-By: Alexis Campailla <orangemocha@nodejs.org>
9 years agochild_process: use stdio.fd even if it is 0
Evan Lucas [Mon, 7 Sep 2015 17:25:25 +0000 (12:25 -0500)]
child_process: use stdio.fd even if it is 0

Previously, in _validateStdio we were using stdio.fd || stdio. If
stdio.fd was falsy (or 0 in the case of stdin), then the entire stdio
object would be passed which could cause a crash.

Fixes: https://github.com/nodejs/node/issues/2721
PR-URL: https://github.com/nodejs/node/pull/2727
Reviewed-By: silverwind - Roman Reiss <me@silverwind.io>
Reviewed-By: cjihrig - Colin Ihrig <cjihrig@gmail.com>
Reviewed-By: indutny - Fedor Indutny <fedor.indutny@gmail.com>
9 years agocrypto: replace rwlocks with simple mutexes
Ben Noordhuis [Mon, 7 Sep 2015 12:32:00 +0000 (14:32 +0200)]
crypto: replace rwlocks with simple mutexes

It was pointed out by Zhou Ran that the Windows XP implementation of
uv_rwlock_rdlock() and friends may unlock the inner write mutex on a
different thread than the one that locked it, resulting in undefined
behavior.

The only place that uses rwlocks is the crypto module.  Make that use
normal (simple) mutexes instead.

OpenSSL's critical sections are generally very short, with exclusive
access outnumbering shared access by a factor of three or more, so
it's not as if using rwlocks gives a decisive performance advantage.

PR-URL: https://github.com/nodejs/node/pull/2723
Reviewed-By: Fedor Indutny <fedor@indutny.com>
9 years agodoc: update AUTHORS list
Rod Vagg [Mon, 31 Aug 2015 11:07:52 +0000 (21:07 +1000)]
doc: update AUTHORS list

Update AUTHORS list using tools/update-authors.sh

9 years agobuild: make .msi install to "nodejs", not "node"
Rod Vagg [Sat, 5 Sep 2015 06:18:22 +0000 (16:18 +1000)]
build: make .msi install to "nodejs", not "node"

PR-URL: https://github.com/nodejs/node/pull/2701
Reviewed-By: Joao Reis <reis@janeasystems.com>
Reviewed-By: Sakthipriyan Vairamani <thechargingvolcano@gmail.com>
9 years agocpplint: make it possible to run outside git repo
Ben Noordhuis [Sat, 5 Sep 2015 13:44:21 +0000 (15:44 +0200)]
cpplint: make it possible to run outside git repo

cpplint uses the top-level .git directory to determine what the root is
for #include guards.  If it doesn't find a .git directory, it walks up
all the way to the system root and subsequently complains that guards
must be written as HOME_USER_SRC_NODE_SRC_FILENAME_H_.

This commit replaces the .git-based path munging with a fixed root path
relative to the location of the cpplint script, making it possible to
successfully run `make test` from an extracted tarball.

Fixes: https://github.com/nodejs/node/issues/2693
PR-URL: https://github.com/nodejs/node/pull/2710
Reviewed-By: Sakthipriyan Vairamani <thechargingvolcano@gmail.com>
9 years agodeps: create .npmrc during npm tests
Kat Marchán [Fri, 4 Sep 2015 21:48:13 +0000 (14:48 -0700)]
deps: create .npmrc during npm tests

This patch should make the tests pass on the downstreamed npm.

PR-URL: https://github.com/nodejs/node/pull/2696
Reviewed-By: Jeremiah Senkpiel <fishrock123@rocketmail.com>
Reviewed-By: Rod Vagg <rod@vagg.org>
9 years agodeps: upgrade to npm 2.14.2
Kat Marchán [Fri, 4 Sep 2015 21:47:14 +0000 (14:47 -0700)]
deps: upgrade to npm 2.14.2

PR-URL: https://github.com/nodejs/node/pull/2696
Reviewed-By: Jeremiah Senkpiel <fishrock123@rocketmail.com>
Reviewed-By: Rod Vagg <rod@vagg.org>
9 years agodeps: backport 75e43a6 from v8 upstream (again)
saper [Tue, 11 Aug 2015 07:48:49 +0000 (00:48 -0700)]
deps: backport 75e43a6 from v8 upstream (again)

Note: When this was cherry-picked for v8 v4.4 (landed in nodejs#2636),
test-heap.cc:1989 chunk did not exist. It now exists in
v8 v4.5.103.30. This PR completes the cherry pick of the whole commit
from v8.

PR-URL: https://github.com/nodejs/node/pull/2692
Reviewed-By: ofrobots - Ali Ijaz Sheikh <ofrobots@google.com>
Original commit message:
  Use static_cast<> for NULL (clang 3.7)

  The following errors come up when compiling v8
   with clang 3.7 on FreeBSD/amd64:

  src/runtime/runtime-i18n.cc:629:37: error: reinterpret_cast from
  'nullptr_t' to 'v8::internal::Smi *' is not allowed
    local_object->SetInternalField(1, reinterpret_cast<Smi*>(NULL));
                                      ^~~~~~~~~~~~~~~~~~~~~~~~~~~~

  test/cctest/test-heap.cc:131:20: error: reinterpret_cast from
        'nullptr_t' to 'v8::internal::Object *' is not allowed
    Handle<Object> n(reinterpret_cast<Object*>(NULL), isolate);
                     ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
  test/cctest/test-heap.cc:1989:18: error: reinterpret_cast from
        'nullptr_t' to 'Address' (aka 'unsigned char *') is not
        allowed
    Address base = reinterpret_cast<Address>(NULL);
                   ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~

  +add myself to the AUTHORS file.

  BUG=

  Review URL: https://codereview.chromium.org/1277353002

  Cr-Commit-Position: refs/heads/master@{#30103}

9 years agobuild: fix .pkg creation tooling
Rod Vagg [Fri, 4 Sep 2015 05:41:21 +0000 (15:41 +1000)]
build: fix .pkg creation tooling

PR-URL: https://github.com/nodejs/node/pull/2687
Reviewed-By: Jeremiah Senkpiel <fishrock123@rocketmail.com>
9 years agodoc: add TSC meeting minutes 2015-09-02
Rod Vagg [Thu, 3 Sep 2015 06:22:57 +0000 (16:22 +1000)]
doc: add TSC meeting minutes 2015-09-02

PR-URL: https://github.com/nodejs/node/pull/2674
Reviewed-By: Colin Ihrig <cjihrig@gmail.com>
9 years agodoc: update environment vars in manpage and --help
Roman Reiss [Fri, 4 Sep 2015 10:48:20 +0000 (12:48 +0200)]
doc: update environment vars in manpage and --help

- Added NODE_REPL_HISTORY to the environment variables in the --help
  and made all descriptions start with lower case for consistency.

- Added NODE_REPL_HISTORY and NODE_ICU_DATA to the man page.

PR-URL: https://github.com/nodejs/node/pull/2690
Reviewed-By: fishrock123 - Jeremiah Senkpiel <fishrock123@rocketmail.com>
Reviewed-By: evanlucas - Evan Lucas <evanlucas@me.com>
9 years agosrc: use standard conform snprintf on windows
Karl Skomski [Thu, 3 Sep 2015 08:10:30 +0000 (10:10 +0200)]
src: use standard conform snprintf on windows

The version used before returned -1 on truncation which does not conform
to the standard.

PR-URL: https://github.com/nodejs/node/pull/2404
Reviewed-By: Trevor Norris <trev.norris@gmail.com>
Reviewed-By: Fedor Indutny <fedor@indutny.com>
9 years agosrc: fix buffer overflow for long exception lines
Karl Skomski [Thu, 3 Sep 2015 08:10:29 +0000 (10:10 +0200)]
src: fix buffer overflow for long exception lines

Long exception lines resulted in a stack buffer overflow or assertion
because it was assumed snprintf not counts discarded chars
or the assertion itself was incorrect: `(off) >= sizeof(arrow)`

PR-URL: https://github.com/nodejs/node/pull/2404
Reviewed-By: Trevor Norris <trev.norris@gmail.com>
Reviewed-By: Fedor Indutny <fedor@indutny.com>
9 years agodoc,test: enable recursive file watching in Windows
Sakthipriyan Vairamani [Wed, 2 Sep 2015 09:24:24 +0000 (14:54 +0530)]
doc,test: enable recursive file watching in Windows

Recursive file watching is supported by libuv since 1.7.0. Refer
https://github.com/nodejs/node/blob/master/deps/uv/ChangeLog#L126. This
patch notes that in the docs and enables testing this feature. It also
adds proper TAP plugin parsable message for other platforms.

PR-URL: https://github.com/nodejs/node/pull/2649
Fixes: https://github.com/nodejs/node/issues/375
Reviewed-By: rvagg - Rod Vagg <rod@vagg.org>
Reviewed-By: silverwind - Roman Reiss <me@silverwind.io>
9 years agobuffer: SlowBuffer only accept valid numeric values
Michaël Zasso [Tue, 1 Sep 2015 08:51:17 +0000 (10:51 +0200)]
buffer: SlowBuffer only accept valid numeric values

Fixes a regression that appeared with the new Buffer implementation in v3.
Without this change, calling the SlowBuffer constructor with something else
than a number would abort on the C++ side. This makes sure that the length
argument is coerced to number or is 0.

Fixes: https://github.com/nodejs/node/issues/2634
PR-URL: https://github.com/nodejs/node/pull/2635
Reviewed-By: trevnorris - Trevor Norris <trev.norris@gmail.com>
Reviewed-By: cjihrig - Colin Ihrig <cjihrig@gmail.com>
9 years agotest: fix use of `common` before required
Rod Vagg [Fri, 4 Sep 2015 02:25:31 +0000 (12:25 +1000)]
test: fix use of `common` before required

PR-URL: https://github.com/nodejs/node/pull/2685
Reviewed-By: Sakthipriyan Vairamani <thechargingvolcano@gmail.com>
9 years agodeps: upgrade V8 to 4.5.103.30
Ali Ijaz Sheikh [Tue, 1 Sep 2015 00:10:53 +0000 (17:10 -0700)]
deps: upgrade V8 to 4.5.103.30

Pick up https://github.com/v8/v8-git-mirror/commit/f9a0a1636a4623a5522c33674e110b346d085340
Commit log at https://chromium.googlesource.com/v8/v8.git/+log/branch-heads/4.5

PR-URL: https://github.com/nodejs/node/pull/2632
Reviewed-By: targos - Michaël Zasso <mic.besace@gmail.com>
Reviewed-By: rvagg - Rod Vagg <rod@vagg.org>