v8: Relax requirement from VFP3 to VFP2 where possible.

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
v8: Replace VFP by VFP2 in common.gypi

This fixes an omission in cl 10818026.
Patch by Nathan Rajlich.

Review URL: http://codereview.chromium.org/10913256
fs: don't segfault on deeply recursive stat()

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.
fs: fix assert in fs.watch()

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.
process: fix setuid() and setgid() error reporting

Zero errno before calling getgrnam_r() or getpwnam_r(). If errno had previously
been clobbered, node would report the wrong error.
doc: fix three typos
fs: fix watchFile() missing deletion events

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.
blog: Post for 0.9.2
domain: Properly exit() on domain disposal

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()`.
v8: loosen artificial mmap constraint

Fixes #4010.
test: add common.mustCall function

Verifies that the callback gets invoked <n> times during the lifetime of the
test script.
events: add 'removeListener' event
events: speed up newListener/removeListener events
events: speed up .removeAllListeners()
child_process: make .fork()'d child auto-exit

A child process created with .fork() needed to call `process.exit()` explicitly
because the communication channel with the parent kept the event loop alive.

Fix that by only ref'ing the channel when there are 'message' event listeners.

Fixes #3799.
child_process: don't die when disconnect event exists
test: possible ipc.ref() regression
handle_wrap: don't abort if wrap == NULL

After a disconnect, the internal pointer of the parent/child channel is set to
NULL. That's not an error so don't abort().
v8: loosen artificial mmap constraint

Fixes #4010.
uv: upgrade to 39ca621