platform/upstream/nodejs.git
10 years agosrc: only access stack of defined errors
Vladimir Kurchatkin [Fri, 6 Dec 2013 11:56:37 +0000 (15:56 +0400)]
src: only access stack of defined errors

Avoid segmentation fault when `undefined` is thrown

10 years agotest: fix create-file test fixture
Alexis Campailla [Tue, 10 Dec 2013 13:25:27 +0000 (05:25 -0800)]
test: fix create-file test fixture

This was failing if the file didn't already exist.

Fixes unit tests on Windows:

* test\simple\test-http-curl-chunk-problem.js
* test\simple\test-pipe-file-to-http.js

10 years agonode: follow specification, zero-fill ArrayBuffers
Trevor Norris [Tue, 10 Dec 2013 01:11:38 +0000 (17:11 -0800)]
node: follow specification, zero-fill ArrayBuffers

Fixes #6664

10 years agocrypto: support GCM authenticated encryption mode.
Ingmar Runge [Tue, 19 Nov 2013 21:38:15 +0000 (22:38 +0100)]
crypto: support GCM authenticated encryption mode.

This adds two new member functions getAuthTag and setAuthTag that
are useful for AES-GCM encryption modes. Use getAuthTag after
Cipheriv.final, transmit the tag along with the data and use
Decipheriv.setAuthTag to have the encrypted data verified.

10 years agobuild: older pythons don't support ternary if
Timothy J Fontaine [Sat, 7 Dec 2013 19:49:49 +0000 (11:49 -0800)]
build: older pythons don't support ternary if

10 years agoMerge remote-tracking branch 'upstream/v0.10'
Timothy J Fontaine [Sat, 7 Dec 2013 05:27:18 +0000 (21:27 -0800)]
Merge remote-tracking branch 'upstream/v0.10'

Conflicts:
lib/tls.js
src/node.js

10 years agobuild: pass --no-parallel by default to gyp
Timothy J Fontaine [Sat, 7 Dec 2013 05:00:32 +0000 (21:00 -0800)]
build: pass --no-parallel by default to gyp

gyp by default now tries to process gyp files in parallel by using
python's multiprocessing module, but it has problems on oddball
platforms. We don't have many files or complex dependency chains that
would benefit from parallel processing so disable by deafult

fixes #6640

10 years agobuild: ./configure pass positional args to gyp
Timothy J Fontaine [Sat, 7 Dec 2013 04:58:00 +0000 (20:58 -0800)]
build: ./configure pass positional args to gyp

use `--` to specify the arguments you want to pass directly to gyp.

for example: `./configure -- --no-parallel -Dsome_define=foo`

fixes #6370

10 years agobuild: Ignore gyp-generated files on android
Steven Kabbes [Tue, 3 Dec 2013 04:59:34 +0000 (20:59 -0800)]
build: Ignore gyp-generated files on android

The android generator for gyp currently doesn't support
--generator-output - this makes embedding node.js as project dependency
difficult for android projects.

Note: the generated files in deps/uv should be ignored in libuv's
.gitignore

10 years agohttp: DELETE shouldn't default to chunked encoding
Lalit Kapoor [Fri, 22 Nov 2013 02:44:08 +0000 (20:44 -0600)]
http: DELETE shouldn't default to chunked encoding

10 years agochild_process: don't crash process on internal ops
Alexis Campailla [Fri, 22 Nov 2013 02:49:41 +0000 (18:49 -0800)]
child_process: don't crash process on internal ops

1. Swallow errors when sending internal NODE_HANDLE_ACK messages, so
   they don't crash the process.
2. Queue process.disconnect() if there are any pending queued messages.

Fixes test-child-process-fork-net2.js on win.

10 years agocrypto: fix moving read head
Fedor Indutny [Wed, 27 Nov 2013 20:11:17 +0000 (00:11 +0400)]
crypto: fix moving read head

Fix various possible stalls of read head (i.e. try moving it after every
write head update).

NOTE: This is actually backported from `bud`.

10 years agotls_wrap: use writev when possible
Fedor Indutny [Wed, 27 Nov 2013 22:49:30 +0000 (02:49 +0400)]
tls_wrap: use writev when possible

Try writing multiple chunks from NodeBIO if possible.

10 years agobenchmark: fixate `ciphers` in tls benchmarks
Fedor Indutny [Fri, 6 Dec 2013 10:30:13 +0000 (14:30 +0400)]
benchmark: fixate `ciphers` in tls benchmarks

Benchmark should always use the same cipher in order to be truthful.

10 years agodoc: mention execArgv in setupMaster
Yazhong Liu [Fri, 6 Dec 2013 18:28:39 +0000 (02:28 +0800)]
doc: mention execArgv in setupMaster

10 years agodoc: document 'error' event for stream.Writable
Fedor Indutny [Fri, 6 Dec 2013 15:36:43 +0000 (19:36 +0400)]
doc: document 'error' event for stream.Writable

fix #5255

10 years agoopenssl: add assembly for aes and gcm
Fedor Indutny [Wed, 27 Nov 2013 22:14:00 +0000 (02:14 +0400)]
openssl: add assembly for aes and gcm

10 years agotls: fix handling of asterisk in SNI context
Fedor Indutny [Thu, 5 Dec 2013 15:16:01 +0000 (19:16 +0400)]
tls: fix handling of asterisk in SNI context

Wildcard server names should not match subdomains.

Quote from RFC2818:

   ...Names may contain the wildcard
   character * which is considered to match any single domain name
   component or component fragment. E.g., *.a.com matches foo.a.com but
   not bar.foo.a.com. f*.com matches foo.com but not bar.com.

fix #6610

10 years agobuild: add libicu i18n support
Ben Noordhuis [Thu, 21 Nov 2013 16:13:58 +0000 (17:13 +0100)]
build: add libicu i18n support

Adds a --with-icu-path= switch to the configure script.  Requires that
the user checks out the copy of libicu that's bundled with chromium to
a fixed directory.  It's still a little rough around the edges but it
works.

Fixes #6371.

10 years agolib: child_process spawn handle ENOENT correctly
Alexis Campailla [Wed, 4 Dec 2013 19:04:47 +0000 (11:04 -0800)]
lib: child_process spawn handle ENOENT correctly

child_process spawn wasn't handlig ENOENT correctly on Windows.
This is half a fix for test-child-process-cwd.js.
The other half is going into libuv.

10 years agocrypto: Make Decipher._flush() emit errors.
Kai Groner [Thu, 18 Apr 2013 23:01:14 +0000 (19:01 -0400)]
crypto: Make Decipher._flush() emit errors.

When Decipher processes a stream using an incorrect key, the
DecipherFinal() method throws an unhandled exception at the end of the
stream.

10 years agoblog: bnoordhuis departure
isaacs [Wed, 4 Dec 2013 09:00:07 +0000 (01:00 -0800)]
blog: bnoordhuis departure

10 years agotls: fix pool usage race
Fedor Indutny [Fri, 29 Nov 2013 16:09:59 +0000 (20:09 +0400)]
tls: fix pool usage race

When calling `encOut` in loop, `maybeInitFinished()` may invoke
`clearOut`'s loop, leading to the writing of interleaved data
(encrypted and cleartext) into the one shared pool.

Move `maybeInitFinished()` out of the loop and add assertion for
future.

10 years agodoc: list execArgv option for child_process.fork()
Yazhong Liu [Mon, 2 Dec 2013 05:31:06 +0000 (13:31 +0800)]
doc: list execArgv option for child_process.fork()

10 years agodoc: change constant to consistent
Gabriel Falkenberg [Mon, 2 Dec 2013 10:18:37 +0000 (11:18 +0100)]
doc: change constant to consistent

10 years agoprocess: document kill(0), disallow kill(O_RDWR)
Sam Roberts [Fri, 11 Oct 2013 05:28:01 +0000 (22:28 -0700)]
process: document kill(0), disallow kill(O_RDWR)

The null signal test existed, but only tested the case where the target
process existed, not when it did not exist.

Also clarified that SIGUSR1 is reserved by Node.js only for receiveing,
its not at all reserved when sending a signal with kill().

kill(pid, 'O_RDWR'), or any other node constant, "worked". I fixed this
by also checking for 'SIG'. The same as done in the isSignal() function.
Now the signal names supported by process.kill() are the same as those
supported by process.on().

10 years agoMerge branch 'v0.10'
Fedor Indutny [Mon, 2 Dec 2013 11:04:47 +0000 (15:04 +0400)]
Merge branch 'v0.10'

Conflicts:
src/node_crypto.cc
src/node_crypto.h

10 years agotls: reset NPN callbacks after SNI
Fedor Indutny [Fri, 22 Nov 2013 14:33:50 +0000 (18:33 +0400)]
tls: reset NPN callbacks after SNI

SNI callback selects a new SSL_CTX for the connection, which doesn't
have NPN callbacks set up.

10 years agoMerge remote-tracking branch 'upstream/v0.10'
Timothy J Fontaine [Mon, 2 Dec 2013 03:43:34 +0000 (19:43 -0800)]
Merge remote-tracking branch 'upstream/v0.10'

Conflicts:
src/stream_wrap.cc

10 years agobuild: include postmortem symbols on linux
Timothy J Fontaine [Mon, 2 Dec 2013 02:57:43 +0000 (18:57 -0800)]
build: include postmortem symbols on linux

Previously we were building the symbols, but the linker was garbage
collecting the symbols because they weren't used. Inform the linker
that we want to keep all symbols from v8 around.

10 years agodoc: net: fix typo in example code
Yazhong Liu [Fri, 29 Nov 2013 16:44:13 +0000 (00:44 +0800)]
doc: net: fix typo in example code

10 years agodoc: http: document ServerResponse 'finish' event
Michael Ridgway [Tue, 26 Nov 2013 20:49:28 +0000 (12:49 -0800)]
doc: http: document ServerResponse 'finish' event

10 years agodoc: http: properly document callback argument
Nikolai Vavilov [Thu, 28 Nov 2013 20:25:30 +0000 (22:25 +0200)]
doc: http: properly document callback argument

10 years agohttp: fix parser double-free in _http_client.js
Fedor Indutny [Wed, 27 Nov 2013 10:54:58 +0000 (14:54 +0400)]
http: fix parser double-free in _http_client.js

HTTP Parser instance was freed twice, leading to the reusal of it
in several different requests simultaneously.

The flow:

`socketCloseListener` is firing, which calls `socket.read()` to flush
any queued data, `socket.buffer` has data which emits and fires
`socketOnData` in sync, this triggers a parser error which frees the
parser, `socketCloseListener` resumes execution only to have the wrong
parser associated with the socket.

The fix is to only cache the parser after the flushing from the socket,
and to assert in `socketOnData` that `socket === parser.socket`

fix #6451

10 years agotest: use os.EOL when checking output
Alexis Campailla [Fri, 22 Nov 2013 23:18:06 +0000 (15:18 -0800)]
test: use os.EOL when checking output

10 years agoopenssl: more asm
Fedor Indutny [Sun, 24 Nov 2013 15:13:46 +0000 (19:13 +0400)]
openssl: more asm

10 years agostream_wrap: don't call Number::New()
Ben Noordhuis [Wed, 27 Nov 2013 02:48:44 +0000 (03:48 +0100)]
stream_wrap: don't call Number::New()

Replace call to Number::New() with a call to Integer::NewFromUnsigned().

Profiling a Real World(TM) application with perf(1) suggests that the
conversion of its argument from integer to double is disproportionally
costly: over 60% of CPU cycles accountable to WriteStringImpl() are
attributable to the conversion.

After changing it to Integer::NewFromUnsigned(), WriteStringImpl()
has dropped from the 'most costly functions' top ten altogether.

10 years agoMerge remote-tracking branch 'upstream/v0.10'
Timothy J Fontaine [Tue, 26 Nov 2013 16:41:09 +0000 (08:41 -0800)]
Merge remote-tracking branch 'upstream/v0.10'

10 years agoblog: npm outage postmortem
isaacs [Tue, 26 Nov 2013 15:27:59 +0000 (07:27 -0800)]
blog: npm outage postmortem

10 years agotls: add serialNumber to getPeerCertificate()
Ben Noordhuis [Mon, 25 Nov 2013 14:09:57 +0000 (15:09 +0100)]
tls: add serialNumber to getPeerCertificate()

Add a 'serialNumber' property to the object that is returned by
tls.CryptoStream#getPeerCertificate().  Contains the certificate's
serial number encoded as a hex string.  The format is identical to
`openssl x509 -serial -in path/to/certificate`.

Fixes #6583.

10 years agoutil: Format negative zero as '-0'
David Chan [Wed, 20 Nov 2013 18:10:41 +0000 (23:40 +0530)]
util: Format negative zero as '-0'

Format negative zero as '-0' instead of as '0', as it does not behave
identically to positive zero. ((-0).toString() still returns '0' as
required by ES5 9.8.1.2).

Fixes joyent/node#6548.
Closes joyent/node#6550.

10 years agov8: unbreak freebsd build
Ben Noordhuis [Sat, 23 Nov 2013 22:05:34 +0000 (23:05 +0100)]
v8: unbreak freebsd build

Pending review of https://codereview.appspot.com/31500043/

Fixes #6576.

10 years agonode: fix removing AsyncListener in callback
Vladimir Kurchatkin [Thu, 21 Nov 2013 10:04:39 +0000 (14:04 +0400)]
node: fix removing AsyncListener in callback

context._asyncQueue shouldn't be exposed as asyncQueue, as it allows
modification of queues already attached to an event. Which is not
supposed to happend. Instead context._asyncQueue should be copied.

10 years agodoc: clarify child_process error behaviour
Linus Unnebäck [Thu, 21 Nov 2013 15:39:23 +0000 (16:39 +0100)]
doc: clarify child_process error behaviour

Clarify that an 'error' event may or may not be followed by an 'exit'
event and that it's not safe to make assumptions either way.

10 years agoevents: fix TypeError in removeAllListeners
Jeremy Martin [Fri, 22 Nov 2013 14:17:16 +0000 (09:17 -0500)]
events: fix TypeError in removeAllListeners

Check that `listeners` is actually an array before trying to manipulate it
because it won't be if no regular event listeners have been registered yet
but there are 'removeListener' event listeners.

10 years agonode: allow nextTick infinite recursion
Trevor Norris [Thu, 21 Nov 2013 22:41:40 +0000 (14:41 -0800)]
node: allow nextTick infinite recursion

Removing the depth counter while processing the nextTickQueue made it
possible to run out of memory if in an infinite recursive loop using
nextTick(). There was also an edge case where too many callbacks were
pushed onto the nextTickQueue, while not actually being recursive.

This is being done to prevent possible cryptic FATAL ERROR messages from
popping up, and issues being posted about them.

10 years agoblog: Post for v0.11.9
Timothy J Fontaine [Thu, 21 Nov 2013 00:45:27 +0000 (16:45 -0800)]
blog: Post for v0.11.9

10 years agoNow working on 0.11.10
Timothy J Fontaine [Thu, 21 Nov 2013 00:40:47 +0000 (16:40 -0800)]
Now working on 0.11.10

10 years agoMerge branch 'v0.11.9-release'
Timothy J Fontaine [Thu, 21 Nov 2013 00:40:36 +0000 (16:40 -0800)]
Merge branch 'v0.11.9-release'

10 years ago2013.11.20, Version 0.11.9 (Unstable) v0.11.9
Timothy J Fontaine [Thu, 21 Nov 2013 00:03:31 +0000 (16:03 -0800)]
2013.11.20, Version 0.11.9 (Unstable)

* uv: upgrade to v0.11.15 (Timothy J Fontaine)

* v8: upgrade to 3.22.24.5 (Timothy J Fontaine)

* buffer: remove warning when no encoding is passed (Trevor Norris)

* build: make v8 use random seed for hash tables (Ben Noordhuis)

* crypto: build with shared openssl without NPN (Ben Noordhuis)

* crypto: update root certificates (Ben Noordhuis)

* debugger: pass on v8 debug switches (Ben Noordhuis)

* domain: use AsyncListener API (Trevor Norris)

* fs: add recursive subdirectory support to fs.watch (Nick Simmons)

* fs: make fs.watch() non-recursive by default (Ben Noordhuis)

* http: cleanup freeSockets when socket destroyed (fengmk2)

* http: force socket encoding to be null (isaacs)

* http: make DELETE requests set `req.method` (Nathan Rajlich)

* node: add AsyncListener support (Trevor Norris)

* src: remove global HandleScope that hid memory leaks (Ben Noordhuis)

* tls: add ECDH ciphers support (Erik Dubbelboer)

* tls: do not default to 'localhost' servername (Fedor Indutny)

* tls: more accurate wrapping of connecting socket (Fedor Indutny)

10 years agoMerge remote-tracking branch 'upstream/v0.10'
Timothy J Fontaine [Wed, 20 Nov 2013 23:45:50 +0000 (15:45 -0800)]
Merge remote-tracking branch 'upstream/v0.10'

Conflicts:
lib/events.js
src/udp_wrap.cc

10 years agonpm: Upgrade to v1.3.15
isaacs [Wed, 20 Nov 2013 19:08:52 +0000 (11:08 -0800)]
npm: Upgrade to v1.3.15

10 years agochild_process: deliver ENOENT on nextTick
Timothy J Fontaine [Wed, 20 Nov 2013 16:49:40 +0000 (08:49 -0800)]
child_process: deliver ENOENT on nextTick

After the uv upgrade, uv_spawn will now fail faster for certain
failures like ENOENT. However, our tests and other people may be
depending on that error being passed to the callback instead of a
throw.

10 years agouv: upgrade to v0.11.15
Timothy J Fontaine [Wed, 20 Nov 2013 16:25:24 +0000 (08:25 -0800)]
uv: upgrade to v0.11.15

10 years agoasyncwrap: add missing TryCatch
Trevor Norris [Wed, 20 Nov 2013 00:03:11 +0000 (16:03 -0800)]
asyncwrap: add missing TryCatch

The TryCatch was not being checked after calling the unload asyncQueue
callback in AsyncWrap::MakeCallback.

10 years agosrc: add ASSERT/CHECK/UNREACHABLE macros
Ben Noordhuis [Thu, 14 Nov 2013 00:48:19 +0000 (01:48 +0100)]
src: add ASSERT/CHECK/UNREACHABLE macros

10 years agosrc: make queue.h c++ compatible
Ben Noordhuis [Wed, 13 Nov 2013 23:58:18 +0000 (00:58 +0100)]
src: make queue.h c++ compatible

This is a cherry-pick of commit joyent/libuv@0520464.

10 years agocrypto: `randomBytes` is non-blocking
Fedor Indutny [Sat, 19 Oct 2013 10:38:58 +0000 (14:38 +0400)]
crypto: `randomBytes` is non-blocking

Add NOTE section in documentation, mentioning that `randomBytes` won't
block when entropy sources are drained.

fix #6372

10 years agoevents: do not accept NaN in setMaxListeners
Fedor Indutny [Tue, 19 Nov 2013 06:58:23 +0000 (10:58 +0400)]
events: do not accept NaN in setMaxListeners

10 years agonet: fix `new net.Socket` documentation
Fedor Indutny [Tue, 19 Nov 2013 07:02:26 +0000 (11:02 +0400)]
net: fix `new net.Socket` documentation

`Socket` no longer accepts `type` option, and also accepts `readable`,
`writable` options.

fix #6541

10 years agodgram: fix abort when getting `fd` of closed dgram
Fedor Indutny [Tue, 19 Nov 2013 07:38:48 +0000 (11:38 +0400)]
dgram: fix abort when getting `fd` of closed dgram

v8's `messages.js` file's `CallSiteGetMethodName` is running through all
object properties and getter to figure out method name of function that
appears in stack trace. This run-through will also read `fd` property of
`UDPWrap` instance's javascript object, making `UNWRAP()` fail.

As a simple alternative to the test case above, one could just keep
reference to the dgram handle and try accessing `handle.fd` after it has
been fully closed.

fix #6536

10 years agov8: upgrade to 3.22.24.5
Timothy J Fontaine [Mon, 18 Nov 2013 23:01:38 +0000 (15:01 -0800)]
v8: upgrade to 3.22.24.5

10 years agoMerge remote-tracking branch 'upstream/v0.10'
Timothy J Fontaine [Mon, 18 Nov 2013 21:41:17 +0000 (13:41 -0800)]
Merge remote-tracking branch 'upstream/v0.10'

Conflicts:
AUTHORS
ChangeLog
deps/uv/AUTHORS
deps/uv/ChangeLog
deps/uv/README.md
deps/uv/build.mk
deps/uv/src/unix/core.c
deps/uv/src/unix/darwin-proctitle.c
deps/uv/src/unix/darwin.c
deps/uv/src/unix/fsevents.c
deps/uv/src/unix/udp.c
deps/uv/src/version.c
deps/v8/src/platform-solaris.cc
deps/v8/test/cctest/test-api.cc
lib/tls.js
src/node.h
src/node_version.h

10 years agodebugger: pass on v8 debug switches
Ben Noordhuis [Sat, 16 Nov 2013 13:39:41 +0000 (14:39 +0100)]
debugger: pass on v8 debug switches

Before this commit, passing --debugger and other V8 debug switches to
node.js made node print a usage message and exit.

Rewrite the debug argument parser so it only consumes switches that we
understand and pass everything else as-is to V8.

A side effect of this change is that switches like --debugger_agent and
--debugger_port now work.  That kind of obsoletes our debugger switches
because they implement pretty much the same functionality but let's
leave them in for now for the sake of convenience and backwards
compatibility.

Fixes #6526.

10 years agobuffer: convert values to uint, not int
Trevor Norris [Thu, 14 Nov 2013 23:40:56 +0000 (15:40 -0800)]
buffer: convert values to uint, not int

In many cases values expected to be unsigned were converted to a signed
integer.

Also include some small code cleanup.

10 years agosrc: make buffer size errors more explicit
Trevor Norris [Thu, 14 Nov 2013 01:19:53 +0000 (17:19 -0800)]
src: make buffer size errors more explicit

Fixes #6490

10 years agobuffer: no warning when encoding isn't passed
Trevor Norris [Thu, 14 Nov 2013 00:27:20 +0000 (16:27 -0800)]
buffer: no warning when encoding isn't passed

Buffer#write() was showing the deprecation warning when only
buf.write('string') was passed. This is incorrect since the encoding is
always optional.

Argument order should follow:
  Buffer#write(string[, offset[, length]][, encoding])

(yeah, not confusing at all)

10 years agodoc: add nodejs.vn to community page
Ben Noordhuis [Fri, 15 Nov 2013 15:27:22 +0000 (16:27 +0100)]
doc: add nodejs.vn to community page

Node.js.  It's not just for SF hipsters anymore.

10 years agodoc: sort community page links alphabetically
Ben Noordhuis [Fri, 15 Nov 2013 15:24:46 +0000 (16:24 +0100)]
doc: sort community page links alphabetically

This commit introduces some long lines but it's HTML so it's okay.

10 years agosrc: remove unused import in cares_wrap.cc
Ben Noordhuis [Thu, 14 Nov 2013 00:59:01 +0000 (01:59 +0100)]
src: remove unused import in cares_wrap.cc

10 years agodoc: fix few smalloc entries for proper formatting
Trevor Norris [Wed, 13 Nov 2013 23:14:34 +0000 (15:14 -0800)]
doc: fix few smalloc entries for proper formatting

10 years agosmalloc: check if object has external memory
Trevor Norris [Wed, 13 Nov 2013 22:51:32 +0000 (14:51 -0800)]
smalloc: check if object has external memory

Add HasExternalData API to check if Object has externally allocated
memory, and accompanying tests.

10 years agotls: handle `ssl.start()` errors
Fedor Indutny [Wed, 13 Nov 2013 12:58:46 +0000 (16:58 +0400)]
tls: handle `ssl.start()` errors

10 years agoevents: don't call once twice
Tim Wood [Tue, 12 Nov 2013 20:19:13 +0000 (12:19 -0800)]
events: don't call once twice

Emitting an event within a `EventEmitter#once` callback of the same
event name will cause subsequent `EventEmitter#once` listeners of the
same name to be called multiple times.

    var emitter = new EventEmitter();

    emitter.once('e', function() {
      emitter.emit('e');
      console.log(1);
    });

    emitter.once('e', function() {
      console.log(2);
    });

    emitter.emit('e');

    // Output
    // 2
    // 1
    // 2

Fix the issue, by calling the listener method only if it was not
already called.

10 years agosrc: add comments about implicit dependencies
Trevor Norris [Tue, 5 Nov 2013 00:24:36 +0000 (16:24 -0800)]
src: add comments about implicit dependencies

10 years agobase-object: add BaseObject
Trevor Norris [Mon, 4 Nov 2013 18:49:55 +0000 (10:49 -0800)]
base-object: add BaseObject

BaseObject is a class that just handles the Persistent handle attached
to the class instance.

This also removed WeakObject. Reordering the inheritance chain helps
prevent unneeded calls on instances that don't call MakeCallback.

10 years agoasync-wrap: make typenames consistent
Trevor Norris [Fri, 1 Nov 2013 21:45:46 +0000 (14:45 -0700)]
async-wrap: make typenames consistent

10 years agotls_wrap: move members to initialization list
Trevor Norris [Tue, 5 Nov 2013 19:56:13 +0000 (11:56 -0800)]
tls_wrap: move members to initialization list

They didn't need to be defined in the body of the constructor.

10 years agosrc: use Context::Scope objects in cares_wrap.cc
Ben Noordhuis [Mon, 11 Nov 2013 10:31:36 +0000 (11:31 +0100)]
src: use Context::Scope objects in cares_wrap.cc

Enter the context explicitly, don't rely on the fact that there is a
Context::Scope a few stack frames below because it may be gone someday

10 years agosrc: fix Context::Scope usage
Ben Noordhuis [Mon, 11 Nov 2013 09:53:00 +0000 (10:53 +0100)]
src: fix Context::Scope usage

env->context() may or may not create a new Local.  It currently does
not but don't depend on that behavior, create a HandleScope first.

10 years agocrypto: fix up implicit HandleScope abuse
Ben Noordhuis [Mon, 11 Nov 2013 09:34:16 +0000 (10:34 +0100)]
crypto: fix up implicit HandleScope abuse

Don't depend on any HandleScope objects that may or may not have been
created in src/stream_wrap.cc, create them explicitly.

10 years agosrc: remove global HandleScope
Ben Noordhuis [Mon, 11 Nov 2013 20:03:08 +0000 (21:03 +0100)]
src: remove global HandleScope

Make it more difficult to accidentally leak handles by removing the
top-level HandleScope.  Now if there's no valid HandleScope now, V8
will complain and, in debug builds, abort.

10 years agoblog: Post for v0.10.22
Timothy J Fontaine [Tue, 12 Nov 2013 20:53:45 +0000 (12:53 -0800)]
blog: Post for v0.10.22

10 years agoNow working on 0.10.23
Timothy J Fontaine [Tue, 12 Nov 2013 20:53:45 +0000 (12:53 -0800)]
Now working on 0.10.23

10 years agoMerge branch 'v0.10.22-release' into v0.10
Timothy J Fontaine [Tue, 12 Nov 2013 20:53:28 +0000 (12:53 -0800)]
Merge branch 'v0.10.22-release' into v0.10

10 years ago2013.11.12, Version 0.10.22 (Stable) v0.10.22
Timothy J Fontaine [Tue, 12 Nov 2013 20:22:12 +0000 (12:22 -0800)]
2013.11.12, Version 0.10.22 (Stable)

* npm: Upgrade to 1.3.14

* uv: Upgrade to v0.10.19

* child_process: don't assert on stale file descriptor events (Fedor Indutny)

* darwin: Fix "Not Responding" in Mavericks activity monitor (Fedor Indutny)

* debugger: Fix bug in sb() with unnamed script (Maxim Bogushevich)

* repl: do not insert duplicates into completions (Maciej Małecki)

* src: Fix memory leak on closed handles (Timothy J Fontaine)

* tls: prevent stalls by using read(0) (Fedor Indutny)

* v8: use correct timezone information on Solaris (Maciej Małecki)

10 years agosrc: add HandleScope in HandleWrap::OnClose
Timothy J Fontaine [Tue, 12 Nov 2013 19:23:19 +0000 (11:23 -0800)]
src: add HandleScope in HandleWrap::OnClose

Fixes a 4 byte leak on handles closing. AKA The Walmart leak.

MakeCallback doesn't have a HandleScope. That means the callers scope
will retain ownership of created handles from MakeCallback and related.
There is by default a wrapping HandleScope before uv_run, if the caller
doesn't have a HandleScope on the stack the global will take ownership
which won't be reaped until the uv loop exits.

If a uv callback is fired, and there is no enclosing HandleScope in the
cb, you will appear to leak 4-bytes for every invocation. Take heed.

cc @hueniverse

10 years agouv: Upgrade to v0.10.19
Timothy J Fontaine [Tue, 12 Nov 2013 18:57:57 +0000 (10:57 -0800)]
uv: Upgrade to v0.10.19

10 years agov8: use correct timezone information on Solaris
yangguo@chromium.org [Tue, 23 Oct 2012 13:04:05 +0000 (13:04 +0000)]
v8: use correct timezone information on Solaris

`timezone` variable contains the difference, in seconds, between UTC and
local standard time (see `man 3 localtime` on Solaris).

Call to `tzset` is required to apply contents of `TZ` variable to
`timezone` variable.

BUG=v8:2064

Review URL: https://chromiumcodereview.appspot.com/10967066
Patch from Maciej Małecki <me@mmalecki.com>.

This is a back-port of upstream commit r12802 and a forward port of
commit 9fa953d from the v0.8 branch.  V8 3.22 in the master branch
contains the patch so no further forward-porting is necessary.

10 years agorepl: do not insert duplicates into completions
Maciej Małecki [Mon, 11 Nov 2013 23:03:29 +0000 (00:03 +0100)]
repl: do not insert duplicates into completions

Fix invalid `hasOwnProperty` function usage.

For example, before in the REPL:

```
> Ar<Tab>
Array

Array        ArrayBuffer
```

Now:

```
> Ar<Tab>
Array

ArrayBuffer
```

Fixes #6255.
Closes #6498.

10 years agosrc: fix Environment::GetCurrent() usage
Ben Noordhuis [Mon, 11 Nov 2013 21:02:03 +0000 (22:02 +0100)]
src: fix Environment::GetCurrent() usage

Create a HandleScope before calling the Environment::GetCurrent() that
takes a v8::Isolate* as an argument because it creates a handle with
the call to v8::Isolate::CurrentContext().

10 years agonode: add HandleScope to prevent memory leak
Trevor Norris [Mon, 11 Nov 2013 19:24:31 +0000 (11:24 -0800)]
node: add HandleScope to prevent memory leak

MakeCallback can only be called from a valid v8::HandleScope.

Fixed #6487

10 years agov8: upgrade to 3.22.24
Ben Noordhuis [Sun, 10 Nov 2013 01:02:27 +0000 (02:02 +0100)]
v8: upgrade to 3.22.24

This commit removes the simple/test-event-emitter-memory-leak test for
being unreliable with the new garbage collector: the memory pressure
exerted by the test case is too low for the garbage collector to kick
in.  It can be made to work again by limiting the heap size with the
--max_old_space_size=x flag but that won't be very reliable across
platforms and architectures.

10 years agogyp: update to bebdcea
Timothy J Fontaine [Sun, 10 Nov 2013 23:15:34 +0000 (15:15 -0800)]
gyp: update to bebdcea

10 years agocrypto: update root certificates
Ben Noordhuis [Sat, 9 Nov 2013 22:46:05 +0000 (23:46 +0100)]
crypto: update root certificates

Update the list of root certificates in src/node_root_certs.h with
tools/mk-ca-bundle.pl and update src/node_crypto.cc to make use of
the new format.

Fixes #6013.

10 years agotools: check in certdata.txt from mozilla NSS
Ben Noordhuis [Sat, 9 Nov 2013 22:32:12 +0000 (23:32 +0100)]
tools: check in certdata.txt from mozilla NSS

This is a file from the NSS project containing root certificate data.
It can be downloaded from:

  https://mxr.mozilla.org/mozilla/source/security/nss/lib/ckfw/builtins/certdata.txt?raw=1

Once downloaded, running `perl tools/mk-ca-bundle.pl` will update
src/node_root_certs.h.  Commit, rebuild and go.

10 years agotools: customize mk-ca-bundle.pl
Ben Noordhuis [Sat, 9 Nov 2013 22:31:54 +0000 (23:31 +0100)]
tools: customize mk-ca-bundle.pl

Remove unneeded functionality and tweak the generated output so we
can #include it in C++ source code.

10 years agotools: bundle mk-ca-bundle.pl from upstream curl
Ben Noordhuis [Sat, 9 Nov 2013 22:01:26 +0000 (23:01 +0100)]
tools: bundle mk-ca-bundle.pl from upstream curl

10 years agov8: unbreak `make native` build
Ben Noordhuis [Sat, 9 Nov 2013 21:24:22 +0000 (22:24 +0100)]
v8: unbreak `make native` build

The security fix from commit 6b92a713 also back-ported the test case.
Said test case relies on API that is only available in newer versions
of V8 and, as a result, broke the `make native` and `make <arch.mode>`
builds.  This commit reverts that part of the back-port.  Fixes the
following build error:

  ../test/cctest/test-api.cc: In function ‘void TestRegress260106()’:
  ../test/cctest/test-api.cc:17712:34: error: ‘class v8::Context’ has
  no member named ‘GetIsolate’

10 years agotls: prevent stalls by using read(0)
Fedor Indutny [Thu, 7 Nov 2013 21:22:02 +0000 (01:22 +0400)]
tls: prevent stalls by using read(0)

Do not `.push()` the same data as just passed to `.ondata()`, it
may be read by 'data' event listeners.

fix #6277