platform/upstream/nodejs.git
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>
9 years agosrc: re-enable fast math on arm
Michaël Zasso [Fri, 28 Aug 2015 07:02:32 +0000 (09:02 +0200)]
src: re-enable fast math on arm

Ref: https://github.com/nodejs/node/issues/1376
Ref: https://github.com/nodejs/node/pull/1398
Issue fixed in V8: https://chromium.googlesource.com/v8/v8/+/81703350bbb9923d211fe5b79e90bd458b0916e2
V8-Bug: https://code.google.com/p/v8/issues/detail?id=4019

PR-URL: https://github.com/nodejs/node/pull/2592
Reviewed-By: Rod Vagg <rod@vagg.org>
Reviewed-By: Ben Noordhuis <info@bnoordhuis.nl>
Reviewed-By: Ali Ijaz Sheikh <ofrobots@google.com>
9 years agosrc: enable vector ics on arm again
Ali Ijaz Sheikh [Sun, 23 Aug 2015 19:53:05 +0000 (12:53 -0700)]
src: enable vector ics on arm again

The flag is no longer supported by V8 4.5, and the original issue [1] on ARMv6
no longer manifests with (at least) 4.5.103.20.

[1] See https://code.google.com/p/v8/issues/detail?id=4338

PR-URL: https://github.com/nodejs/node/pull/2509
Reviewed-By: Ben Noordhuis <info@bnoordhuis.nl>
9 years agosrc: replace usage of v8::Handle with v8::Local
Michaël Zasso [Sat, 18 Jul 2015 09:34:16 +0000 (11:34 +0200)]
src: replace usage of v8::Handle with v8::Local
v8::Handle is deprecated: https://codereview.chromium.org/1224623004

PR-URL: https://github.com/nodejs/io.js/pull/2202
Reviewed-By: Ben Noordhuis <info@bnoordhuis.nl>
9 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>
9 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>
9 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>
9 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>
9 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>
9 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>
9 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>
9 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

9 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>
9 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>
9 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>
9 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>
9 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>
9 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

9 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>
9 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>
9 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>
9 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>
9 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>
9 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>
9 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>
9 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>
9 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>
9 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>
9 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>
9 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>
9 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>
9 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>
9 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>
9 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>
9 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>
9 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>
9 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>
9 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>
9 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>
9 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>
9 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>
9 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>
9 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>
9 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>
9 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>
9 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>
9 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>
9 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>
9 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>
9 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>
9 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>
9 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>
9 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>
9 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>
9 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>
9 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>
9 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>
9 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>
9 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>
9 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>
9 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>
9 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>
9 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>
9 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>
9 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>
9 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>
9 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>
9 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.

9 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