* Upgrade V8 to 22.214.171.124 * Upgrade OpenSSL to 1.0.0f * Upgrade npm to 1.1.18 * Show licenses in Binary installers * Domains (isaacs) * readline: rename "end" to "close" (Nathan Rajlich) * tcp: make getsockname() return address family as string (Shigeki Ohtsu) * http, https: fix .setTimeout() (ssuda) * os: add cross platform EOL character (Mustansir Golawala) * typed arrays: unexport SizeOfArrayElementForType() (Aaron Jacobs) * net: honor 'enable' flag in .setNoDelay() (Ben Noordhuis) * child_process: emit error when .kill fails (Andreas Madsen) * gyp: fix 'argument list too long' build error (Ben Noordhuis) * fs.WriteStream: Handle modifications to fs.open (isaacs) * repl, readline: Handle newlines better (Nathan Rajlich, Nathan Friedly) * build: target OSX 10.5 when building on darwin (Nathan Rajlich) * Fix #3052 Handle errors properly in zlib (isaacs) * build: add support for DTrace and postmortem (Dave Pacheco) * core: add reusable Slab allocator (Ben Noordhuis)
This is a squashed commit of the main work done on the domains-wip branch. The original commit messages are preserved for posterity: * Implicitly add EventEmitters to active domain * Implicitly add timers to active domain * domain: add members, remove ctor cb * Don't hijack bound callbacks for Domain error events * Add dispose method * Add domain.remove(ee) method * A test of multiple domains in process at once * Put the active domain on the process object * Only intercept error arg if explicitly requested * Typo * Don't auto-add new domains to the current domain While an automatic parent/child relationship is sort of neat, and leads to some nice error-bubbling characteristics, it also results in keeping a reference to every EE and timer created, unless domains are explicitly disposed of. * Explicitly adding one domain to another is still fine, of course. * Don't allow circular domain->domain memberships * Disposing of a domain removes it from its parent * Domain disposal turns functions into no-ops * More documentation of domains * More thorough dispose() semantics * An example using domains in an HTTP server * Don't handle errors on a disposed domain * Need to push, even if the same domain is entered multiple times * Array.push is too slow for the EE Ctor * lint domain * domain: docs * Also call abort and destroySoon to clean up event emitters * domain: Wrap destroy methods in a try/catch * Attach tick callbacks to active domain * domain: Only implicitly bind timers, not explicitly * domain: Don't fire timers when disposed. * domain: Simplify naming so that MakeCallback works on Timers * Add setInterval and nextTick to domain test * domain: Make stack private
This fixes the failing REPL tests.
The idea here is to reduce the number of times that `setRawMode()` is called on the `input` stream, since it is expensive, and simply pause()/resume() should not call it. So now `setRawMode()` only gets called at the beginning of the Interface instance, and then when `Interface#close()` is called. Test case included.