platform/upstream/nodejs.git
8 years agosrc: enable v8 deprecation warnings and fix them
Ben Noordhuis [Wed, 1 Jul 2015 21:47:37 +0000 (23:47 +0200)]
src: enable v8 deprecation warnings and fix them

Turn on V8 API deprecation warnings.  Fix up the no-arg Isolate::New()
calls in src/node.cc and src/debug-agent.cc.

PR-URL: https://github.com/nodejs/io.js/pull/2091
Reviewed-By: Trevor Norris <trev.norris@gmail.com>
8 years agotest: fix test-repl-tab-complete.js for V8 4.5
Ali Ijaz Sheikh [Sun, 23 Aug 2015 14:24:54 +0000 (07:24 -0700)]
test: fix test-repl-tab-complete.js for V8 4.5

The list of Array properties needed to be updated to match the new ones added
in V8 4.5.

PR-URL: https://github.com/nodejs/node/pull/2509
Reviewed-By: Ben Noordhuis <info@bnoordhuis.nl>
8 years agocontextify: ignore getters during initialization
Fedor Indutny [Tue, 7 Jul 2015 22:27:14 +0000 (15:27 -0700)]
contextify: ignore getters during initialization

The `context_` is not initialized until the `CreateV8Context` will
return. Make sure that it will be empty (by moving away initialization
from constructor) at start, and ignore getter callbacks until it will
have some value.

PR-URL: https://github.com/nodejs/io.js/pull/2091
Reviewed-By: Trevor Norris <trev.norris@gmail.com>
8 years agosrc: apply debug force load fixups from 41e63fb
Ali Ijaz Sheikh [Sun, 23 Aug 2015 13:28:57 +0000 (06:28 -0700)]
src: apply debug force load fixups from 41e63fb

Apply the src/node_contextify.cc and lib/module.js fixups from @bnoordhuis
https://github.com/nodejs/node/commit/41e63fb088a29fa05e16fb0d997255678134c043

PR-URL: https://github.com/nodejs/node/pull/2509
Reviewed-By: Ben Noordhuis <info@bnoordhuis.nl>
8 years agodeps: upgrade V8 to 4.5.103.24
Ali Ijaz Sheikh [Sun, 23 Aug 2015 13:09:40 +0000 (06:09 -0700)]
deps: upgrade V8 to 4.5.103.24

Upgrade to the latest branch-head for V8 4.5. For the full commit log see
https://github.com/v8/v8-git-mirror/commits/4.5.103.24

PR-URL: https://github.com/nodejs/node/pull/2509
Reviewed-By: Ben Noordhuis <info@bnoordhuis.nl>
8 years agoevents,lib: don't require EE#listenerCount()
Jeremiah Senkpiel [Wed, 2 Sep 2015 16:23:49 +0000 (12:23 -0400)]
events,lib: don't require EE#listenerCount()

Now parts of our public and public-ish APIs fall back to old-style
listenerCount() if the emitter does not have a listenerCount function.

Fixes: https://github.com/nodejs/node/issues/2655
Refs: 8f58fb92fff904a6ca58fd0df9ee5a1816e5b84e

PR-URL: https://github.com/nodejs/node/pull/2661
Reviewed-By: Sakthipriyan Vairamani <thechargingvolcano@gmail.com>
Reviewed-By: Colin Ihrig <cjihrig@gmail.com>
Reviewed-By: James M Snell <jasnell@gmail.com>
8 years agobuild: add --enable-asan with builtin leakcheck
Karl Skomski [Fri, 14 Aug 2015 08:07:18 +0000 (10:07 +0200)]
build: add --enable-asan with builtin leakcheck

PR-URL: https://github.com/nodejs/node/pull/2376
Reviewed-By: Fedor Indutny <fedor@indutny.com>
Reviewed-By: Ben Noordhuis <info@bnoordhuis.nl>
8 years agochild_process: check execFile and fork args
James M Snell [Wed, 2 Sep 2015 21:16:24 +0000 (14:16 -0700)]
child_process: check execFile and fork args

Port of joyent/node commits:

 * https://github.com/nodejs/node-v0.x-archive/commit/e17c5a72b23f920f291d61f2780068c18768cb92
 * https://github.com/nodejs/node-v0.x-archive/commit/70dafa7b624abd43432e03304d65cc527fbecc11

Pull over test-child-process-spawn-typeerror.js from v0.12, replacing
the existing test in master. The new test includes a broader set of
tests on the various arg choices and throws.

Reviewed-By: trevnorris - Trevor Norris <trevnorris@nodejs.org>
Reviewed-By: cjihrig - Colin Ihrig <cjihrig@gmail.com>
Reviewed-By: thefourtheye - Sakthipriyan Vairamani
PR-URL: https://github.com/nodejs/node/pull/2667
Fixes: https://github.com/nodejs/node/issues/2515

8 years agotest: refactor to eliminate flaky test
Rich Trott [Sat, 29 Aug 2015 02:56:22 +0000 (19:56 -0700)]
test: refactor to eliminate flaky test

This retains the key elements of test-child-process-fork-getconnections
(forks a child process, sends a bunch of sockets, uses getConnections()
to enumerate them) but contains some code to work around an apparent
intermittent bug that occurs on OS X where a socket seems to close
itself unexpectedly.

https://github.com/nodejs/node/issues/2610 was opened for the bug that
was causing the problem in the first place.

PR-URL: https://github.com/nodejs/node/pull/2609
Fixes: https://github.com/nodejs/node/issues/1100
Reviewed-By: jbergstroem - Johan Bergström <bugs@bergstroem.nu>
Reviewed-By: Brendan Ashworth <brendan.ashworth@me.com>
8 years agodoc: update url doc to account for escaping
Jeremiah Senkpiel [Fri, 28 Aug 2015 20:58:18 +0000 (16:58 -0400)]
doc: update url doc to account for escaping

Fixes: https://github.com/nodejs/node/issues/2113
Ref: 17a379ec39a34408477ac6a43751c1b9b2e952a4
PR-URL: https://github.com/nodejs/node/pull/2605
Reviewed-By: jasnell - James M Snell <jasnell@gmail.com>
Reviewed-By: cjihrig - Colin Ihrig <cjihrig@gmail.com>
Reviewed-By: mscdex - Brian White <mscdex@mscdex.net>
8 years agodoc: reorder collaborators by their usernames
Johan Bergström [Sat, 25 Jul 2015 06:09:59 +0000 (16:09 +1000)]
doc: reorder collaborators by their usernames

Fixes: https://github.com/nodejs/node/issues/1972
PR-URL: https://github.com/nodejs/node/pull/2322
Reviewed-By: orangemocha - Alexis Campailla <orangemocha@nodejs.org>
Reviewed-By: thefourtheye - Sakthipriyan Vairamani <thechargingvolcano@gmail.com>
8 years agotest: mark eval_messages as flaky
Alexis Campailla [Wed, 2 Sep 2015 09:30:00 +0000 (11:30 +0200)]
test: mark eval_messages as flaky

This test has failed recently during a PR test in Jenkins, for
reasons seemingly not related to the change in the PR.

PR-URL: https://github.com/nodejs/node/pull/2648
Reviewed-By: evanlucas - Evan Lucas <evanlucas@me.com>
8 years agochild_process: add callback parameter to .send()
Ben Noordhuis [Sun, 30 Aug 2015 22:49:34 +0000 (00:49 +0200)]
child_process: add callback parameter to .send()

Add an optional callback parameter to `ChildProcess.prototype.send()`
that is invoked when the message has been sent.

Juggle the control channel's reference count so that in-flight messages
keep the event loop (and therefore the process) alive until they have
been sent.

`ChildProcess.prototype.send()` and `process.send()` used to operate
synchronously but became asynchronous in commit libuv/libuv@393c1c5
("unix: set non-block mode in uv_{pipe,tcp,udp}_open"), which landed
in io.js in commit 07bd05b ("deps: update libuv to 1.2.1").

Fixes: https://github.com/nodejs/node/issues/760
PR-URL: https://github.com/nodejs/node/pull/2620
Reviewed-By: trevnorris - Trevor Norris <trev.norris@gmail.com>
Reviewed-By: jasnell - James M Snell <jasnell@gmail.com>
8 years agosrc: fix memory leak in ExternString
Karl Skomski [Sun, 16 Aug 2015 14:09:02 +0000 (16:09 +0200)]
src: fix memory leak in ExternString

v8 will silently return an empty handle
which doesn't delete our data if string length is
above String::kMaxLength

Fixes: https://github.com/nodejs/node/issues/1374
PR-URL: https://github.com/nodejs/node/pull/2402
Reviewed-By: trevnorris - Trevor Norris <trev.norris@gmail.com>
Reviewed-By: indutny - Fedor Indutny <fedor.indutny@gmail.com>
Reviewed-By: bnoordhuis - Ben Noordhuis <info@bnoordhuis.nl>
Amended by @rvagg to change author date from
  "1970-08-16 16:09:02 +0200"
to
  "2015-08-16 16:09:02 +0200"
as per discussion @ https://github.com/nodejs/node/issues/2713

8 years agotest: mark test-vm-syntax-error-stderr as flaky
João Reis [Wed, 2 Sep 2015 16:36:29 +0000 (17:36 +0100)]
test: mark test-vm-syntax-error-stderr as flaky

Ref: https://github.com/nodejs/node/issues/2660

PR-URL: https://github.com/nodejs/node/pull/2662
Reviewed-By: orangemocha - Alexis Campailla <orangemocha@nodejs.org>
8 years agotest: mark test-repl-persistent-history as flaky
João Reis [Wed, 2 Sep 2015 16:03:02 +0000 (17:03 +0100)]
test: mark test-repl-persistent-history as flaky

This test is already being investigated, but until a solution is found
it should be marked flaky.

Ref: https://github.com/nodejs/node/issues/2319
Ref: https://github.com/nodejs/node/pull/2356

PR-URL: https://github.com/nodejs/node/pull/2659
Reviewed-By: orangemocha - Alexis Campailla <orangemocha@nodejs.org>
8 years agodeps: backport 75e43a6 from v8 upstream
saper [Tue, 11 Aug 2015 07:48:49 +0000 (00:48 -0700)]
deps: backport 75e43a6 from v8 upstream

Note: chunk in test-heap.cc:1989 discarded as related code missing
from current version in node.

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}

PR-URL: https://github.com/nodejs/node/pull/2636
Reviewed-By: thefourtheye - Sakthipriyan Vairamani <thechargingvolcano@gmail.com>
Reviewed-By: bnoordhuis - Ben Noordhuis <info@bnoordhuis.nl>
8 years agodoc: update changelog for io.js v3.3.0
Rod Vagg [Wed, 2 Sep 2015 05:39:16 +0000 (15:39 +1000)]
doc: update changelog for io.js v3.3.0

Notable changes:

* build: Add a --link-module option to configure that can be used to
  bundle additional JavaScript modules into a built binary
  (Bradley Meck) #2497
* docs: Merge outstanding doc updates from joyent/node
  (James M Snell) #2378
* http_parser: Significant performance improvement by having
  http.Server consume all initial data from its net.Socket and parsing
  directly without having to enter JavaScript. Any 'data' listeners on
  the net.Socket will result in the data being "unconsumed" into
  JavaScript, thereby undoing any performance gains.
  (Fedor Indutny) #2355
* libuv: Upgrade to 1.7.3 (from 1.6.1), see
  https://github.com/libuv/libuv/blob/v1.x/ChangeLog for details
  (Saúl Ibarra Corretgé) #2310
* V8: Upgrade to 4.4.63.30 (from 4.4.63.26) (Michaël Zasso) #2482

cherry-picked from v3.x @ 1a6e52db30

PR-URL: https://github.com/nodejs/node/pull/2653
Reviewed-By: cjihrig - Colin Ihrig <cjihrig@gmail.com>
8 years agotimers: minor _unrefActive fixes and improvements
Jeremiah Senkpiel [Thu, 27 Aug 2015 19:56:46 +0000 (15:56 -0400)]
timers: minor _unrefActive fixes and improvements

This commit addresses most of the review comments in
https://github.com/nodejs/node/pull/2540, which are kept in this
separate commit so as to better preserve the prior two patches as they
landed in 0.12.

This commit:
- Fixes a bug with unrefActive timers and disposed domains.
- Fixes a bug with unrolling an unrefActive timer from another.
- Adds a test for both above bugs.
- Improves check logic, making it stricter, simpler, or both.
- Optimizes nicer with a smaller, separate function for the try/catch.

Fixes: https://github.com/nodejs/node-convergence-archive/issues/23
Ref: https://github.com/nodejs/node/issues/268
PR-URL: https://github.com/nodejs/node/pull/2540
Reviewed-By: bnoordhuis - Ben Noordhuis <info@bnoordhuis.nl>
8 years agotimers: don't mutate unref list while iterating it
Julien Gilli [Thu, 18 Dec 2014 23:36:21 +0000 (15:36 -0800)]
timers: don't mutate unref list while iterating it

Commit 934bfe23a16556d05bfb1844ef4d53e8c9887c3d had introduced a
regression where node would crash trying to access a null unref timer if
a given unref timer's callback would remove other unref timers set to
fire in the future.

More generally, it makes the unrefTimeout function more solid by not
mutating the unrefList while traversing it.

Fixes: https://github.com/joyent/node/issues/8897

Conflicts:
lib/timers.js

Fixes: https://github.com/nodejs/node-convergence-archive/issues/23
Ref: https://github.com/nodejs/node/issues/268
PR-URL: https://github.com/nodejs/node/pull/2540
Reviewed-By: bnoordhuis - Ben Noordhuis <info@bnoordhuis.nl>
8 years agotimers: Avoid linear scan in _unrefActive.
Julien Gilli [Wed, 20 Aug 2014 07:08:32 +0000 (00:08 -0700)]
timers: Avoid linear scan in _unrefActive.

Before this change, _unrefActive would keep the unrefList sorted when
adding a new timer.

Because _unrefActive is called extremely frequently, this linear scan
(O(n) at worse) would make _unrefActive show high in the list of
contributors when profiling CPU usage.

This commit changes _unrefActive so that it doesn't try to keep the
unrefList sorted. The insertion thus happens in constant time.

However, when a timer expires, unrefTimeout has to go through the whole
unrefList because it's not ordered anymore.

It is usually not large enough to have a significant impact on
performance because:
- Most of the time, the timers will be removed before unrefTimeout is
  called because their users (sockets mainly) cancel them when an I/O
  operation takes place.
- If they're not, it means that some I/O took a long time to happen, and
  the initiator of subsequents I/O operations that would add more timers
  has to wait for them to complete.

With this change, _unrefActive does not show as a significant
contributor in CPU profiling reports anymore.

Fixes: https://github.com/joyent/node/issues/8160

Signed-off-by: Timothy J Fontaine <tjfontaine@gmail.com>
Conflicts:
lib/timers.js

Fixes: https://github.com/nodejs/node-convergence-archive/issues/23
Ref: https://github.com/nodejs/node/issues/268
PR-URL: https://github.com/nodejs/node/pull/2540
Reviewed-By: bnoordhuis - Ben Noordhuis <info@bnoordhuis.nl>
8 years agosrc: only set v8 flags if argc > 1
Evan Lucas [Wed, 2 Sep 2015 07:59:21 +0000 (02:59 -0500)]
src: only set v8 flags if argc > 1

ParseArgs sets the first element of v8_args to argv[0], so v8_argc will
always be at least 1. This change only calls
V8::SetFlagsFromCommandLine if v8_argc > 1, leading to an additional
startup improvement of ~5%.

PR-URL: https://github.com/nodejs/node/pull/2646
Reviewed-By: trevnorris - Trevor Norris <trev.norris@gmail.com>
8 years agobuild: fix borked chmod call for release uploads
Rod Vagg [Wed, 2 Sep 2015 07:31:48 +0000 (17:31 +1000)]
build: fix borked chmod call for release uploads

PR-URL: https://github.com/nodejs/node/pull/2645
Reviewed-By: thefourtheye - Sakthipriyan Vairamani <thechargingvolcano@gmail.com>
8 years agodeps: upgrade libuv to 1.7.3
Saúl Ibarra Corretgé [Wed, 5 Aug 2015 19:17:46 +0000 (21:17 +0200)]
deps: upgrade libuv to 1.7.3

PR-URL: https://github.com/nodejs/node/pull/2310
Reviewed-By: bnoordhuis - Ben Noordhuis <info@bnoordhuis.nl>
Reviewed-By: cjihrig - Colin Ihrig <cjihrig@gmail.com>
8 years agosrc: only memcmp if length > 0 in Buffer::Compare
Karl Skomski [Fri, 21 Aug 2015 11:31:24 +0000 (13:31 +0200)]
src: only memcmp if length > 0 in Buffer::Compare

Both pointer arguments to memcmp are defined as non-null
and compiler optimizes upon that.

PR-URL: https://github.com/nodejs/node/pull/2544
Reviewed-By: trevnorris - Trevor Norris <trev.norris@gmail.com>
Reviewed-By: thefourtheye - Sakthipriyan Vairamani <thechargingvolcano@gmail.com>
8 years agotest: improve performance of stringbytes test
Trevor Norris [Mon, 17 Aug 2015 20:32:51 +0000 (14:32 -0600)]
test: improve performance of stringbytes test

String concatenation in the assert messages has drastic impact on test
runtime. Removal of these messages is unlikely to affect debugging if
any breaking changes are made.

Previous time to run:

    $ time ./iojs test/parallel/test-stringbytes-external.js

    real    0m2.321s
    user    0m2.256s
    sys     0m0.092s

With fix:

    $ time ./iojs test/parallel/test-stringbytes-external.js

    real    0m0.518s
    user    0m0.508s
    sys     0m0.008s

PR-URL: https://github.com/nodejs/node/pull/2544
Reviewed-By: trevnorris - Trevor Norris <trev.norris@gmail.com>
Reviewed-By: thefourtheye - Sakthipriyan Vairamani <thechargingvolcano@gmail.com>
8 years agobuild: set file permissions before uploading
Rod Vagg [Mon, 31 Aug 2015 07:33:22 +0000 (17:33 +1000)]
build: set file permissions before uploading

PR-URL: https://github.com/nodejs/node/pull/2623
Reviewed-By: jbergstroem - Johan Bergström <bugs@bergstroem.nu>
8 years agobuild: change staging directory on new server
Rod Vagg [Mon, 31 Aug 2015 07:03:26 +0000 (17:03 +1000)]
build: change staging directory on new server

new server has "nodejs" and "iojs" directories, upload to the
appropriate one

PR-URL: https://github.com/nodejs/node/pull/2623
Reviewed-By: jbergstroem - Johan Bergström <bugs@bergstroem.nu>
8 years agobuild: rename 'doc' directory to 'docs' for upload
Rod Vagg [Mon, 31 Aug 2015 06:05:02 +0000 (16:05 +1000)]
build: rename 'doc' directory to 'docs' for upload

to match nodejs.org directory name

PR-URL: https://github.com/nodejs/node/pull/2623
Reviewed-By: jbergstroem - Johan Bergström <bugs@bergstroem.nu>
8 years agotools: update release.sh to work with new website
Rod Vagg [Mon, 31 Aug 2015 06:01:01 +0000 (16:01 +1000)]
tools: update release.sh to work with new website

now need to specify "nodejs" or "iojs", also remove .gpg file

PR-URL: https://github.com/nodejs/node/pull/2623
Reviewed-By: jbergstroem - Johan Bergström <bugs@bergstroem.nu>
8 years agobuild: fix bad cherry-pick for vcbuild.bat build-release
Rod Vagg [Mon, 31 Aug 2015 10:24:38 +0000 (20:24 +1000)]
build: fix bad cherry-pick for vcbuild.bat build-release

PR-URL: https://github.com/nodejs/node/pull/2625
Reviewed-By: orangemocha - Alexis Campailla <orangemocha@nodejs.org>
Reviewed-By: joaocgreis - João Reis <reis@janeasystems.com>
8 years agodoc: add TSC meeting minutes 2015-08-12
Rod Vagg [Wed, 19 Aug 2015 10:49:12 +0000 (20:49 +1000)]
doc: add TSC meeting minutes 2015-08-12

PR-URL: https://github.com/nodejs/node/pull/2438
Reviewed-By: cjihrig - Colin Ihrig <cjihrig@gmail.com>
8 years agotest: unmark test-process-argv-0.js as flaky
Rich Trott [Sat, 29 Aug 2015 20:19:53 +0000 (13:19 -0700)]
test: unmark test-process-argv-0.js as flaky

https://github.com/nodejs/node/pull/2541 fixed flakiness
in test-process-argv-0.js. However, it was not removed
from the list of flaky tests. This removes it from the
list of flaky tests.

PR-URL: https://github.com/nodejs/node/pull/2613
Reviewed-By: cjihrig - Colin Ihrig <cjihrig@gmail.com>
8 years agodoc: add TSC meeting minutes 2015-08-26
Rod Vagg [Fri, 28 Aug 2015 06:24:29 +0000 (16:24 +1000)]
doc: add TSC meeting minutes 2015-08-26

PR-URL: https://github.com/nodejs/node/pull/2591
Reviewed-By: Sakthipriyan Vairamani <thechargingvolcano@gmail.com>
8 years agodoc: merge CHANGELOG.md with joyent/node ChangeLog
P.S.V.R [Tue, 25 Aug 2015 09:37:03 +0000 (17:37 +0800)]
doc: merge CHANGELOG.md with joyent/node ChangeLog

PR-URL: https://github.com/nodejs/node/pull/2536
Reviewed-By: Rod Vagg <rod@vagg.org>
8 years agotest: lint and refactor to avoid autocrlf issue
Roman Reiss [Sat, 29 Aug 2015 07:41:27 +0000 (09:41 +0200)]
test: lint and refactor to avoid autocrlf issue

The test was failing after adding 'use strict' because the windows CI
uses the autocrlf option of git which converts \r into \r\n on checkout.

Refactored the test to not read itself anymore and create a temp file on
the fly instead to avoid this line-ending issue.

PR-URL: https://github.com/nodejs/node/pull/2494
Reviewed-By: Joao Reis <reis@janeasystems.com>
8 years agodoc: clarify cluster behaviour with no workers
Jeremiah Senkpiel [Fri, 28 Aug 2015 21:26:07 +0000 (17:26 -0400)]
doc: clarify cluster behaviour with no workers

Fixes: https://github.com/nodejs/node/issues/1239
Ref: 41b75ca9263f368db790fbdcc3963bb1a8c5cb7e
PR-URL: https://github.com/nodejs/node/pull/2606
Reviewed-By: bnoordhuis - Ben Noordhuis <info@bnoordhuis.nl>
8 years agoIntroduce --link-module to ./configure
Bradley Meck [Sat, 22 Aug 2015 18:36:03 +0000 (13:36 -0500)]
Introduce --link-module to ./configure

- Allows specifying a _third_party_main outside of the node repository
- Allows embedders to create custom builtin modules outside of node's
  repository

PR-URL: https://github.com/nodejs/node/pull/2497
Reviewed-By: fishrock123 - Jeremiah Senkpiel <fishrock123@rocketmail.com>
Reviewed-By: jasnell - James M Snell <jasnell@gmail.com>
Reviewed-By: evanlucas - Evan Lucas <evanlucas@me.com>
Reviewed-By: cjihrig - Colin Ihrig <cjihrig@gmail.com>
8 years agowin,msi: correct installation path registry keys
João Reis [Wed, 26 Aug 2015 19:11:27 +0000 (20:11 +0100)]
win,msi: correct installation path registry keys

This is a port of 14db629497d0eb97a5f0fbb70cf3e534e460deec.

Original commit message:

  Since install is per machine only, installation path should be stored
  in local machine instead of current user. The registry stores HKLM in
  different places for 32 and 64 bit applications, so the installer
  will not suggest the old path when upgrading from 32 to 64 bit
  version.

  Fixes joyent/node#5592
  Fixes joyent/node#25087

  PR-URL: https://github.com/joyent/node/pull/25640
Reviewed-By: Alexis Campailla <alexis@janeasystems.com>
Reviewed-By: Bert Belder <bertbelder@gmail.com>
PR-URL: https://github.com/nodejs/node/pull/2565
Reviewed-By: Alexis Campailla <alexis@janeasystems.com>
8 years agowin,msi: change InstallScope to perMachine
João Reis [Wed, 26 Aug 2015 19:07:33 +0000 (20:07 +0100)]
win,msi: change InstallScope to perMachine

This is an adaptation of 8e80528453aca0354422162e09c7c9f4700ddb1e.

Original commit message:

  The MSI install scope was set to the WiX default, which is per-user.
  However, with UAC, it could not be installed by a standard user
  because InstallPrivileges is elevated by default, hence the install
  scope should be set to per-machine. Furthermore, the default install
  path is a per-machine location and setting the system path requires
  administrator privileges.

  By changing the InstallScope to perMachine, Start Menu shortcuts are
  placed in ProgramData and not the installing user's AppData folder,
  making the shortcuts available to other users. This also fixes the
  installation when AppData is a network folder.

  The custom action is necessary to allow upgrades. Since a per-machine
  MSI cannot upgrade an application installed per-user, the custom
  action checks if there is going to be an upgrade to a previous
  version installed per-user and sets the installation as per-user to
  allow upgrading. Hence, the advantages of installing per-machine will
  only apply in fresh installations.

  Fixes joyent/node#5849
  Fixes joyent/node#7629

  PR-URL: https://github.com/joyent/node/pull/25640
Reviewed-By: Alexis Campailla <alexis@janeasystems.com>
Reviewed-By: Bert Belder <bertbelder@gmail.com>
The original commit was adapted to search all upgrade codes listed in
the upgrade table, as the current installer tries to upgrade from two
different upgrade codes.

PR-URL: https://github.com/nodejs/node/pull/2565
Reviewed-By: Alexis Campailla <alexis@janeasystems.com>
8 years agodeps: update V8 to 4.4.63.30
Michaël Zasso [Thu, 27 Aug 2015 07:10:22 +0000 (09:10 +0200)]
deps: update V8 to 4.4.63.30

PR-URL: https://github.com/nodejs/node/pull/2482
Reviewed-By: Ben Noordhuis <info@bnoordhuis.nl>
8 years agotest: use tmpDir instead of fixturesDir
Sakthipriyan Vairamani [Thu, 27 Aug 2015 20:08:10 +0000 (01:38 +0530)]
test: use tmpDir instead of fixturesDir

This test was using fixturesDir to create temp files to test. This
patch replaces that with tmpDir and uses `assert` module to test.
Also, this test has been moved to `parallel`, from `sequential` mode.

PR-URL: https://github.com/nodejs/node/pull/2583
Reviewed-By: Ben Noordhuis <info@bnoordhuis.nl>
Reviewed-By: Rich Trott <rtrott@gmail.com>
8 years agoRevert "lib,src: add unix socket getsockname/getpeername"
Ben Noordhuis [Thu, 27 Aug 2015 20:47:15 +0000 (22:47 +0200)]
Revert "lib,src: add unix socket getsockname/getpeername"

This reverts commit 6cd0e2664b1ce944e5e461457d160be83f70d379.
This reverts commit 7a999a13766ac68049812fedbdfd15a0250f0f07.
This reverts commit f337595441641ad36f6ab8ae770e56c1673ef692.

It turns out that on Windows, uv_pipe_getsockname() is a no-op for
client sockets.  It slipped through testing because of a CI snafu.

PR-URL: https://github.com/nodejs/node/pull/2584
Reviewed-By: Sakthipriyan Vairamani <thechargingvolcano@gmail.com>
8 years agodoc: update io.js reference
Ben Noordhuis [Thu, 27 Aug 2015 15:57:09 +0000 (17:57 +0200)]
doc: update io.js reference

Commit f337595 ("lib,src: add unix socket getsockname/getpeername")
accidentally left in a reference to io.js v1.5.0 in the documentation.
Update it to say "Node.js v4.0.0", the upcoming release.

PR-URL: https://github.com/nodejs/node/pull/2580
Reviewed-By: Jeremiah Senkpiel <fishrock123@rocketmail.com>
8 years agolib: add net.Socket#localFamily property
Ben Noordhuis [Thu, 5 Mar 2015 13:24:53 +0000 (14:24 +0100)]
lib: add net.Socket#localFamily property

Complements the existing net.Socket#remoteFamily property.

PR-URL: https://github.com/nodejs/node/pull/956
Reviewed-By: Sam Roberts <vieuxtech@gmail.com>
Reviewed-By: Trevor Norris <trev.norris@gmail.com>
8 years agolib,src: add unix socket getsockname/getpeername
Ben Noordhuis [Wed, 25 Feb 2015 16:19:11 +0000 (17:19 +0100)]
lib,src: add unix socket getsockname/getpeername

The implementation is a minor API change in that socket.address() now
returns a `{ address: '/path/to/socket' }` object, like it does for TCP
and UDP sockets.  Before this commit, it returned `socket._pipeName`,
which is a string when present.

Change common.PIPE on Windows from '\\\\.\\pipe\\libuv-test' to
'\\\\?\\pipe\\libuv-test'.  Windows converts the '.' to a '?' when
creating a named pipe, meaning that common.PIPE didn't match the
result from NtQueryInformationFile().

Fixes: https://github.com/nodejs/node/issues/954
PR-URL: https://github.com/nodejs/node/pull/956
Reviewed-By: Sam Roberts <vieuxtech@gmail.com>
Reviewed-By: Trevor Norris <trev.norris@gmail.com>
8 years agosrc: DRY getsockname/getpeername code
Ben Noordhuis [Wed, 25 Feb 2015 15:40:40 +0000 (16:40 +0100)]
src: DRY getsockname/getpeername code

Extract the common logic into a template function.  No functional
changes, just code cleanup.

PR-URL: https://github.com/nodejs/node/pull/956
Reviewed-By: Sam Roberts <vieuxtech@gmail.com>
Reviewed-By: Trevor Norris <trev.norris@gmail.com>
8 years agodoc: minor clarification in buffer.markdown
Сковорода Никита Андреевич [Thu, 27 Aug 2015 08:52:03 +0000 (11:52 +0300)]
doc: minor clarification in buffer.markdown

Replaced "contents is" with "contents are".
Added a note that initial Buffer contents could contain sensitive data.

PR-URL: https://github.com/nodejs/node/pull/2574
Reviewed-By: Sakthipriyan Vairamani <thechargingvolcano@gmail.com>
Reviewed-By: Trevor Norris <trev.norris@gmail.com>
8 years agocrypto: Use OPENSSL_cleanse to shred the data.
Сковорода Никита Андреевич [Thu, 27 Aug 2015 09:24:45 +0000 (12:24 +0300)]
crypto: Use OPENSSL_cleanse to shred the data.

memset() is not useful here, it's efficiently a noop.

PR-URL: https://github.com/nodejs/node/pull/2575
Reviewed-By: Fedor Indutny <fedor.indutny@gmail.com>
8 years agotest: handling failure cases properly
Sakthipriyan Vairamani [Sun, 19 Jul 2015 19:20:21 +0000 (19:20 +0000)]
test: handling failure cases properly

Refer: https://github.com/nodejs/io.js/issues/1543

When this test fails, it leaves dead processes in the system. This
patch makes sure that the child processes exit first, in case of
errors.

PR-URL: https://github.com/nodejs/node/pull/2206
Reviewed-By: Johan Bergström <bugs@bergstroem.nu>
Reviewed-By: Ben Noordhuis <info@bnoordhuis.nl>
8 years agotest: initial list of flaky tests
Alexis Campailla [Wed, 26 Aug 2015 10:42:45 +0000 (12:42 +0200)]
test: initial list of flaky tests

This poplulates the lists of flaky tests with tests that failed recently
in Jenkins.

PR-URL: https://github.com/nodejs/node/pull/2424
Reviewed-By: Ben Noordhuis <info@bnoordhuis.nl>
Reviewed-By: João Reis <reis@janeasystems.com>
Reviewed-By: Sakthipriyan Vairamani <thechargingvolcano@gmail.com>
8 years agotest: pass args to test-ci via env variable
Alexis Campailla [Wed, 26 Aug 2015 10:41:16 +0000 (12:41 +0200)]
test: pass args to test-ci via env variable

PR-URL: https://github.com/nodejs/node/pull/2424
Reviewed-By: Ben Noordhuis <info@bnoordhuis.nl>
Reviewed-By: João Reis <reis@janeasystems.com>
Reviewed-By: Sakthipriyan Vairamani <thechargingvolcano@gmail.com>
8 years agotest: support flaky tests in test-ci
Alexis Campailla [Wed, 26 Aug 2015 10:38:48 +0000 (12:38 +0200)]
test: support flaky tests in test-ci

Adding support for specifying flaky test mode to
the test runner:
- via an environment variable FLAKY_TESTS for Makefile
- via an argument ignore-flaky for vcbuild.bat

Ported from https://github.com/joyent/node/commit/2d2494cf140c38327218a087593ff2177a9d0ec9

PR-URL: https://github.com/nodejs/node/pull/2424
Reviewed-By: Ben Noordhuis <info@bnoordhuis.nl>
Reviewed-By: João Reis <reis@janeasystems.com>
Reviewed-By: Sakthipriyan Vairamani <thechargingvolcano@gmail.com>
8 years agotest: add test configuration templates
Alexis Campailla [Tue, 18 Aug 2015 12:04:14 +0000 (14:04 +0200)]
test: add test configuration templates

Template configuration files for marking tests as flaky.

PR-URL: https://github.com/nodejs/node/pull/2424
Reviewed-By: Ben Noordhuis <info@bnoordhuis.nl>
Reviewed-By: João Reis <reis@janeasystems.com>
Reviewed-By: Sakthipriyan Vairamani <thechargingvolcano@gmail.com>
8 years agotest: runner should return 0 on flaky tests
Alexis Campailla [Tue, 7 Jul 2015 20:48:26 +0000 (22:48 +0200)]
test: runner should return 0 on flaky tests

Make the test runner return a 0 exit code when only
flaky tests fail and --flaky-tests=dontcare is specified.

Ported from https://github.com/joyent/node/commit/a9b642cf5b539e1b86698465d3d0b941d84c5352

PR-URL: https://github.com/nodejs/node/pull/2424
Reviewed-By: Ben Noordhuis <info@bnoordhuis.nl>
Reviewed-By: João Reis <reis@janeasystems.com>
Reviewed-By: Sakthipriyan Vairamani <thechargingvolcano@gmail.com>
8 years agotest: runner support for flaky tests
Alexis Campailla [Fri, 7 Nov 2014 13:15:24 +0000 (14:15 +0100)]
test: runner support for flaky tests

Adding --flaky-tests option, to allow regarding flaky tests failures
as non-fatal.

Currently only observed by the TapProgressIndicator, which will
add a # TODO directive to tests classified as flaky. According to the
TAP specification, the test harness is supposed to treat failures
that have a # TODO directive as non-fatal.

Ported from https://github.com/joyent/node/commit/df3a2b2cf21274fe7afc19d14ec0259b964e13f7

PR-URL: https://github.com/nodejs/node/pull/2424
Reviewed-By: Ben Noordhuis <info@bnoordhuis.nl>
Reviewed-By: João Reis <reis@janeasystems.com>
Reviewed-By: Sakthipriyan Vairamani <thechargingvolcano@gmail.com>
8 years agodebugger: use strict equality comparison
Minwoo Jung [Wed, 26 Aug 2015 12:17:52 +0000 (21:17 +0900)]
debugger: use strict equality comparison

There is no type-conversion to be done. Therefore, use the === operator.

PR-URL: https://github.com/nodejs/node/pull/2558
Reviewed-By: Rich Trott <rtrott@gmail.com>
8 years agohttp_parser: consume StreamBase instance
Fedor Indutny [Wed, 12 Aug 2015 03:02:22 +0000 (20:02 -0700)]
http_parser: consume StreamBase instance

Consume StreamBase instance and operate on incoming data directly
without allocating Buffer instances. Improves performance.

PR-URL: https://github.com/nodejs/node/pull/2355
Reviewed-By: Trevor Norris <trev.norris@gmail.com>
8 years agoenv: introduce `KickNextTick`
Fedor Indutny [Wed, 26 Aug 2015 11:37:50 +0000 (04:37 -0700)]
env: introduce `KickNextTick`

There might be a need to "kick off" the next tick queue and execute
events on it. Normally it is done through the `MakeCallback` interface,
but in case when it is not - we need a way to "kick them off" manually.

PR-URL: https://github.com/nodejs/node/pull/2355
Reviewed-By: Trevor Norris <trev.norris@gmail.com>
8 years agotest: make test-process-argv-0 robust
Rich Trott [Tue, 25 Aug 2015 16:18:25 +0000 (09:18 -0700)]
test: make test-process-argv-0 robust

Remove use of STDERR to avoid test flakiness on CentOS 5.

Use parent process exit event for assertion rather than child exit
event.

PR-URL: https://github.com/nodejs/node/pull/2541
Fixes: https://github.com/nodejs/node/issues/2477
Reviewed-By: Michaël Zasso <mic.besace@gmail.com>
8 years agosrc: missing Exception::Error in node_http_parser
Jeremiah Senkpiel [Tue, 25 Aug 2015 22:48:15 +0000 (18:48 -0400)]
src: missing Exception::Error in node_http_parser

Fixes: 75adde07f9a2de7f38a67bec72bd377d450bdb52
PR-URL: https://github.com/nodejs/node/pull/2550
Reviewed-By: Fedor Indutny <fedor@indutny.com>
8 years agodoc: add @jasnell and @sam-github to release team
Rod Vagg [Thu, 20 Aug 2015 04:52:33 +0000 (14:52 +1000)]
doc: add @jasnell and @sam-github to release team

Fixes: https://github.com/nodejs/node/issues/2416
PR-URL: https://github.com/nodejs/node/pull/2455
Reviewed-By: Colin Ihrig <cjihrig@gmail.com>
8 years agodoc: reorg release team to separate section
Rod Vagg [Thu, 20 Aug 2015 04:51:00 +0000 (14:51 +1000)]
doc: reorg release team to separate section

included:
 * commands to run to import all active keys
 * list of previous Node.js releasers key details

PR-URL: https://github.com/nodejs/node/pull/2455
Reviewed-By: Colin Ihrig <cjihrig@gmail.com>
8 years agodoc: fix bad merge on modules.markdown
James M Snell [Wed, 26 Aug 2015 01:58:08 +0000 (18:58 -0700)]
doc: fix bad merge on modules.markdown

My previous commit landed a bad merge on modules.markdown.
This fixes it.

8 years agodoc: minor additional corrections and improvements
James M Snell [Sat, 22 Aug 2015 02:21:06 +0000 (19:21 -0700)]
doc: minor additional corrections and improvements

Per feedback from @thefourtheye: (a) improve word on the
description of the `close` event in stream.markdown and
(b) remove `[module section]: modules.html` from
globals.markdown

Reviewed By: Sakthipriyan Vairamani <thechargingvolcano@gmail.com>
PR-URL: https://github.com/nodejs/node/pull/2378

8 years agodoc: minor grammatical update in crypto.markdown
James M Snell [Fri, 14 Aug 2015 23:23:00 +0000 (16:23 -0700)]
doc: minor grammatical update in crypto.markdown

Per: https://github.com/joyent/node/pull/8878

Originally submitted by @jacksonhoose

Reviewed By: Sakthipriyan Vairamani <thechargingvolcano@gmail.com>
PR-URL: https://github.com/nodejs/node/pull/2378

8 years agodoc: minor grammatical update
James M Snell [Fri, 14 Aug 2015 23:08:57 +0000 (16:08 -0700)]
doc: minor grammatical update

Per: https://github.com/joyent/node/pull/9009

Originally submitted by @peerwit

Reviewed By: Sakthipriyan Vairamani <thechargingvolcano@gmail.com>
PR-URL: https://github.com/nodejs/node/pull/2378

8 years agodoc: remove repeated statement in globals.markdown
James M Snell [Fri, 14 Aug 2015 22:54:28 +0000 (15:54 -0700)]
doc: remove repeated statement in globals.markdown

Per: https://github.com/joyent/node/pull/25102

Originally reported by @kuldipem

Reviewed By: Sakthipriyan Vairamani <thechargingvolcano@gmail.com>
PR-URL: https://github.com/nodejs/node/pull/2378

8 years agodoc: remove 'dudes' from documentation
James M Snell [Fri, 14 Aug 2015 22:27:17 +0000 (15:27 -0700)]
doc: remove 'dudes' from documentation

per: https://github.com/joyent/node/pull/25572#discussion_r33197896

Reviewed By: Sakthipriyan Vairamani <thechargingvolcano@gmail.com>
PR-URL: https://github.com/nodejs/node/pull/2378

8 years agodoc: update tense in child_process.markdown
James M Snell [Fri, 14 Aug 2015 22:23:25 +0000 (15:23 -0700)]
doc: update tense in child_process.markdown

per: https://github.com/joyent/node/pull/25826

originally submitted by: @ClimbsRocks

Reviewed By: Sakthipriyan Vairamani <thechargingvolcano@gmail.com>
PR-URL: https://github.com/nodejs/node/pull/2378

8 years agodoc: fixed worker.id type
James M Snell [Fri, 14 Aug 2015 22:12:47 +0000 (15:12 -0700)]
doc: fixed worker.id type

per: https://github.com/joyent/node/pull/25459

originally submitted by @sonnyp

Reviewed By: Sakthipriyan Vairamani <thechargingvolcano@gmail.com>
PR-URL: https://github.com/nodejs/node/pull/2378

8 years agodoc: port is optional for socket.bind()
James M Snell [Fri, 14 Aug 2015 22:05:24 +0000 (15:05 -0700)]
doc: port is optional for socket.bind()

per: https://github.com/joyent/node/pull/25356

originally submitted by @dcousens

Reviewed By: Sakthipriyan Vairamani <thechargingvolcano@gmail.com>
PR-URL: https://github.com/nodejs/node/pull/2378

8 years agodoc: fix minor types and grammar in fs docs
James M Snell [Fri, 14 Aug 2015 19:56:26 +0000 (12:56 -0700)]
doc: fix minor types and grammar in fs docs

per: https://github.com/joyent/node/pull/7431

originally submitted by @linclark

Reviewed By: Sakthipriyan Vairamani <thechargingvolcano@gmail.com>
PR-URL: https://github.com/nodejs/node/pull/2378

8 years agodoc: update parameter name in net.markdown
James M Snell [Fri, 14 Aug 2015 18:43:23 +0000 (11:43 -0700)]
doc: update parameter name in net.markdown

per: https://github.com/joyent/node/pull/7112

originally submitted by @Peekmo

Reviewed By: Sakthipriyan Vairamani <thechargingvolcano@gmail.com>
PR-URL: https://github.com/nodejs/node/pull/2378

8 years agodoc: small typo in domain.markdown
James M Snell [Fri, 14 Aug 2015 18:36:39 +0000 (11:36 -0700)]
doc: small typo in domain.markdown

per: https://github.com/joyent/node/pull/7715

originally submitted by @tonylukasavage

Reviewed By: Sakthipriyan Vairamani <thechargingvolcano@gmail.com>
PR-URL: https://github.com/nodejs/node/pull/2378

8 years agodoc: fixed typo in net.markdown (missing comma)
James M Snell [Fri, 14 Aug 2015 18:07:13 +0000 (11:07 -0700)]
doc: fixed typo in net.markdown (missing comma)

per: https://github.com/joyent/node/pull/7930

originally submitted by @pbrewczynski

Reviewed By: Sakthipriyan Vairamani <thechargingvolcano@gmail.com>
PR-URL: https://github.com/nodejs/node/pull/2378

8 years agodoc: update description of fs.exists in fs.markdown
James M Snell [Fri, 14 Aug 2015 17:59:07 +0000 (10:59 -0700)]
doc: update description of fs.exists in fs.markdown

per: https://github.com/joyent/node/pull/7944

originally submitted by @oconnore

Minor update to the description in `fs.exists()`

Reviewed By: Sakthipriyan Vairamani <thechargingvolcano@gmail.com>
PR-URL: https://github.com/nodejs/node/pull/2378

8 years agodoc: clarification on the 'close' event
James M Snell [Fri, 14 Aug 2015 17:46:43 +0000 (10:46 -0700)]
doc: clarification on the 'close' event

per: https://github.com/joyent/node/pull/8209

originally submitted by @jeromew

Reviewed By: Sakthipriyan Vairamani <thechargingvolcano@gmail.com>
PR-URL: https://github.com/nodejs/node/pull/2378

8 years agodoc: improve working in stream.markdown
James M Snell [Fri, 14 Aug 2015 17:39:20 +0000 (10:39 -0700)]
doc: improve working in stream.markdown

per: https://github.com/joyent/node/pull/8430

originally submitted by @mscdex

Reviewed By: Sakthipriyan Vairamani <thechargingvolcano@gmail.com>
PR-URL: https://github.com/nodejs/node/pull/2378

8 years agodoc: update path.extname documentation
James M Snell [Fri, 14 Aug 2015 17:25:10 +0000 (10:25 -0700)]
doc: update path.extname documentation

per: https://github.com/joyent/node/pull/8509

originally submitted by @thauburger

Adding an additional example to path.extname documentation
to demonstrate the case where the first character of the last
path component is '.'. This case is interesting, as something
like path.extname('.txt') returns an empty string. In this
case, .txt can be used as a valid file name (while arguably
maintaining an extension). I agree with Node's behavior in this
case, but I think the added example provides additional clarity
for the developer.

Reviewed By: Sakthipriyan Vairamani <thechargingvolcano@gmail.com>
PR-URL: https://github.com/nodejs/node/pull/2378

8 years agodoc: small clarifications to modules.markdown
James M Snell [Fri, 14 Aug 2015 17:09:30 +0000 (10:09 -0700)]
doc: small clarifications to modules.markdown

per: https://github.com/joyent/node/pull/8708

A modified version of the original PR submitted by @builtbylane.

Reviewed By: Sakthipriyan Vairamani <thechargingvolcano@gmail.com>
PR-URL: https://github.com/nodejs/node/pull/2378

8 years agodoc: code style cleanups in repl.markdown
James M Snell [Fri, 14 Aug 2015 17:00:54 +0000 (10:00 -0700)]
doc: code style cleanups in repl.markdown

per: https://github.com/joyent/node/pull/8778

originally submitted by @reggi

Reviewed By: Sakthipriyan Vairamani <thechargingvolcano@gmail.com>
PR-URL: https://github.com/nodejs/node/pull/2378

8 years agodoc: correct grammar in cluster.markdown
James M Snell [Fri, 14 Aug 2015 16:48:49 +0000 (09:48 -0700)]
doc: correct grammar in cluster.markdown

per: https://github.com/joyent/node/pull/14352

originally submitted by @AlexKVal

Reviewed By: Sakthipriyan Vairamani <thechargingvolcano@gmail.com>
PR-URL: https://github.com/nodejs/node/pull/2378

8 years agodoc: Clarify the module.parent is set once
James M Snell [Fri, 14 Aug 2015 16:46:07 +0000 (09:46 -0700)]
doc: Clarify the module.parent is set once

Per: https://github.com/jorrit/node/commit/54a7f79a4a2ecb9c6f235a03287fe2992f19f0bb

Fixes: https://github.com/joyent/node/issues/6149

Originally submitted by @jorrit

Reviewed By: Sakthipriyan Vairamani <thechargingvolcano@gmail.com>
PR-URL: https://github.com/nodejs/node/pull/2378

8 years agotest: speed up test-child-process-spawnsync.js
Rich Trott [Tue, 25 Aug 2015 16:45:42 +0000 (09:45 -0700)]
test: speed up test-child-process-spawnsync.js

There's a bunch of stuff in test-child-process-spawnsync.js that seems
designed to test that it is in fact blocking/synchronous. However, that
code really just tests the OS sleep command. Change `sleep 1` to `sleep
0` and shave about one second off the test run.`

We check the return status to confirm the command is successful. The
tests in this file in general would not work if spawnSync() were
asynchronous. That includes this one, as a return status would not be
available if the command where asynchronous.

PR-URL: https://github.com/nodejs/node/pull/2542
Reviewed-By: Colin Ihrig <cjihrig@gmail.com>
8 years agobuild: only define NODE_V8_OPTIONS if not empty
Evan Lucas [Tue, 25 Aug 2015 00:13:22 +0000 (19:13 -0500)]
build: only define NODE_V8_OPTIONS if not empty

Previously, V8::SetFlagsFromString was called on every launch even if
NODE_V8_OPTIONS was an empty string. This patch only defines
NODE_V8_OPTIONS if node_v8_options is not an empty string.

PR-URL: https://github.com/nodejs/node/pull/2532
Reviewed-By: Ben Noordhuis <info@bnoordhuis.nl>
Reviewed-By: Rod Vagg <rod@vagg.org>
8 years agodoc: add internal modules notice
Jeremiah Senkpiel [Mon, 24 Aug 2015 14:29:40 +0000 (10:29 -0400)]
doc: add internal modules notice

Explicitly note that these modules should not be used outside of core.

PR-URL: https://github.com/nodejs/node/pull/2523
Reviewed-By: James M Snell <jasnell@gmail.com>
Reviewed-By: Colin Ihrig <cjihrig@gmail.com>
Reviewed-By: Sakthipriyan Vairamani <thechargingvolcano@gmail.com>
Reviewed-By: Michaël Zasso <mic.besace@gmail.com>
8 years agotest: make spawnSync() test robust
Rich Trott [Tue, 25 Aug 2015 04:25:48 +0000 (21:25 -0700)]
test: make spawnSync() test robust

The test had checked that a timer fired within a period after
spawnSync() returns. The result was a test that sometimes was
flaky.

Because there's no guarantee of how long a timer will take
before running, remove the check. There is a check that the
timer runs after spawnSync() so that is sufficient.

PR-URL: https://github.com/nodejs/node/pull/2535
Fixes: https://github.com/nodejs/node/issues/2470
Reviewed-By: Ben Noordhuis <info@bnoordhuis.nl>
8 years agowin,msi: Upgrade from old upgrade code
João Reis [Tue, 18 Aug 2015 18:50:10 +0000 (19:50 +0100)]
win,msi: Upgrade from old upgrade code

This enables the MSI to upgrade old Node.js versions and
early versions of io.js before the upgrade code was changed.

This also reverts 24def662936ae8c15770ede0344cd7a7402a63ef.

PR-URL: https://github.com/nodejs/node/pull/2439
Reviewed-By: Rod Vagg <rod@vagg.org>
8 years agotools: make add-on scraper print filenames
Ben Noordhuis [Thu, 20 Aug 2015 14:57:03 +0000 (16:57 +0200)]
tools: make add-on scraper print filenames

Make the tool that generates add-ons from doc/api/addons.markdown print
the names of the files it writes out.  Before this commit, it printed a
rather unhelpful "Done."

PR-URL: https://github.com/nodejs/node/pull/2428
Reviewed-By: Johan Bergström <bugs@bergstroem.nu>
Reviewed-By: Rod Vagg <rod@vagg.org>
8 years agobuild: make ci test addons in test/addons
Ben Noordhuis [Tue, 18 Aug 2015 19:29:59 +0000 (21:29 +0200)]
build: make ci test addons in test/addons

Make `make test-addons` part of the `make test-ci` target.

Use order-only prerequisites to make generating and building the add-ons
concurrency-safe when $JOBS > 1 and fudge the dependency on $(NODE_EXE)
so that add-ons are only rebuilt when needed instead of all the time.

PR-URL: https://github.com/nodejs/node/pull/2428
Reviewed-By: Johan Bergström <bugs@bergstroem.nu>
Reviewed-By: Rod Vagg <rod@vagg.org>
8 years agodoc: update changelog for io.js v3.2.0
Rod Vagg [Sun, 23 Aug 2015 12:08:06 +0000 (22:08 +1000)]
doc: update changelog for io.js v3.2.0

Notable changes:

* events: Added EventEmitter#listenerCount(event) as a replacement for
  EventEmitter.listenerCount(emitter, event), which has now been
  marked as deprecated in the docs. (Sakthipriyan Vairamani) #2349
* module: Fixed an error with preloaded modules when the current
  working directory doesn't exist. (Bradley Meck) #2353
* node: Startup time is now about 5% faster when not passing V8 flags.
  (Evan Lucas) #2483
* repl: Tab-completion now works better with arrays.
  (James M Snell) #2409
* string_bytes: Fixed an unaligned write in the handling of UCS2
  encoding. (Fedor Indutny) #2480
* tls: Added a new --tls-cipher-list flag that can be used to override
  the built-in default cipher list. (James M Snell) #2412

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

8 years agotest: refactor test-https-simple.js
Rich Trott [Wed, 19 Aug 2015 06:15:25 +0000 (23:15 -0700)]
test: refactor test-https-simple.js

This refactoring:

* eliminates the need for the external `curl` command
* speeds the test by running the two test requests simultaneously
* checks the type of error in the test that expects a failure
    (previously, any error type would cause the test to pass)

PR-URL: https://github.com/nodejs/node/pull/2433
Reviewed-By: Brendan Ashworth <brendan.ashworth@me.com>
Reviewed-By: Sakthipriyan Vairamani <thechargingvolcano@gmail.com>
8 years agobuild: use required platform in android-configure
Evan Lucas [Sun, 23 Aug 2015 03:40:41 +0000 (22:40 -0500)]
build: use required platform in android-configure

The introduction of libuv 1.6.0 broke the android-configure script by
not specifying the correct platform. uv_os_homedir uses getpwuid_r
which was not made public until API level 21 on android.

The regression was introduced in a804026...b5cd2f0

PR-URL: https://github.com/nodejs/node/pull/2501
Reviewed-By: Ben Noordhuis <info@bnoordhuis.nl>
8 years agostream: rename poorly named function
Ben Noordhuis [Thu, 20 Aug 2015 20:33:12 +0000 (22:33 +0200)]
stream: rename poorly named function

roundUpToNextPowerOf2() does more than just rounding up to the next
power of two.  Rename it to computeNewHighWaterMark().

PR-URL: https://github.com/nodejs/node/pull/2479
Reviewed-By: Chris Dickinson <christopher.s.dickinson@gmail.com>
Reviewed-By: Sakthipriyan Vairamani <thechargingvolcano@gmail.com>
8 years agostream: micro-optimize high water mark calculation
Ben Noordhuis [Thu, 20 Aug 2015 20:29:57 +0000 (22:29 +0200)]
stream: micro-optimize high water mark calculation

Don't iterate over all 32 bits, use some hacker's delight bit twiddling
to compute the next power of two.

The logic can be reduced to `n = 1 << 32 - Math.clz32(n)` but then it
can't easily be backported to v2.x; Math.clz32() was added in V8 4.3.

PR-URL: https://github.com/nodejs/node/pull/2479
Reviewed-By: Chris Dickinson <christopher.s.dickinson@gmail.com>
Reviewed-By: Sakthipriyan Vairamani <thechargingvolcano@gmail.com>
8 years agostream: fix off-by-factor-16 error in comment
Ben Noordhuis [Thu, 20 Aug 2015 20:19:46 +0000 (22:19 +0200)]
stream: fix off-by-factor-16 error in comment

The high watermark is capped at 8 MB, not 128 MB like the comment
in lib/_stream_readable.js said.

PR-URL: https://github.com/nodejs/node/pull/2479
Reviewed-By: Chris Dickinson <christopher.s.dickinson@gmail.com>
Reviewed-By: Sakthipriyan Vairamani <thechargingvolcano@gmail.com>
8 years agomodule: fix module preloading when cwd is ENOENT
Bradley Meck [Wed, 12 Aug 2015 00:25:49 +0000 (20:25 -0400)]
module: fix module preloading when cwd is ENOENT

Fixes a regression from 5759722cfacf17cc79651c81801a5e03521db053
that prevented modules from being preloaded if the cwd does not exist.
Absolute and builtin modules now preload correctly again.

Refs: https://github.com/nodejs/node/issues/1803
PR-URL: https://github.com/nodejs/node/pull/2353
Reviewed-By: Jeremiah Senkpiel <fishrock123@rockemail.com>
8 years agotest: remove test-timers-first-fire
João Reis [Thu, 20 Aug 2015 10:04:10 +0000 (11:04 +0100)]
test: remove test-timers-first-fire

According to the documentation, "io.js makes no guarantees
about the exact timing of when the callback will fire"
(https://iojs.org/api/timers.html#timers_settimeout_callback_delay_arg),
hence this test is not necessary.

PR-URL: https://github.com/nodejs/node/pull/2458
Reviewed-By: Ben Noordhuis <ben@strongloop.com>
Reviewed-By: Alexis Campailla <alexis@janeasystems.com>
8 years agowin: fix custom actions for WiX older than 3.9
João Reis [Tue, 21 Jul 2015 20:39:15 +0000 (21:39 +0100)]
win: fix custom actions for WiX older than 3.9

This is a port of joyent/node@e192f61514cd1500de895cb10128d412f842d7d0 .

Original commit message:

  Older WiX versions included a header with extern "C" declaration,
  hence the custom action source must be C++.

Reviewed-By: João Reis <reis@janeasystems.com>
  PR-URL: https://github.com/joyent/node/pull/25569

PR-URL: https://github.com/nodejs/node/pull/2365
Reviewed-By: Alexis Campailla <alexis@janeasystems.com>