Node.js Changelog

New in version 0.12.3

May 15th, 2015
  • V8: update to 3.28.71.19
  • uv: upgrade to 1.5.0
  • npm: upgrade to 2.9.1
  • V8: don't busy loop in v8 cpu profiler thread (Mike Tunnicliffe)
  • V8: fix issue with let bindings in for loops (adamk)
  • debugger: don't spawn child process in remote mode (Jackson Tian)
  • net: do not set V4MAPPED on FreeBSD (Julien Gilli)
  • repl: make 'Unexpected token' errors recoverable (Julien Gilli)
  • src: backport ignore ENOTCONN on shutdown race (Ben Noordhuis)
  • src: fix backport of SIGINT crash fix on FreeBSD (Julien Gilli)

New in version 0.12.2 (April 4th, 2015)

  • uv: Upgrade to 1.4.2
  • npm: Upgrade to 2.7.4
  • V8: Fix --max_old_space_size=4096 integer overflow (Andrei Sedoi)
  • asyncwrap: fix constructor condition for early ret (Trevor Norris)
  • buffer: align chunks on 8-byte boundary (Fedor Indutny)
  • buffer: fix pool offset adjustment (Trevor Norris)
  • console: allow Object.prototype fields as labels (Colin Ihrig)
  • fs: make F_OK/R_OK/W_OK/X_OK not writable (Jackson Tian)
  • fs: properly handle fd passed to truncate() (Bruno Jouhier)
  • http: fix assert on data/end after socket error (Fedor Indutny)
  • lib: fix max size check in Buffer constructor (Ben Noordhuis)
  • lib: fix stdio/ipc sync i/o regression (Ben Noordhuis)
  • module: replace NativeModule.require (Herbert Vojčík)
  • net: allow port 0 in connect() (cjihrig)
  • net: unref timer in parent sockets (Fedor Indutny)
  • path: refactor for performance and consistency (Nathan Woltman)
  • smalloc: extend user API (Trevor Norris)
  • src: fix for SIGINT crash on FreeBSD (Fedor Indutny)
  • src: fix builtin modules failing with --use-strict (Julien Gilli)
  • watchdog: fix timeout for early polling return (Saúl Ibarra Corretgé)

New in version 0.12.1 (March 28th, 2015)

  • openssl: upgrade to 1.0.1m (Addressing multiple CVES)

New in version 0.12.0 (February 7th, 2015)

  • Streams 3:
  • The Streams implementation now works the way you thought it already should, without introducing any changes to the API. Basically this means no more getting stuck in "old mode", there are only streams that are flowing or not.
  • Streams now support the use of cork and uncork mechanisms to prevent flushing writes out to the system if an application is going to be performing many writes in a row. There is an implicit uncork performed when you end a writable stream.
  • HTTP:
  • maxSockets are no longer limited to 5. The default is now set to Infinity with the developer and the operating system given control over how many simultaneous connections an application can keep open to a given host.
  • Proper KeepAlive support means that sockets will stay open until they timeout at the configured time, are closed by the remote side, or the process exits. Developer's no longer have to make sure requests have been pipelined to keep the socket open, or use an alternative module to get that support.
  • Developers can also now explicitly flushHeaders to ensure time to first byte is low and proxied connections are held open.
  • Cluster:
  • Now has two modes of operation, the new default is a round robin distribution mechanism where the master accepts new connections and distributes them to your workers. If you want you can still opt back into the old method where your workers are responsible for acception connections.
  • TLS
  • We have the new TLSWrap mechanism under the hood, this eliminates quite a few of the hops back and forth between JavaScript and our C++ implementations.
  • Added APIs for asynchronous SNI callbacks, OCSP stapling, and storage events.
  • Buffer:
  • We use a more accurate mechanism for allocating memory for buffers now, which means you'll see less overhead and impact from holding onto to small slices of Buffers. This reduces the amount of memory pressure on the system, which means GC runs are quicker, which means Node.js is on CPU less, and thus lower latency for your applications.
  • child_process:
  • spawnSync/execSync have been added to facilitate synchronous child processes, warning your node process won't make forward progress while waiting for the child to exit, caveat emptor!
  • Crypto:
  • Added APIs for loading custom engines for use with compiled in OpenSSL.
  • More APIs support supplying the pass phrases.
  • Added APIs for RSA public/private key encryption/decryption.
  • VM:
  • The module is now based on the Contextify module, which shares values from the sandbox to avoid missing changes inside the execution from appearing in the parent context.
  • Initial support for ECMAScript Internationalization API 1.0 (ECMA-402):
  • By default, Node.js v0.12.0 binaries are shipped with ECMA-402 support, but only for the English language. In other words, the ECMA-402 API is working as you would expect, but only data for the English language is included.

New in version 0.10.36 (January 27th, 2015)

  • openssl: update to 1.0.1l
  • v8: Fix debugger and strict mode regression (Julien Gilli)
  • v8: don't busy loop in cpu profiler thread (Ben Noordhuis)

New in version 0.10.35 (December 24th, 2014)

  • tls: re-add 1024-bit SSL certs removed by f9456a2 (Chris Dickinson)
  • timers: don't close interval timers when unrefd (Julien Gilli)
  • timers: don't mutate unref list while iterating it (Julien Gilli)

New in version 0.10.34 (December 18th, 2014)

  • uv: update to v0.10.30
  • zlib: upgrade to v1.2.8
  • child_process: check execFile args is an array (Sam Roberts)
  • child_process: check fork args is an array (Sam Roberts)
  • crypto: update root certificates (Ben Noordhuis)
  • domains: fix issues with abort on uncaught (Julien Gilli)
  • timers: Avoid linear scan in _unrefActive. (Julien Gilli)
  • timers: fix unref() memory leak (Trevor Norris)
  • v8: add api for aborting on uncaught exception (Julien Gilli)
  • debugger: fix when using "use strict" (Julien Gilli)

New in version 0.10.33 (October 24th, 2014)

  • openssl: Update to 1.0.1j (Addressing multiple CVEs)
  • uv: Update to v0.10.29
  • child_process: properly support optional args (cjihrig)
  • crypto: Disable autonegotiation for SSLv2/3 by default (Fedor Indutny, Timothy J Fontaine, Alexis Campailla)

New in version 0.10.32 (September 17th, 2014)

  • npm: Update to 1.4.28
  • v8: fix a crash introduced by previous release (Fedor Indutny)
  • configure: add --openssl-no-asm flag (Fedor Indutny)
  • crypto: use domains for any callback-taking method (Chris Dickinson)
  • http: do not send 0rnrn in TE HEAD responses (Fedor Indutny)
  • querystring: fix unescape override (Tristan Berger)
  • url: Add support for RFC 3490 separators (Mathias Bynens)

New in version 0.10.26 (February 19th, 2014)

  • uv: Upgrade to v0.10.25 (Timothy J Fontaine)
  • npm: upgrade to 1.4.3 (isaacs)
  • v8: support compiling with VS2013 (Fedor Indutny)
  • cares: backport TXT parsing fix (Fedor Indutny)
  • crypto: throw on SignFinal failure (Fedor Indutny)
  • crypto: update root certificates (Ben Noordhuis)
  • debugger: Fix breakpoint not showing after restart (Farid Neshat)
  • fs: make unwatchFile() insensitive to path (iamdoron)
  • net: do not re-emit stream errors (Fedor Indutny)
  • net: make Socket destroy() re-entrance safe (Jun Ma)
  • net: reset endEmitted on reconnect (Fedor Indutny)
  • node: do not close stdio implicitly (Fedor Indutny)
  • zlib: avoid assertion in close (Fedor Indutny)

New in version 0.11.11 Beta (January 30th, 2014)

  • v8: Upgrade to 3.22.24.19
  • http_parser: Upgrade to 2.2.1
  • openssl: Upgrade to 1.0.1f
  • uv: Upgrade to 0.11.18
  • async-listener: revamp of subsystem (Trevor Norris)
  • node: do not ever close stdio (Fedor Indutny)
  • http: use writev on chunked encoding (Trevor Norris)
  • async_wrap/timers: remove Add/RemoveAsyncListener (Trevor Norris)
  • child_process: better error reporting for exec (Fedor Indutny)
  • crypto: add newline to cert and key if not present (Fedor Indutny)
  • crypto: clear error in GetPeerCertificate (Fedor Indutny)
  • crypto: honor default ciphers in client mode (Jacob Hoffman-Andrews)
  • crypto: introduce .setEngine(engine, [flags]) (Fedor Indutny)
  • crypto: support custom pbkdf2 digest methods (Ben Noordhuis)
  • domain: fix off-by-one in Domain.exit() (Ryan Graham)
  • http: concatenate duplicate headers by default (Alex Kocharin)
  • http: do not emit EOF non-readable socket (Fedor Indutny)
  • node: fix argument parsing with -p arg (Alexis Campailla)
  • path: improve POSIX path.join() performance (Jo Liss)
  • tls: emit clientError on early socket close (Fedor Indutny)
  • tls: introduce .setMaxSendFragment(size) (Fedor Indutny)
  • tls: make cert/pfx optional in tls.createServer() (Ben Noordhuis)
  • tls: process accumulated input (Fedor Indutny)
  • tls: show human-readable error messages (Ben Noordhuis)
  • util: handle escaped forward slashes correctly (Tom Gallacher)

New in version 0.10.25 (January 25th, 2014)

  • uv: Upgrade to v0.10.23
  • npm: Upgrade to v1.3.24
  • v8: Fix enumeration for objects with lots of properties
  • child_process: fix spawn() optional arguments (Sam Roberts)
  • cluster: report more errors to workers (Fedor Indutny)
  • domains: exit() only affects active domains (Ryan Graham)
  • src: OnFatalError handler must abort() (Timothy J Fontaine)
  • stream: writes may return false but forget to emit drain (Yang Tianyang)

New in version 0.11.10 Beta (January 3rd, 2014)

  • http_parser: update to 2.2
  • uv: Upgrade to v0.11.17
  • v8: Upgrade to 3.22.24.10
  • buffer: optimize writeInt* methods (Paul Loyd)
  • child_process: better error handling (Alexis Campailla)
  • cluster: do not synchronously emit 'setup' event (Sam Roberts)
  • cluster: restore backwards compatibility and various fixes (Sam Roberts)
  • crypto: remove unnecessary OpenSSL_add_all_digests (Yorkie)
  • crypto: support GCM authenticated encryption mode. (Ingmar Runge)
  • dns: add resolveSoa and 'SOA' rrtype (Tuğrul Topuz)
  • events: move EE c'tor guts to EventEmitter.init (Bert Belder)
  • http: DELETE shouldn't default to chunked encoding (Lalit Kapoor)
  • http: parse the status message in a http response. (Cam Swords)
  • node: fix removing AsyncListener in callback (Vladimir Kurchatkin)
  • node: follow specification, zero-fill ArrayBuffers (Trevor Norris)
  • openssl: use ASM optimized routines (Fedor Indutny)
  • process: allow nextTick infinite recursion (Trevor Norris)
  • querystring: remove name from stringify() (Yorkie)
  • timers: setImmediate v8 optimization fix (pflannery)
  • tls: add serialNumber to getPeerCertificate() (Ben Noordhuis)
  • tls: reintroduce socket.encrypted (Fedor Indutny)
  • tls: fix handling of asterisk in SNI context (Fedor Indutny)
  • util: Format negative zero as '-0' (David Chan)
  • vm: fix race condition in timeout (Alexis Campailla)
  • windows: fix dns lookup of localhost with ipv6 (Alexis Campailla)

New in version 0.10.24 (December 20th, 2013)

  • uv: Upgrade to v0.10.21
  • npm: upgrade to 1.3.21
  • v8: backport fix for CVE-2013-{6639|6640}
  • build: unix install node and dep library headers (Timothy J Fontaine)
  • cluster, v8: fix --logfile=%p.log (Ben Noordhuis)
  • module: only cache package main (Wyatt Preul)

New in version 0.10.23 (December 13th, 2013)

  • uv: Upgrade to v0.10.20 (Timothy J Fontaine)
  • npm: Upgrade to 1.3.17 (isaacs)
  • gyp: update to 78b26f7 (Timothy J Fontaine)
  • build: include postmortem symbols on linux (Timothy J Fontaine)
  • crypto: Make Decipher._flush() emit errors. (Kai Groner)
  • dgram: fix abort when getting fd of closed dgram (Fedor Indutny)
  • events: do not accept NaN in setMaxListeners (Fedor Indutny)
  • events: avoid calling once functions twice (Tim Wood)
  • events: fix TypeError in removeAllListeners (Jeremy Martin)
  • fs: report correct path when EEXIST (Fedor Indutny)
  • process: enforce allowed signals for kill (Sam Roberts)
  • tls: emit 'end' on .receivedShutdown (Fedor Indutny)
  • tls: fix potential data corruption (Fedor Indutny)
  • tls: handle ssl.start() errors appropriately (Fedor Indutny)
  • tls: reset NPN callbacks after SNI (Fedor Indutny)

New in version 0.11.9 Beta (November 23rd, 2013)

  • uv: upgrade to v0.11.15 (Timothy J Fontaine)
  • v8: upgrade to 3.22.24.5 (Timothy J Fontaine)
  • buffer: remove warning when no encoding is passed (Trevor Norris)
  • build: make v8 use random seed for hash tables (Ben Noordhuis)
  • crypto: build with shared openssl without NPN (Ben Noordhuis)
  • crypto: update root certificates (Ben Noordhuis)
  • debugger: pass on v8 debug switches (Ben Noordhuis)
  • domain: use AsyncListener API (Trevor Norris)
  • fs: add recursive subdirectory support to fs.watch (Nick Simmons)
  • fs: make fs.watch() non-recursive by default (Ben Noordhuis)
  • http: cleanup freeSockets when socket destroyed (fengmk2)
  • http: force socket encoding to be null (isaacs)
  • http: make DELETE requests set req.method (Nathan Rajlich)
  • node: add AsyncListener support (Trevor Norris)
  • src: remove global HandleScope that hid memory leaks (Ben Noordhuis)
  • tls: add ECDH ciphers support (Erik Dubbelboer)
  • tls: do not default to 'localhost' servername (Fedor Indutny)
  • tls: more accurate wrapping of connecting socket (Fedor Indutny)

New in version 0.10.22 (November 13th, 2013)

  • npm: Upgrade to 1.3.14
  • uv: Upgrade to v0.10.19
  • child_process: don't assert on stale file descriptor events (Fedor Indutny)
  • darwin: Fix "Not Responding" in Mavericks activity monitor (Fedor Indutny)
  • debugger: Fix bug in sb() with unnamed script (Maxim Bogushevich)
  • repl: do not insert duplicates into completions (Maciej Małecki)
  • src: Fix memory leak on closed handles (Timothy J Fontaine)
  • tls: prevent stalls by using read(0) (Fedor Indutny)
  • v8: use correct timezone information on Solaris (Maciej Małecki)

New in version 0.11.8 Beta (November 9th, 2013)

  • uv: Upgrade to v0.11.14
  • v8: upgrade 3.21.18.3
  • assert: indicate if exception message is generated (Glen Mailer)
  • buffer: add buf.toArrayBuffer() API (Trevor Norris)
  • cluster: fix premature 'disconnect' event (Ben Noordhuis)
  • crypto: add SPKAC support (Jason Gerfen)
  • debugger: count space for line numbers correctly (Alex Kocharin)
  • debugger: make busy loops SIGUSR1-interruptible (Ben Noordhuis)
  • debugger: repeat last command (Alex Kocharin)
  • debugger: show current line, fix for #6150 (Alex Kocharin)
  • dgram: send() can accept strings (Trevor Norris)
  • dns: rename domain to hostname (Ben Noordhuis)
  • dns: set hostname property on error object (Ben Noordhuis)
  • dtrace, mdb_v8: support more string, frame types (Dave Pacheco)
  • http: add statusMessage (Patrik Stutz)
  • http: expose supported methods (Ben Noordhuis)
  • http: provide backpressure for pipeline flood (isaacs)
  • process: Add exitCode property (isaacs)
  • tls: socket.renegotiate(options, callback) (Fedor Indutny)
  • util: format as Error if instanceof Error (Rod Vagg)

New in version 0.10.21 (October 22nd, 2013)

  • uv: Upgrade to v0.10.18
  • crypto: clear errors from verify failure (Timothy J Fontaine)
  • dtrace: interpret two byte strings (Dave Pacheco)
  • fs: fix fs.truncate() file content zeroing bug (Ben Noordhuis)
  • http: provide backpressure for pipeline flood (isaacs)
  • tls: fix premature connection termination (Ben Noordhuis)

New in version 0.10.20 (October 1st, 2013)

  • tls: fix sporadic hang and partial reads (Fedor Indutny)
  • fixes "npm ERR! cb() never called!"

New in version 0.10.17 (August 23rd, 2013)

  • uv: Upgrade v0.10.14
  • http_parser: Do not accept PUN/GEM methods as PUT/GET (Chris Dickinson)
  • tls: fix assertion when ssl is destroyed at read (Fedor Indutny)
  • stream: Throw on 'error' if listeners removed (isaacs)
  • dgram: fix assertion on bad send() arguments (Ben Noordhuis)
  • readline: pause stdin before turning off terminal raw mode (Daniel Chatfield)

New in version 0.10.12 (June 19th, 2013)

  • npm: Upgrade to 1.2.32
  • readline: make ctrl + L clear the screen (Yuan Chuan)
  • v8: add setVariableValue debugger command (Ben Noordhuis)
  • net: Do not destroy socket mid-write (isaacs)
  • v8: fix build for mips32r2 architecture (Andrei Sedoi)
  • configure: fix cross-compilation host_arch_cc() (Andrei Sedoi)

New in version 0.10.0 (March 12th, 2013)

  • Streams - Added base classes for Readable, Writable, Duplex, and Transform
  • Streaming interfaces for Crypto API
  • process: add getgroups(), setgroups(), initgroups()
  • crypto: getHashes() getCiphers()
  • http: add response.headersSent property
  • events: 'removeListener' event
  • setImmediate() and clearImmediate() functions
  • string_decoder: the decoder.end() function was added

New in version 0.8.16 (December 21st, 2012)

  • npm: Upgrade to 1.1.69.
  • fs: fix WriteStream/ReadStream fd leaks.
  • crypto: fix leak in GetPeerCertificate.
  • buffer: Don't double-negate numeric buffer arg.
  • net: More accurate IP address validation and IPv6 dotted notation.