* npm: Upgrade to 1.1.62 * repl: make invalid RegExps throw in the REPL (Nathan Rajlich) * v8: loosen artificial mmap constraint (Bryan Cantrill) * process: fix setuid() and setgid() error reporting (Ben Noordhuis) * domain: Properly exit() on domain disposal (isaacs) * fs: fix watchFile() missing deletion events (Ben Noordhuis) * fs: fix assert in fs.watch() (Ben Noordhuis) * fs: don't segfault on deeply recursive stat() (Ben Noordhuis) * http: Remove timeout handler when data arrives (Frédéric Germain) * http: make the client "res" object gets the same domain as "req" (Nathan Rajlich) * windows: don't blow up when an invalid FD is used (Bert Belder) * unix: map EDQUOT to UV_ENOSPC (Charlie McConnell) * linux: improve /proc/cpuinfo parser (Ben Noordhuis) * win/tty: reset background brightness when color is set to default (Bert Belder) * unix: put child process stdio fds in blocking mode (Ben Noordhuis) * unix: fix EMFILE busy loop (Ben Noordhuis) * sunos: don't set TCP_KEEPALIVE (Ben Noordhuis) * tls: Use slab allocator for memory management (Fedor Indutny) * openssl: Use optimized assembly code for x86 and x64 (Bert Belder)
This addresses #4034. There are two problems happening: 1. The domain is not exited automatically when calling dispose() on it. Then, since the domain is disposed, attempting to exit it again will do nothing. 2. The active domain is stored on process.domain. Since thrown errors call `process.emit('uncaughtException', er)`, and the process is an event emitter with a `.domain` member, it re-enters the domain a second time before calling the error handler, pushing it onto the stack again. Thus, if the handler calls `domain.dispose()`, then the domain is now on the stack twice, and cannot be exited properly. Since the domain is disposed, any subsequent IO will be no-op'ed, since we've declared that this context is done and best forgotten. The solution here is twofold: 1. In EventEmitter.emit, do not enter the domain if `this===process`. 2. Automatically exit the domain when calling `domain.dispose()`.
Make sure the deletion event gets reported in the following scenario: 1. Watch a file. 2. The initial stat() goes okay. 3. Something deletes the watched file. 4. The second stat() fails with ENOENT. The second stat() translates into the first 'change' event but a logic error stopped it from getting emitted. Fixes #4027.
Zero errno before calling getgrnam_r() or getpwnam_r(). If errno had previously been clobbered, node would report the wrong error.
Fix the following error: FSEventWrap: Aborting due to unwrap failure at ../../src/fs_event_wrap.cc:169 It's possible and legal for a handle to be closed twice. HandleWrap::Close() deals with that by ignoring the second close. Now FSEventWrap::Close() does too. Fixes #3997.
Check that the calls to Integer::New() and Date::New() succeed and bail out if they don't. V8 returns an empty handle on stack overflow. Trying to set the empty handle as a property on an object results in a NULL pointer dereference in release builds and an assert in debug builds. Fixes #4015.
BUG= TEST= Review URL: https://chromiumcodereview.appspot.com/10818026 git-svn-id: https://v8.googlecode.com/svn/branches/bleeding_edge@12194 ce2b1a6d-e550-0410-aec6-3dcde31c8c00