V8: Upgrade to 3.13.7.4
V8: Reapply patches
Merge remote-tracking branch 'ry/v0.8'

Conflicts:
	deps/v8/src/arm/code-stubs-arm.cc
	deps/v8/src/version.cc
repl: call resume() after setRawMode()

Solves #4178, but does not fix the underlying issue
test: fix pummel/test-crypto-dh, pummel/test-dh-regr

Forgotten in the switch to buffers as the default output in 3570f20.

Fixes #4188.
V8 build: 'echo -n' considered harmful
2012.10.24, Version 0.9.3 (Unstable)

* V8: Upgrade to 3.13.7.4

* crypto: Default to buffers instead of binary strings (isaacs, Fedor Indutny)

* crypto: add getHashes() and getCiphers() (Ben Noordhuis)

* unix: add custom thread pool, remove libeio (Ben Noordhuis)

* util: make `inspect()` accept an "options" argument (Nathan Rajlich)

* https: fix renegotation attack protection (Ben Noordhuis)

* cluster: make 'listening' handler see actual port (Aaditya Bhatia)

* windows: use USERPROFILE to get the user's home dir (Bert Belder)

* path: add platform specific path delimiter (Paul Serby)

* http: add response.headersSent property (Pavel Lang)

* child_process: make .fork()'d child auto-exit (Ben Noordhuis)

* events: add 'removeListener' event (Ben Noordhuis)

* string_decoder: Add 'end' method, do base64 properly (isaacs)

* buffer: include encoding value in exception when invalid (Ricky Ng-Adam)

* http: make http.ServerResponse no longer emit 'end' (isaacs)

* streams: fix pipe is destructed by 'end' from destination (koichik)
Merge branch 'v0.9.3-release'
Now working on v0.9.4
v8: don't show performance warnings when compiling with msvc

Patch sent upstream: http://codereview.chromium.org/10829109/
Merge remote-tracking branch 'origin/v0.8'

Conflicts:
	configure
	deps/v8/build/common.gypi
windows: correct outputs list in "node_etw" gyp target

The gyp target node_etw didn't list its output dependencies. This
was causing virgin builds to fail with a "failed to open file for
write" error.

With this corrected outputs list, gyp reliably pre-creates
required output directories.
Print warning when maxTickDepth is reached
zlib: reduce memory consumption, release early

In zlibBuffer(), don't wait for the garbage collector to reclaim the zlib memory
but release it manually. Reduces memory consumption by a factor of 10 or more
with some workloads.

Test case:

  function f() {
    require('zlib').deflate('xxx', g);
  }
  function g() {
    setTimeout(f, 5);
  }
  f();

Observe RSS memory usage with and without this commit. After 10,000 iterations,
RSS stabilizes at ~35 MB with this commit. Without, RSS is over 300 MB and keeps
growing.

Cause: whenever the JS object heap hits the high-water mark, the V8 GC sweeps
it clean, then tries to grow it in order to avoid more sweeps in the near
future. Rule of thumb: the bigger the JS heap, the lazier the GC can be.

A side effect of a bigger heap is that objects now live longer. This is harmless
in general but it affects zlib context objects because those are tied to large
buffers that live outside the JS heap, on the order of 16K per context object.

Ergo, don't wait for the GC to reclaim the memory - it may take a long time.

Fixes #4172.
zlib: pass object size hint to V8

Inform V8 that the zlib context object is tied to a large off-heap buffer.

This makes the GC run more often (in theory) and improves the accuracy of
--trace_external_memory.
tls: delete useless removeListener call

onclose was never attached to 'end' so this call to remove this listener
is useless.  Delete it.
url: make url.format escape delimiters in path and query

`url.format` should escape ? and # chars in pathname, and # chars in
search, because they change the semantics of the operation otherwise.
Don't escape % chars, or anything else. (see: #4082)
build: let gyp choose msvs version
zlib: s/clear/close/ and match other close() semantics
test: Use setImmediate for recursive deferral

This should have been with 21c741f, but didn't catch it then.
Taking our own advice.