Node.js 6.0 Supports 93% of ES2015
Node.js 6.0 has been released, becoming the new current version. It comes with performance improvements, better test and documentation coverage, better security and wide support for ES2015.
Node.js 6.0 comes on the heels of 5.0 which was released 6 months ago, but it is actually the replacement for Node.js 4.x, being scheduled to become the next Long Term Support (LTS) version in October. Node.js 6.0 is the Current release and includes “significant improvements in performance, reliability, usability and security,” according to James Snell, Technical Lead on Node.js at IBM. Those looking for stability in production are recommended by Snell to stay with Node.js 4.x until October. Node.js v4.x will remain an Active LTS version until April 2017, becoming Maintenance LTS after that. For more details on how the Node Foundation tags their releases we recommend the notes from Node.js Long-term Support Working Group. Node.js 5.0 was an intermediary release for the brave ones willing to experiment.
Among new features or improvements in Node.js 6.0, we remark:
- Module loading is 4 times faster compared to Node.js 4.x, according to Snell. This means applications start up considerably faster.
- Better test coverage
- Richer documentation
- Improved Buffer and File System APIs
One of the major improvements in Node.js 6.0 is the use of V8 5.0, providing support for 93% of ES2015. According to this Kangax compatibility table, the nightly build supports even 96% of ES2015, including destructuring, rest parameters, class and super keywords. Not yet covered are direct and mutual recursion, iterator closing, and a few others. Some are ready but require the use of the –harmony flag.
In terms of security improvements, the Node.js Foundation mentioned in their announcement:
The new Buffer API will reduce the risk of bugs and vulnerabilities leaking into applications through a new constructor method used to create Buffer instances, as well as a zero-fill-buffers command-line flag. Using the new command line flag, developers can continue to safely use older modules that have not been updated to use the new constructor API. In addition, V8 has improved their implementation of Math.random() to be more secure — this feature is added into Node.js v6.
Another notable change is that Windows XP and Vista are no longer supported. Also, all add-ons need to be recompiled because Node.js 6.0 is using V8 5.0. For the complete list of changes we recommend reading Snell’s post.