platform/upstream/nodejs.git
9 years agonet,dgram: return this from ref and unref methods
Roman Reiss [Fri, 22 May 2015 16:35:57 +0000 (18:35 +0200)]
net,dgram: return this from ref and unref methods

Modifies the following methods to return the instance instead
of undefined, to allow for chaining these methods:

- net.Server.ref
- net.Server.unref
- net.Socket.ref
- net.Socket.unref
- dgram.Socket.ref
- dgram.Socket.unref

PR-URL: https://github.com/nodejs/io.js/pull/1768
Reviewed-By: Evan Lucas <evanlucas@me.com>
9 years agobuffer: optimize Buffer.byteLength
Brendan Ashworth [Sat, 16 May 2015 02:24:34 +0000 (19:24 -0700)]
buffer: optimize Buffer.byteLength

Buffer.byteLength is important for speed because it is called whenever a
new Buffer is created from a string.

This commit optimizes Buffer.byteLength execution by:
- moving base64 length calculation into JS-land, which is now much
  faster
- remove redundant code and streamline the UTF8 length calculation

It also adds a benchmark and better tests.

PR-URL: https://github.com/nodejs/io.js/pull/1713
Reviewed-By: Trevor Norris <trev.norris@gmail.com>
Reviewed-By: Ben Noordhuis <info@bnoordhuis.nl>
9 years agotls: emit errors happening before handshake finish
Malte-Thorben Bruns [Fri, 22 May 2015 19:12:59 +0000 (21:12 +0200)]
tls: emit errors happening before handshake finish

This fixes a race condition introduced in 80342f6.
`socket.destroy(err)` only emits the passed error when
`socket._writableState.errorEmitted === false`, `ssl.onerror`
sets `errorEmitted = true` just before calling
`socket.destroy()`.

See: https://github.com/nodejs/io.js/issues/1119
See: https://github.com/nodejs/io.js/issues/1711
PR-URL: https://github.com/nodejs/io.js/pull/1769
Reviewed-By: Fedor Indutny <fedor@indutny.com>
9 years agodoc: fix typo in CONTRIBUTING.md
Rich Trott [Thu, 21 May 2015 05:46:02 +0000 (22:46 -0700)]
doc: fix typo in CONTRIBUTING.md

PR-URL: https://github.com/nodejs/io.js/pull/1755
Reviewed-By: Evan Lucas <evanlucas@me.com>
Reviewed-By: Roman Reiss <me@silverwind.io>
Reviewed-By: Jeremiah Senkpiel <fishrock123@rocketmail.com>
9 years agodoc: path is ignored in url.format
Maurice Butler [Thu, 21 May 2015 04:00:16 +0000 (14:00 +1000)]
doc: path is ignored in url.format

Made it obvious that path is ignored in url.format

PR-URL: https://github.com/nodejs/io.js/pull/1753

9 years agotls: use `.destroy(err)` instead of destroy+emit
Fedor Indutny [Fri, 15 May 2015 19:21:06 +0000 (21:21 +0200)]
tls: use `.destroy(err)` instead of destroy+emit

Emit errors using `.destroy(err)` instead of `.destroy()` and
`.emit('error', err)`. Otherwise `close` event is emitted with the
`error` argument set to `false`, even if the connection was torn down
because of the error.

See: https://github.com/nodejs/io.js/issues/1119
PR-URL: https://github.com/nodejs/io.js/pull/1711
Reviewed-By: Chris Dickinson <christopher.s.dickinson@gmail.com>
9 years agobuild: refactor pkg-config for shared libraries
Johan Bergström [Mon, 4 May 2015 03:57:17 +0000 (13:57 +1000)]
build: refactor pkg-config for shared libraries

Improve detection and usage of pkg-config. This simplifies the setup
of all our shared libraries.

If pkg-config is installed on the host and `--shared` flags are passed
by the user, we try to get defaults from pkg-config instead of using the
default provided by configure.

PR-URL: https://github.com/nodejs/io.js/pull/1603
Reviewed-By: Ben Noordhuis <info@bnoordhuis.nl>
9 years agoutil: speed up common case of formatting string
Сковорода Никита Андреевич [Wed, 20 May 2015 19:26:37 +0000 (22:26 +0300)]
util: speed up common case of formatting string

PR-URL: https://github.com/nodejs/io.js/pull/1749
Reviewed-By: Ben Noordhuis <info@bnoordhuis.nl>
Reviewed-By: Jeremiah Senkpiel <fishrock123@rocketmail.com>
9 years agotls: make server not use DHE in less than 1024bits
Shigeki Ohtsu [Wed, 20 May 2015 05:20:26 +0000 (14:20 +0900)]
tls: make server not use DHE in less than 1024bits

DHE key lengths less than 1024bits is already weaken as pointed out in
https://weakdh.org/ . 1024bits will not be safe in near future. We
will extend this up to 2048bits somedays later.

PR-URL: https://github.com/nodejs/io.js/pull/1739
Reviewed-By: Ben Noordhuis <info@bnoordhuis.nl>
Reviewed-By: Fedor Indutny <fedor@indutny.com>
9 years agodoc: fix spelling in CHANGELOG
Felipe Batista [Sun, 17 May 2015 21:20:41 +0000 (18:20 -0300)]
doc: fix spelling in CHANGELOG

Reviewed-By: Roman Reiss <me@silverwind.io>
9 years agodoc: add notes to child_process.fork() and .exec()
Rich Trott [Sun, 17 May 2015 02:33:13 +0000 (19:33 -0700)]
doc: add notes to child_process.fork() and .exec()

Adds notes about the difference to their POSIX counterparts.

PR-URL: https://github.com/nodejs/io.js/pull/1718
Fixes: https://github.com/nodejs/io.js/issues/224
Reviewed-By: Roman Reiss <me@silverwind.io>
9 years agotest: fix jslint error
Michaël Zasso [Wed, 20 May 2015 09:29:08 +0000 (11:29 +0200)]
test: fix jslint error

PR-URL: https://github.com/nodejs/io.js/pull/1743
Fixes: https://github.com/nodejs/io.js/issues/1742
Reviewed-By: Roman Reiss <me@silverwind.io>
9 years agotest: fix test-sync-io-option
Santiago Gimeno [Tue, 19 May 2015 08:22:37 +0000 (10:22 +0200)]
test: fix test-sync-io-option

Wait for all the data to be available in stderr before checking its
contents. In FreeBSD this was failing because stderr data was being
emitted in multiple chunks. 4 WARNINGS are printed instead of 2 for
each sync call inside readFileSync. require('fs') does not print any
trace.

PR-URL: https://github.com/nodejs/io.js/pull/1734
Reviewed-By: Trevor Norris <trev.norris@gmail.com>
9 years agotest: enable linting for tests
Roman Reiss [Tue, 19 May 2015 11:00:06 +0000 (13:00 +0200)]
test: enable linting for tests

Enable linting for the test directory. A number of changes was made so
all tests conform the current rules used by lib and src directories. The
only exception for tests is that unreachable (dead) code is allowed.

test-fs-non-number-arguments-throw had to be excluded from the changes
because of a weird issue on Windows CI.

PR-URL: https://github.com/nodejs/io.js/pull/1721
Reviewed-By: Ben Noordhuis <info@bnoordhuis.nl>
9 years agonet: persist net.Socket options before connect
Evan Lucas [Wed, 18 Feb 2015 18:02:01 +0000 (12:02 -0600)]
net: persist net.Socket options before connect

Remembers net.Socket options called before connect and retroactively
applies them after the handle has been created.

This change makes the following function calls more user-friendly:

- setKeepAlive()
- setNoDelay()
- ref()
- unref()

Related: https://github.com/joyent/node/issues/7077 and
https://github.com/joyent/node/issues/8572

Fixes: https://github.com/joyent/node/issues/7077
Fixes: https://github.com/joyent/node/issues/8572
PR-URL: https://github.com/nodejs/io.js/pull/1518
Reviewed-By: Ben Noordhuis <info@bnoordhuis.nl>
Reviewed-By: Roman Reiss <me@silverwind.io>
9 years agocore: set PROVIDER type as Persistent class id
Trevor Norris [Mon, 18 May 2015 22:39:53 +0000 (16:39 -0600)]
core: set PROVIDER type as Persistent class id

Pass along the PROVIDER type, that is already passed to AsyncWrap, along
to BaseObject to set the handle_'s class id. This will allow all
Persistents to be transversed and uniquely identified by what type they
are using APIs such as v8::PersistentHandleVisitor.

PR-URL: https://github.com/nodejs/io.js/pull/1730
Reviewed-By: Ben Noordhuis <info@bnoordhuis.nl>
9 years agowin,node-gyp: make delay-load hook C89 compliant
Sharat M R [Sun, 26 Apr 2015 23:55:33 +0000 (05:25 +0530)]
win,node-gyp: make delay-load hook C89 compliant

This fixes building compiled addons with Visual Studio 2010.

PR-URL: https://github.com/TooTallNate/node-gyp/pull/616
Reviewed-By: Bert Belder <bertbelder@gmail.com>
9 years agocore: implement runtime flag to trace sync io
Trevor Norris [Thu, 14 May 2015 17:46:54 +0000 (11:46 -0600)]
core: implement runtime flag to trace sync io

Use the --trace-sync-io flag to print a stack trace whenever a sync
method is used after the first tick, excluding during the process exit
event. (e.g. fs.readFileSync()) It does not track if the warning has
occurred at a specific location in the past and so will print the
warning every time.

Reason for not printing during the first tick of the appication is so
all necessary resources can be required. Also by excluding synchronous
calls during exit is necessary in case any data needs to be logged out
by the application before it shuts down.

Fixes: https://github.com/nodejs/io.js/issues/1674
PR-URL: https://github.com/nodejs/io.js/pull/1707
Reviewed-By: Ben Noordhuis <info@bnoordhuis.nl>
Reviewed-By: Fedor Indutny <fedor@indutny.com>
Reviewed-By: Jeremiah Senkpiel <fishrock123@rocketmail.com>
Reviewed-By: Petka Antonov <petka_antonov@hotmail.com>
9 years agodoc: update links from iojs/io.js to nodejs/io.js
Frederic Hemberger [Sat, 16 May 2015 06:04:36 +0000 (08:04 +0200)]
doc: update links from iojs/io.js to nodejs/io.js

Replaced all links in doc and comments to point to the new org.

PR-URL: https://github.com/nodejs/io.js/pull/1715
Reviewed-By: Roman Reiss <me@silverwind.io>
9 years agodoc: recommend against use of NODE_PATH
smikes [Thu, 14 May 2015 23:43:35 +0000 (17:43 -0600)]
doc: recommend against use of NODE_PATH

PR-URL: https://github.com/nodejs/io.js/pull/1708
Reviewed-By: Roman Reiss <me@silverwind.io>
9 years agorepl: remove unnecessary check for globals
Yazhong Liu [Sun, 17 May 2015 17:25:19 +0000 (01:25 +0800)]
repl: remove unnecessary check for globals

There is no need to check for globals and also check if it is
an array.

PR-URL: https://github.com/nodejs/io.js/pull/1722
Reviewed-By: Colin Ihrig <cjihrig@gmail.com>
9 years agodoc: fix connectListener description in net docs
Josh Gummersall [Sat, 16 May 2015 19:27:03 +0000 (12:27 -0700)]
doc: fix connectListener description in net docs

`connectListener` is registered as a listener to the 'connect' event
once. Update the documentation to reflect that behavior.

Fixes: https://github.com/nodejs/io.js/issues/901
PR-URL: https://github.com/nodejs/io.js/pull/1717
Reviewed-By: Ben Noordhuis <info@bnoordhuis.nl>
9 years agorepl: support non-array `.scope`, document it
Yazhong Liu [Tue, 12 May 2015 08:00:35 +0000 (16:00 +0800)]
repl: support non-array `.scope`, document it

REPL evaluate `.scope` when it needs to get a list of the variable names
available in the current scope. Do not throw if the output of such
evaluation is not array, just ignore it.

PR-URL: https://github.com/nodejs/io.js/pull/1682
Reviewed-By: Fedor Indutny <fedor@indutny.com>
9 years agotls_wrap: fix error cb when fatal TLS Alert recvd
Shigeki Ohtsu [Fri, 8 May 2015 04:35:47 +0000 (13:35 +0900)]
tls_wrap: fix error cb when fatal TLS Alert recvd

SSL_read() returns 0 when fatal TLS Alert is received.
Fix to invoke ssl error callback in this case.

PR-URL: https://github.com/nodejs/io.js/pull/1661
Reviewed-By: Fedor Indutny <fedor@indutny.com>
9 years agotls: fix tls handshake check in ssl error
Shigeki Ohtsu [Fri, 8 May 2015 04:30:50 +0000 (13:30 +0900)]
tls: fix tls handshake check in ssl error

In ssl.onerror event, `this` refers `ssl` so that
`this._secureEstablished` is always undefined. Fix it to refer
TLSSocket.

PR-URL: https://github.com/nodejs/io.js/pull/1661
Reviewed-By: Fedor Indutny <fedor@indutny.com>
9 years agohttp,net,tls: return this from setTimeout methods
Evan Lucas [Thu, 14 May 2015 02:25:57 +0000 (21:25 -0500)]
http,net,tls: return this from setTimeout methods

Modifies the setTimeout methods for the following prototypes:

- http.ClientRequest
- http.IncomingMessage
- http.OutgoingMessage
- http.Server
- https.Server
- net.Socket
- tls.TLSSocket

Previously, the above functions returned undefined. They now return
`this`. This is useful for chaining function calls.

PR-URL: https://github.com/nodejs/io.js/pull/1699
Reviewed-By: Roman Reiss <me@silverwind.io>
9 years agodoc: fix v2.0.2 entry in changelog.md
Jeremiah Senkpiel [Fri, 15 May 2015 23:28:16 +0000 (19:28 -0400)]
doc: fix v2.0.2 entry in changelog.md

9 years agoWorking on v2.0.3
Jeremiah Senkpiel [Fri, 15 May 2015 22:40:05 +0000 (18:40 -0400)]
Working on v2.0.3

PR-URL: https://github.com/iojs/io.js/pull/1679

9 years ago2015-05-15 io.js v2.0.2 Release v2.0.2
Jeremiah Senkpiel [Fri, 15 May 2015 22:37:44 +0000 (18:37 -0400)]
2015-05-15 io.js v2.0.2 Release

PR-URL: https://github.com/iojs/io.js/pull/1679

Notable Changes:

* win,node-gyp: the delay-load hook for windows addons has now been
correctly enabled by default, it had wrongly defaulted to off in the
release version of 2.0.0 (Bert Belder) #1433
* os: tmpdir()'s trailing slash stripping has been refined to fix an
issue when the temp directory is at '/'. Also considers which slash is
used by the operating system. (cjihrig) #1673
* tls: default ciphers have been updated to use gcm and aes128 (Mike
MacCana) #1660
* build: v8 snapshots have been re-enabled by default as suggested by
the v8 team, since prior security issues have been resolved. This
should give some perf improvements to both startup and vm context
creation. (Trevor Norris) #1663
* src: fixed preload modules not working when other flags were used
before --require (Yosuke Furukawa) #1694
* dgram: fixed send()'s callback not being asynchronous (Yosuke
Furukawa) #1313
* readline: emitKeys now keeps buffering data until it has enough to
parse. This fixes an issue with parsing split escapes. (Alex Kocharin)
* cluster: works now properly emit 'disconnect' to cluser.worker (Oleg
Elifantiev) #1386
events: uncaught errors now provide some context (Evan Lucas) #1654

9 years agosrc: fix preload when used with prior flags
Yosuke Furukawa [Wed, 13 May 2015 15:00:57 +0000 (00:00 +0900)]
src: fix preload when used with prior flags

Fixes: https://github.com/nodejs/io.js/issues/1691
PR-URL: https://github.com/nodejs/io.js/pull/1694
Reviewed-By: Ali Ijaz Sheikh <ofrobots@google.com>
Reviewed-By: Trevor Norris <trev.norris@gmail.com>
Reviewed-By: Jeremiah Senkpiel <fishrock123@rocketmail.com>
9 years agobuild: use backslashes for paths on windows
Johan Bergström [Wed, 13 May 2015 23:35:03 +0000 (09:35 +1000)]
build: use backslashes for paths on windows

PR-URL: https://github.com/iojs/io.js/pull/1698
Reviewed-By: Yosuke Furukawa <furukawa.yosuke@dena.jp>
Reviewed-By: Roman Reiss <me@silverwind.io>
9 years agotest: fix infinite loop detection
Yosuke Furukawa [Tue, 12 May 2015 06:47:45 +0000 (15:47 +0900)]
test: fix infinite loop detection

Fixes: https://github.com/iojs/io.js/issues/1675
PR-URL: https://github.com/iojs/io.js/pull/1681
Reviewed-By: Jeremiah Senkpiel <fishrock123@rocketmail.com>
9 years agoos: refine tmpdir() trailing slash stripping
cjihrig [Mon, 11 May 2015 16:11:01 +0000 (12:11 -0400)]
os: refine tmpdir() trailing slash stripping

os.tmpdir() began stripping trailing slashes in
b57cc51d8d3f4ad279591ae8fa6584ee22773b97. This causes problems if
the temp directory is simply '/'. It also stripped trailing
slashes without first determining which slash type is used by
the current operating system. This commit only strips trailing
slashes if another character precedes the slash. On Windows, it
checks for ':', as not to strip slashes from something like 'C:\'.
It also only strips slashes that are appropriate for the user's
operating system.

Fixes: https://github.com/iojs/io.js/issues/1669
PR-URL: https://github.com/iojs/io.js/pull/1673
Reviewed-By: Rod Vagg <rod@vagg.org>
Reviewed-By: Christian Tellnes <christian@tellnes.no>
9 years agotools: remove closure_linter to eslint on windows
Yosuke Furukawa [Tue, 12 May 2015 09:33:02 +0000 (18:33 +0900)]
tools: remove closure_linter to eslint on windows

PR-URL: https://github.com/iojs/io.js/pull/1685
Reviewed-By: Johan Bergström <bugs@bergstroem.nu>
Reviewed-By: Roman Reiss <me@silverwind.io>
9 years agobuild: move --with-intl to intl optgroup
Johan Bergström [Tue, 12 May 2015 03:42:54 +0000 (13:42 +1000)]
build: move --with-intl to intl optgroup

PR-URL: https://github.com/iojs/io.js/pull/1680
Reviewed-By: Rod Vagg <rod@vagg.org>
9 years agotools: make eslint work on subdirectories
Roman Reiss [Tue, 12 May 2015 19:29:03 +0000 (21:29 +0200)]
tools: make eslint work on subdirectories

The old pattern didn't include files in lib/internal. This changes the
pattern to directories which makes eslint apply to all subdirectories as
well.

PR-URL: https://github.com/iojs/io.js/pull/1686
Reviewed-By: Chris Dickinson <christopher.s.dickinson@gmail.com>
9 years agotools: refactor `make test-npm` into test-npm.sh
Jeremiah Senkpiel [Thu, 7 May 2015 20:48:12 +0000 (16:48 -0400)]
tools: refactor `make test-npm` into test-npm.sh

Extracts test-npm from Makefile and puts it in tools/test-npm.sh
Also improves test-npm to use a separate copy of deps/npm for testing.

PR-URL: https://github.com/iojs/io.js/pull/1662
Reviewed-By: Johan Bergström <bugs@bergstroem.nu>
Reviewed-By: Evan Lucas <evanlucas@me.com>
9 years agoevents: provide better error message for unhandled error
Evan Lucas [Thu, 7 May 2015 21:09:31 +0000 (16:09 -0500)]
events: provide better error message for unhandled error

Previously, in the event of an unhandled error event, if the error is a
not an actual Error, then a default error is thrown. Now, the argument
is appended to the error message and added as the `context` property
of the error.

PR-URL: https://github.com/iojs/io.js/pull/1654
Reviewed-By: Rod Vagg <rod@vagg.org>
Reviewed-By: Colin Ihrig <cjihrig@gmail.com>
9 years agosrc,deps: replace LoadLibrary by LoadLibraryW
Cheng Zhao [Wed, 31 Dec 2014 20:38:08 +0000 (12:38 -0800)]
src,deps: replace LoadLibrary by LoadLibraryW

On Windows, when compiling with `UNICODE` defined, `LoadLibrary` becomes
`LoadLibraryW`. When an ASCII string is passed to that function it
crashes.

PR-URL: https://github.com/iojs/io.js/pull/226
Reviewed-By: Bert Belder <bertbelder@gmail.com>
9 years agodeps: provide TXT chunk info in c-ares
Fedor Indutny [Thu, 27 Mar 2014 20:09:20 +0000 (00:09 +0400)]
deps: provide TXT chunk info in c-ares

Provide more information in `ares_txt_reply` to coalesce chunks from the
same record into one string.

fix #7367

9 years agodeps: sync with upstream bagder/c-ares@bba4dc5
Ben Noordhuis [Mon, 11 May 2015 22:32:14 +0000 (00:32 +0200)]
deps: sync with upstream bagder/c-ares@bba4dc5

Fixes: https://github.com/iojs/io.js/issues/1676
PR-URL: https://github.com/iojs/io.js/pull/1678
Reviewed-By: Fedor Indutny <fedor@indutny.com>
Reviewed-By: Trevor Norris <trev.norris@gmail.com>
9 years agobuild: re-enable V8 snapshots
Trevor Norris [Fri, 8 May 2015 18:56:13 +0000 (12:56 -0600)]
build: re-enable V8 snapshots

Snapshots had been previously disabled because of a security
vunerability. This has been fixed (ref:
https://github.com/iojs/io.js/issues/1631#issuecomment-100101375)

Also, re-enable snapshots for ARMv6 builds. There were previous build
issues that have been fixed.

Fixes: https://github.com/iojs/io.js/issues/1631
PR-URL: https://github.com/iojs/io.js/pull/1663
Reviewed-By: Ben Noordhuis <info@bnoordhuis.nl>
9 years agotools: set eslint comma-spacing to 'warn'
Roman Reiss [Mon, 11 May 2015 12:24:38 +0000 (14:24 +0200)]
tools: set eslint comma-spacing to 'warn'

Certain cases with comments inside arrays or object literals fail to
pass eslint's comma-spacing rule. This change sets the comma-spacing
rule to the 'warn' level.

Once https://github.com/eslint/eslint/issues/2408 is resolved and
released, this rule should be set back to 'error' level.

PR-URL: https://github.com/iojs/io.js/pull/1672
Reviewed-By: Yosuke Furukawa <yosuke.furukawa@gmail.com>
9 years agotls: update default ciphers to use gcm and aes128
Mike MacCana [Fri, 8 May 2015 18:54:34 +0000 (19:54 +0100)]
tls: update default ciphers to use gcm and aes128

AES-GCM or CHACHA20_POLY1305 ciphers must be used in current version of
Chrome to avoid an 'obsolete cryptography' warning.

Prefer 128 bit AES over 192 and 256 bit AES considering attacks that
specifically affect the larger key sizes but do not affect AES 128.

PR-URL: https://github.com/iojs/io.js/pull/1660
Reviewed-By: Fedor Indutny <fedor@indutny.com>
Reviewed-By: Shigeki Ohtsu <ohtsu@iij.ad.jp>
Reviewed-By: Roman Reiss <me@silverwind.io>
9 years agodgram: call send callback asynchronously
Yosuke Furukawa [Wed, 1 Apr 2015 14:32:48 +0000 (23:32 +0900)]
dgram: call send callback asynchronously

dgram#send callback was changed synchronously.
The PR-URL is here https://github.com/joyent/libuv/pull/1358

This commit is temporary fix until libuv issue is resolved.
https://github.com/libuv/libuv/issues/301

PR-URL: https://github.com/iojs/io.js/pull/1313
Reviewed-By: Ben Noordhuis <info@bnoordhuis.nl>
Reviewed-By: Trevor Norris <trev.norris@gmail.com>
9 years agoreadline: turn emitKeys into a streaming parser
Alex Kocharin [Sun, 3 May 2015 18:11:33 +0000 (18:11 +0000)]
readline: turn emitKeys into a streaming parser

In certain environments escape sequences could be splitted into
multiple chunks. For example, when user presses left arrow,
`\x1b[D` sequence could appear as two keypresses (`\x1b` + `[D`).

PR-URL: https://github.com/iojs/io.js/pull/1601
Fixes: https://github.com/iojs/io.js/issues/1403
Reviewed-By: Jeremiah Senkpiel <fishrock123@rocketmail.com>
Reviewed-By: Roman Reiss <me@silverwind.io>
9 years agowin,node-gyp: enable delay-load hook by default
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>
9 years agolib: fix eslint styles
Yosuke Furukawa [Tue, 28 Apr 2015 17:46:14 +0000 (02:46 +0900)]
lib: fix eslint styles

PR-URL: https://github.com/iojs/io.js/pull/1539
Fixes: https://github.com/iojs/io.js/issues/1253
Reviewed-By: Jeremiah Senkpiel <fishrock123@rocketmail.com>
Reviewed-By: Trevor Norris <trev.norris@gmail.com>
Reviewed-By: Roman Reiss <me@silverwind.io>
Reviewed-By: Chris Dickinson <christopher.s.dickinson@gmail.com>
Reviewed-By: Johan Bergström <bugs@bergstroem.nu>
Reviewed-By: Fedor Indutny <fedor.indutny@gmail.com>
9 years agotools: replace closure-linter with eslint
Yosuke Furukawa [Tue, 28 Apr 2015 17:03:05 +0000 (02:03 +0900)]
tools: replace closure-linter with eslint

PR-URL: https://github.com/iojs/io.js/pull/1539
Fixes: https://github.com/iojs/io.js/issues/1253
Reviewed-By: Jeremiah Senkpiel <fishrock123@rocketmail.com>
Reviewed-By: Trevor Norris <trev.norris@gmail.com>
Reviewed-By: Roman Reiss <me@silverwind.io>
Reviewed-By: Chris Dickinson <christopher.s.dickinson@gmail.com>
Reviewed-By: Johan Bergström <bugs@bergstroem.nu>
Reviewed-By: Fedor Indutny <fedor.indutny@gmail.com>
9 years agocluster: disconnect event not emitted correctly
Oleg Elifantiev [Thu, 2 Apr 2015 20:27:27 +0000 (23:27 +0300)]
cluster: disconnect event not emitted correctly

Inside of a worker, disconnect event was not emitted on cluster.worker

Fixes: https://github.com/iojs/io.js/issues/1304
PR-URL: https://github.com/iojs/io.js/pull/1386
Reviewed-By: Colin Ihrig <cjihrig@gmail.com>
9 years agosrc: add type check to v8.setFlagsFromString()
Roman Klauke [Thu, 7 May 2015 18:27:12 +0000 (20:27 +0200)]
src: add type check to v8.setFlagsFromString()

Calling v8.setFlagsFromString with e.g a function as a flag argument
gave no exception or warning that the function call will fail.

There is now an exception if the function gets called with the wrong
flag type (string is required) or that a flag is expected.

Other APIs already provide exceptions if the argument has not the
expected type.

PR-URL: https://github.com/iojs/io.js/pull/1652
Reviewed-By: Ben Noordhuis <info@bnoordhuis.nl>
9 years agoWorking on v2.0.2
Rod Vagg [Thu, 7 May 2015 21:13:19 +0000 (14:13 -0700)]
Working on v2.0.2

9 years ago2015-05-07 io.js v2.0.1 Release (PROPOSAL) v2.0.1
Rod Vagg [Thu, 7 May 2015 19:28:23 +0000 (12:28 -0700)]
2015-05-07 io.js v2.0.1 Release (PROPOSAL)

PR-URL: https://github.com/iojs/io.js/pull/1629

9 years agodoc: add TC meeting 2015-04-29 minutes
Rod Vagg [Sat, 2 May 2015 05:32:49 +0000 (22:32 -0700)]
doc: add TC meeting 2015-04-29 minutes

PR-URL: https://github.com/iojs/io.js/pull/1585
Reviewed-By: Jeremiah Senkpiel <fishrock123@rocketmail.com>
9 years agoinstall: fix NameError
thefourtheye [Tue, 5 May 2015 17:23:56 +0000 (22:53 +0530)]
install: fix NameError

If `len(args)` is less than two, then
`install_path = dst_dir + node_prefix + '/'` would throw a `NameError`,
because `dst_dir` will not be defined yet. So we are assigning `''` as
the default value.

PR-URL: https://github.com/iojs/io.js/pull/1628
Reviewed-By: Ben Noordhuis <info@bnoordhuis.nl>
Reviewed-By: Jeremiah Senkpiel <fishrock123@rocketmail.com>
9 years agosrc: export the ParseEncoding function on Windows
Ivan Kozik [Sun, 3 May 2015 02:41:00 +0000 (02:41 +0000)]
src: export the ParseEncoding function on Windows

Makes the ParseEncoding symbol visible to addons on Windows.
It was already visible on Unices.

PR-URL: https://github.com/iojs/io.js/pull/1596
Reviewed-By: Fedor Indutny <fedor@indutny.com>
Reviewed-By: Jeremiah Senkpiel <fishrock123@rocketmail.com>
9 years agodoc: fix typo in readme.md
AQNOUCH Mohammed [Wed, 6 May 2015 19:00:55 +0000 (20:00 +0100)]
doc: fix typo in readme.md

PR-URL: https://github.com/iojs/io.js/pull/1643
Reviewed-By: Jeremiah Senkpiel <fishrock123@rocketmail.com>
9 years agodeps: update libuv to 1.5.0
Saúl Ibarra Corretgé [Wed, 6 May 2015 07:46:15 +0000 (09:46 +0200)]
deps: update libuv to 1.5.0

Fixes: https://github.com/iojs/io.js/issues/1397
Fixes: https://github.com/iojs/io.js/issues/1512
Fixes: https://github.com/iojs/io.js/issues/1621
Fixes: https://github.com/iojs/io.js/issues/862
PR-URL: https://github.com/iojs/io.js/pull/1646
Reviewed-By: Ben Noordhuis <info@bnoordhuis.nl>
9 years agotools: remove unused GuessWordSize function
thefourtheye [Wed, 6 May 2015 14:36:30 +0000 (20:06 +0530)]
tools: remove unused GuessWordSize function

Apart from the fact that the implementation is not reliable,
GuessWordSize is not used anywhere in the codebase.

PR-URL: https://github.com/iojs/io.js/pull/1638
Reviewed-By: Roman Reiss <me@silverwind.io>
Reviewed-By: Jeremiah Senkpiel <fishrock123@rocketmail.com>
9 years agodeps: upgrade v8 to 4.2.77.20
Ben Noordhuis [Wed, 6 May 2015 15:04:07 +0000 (17:04 +0200)]
deps: upgrade v8 to 4.2.77.20

Fixes: https://github.com/iojs/io.js/issues/1637
PR-URL: https://github.com/iojs/io.js/pull/1639
Reviewed-By: Trevor Norris <trev.norris@gmail.com>
V8-Bug: https://code.google.com/p/v8/issues/detail?id=3960
V8-Bug: https://code.google.com/p/v8/issues/detail?id=4079

9 years agosrc: fix pedantic cpplint whitespace warnings
Ben Noordhuis [Wed, 6 May 2015 15:21:00 +0000 (17:21 +0200)]
src: fix pedantic cpplint whitespace warnings

Introduced in commit b712af7 ("src: fix NODE_DEPRECATED macro with old
compilers").

PR-URL: https://github.com/iojs/io.js/pull/1640
Reviewed-By: Roman Reiss <me@silverwind.io>
9 years agojs_stream: fix buffer index in DoWrite
Shigeki Ohtsu [Wed, 6 May 2015 04:45:46 +0000 (13:45 +0900)]
js_stream: fix buffer index in DoWrite

The index of buffer to write in JSStream was always 0 by mistake. This
fix was to use increment index of buffer arrays.
The test was originally made by Brian White in #1594.

Fix: https://github.com/iojs/io.js/issues/1595
Fix: https://github.com/iojs/io.js/pull/1594
PR-URL: https://github.com/iojs/io.js/pull/1635
Reviewed-By: Fedor Indutny <fedor@indutny.com>
9 years agosrc: fix NODE_DEPRECATED macro with old compilers
Ben Noordhuis [Tue, 5 May 2015 16:17:55 +0000 (18:17 +0200)]
src: fix NODE_DEPRECATED macro with old compilers

The `__attribute__((deprecated("warning")))` macro didn't exist until
gcc 4.5 and clang 2.9.

While io.js does not build with compilers that old, add-ons do.  Let's
make src/node.h compatible with such compilers, it's a public header.

PR-URL: https://github.com/iojs/io.js/pull/1626
Refs: https://github.com/iojs/io.js/issues/1619
Reviewed-By: Rod Vagg <rod@vagg.org>
Reviewed-By: Trevor Norris <trev.norris@gmail.com>
9 years agodoc: fix PR link in CHANGELOG
Brian White [Tue, 5 May 2015 13:27:12 +0000 (09:27 -0400)]
doc: fix PR link in CHANGELOG

PR-URL: https://github.com/iojs/io.js/pull/1624
Reviewed-By: Colin Ihrig <cjihrig@gmail.com>
9 years agoasync-wrap: remove before/after calls in init
Trevor Norris [Mon, 4 May 2015 22:11:58 +0000 (16:11 -0600)]
async-wrap: remove before/after calls in init

It doesn't make sense to call before/after callbacks in init to the
parent because they'll be made anyway from MakeCallback. If information
does need to be propagated then it should be done automatically. Will
deal with this if the issue arrises in the future.

PR-URL: https://github.com/iojs/io.js/pull/1614
Reviewed-By: Ben Noordhuis <info@bnoordhuis.nl>
9 years agoasync-wrap: set flags using functions
Trevor Norris [Mon, 4 May 2015 22:00:37 +0000 (16:00 -0600)]
async-wrap: set flags using functions

Setting flags using cryptic numeric object fields is confusing. Instead
use much simpler .enable()/.disable() calls on the async_wrap object.

PR-URL: https://github.com/iojs/io.js/pull/1614
Reviewed-By: Ben Noordhuis <info@bnoordhuis.nl>
9 years agoasync-wrap: pass PROVIDER as first arg to init
Trevor Norris [Mon, 4 May 2015 21:59:07 +0000 (15:59 -0600)]
async-wrap: pass PROVIDER as first arg to init

Allow the init callback to see the PROVIDER type easily by being able to
compare the flag with the list of providers on the exported async_wrap
object.

PR-URL: https://github.com/iojs/io.js/pull/1614
Reviewed-By: Ben Noordhuis <info@bnoordhuis.nl>
9 years agoasync-wrap: don't call init callback unnecessarily
Trevor Norris [Mon, 4 May 2015 21:56:40 +0000 (15:56 -0600)]
async-wrap: don't call init callback unnecessarily

Some calls to ReqWrap would get through the initial check and allow the
init callback to run, even though the callback had not been used on the
parent. Fix by explicitly checking if the parent has a queue.

Also change the name of the check, and internal field of AsyncHooks.
Other names were confusing.

PR-URL: https://github.com/iojs/io.js/pull/1614
Reviewed-By: Ben Noordhuis <info@bnoordhuis.nl>
9 years agosrc: fix minor inefficiency in Buffer::New() call
Ben Noordhuis [Fri, 1 May 2015 15:25:18 +0000 (17:25 +0200)]
src: fix minor inefficiency in Buffer::New() call

Commit ccb199a ("src: fix deprecation warnings") passes env()->isolate()
to the Buffer::New() call.  It's somewhat inefficient because the callee
looks up the environment from the isolate.  Just pass the env directly.

PR-URL: https://github.com/iojs/io.js/pull/1577
Reviewed-By: Trevor Norris <trev.norris@gmail.com>
9 years agosrc: fix deprecated use of Buffer::New()
Ben Noordhuis [Fri, 1 May 2015 15:18:16 +0000 (17:18 +0200)]
src: fix deprecated use of Buffer::New()

Pass the isolate explicitly.  Overlooked in commit ccb199a ("src: fix
deprecation warnings") because g++ 4.8 and 4.9 don't warn for it
whereas g++ 5.1 does.

PR-URL: https://github.com/iojs/io.js/pull/1577
Reviewed-By: Trevor Norris <trev.norris@gmail.com>
9 years agoWorking on v2.0.1
Rod Vagg [Mon, 4 May 2015 21:33:59 +0000 (14:33 -0700)]
Working on v2.0.1

9 years ago2015-05-04 io.js v2.0.0 Release v2.0.0
Rod Vagg [Wed, 29 Apr 2015 10:49:00 +0000 (20:49 +1000)]
2015-05-04 io.js v2.0.0 Release

PR-URL: https://github.com/iojs/io.js/pull/1532

Notable Changes:

* crypto: significantly reduced memory usage for TLS (Fedor Indutny & Сковорода
  Никита Андреевич) #1529
* net: socket.connect() now accepts a 'lookup' option for a custom DNS
  resolution mechanism, defaults to dns.lookup() (Evan Lucas) #1505
* npm: Upgrade npm to 2.9.0. See the v2.8.4 and v2.9.0 release notes for
  details. Notable items:
  - Add support for default author field to make npm init -y work without
    user-input (@othiym23) npm/npm/d8eee6cf9d
  - Include local modules in npm outdated and npm update (@ArnaudRinquin)
    npm/npm#7426
  - The prefix used before the version number on npm version is now configurable
    via tag-version-prefix (@kkragenbrink) npm/npm#8014
* os: os.tmpdir() is now cross-platform consistent and will no longer returns a
  path with a trailling slash on any platform (Christian Tellnes) #747
* process:
  - process.nextTick() performance has been improved by between 2-42% across the
    benchmark suite, notable because this is heavily used across core (Brian White) #1548
  - New process.geteuid(), process.seteuid(id), process.getegid() and
    process.setegid(id) methods allow you to get and set effective UID and GID
    of the process (Evan Lucas) #1536
* repl:
  - REPL history can be persisted across sessions if the NODE_REPL_HISTORY_FILE
    environment variable is set to a user accessible file,
    NODE_REPL_HISTORY_SIZE can set the maximum history size and defaults to 1000
    (Chris Dickinson) #1513
  - The REPL can be placed in to one of three modes using the NODE_REPL_MODE
    environment variable: sloppy, strict or magic (default); the new magic mode
    will automatically run "strict mode only" statements in strict mode
    (Chris Dickinson) #1513
* smalloc: the 'smalloc' module has been deprecated due to changes coming in V8
  4.4 that will render it unusable
* util: add Promise, Map and Set inspection support (Christopher Monsanto) #1471
* V8: upgrade to 4.2.77.18, see the ChangeLog for full details. Notable items:
  - Classes have moved out of staging; the class keyword is now usable in strict
    mode without flags
  - Object literal enhancements have moved out of staging; shorthand method and
    property syntax is now usable ({ method() { }, property })
  - Rest parameters (function(...args) {}) are implemented in staging behind the
    --harmony-rest-parameters flag
  - Computed property names ({['foo'+'bar']:'bam'}) are implemented in staging
    behind the --harmony-computed-property-names flag
  - Unicode escapes ('\u{xxxx}') are implemented in staging behind the
    --harmony_unicode flag and the --harmony_unicode_regexps flag for use in
    regular expressions
* Windows:
  - Random process termination on Windows fixed (Fedor Indutny) #1512 / #1563
  - The delay-load hook introduced to fix issues with process naming (iojs.exe /
    node.exe) has been made opt-out for native add-ons. Native add-ons should
    include 'win_delay_load_hook': 'false' in their binding.gyp to disable this
    feature if they experience problems . (Bert Belder) #1433
* Governance:
  - Rod Vagg (@rvagg) was added to the Technical Committee (TC)
  - Jeremiah Senkpiel (@Fishrock123) was added to the Technical Committee (TC)

9 years agosrc: bump NODE_MODULE_VERSION due to V8 API
Rod Vagg [Mon, 4 May 2015 03:36:36 +0000 (20:36 -0700)]
src: bump NODE_MODULE_VERSION due to V8 API

V8 4.2 introduces some minor C++ API changes that make it necessary for
many native add-ons to recompile in order to be usable in v2.0.0+

PR-URL: https://github.com/iojs/io.js/pull/1532

9 years agodoc: add rvagg to the TC
Rod Vagg [Mon, 4 May 2015 20:05:50 +0000 (13:05 -0700)]
doc: add rvagg to the TC

PR-URL: https://github.com/iojs/io.js/pull/1613
Reviewed-By: Jeremiah Senkpiel <fishrock123@rocketmail.com>
9 years agobuild: don't compile debug build with -Og
Ben Noordhuis [Mon, 4 May 2015 18:32:31 +0000 (20:32 +0200)]
build: don't compile debug build with -Og

It's not supported by clang and commit e67542a ("build: disable -Og
when building with clang") is not sufficient because the configure
script no longer writes the 'clang' variable to common.gypi.

I could fix the configure script but I don't care enough actually do
so.  A fixed configure script won't help anyway when the compiler is
overridden through the CXX environment variable at compile time.

PR-URL: https://github.com/iojs/io.js/pull/1611
Reviewed-By: Jeremiah Senkpiel <fishrock123@rocketmail.com>
9 years agorepl: fix for a+ fd clearing the file on read
Chris Dickinson [Mon, 4 May 2015 15:56:14 +0000 (08:56 -0700)]
repl: fix for a+ fd clearing the file on read

The second step of augmenting the internal REPL with persistent
history was to re-open the history file with a 'w' handle. This
truncated the file. If a user did not enter a new line before
closing the REPL, their history would be deleted.

PR-URL: https://github.com/iojs/io.js/pull/1605
Reviewed-By: Roman Reiss <me@silverwind.io>
9 years agorepl: fix _debugger by properly proxying repl
Chris Dickinson [Mon, 4 May 2015 08:40:40 +0000 (01:40 -0700)]
repl: fix _debugger by properly proxying repl

The _debugger module uses the internal REPL module, but expects
to receive the userland REPL module. This fixes the breakage that
occurs by proxying the userland REPL module through the internal
module.

It also fixes an unintended in-REPL bug, where require(node-module)
was not resolving correctly.

PR-URL: https://github.com/iojs/io.js/pull/1605
Reviewed-By: Roman Reiss <me@silverwind.io>
9 years agobuild: disable -Og when building with clang
Ben Noordhuis [Mon, 4 May 2015 15:08:15 +0000 (17:08 +0200)]
build: disable -Og when building with clang

clang does not yet support -Og, fall back to -O0.

See: https://llvm.org/bugs/show_bug.cgi?id=20765
Fixes: https://github.com/iojs/io.js/issues/1608
PR-URL: https://github.com/iojs/io.js/pull/1609
Reviewed-By: Jeremiah Senkpiel <fishrock123@rocketmail.com>
9 years agosrc: fix -Wmissing-field-initializers warning
Ben Noordhuis [Mon, 4 May 2015 11:30:53 +0000 (13:30 +0200)]
src: fix -Wmissing-field-initializers warning

Fix the following (non-serious) compiler warning:

    ../src/node_http_parser.cc:558:1: warning: missing initializer for
    member 'http_parser_settings::on_chunk_header'
    [-Wmissing-field-initializers]
    };
    ^
    ../src/node_http_parser.cc:558:1: warning: missing initializer for
    member 'http_parser_settings::on_chunk_complete'
    [-Wmissing-field-initializers]

Introduced in commit b3a7da1 ("deps: update http_parser to 2.5.0").

PR-URL: https://github.com/iojs/io.js/pull/1606
Reviewed-By: Fedor Indutny <fedor@indutny.com>
9 years agotls_wrap: Unlink TLSWrap and SecureContext objects
Сковорода Никита Андреевич [Fri, 1 May 2015 21:59:05 +0000 (00:59 +0300)]
tls_wrap: Unlink TLSWrap and SecureContext objects

This makes `TLSWrap` and `SecureContext` objects collectable by the
incremental gc.

`res = null` destroys the cyclic reference in the `reading` property.
`this.ssl = null` removes the remaining reference to the `TLSWrap`.
`this.ssl._secureContext.context = null` removes the reference to
the `SecureContext` object, even though there might be references
to `this.ssl._secureContext` somewhere.

The `reading` property will now throw an error if accessed after the
socket is closed, but that should not happen.

PR-URL: https://github.com/iojs/io.js/pull/1580
Reviewed-By: Fedor Indutny <fedor@indutny.com>
Reviewed-By: Shigeki Ohtsu <ohtsu@iij.ad.jp>
9 years agodoc: update AUTHORS list
Rod Vagg [Sat, 2 May 2015 05:37:17 +0000 (22:37 -0700)]
doc: update AUTHORS list

Update AUTHORS list using tools/update-authors.sh

PR-URL: https://github.com/iojs/io.js/pull/1586
Reviewed-By: Chris Dickinson <christopher.s.dickinson@gmail.com>
9 years agoRevert "url: significantly improve the performance of the url module"
Rod Vagg [Sun, 3 May 2015 22:05:44 +0000 (15:05 -0700)]
Revert "url: significantly improve the performance of the url module"

This reverts commit 3fd7fc429c394059113432312ed19decbafd8fc4.

It was agreed that this change contained too much potential ecosystem
breakage, particularly around the inability to `delete` properties off a
`Url` object. It may be re-introduced for a later release, along with
better work on ecosystem compatibility.

PR-URL: https://github.com/iojs/io.js/pull/1602
Reviewed-By: Mikeal Rogers <mikeal.rogers@gmail.com>
Reviewed-By: Ben Noordhuis <info@bnoordhuis.nl>
Reviewed-By: Forrest L Norvell <forrest@npmjs.com>
Reviewed-By: Chris Dickinson <christopher.s.dickinson@gmail.com>
Reviewed-By: Isaac Z. Schlueter <i@izs.me>
Reviewed-By: Jeremiah Senkpiel <fishrock123@rocketmail.com>
9 years agoRevert "url: delete href cache on all setter code paths"
Rod Vagg [Sun, 3 May 2015 22:05:43 +0000 (15:05 -0700)]
Revert "url: delete href cache on all setter code paths"

This reverts commit dbdd81a91bdce4cc59163e3be752dc3c53491987.

It was agreed that this change contained too much potential ecosystem
breakage, particularly around the inability to `delete` properties off a
`Url` object. It may be re-introduced for a later release, along with
better work on ecosystem compatibility.

PR-URL: #1602
Reviewed-By: Mikeal Rogers <mikeal.rogers@gmail.com>
Reviewed-By: Ben Noordhuis <info@bnoordhuis.nl>
Reviewed-By: Forrest L Norvell <forrest@npmjs.com>
Reviewed-By: Chris Dickinson <christopher.s.dickinson@gmail.com>
Reviewed-By: Isaac Z. Schlueter <i@izs.me>
Reviewed-By: Jeremiah Senkpiel <fishrock123@rocketmail.com>
9 years agoRevert "url: fix treatment of some values as non-empty"
Rod Vagg [Sun, 3 May 2015 22:05:36 +0000 (15:05 -0700)]
Revert "url: fix treatment of some values as non-empty"

This reverts commit 66877216bd833face753d9a5d573ad477895d880.

It was agreed that this change contained too much potential ecosystem
breakage, particularly around the inability to `delete` properties off a
`Url` object. It may be re-introduced for a later release, along with
better work on ecosystem compatibility.

PR-URL: #1602
Reviewed-By: Mikeal Rogers <mikeal.rogers@gmail.com>
Reviewed-By: Ben Noordhuis <info@bnoordhuis.nl>
Reviewed-By: Forrest L Norvell <forrest@npmjs.com>
Reviewed-By: Chris Dickinson <christopher.s.dickinson@gmail.com>
Reviewed-By: Isaac Z. Schlueter <i@izs.me>
Reviewed-By: Jeremiah Senkpiel <fishrock123@rocketmail.com>
9 years agourl: fix treatment of some values as non-empty
Petka Antonov [Sun, 3 May 2015 08:29:54 +0000 (11:29 +0300)]
url: fix treatment of some values as non-empty

In addition to null, undefined and the empty string
are treated as empty (removing the component from the url).

The string '#' is treated same as empty values when
setting .hash.

The string '?' is treated same as empty values when
setting .search.

PR-URL: https://github.com/iojs/io.js/pull/1589
Fixes: https://github.com/iojs/io.js/issues/1588
Reviewed-By: Roman Reiss <me@silverwind.io>
Reviewed-By: Ben Noordhuis <info@bnoordhuis.nl>
9 years agourl: delete href cache on all setter code paths
Petka Antonov [Sat, 2 May 2015 13:51:22 +0000 (16:51 +0300)]
url: delete href cache on all setter code paths

PR-URL: https://github.com/iojs/io.js/pull/1589
Fixes: https://github.com/iojs/io.js/issues/1588
Reviewed-By: Roman Reiss <me@silverwind.io>
Reviewed-By: Ben Noordhuis <info@bnoordhuis.nl>
9 years agonet: ensure Write/ShutdownWrap references handle
Fedor Indutny [Sat, 2 May 2015 15:32:29 +0000 (17:32 +0200)]
net: ensure Write/ShutdownWrap references handle

`StreamBase::AfterWrite` is passing handle as an argument to the
`afterWrite` function in net.js. Thus GC should not collect the handle
and the request separately and assume that they are tied together.

With this commit - request will always outlive the StreamBase instance,
helping us survive the GC pass.

Same applies to the ShutdownWrap instances, they should never be
collected after the StreamBase instance.

Fix: https://github.com/iojs/io.js/pull/1580
PR-URL: https://github.com/iojs/io.js/pull/1590
Reviewed-By: Ben Noordhuis <info@bnoordhuis.nl>
9 years agodoc: add require() lines to child.stdio example
Nick Raienko [Wed, 22 Apr 2015 11:58:04 +0000 (14:58 +0300)]
doc: add require() lines to child.stdio example

PR-URL: https://github.com/iojs/io.js/pull/1504
Reviewed-By: Colin Ihrig <cjihrig@gmail.com>
Reviewed-By: Roman Reiss <me@silverwind.io>
9 years agorepl: fix persistent history and env variable name
Roman Reiss [Sat, 2 May 2015 21:47:17 +0000 (23:47 +0200)]
repl: fix persistent history and env variable name

Issue #1575 did introduce a check for options.terminal but this variable
wasn't able to get truthy, which in turn broke persistent history
completely. This changes the variable to get truthy on true terminals.

Additionally, the docs and the code did differ on which environment
variable was used for history. This changes the code to use
NODE_REPL_HISTORY_FILE.

PR-URL: https://github.com/iojs/io.js/pull/1593
Reviewed-By: Chris Dickinson <christopher.s.dickinson@gmail.com>
9 years agodoc: fix some cross-references
Alexander Gromnitsky [Sat, 2 May 2015 03:58:40 +0000 (06:58 +0300)]
doc: fix some cross-references

PR-URL: https://github.com/iojs/io.js/pull/1584
Reviewed-By: Roman Reiss <me@silverwind.io>
9 years agourl: significantly improve the performance of the url module
Petka Antonov [Mon, 23 Mar 2015 00:59:32 +0000 (02:59 +0200)]
url: significantly improve the performance of the url module

(landed by @rvagg)

PR-URL: https://github.com/iojs/io.js/pull/1561
Reviewed-By: Domenic Denicola <domenic@domenicdenicola.com>
Reviewed-By: Rod Vagg <rod@vagg.org>
9 years agodoc: add TC meeting 2015-04-22 minutes
Rod Vagg [Wed, 29 Apr 2015 09:36:30 +0000 (19:36 +1000)]
doc: add TC meeting 2015-04-22 minutes

Closes: https://github.com/iojs/io.js/pull/1502
PR-URL: https://github.com/iojs/io.js/pull/1556
Reviewed-By: Jeremiah Senkpiel <fishrock123@rocketmail.com>
9 years agonode: improve nextTick performance
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>
9 years agorepl: do not save history for non-terminal repl
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>
9 years agoMerge branch 'v1.x'
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

9 years agowin,node-gyp: optionally allow node.exe/iojs.exe to be renamed
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>
9 years agodeps: make node-gyp work with io.js
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>
9 years agodeps: upgrade npm to 2.9.0
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>
9 years agodoc: improve http.request and https.request opts
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>
9 years agotls: use `SSL_set_cert_cb` for async SNI/OCSP
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>