Node v4.2.0 (LTS)

We are proud to announce the release of Node.js v4.2.0 "Argon", the first release covered under the new Long Term Support plan!

As an LTS release, support for v4.x will continue for a period of 30 months from today. This means that individuals and businesses building on Node.js will have a stable and supported platform on which to grow. For more details on what LTS means for Node.js, see Rod Vagg's blog post.

To better differentiate LTS releases from regular Node.js releases, we have introduced a naming convention based on the Periodic Table of Elements that applies only to LTS releases. The name selected for v4.2.0 is "Argon", so as to be in alphabetical order by the first letter.

Developers can easily determine if they are working with an LTS version of Node.js by checking the process.release.lts property within node. This property will be undefined in regular releases.

$ node -v v4.2.0 $ node -pe process.release.lts Argon

Notable changes

The first Node.js LTS release! See https://github.com/nodejs/LTS/ for details of the LTS process.

icu : Updated to version 56 with significant performance improvements (Steven R. Loomis) #3281

: Updated to version 56 with significant performance improvements (Steven R. Loomis) #3281 node : Added new -c (or --check ) command line argument for checking script syntax without executing the code (Dave Eddy) #2411 Added process.versions.icu to hold the current ICU library version (Evan Lucas) #3102 Added process.release.lts to hold the current LTS codename when the binary is from an active LTS release line (Rod Vagg) #3212

: npm: Upgraded to npm 2.14.7 from 2.14.4, see release notes for full details (Kat Marchán) #3299

Known issues

See https://github.com/nodejs/node/labels/confirmed-bug for complete and current list of known issues.

Some problems with unreferenced timers running during beforeExit are still to be resolved. See #1264.

are still to be resolved. See #1264. Surrogate pair in REPL can freeze terminal. #690

Calling dns.setServers() while a DNS query is in progress can cause the process to crash on a failed assertion. #894

while a DNS query is in progress can cause the process to crash on a failed assertion. #894 url.resolve may transfer the auth portion of the url when resolving between two full hosts, see #1435.

Commits

[ 8383c4fe00 ] - assert : support arrow functions in .throws() (Ben Noordhuis) #3276

] - : support arrow functions in .throws() (Ben Noordhuis) #3276 [ 3eaa593a32 ] - async_wrap : correctly pass parent to init callback (Trevor Norris) #3216

] - : correctly pass parent to init callback (Trevor Norris) #3216 [ 54795620f6 ] - buffer : don't abort on prototype getters (Trevor Norris) #3302

] - : don't abort on prototype getters (Trevor Norris) #3302 [ 660f7591c8 ] - buffer : FreeCallback should be tied to ArrayBuffer (Fedor Indutny) #3198

] - : FreeCallback should be tied to ArrayBuffer (Fedor Indutny) #3198 [ 651a5b51eb ] - buffer : only check if instance is Uint8Array (Trevor Norris) #3080

] - : only check if instance is Uint8Array (Trevor Norris) #3080 [ d5a1b1ad7c ] - buffer : clean up usage of __proto__ (Trevor Norris) #3080

] - : clean up usage of __proto__ (Trevor Norris) #3080 [ af24376e18 ] - build : Intl: deps: bump ICU to 56.1 (GA) (Steven R. Loomis) #3281

] - : Intl: deps: bump ICU to 56.1 (GA) (Steven R. Loomis) #3281 [ 9136359d57 ] - build : make icu download path customizable (Johan Bergström) #3200

] - : make icu download path customizable (Johan Bergström) #3200 [ b3c5ad10a8 ] - build : add --with-arm-fpu option (Jérémy Lal) #3228

] - : add --with-arm-fpu option (Jérémy Lal) #3228 [ f00f3268e4 ] - build : intl: avoid 'duplicate main()' on ICU 56 (Steven R. Loomis) #3066

] - : intl: avoid 'duplicate main()' on ICU 56 (Steven R. Loomis) #3066 [ 071c72a6a3 ] - deps : upgrade to npm 2.14.7 (Kat Marchán) #3299

] - : upgrade to npm 2.14.7 (Kat Marchán) #3299 [ 8b50e95f06 ] - (SEMVER-MINOR) deps : backport 1ee712a from V8 upstream (Julien Gilli) #3036

] - : backport 1ee712a from V8 upstream (Julien Gilli) #3036 [ 747271372f ] - doc : update the assert module summary (David Boivin) #2799

] - : update the assert module summary (David Boivin) #2799 [ 0d506556b0 ] - doc : replace node-gyp link with nodejs/node-gyp (Roman Klauke) #3320

] - : replace node-gyp link with nodejs/node-gyp (Roman Klauke) #3320 [ 40a159e4f4 ] - doc : Amend capitalization of word JavaScript (Dave Hodder) #3285

] - : Amend capitalization of word JavaScript (Dave Hodder) #3285 [ 6dd34761fd ] - doc : add method links in dns.markdown (Alejandro Oviedo) #3196

] - : add method links in dns.markdown (Alejandro Oviedo) #3196 [ 333e8336be ] - doc : add method links in child_process.markdown (Alejandro Oviedo) #3186

] - : add method links in child_process.markdown (Alejandro Oviedo) #3186 [ 0cfc6d39ca ] - doc : recommend Infinity on emitter.setMaxListeners (Jason Karns) #2559

] - : recommend Infinity on emitter.setMaxListeners (Jason Karns) #2559 [ d4fc6d93ef ] - doc : add help repo link to CONTRIBUTING.md (Doug Shamoo) #3233

] - : add help repo link to CONTRIBUTING.md (Doug Shamoo) #3233 [ 28aac7f19d ] - doc : add TLS session resumption example (Roman Reiss) #3147

] - : add TLS session resumption example (Roman Reiss) #3147 [ 365cf22cce ] - doc : update AUTHORS list (Rod Vagg) #3211

] - : update AUTHORS list (Rod Vagg) #3211 [ d4399613b7 ] - doc : standardize references to userland (Martial) #3192

] - : standardize references to userland (Martial) #3192 [ 75de258376 ] - doc : fix spelling in Buffer documentation (Rod Machen) #3226

] - : fix spelling in Buffer documentation (Rod Machen) #3226 [ 725c7276dd ] - doc : fix README.md link to joyent/node intl wiki (Steven R. Loomis) #3067

] - : fix README.md link to joyent/node intl wiki (Steven R. Loomis) #3067 [ 4a35ba4966 ] - (SEMVER-MINOR) fs : include filename in watch errors (charlierudolph) #2748

] - : include filename in watch errors (charlierudolph) #2748 [ 2ddbbfd164 ] - http : cork/uncork before flushing pipelined res (Fedor Indutny) #3172

] - : cork/uncork before flushing pipelined res (Fedor Indutny) #3172 [ f638402e2f ] - http : add comment about outputSize in res/server (Fedor Indutny) #3128

] - : add comment about in res/server (Fedor Indutny) #3128 [ 1850879b0e ] - js_stream : prevent abort if isalive doesn't exist (Trevor Norris) #3282

] - : prevent abort if isalive doesn't exist (Trevor Norris) #3282 [ 63644dd1cd ] - lib : remove redundant code, add tests in timers.js (Rich Trott) #3143

] - : remove redundant code, add tests in timers.js (Rich Trott) #3143 [ 74f443583c ] - module : use UNC paths when loading native addons (Justin Chase) #2965

] - : use UNC paths when loading native addons (Justin Chase) #2965 [ 01cb3fc36b ] - net : don't throw on bytesWritten access (Trevor Norris) #3305

] - : don't throw on bytesWritten access (Trevor Norris) #3305 [ 9d65528b01 ] - (SEMVER-MINOR) node : add -c|--check CLI arg to syntax check script (Dave Eddy) #2411

] - : add -c|--check CLI arg to syntax check script (Dave Eddy) #2411 [ 42b936e78d ] - (SEMVER-MINOR) src : add process.release.lts property (Rod Vagg) #3212

] - : add process.release.lts property (Rod Vagg) #3212 [ 589287b2e3 ] - src : convert BE-utf16-string to LE before search (Karl Skomski) #3295

] - : convert BE-utf16-string to LE before search (Karl Skomski) #3295 [ 2314378f06 ] - src : fix u-a-free if uv returns err in ASYNC_CALL (Karl Skomski) #3049

] - : fix u-a-free if uv returns err in ASYNC_CALL (Karl Skomski) #3049 [ d99336a391 ] - (SEMVER-MINOR) src : replace naive search in Buffer::IndexOf (Karl Skomski) #2539

] - : replace naive search in Buffer::IndexOf (Karl Skomski) #2539 [ 546e8333ba ] - (SEMVER-MINOR) src : fix --abort-on-uncaught-exception (Jeremy Whitlock) #3036

] - : fix --abort-on-uncaught-exception (Jeremy Whitlock) #3036 [ 7271cb047c ] - (SEMVER-MINOR) src : add process.versions.icu (Evan Lucas) #3102

] - : add process.versions.icu (Evan Lucas) #3102 [ 7b9f78acb2 ] - stream : avoid pause with unpipe in buffered write (Brian White) #2325

] - : avoid pause with unpipe in buffered write (Brian White) #2325 [ f0f8afd879 ] - test : remove common.inspect() (Rich Trott) #3257

] - : remove common.inspect() (Rich Trott) #3257 [ 5ca4f6f8bd ] - test : test util rather than common (Rich Trott) #3256

] - : test rather than (Rich Trott) #3256 [ 7a5ae34345 ] - test : refresh temp directory when using pipe (Rich Trott) #3231

] - : refresh temp directory when using pipe (Rich Trott) #3231 [ 7c85557ef0 ] - test : Fix test-fs-read-stream-fd-leak race cond (Junliang Yan) #3218

] - : Fix test-fs-read-stream-fd-leak race cond (Junliang Yan) #3218 [ 26a7ec6960 ] - test : fix losing original env vars issue (Junliang Yan) #3190

] - : fix losing original env vars issue (Junliang Yan) #3190 [ e922716192 ] - test : remove deprecated error logging (Rich Trott) #3079

] - : remove deprecated error logging (Rich Trott) #3079 [ 8f29d95a8c ] - test : report timeout in TapReporter (Karl Skomski) #2647

] - : report timeout in TapReporter (Karl Skomski) #2647 [ 2d0fe4c657 ] - test : linting for buffer-free-callback test (Rich Trott) #3230

] - : linting for buffer-free-callback test (Rich Trott) #3230 [ 70c9e4337e ] - test : make common.js mandatory via linting rule (Rich Trott) #3157

] - : make common.js mandatory via linting rule (Rich Trott) #3157 [ b7179562aa ] - test : load common.js in all tests (Rich Trott) #3157

] - : load common.js in all tests (Rich Trott) #3157 [ bab555a1c1 ] - test : speed up stringbytes-external test (Evan Lucas) #3005

] - : speed up stringbytes-external test (Evan Lucas) #3005 [ ddf258376d ] - test : use normalize() for unicode paths (Roman Reiss) #3007

] - : use normalize() for unicode paths (Roman Reiss) #3007 [ 46876d519c ] - test : remove arguments.callee usage (Roman Reiss) #3167

] - : remove arguments.callee usage (Roman Reiss) #3167 [ af10df6108 ] - tls : use parent handle's close callback (Fedor Indutny) #2991

] - : use parent handle's close callback (Fedor Indutny) #2991 [ 9c2748bad1 ] - tools : remove leftover license boilerplate (Nathan Rajlich) #3225

] - : remove leftover license boilerplate (Nathan Rajlich) #3225 [ 5d9f83ff2a ] - tools : apply linting to custom rules code (Rich Trott) #3195

] - : apply linting to custom rules code (Rich Trott) #3195 [ 18a8b2ec73 ] - tools : remove unused gflags module (Ben Noordhuis) #3220

] - : remove unused gflags module (Ben Noordhuis) #3220 [ e0fffca836 ] - util : fix for inspecting promises (Evan Lucas) #3221

] - : fix for inspecting promises (Evan Lucas) #3221 [ 8dfdee3733 ] - util : correctly inspect Map/Set Iterators (Evan Lucas) #3119

] - : correctly inspect Map/Set Iterators (Evan Lucas) #3119 [ b5c51fdba0 ] - util: fix check for Array constructor (Evan Lucas) #3119

Windows 32-bit Installer: https://nodejs.org/dist/v4.2.0/node-v4.2.0-x86.msi

Windows 64-bit Installer: https://nodejs.org/dist/v4.2.0/node-v4.2.0-x64.msi

Windows 32-bit Binary: https://nodejs.org/dist/v4.2.0/win-x86/node.exe

Windows 64-bit Binary: https://nodejs.org/dist/v4.2.0/win-x64/node.exe

Mac OS X 64-bit Installer: https://nodejs.org/dist/v4.2.0/node-v4.2.0.pkg

Mac OS X 64-bit Binary: https://nodejs.org/dist/v4.2.0/node-v4.2.0-darwin-x64.tar.gz

Linux 32-bit Binary: https://nodejs.org/dist/v4.2.0/node-v4.2.0-linux-x86.tar.gz

Linux 64-bit Binary: https://nodejs.org/dist/v4.2.0/node-v4.2.0-linux-x64.tar.gz

SmartOS 32-bit Binary: https://nodejs.org/dist/v4.2.0/node-v4.2.0-sunos-x86.tar.gz

SmartOS 64-bit Binary: https://nodejs.org/dist/v4.2.0/node-v4.2.0-sunos-x64.tar.gz

ARMv6 32-bit Binary: Coming soon

ARMv7 32-bit Binary: https://nodejs.org/dist/v4.2.0/node-v4.2.0-linux-armv7l.tar.gz

ARMv8 64-bit Binary: https://nodejs.org/dist/v4.2.0/node-v4.2.0-linux-arm64.tar.gz

Source Code: https://nodejs.org/dist/v4.2.0/node-v4.2.0.tar.gz

Other release files: https://nodejs.org/dist/v4.2.0/

Documentation: https://nodejs.org/docs/v4.2.0/api/

Shasums (GPG signing hash: SHA512, file hash: SHA256):