* npm: Upgrade to v1.2.3 * V8: Upgrade to 18.104.22.168 * streams: Support objects other than Buffers (Jake Verbaten) * buffer: remove float write range checks (Trevor Norris) * http: close connection on 304/204 responses with chunked encoding (Ben Noordhuis) * build: fix build with dtrace support on FreeBSD (Fedor Indutny) * console: Support formatting options in trace() (isaacs) * domain: empty stack on all exceptions (Dave Olszewski) * unix, windows: make uv_*_bind() error codes consistent (Andrius Bentkus) * linux: add futimes() fallback (Ben Noordhuis)
We detect for non-string and non-buffer values in onread and turn the stream into an "objectMode" stream. If we are in "objectMode" mode then howMuchToRead will always return 1, state.length will always have 1 appended to it when there is a new item and fromList always takes the first value from the list. This means that for object streams, the n in read(n) is ignored and read() will always return a single value Fixed a bug with unpipe where the pipe would break because the flowing state was not reset to false. Fixed a bug with sync cb(null, null) in _read which would forget to end the readable stream
This is similar to commit 2cbf458 but this time for 204 No Content instead of 304 Not Modified responses. When the user sends a 204 response with a Transfer-Encoding: chunked header, suppress sending the zero chunk and force the connection to close.
Force the connection to close when the response is a 304 Not Modified and the user has set a "Transfer-Encoding: chunked" header. RFC 2616 mandates that 304 responses MUST NOT have a body but node.js used to send out a zero chunk anyway to accommodate clients that don't have special handling for 304 responses. It was pointed out that this might confuse reverse proxies to the point of creating security liabilities, so suppress the zero chunk and force the connection to close.
Every constant is certainly 4 bytes now, but freebsd's objdump utility prints out odd byte sequences (5-bytes, 6-bytes and even 9-bytes long) for v8's data section. We can safely ignore all upper bytes, because all constants that we're using are just `int`s. Since on all supported platforms `int` is 32bit long (and anyway v8's constants are 32bit too), we ignore all higher bits if they were read.
Due to the nature of asyncronous programming, it's impossible to know what will run on the next tick. Because of this, it's not correct to maintain domain stack state between ticks Since the _fatalException handler is only invoked after the stack is unwound, once it exits the tick will end. The only reasonable thing to do in that case is to exit *all* domains.
Conflicts: AUTHORS ChangeLog src/node_version.h test/simple/test-buffer.js
* npm: Upgrade to v1.2.2 * dns: make error message match errno (Dan Milon) * tls: follow RFC6125 more stricly (Fedor Indutny) * buffer: reject negative SlowBuffer offsets (Ben Noordhuis) * install: add simplejson fallback (Chris Dent) * http: fix "Cannot call method 'emit' of null" (Ben Noordhuis)
* V8: Upgrade to 22.214.171.124 * npm: Upgrade to 1.2.2 * punycode: Upgrade to 1.2.0 (Mathias Bynens) * repl: make built-in modules available by default (Felix Böhm) * windows: add support for '_Total' perf counters (Scott Blomquist) * cluster: make --prof work for workers (Ben Noordhuis) * child_process: do not keep list of sent sockets (Fedor Indutny) * tls: Follow RFC6125 more strictly (Fedor Indutny) * buffer: floating point read/write improvements (Trevor Norris) * TypedArrays: Improve dataview perf without endian param (Dean McNamee) * module: assert require() called with a non-empty string (Felix Böhm, James Campos) * stdio: Set readable/writable flags properly (isaacs) * stream: Properly handle large reads from push-streams (isaacs)