platform/upstream/nodejs.git
9 years agobuffer: FreeCallback should be tied to ArrayBuffer
Fedor Indutny [Tue, 6 Oct 2015 03:26:13 +0000 (23:26 -0400)]
buffer: FreeCallback should be tied to ArrayBuffer

FreeCallback should be invoked on the storage disposal (`ArrayBuffer`),
not when the view (`Uint8Array` or `Buffer`) is disposed. This causes
bug and crashes in addons which create buffers and store only slices of
them.

PR-URL: https://github.com/nodejs/node/pull/3198
Reviewed-By: Ben Noordhuis <info@bnoordhuis.nl>
Reviewed-By: Trevor Norris <trev.norris@gmail.com>
9 years agotest: make common.js mandatory via linting rule
Rich Trott [Fri, 2 Oct 2015 04:38:16 +0000 (21:38 -0700)]
test: make common.js mandatory via linting rule

test/common.js contains code that detects global variable leaks.

This eslint rule checks that a module named `common` is loaded. It is
only applicable to files in the test directory. Tests that intentionally
leak variables can opt out with an eslint-disable comment.

PR-URL: https://github.com/nodejs/node/pull/3157
Reviewed-By: Rod Vagg <rod@vagg.org>
Reviewed-By: Colin Ihrig <cjihrig@gmail.com>
9 years agotest: load common.js in all tests
Rich Trott [Fri, 2 Oct 2015 04:37:12 +0000 (21:37 -0700)]
test: load common.js in all tests

common.js contains code that detects leaked variables.

In preparation for an eslint rule that will enforce loading common.js in
test files, load it everywhere it can be loaded and use an
`eslint-disable` comment for files that intentionally leak.

PR-URL: https://github.com/nodejs/node/pull/3157
Reviewed-By: Rod Vagg <rod@vagg.org>
Reviewed-By: Colin Ihrig <cjihrig@gmail.com>
9 years agotools: apply linting to custom rules code
Rich Trott [Mon, 5 Oct 2015 21:59:36 +0000 (14:59 -0700)]
tools: apply linting to custom rules code

Apply our eslint rules to the code for our custom eslint rules.

Eslint Inception! Maybe. I never saw that movie...

PR-URL: https://github.com/nodejs/node/pull/3195
Reviewed-By: Sakthipriyan Vairamani <thechargingvolcano@gmail.com>
Reviewed-By: Ben Noordhuis <info@bnoordhuis.nl>
Reviewed-By: Roman Reiss <me@silverwind.io>
9 years agobuffer: only check if instance is Uint8Array
Trevor Norris [Sat, 26 Sep 2015 21:26:52 +0000 (15:26 -0600)]
buffer: only check if instance is Uint8Array

Native Buffer method calls do not require anything from the prototype.
So it is unnecessary to check if the Object's prototype is equal to
Buffer.prototype.

This fixes an issue that prevents Buffer from being inherited the ES5
way. Now the following will work:

    function A(n) {
      const b = new Buffer(n);
      Object.setPrototypeOf(b, A.prototype);
      return b;
    }

    Object.setPrototypeOf(A.prototype, Buffer.prototype);
    Object.setPrototypeOf(A, Buffer);

    console.log(new A(4));

Fix: https://github.com/nodejs/node/issues/2882
PR-URL: https://github.com/nodejs/node/pull/3080
Reviewed-By: Ben Noordhuis <info@bnoordhuis.nl>
9 years agobuffer: clean up usage of __proto__
Trevor Norris [Sat, 26 Sep 2015 22:18:08 +0000 (16:18 -0600)]
buffer: clean up usage of __proto__

Prefer using Object.setPrototypeOf() instead.

PR-URL: https://github.com/nodejs/node/pull/3080
Reviewed-By: Ben Noordhuis <info@bnoordhuis.nl>
9 years agoutil: fix for inspecting promises
Evan Lucas [Tue, 6 Oct 2015 01:44:09 +0000 (20:44 -0500)]
util: fix for inspecting promises

The upgrade to v8 4.6 removes ObjectIsPromise. This change utilizes
v8::Value::IsPromise to verify that the argument is indeed a promise.

PR-URL: https://github.com/nodejs/node/pull/3221
Reviewed-By: Ben Noordhuis <info@bnoordhuis.nl>
9 years agotools: remove unused gflags module
Ben Noordhuis [Tue, 6 Oct 2015 20:17:40 +0000 (22:17 +0200)]
tools: remove unused gflags module

Its only dependant was closure-linter but that was removed in commit
f9dd34d ("tools: replace closure-linter with eslint").  Remove it.

Fixes: https://github.com/nodejs/node/issues/3217
PR-URL: https://github.com/nodejs/node/pull/3220
Reviewed-By: Trevor Norris <trev.norris@gmail.com>
9 years agobuild: intl: avoid 'duplicate main()' on ICU 56
Steven R. Loomis [Fri, 25 Sep 2015 18:33:25 +0000 (14:33 -0400)]
build: intl: avoid 'duplicate main()' on ICU 56

* Exclude `derb.cpp` as well as `derb.c` from Node builds
  (file was renamed in ICU 56)

ICU 56 renamed derb.c to derb.cpp because of C++ yay.
This broke the exclusion of "derb.c" when building tools.

Solution is to add derb.c AND derb.cpp to exclusion.
We don't build the 'derb' tool, so it's fine to list the
excluded source twice.

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

9 years agodoc: fix README.md link to joyent/node intl wiki
Steven R. Loomis [Tue, 6 Oct 2015 18:18:33 +0000 (14:18 -0400)]
doc: fix README.md link to joyent/node intl wiki

Fix README.md link to go to nodejs/node wiki instead of joyent/node

Fixes: https://github.com/nodejs/node/issues/2756
PR-URL: https://github.com/nodejs/node/pull/3067
Reviewed-By: Jeremiah Senkpiel <fishrock123@rocketmail.com>
Reviewed-By: Roman Reiss <me@silverwind.io>
Reviewed-By: Sakthipriyan Vairamani <thechargingvolcano@gmail.com>
9 years agotest: speed up stringbytes-external test
Evan Lucas [Tue, 22 Sep 2015 14:54:57 +0000 (09:54 -0500)]
test: speed up stringbytes-external test

test-stringbytes-external tends to take quite a while on slower
hardware. A lot of the time is taken by creating a new buffer that is
very large. The improvements come from reusing the same buffer.

PR-URL: https://github.com/nodejs/node/pull/3005
Reviewed-By: Brian White <mscdex@mscdex.net>
Reviewed-By: Trevor Norris <trev.norris@gmail.com>
Reviewed-By: Roman Reiss <me@silverwind.io>
9 years agotest: use normalize() for unicode paths
Roman Reiss [Tue, 22 Sep 2015 16:31:01 +0000 (18:31 +0200)]
test: use normalize() for unicode paths

OS X 10.11 changed the unicode normalization form of certain code points
returned by system calls like getcwd() from NFC to NFD which made
results in this test failing.

The consensus of https://github.com/nodejs/node/issues/2165 is to delegate
the task of unicode normalization to the user, and work will continue to
document how to handle unicode in a form-sensitive file system.

PR-URL: https://github.com/nodejs/node/pull/3007
Fixes: https://github.com/nodejs/node/issues/2165
Reviewed-By: Johan Bergström <bugs@bergstroem.nu>
Reviewed-By: Jeremiah Senkpiel <fishrock123@rocketmail.com>
Reviewed-By: Sakthipriyan Vairamani <thechargingvolcano@gmail.com>
9 years agolib: remove redundant code, add tests in timers.js
Rich Trott [Thu, 1 Oct 2015 05:18:36 +0000 (22:18 -0700)]
lib: remove redundant code, add tests in timers.js

insert() is only called from one place where there is already a check
that msecs is greater than or equal to zero, so do not repeat the check
inside insert().

timers.active() is not documented and should not be exposed, but since
it is exposed for now, let's test it.

PR-URL: https://github.com/nodejs/node/pull/3143
Reviewed-By: Jeremiah Senkpiel <fishrock123@rocketmail.com>
Reviewed-By: Sakthipriyan Vairamani <thechargingvolcano@gmail.com>
9 years agoutil: correctly inspect Map/Set Iterators
Evan Lucas [Tue, 29 Sep 2015 19:30:22 +0000 (14:30 -0500)]
util: correctly inspect Map/Set Iterators

Previously, a MapIterator or SetIterator would
not be inspected properly. This change makes it possible
to inspect them by creating a Debug Mirror and previewing
the iterators to not consume the actual iterator that
we are trying to inspect.

This change also adds a node_util binding that uses
v8's Value::IsSetIterator and Value::IsMapIterator
to verify that the values passed in are actual iterators.

Fixes: https://github.com/nodejs/node/issues/3107
PR-URL: https://github.com/nodejs/node/pull/3119
Reviewed-By: Ben Noordhuis <info@bnoordhuis.nl>
9 years agoutil: fix check for Array constructor
Evan Lucas [Mon, 5 Oct 2015 21:29:27 +0000 (16:29 -0500)]
util: fix check for Array constructor

In the event an Array is created in a Debug context, the constructor
will be Array, but !== Array. This adds a check
constructor.name === 'Array' to handle edge cases like that.

PR-URL: https://github.com/nodejs/node/pull/3119
Reviewed-By: Ben Noordhuis <info@bnoordhuis.nl>
9 years agosrc: fix --abort-on-uncaught-exception
Jeremy Whitlock [Mon, 5 Oct 2015 20:08:53 +0000 (13:08 -0700)]
src: fix --abort-on-uncaught-exception

Revert 0af4c9ea7434e4f505dbe071357e4bc3b4ab2a8a, parts of
921f2de6cf999b5a4663615e37967b4269d755fe and port
https://github.com/nodejs/node-v0.x-archive/pull/25835 from v0.12 to
master so that node aborts at the right time when an error is thrown
and --abort-on-uncaught-exception is used.

Fixes #3035.

PR: #3036
PR-URL: https://github.com/nodejs/node/pull/3036
Reviewed-By: Ben Noordhuis <ben@strongloop.com>
9 years agodeps: backport 1ee712a from V8 upstream
Julien Gilli [Mon, 5 Oct 2015 20:13:18 +0000 (13:13 -0700)]
deps: backport 1ee712a from V8 upstream

Backport 1ee712ab8687e5f4dec93d45da068d37d28feb8b from V8 upstream.

Original commit message:

  Add SetAbortOnUncaughtExceptionCallback API

  The --abort-on-uncaught-exception command line switch makes
  Isolate::Throw abort if the error being thrown cannot be caught by a
  try/catch block.

  Embedders may want to use other mechanisms than try/catch blocks to
  handle uncaught exceptions. For instance, Node.js has "domain" objects
  that have error handlers that can handle uncaught exception like
  following:

  var d = domain.create();

  d.on('error', function onError(err) {
    console.log('Handling error');
  });

  d.run(function() {
    throw new Error("boom");
  });

  These error handlers are called by isolates' message listeners.

  If --abort-on-uncaught-exception is *not* used, the isolate's
  message listener will be called, which will in turn call the domain's
  error handler. The process will output 'Handling error' and will exit
  successfully (not due to an uncaught exception). This is the behavior
  that Node.js users expect.

  However, if --abort-on-uncaught-exception is used and when throwing an
  error within a domain that has an error handler, the process will abort
  and the domain's error handler will not be called. This is not the
  behavior that Node.js users expect.

  Having a SetAbortOnUncaughtExceptionCallback API allows embedders to
  determine when it's not appropriate to abort and instead handle the
  exception via the isolate's message listener.

  In the example above, Node.js would set a custom callback with
  SetAbortOnUncaughtExceptionCallback that would be implemented as
  following (the sample code has been simplified to remove what's not
  relevant to this change):

  bool ShouldAbortOnUncaughtException(Isolate* isolate) {
    return !IsDomainActive();
  }

  Now when --abort-on-uncaught-exception is used, Isolate::Throw would
  call that callback and determine that it should not abort if a domain
  with an error handler is active. Instead, the isolate's message listener
  would be called and the error would be handled by the domain's error
  handler.

  I believe this can also be useful for other embedders.

  BUG=

  R=bmeurer@chromium.org

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

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

PR: #3036
PR-URL: https://github.com/nodejs/node/pull/3036
Reviewed-By: Ben Noordhuis <ben@strongloop.com>
9 years agomodule: use UNC paths when loading native addons
Justin Chase [Sat, 19 Sep 2015 22:03:32 +0000 (17:03 -0500)]
module: use UNC paths when loading native addons

When using require to load a native addon the path must be converted
into a long path, otherwise the addon will fail to be loaded on
windows if the path is longer than 260 characters.

PR-URL: https://github.com/nodejs/node/pull/2965
Reviewed-By: Ben Noordhuis <info@bnoordhuis.nl>
Reviewed-By: Benjamin Gruenbaum <inglor@gmail.com>
9 years agotest: remove arguments.callee usage
Roman Reiss [Sat, 3 Oct 2015 11:44:58 +0000 (13:44 +0200)]
test: remove arguments.callee usage

arguments.callee is forbidden in strict mode and the fact that it's
being used masked a possible error in this test.

PR-URL: https://github.com/nodejs/node/pull/3167
Reviewed-By: Sakthipriyan Vairamani <thechargingvolcano@gmail.com>
Reviewed-By: Michaël Zasso <mic.besace@gmail.com>
Reviewed-By: Сковорода Никита Андреевич <chalkerx@gmail.com>
9 years agonode: add -c|--check CLI arg to syntax check script
Dave Eddy [Mon, 17 Aug 2015 21:33:13 +0000 (17:33 -0400)]
node: add -c|--check CLI arg to syntax check script

PR-URL: https://github.com/nodejs/node/pull/2411
Reviewed-By: Rod Vagg <rod@vagg.org>
Reviewed-By: Ben Noordhuis <info@bnoordhuis.nl>
Reviewed-By: Evan Lucas <evanlucas@me.com>
9 years agofs: include filename in watch errors
charlierudolph [Wed, 30 Sep 2015 05:03:27 +0000 (22:03 -0700)]
fs: include filename in watch errors

This commit adds the relevant filename to fs.watch() errors.

Refs: https://github.com/nodejs/node-v0.x-archive/pull/25542
PR-URL: https://github.com/nodejs/node/pull/2748
Reviewed-By: Colin Ihrig <cjihrig@gmail.com>
9 years agosrc: add process.versions.icu
Evan Lucas [Sun, 27 Sep 2015 15:59:02 +0000 (10:59 -0500)]
src: add process.versions.icu

If i18n support is present, add the icu version
to process.versions

Fixes: https://github.com/nodejs/node/issues/3089
PR-URL: https://github.com/nodejs/node/pull/3102
Reviewed-By: Steven R Loomis <srloomis@us.ibm.com>
Reviewed-By: Roman Reiss <me@silverwind.io>
Reviewed-By: Rod Vagg <rod@vagg.org>
9 years agohttp: add comment about `outputSize` in res/server
Fedor Indutny [Mon, 5 Oct 2015 17:30:30 +0000 (13:30 -0400)]
http: add comment about `outputSize` in res/server

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

9 years agoWorking on v4.1.3
Rod Vagg [Mon, 5 Oct 2015 19:55:44 +0000 (06:55 +1100)]
Working on v4.1.3

9 years ago2015-10-05, Version 4.1.2 (Stable) Release v4.1.2
Rod Vagg [Wed, 30 Sep 2015 08:42:34 +0000 (18:42 +1000)]
2015-10-05, Version 4.1.2 (Stable) Release

Notable changes

* http:
  - Fix out-of-order 'finish' event bug in pipelining that can abort
    execution, fixes DoS vulnerability CVE-2015-7384
    (Fedor Indutny) #3128
  - Account for pending response data instead of just the data on the
    current request to decide whether pause the socket or not
    (Fedor Indutny) #3128
* libuv: Upgraded from v1.7.4 to v1.7.5, see release notes for details
  (Saúl Ibarra Corretgé) #3010
  - A better rwlock implementation for all Windows versions
  - Improved AIX support
* v8:
  - Upgraded from v4.5.103.33 to v4.5.103.35 (Ali Ijaz Sheikh) #3117
  - Backported f782159 from v8's upstream to help speed up Promise
    introspection (Ben Noordhuis) #3130
  - Backported c281c15 from v8's upstream to add JSTypedArray length
    in post-mortem metadata (Julien Gilli) #3031

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

9 years agostream_wrap: support empty `TryWrite`s
Fedor Indutny [Sat, 3 Oct 2015 20:15:15 +0000 (16:15 -0400)]
stream_wrap: support empty `TryWrite`s

Decrement `vcount` in `DoTryWrite` even if some of the buffers are
empty.

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

9 years agohttp_server: pause socket properly
Fedor Indutny [Sat, 3 Oct 2015 19:27:19 +0000 (15:27 -0400)]
http_server: pause socket properly

Account pending response data to decide whether pause the socket or
not. Writable stream state is a not reliable measure, because it just
says how much data is pending on a **current** request, thus not helping
much with problem we are trying to solve here.

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

9 years agohttp: fix out-of-order 'finish' bug in pipelining
Fedor Indutny [Sat, 26 Sep 2015 03:36:06 +0000 (23:36 -0400)]
http: fix out-of-order 'finish' bug in pipelining

Changes to `stream_base.cc` are required to support empty writes.
Fixes CVE-2015-7384, https://github.com/nodejs/node/issues/3138

Fix: https://github.com/nodejs/node/issues/2639
PR-URL: https://github.com/nodejs/node/pull/3128

9 years agotest: load common.js to test for global leaks
Rich Trott [Sun, 27 Sep 2015 22:31:36 +0000 (15:31 -0700)]
test: load common.js to test for global leaks

common.js contains code that checks for variables leaking into the
global namespace. Load common.js in all tests that do not
intentionally leak variables.

PR-URL: https://github.com/nodejs/node/pull/3095
Reviewed-By: Jeremiah Senkpiel <fishrock123@rocketmail.com>
Reviewed-By: Sakthipriyan Vairamani <thechargingvolcano@gmail.com>
9 years agocrypto: enable FIPS only when configured with it
Fedor Indutny [Thu, 1 Oct 2015 21:28:49 +0000 (17:28 -0400)]
crypto: enable FIPS only when configured with it

Do not rely on `OPENSSL_FIPS` in `node_crypto.cc` when building with
shared FIPS-enabled OpenSSL library. Enable FIPS in core only when
configured with `--openssl-fips`.

Fix: https://github.com/nodejs/node/issues/3077
PR-URL: https://github.com/nodejs/node/pull/3153
Reviewed-By: Ben Noordhuis <info@bnoordhuis.nl>
9 years agotest: fix invalid variable name
Sakthipriyan Vairamani [Thu, 1 Oct 2015 19:15:03 +0000 (00:45 +0530)]
test: fix invalid variable name

The variable `er` is not declared at all. So if EPERM error is ever
raised then the `er` will throw `ReferenceError` and the code will
break.

PR-URL: https://github.com/nodejs/node/pull/3150
Reviewed-By: Brian White <mscdex@mscdex.net>
9 years agoasync_wrap: ensure all objects have internal field
Trevor Norris [Wed, 30 Sep 2015 21:55:06 +0000 (15:55 -0600)]
async_wrap: ensure all objects have internal field

If the constructor can't assign a class id then the heap snapshot will
not be able to report the object. So ensure that all AsyncWrap instances
use a FunctionTemplate instance with an internal field count >= 1.

PR-URL: https://github.com/nodejs/node/pull/3139
Reviewed-By: Fedor Indutny <fedor.indutny@gmail.com>
Reviewed-By: Ben Noordhuis <info@bnoordhuis.nl>
Reviewed-by: Stephen Belanger <admin@stephenbelanger.com>
9 years agoasync_wrap: update providers and add test
Trevor Norris [Tue, 29 Sep 2015 21:20:41 +0000 (15:20 -0600)]
async_wrap: update providers and add test

Several provider ids have been removed that are no longer in use. Others
have been updated to match their class constructors.

Add test to ensure all internally listed providers are used.

PR-URL: https://github.com/nodejs/node/pull/3139
Reviewed-By: Fedor Indutny <fedor.indutny@gmail.com>
Reviewed-By: Ben Noordhuis <info@bnoordhuis.nl>
Reviewed-by: Stephen Belanger <admin@stephenbelanger.com>
9 years agocontextify: use CHECK instead of `if`
Oguz Bastemur [Wed, 30 Sep 2015 05:02:12 +0000 (07:02 +0200)]
contextify: use CHECK instead of `if`

I was walking through the vm changes and saw this particular `if` check
interesting. In case `ctx` is empty it's going to fail later anyways.
So, instead of putting an `if` check there;

option a - use CHECK
option b - do nothing

Considering the developer wanted to make sure `ctx` is not empty,
`CHECK` option looked more convenient.

PR-URL: https://github.com/nodejs/node/pull/3125
Reviewed-By: Ben Noordhuis <info@bnoordhuis.nl>
9 years agodeps: upgrade libuv to 1.7.5
Saúl Ibarra Corretgé [Tue, 22 Sep 2015 20:00:38 +0000 (22:00 +0200)]
deps: upgrade libuv to 1.7.5

PR-URL: https://github.com/nodejs/node/pull/3010
Reviewed-By: Rod Vagg <rod@vagg.org>
Reviewed-By: Trevor Norris <trev.norris@gmail.com>
Reviewed-By: Colin Ihrig <cjihrig@gmail.com>
9 years agobuild,win: fix node.exe resource version
João Reis [Wed, 23 Sep 2015 12:33:09 +0000 (13:33 +0100)]
build,win: fix node.exe resource version

When MSBuild invokes rc.exe, it passes NODE_TAG unstringified, but
passes it correctly to cl.exe. Hence, this workaround was made to
apply only to the resource file.

Fixes: https://github.com/nodejs/node/issues/2963
PR-URL: https://github.com/nodejs/node/pull/3053
Reviewed-By: Alexis Campailla <orangemocha@nodejs.org>
Reviewed-By: Johan Bergström <bugs@bergstroem.nu>
9 years agodoc: fix outdated 'try/catch' statement in sync
Minwoo Jung [Sun, 27 Sep 2015 08:20:27 +0000 (17:20 +0900)]
doc: fix outdated 'try/catch' statement in sync

Fixes description about crypto.randomBytes.

Fixes: https://github.com/nodejs/node/issues/3081
PR-URL: https://github.com/nodejs/node/pull/3087
Reviewed-By: Ben Noordhuis <info@bnoordhuis.nl>
Reviewed-By: Brendan Ashworth <brendan.ashworth@me.com>
Reviewed-By: Sakthipriyan Vairamani <thechargingvolcano@gmail.com>
9 years agodeps: upgrade V8 to 4.5.103.35
Ali Ijaz Sheikh [Tue, 29 Sep 2015 15:51:07 +0000 (08:51 -0700)]
deps: upgrade V8 to 4.5.103.35

Apply the latest fixes from V8 4.5 branch & bring us up to 4.5.103.35:
* Disallow Object.observe calls on access checked objects.
https://github.com/v8/v8/commit/134e541ad149b9732bc4fee6fe6952cf669703a7
* Avoid excessive data copying for ExternalStreamingStream::SetBookmark.
https://github.com/v8/v8/commit/96dddb455daff3d8626bc4e5d7b2898fbab55991

PR-URL: https://github.com/nodejs/node/pull/3117
Reviewed-By: indutny - Fedor Indutny <fedor.indutny@gmail.com>
Reviewed-By: bnoordhuis - Ben Noordhuis <info@bnoordhuis.nl>
Reviewed-By: trevnorris - Trevor Norris <trev.norris@gmail.com>
Reviewed-By: targos - Michaël Zasso <mic.besace@gmail.com>
9 years agodeps: backport f782159 from v8's upstream
Ben Noordhuis [Wed, 30 Sep 2015 00:13:31 +0000 (02:13 +0200)]
deps: backport f782159 from v8's upstream

Backport f78215962bf5de9d47c022e7baa3952d0bf6d17f from V8's upstream
to speed up promise introspection.

Original commit message:

  Remove obsolete try/catch from ObjectIsPromise().

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

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

PR-URL: https://github.com/nodejs/node/pull/3130
Reviewed-By: Evan Lucas <evanlucas@me.com>
Reviewed-By: Sakthipriyan Vairamani <thechargingvolcano@gmail.com>
9 years agoutil: optimize promise introspection
Ben Noordhuis [Wed, 30 Sep 2015 00:07:56 +0000 (02:07 +0200)]
util: optimize promise introspection

Use V8's builtin ObjectIsPromise() to check that the value is a promise
before creating the promise mirror.  Reduces garbage collector strain
in the (common) non-promise case, which is beneficial when inspecting
deep object graphs.

PR-URL: https://github.com/nodejs/node/pull/3130
Reviewed-By: Evan Lucas <evanlucas@me.com>
Reviewed-By: Sakthipriyan Vairamani <thechargingvolcano@gmail.com>
9 years agoi18n: add caller to removal list for bidi in ICU55
Michael Dawson [Tue, 29 Sep 2015 14:55:32 +0000 (10:55 -0400)]
i18n: add caller to removal list for bidi in ICU55

For ICU 55 we are currently stripping out bidi and
the callers.  AIX is more pedantic and identified
an additional caller than needed to be stripped out.
This PR adds that caller to those stripped out.

PR-URL: https://github.com/nodejs/node/pull/3115
Reviewed-By: Steven Loomis <srloomis@us.ibm.com>
9 years agodoc: add TSC meeting minutes 2015-09-16
Rod Vagg [Wed, 23 Sep 2015 12:33:18 +0000 (22:33 +1000)]
doc: add TSC meeting minutes 2015-09-16

PR-URL: https://github.com/nodejs/node/pull/3023
Reviewed-By: Ben Noordhuis <info@bnoordhuis.nl>
Reviewed-By: Sakthipriyan Vairamani <thechargingvolcano@gmail.com>
9 years agodoc: copyedit fs.watch() information
Rich Trott [Mon, 28 Sep 2015 03:08:43 +0000 (20:08 -0700)]
doc: copyedit fs.watch() information

Removed "Only FSEvents supports this type of file watching so it is
unlikely any additional platforms will be added soon."

Per @saghul, "FSEvents" refers to the OSX API, but since we added
Windows support it may not be  unlikely that we add more.

PR-URL: https://github.com/nodejs/node/pull/3097
Reviewed-By: Sakthipriyan Vairamani <thechargingvolcano@gmail.com>
Reviewed-By: Michaël Zasso <mic.besace@gmail.com>
Reviewed-By: Saúl Ibarra Corretgé <saghul@gmail.com>
9 years agobenchmark: update comment in common.js
Minwoo Jung [Sun, 5 Oct 2014 12:24:10 +0000 (21:24 +0900)]
benchmark: update comment in common.js

Very minor update in benchmark/common.js
Not exactly a critical change, just continued cleaning
out of old joyent/node PRs that never landed.

Ref: https://github.com/nodejs/node-v0.x-archive/pull/8515
PR-URL: https://github.com/nodejs/node/pull/2399
Reviewed-By: Sakthipriyan Vairamani <thechargingvolcano@gmail.com>
Reviewed-By: Brendan Ashworth <brendan.ashworth@me.com>
Reviewed-By: Michaël Zasso <mic.besace@gmail.com>
9 years agosmalloc: remove module
Brendan Ashworth [Mon, 28 Sep 2015 05:38:11 +0000 (22:38 -0700)]
smalloc: remove module

Bye bye, smalloc. I'm not sure why this was still here; it was removed
in 70d1f32 and hasn't worked since. It wasn't packaged in the
binary, either.

Reviewed-By: Michaël Zasso <mic.besace@gmail.com>
Reviewed-By: Sakthipriyan Vairamani <thechargingvolcano@gmail.com>
Reviewed-By: Сковорода Никита Андреевич <chalkerx@gmail.com>
Reviewed-By: Ben Noordhuis <info@bnoordhuis.nl>
PR-URL: https://github.com/nodejs/node/pull/3099

9 years agotest: change calls to deprecated util.print()
Rich Trott [Sat, 26 Sep 2015 23:16:35 +0000 (16:16 -0700)]
test: change calls to deprecated util.print()

common.print() is just util.print() and as such prints a deprecation
warning. Per docs, update to console.log().

PR-URL: https://github.com/nodejs/node/pull/3083
Reviewed-By: Michaël Zasso <mic.besace@gmail.com>
Reviewed-By: Brendan Ashworth <brendan.ashworth@me.com>
9 years agotest: replace deprecated util.debug() calls
Rich Trott [Sat, 26 Sep 2015 22:49:04 +0000 (15:49 -0700)]
test: replace deprecated util.debug() calls

common.debug() is just util.debug() and emits a deprecation notice. Per
docs, use console.error() instead.

PR-URL: https://github.com/nodejs/node/pull/3082
Reviewed-By: Michaël Zasso <mic.besace@gmail.com>
9 years agodns: add missing exports.BADNAME
Roman Reiss [Sat, 26 Sep 2015 13:14:15 +0000 (15:14 +0200)]
dns: add missing exports.BADNAME

Adds the documented but missing DNS error exports.BADNAME. This export
has been there before but got lost in a 2012 commit that added more
error codes. https://github.com/nodejs/node/pull/3076 will remove the
wrong error code exports.ADNAME.

PR-URL: https://github.com/nodejs/node/pull/3051
Fixes: https://github.com/nodejs/node/issues/3050
Reviewed-By: Сковорода Никита Андреевич <chalkerx@gmail.com>
Reviewed-By: Michaël Zasso <mic.besace@gmail.com>
Reviewed-By: Evan Lucas <evanlucas@me.com>
9 years agosrc: internalize binding function property names
Ben Noordhuis [Fri, 25 Sep 2015 10:19:53 +0000 (12:19 +0200)]
src: internalize binding function property names

Internalized strings are created in the old space and that is where they
eventually would end up anyway when created as normal strings.

PR-URL: https://github.com/nodejs/node/pull/3060
Reviewed-By: James M Snell <jasnell@gmail.com>
Reviewed-By: Trevor Norris <trev.norris@gmail.com>
9 years agosrc: internalize per-isolate string properties
Ben Noordhuis [Fri, 25 Sep 2015 09:54:21 +0000 (11:54 +0200)]
src: internalize per-isolate string properties

Speeds up property lookups a little and it creates the string in the
old space straight away.  It's a little easier on the garbage collector
because it doesn't have to track eternalized strings in the new space.

PR-URL: https://github.com/nodejs/node/pull/3060
Reviewed-By: James M Snell <jasnell@gmail.com>
Reviewed-By: Trevor Norris <trev.norris@gmail.com>
9 years agopath: improve posixSplitPath performance
Evan Lucas [Wed, 23 Sep 2015 21:29:01 +0000 (16:29 -0500)]
path: improve posixSplitPath performance

Instead of slicing the first element off of the matches, shift and then
return. This improves performance of the following path functions:

- basename: 18-20%
- extname: 60-70%
- dirname: 18-20%
- parse: 20-25%

PR-URL: https://github.com/nodejs/node/pull/3034
Reviewed-By: Brian White <mscdex@mscdex.net>
Reviewed-By: Sakthipriyan Vairamani <thechargingvolcano@gmail.com>
9 years agosrc: include signal.h in util.h
Cheng Zhao [Fri, 25 Sep 2015 05:06:37 +0000 (13:06 +0800)]
src: include signal.h in util.h

It is required for using the "SIGABRT" constant.

It doesn't cause compilation errors in Node because most files already
have "signal.h" included, but it causes errors for third party embedder.

PR-URL: https://github.com/nodejs/node/pull/3058
Reviewed-By: Ben Noordhuis <info@bnoordhuis.nl>
Reviewed-By: Fedor Indutny <fedor.indutny@gmail.com>
Reviewed-By: Rod Vagg <r@va.gg>
Reviewed-By: Sakthipriyan Vairamani <thechargingvolcano@gmail.com>
Reviewed-By: Trevor Norris <trev.norris@gmail.com>
9 years agosrc: fix function and variable names in comments
Sakthipriyan Vairamani [Thu, 24 Sep 2015 03:01:13 +0000 (08:31 +0530)]
src: fix function and variable names in comments

The `src/node.js` file is actually loaded and executed by
`node::LoadEnvironment` function.

The variable which has the contents is, `native_node`.

PR-URL: https://github.com/nodejs/node/pull/3039
Reviewed-By: Ben Noordhuis <info@bnoordhuis.nl>
9 years agocrypto: add more keylen sanity checks in pbkdf2
Johann [Wed, 23 Sep 2015 16:42:20 +0000 (18:42 +0200)]
crypto: add more keylen sanity checks in pbkdf2

issue #2987 makes the point that crypto.pbkdf2 should not fail silently
and accept invalid but numeric values like NaN and Infinity. We already
check if the keylen is lower than 0, so extending that to NaN and
Infinity should make sense.

Fixes: https://github.com/nodejs/node/issues/2987

PR-URL: https://github.com/nodejs/node/pull/3029
Reviewed-By: Ben Noordhuis <info@bnoordhuis.nl>
Reviewed-By: Brian White <mscdex@mscdex.net>
Reviewed-By: Fedor Indutny <fedor.indutny@gmail.com>
Reviewed-By: Sakthipriyan Vairamani <thechargingvolcano@gmail.com>
9 years agochild_process: `null` channel handle on close
Fedor Indutny [Thu, 24 Sep 2015 05:30:25 +0000 (01:30 -0400)]
child_process: `null` channel handle on close

`HandleWrap::OnClose` destroys the underlying C++ object and null's the
internal field pointer to it. Therefore there should be no references to
the wrapping JavaScript object.

`null` the process' `_channel` field right after closing it, to ensure
no crashes will happen.

Fix: https://github.com/nodejs/node/issues/2847
PR-URL: https://github.com/nodejs/node/pull/3041
Reviewed-By: Trevor Norris <trev.norris@gmail.com>
9 years agodeps: remove and gitignore .bin directory
Ben Noordhuis [Tue, 22 Sep 2015 14:24:16 +0000 (16:24 +0200)]
deps: remove and gitignore .bin directory

The .bin/ directory in deps/npm/node_modules seens to have been an
accidental check-in in commit e79ccee ("npm: upgrade to v2.1.18").
It causes trouble for distro packagers so delete it and blacklist it.

Fixes: https://github.com/nodejs/node/issues/2839
PR-URL: https://github.com/nodejs/node/pull/3004
Reviewed-By: Kat Marchán <kzm@sykosomatic.org>
Reviewed-By: Rod Vagg <r@va.gg>
Reviewed-By: Sakthipriyan Vairamani <thechargingvolcano@gmail.com>
9 years agodeps: backport c281c15 from V8's upstream
Julien Gilli [Wed, 23 Sep 2015 18:08:47 +0000 (11:08 -0700)]
deps: backport c281c15 from V8's upstream

Backport c281c15d6dab8370a7805f0717502d260e0ad433 from V8's upstream to
allow post-mortem debugging tools to inspect Buffer instances' length.

Original commit message:

  Add JSTypedArray's length in post-mortem metadata.

  BUG=
  R=bmeurer@chromium.org

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

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

PR: #3031
PR-URL: https://github.com/nodejs/node/pull/3031
Reviewed-By: Trevor Norris <trev.norris@gmail.com>
9 years agodoc: jenkins-iojs.nodesource.com -> ci.nodejs.org
Michał Gołębiowski [Tue, 15 Sep 2015 18:46:27 +0000 (20:46 +0200)]
doc: jenkins-iojs.nodesource.com -> ci.nodejs.org

The Jenkins URL has changed from https://jenkins-iojs.nodesource.com
to https://ci.nodejs.org. The former address now redirects to the
latter. Some jobs has also changed names.

PR-URL: https://github.com/nodejs/node/pull/2886
Reviewed-By: Rod Vagg <r@va.gg>
Reviewed-By: Evan Lucas <evanlucas@me.com>
Reviewed-By: Roman Reiss <me@silverwind.io>
9 years agodocs: Clarify assert.doesNotThrow behavior
Fabio Oliveira [Fri, 11 Sep 2015 03:54:59 +0000 (04:54 +0100)]
docs: Clarify assert.doesNotThrow behavior

The documentation for assert.doesNotThrow now reflects all the inputs
the function accepts, as well as the errors thrown for each combination
of parameter types.

PR-URL: https://github.com/nodejs/node/pull/2807
Reviewed-By: Rich Trott <rtrott@gmail.com>
9 years agobuild: iojs -> nodejs of release-urlbase
P.S.V.R [Wed, 23 Sep 2015 04:44:47 +0000 (12:44 +0800)]
build: iojs -> nodejs of release-urlbase

PR-URL: https://github.com/nodejs/node/pull/3015
Reviewed-By: Rod Vagg <r@va.gg>
Reviewed-By: Sakthipriyan Vairamani <thechargingvolcano@gmail.com>
Reviewed-By: Roman Reiss <me@silverwind.io>
9 years agodoc: rearrange execSync and execFileSync
Laurent Fortin [Tue, 22 Sep 2015 19:01:23 +0000 (15:01 -0400)]
doc: rearrange execSync and execFileSync

Changed the ordering so it is in line with the async methods.

PR-URL: https://github.com/nodejs/node/pull/2940
Reviewed-By: Michaël Zasso <mic.besace@gmail.com>
Reviewed-By: Roman Reiss <me@silverwind.io>
9 years agodoc: make execFileSync in line with execFile
Laurent Fortin [Fri, 18 Sep 2015 00:29:14 +0000 (20:29 -0400)]
doc: make execFileSync in line with execFile

PR-URL: https://github.com/nodejs/node/pull/2940
Reviewed-By: Michaël Zasso <mic.besace@gmail.com>
Reviewed-By: Roman Reiss <me@silverwind.io>
9 years agobuild: fix some typos inside the configure script
P.S.V.R [Wed, 23 Sep 2015 04:48:38 +0000 (12:48 +0800)]
build: fix some typos inside the configure script

PR-URL: https://github.com/nodejs/node/pull/3016
Reviewed-By: Michaël Zasso <mic.besace@gmail.com>
Reviewed-By: Roman Reiss <me@silverwind.io>
9 years agodoc: fix typos in cluster & errors
reggi [Tue, 22 Sep 2015 20:48:53 +0000 (16:48 -0400)]
doc: fix typos in cluster & errors

PR-URL: https://github.com/nodejs/node/pull/3011
Reviewed-By: Michaël Zasso <mic.besace@gmail.com>
Reviewed-By: Roman Reiss <me@silverwind.io>
9 years agodoc: switch LICENSE from closure-linter to eslint
P.S.V.R [Wed, 23 Sep 2015 06:49:38 +0000 (14:49 +0800)]
doc: switch LICENSE from closure-linter to eslint

Ref: https://github.com/nodejs/node/pull/1539
PR-URL: https://github.com/nodejs/node/pull/3018
Reviewed-By: Roman Reiss <me@silverwind.io>
Reviewed-By: Michaël Zasso <mic.besace@gmail.com>
Reviewed-By: Yosuke Furukawa <yosuke.furukawa@gmail.com>
9 years agoWorking on v4.1.2
Rod Vagg [Wed, 23 Sep 2015 01:32:27 +0000 (11:32 +1000)]
Working on v4.1.2

9 years ago2015-09-22, Version 4.1.1 (Stable) Release v4.1.1
Rod Vagg [Tue, 22 Sep 2015 06:51:58 +0000 (16:51 +1000)]
2015-09-22, Version 4.1.1 (Stable) Release

Notable changes

* buffer: Fixed a bug introduced in v4.1.0 where allocating a new
  zero-length buffer can result in the next allocation of a TypedArray
  in JavaScript not being zero-filled. In certain circumstances this
  could result in data leakage via reuse of memory space in
  TypedArrays, breaking the normally safe assumption that TypedArrays
  should be always zero-filled. (Trevor Norris) #2931.
* http: Guard against response-splitting of HTTP trailing headers
  added via response.addTrailers() by removing new-line ([\r\n])
  characters from values. Note that standard header values are already
  stripped of new-line characters. The expected security impact is low
  because trailing headers are rarely used. (Ben Noordhuis) #2945.
* npm: Upgrade to npm 2.14.4 from 2.14.3, see release notes for full
  details (Kat Marchán) #2958
  - Upgrades graceful-fs on multiple dependencies to no longer rely on
    monkey-patching fs
  - Fix npm link for pre-release / RC builds of Node
* v8: Update post-mortem metadata to allow post-mortem debugging tools
  to find and inspect:
  - JavaScript objects that use dictionary properties
    (Julien Gilli) #2959
  - ScopeInfo and thus closures (Julien Gilli) #2974

9 years agolib,src: remove usage of events.EventEmitter
Sakthipriyan Vairamani [Wed, 16 Sep 2015 22:45:29 +0000 (04:15 +0530)]
lib,src: remove usage of events.EventEmitter

The `events` module already exports `EventEmitter` constructor function
So, we don't have to use `events.EventEmitter` to access it.

Refer: https://github.com/nodejs/node/pull/2896

PR-URL: https://github.com/nodejs/node/pull/2921
Reviewed-By: Roman Reiss <me@silverwind.io>
Reviewed-By: Michaël Zasso <mic.besace@gmail.com>
9 years agodoc: remove usage of events.EventEmitter
Sakthipriyan Vairamani [Wed, 16 Sep 2015 22:42:27 +0000 (04:12 +0530)]
doc: remove usage of events.EventEmitter

The `events` module already exports `EventEmitter` constructor function
So, we don't have to use `events.EventEmitter` to access it.

Refer: https://github.com/nodejs/node/pull/2896

PR-URL: https://github.com/nodejs/node/pull/2921
Reviewed-By: Roman Reiss <me@silverwind.io>
Reviewed-By: Michaël Zasso <mic.besace@gmail.com>
9 years agorepl: don't use tty control codes when $TERM is set to "dumb"
Salman Aljammaz [Sat, 5 Sep 2015 15:03:46 +0000 (18:03 +0300)]
repl: don't use tty control codes when $TERM is set to "dumb"

This change stops the REPL from using ANSI control codes for colours
when the TERM environment variable is set to "dumb".

"dumb" is the terminal type with the smallest set of capabilities as
described by terminfo. See:

http://invisible-island.net/ncurses/terminfo.ti.html#toc-_Specials

Related: https://github.com/nodejs/node-v0.x-archive/issues/5344
Related: https://github.com/nodejs/node-v0.x-archive/pull/25506
Reviewed-By: Jeremiah Senkpiel <fishrock123@rocketmail.com>
Reviewed-By: Roman Reiss <me@silverwind.io>
PR-URL: https://github.com/nodejs/node/pull/2712

9 years agohttp: remove redundant code in _deferToConnect
Malcolm Ahoy [Wed, 9 Sep 2015 13:11:19 +0000 (06:11 -0700)]
http: remove redundant code in _deferToConnect

Logic for calling the passed in socket method and/or callback
was duplicated. This commit refactors the relevant code to
remove the redundancy.

PR-URL: https://github.com/nodejs/node/pull/2769
Reviewed-By: Colin Ihrig <cjihrig@gmail.com>
Reviewed-By: Brendan Ashworth <brendan.ashworth@me.com>
9 years agorepl: backslash bug fix
Sakthipriyan Vairamani [Sun, 20 Sep 2015 10:37:21 +0000 (16:07 +0530)]
repl: backslash bug fix

The actual problem was with the line parsing logic for string literals.
When we use backslash in the string literals, it used to remember the
`\` as the previous character even after we parsed the character next
to it. This leads to REPL thinking that the end of string literals is
not reached.

This patch replaces the previous character with `null`, so that it will
properly skip the character next to it.

Previous Discussion: https://github.com/nodejs/node/pull/2952
Fixes: https://github.com/nodejs/node/issues/2749
PR-URL: https://github.com/nodejs/node/pull/2968
Reviewed-By: Roman Reiss <me@silverwind.io>
9 years agodeps: backport 357e6b9 from V8's upstream
Julien Gilli [Mon, 21 Sep 2015 04:39:37 +0000 (21:39 -0700)]
deps: backport 357e6b9 from V8's upstream

Backport 357e6b99ee3927cc075dd8d27c99b89d858f9dd5 from V8's upstream.

Original commit message:

  Add ScopeInfo constants to post-mortem metadata

  mdb_v8, a post-mortem debugging tool for Node.js, allows users to
  inspect ScopeInfo structures in order to get more information about
  closures.

  Currently, it hardcodes the metadata it uses to find this information.
  This change allows it to get this metadata from the node binary itself,
  and thus to adapt to future changes made to the layout of the ScopeInfo
  data structure.

  BUG=

  R=bmeurer@chromium.org

PR: #2974
PR-URL: https://github.com/nodejs/node/pull/2974
Reviewed-By: Rod Vagg <r@va.gg>
Reviewed-By: Ben Noordhuis <ben@strongloop.com>
9 years agodoc: remove extra using v8::HandleScope statement
Christopher J. Brody [Mon, 21 Sep 2015 15:20:39 +0000 (17:20 +0200)]
doc: remove extra using v8::HandleScope statement

v8::HandleScope does not seem to be required for addon functions.

PR-URL: https://github.com/nodejs/node/pull/2983
Reviewed-By: Ben Noordhuis <info@bnoordhuis.nl>
9 years agoconfigure: detect mipsel host
Jérémy Lal [Sun, 20 Sep 2015 21:04:46 +0000 (23:04 +0200)]
configure: detect mipsel host

Detect mipsel before mips because mipsel has __mips__ flag as well.

PR-URL: https://github.com/nodejs/node/pull/2971
Reviewed-By: Ben Noordhuis <info@bnoordhuis.nl>
Reviewed-By: Johan Bergström <bugs@bergstroem.nu>
9 years agotest: test sync version of mkdir & rmdir
Sakthipriyan Vairamani [Fri, 28 Aug 2015 01:31:11 +0000 (07:01 +0530)]
test: test sync version of mkdir & rmdir

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

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

Original commit message:

  Update BitField3 type in gen-postmortem-metadata.py

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

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

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

  R=danno@chromium.org

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

  BUG=

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

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

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

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

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

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

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

This patch

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

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

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

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

Regression was introduced in: 1bc4468

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

Notable changes:

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

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

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

Original commit message:

    [es6] Bound function name

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

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

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

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

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

Original commit message:

    [objects] do not visit ArrayBuffer's backing store

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

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

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

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

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

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

This patch

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

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

This change:

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

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