Brian White [Fri, 1 May 2015 18:08:02 +0000 (14:08 -0400)]
node: improve nextTick performance
This commit uses separate functions to isolate deopts caused by
try-catches and avoids fn.apply() for callbacks with small numbers
of arguments.
These changes improve performance by ~1-40% in the various
nextTick benchmarks.
PR-URL: https://github.com/iojs/io.js/pull/1571
Reviewed-By: Trevor Norris <trev.norris@gmail.com>
Reviewed-By: Chris Dickinson <christopher.s.dickinson@gmail.com>
Fedor Indutny [Fri, 1 May 2015 11:58:06 +0000 (13:58 +0200)]
repl: do not save history for non-terminal repl
When running in non-TTY mode - the `repl.history` is `undefined` and
is not actually populated. Saving it will result in a crashes of
subsequent repl runs.
Fix: https://github.com/iojs/io.js/issues/1574
PR-URL: https://github.com/iojs/io.js/pull/1575
Reviewed-By: Chris Dickinson <christopher.s.dickinson@gmail.com>
Jeremiah Senkpiel [Sat, 2 May 2015 00:08:55 +0000 (20:08 -0400)]
Merge branch 'v1.x'
PR-URL: https://github.com/iojs/io.js/pull/1582
Reviewed-By: Chris Dickinson <christopher.s.dickinson@gmail.com>
Conflicts:
src/node_version.h
Bert Belder [Fri, 1 May 2015 08:48:31 +0000 (01:48 -0700)]
win,node-gyp: optionally allow node.exe/iojs.exe to be renamed
On Windows, when node or io.js attempts to dynamically load a compiled
addon, the compiled addon tries to load node.exe or iojs.exe again -
depending on which import library the module used when it was linked.
This causes many compiled addons to break when node.exe or iojs.exe are
renamed, because when the binary has been renamed the addon DLL can't
find the (right) .exe file to load its imports from.
This patch gives compiled addon developers an option to overcome this
restriction by compiling a delay-load hook into their binary. The
delay-load hook ensures that whenever a module tries to load imports
from node.exe/iojs.exe, it'll just look at the process image, thereby
making the addon work regardless of what name the node/iojs binary has.
To enable this feature, the addon developer must set the
'win_delay_load_hook' option to 'true' in their binding.gyp file, like
this:
```
{
'targets': [
{
'target_name': 'ernie',
'win_delay_load_hook': 'true',
...
```
Bug: https://github.com/iojs/io.js/issues/751
Bug: https://github.com/iojs/io.js/issues/965
Upstream PR: https://github.com/TooTallNate/node-gyp/pull/599
PR-URL: https://github.com/iojs/io.js/pull/1251
Reviewed-By: Rod Vagg <rod@vagg.org>
PR-URL: https://github.com/iojs/io.js/pull/1266
Reviewed-By: Ben Noordhuis <info@bnoordhuis.nl>
cjihrig [Fri, 1 May 2015 08:48:31 +0000 (01:48 -0700)]
deps: make node-gyp work with io.js
Every npm version bump requires a few patches to be floated on
node-gyp for io.js compatibility. These patches are found in
03d199276e21c1fa08d8df14eeb654c90cc5aa20,
5de334c23096492014a097ff487f07ad8eaee6d2, and
da730c76e98fb9fd18dac445dafbbec74d79f802. This commit squashes
them into a single commit.
PR-URL: https://github.com/iojs/io.js/pull/990
Reviewed-By: Ben Noordhuis <info@bnoordhuis.nl>
Forrest L Norvell [Fri, 1 May 2015 08:27:33 +0000 (01:27 -0700)]
deps: upgrade npm to 2.9.0
PR-URL: https://github.com/iojs/io.js/pull/1573
Reviewed-By: Jeremiah Senkpiel <fishrock123@rocketmail.com>
Reviewed-By: Chris Dickinson <christopher.s.dickinson@gmail.com>
Roman Reiss [Tue, 28 Apr 2015 16:30:58 +0000 (18:30 +0200)]
doc: improve http.request and https.request opts
This adds a few previously undocumented option to both functions.
PR-URL: https://github.com/iojs/io.js/pull/1551
Fixes: https://github.com/iojs/io.js/issues/1082
Reviewed-By: Jeremiah Senkpiel <fishrock123@rocketmail.com>
Reviewed-By: Colin Ihrig <cjihrig@gmail.com>
Fedor Indutny [Sat, 18 Apr 2015 08:19:23 +0000 (10:19 +0200)]
tls: use `SSL_set_cert_cb` for async SNI/OCSP
Do not enable ClientHello parser for async SNI/OCSP. Use new
OpenSSL-1.0.2's API `SSL_set_cert_cb` to pause the handshake process and
load the cert/OCSP response asynchronously. Hopefuly this will make
whole async SNI/OCSP process much faster and will eventually let us
remove the ClientHello parser itself (which is currently used only for
async session, see #1462 for the discussion of removing it).
NOTE: Ported our code to `SSL_CTX_add1_chain_cert` to use
`SSL_CTX_get0_chain_certs` in `CertCbDone`. Test provided for this
feature.
Fix: https://github.com/iojs/io.js/issues/1423
PR-URL: https://github.com/iojs/io.js/pull/1464
Reviewed-By: Shigeki Ohtsu <ohtsu@iij.ad.jp>
Fedor Indutny [Wed, 29 Apr 2015 11:50:36 +0000 (13:50 +0200)]
stream_base: dispatch reqs in the stream impl
Dispatch requests in the implementation of the stream, not in the code
creating these requests. The requests might be piled up and invoked
internally in the implementation, so it should know better when it is
the time to dispatch them.
In fact, TLS was doing exactly this thing which led us to...
Fix: https://github.com/iojs/io.js/issues/1512
PR-URL: https://github.com/iojs/io.js/pull/1563
Reviewed-By: Shigeki Ohtsu <ohtsu@iij.ad.jp>
Ben Noordhuis [Thu, 30 Apr 2015 17:53:02 +0000 (19:53 +0200)]
build: turn on debug-safe optimizations with -Og
The resulting binary is still easy to inspect in gdb but is not as dog
slow. The 'parallel' test suite, although it takes several minutes to
complete, now finishes without any tests timing out.
PR-URL: https://github.com/iojs/io.js/pull/1569
Reviewed-By: Johan Bergström <bugs@bergstroem.nu>
Chris Dickinson [Thu, 23 Apr 2015 07:35:53 +0000 (00:35 -0700)]
repl: add mode detection, cli persistent history
this creates a new internal module responsible for providing
the repl created via "iojs" or "iojs -i," and adds the following
options to the readline and repl subsystems:
* "repl mode" - determine whether a repl is strict mode, sloppy mode,
or auto-detect mode.
* historySize - determine the maximum number of lines a repl will store
as history.
The built-in repl gains persistent history support when the
NODE_REPL_HISTORY_FILE environment variable is set. This functionality
is not exposed to userland repl instances.
PR-URL: https://github.com/iojs/io.js/pull/1513
Reviewed-By: Fedor Indutny <fedor@indutny.com>
Johan Bergström [Mon, 27 Apr 2015 04:45:55 +0000 (14:45 +1000)]
build: Use option groups in configure output
Minor edits to current build flags and its help texts as well
as grouping shared and i18n options into separate option groups.
Also, validate i18n default/logic similar to how we treat other
options. `--download` isn't really intl-specific but is only used
for that purpose which is why it's grouped similarly.
PR-URL: https://github.com/iojs/io.js/pull/1533
Reviewed-By: Rod Vagg <rod@vagg.org>
Reviewed-By: Jeremiah Senkpiel <fishrock123@rocketmail.com>
Reviewed-By: Steven R. Loomis <srl@icu-project.org>
Roman Klauke [Wed, 29 Apr 2015 17:47:04 +0000 (19:47 +0200)]
gitignore: ignore xcode workspaces and projects
Calling ./configure --xcode creates xcode projects and a
workspace for io.js.
PR-URL: https://github.com/iojs/io.js/pull/1562
Reviewed-By: Vladimir Kurchatkin <vladimir.kurchatkin@gmail.com>
Reviewed-By: Chris Dickinson <christopher.s.dickinson@gmail.com>
Reviewed-By: Ben Noordhuis <info@bnoordhuis.nl>
Reviewed-By: Roman Reiss <me@silverwind.io>
Ben Noordhuis [Thu, 30 Apr 2015 09:10:18 +0000 (11:10 +0200)]
doc: deprecate smalloc module
Upcoming V8 changes will make it impossible to keep supporting the
smalloc module so deprecate it now and tell people to switch to
typed arrays.
PR-URL: https://github.com/iojs/io.js/pull/1566
Reviewed-By: Jeremiah Senkpiel <fishrock123@rocketmail.com>
Fedor Indutny [Mon, 27 Apr 2015 07:39:48 +0000 (09:39 +0200)]
tls: destroy singleUse context immediately
Destroy singleUse context right after it is going out of use.
Fix: https://github.com/iojs/io.js/issues/1522
PR-URL: https://github.com/iojs/io.js/pull/1529
Reviewed-By: Shigeki Ohtsu <ohtsu@iij.ad.jp>
Fedor Indutny [Sun, 26 Apr 2015 12:19:38 +0000 (14:19 +0200)]
tls: zero SSL_CTX freelist for a singleUse socket
When connecting to server with `keepAlive` turned off - make sure that
the read/write buffers won't be kept in a single use SSL_CTX instance
after the socket will be destroyed.
Fix: https://github.com/iojs/io.js/issues/1522
PR-URL: https://github.com/iojs/io.js/pull/1529
Reviewed-By: Shigeki Ohtsu <ohtsu@iij.ad.jp>
Fedor Indutny [Sun, 26 Apr 2015 12:27:46 +0000 (14:27 +0200)]
crypto: track external memory for SSL structures
Ensure that GC kicks in at the right times and the RSS does not blow up.
Fix: https://github.com/iojs/io.js/issues/1522
PR-URL: https://github.com/iojs/io.js/pull/1529
Reviewed-By: Shigeki Ohtsu <ohtsu@iij.ad.jp>
Fedor Indutny [Sun, 26 Apr 2015 12:26:57 +0000 (14:26 +0200)]
tls: destroy SSL once it is out of use
Do not keep SSL structure in memory once socket is closed. This should
lower the memory usage in many cases.
Fix: https://github.com/iojs/io.js/issues/1522
PR-URL: https://github.com/iojs/io.js/pull/1529
Reviewed-By: Shigeki Ohtsu <ohtsu@iij.ad.jp>
Ben Noordhuis [Wed, 29 Apr 2015 18:04:59 +0000 (19:04 +0100)]
src: deprecate smalloc public functions
Upcoming V8 changes will make it impossible to keep supporting the
smalloc functionality so deprecate the functions in smalloc.h now
and tell people to switch to typed arrays.
This commit shuffles code around in smalloc.cc to avoid generating
the deprecation warnings when building io.js itself.
PR-URL: https://github.com/iojs/io.js/pull/1565
Reviewed-By: Trevor Norris <trev.norris@gmail.com>
Ben Noordhuis [Wed, 29 Apr 2015 18:03:15 +0000 (20:03 +0200)]
src: fix deprecation warnings
The previous commit enables deprecation warnings, this commit fixes
the handful of offending sites where the isolate was not explicitly
being passed around.
PR-URL: https://github.com/iojs/io.js/pull/1565
Reviewed-By: Trevor Norris <trev.norris@gmail.com>
Ben Noordhuis [Wed, 29 Apr 2015 17:57:41 +0000 (19:57 +0200)]
src: fix NODE_DEPRECATED macro
The NODE_DEPRECATED macro was piggybacking on the V8_DEPRECATED macro
but that macro is silent unless V8_DEPRECATION_WARNINGS is defined,
something io.js doesn't do. Ergo, no deprecation notices were being
issued.
PR-URL: https://github.com/iojs/io.js/pull/1565
Reviewed-By: Trevor Norris <trev.norris@gmail.com>
Ben Noordhuis [Wed, 29 Apr 2015 17:08:19 +0000 (19:08 +0200)]
lib: deprecate the smalloc module
Upcoming V8 changes will make it impossible to keep supporting the
smalloc module so deprecate it now and tell people to switch to
typed arrays.
The module is used in core in a few places so this commit makes the
public module private and replaces the public part with wrappers that
print deprecation notices.
PR-URL: https://github.com/iojs/io.js/pull/1564
Reviewed-By: Domenic Denicola <domenic@domenicdenicola.com>
Reviewed-By: Trevor Norris <trev.norris@gmail.com>
Evan Lucas [Mon, 27 Apr 2015 16:24:19 +0000 (11:24 -0500)]
src: add ability to get/set effective uid/gid
Adds the following to process:
- `process.geteuid()`
- `process.seteuid(id)`
- `process.getegid()`
- `process.setegid(id)`
PR-URL: https://github.com/iojs/io.js/pull/1536
Reviewed-By: Ben Noordhuis <info@bnoordhuis.nl>
Rod Vagg [Wed, 29 Apr 2015 00:55:55 +0000 (10:55 +1000)]
test: extend timeouts for ARMv6
Based on tests running on original Raspberry Pi
PR-URL: https://github.com/iojs/io.js/pull/1554
Reviewed-By: Roman Reiss <me@silverwind.io>
Julian Duque [Tue, 28 Apr 2015 20:15:41 +0000 (15:15 -0500)]
fs: validate fd on fs.write
PR-URL: #1553
Reviewed-By: Colin Ihrig <cjihrig@gmail.com>
Ben Noordhuis [Fri, 27 Mar 2015 11:05:40 +0000 (12:05 +0100)]
deps: enable v8 postmortem debugging again
Cherry-pick https://codereview.chromium.org/
1033733003 from upstream
and re-enable postmortem debugging.
PR-URL: https://github.com/iojs/io.js/pull/1232
Reviewed-By: Fedor Indutny <fedor@indutny.com>
Chris Dickinson [Sat, 25 Apr 2015 00:19:24 +0000 (17:19 -0700)]
deps: upgrade v8 to 4.2.77.18
This commit applies a secondary change in order to make `make test`
pass cleanly, specifically re-disabling post-mortem debugging in
common.gypi.
PR-URL: https://github.com/iojs/io.js/pull/1506
Reviewed-By: Ben Noordhuis <info@bnoordhuis.nl>
Ben Noordhuis [Sat, 11 Apr 2015 17:37:48 +0000 (19:37 +0200)]
deps: upgrade v8 to 4.2.77.15
This includes the out-of-tree patch (but fixed in upstream HEAD) from
commit 41c00a2 ("deps: enable v8 postmortem debugging again".)
PR-URL: https://github.com/iojs/io.js/pull/1399
Reviewed-By: Fedor Indutny <fedor@indutny.com>
Ben Noordhuis [Fri, 27 Mar 2015 11:05:40 +0000 (12:05 +0100)]
deps: enable v8 postmortem debugging again
Cherry-pick https://codereview.chromium.org/
1033733003 from upstream
and re-enable postmortem debugging.
PR-URL: https://github.com/iojs/io.js/pull/1232
Reviewed-By: Fedor Indutny <fedor@indutny.com>
Ben Noordhuis [Fri, 27 Mar 2015 11:04:12 +0000 (12:04 +0100)]
deps: upgrade v8 to 4.2.77.13
This commit applies some secondary changes in order to make `make test`
pass cleanly:
* disable broken postmortem debugging in common.gypi
* drop obsolete strict mode test in parallel/test-repl
* drop obsolete test parallel/test-v8-features
PR-URL: https://github.com/iojs/io.js/pull/1232
Reviewed-By: Fedor Indutny <fedor@indutny.com>
Christian Tellnes [Fri, 6 Feb 2015 22:27:22 +0000 (23:27 +0100)]
os: remove trailing slash from os.tmpdir()
This commit makes `os.tmpdir()` behave consistently on all platforms. It
changes `os.tmpdir()` to always return a path without trailing slash.
Semver: major
Fixes: https://github.com/iojs/io.js/issues/715
PR-URL: https://github.com/iojs/io.js/pull/747
Reviewed-By: Ben Noordhuis <info@bnoordhuis.nl>
Rod Vagg [Wed, 22 Apr 2015 05:02:37 +0000 (15:02 +1000)]
doc: add TC meeting 2015-04-15 minutes
PR-URL: #1498
Reviewed-By: Chris Dickinson <christopher.s.dickinson@gmail.com>
Reviewed-By: Jeremiah Senkpiel <fishrock123@rocketmail.com>
Yosuke Furukawa [Mon, 20 Apr 2015 06:04:55 +0000 (15:04 +0900)]
doc: Add Known issues to v1.7.0/1.7.1 CHANGELOG
PR-URL: https://github.com/iojs/io.js/pull/1473
Reviewed-By: Brendan Ashworth <brendan.ashworth@me.com>
Brian White [Tue, 28 Apr 2015 14:53:06 +0000 (10:53 -0400)]
string_decoder: don't cache Buffer.isEncoding
Some modules are monkey-patching Buffer.isEncoding, so without this
they cannot do that.
Fixes: https://github.com/iojs/io.js/issues/1547
PR-URL: https://github.com/iojs/io.js/pull/1548
Reviewed-By: Evan Lucas <evanlucas@me.com>
Reviewed-By: Ben Noordhuis <info@bnoordhuis.nl>
Nick Raienko [Mon, 27 Apr 2015 15:04:11 +0000 (18:04 +0300)]
doc: fix util.deprecate example
PR-URL: https://github.com/iojs/io.js/pull/1535
Reviewed-By: Jeremiah Senkpiel <fishrock123@rocketmail.com>
Reviewed-By: Evan Lucas <evanlucas@me.com>
Reviewed-By: Julian Duque <julianduquej@gmail.com>
Rod Vagg [Tue, 28 Apr 2015 05:01:20 +0000 (15:01 +1000)]
build: remove -J from test-ci
parallel tests still not working on most build slaves
PR-URL: https://github.com/iojs/io.js/pull/1544
Reviewed-By: Johan Bergström <bugs@bergstroem.nu>
Evan Lucas [Sun, 26 Apr 2015 13:52:10 +0000 (08:52 -0500)]
test: fix test-net-dns-custom-lookup test assertion
The assertion made an assumption that the IPv6 address would always be
`::1`. Since the address can be different on different platforms, it
has been changed to allow multiple addresses.
Fixes: https://github.com/iojs/io.js/issues/1527
PR-URL: https://github.com/iojs/io.js/pull/1531
Reviewed-By: Rod Vagg <rod@vagg.org>
Rod Vagg [Sun, 26 Apr 2015 10:59:45 +0000 (20:59 +1000)]
test: adjust Makefile/test-ci, add to vcbuild.bat
PR-URL: https://github.com/iojs/io.js/pull/1530
Reviewed-By: Johan Bergström <bugs@bergstroem.nu>
Bert Belder [Wed, 15 Apr 2015 20:58:50 +0000 (13:58 -0700)]
win,node-gyp: enable delay-load hook by default
The delay-load hook allows node.exe/iojs.exe to be renamed. See efadffe
for more background.
PR-URL: https://github.com/iojs/io.js/pull/1433
Reviewed-By: Ben Noordhuis <info@bnoordhuis.nl>
Christopher Monsanto [Mon, 20 Apr 2015 00:29:59 +0000 (20:29 -0400)]
util: add Map and Set inspection support
PR-URL: https://github.com/iojs/io.js/pull/1471
Reviewed-By: Chris Dickinson <christopher.s.dickinson@gmail.com>
Julian Duque [Sat, 25 Apr 2015 13:38:55 +0000 (08:38 -0500)]
doc: Add Addon API (NAN) to working group list
Also update nan and examples repositories links to io.js organization
PR-URL: #1523
Reviewed-By: Jeremiah Senkpiel <fishrock123@rocketmail.com>
Rod Vagg [Wed, 22 Apr 2015 04:52:43 +0000 (14:52 +1000)]
doc: add TC meeting 2015-04-08 minutes
PR-URL: #1497
Reviewed-By: Chris Dickinson <christopher.s.dickinson@gmail.com>
Reviewed-By: Jeremiah Senkpiel <fishrock123@rocketmail.com>
Fedor Indutny [Fri, 24 Apr 2015 13:47:40 +0000 (15:47 +0200)]
deps: update http_parser to 2.5.0
PR-URL: https://github.com/iojs/io.js/pull/1517
Reviewed-By: Brian White <mscdex@mscdex.net>
Trevor Norris [Fri, 24 Apr 2015 16:50:15 +0000 (10:50 -0600)]
buffer: fix copy() segfault with zero arguments
Buffer#copy() immediately does a ToObject() on the first argument before
it checks if it's even an Object. This causes
Object::HasIndexedPropertiesInExternalArrayData() to be run on nothing,
triggering the segfault. Instead run HasInstance() on the args Value.
Which will check if it's actually an Object, before checking if it
contains data.
Fixes: https://github.com/iojs/io.js/issues/1519
PR-URL: https://github.com/iojs/io.js/pull/1520
Reviewed-by: Evan Lucas <evanlucas@me.com>
Evan Lucas [Wed, 22 Apr 2015 22:05:29 +0000 (17:05 -0500)]
net: add lookup option to Socket.prototype.connect
Allows customization of the lookup function used when
Socket.prototype.connect is called using a hostname.
PR-URL: https://github.com/iojs/io.js/pull/1505
Reviewed-By: Chris Dickinson <christopher.s.dickinson@gmail.com>
Reviewed-By: Yosuke Furukawa <yosuke.furukawa@gmail.com>
Evan Lucas [Wed, 22 Apr 2015 21:46:21 +0000 (16:46 -0500)]
net: cleanup connect logic
Separates out the lookup logic for net.Socket. In the event
the `host` property is an IP address, the lookup is skipped.
PR-URL: https://github.com/iojs/io.js/pull/1505
Reviewed-By: Chris Dickinson <christopher.s.dickinson@gmail.com>
Reviewed-By: Yosuke Furukawa <yosuke.furukawa@gmail.com>
Jackson Tian [Thu, 16 Apr 2015 03:29:02 +0000 (11:29 +0800)]
buffer: little improve for Buffer.concat method
When buffer list less than 2, no need to calculate the length.
The change's benchmark result is here:
https://gist.github.com/JacksonTian/
2c9e2bdec00018e010e6
It improve 15% ~ 25% speed when list only have one buffer,
to other cases no effect.
PR-URL: https://github.com/iojs/io.js/pull/1437
Reviewed-By: Trevor Norris <trev.norris@gmail.com>
Reviewed-By: Brendan Ashworth <brendan.ashworth@me.com>
Roman Reiss [Thu, 23 Apr 2015 15:22:38 +0000 (17:22 +0200)]
doc: update branch to master
Update the remaining markdown files to refer to the master branch.
PR-URL: https://github.com/iojs/io.js/pull/1511
Reviewed-By: Jeremiah Senkpiel <fishrock123@rocketmail.com>
Chris Yip [Tue, 21 Apr 2015 07:13:27 +0000 (15:13 +0800)]
module: remove '' from Module.globalPaths
If `$NODE_PATH` contains trailing separators, `Module.globalPaths` will
contains empty strings. When `Module` try to resolve a module's path,
`path.resolve('', 'index.js')` will boil down to `$PWD/index.js`, which
makes sub modules can access global modules and get unexpected result.
PR-URL: https://github.com/iojs/io.js/pull/1488
Reviewed-By: Roman Reiss <me@silverwind.io>
Guilherme Souza [Tue, 21 Apr 2015 21:24:13 +0000 (18:24 -0300)]
tls_wrap: use localhost if options.host is empty
tls.connect(options) with no options.host should accept a certificate
with CN: 'localhost'. Fix Error: Hostname/IP doesn't match
certificate's altnames: "Host: undefined. is not cert's CN: localhost"
'localhost' is not added directly to defaults because that is not
always desired (for example, when using options.socket)
PR-URL: https://github.com/iojs/io.js/pull/1493
Fixes: https://github.com/iojs/io.js/issues/1489
Reviewed-By: Brendan Ashworth <brendan.ashworth@me.com>
Reviewed-By: Roman Reiss <me@silverwind.io>
Jeremiah Senkpiel [Thu, 23 Apr 2015 00:46:06 +0000 (20:46 -0400)]
doc: add Fishrock123 to the TC
as per https://github.com/iojs/io.js/issues/1502
PR-URL: https://github.com/iojs/io.js/pull/1507
Reviewed-By: Chris Dickinson <christopher.s.dickinson@gmail.com>
Reviewed-By: Ben Noordhuis <info@bnoordhuis.nl>
Nick Raienko [Wed, 22 Apr 2015 11:27:04 +0000 (14:27 +0300)]
doc: add spaces to child.kill example
PR-URL: https://github.com/iojs/io.js/pull/1503
Reviewed-By: Colin Ihrig <cjihrig@gmail.com>
Reviewed-By: Evan Lucas <evanlucas@me.com>
Rod Vagg [Mon, 20 Apr 2015 08:55:04 +0000 (18:55 +1000)]
doc: update AUTHORS list
Update AUTHORS list using tools/update-authors.sh
PR-URL: https://github.com/iojs/io.js/pull/1476
Reviewed-By: Ben Noordhuis <info@bnoordhuis.nl>
Chris Dickinson [Tue, 21 Apr 2015 03:25:08 +0000 (20:25 -0700)]
Merge v1.8.1.
This brings in the '%PYTHON%' revert, and restores
the correct NODE_MODULE_VERSION.
PR-URL: https://github.com/iojs/io.js/pull/1482
Reviewed-By: Jeremiah Senkpiel <fishrock123@rocketmail.com>
Chris Dickinson [Mon, 20 Apr 2015 23:02:06 +0000 (16:02 -0700)]
Working on v1.8.2
Chris Dickinson [Sat, 18 Apr 2015 04:33:30 +0000 (21:33 -0700)]
2015-04-20 io.js v1.8.1 Release
Notable Changes:
* build: revert vcbuild.bat changes
* changes inherited from v1.8.0:
* build: Support for building io.js as a static
library (Marat Abdullin) #1341
* npm: Upgrade npm to 2.8.3. (Forrest L Norvell) #1448
* deps: upgrade openssl to 1.0.2a (Shigeki Ohtsu) #1389
* src: allow multiple arguments to be passed to
process.nextTick (Trevor Norris) #1077
* module: the interaction of require('.') with NODE_PATH has been
restored and deprecated. This functionality will be removed at
a later point. (Roman Reiss) #1363
Chris Dickinson [Sat, 18 Apr 2015 04:27:15 +0000 (21:27 -0700)]
src: revert NODE_MODULE_VERSION to 43
PR-URL: https://github.com/iojs/io.js/pull/1460
Reviewed-By: Jeremiah Senkpiel <fishrock123@rocketmail.com>
Rod Vagg [Mon, 20 Apr 2015 08:48:51 +0000 (18:48 +1000)]
Revert "build: use %PYTHON% instead of python"
This reverts commit
91943a99d534e67f6b7a7a3be45206afdb3fbf75.
Old commit cherry-picked in but found to cause problems with .msi
creation on Windows.
Original change is mostly pointless because V8 hard-wires
`python` anyway.
PR-URL: https://github.com/iojs/io.js/pull/1475
Reviewed-By: Ben Noordhuis <info@bnoordhuis.nl>
Brendan Ashworth [Sat, 18 Apr 2015 20:26:15 +0000 (13:26 -0700)]
test: add test for 06cfff9 regression
This commit adds a test to ensure all options are NOT modified after
passing them to http.request. Specifically options.host and options.port
are the most prominent that would previously error, but add the other
options that have default values.
options.host and options.port were overridden for the one-argument
net.createConnection(options) call.
PR-URL: https://github.com/iojs/io.js/pull/1467
Reviewed-By: Ben Noordhuis <info@bnoordhuis.nl>
Brendan Ashworth [Sat, 18 Apr 2015 20:22:34 +0000 (13:22 -0700)]
Revert "http: don't bother making a copy of the options"
This reverts commit
06cfff935012ed2826cac56284cea982630cbc27.
Reverted because it introduced a regression where (because options were
modified in the later functionality) options.host and options.port would
be overridden with values provided in other, supported ways.
PR-URL: https://github.com/iojs/io.js/pull/1467
Reviewed-By: Ben Noordhuis <info@bnoordhuis.nl>
Brendan Ashworth [Sat, 18 Apr 2015 18:11:52 +0000 (11:11 -0700)]
doc: update CONTRIBUTING.md
This commit:
- fixes development branch (v1.x -> master)
- updates stability index wording
- use iojs binary instead of node
PR-URL: https://github.com/iojs/io.js/pull/1466
Reviewed-By: Ben Noordhuis <info@bnoordhuis.nl>
Chris Dickinson [Fri, 17 Apr 2015 21:53:22 +0000 (14:53 -0700)]
Working on v1.8.1
Chris Dickinson [Fri, 17 Apr 2015 21:52:50 +0000 (14:52 -0700)]
Working on v2.0.0
Chris Dickinson [Fri, 17 Apr 2015 21:31:49 +0000 (14:31 -0700)]
2015-04-17 io.js v1.8.0 Release
Notable Changes:
* build: Support for building io.js as a static
library (Marat Abdullin) #1341
* deps: upgrade openssl to 1.0.2a (Shigeki Ohtsu) #1389
* npm: Upgrade npm to 2.8.3. (Forrest L Norvell) #1448
* src: allow multiple arguments to be passed to
process.nextTick (Trevor Norris) #1077
* module: the interaction of require('.') with NODE_PATH has been
restored and deprecated. This functionality will be removed at
a later point. (Roman Reiss) #1363
Jeremiah Senkpiel [Fri, 17 Apr 2015 19:04:46 +0000 (15:04 -0400)]
build: fix logic for shared library flags
Fixes a regession introduced in
fd90b33b94e6ce64fde193deca2e2aa6c774f558
PR-URL: https://github.com/iojs/io.js/pull/1454
Reviewed-By: Chris Dickinson <christopher.s.dickinson@gmail.com>
Bert Belder [Wed, 25 Mar 2015 04:00:12 +0000 (21:00 -0700)]
win,node-gyp: optionally allow node.exe/iojs.exe to be renamed
On Windows, when node or io.js attempts to dynamically load a compiled
addon, the compiled addon tries to load node.exe or iojs.exe again -
depending on which import library the module used when it was linked.
This causes many compiled addons to break when node.exe or iojs.exe are
renamed, because when the binary has been renamed the addon DLL can't
find the (right) .exe file to load its imports from.
This patch gives compiled addon developers an option to overcome this
restriction by compiling a delay-load hook into their binary. The
delay-load hook ensures that whenever a module tries to load imports
from node.exe/iojs.exe, it'll just look at the process image, thereby
making the addon work regardless of what name the node/iojs binary has.
To enable this feature, the addon developer must set the
'win_delay_load_hook' option to 'true' in their binding.gyp file, like
this:
```
{
'targets': [
{
'target_name': 'ernie',
'win_delay_load_hook': 'true',
...
```
Bug: https://github.com/iojs/io.js/issues/751
Bug: https://github.com/iojs/io.js/issues/965
Upstream PR: https://github.com/TooTallNate/node-gyp/pull/599
PR-URL: https://github.com/iojs/io.js/pull/1251
Reviewed-By: Rod Vagg <rod@vagg.org>
PR-URL: https://github.com/iojs/io.js/pull/1266
Reviewed-By: Ben Noordhuis <info@bnoordhuis.nl>
cjihrig [Fri, 27 Feb 2015 18:40:58 +0000 (13:40 -0500)]
deps: make node-gyp work with io.js
Every npm version bump requires a few patches to be floated on
node-gyp for io.js compatibility. These patches are found in
03d199276e21c1fa08d8df14eeb654c90cc5aa20,
5de334c23096492014a097ff487f07ad8eaee6d2, and
da730c76e98fb9fd18dac445dafbbec74d79f802. This commit squashes
them into a single commit.
PR-URL: https://github.com/iojs/io.js/pull/990
Reviewed-By: Ben Noordhuis <info@bnoordhuis.nl>
Forrest L Norvell [Fri, 17 Apr 2015 08:12:21 +0000 (01:12 -0700)]
deps: upgrade npm to 2.8.3
Chris Dickinson [Fri, 17 Apr 2015 20:13:32 +0000 (20:13 +0000)]
deps: fix git case sensitivity issue in npm
Remove Readme.md, as the subsequent npm update commit creates a
README.md. Combining the create and delete operations into the
same commit leads to OSX machines running into issues – they
don't detect it as a rename, instead trying to create a new
README.md, which fails because Readme.md hasn't been deleted yet.
This causes the entire operation to fail spectacularly. Thus,
the delete operation is performed first, in this commit, then
the create operation follows in the npm update commit.
PR-URL: https://github.com/iojs/io.js/pull/1456
Reviewed-By: Jeremiah Senkpiel <fishrock123@rocketmail.com>
Roman Reiss [Fri, 17 Apr 2015 16:06:46 +0000 (18:06 +0200)]
module: fix style
This makes the linter happy again.
PR-URL: https://github.com/iojs/io.js/pull/1453
Reviewed-By: Jeremiah Senkpiel <fishrock123@rocketmail.com>
fengmk2 [Mon, 23 Mar 2015 11:33:13 +0000 (19:33 +0800)]
http: logically respect maxSockets
Allows the number of pooled free sockets to equal maxSockets.
Previously it would only allow maxSockets - 1.
PR-URL: https://github.com/iojs/io.js/pull/1242
Reviewed-By: Jeremiah Senkpiel <fishrock123@rocketmail.com>
Reviewed-By: Ben Noordhuis <info@bnoordhuis.nl>
Reviewed-By: Christian Tellnes <christian@tellnes.no>
Jackson Tian [Thu, 16 Apr 2015 17:14:25 +0000 (01:14 +0800)]
net: add fd into listen2 debug info
Add fd into debug message.
PR-URL: https://github.com/iojs/io.js/pull/1442
Reviewed-By: Jeremiah Senkpiel <fishrock123@rocketmail.com>
Reviewed-By: Roman Reiss <me@silverwind.io>
Rod Vagg [Thu, 16 Oct 2014 04:40:52 +0000 (15:40 +1100)]
build: use %PYTHON% instead of python
Like libuv does.
Originally: https://github.com/node-forward/node/pull/21
PR-URL: https://github.com/iojs/io.js/pull/1444
Reviewed-By: Ben Noordhuis <info@bnoordhuis.nl>
Reviewed-By: Jeremiah Senkpiel <fishrock123@rocketmail.com>
Conflicts:
vcbuild.bat
Yazhong Liu [Thu, 2 Oct 2014 16:00:40 +0000 (00:00 +0800)]
stream: remove duplicated expression
PR-URL: https://github.com/iojs/io.js/pull/1444
Reviewed-By: Trevor Norris <trev.norris@gmail.com>
Reviewed-By: Chris Dickinson <christopher.s.dickinson@gmail.com>
Reviewed-By: Jeremiah Senkpiel <fishrock123@rocketmail.com>
Roman Reiss [Tue, 7 Apr 2015 14:30:28 +0000 (16:30 +0200)]
module: handle NODE_PATH in require('.')
This commit restores the functionality of adding a module's path to
NODE_PATH and requiring it with require('.'). As NODE_PATH was never
intended to be used as a pointer to a module directory (but instead, to
a directory containing directories of modules), this feature is also
being deprecated in turn, to be removed at a later point in time.
PR-URL: https://github.com/iojs/io.js/pull/1363
Fixes: https://github.com/iojs/io.js/issues/1356
Reviewed-By: Jeremiah Senkpiel <fishrock123@rocketmail.com>
Reviewed-By: Rod Vagg <rod@vagg.org>
Jackson Tian [Thu, 16 Apr 2015 15:31:34 +0000 (23:31 +0800)]
buffer: fast-case for empty string in byteLength
When the string is empty, calling the binding is unnecessary and slow.
PR-URL: https://github.com/iojs/io.js/pull/1441
Reviewed-by: Jeremiah Senkpiel <fishrock123@rocketmail.com>
Reviewed-By: Colin Ihrig <cjihrig@gmail.com>
Reviewed-By: Christian Tellnes <christian@tellnes.no>
Jackson Tian [Thu, 16 Apr 2015 05:44:17 +0000 (13:44 +0800)]
src: remove duplicate byteLength from Buffer
Commit
36a77956 introduced a duplicate Buffer byteLength property.
PR-URL: https://github.com/iojs/io.js/pull/1438
Reviewed-By: Colin Ihrig <cjihrig@gmail.com>
Reviewed-By: Johan Bergström <bugs@bergstroem.nu>
Johan Bergström [Tue, 14 Apr 2015 06:37:20 +0000 (16:37 +1000)]
doc: Document forced pushing with git
Mention that we generally disallow forced pushes but allow it
in trivial cases within 10 minutes of the original push unless
the branch pushed to already has new commits.
PR-URL: https://github.com/iojs/io.js/pull/1420
Reviewed-By: Rod Vagg <rod@vagg.org>
Reviewed-By: Jeremiah Senkpiel <fishrock123@rocketmail.com>
Reviewed-By: Roman Reiss <me@silverwind.io>
Trevor Norris [Thu, 5 Mar 2015 21:07:27 +0000 (14:07 -0700)]
node: allow multiple arguments passed to nextTick
PR-URL: https://github.com/iojs/io.js/pull/1077
Reviewed-by: Colin Ihrig <cjihrig@gmail.com>
Rod Vagg [Sat, 21 Mar 2015 05:16:16 +0000 (16:16 +1100)]
doc: add Addon API WG
PR-URL: https://github.com/iojs/io.js/pull/1226
Reviewed-By: Yosuke Furukawa <yosuke.furukawa@gmail.com>
Reviewed-By: TC
Johan Bergström [Wed, 15 Apr 2015 00:49:29 +0000 (10:49 +1000)]
build: Expose xz compression level
On machines with limited resources a fair tradeoff could be trading
result size with less memory and cpu consumption. Expose a variable
that overrides the default (9).
Note: xz is often used to gain maximum possible compression, so
avoid lowering this if possible.
PR-URL: https://github.com/iojs/io.js/pull/1428
Reviewed-By: Rod Vagg <rod@vagg.org>
Shigeki Ohtsu [Mon, 13 Apr 2015 01:19:05 +0000 (10:19 +0900)]
build: fix error message in configure
Replace Node.js to io.js in error messages.
Fixes: https://github.com/iojs/io.js/issues/589
PR-URL: https://github.com/iojs/io.js/pull/1389
Reviewed-By: Ben Noordhuis <info@bnoordhuis.nl>
Shigeki Ohtsu [Tue, 31 Mar 2015 05:28:08 +0000 (14:28 +0900)]
deps: add docs to upgrade openssl
This document is intended to describe the procedure to upgrade openssl
from 1.0.1m to 1.0.2a in io.js.
Fixes: https://github.com/iojs/io.js/issues/589
PR-URL: https://github.com/iojs/io.js/pull/1389
Reviewed-By: Fedor Indutny <fedor@indutny.com>
Reviewed-By: Ben Noordhuis <info@bnoordhuis.nl>
Shigeki Ohtsu [Thu, 5 Feb 2015 07:16:00 +0000 (16:16 +0900)]
test: fix error message check for openssl-1.0.2a
openssl-1.0.2a does not include function name of SSL3_GET_CLIENT_HELLO
in the error message
Fixes: https://github.com/iojs/io.js/issues/589
PR-URL: https://github.com/iojs/io.js/pull/1389
Reviewed-By: Fedor Indutny <fedor@indutny.com>
Reviewed-By: Ben Noordhuis <info@bnoordhuis.nl>
Shigeki Ohtsu [Fri, 10 Apr 2015 07:13:53 +0000 (16:13 +0900)]
build: enable ssl support on arm64
Fixes: https://github.com/iojs/io.js/issues/589
PR-URL: https://github.com/iojs/io.js/pull/1389
Reviewed-By: Fedor Indutny <fedor@indutny.com>
Reviewed-By: Ben Noordhuis <info@bnoordhuis.nl>
Shigeki Ohtsu [Fri, 10 Apr 2015 04:58:31 +0000 (13:58 +0900)]
deps: update asm files for openssl-1.0.2a
asm files are generated as
- In `deps/openssl/asm/`, make with CC=gcc and ASM=nasm
- In `deps/openssl/asm_obsolute/`, make with no envs for compilers
Fixes: https://github.com/iojs/io.js/issues/589
PR-URL: https://github.com/iojs/io.js/pull/1389
Reviewed-By: Fedor Indutny <fedor@indutny.com>
Reviewed-By: Ben Noordhuis <info@bnoordhuis.nl>
Shigeki Ohtsu [Tue, 31 Mar 2015 05:16:10 +0000 (14:16 +0900)]
deps, build: add support older assembler
Asm files for OpenSSL depends on the version of assembler.
We provide two sets of asm files, one is asm_latest(avx2 and addx
supported) and the other asm_obsolute(without avx1/2 and addx)
The asm_latest needs the version of gas >= 2.23, llvm >= 3.3
or ml64 >= 12 as defined in
https://github.com/openssl/openssl/blob/OpenSSL_1_0_2-stable/crypto/sha/asm/sha512-x86_64.pl#L112-L129
, otherwise asm_obsolute are used.
We take MSVS_VERSION in gyp as a version check of assembler on
Windows because the path to ml64.exe was set after configure in
vcbuild.bat and executing ml64.exe was failed in configure.
Fixes: https://github.com/iojs/io.js/issues/589
PR-URL: https://github.com/iojs/io.js/pull/1389
Reviewed-By: Fedor Indutny <fedor@indutny.com>
Reviewed-By: Ben Noordhuis <info@bnoordhuis.nl>
Shigeki Ohtsu [Tue, 31 Mar 2015 05:12:32 +0000 (14:12 +0900)]
deps: update asm Makefile for openssl-1.0.2a
This includes following changes,
- Updated asm files for each platforms which are required in
openssl-1.0.2a.
- Some perl files need CC and ASM envs. Added a check if these envs
exist. Followed asm files are to be generated with CC=gcc and
ASM=nasm on Linux. See
`deps/openssl/openssl/crypto/sha/asm/sha512-x86_64.pl`
- Added new 32bit targets/rules with a sse2 flag (OPENSSL_IA32_SSE2)
to generate asm for use SSE2.
- Generating sha512 asm files in x86_64 need output filename which
has 512. Added new rules so as not to use stdout for outputs.
- PERLASM_SCHEME of linux-armv4 is `void` as defined in openssl
Configure. Changed its target/rule and all directories are moved from
arm-elf-gas to arm-void-gas.
deps: add arm64 support in openssl/asm/Makefile
Fixes: https://github.com/iojs/io.js/issues/589
PR-URL: https://github.com/iojs/io.js/pull/1389
Reviewed-By: Fedor Indutny <fedor@indutny.com>
Reviewed-By: Ben Noordhuis <info@bnoordhuis.nl>
Shigeki Ohtsu [Tue, 31 Mar 2015 05:09:53 +0000 (14:09 +0900)]
deps: update openssl.gyp/gypi for openssl-1.0.2a
Update gyp sources for openssl-1.0.2a. The source list was extracted
from Makefiles in `deps/openssl/openssl/{crypto/ssl/engines}`.
Defines are created by referring the table in
`deps/openssl/doc/openssl_define_list.pdf` that was derived from
Makefile entries and outputs of
`deps/openssl/openssl/Configure TABLE`.
Renamed the variable of openssl_sources_arm_elf_gas to
openssl_sources_arm_void_gas to be consistent with PERLASM_SCHEME.
This also includes arm64 support.
Fixes: https://github.com/iojs/io.js/issues/589
PR-URL: https://github.com/iojs/io.js/pull/1389
Reviewed-By: Fedor Indutny <fedor@indutny.com>
Reviewed-By: Ben Noordhuis <info@bnoordhuis.nl>
Shigeki Ohtsu [Fri, 10 Apr 2015 02:29:00 +0000 (11:29 +0900)]
deps: update opensslconf.h for 1.0.2a
just type `make` in `deps/openssl/conf` then opensslconf.h in all
architectures are updated.
Fixes: https://github.com/iojs/io.js/issues/589
PR-URL: https://github.com/iojs/io.js/pull/1389
Reviewed-By: Fedor Indutny <fedor@indutny.com>
Reviewed-By: Ben Noordhuis <info@bnoordhuis.nl>
Shigeki Ohtsu [Fri, 10 Apr 2015 02:24:08 +0000 (11:24 +0900)]
deps: add x32 and arm64 support for opensslconf.h
linux-x32 and linux-aarch64(arm64) are officially supported in
openssl-1.0.2. With this fix opensslconf.h for these new architectures
can be generated by Makefile.
The patch for opensslconf.h of linux-x32 with Makefile was removed.
For the fix of opensslconf.h in WIN32/WIN64, adding defines of
OPENSSL_NO_DYNAMIC_ENGINE and OPENSSL_NO_CAPIENG move to openssl.gypi
so that we no longer need insert a patch with Makefile and removed it.
Fixes: https://github.com/iojs/io.js/issues/589
PR-URL: https://github.com/iojs/io.js/pull/1389
Reviewed-By: Fedor Indutny <fedor@indutny.com>
Reviewed-By: Ben Noordhuis <info@bnoordhuis.nl>
Shigeki Ohtsu [Fri, 10 Apr 2015 02:12:07 +0000 (11:12 +0900)]
deps: replace all headers in openssl
Change all openssl/include/openssl/*.h to include resolved symbolic
links and openssl/crypto/opensslconf.h to refer config/opensslconf.h
Fixes: https://github.com/iojs/io.js/issues/589
PR-URL: https://github.com/iojs/io.js/pull/1389
Reviewed-By: Fedor Indutny <fedor@indutny.com>
Reviewed-By: Ben Noordhuis <info@bnoordhuis.nl>
Shigeki Ohtsu [Tue, 17 Feb 2015 02:30:28 +0000 (11:30 +0900)]
openssl: fix keypress requirement in apps on win32
Reapply
b910613792dac946b295855963869933a9089044 .
Fixes: https://github.com/iojs/io.js/issues/589
PR-URL: https://github.com/iojs/io.js/pull/1389
Reviewed-By: Fedor Indutny <fedor@indutny.com>
Reviewed-By: Ben Noordhuis <info@bnoordhuis.nl>
Shigeki Ohtsu [Tue, 27 Jan 2015 10:03:29 +0000 (10:03 +0000)]
deps: backport openssl patch of alt cert chains 1
This a backport of
da084a5ec6cebd67ae27f2463ebe4a50bb840fa5 in
https://github.com/openssl/openssl by Matt Caswell <matt@openssl.org> as
In certain situations the server provided certificate chain may no
longer be valid. However the issuer of the leaf, or some intermediate
cert is in fact in the trust store.
When building a trust chain if the first attempt fails, then try to
see if alternate chains could be constructed that are trusted.
deps: backport openssl patch of alt cert chains 2
This a backport of
15dba5be6a4482a9ad7e5b846291f31e97e338ca in
https://github.com/openssl/openssl by Matt Caswell <matt@openssl.org> as
Add flag to inhibit checking for alternate certificate chains. Setting this
behaviour will force behaviour as per previous versions of OpenSSL
Fixes: https://github.com/iojs/io.js/issues/589
PR-URL: https://github.com/iojs/io.js/pull/1389
Reviewed-By: Fedor Indutny <fedor@indutny.com>
Reviewed-By: Ben Noordhuis <info@bnoordhuis.nl>
Shigeki Ohtsu [Fri, 13 Feb 2015 09:33:59 +0000 (18:33 +0900)]
deps: fix asm build error of openssl in x86_win32
See
https://mta.openssl.org/pipermail/openssl-dev/2015-February/000651.html
iojs needs to stop using masm and move to nasm or yasm on Win32.
Fixes: https://github.com/iojs/io.js/issues/589
PR-URL: https://github.com/iojs/io.js/pull/1389
Reviewed-By: Fedor Indutny <fedor@indutny.com>
Reviewed-By: Ben Noordhuis <info@bnoordhuis.nl>
Fedor Indutny [Wed, 8 Jan 2014 19:05:01 +0000 (23:05 +0400)]
deps: fix openssl assembly error on ia32 win32
`x86masm.pl` was mistakenly using .486 instruction set, why `cpuid` (and
perhaps others) are requiring .686 .
Fixes: https://github.com/iojs/io.js/issues/589
PR-URL: https://github.com/iojs/io.js/pull/1389
Reviewed-By: Fedor Indutny <fedor@indutny.com>
Reviewed-By: Ben Noordhuis <info@bnoordhuis.nl>
Reviewed-By: Shigeki Ohtsu <ohtsu@iij.ad.jp>
Shigeki Ohtsu [Mon, 30 Mar 2015 05:41:01 +0000 (14:41 +0900)]
deps: upgrade openssl to 1.0.2a
This just replaces all sources in deps/openssl/openssl to originals in
https://www.openssl.org/source/openssl-1.0.2a.tar.gz
Fixes: https://github.com/iojs/io.js/issues/589
PR-URL: https://github.com/iojs/io.js/pull/1389
Reviewed-By: Fedor Indutny <fedor@indutny.com>
Reviewed-By: Ben Noordhuis <info@bnoordhuis.nl>
Rod Vagg [Tue, 14 Apr 2015 13:26:14 +0000 (23:26 +1000)]
Working on v1.7.2
Rod Vagg [Tue, 14 Apr 2015 12:57:23 +0000 (22:57 +1000)]
2015-04-14 io.js v1.7.1 Release
Notable changes:
* build: A syntax error in the Makefile for release builds caused
1.7.0 to be DOA and unreleased. (Rod Vagg) #1421
Rod Vagg [Tue, 14 Apr 2015 12:22:23 +0000 (22:22 +1000)]
build: fix RELEASE check
fixes broken 1.7.0 build, unreviewed quick patch
Ref: https://github.com/iojs/io.js/pull/1405
PR-URL: https://github.com/iojs/io.js/pull/1421