platform/upstream/nodejs.git
9 years agourl: throw for invalid values to url.format
Christian Tellnes [Tue, 3 Mar 2015 03:41:07 +0000 (04:41 +0100)]
url: throw for invalid values to url.format

`'use strict'` changes the behavior for `Function.prototype.call` when
the context is `undefined`. In earlier versions of node the value
`undefined` would make `url.format` look for fields in the global scope.

The docs states that `url.format` takes a parsed URL object and returns
a formatted URL string. So with this change it will now throw for other
values.

The exception is if the input is a string. Then it will call `url.parse`
on the string and then format it. The reason for that is that you can
call `url.format` on strings to clean up potentially wonky urls.

Fixes: https://github.com/iojs/io.js/issues/1033
PR-URL: https://github.com/iojs/io.js/pull/1036
Reviewed-By: Trevor Norris <trev.norris@gmail.com>
Reviewed-By: Brian White <mscdex@mscdex.net>
Reviewed-By: Julian Duque <julianduquej@gmail.com>
9 years agodoc: add TC meeting 2015-02-18 minutes
Rod Vagg [Wed, 4 Mar 2015 06:29:53 +0000 (22:29 -0800)]
doc: add TC meeting 2015-02-18 minutes

PR-URL: https://github.com/iojs/io.js/pull/1051
Reviewed-By: Colin Ihrig <cjihrig@gmail.com>
9 years agotimer: Improve performance of callbacks
Ruben Verborgh [Sat, 10 Jan 2015 15:49:21 +0000 (16:49 +0100)]
timer: Improve performance of callbacks

setImmediate, setTimeout, and setInterval were called in an inefficient
way, especially in the presence of arguments.  This optimization
improves their performance, with special cases for up to 4 arguments.
Performance of setImmediate increases with 35%, setInterval with 60%,
setTimeout with 70%.

PR-URL: https://github.com/iojs/io.js/pull/406
Reviewed-by: Trevor Norris <trev.norris@gmail.com>
Reviewed-by: Christian Tellnes <christian@tellnes.com>
9 years agodoc: remove cjihrig from TC
cjihrig [Wed, 4 Mar 2015 14:13:40 +0000 (09:13 -0500)]
doc: remove cjihrig from TC

PR-URL: https://github.com/iojs/io.js/pull/1056
Reviewed-By: Ben Noordhuis <info@bnoordhuis.nl>
9 years agosrc: fix compiler warning in smalloc.cc
Ben Noordhuis [Wed, 4 Mar 2015 11:07:36 +0000 (12:07 +0100)]
src: fix compiler warning in smalloc.cc

Fix the following compiler warning by static_casting the enum values
to an uint32_t:

    ../src/smalloc.cc: In function 'void
    node::smalloc::Initialize(v8::Handle<v8::Object>,
                              v8::Handle<v8::Value>,
                              v8::Handle<v8::Context>)':
    ../src/smalloc.cc:601:203: warning: enumeral and non-enumeral type
    in conditional expression
        EXTERNAL_ARRAY_TYPES(V)

PR-URL: https://github.com/iojs/io.js/pull/1055
Reviewed-By: Vladimir Kurchatkin <vladimir.kurchatkin@gmail.com>
9 years agosmalloc: export constants from C++
Vladimir Kurchatkin [Sun, 22 Feb 2015 20:01:08 +0000 (23:01 +0300)]
smalloc: export constants from C++

PR-URL: https://github.com/iojs/io.js/pull/920
Reviewed-By: Chris Dickinson <christopher.s.dickinson@gmail.com>
Reviewed-By: Trevor Norris <trev.norris@gmail.com>
9 years agosmalloc: validate arguments in js
Vladimir Kurchatkin [Sun, 22 Feb 2015 18:07:57 +0000 (21:07 +0300)]
smalloc: validate arguments in js

PR-URL: https://github.com/iojs/io.js/pull/920
Reviewed-By: Chris Dickinson <christopher.s.dickinson@gmail.com>
Reviewed-By: Trevor Norris <trev.norris@gmail.com>
9 years agohttp: optimize outgoing requests
Brendan Ashworth [Sun, 25 Jan 2015 23:26:40 +0000 (15:26 -0800)]
http: optimize outgoing requests

This commit does some small optimization changes on
`lib/_http_outgoing.js`. These include switching from `while` loops to
`for` loops, moving away from `util` to `typeof` checks, and removing
dead code. It also includes variable caches to avoid lookups and
generic style changes. All in all, much faster execution.

It gets an across the board increase in req/sec on the benchmarks,
from my experience about a 10% increase.

PR-URL: https://github.com/iojs/io.js/pull/605
Reviewed-By: Ben Noordhuis <info@bnoordhuis.nl>
Reviewed-By: Nicu Micleușanu <micnic90@gmail.com>
Reviewed-By: Christian Vaagland Tellnes <christian@tellnes.com>
Reviewed-By: Brian White <mscdex@mscdex.net>
9 years agotls: accept empty `net.Socket`s
Fedor Indutny [Tue, 3 Mar 2015 20:17:43 +0000 (15:17 -0500)]
tls: accept empty `net.Socket`s

Accept `new net.Socket()` as a `socket` option to `tls.connect()`
without triggering an assertion error in C++.

This is done by wrapping it into a JSStream to ensure that there will be
a handle at the time of wrapping the socket into TLSSocket.

Fix: https://github.com/iojs/io.js/issues/987
PR-URL: https://github.com/iojs/io.js/pull/1046
Reviewed-By: Ben Noordhuis <info@bnoordhuis.nl>
Reviewed-By: Rod Vagg <rod@vagg.org>
9 years agotest: fix racey-ness in tls-inception
Fedor Indutny [Tue, 3 Mar 2015 09:10:28 +0000 (04:10 -0500)]
test: fix racey-ness in tls-inception

Fix test failure on FreeBSD and SmartOS, which happens due to a bad
timing:

    events.js:141
          throw er; // Unhandled 'error' event
                ^
    Error: read ECONNRESET
        at exports._errnoException (util.js:734:11)
        at TLSWrap.onread (net.js:538:26)

The outer `net.conncet()` socket stays alive after the inner socket is
gone. This happens because `.pipe()`'s implementation does not `destroy`
the source side when the destination has emitted `close`.

Fix: https://github.com/iojs/io.js/issues/1012
PR-URL: https://github.com/iojs/io.js/pull/1040
Reviewed-By: Chris Dickinson <christopher.s.dickinson@gmail.com>
9 years agonode: improve performance of nextTick
Trevor Norris [Fri, 27 Feb 2015 05:41:54 +0000 (22:41 -0700)]
node: improve performance of nextTick

Couple micro optimizations to improve performance of process.nextTick().
Removes ~60ns of execution time.

Also added small threshold to test that allows timer to fire early on
the order if microseconds.

PR-URL: https://github.com/iojs/io.js/pull/985
Reviewed-By: Vladimir Kurchatkin <vladimir.kurchatkin@gmail.com>
9 years agodoc: fix child_process heading depth
Sam Roberts [Tue, 3 Mar 2015 05:10:19 +0000 (21:10 -0800)]
doc: fix child_process heading depth

Addition of the Sync/Async headers didn't indent all the sub-headers.

Reviewed-By: Colin Ihrig <cjihrig@gmail.com>
PR-URL: https://github.com/iojs/io.js/pull/1038

9 years agotest: fix test-fs-access when uid is 0
Johan Bergström [Tue, 3 Mar 2015 05:29:03 +0000 (16:29 +1100)]
test: fix test-fs-access when uid is 0

Superusers can open files with W_OK permission even though their
mode is set to 0444. This commit makes the test attempt to change
its uid to nobody on non-Windows platforms. Patch originally from
https://github.com/joyent/node/commit/28d0cbbd.

Fixes: https://github.com/iojs/io.js/issues/1031
PR-URL: https://github.com/iojs/io.js/pull/1037
Reviewed-By: Colin Ihrig <cjihrig@gmail.com>
9 years agotest: make destroyed-socket-write2.js more robust
Michael Dawson [Mon, 23 Feb 2015 19:13:20 +0000 (14:13 -0500)]
test: make destroyed-socket-write2.js more robust

test/simple/test-http-destroyed-socket-write2.js validates
that you get an appropriate error when trying to write to
a request when the response on the other side has been destroyed.

The test uses http.request to get a request and then keeps writing
to it until either it hits 128 writes or gets the expected error.
Since the writes are asynchronous we see that the writes just end
up adding events to the event loop, which then later get processed
once the connection supporting the request is fully ready.

The test is timing dependent and if takes too long for the connection
to be made the limit of 128 writes is exceeded and the test fails.
The fact that the test allows a number of writes is probably to allow
some delay for the connection to be ready for writing.

On AIX, in the default configuration using the loopback interface
is slower and the test fails because the delay is such that many
more writes can be queued up before the connection takes place.
If we use the host ip instead of defaulting to the loopback then
the test passes.

The test needs to be made more robust to delays. Since each write
simply enqueues an additional write to the event queue there is
probably no point in doing the second write until the first has
completed. This patch schedules the next write when the first one
completes and allows the test to pass even if it takes longer for
the connection to be ready for writing

PR-URL: https://github.com/joyent/node/pull/9270
Reviewed-By: Colin Ihrig <cjihrig@gmail.com>
Reviewed-By: Timothy J Fontaine <tjfontaine@gmail.com>
9 years agodoc: add explanations for querystring
Robert Kowalski [Sat, 21 Feb 2015 00:03:14 +0000 (01:03 +0100)]
doc: add explanations for querystring

 - add an article: `decode a non-utf8 string`
 - explain default and fallback behaviour of `querystring.unescape`

PR-URL: https://github.com/joyent/node/pull/9259
Reviewed-by: Julien Gilli <julien.gilli@joyent.com>
9 years agodoc: fix default value of opts.decodeURIComponent
h7lin [Fri, 13 Feb 2015 03:59:11 +0000 (11:59 +0800)]
doc: fix default value of opts.decodeURIComponent

In the documentation for querystring.parse, the documentation mentions
that the default value for options.decodeURIComponent is the
decodeURIComponent function, but it's actually the querystring.unescape
function.

PR-URL: https://github.com/joyent/node/pull/9259
Reviewed-by: Julien Gilli <julien.gilli@joyent.com>
9 years agotests: fix race in test-http-curl-chunk-problem
Julien Gilli [Fri, 27 Feb 2015 23:48:34 +0000 (15:48 -0800)]
tests: fix race in test-http-curl-chunk-problem

This test setups two event listeners: one on a child process' exit event
, another for the same child process' stdandard output's 'data' event.
The data even listener writes to a stream, and the exit event listener
ends it.

Because the exit event can be emitted before the data event, there is a
chance that something will be written to the stream after it's ended,
and that an error is thrown.

This change makes the test end the stream in the listener for the child
process' standard output's end event, which is guaranteed to be emitted
after the last data event, thus avoiding the race.

PR: https://github.com/joyent/node/pull/9301
Reviewed-by: Bert Belder <bertbelder@gmail.com>
Reviewed-by: Michael Dawson <michael_dawson@ca.ibm.com>
Reviewed-by: Colin Ihrig <cjihrig@gmail.com>
9 years agodoc: add missing newline in CHANGELOG
Rod Vagg [Tue, 3 Mar 2015 01:49:24 +0000 (17:49 -0800)]
doc: add missing newline in CHANGELOG

Pushed without review

9 years agoWorking on v1.4.4
Rod Vagg [Tue, 3 Mar 2015 00:48:12 +0000 (16:48 -0800)]
Working on v1.4.4

9 years ago2015-03-02 io.js v1.4.3 Release v1.4.3
Rod Vagg [Tue, 3 Mar 2015 00:45:43 +0000 (16:45 -0800)]
2015-03-02 io.js v1.4.3 Release

Notable changes:

* stream: Fixed problems for platforms without `writev()` support,
  particularly Windows. Changes introduced in 1.4.1, via
  https://github.com/iojs/io.js/pull/926, broke some
  functionality for these platforms, this has now been addressed.
  https://github.com/iojs/io.js/pull/1008 (Fedor Indutny)
* arm: We have the very beginnings of ARMv8 / ARM64 / AARCH64
  support. An upgrade to OpenSSL 1.0.2 is one requirement for full
  support. https://github.com/iojs/io.js/pull/1028
  (Ben Noordhuis)
* Add new collaborator: Julian Duque @julianduque

9 years agobuild: add basic arm64 support
Ben Noordhuis [Mon, 2 Mar 2015 20:35:29 +0000 (21:35 +0100)]
build: add basic arm64 support

This commit adds basic arm64 support to the build.  Building the bundled
openssl is disabled pending an upgrade to openssl 1.2, the currently
bundled version has some hand-rolled assembly that is 32 bits only.

PR-URL: https://github.com/iojs/io.js/pull/1028
Reviewed-By: Johan Bergström <bugs@bergstroem.nu>
Reviewed-By: Rod Vagg <rod@vagg.org>
9 years agosrc: fix --without-ssl build
Ben Noordhuis [Mon, 2 Mar 2015 22:18:44 +0000 (23:18 +0100)]
src: fix --without-ssl build

Don't include tls_wrap.h in stream_base.cc.  It's not used and it breaks
the build when --without-ssl is passed to configure.

Fixes the following build error:

    In file included from ../src/tls_wrap.h:5:0,
                     from ../src/stream_base.cc:10:
    ../src/node_crypto.h:20:25: fatal error: openssl/ssl.h:
    No such file or directory
     #include <openssl/ssl.h>

PR-URL: https://github.com/iojs/io.js/pull/1027
Reviewed-By: Johan Bergström <bugs@bergstroem.nu>
9 years agodoc: update AUTHORS list
Rod Vagg [Sun, 1 Mar 2015 19:37:55 +0000 (06:37 +1100)]
doc: update AUTHORS list

Update AUTHORS file using tools/update-authors.sh

PR-URL: https://github.com/iojs/io.js/pull/1018
Reviewed-By: Chris Dickinson <christopher.s.dickinson@gmail.com>
9 years agodoc: add julianduque as collaborator
Julian Duque [Sun, 1 Mar 2015 22:57:12 +0000 (17:57 -0500)]
doc: add julianduque as collaborator

PR-URL: https://github.com/iojs/io.js/pull/1021
Reviewed-By: Evan Lucas <evanlucas@me.com>
Reviewed-By: Christian Tellnes <christian@tellnes.com>
Reviewed-By: Colin Ihrig <cjihrig@gmail.com>
Reviewed-By: Rod Vagg <r@va.gg>
9 years agodoc: fix typos and sources in WORKING_GROUPS.md
&! (bitandbang) [Mon, 2 Mar 2015 00:31:05 +0000 (19:31 -0500)]
doc: fix typos and sources in WORKING_GROUPS.md

`therefor` is a typo of `therefore`, and was fixed. There were also two
places where the website WG was directly linked, where they should have
put the WG's name/repo; that was fixed as well.

PR-URL: https://github.com/iojs/io.js/pull/1022
Reviewed-By: Mikeal Rogers <mikeal.rogers@gmail.com>
Reviewed-By: Christian Tellnes <christian@tellnes.no>
9 years agodoc: Clean up net.Socket
Ryan Scheel [Wed, 25 Feb 2015 11:24:45 +0000 (03:24 -0800)]
doc: Clean up net.Socket

net.Socket::connect(options[, connectListener]) was missing, with the
relevant details found on the net.connect function. I moved the
appropriate documentation over and then rewrote the documentation for
the function to say that it just creates a socket and calls the connect
method on it. I also changed the other net.Socket::connect variants to
say they are like the options version but called with a specific
options object.

net.connect and other functions were called methods even though they
don't use the `this` binding, so I changed method to function where
appropriate.

Finally, I added a missing period to the end of the module summary.
It's not really related to the rest of the changes, but benjamingr
noticed it.

PR-URL: https://github.com/iojs/io.js/pull/951
Reviewed-By: Sam Roberts <vieuxtech@gmail.com>
Reviewed-By: Christian Tellnes <christian@tellnes.no>
9 years agodoc: suggest alternatives to deprecated APs
Benjamin Gruenbaum [Sat, 28 Feb 2015 20:30:03 +0000 (22:30 +0200)]
doc: suggest alternatives to deprecated APs

At the moment users who want to use `fs.exists` get a warning that the
method is deprecated but do not get offered an alternative in the page.
This PR suggests `fs.stat` and `fs.access` as alternatives while
keeping the warning about the use case in place.

Fixes: https://github.com/iojs/io.js/issues/1002
PR-URL: https://github.com/iojs/io.js/pull/1007
Reviewed-By: Brian White <mscdex@mscdex.net>
Reviewed-By: Christian Tellnes <christian@tellnes.no>
9 years agostream_base: `.writev()` has limited support
Fedor Indutny [Sat, 28 Feb 2015 21:46:43 +0000 (00:46 +0300)]
stream_base: `.writev()` has limited support

Only TCP and JSStream do support `.writev()` on all platforms at the
moment. Ensure that it won't be enabled everywhere.

Fix: https://github.com/iojs/io.js/issues/995
PR-URL: https://github.com/iojs/io.js/pull/1008
Reviewed-by: Bert Belder <bertbelder@gmail.com>
Reviewed-By: Rod Vagg <rod@vagg.org>
9 years agoWorking on v1.4.3
Rod Vagg [Sat, 28 Feb 2015 21:16:32 +0000 (15:16 -0600)]
Working on v1.4.3

9 years ago2015-02-28 io.js v1.4.2 Release v1.4.2
Rod Vagg [Sat, 28 Feb 2015 21:12:58 +0000 (15:12 -0600)]
2015-02-28 io.js v1.4.2 Release

Notable changes:

* tls: A typo introduced in the TLSWrap changes in
  https://github.com/iojs/io.js/pull/840 only encountered as a bug on
  Windows was not caught by the io.js CI system due to problems with the
  Windows build script and the Windows CI slave configuration, see
  Fixed in https://github.com/iojs/io.js/pull/994 &
  https://github.com/iojs/io.js/pull/1004 (Fedor Indutny)
* npm: Upgrade npm to 2.6.1. See
  https://github.com/npm/npm/blob/master/CHANGELOG.md#v260-2015-02-12
  for details.
* Add new collaborators:
  - Robert Kowalski (@robertkowalski)
  - Christian Vaagland Tellnes (@tellnes)
  - Brian White (@mscdex)

9 years agotls: proxy `handle.reading` back to parent handle
Fedor Indutny [Sat, 28 Feb 2015 18:14:07 +0000 (21:14 +0300)]
tls: proxy `handle.reading` back to parent handle

Fix: https://github.com/iojs/io.js/issues/995
PR-URL: https://github.com/iojs/io.js/pull/1004
Reviewed-By: Rod Vagg <rod@vagg.org>
9 years agoinstall: new performance counters provider guid
Russell Dempsey [Sat, 28 Feb 2015 14:54:13 +0000 (08:54 -0600)]
install: new performance counters provider guid

The io.js performance counters manifest conflicts with the one from
node, causing installer failures. Change the GUID in the io.js
performance counters manifest file to resolve the conflicts.

Fixes: https://github.com/iojs/io.js/issues/524
PR: https://github.com/iojs/io.js/pull/1001
Reviewed-by: Bert Belder <bertbelder@gmail.com>
9 years agotls: fix typo `handle._reading` => `handle.reading`
Fedor Indutny [Fri, 27 Feb 2015 23:07:25 +0000 (02:07 +0300)]
tls: fix typo `handle._reading` => `handle.reading`

The problem does not manifest itself on unixes, because
`uv_read_start()` always return 0 there. However on Windows on a second
call `uv_read_start()` returns `UV__EALREADY` destroying all sockets on
a read attempt.

Set `.reading` property that is already handled by `net.js` code.

Fix: https://github.com/iojs/io.js/issues/988
PR-URL: https://github.com/iojs/io.js/pull/994
Reviewed-By: Chris Dickinson <christopher.s.dickinson@gmail.com>
9 years agohttp: don't confuse automatic headers for others
Christian Tellnes [Fri, 13 Feb 2015 02:20:06 +0000 (03:20 +0100)]
http: don't confuse automatic headers for others

If you set a custom http header which includes eg. the string `Date`,
then http will not automatically send the `Date` header.

This is also true for other automatic http headers.

PR-URL: https://github.com/iojs/io.js/pull/828
Reviewed-By: Brendan Ashworth <brendan.ashworth@me.com>
Reviewed-By: Jeremiah Senkpiel <fishrock123@rocketmail.com>
9 years agobuild: improve vcbuild.bat
Bert Belder [Sat, 28 Feb 2015 01:42:49 +0000 (02:42 +0100)]
build: improve vcbuild.bat

* Support running multiple test suites (e.g. vcbuild test-simple test-gc).
* Removed a nonexisting test suite (test-uv).
* Removed superfluous extra layer of argument parsing.
* Fix the node-weak build.

R=@rvagg

PR-URL: https://github.com/iojs/io.js/pull/998
Reviewed-By: Rod Vagg <rod@vagg.org>
9 years agobuild: reduce tarball size by 8-10%
Johan Bergström [Thu, 26 Feb 2015 00:08:16 +0000 (11:08 +1100)]
build: reduce tarball size by 8-10%

Slim the tarballs further by removing examples, documentation and test for
third party libraries. Also switch to checkout-index versus archive so we avoid
using tar.

PR-URL: https://github.com/iojs/io.js/pull/961
Reviewed-By: Trevor Norris <trev.norris@gmail.com>
Reviewed-By: Ben Noordhuis <info@bnoordhuis.nl>
Reviewed-By: Rod Vagg <rod@vagg.org>
9 years agodoc: minor formatting fixes.
Tim Oxley [Sat, 28 Feb 2015 00:00:13 +0000 (18:00 -0600)]
doc: minor formatting fixes.

PR-URL: https://github.com/iojs/io.js/pull/996
Reviewed-By: Rod Vagg <rod@vagg.org>
9 years agodoc: update stability index
Chris Dickinson [Wed, 25 Feb 2015 00:15:26 +0000 (16:15 -0800)]
doc: update stability index

This simplifies the stability index to 4 levels:

0 - deprecated
1 - experimental / feature-flagged
2 - stable
3 - locked

Domains has been downgraded to deprecated, assert has been
downgraded to stable. Timers and Module remain locked. All
other APIs are now stable.

PR-URL: https://github.com/iojs/io.js/pull/943
Fixes: https://github.com/iojs/io.js/issues/930
Reviewed-By: Colin Ihrig <cjihrig@gmail.com>
Reviewed-By: Jeremiah Senkpiel <fishrock123@rocketmail.com>
Reviewed-By: Vladimir Kurchatkin <vladimir.kurchatkin@gmail.com>
9 years agodoc: add robertkowalski as collaborator
Robert Kowalski [Thu, 26 Feb 2015 22:43:29 +0000 (23:43 +0100)]
doc: add robertkowalski as collaborator

PR-URL: https://github.com/iojs/io.js/pull/977
Reviewed-By: Evan Lucas <evanlucas@me.com>
Reviewed-By: Christian Tellnes <christian@tellnes.com>
Reviewed-By: Rod Vagg <r@va.gg>
9 years agodeps: make node-gyp work with io.js
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>
9 years agodeps: upgrade npm to 2.6.1
Forrest L Norvell [Fri, 27 Feb 2015 13:39:59 +0000 (05:39 -0800)]
deps: upgrade npm to 2.6.1

PR-URL: https://github.com/iojs/io.js/pull/990
Reviewed-By: Colin Ihrig <cjihrig@gmail.com>
9 years agodoc: update os.markdown
Benjamin Gruenbaum [Thu, 26 Feb 2015 21:57:45 +0000 (23:57 +0200)]
doc: update os.markdown

Some doc update based on improvement ideas I remember from when I used this module in node:

 - Mention windows returns 0 for `nice` values (which is obvious, but io makes no attempt to calculate something similar or return undefined, 0 is returned)
 - Mention platform and arch are aliases for `process` properties.
 - Document possible return values where appropriate, add examples in others.
 - Rename title in order to match other titles in the navigation.
 - Fix line that was over 80 characters long.

PR-URL: https://github.com/iojs/io.js/pull/976
Reviewed-By: Christian Tellnes <christian@tellnes.no>
Reviewed-By: Brian White <mscdex@mscdex.net>
Reviewed-By: Vladimir Kurchatkin <vladimir.kurchatkin@gmail.com>
9 years agosrc: add check for already defined macro NOMINMAX
Pavel Medvedev [Fri, 27 Feb 2015 07:00:43 +0000 (10:00 +0300)]
src: add check for already defined macro NOMINMAX

In order to avoid Visual C++ warning C4005 about macro redefinition
when node.h is included in another project.

PR-URL: https://github.com/iojs/io.js/pull/986
Reviewed-By: Ben Noordhuis <info@bnoordhuis.nl>
9 years agodoc: add roadmap, i18n, tracing, evangelism WGs
Mikeal Rogers [Sat, 21 Feb 2015 00:07:35 +0000 (16:07 -0800)]
doc: add roadmap, i18n, tracing, evangelism WGs

PR-URL: https://github.com/iojs/io.js/pull/911
Reviewed-By: Chris Dickinson <christopher.s.dickinson@gmail.com>
Reviewed-by: Bert Belder <bertbelder@gmail.com>
9 years agodoc: document roadmap, workgroups
Mikeal Rogers [Thu, 26 Feb 2015 22:48:07 +0000 (23:48 +0100)]
doc: document roadmap, workgroups

PR: https://github.com/iojs/io.js/pull/886
Reviewed-By: Chris Dickinson <christopher.s.dickinson@gmail.com>
Reviewed-by: Bert Belder <bertbelder@gmail.com>
9 years agodoc: add tellnes as collaborator
Christian Tellnes [Thu, 26 Feb 2015 20:04:40 +0000 (21:04 +0100)]
doc: add tellnes as collaborator

PR-URL: https://github.com/iojs/io.js/pull/973
Reviewed-By: Chris Dickinson <christopher.s.dickinson@gmail.com>
Reviewed-By: Evan Lucas <evanlucas@me.com>
Reviewed-By: Brian White <mscdex@mscdex.net>
9 years agodoc: add mscdex as collaborator
Brian White [Thu, 26 Feb 2015 20:04:27 +0000 (15:04 -0500)]
doc: add mscdex as collaborator

PR-URL: https://github.com/iojs/io.js/pull/972
Reviewed-By: Evan Lucas <evanlucas@me.com>
Reviewed-By: Jeremiah Senkpiel <fishrock123@rocketmail.com>
9 years agoWorking on v1.4.2
Rod Vagg [Thu, 26 Feb 2015 19:40:25 +0000 (13:40 -0600)]
Working on v1.4.2

9 years ago2015-02-26 io.js v1.4.1 Release v1.4.1
Rod Vagg [Wed, 25 Feb 2015 19:18:53 +0000 (13:18 -0600)]
2015-02-26 io.js v1.4.1 Release

Notable changes:

* process / promises: An'unhandledRejection' event is now emitted on
  process whenever a Promise is rejected and no error handler is
  attached to the Promise within a turn of the event loop. A
  'rejectionHandled' event is now emitted whenever a Promise was
  rejected and an error handler was attached to it later than after an
  event loop turn. See the process documentation for more detail.
  https://github.com/iojs/io.js/pull/758 (Petka Antonov)
* streams: you can now use regular streams as an underlying socket for
  tls.connect() https://github.com/iojs/io.js/pull/758 (Fedor Indutny)
* http: A new 'abort' event emitted when a http.ClientRequest is
  aborted by the client. https://github.com/iojs/io.js/pull/945
  (Evan Lucas)
* V8: Upgrade V8 to 4.1.0.21. Includes an embargoed fix, details
  should be available at
  https://code.google.com/p/chromium/issues/detail?id=430201
  when embargo is lifted. A breaking ABI change has been held back
  from this upgrade, possibly to be included when io.js merges V8 4.2.
  See https://github.com/iojs/io.js/pull/952 for discussion.
* npm: Upgrade npm to 2.6.0. Includes features to support the new
  registry and to prepare for npm@3. See npm CHANGELOG.md
  https://github.com/npm/npm/blob/master/CHANGELOG.md#v260-2015-02-12
  for details.
* libuv: Upgrade to 1.4.2. See libuv ChangeLog
  https://github.com/libuv/libuv/blob/v1.x/ChangeLog for details of
  fixes.

9 years agodoc: fix process.stdout reference to console.log
Brendan Ashworth [Thu, 26 Feb 2015 05:31:42 +0000 (21:31 -0800)]
doc: fix process.stdout reference to console.log

This commit changes the word introduction to the code block to be
explicitly correct, and changes the `d` variable to `msg` for clarity.

PR-URL: https://github.com/iojs/io.js/pull/964
Reviewed-By: Jeremiah Senkpiel <fishrock123@rocketmail.com>
Reviewed-By: Nicu Micleușanu <micnic90@gmail.com>
Reviewed-By: Vladimir Kurchatkin <vladimir.kurchatkin@gmail.com>
9 years agodoc: link & formatting of SHAs in commit list
Tim Oxley [Thu, 26 Feb 2015 12:15:40 +0000 (06:15 -0600)]
doc: link & formatting of SHAs in commit list

This adds more consistency, plus links to commits are particularly useful.

PR-URL: https://github.com/iojs/io.js/pull/967
Reviewed-By: Rod Vagg <rod@vagg.org>
9 years agodoc: fix 'dhparam' description of tls.createServer
silverwind [Thu, 26 Feb 2015 14:36:41 +0000 (15:36 +0100)]
doc: fix 'dhparam' description of tls.createServer

fixes #958

Fixes: https://github.com/iojs/io.js/issues/958
PR-URL: https://github.com/iojs/io.js/pull/968
Reviewed-By: Shigeki Ohtsu <ohtsu@iij.ad.jp>
9 years agodeps: update libuv to 1.4.2
Ben Noordhuis [Thu, 26 Feb 2015 10:27:18 +0000 (11:27 +0100)]
deps: update libuv to 1.4.2

PR-URL: https://github.com/iojs/io.js/pull/966
Reviewed-By: Fedor Indutny <fedor@indutny.com>
9 years agosrc: fix intermittent SIGSEGV in resolveTxt
Evan Lucas [Wed, 25 Feb 2015 22:59:29 +0000 (16:59 -0600)]
src: fix intermittent SIGSEGV in resolveTxt

Fixes a SIGSEGV by making sure `txt_chunk` is not empty before setting
it on `txt_records`

PR-URL: https://github.com/iojs/io.js/pull/960
Reviewed-By: Rod Vagg <rod@vagg.org>
9 years agosrc: fix domains + --abort-on-uncaught-exception
Chris Dickinson [Sun, 22 Feb 2015 22:54:25 +0000 (14:54 -0800)]
src: fix domains + --abort-on-uncaught-exception

If run with --abort-on-uncaught-exception, V8 will abort the process
whenever it does not see a JS-installed CatchClause in the stack. C++
TryCatch clauses are ignored. Domains work by setting a FatalException
handler which is ignored when running in abort mode.

This patch modifies MakeCallback to call its target function through a
JS function that installs a CatchClause and manually calls _fatalException
on error, if the process is both using domains and is in abort mode.

Semver: patch
PR-URL: https://github.com/iojs/io.js/pull/922
Fixes: https://github.com/iojs/io.js/issues/836
Reviewed-By: Ben Noordhuis <info@bnoordhuis.nl>
9 years agohttp: emit abort event from ClientRequest
Evan Lucas [Wed, 25 Feb 2015 00:11:11 +0000 (18:11 -0600)]
http: emit abort event from ClientRequest

ClientRequest will now emit an abort event the first time abort()
is called.

Semver: Minor
Fixes: https://github.com/joyent/node/issues/9278
PR-URL: https://github.com/iojs/io.js/pull/945
Reviewed-By: Colin Ihrig <cjihrig@gmail.com>
Reviewed-By: Chris Dickinson <christopher.s.dickinson@gmail.com>
9 years agostream_base: remove static JSMethod declarations
Fedor Indutny [Wed, 25 Feb 2015 17:43:14 +0000 (20:43 +0300)]
stream_base: remove static JSMethod declarations

Move JS methods to the stream_base-inl.h and thus define them on each
use of `StreamBase::AddMethods`. Inline `AddMethods` itself, so that
there won't be any need in a static declaration in stream_base.cc.

NOTE: This basically allows using this API in user-land, though, some
polishing is required before releasing it.

PR-URL: https://github.com/iojs/io.js/pull/957
Reviewed-By: Chris Dickinson <christopher.s.dickinson@gmail.com>
9 years agodeps: revert v8 abi change
Ben Noordhuis [Wed, 25 Feb 2015 11:18:50 +0000 (12:18 +0100)]
deps: revert v8 abi change

Undo the ABI (but not API) change to NamedPropertyHandlerConfiguration.
This avoids a NODE_MODULE_VERSION bump and forcing everyone to recompile
their add-ons, at the cost of increasing the delta with upstream V8.

This commit effectively backs out 4.1.0.16, the release that introduced
the ABI change (and nothing else.)

PR-URL: https://github.com/iojs/io.js/pull/952
Reviewed-By: Fedor Indutny <fedor@indutny.com>
Reviewed-By: Rod Vagg <rod@vagg.org>
9 years agodeps: fix postmortem support in v8
Fedor Indutny [Tue, 3 Feb 2015 13:59:19 +0000 (16:59 +0300)]
deps: fix postmortem support in v8

Fix: iojs/io.js#461
PR-URL: https://github.com/iojs/io.js/pull/706
Reviewed-By: Ben Noordhuis <info@bnoordhuis.nl>
9 years agodeps: upgrade v8 to 4.1.0.21
Ben Noordhuis [Wed, 25 Feb 2015 10:41:56 +0000 (11:41 +0100)]
deps: upgrade v8 to 4.1.0.21

PR-URL: https://github.com/iojs/io.js/pull/952
Reviewed-By: Fedor Indutny <fedor@indutny.com>
Reviewed-By: Rod Vagg <rod@vagg.org>
9 years agodeps: update libuv to 1.4.1
Ben Noordhuis [Tue, 24 Feb 2015 20:03:00 +0000 (21:03 +0100)]
deps: update libuv to 1.4.1

PR-URL: https://github.com/iojs/io.js/pull/940
Reviewed-By: Fedor Indutny <fedor@indutny.com>
Reviewed-By: Rod Vagg <rod@vagg.org>
9 years agodoc: document 'unhandledRejection' and 'rejectionHandled'
Benjamin Gruenbaum [Wed, 25 Feb 2015 00:44:10 +0000 (02:44 +0200)]
doc: document 'unhandledRejection' and 'rejectionHandled'

Documents the new unhandled rejection detection API.

Documents the new unhandledRejection/rejectionHandled events in the process
docuemntation. As agreed on in this issue:

https://github.com/iojs/io.js/issues/256#event-241385784

PR-URL: https://github.com/iojs/io.js/pull/946
Reviewed-By: Domenic Denicola <domenic@domenicdenicola.com>
Reviewed-By: Sam Roberts <vieuxtech@gmail.com>
Reviewed-By: Jeremiah Senkpiel <fishrock123@rocketmail.com>
9 years agodoc: update documentation.markdown for io.js.
Ryan Scheel [Wed, 25 Feb 2015 11:00:49 +0000 (03:00 -0800)]
doc: update documentation.markdown for io.js.

PR-URL: https://github.com/iojs/io.js/pull/950
Reviewed-By: Jeremiah Senkpiel <fishrock123@rocketmail.com>
9 years agotest: fix infinite spawn cycle in stdio test
Ben Noordhuis [Wed, 25 Feb 2015 09:40:33 +0000 (10:40 +0100)]
test: fix infinite spawn cycle in stdio test

Fix parallel/test-stdio-closed introduced in commit b5f25a9 ("src:
ensure that file descriptors 0-2 are valid") to not keep spawning
child processes ad infinitum.

The test spawns itself as a child process but a missing return statement
made the child process spawn itself again, and again, and again.

It went unnoticed for some time because the child process exits almost
immediately afterwards, i.e. it didn't fill up the process table.  The
observable effect was an iojs process that was quietly consuming CPU
cyles in the background with a PID that was constantly changing.

Refs: https://github.com/iojs/io.js/pull/938
PR-URL: https://github.com/iojs/io.js/pull/948
Reviewed-By: Fedor Indutny <fedor@indutny.com>
9 years agodoc: link cluster worker.send() to child.send()
Sam Roberts [Fri, 13 Feb 2015 21:41:00 +0000 (13:41 -0800)]
doc: link cluster worker.send() to child.send()

PR-URL: https://github.com/iojs/io.js/pull/839
Reviewed-By: Brendan Ashworth <brendan.ashworth@me.com>
9 years agonode: implement unhandled rejection tracking
Petka Antonov [Sun, 22 Feb 2015 12:44:12 +0000 (14:44 +0200)]
node: implement unhandled rejection tracking

Implement unhandled rejection tracking for promises as
specified in https://gist.github.com/benjamingr/0237932cee84712951a2

Fixes #256
PR-URL: https://github.com/iojs/io.js/pull/758
Reviewed-By: Trevor Norris <trev.norris@gmail.com>
Reviewed-By: Ben Noordhuis <info@bnoordhuis.nl>
Reviewed-By: Domenic Denicola <domenic@domenicdenicola.com>
9 years agobenchmark: pass execArgv to the benchmarking process
Petka Antonov [Mon, 23 Feb 2015 20:22:27 +0000 (22:22 +0200)]
benchmark: pass execArgv to the benchmarking process

Benchmarker should pass exec flags (e.g. --no-crankshaft,
--turbofan-filter, --trace-opt etc) to the benchmarking process

Reviewed-By: Sam Roberts <vieuxtech@gmail.com>
Reviewed-By: Chris Dickinson <christopher.s.dickinson@gmail.com>
PR-URL: https://github.com/iojs/io.js/pull/928

9 years agobuild: Fix incorrect reference
Johan Bergström [Mon, 23 Feb 2015 00:30:44 +0000 (11:30 +1100)]
build: Fix incorrect reference

PR-URL: https://github.com/iojs/io.js/pull/924
Reviewed-By: Brendan Ashworth <brendan.ashworth@me.com>
Reviewed-By: Rod Vagg <rod@vagg.org>
9 years agostreams: introduce StreamWrap and JSStream
Fedor Indutny [Mon, 23 Feb 2015 20:09:44 +0000 (23:09 +0300)]
streams: introduce StreamWrap and JSStream

Introduce a way to wrap plain-js `stream.Duplex` streams into C++
StreamBase's child class. With such method at hand it is now possible to
pass `stream.Duplex` instance as a `socket` parameter to
`tls.connect()`.

PR-URL: https://github.com/iojs/io.js/pull/926
Reviewed-By: Chris Dickinson <christopher.s.dickinson@gmail.com>
9 years agobuild: make test-ci output TAP to stdout and log
Rod Vagg [Tue, 24 Feb 2015 18:17:53 +0000 (12:17 -0600)]
build: make test-ci output TAP to stdout and log

Closes: #810
PR-URL: https://github.com/iojs/io.js/pull/938
Reviewed-By: Ben Noordhuis <info@bnoordhuis.nl>
9 years agotest: support writing test output to file
Johan Bergström [Tue, 24 Feb 2015 06:20:44 +0000 (17:20 +1100)]
test: support writing test output to file

This is a minimal effort to support test output written both to
stdout and file in order to get our buildbots understanding
test output.

PR-URL: https://github.com/iojs/io.js/pull/934
Reviewed-By: Chris Dickinson <christopher.s.dickinson@gmail.com>
Reviewed-By: Ben Noordhuis <info@bnoordhuis.nl>
9 years agoutil: handle symbols properly in format()
cjihrig [Mon, 23 Feb 2015 22:32:18 +0000 (17:32 -0500)]
util: handle symbols properly in format()

Currently, if util.format() is called with a string as its first
argument, and a Symbol as one of the subsequent arguments, an
exception is thrown due to an attempted implicit string conversion.
This commit causes Symbols to be explicitly converted.

Fixes: https://github.com/iojs/io.js/issues/927
PR-URL: https://github.com/iojs/io.js/pull/931
Reviewed-By: Domenic Denicola <domenic@domenicdenicola.com>
9 years agodeps: enable node-gyp iojs.lib download checksum
Ben Noordhuis [Sun, 22 Feb 2015 06:50:20 +0000 (07:50 +0100)]
deps: enable node-gyp iojs.lib download checksum

Originally disabled in commit 5de334c ("deps: make node-gyp work again
on windows") due to the then-website lacking the requisite SHASUMS.txt
or SHASUMS256.txt files.  The website has a SHASUMS256.txt now so start
checksumming the download again.

PR-URL: https://github.com/iojs/io.js/pull/918
Reviewed-By: Rod Vagg <rod@vagg.org>
Reviewed-By: Colin Ihrig <cjihrig@gmail.com>
9 years agoreadline: use native `codePointAt`
Vladimir Kurchatkin [Thu, 12 Feb 2015 20:09:34 +0000 (23:09 +0300)]
readline: use native `codePointAt`

Semver: patch
PR-URL: https://github.com/iojs/io.js/pull/825
Reviewed-By: Chris Dickinson <christopher.s.dickinson@gmail.com>
9 years agodoc: fix footer sizing
Jeremiah Senkpiel [Mon, 16 Feb 2015 20:05:31 +0000 (15:05 -0500)]
doc: fix footer sizing

reduced to the minimal amount, any less shows a white bar.

Semver: patch
PR-URL: https://github.com/iojs/io.js/pull/860
Reviewed-By: Chris Dickinson <christopher.s.dickinson@gmail.com>
9 years agotest: common.js -> common
Brendan Ashworth [Sun, 22 Feb 2015 02:47:04 +0000 (18:47 -0800)]
test: common.js -> common

This commit changes many test styles to change all references
from require('./common.js'); to require('./common');.

The latter is much more common, with the former only being used in 50
tests. It is just a stylistic change, and it seems that `common.js` was
introduced by a rogue test and copied and pasted into the rest.

Semver: patch
PR-URL: https://github.com/iojs/io.js/pull/917
Reviewed-By: Colin Ihrig <cjihrig@gmail.com>
Reviewed-By: Ben Noordhuis <info@bnoordhuis.nl>
9 years agostream_base: introduce StreamBase
Fedor Indutny [Sun, 22 Feb 2015 18:59:07 +0000 (21:59 +0300)]
stream_base: introduce StreamBase

StreamBase is an improved way to write C++ streams. The class itself is
for separting `StreamWrap` (with the methods like `.writeAsciiString`,
`.writeBuffer`, `.writev`, etc) from the `HandleWrap` class, making
possible to write abstract C++ streams that are not bound to any uv
socket.

The following methods are important part of the abstraction (which
mimics libuv's stream API):

* Events:
  * `OnAlloc(size_t size, uv_buf_t*)`
  * `OnRead(ssize_t nread, const uv_buf_t*, uv_handle_type pending)`
  * `OnAfterWrite(WriteWrap*)`
* Wrappers:
  * `DoShutdown(ShutdownWrap*)`
  * `DoTryWrite(uv_buf_t** bufs, size_t* count)`
  * `DoWrite(WriteWrap*, uv_buf_t*, size_t count, uv_stream_t* handle)`
  * `Error()`
  * `ClearError()`

The implementation should provide all of these methods, thus providing
the access to the underlying resource (be it uv handle, TLS socket, or
anything else).

A C++ stream may consume the input of another stream by replacing the
event callbacks and proxying the writes. This kind of API is actually
used now for the TLSWrap implementation, making it possible to wrap TLS
stream into another TLS stream. Thus legacy API calls are no longer
required in `_tls_wrap.js`.

PR-URL: https://github.com/iojs/io.js/pull/840
Reviewed-By: Trevor Norris <trev.norris@gmail.com>
Reviewed-By: Chris Dickinson <christopher.s.dickinson@gmail.com>
9 years agodeps: make node-gyp work again on windows
Bert Belder [Thu, 15 Jan 2015 00:39:30 +0000 (01:39 +0100)]
deps: make node-gyp work again on windows

* Fetch from the correct url.
* Link compiled addons with iojs.lib instead of node.lib.
* Disable checksum checks for iojs.lib until our website supports
  them.

PR: https://github.com/iojs/io.js/pull/422
Reviewed-by: Ben Noordhuis <info@bnoordhuis.nl>
Reviewed-by: Rod Vagg <rod@vagg.org>
9 years agodeps: make node-gyp fetch tarballs from iojs.org
Ben Noordhuis [Tue, 13 Jan 2015 22:22:49 +0000 (23:22 +0100)]
deps: make node-gyp fetch tarballs from iojs.org

Apply a small patch that makes node-gyp fetch the tarballs from
https://iojs.org/ instead of http://nodejs.org/

A patch better suited for inclusion upstream will be put together
shortly.

PR-URL: https://github.com/iojs/io.js/pull/343
Reviewed-By: Rod Vagg <rod@vagg.org>
9 years agodeps: upgrade npm to 2.6.0
Forrest L Norvell [Fri, 20 Feb 2015 17:03:34 +0000 (09:03 -0800)]
deps: upgrade npm to 2.6.0

PR-URL: https://github.com/iojs/io.js/pull/904
Reviewed-By: Ben Noordhuis <info@bnoordhuis.nl>
Reviewed-By: Colin Ihrig <cjihrig@gmail.com>
9 years agodoc: fix stream `_writev` header size
René Kooi [Sat, 21 Feb 2015 19:10:03 +0000 (20:10 +0100)]
doc: fix stream `_writev` header size

PR-URL: https://github.com/iojs/io.js/pull/916
Reviewed-By: Ben Noordhuis <info@bnoordhuis.nl>
9 years agofs: add type checking to makeCallback()
cjihrig [Wed, 18 Feb 2015 17:55:13 +0000 (12:55 -0500)]
fs: add type checking to makeCallback()

This commit adds proper type checking to makeCallback(). Anything
other than undefined or a function will throw.

PR-URL: https://github.com/iojs/io.js/pull/866
Reviewed-By: Ben Noordhuis <info@bnoordhuis.nl>
Reviewed-By: Vladimir Kurchatkin <vladimir.kurchatkin@gmail.com>
9 years agofs: properly handle fd passed to truncate()
Bruno Jouhier [Sat, 7 Feb 2015 18:27:20 +0000 (19:27 +0100)]
fs: properly handle fd passed to truncate()

Currently, fs.truncate() silently fails when a file descriptor
is passed as the first argument. This commit changes this
behavior to properly call fs.ftruncate().

PR-URL: https://github.com/joyent/node/pull/9161
Reviewed-By: Colin Ihrig <cjihrig@gmail.com>
Reviewed-By: Timothy J Fontaine <tjfontaine@gmail.com>
Reviewed-By: Ben Noordhuis <info@bnoordhuis.nl>
Conflicts:
lib/fs.js

9 years agodoc: use HTTPS URL for the API documentation page
Shinnosuke Watanabe [Sat, 21 Feb 2015 06:51:38 +0000 (15:51 +0900)]
doc: use HTTPS URL for the API documentation page

PR-URL: https://github.com/iojs/io.js/pull/913
Reviewed-By: Colin Ihrig <cjihrig@gmail.com>
9 years agonet: make Server.prototype.unref() persistent
cjihrig [Sat, 3 Jan 2015 04:14:25 +0000 (23:14 -0500)]
net: make Server.prototype.unref() persistent

Currently, the unref() method does not remember any state
if called before the server's handle has been created. This
commit adds state to track calls to ref() and unref().

PR-URL: https://github.com/iojs/io.js/pull/897
Reviewed-By: Evan Lucas <evanlucas@me.com>
Reviewed-By: Brendan Ashworth <brendan.ashworth@me.com>
9 years agosmalloc: extend user API
Trevor Norris [Fri, 20 Feb 2015 17:32:29 +0000 (10:32 -0700)]
smalloc: extend user API

node::Environment isn't accessible to user APIs, so extend smalloc to
also accept v8::Isolate.

Fixes: 75adde07 "src: remove `node_isolate` from source"
PR-URL: https://github.com/iojs/io.js/pull/905
Reviewed-by: Fedor Indutny <fedor@indutny.com>
9 years agodoc: fix PR reference in CHANGELOG
Brian White [Fri, 20 Feb 2015 13:23:34 +0000 (08:23 -0500)]
doc: fix PR reference in CHANGELOG

The CHANGELOG referenced PR 847, but should really be 846.

PR-URL: https://github.com/iojs/io.js/pull/903
Reviewed-By: Christian Tellnes <christian@tellnes.no>
Reviewed-By: Colin Ihrig <cjihrig@gmail.com>
9 years agodoc: fix typo, rephrase cipher change in CHANGELOG
Rod Vagg [Fri, 20 Feb 2015 09:31:58 +0000 (20:31 +1100)]
doc: fix typo, rephrase cipher change in CHANGELOG

PR-URL: https://github.com/iojs/io.js/pull/902
Reviewed-By: Roman Reiss <me@silverwind.io>
9 years agoWorking on v1.3.0
Rod Vagg [Fri, 20 Feb 2015 09:29:54 +0000 (20:29 +1100)]
Working on v1.3.0

9 years ago2015-02-20 io.js v1.3.0 Release v1.3.0
Rod Vagg [Fri, 20 Feb 2015 09:25:12 +0000 (20:25 +1100)]
2015-02-20 io.js v1.3.0 Release

Notable changes:

* url: `url.resolve('/path/to/file', '.')` now returns `/path/to/`
  with the trailing slash, `url.resolve('/', '.')` returns `/`.
  https://github.com/iojs/io.js/issues/278 (Amir Saboury)
* tls: tls (and in turn https) now rely on a stronger default
  cipher suite which excludes the RC4 cipher. If you still want to
  use RC4, you have to specify your own ciphers suite.
  https://github.com/iojs/io.js/issues/826 (Roman Reiss)

9 years agodoc: update AUTHORS list
Rod Vagg [Fri, 20 Feb 2015 01:37:11 +0000 (12:37 +1100)]
doc: update AUTHORS list

Update AUTHORS file using tools/update-authors.sh

PR-URL: https://github.com/iojs/io.js/pull/900
Reviewed-By: Ben Noordhuis <info@bnoordhuis.nl>
9 years agodoc: add TC meeting 2015-02-04 minutes
Rod Vagg [Wed, 18 Feb 2015 13:20:20 +0000 (00:20 +1100)]
doc: add TC meeting 2015-02-04 minutes

Closes #701
PR-URL: https://github.com/iojs/io.js/pull/876
Reviewed-By: Colin Ihrig <cjihrig@gmail.com>
9 years agodoc: remove outdated language on consensus
Emily Rose [Thu, 19 Feb 2015 22:27:53 +0000 (14:27 -0800)]
doc: remove outdated language on consensus

PR: https://github.com/iojs/io.js/pull/898
Reviewed-by: Bert Belder <bertbelder@gmail.com>
Reviewed-By: Mikeal Rogers <mikeal.rogers@gmail.com>
9 years agonet: unref timer in parent sockets
Fedor Indutny [Thu, 19 Feb 2015 13:14:36 +0000 (14:14 +0100)]
net: unref timer in parent sockets

`TLSSocket` wraps the original `net.Socket`, but writes/reads to/from
`TLSSocket` do not touch the timers of original `net.Socket`.

Introduce `socket._parent` property, and iterate through all parents
to unref timers and prevent timeout event on original `net.Socket`.

Fix: https://github.com/joyent/node/issues/9242
PR-URL: https://github.com/iojs/io.js/pull/891
Reviewed-By: Colin Ihrig <cjihrig@gmail.com>
9 years agofs: ensure nullCheck() callback is a function
cjihrig [Thu, 19 Feb 2015 04:10:15 +0000 (23:10 -0500)]
fs: ensure nullCheck() callback is a function

Currently, nullCheck() will attempt to invoke any truthy value
as a function if the path argument contains a null character.
This commit validates that the callback is actually a function
before trying to invoke it. fs.access() was vulnerable to this
bug, as nullCheck() was called prior to type checking its
callback.

PR-URL: https://github.com/iojs/io.js/pull/887
Reviewed-By: Ben Noordhuis <info@bnoordhuis.nl>
9 years agodoc: document 'ciphers' option of tls.connect
Roman Reiss [Wed, 18 Feb 2015 16:55:11 +0000 (17:55 +0100)]
doc: document 'ciphers' option of tls.connect

This option has been there for a long time, but has never been
documented. It's functionally identical to the server counterpart.

PR-URL: https://github.com/iojs/io.js/pull/845
Reviewed-By: Ben Noordhuis <info@bnoordhuis.nl>
9 years agosrc: ensure that file descriptors 0-2 are valid
Ben Noordhuis [Wed, 18 Feb 2015 02:43:29 +0000 (03:43 +0100)]
src: ensure that file descriptors 0-2 are valid

Check that stdin, stdout and stderr map to open file descriptors and
remap them to /dev/null if that isn't the case.  Protects against
information leaks or worse when io.js is started with closed stdio
file descriptors.

PR-URL: https://github.com/iojs/io.js/pull/875
Reviewed-By: Colin Ihrig <cjihrig@gmail.com>
Reviewed-By: Vladimir Kurchatkin <vladimir.kurchatkin@gmail.com>
9 years agosrc: fix typo in error message
Ben Noordhuis [Tue, 17 Feb 2015 21:53:21 +0000 (22:53 +0100)]
src: fix typo in error message

PR-URL: https://github.com/iojs/io.js/pull/875
Reviewed-By: Colin Ihrig <cjihrig@gmail.com>
Reviewed-By: Vladimir Kurchatkin <vladimir.kurchatkin@gmail.com>
9 years agosrc: fix add-on builds, partially revert 8aed9d66
Ben Noordhuis [Tue, 17 Feb 2015 18:35:59 +0000 (19:35 +0100)]
src: fix add-on builds, partially revert 8aed9d66

Commit 8aed9d66 ("src: cleanup `Isolate::GetCurrent()`") breaks building
add-ons because of the following:

    In file included from ../node_modules/nan/nan.h:27:0,
                     from ../src/binding.cc:18:
    /home/bnoordhuis/src/v1.x/src/node_object_wrap.h: In member function
    'v8::Local<v8::Object> node::ObjectWrap::handle()':
    /home/bnoordhuis/src/v1.x/src/node_object_wrap.h:39:46: error: base
    operand of '->' has non-pointer type 'v8::Persistent<v8::Object>'
         return v8::Local<v8::Object>::New(handle_->GetIsolate(),
                                           persistent());

Mea culpa, I was one of the reviewers.

PR-URL: https://github.com/iojs/io.js/pull/868
Reviewed-By: Vladimir Kurchatkin <vladimir.kurchatkin@gmail.com>
9 years agodoc: fix typo miliseconds -> milliseconds
jigsaw [Tue, 17 Feb 2015 15:10:17 +0000 (00:10 +0900)]
doc: fix typo miliseconds -> milliseconds

PR-URL: https://github.com/iojs/io.js/pull/865
Reviewed-By: Colin Ihrig <cjihrig@gmail.com>