Node.js’ collaborators and the Node.js Foundation’s members have teamed up to publicly release Node v4.0.0. Untold hours of striving have produced a result that features the Node.js project and the io.js project in just one codebase. Though 44 collaborators now run Node.js, altogether, there are more than 100 folks who have contributed code to core since v0.12.7.
Get the download here.
The features
Primarily, there’s a slew of new ES6 features enabled by default. These include block scoping, generators, typed arrays, classes, Promises, Symbols, collections, arrow functions, and template strings.
Interestingly, Node.js v4.0.0 carries V8 v4.5, which is the same version that’s shipping right now with the Chrome web browser.
Future plans
Developers can expect both plans for a consistent release cycle and long-term support. Since release versioning currently takes after SemVer, you can expect progressions of minor and patch versions in the next few weeks, as features are added and bugs get fixed. No breaking changes will be added within the v4.x branch.
Every six months, users can also expect a new Stable line of releases, once in April and once in October. As development marches on, Stable lines will include regular releases; be on the lookout for minor and patch version bumps no longer than every fortnight. Each second Stable release line is going to exist in LTS form when October rolls around.
Noteworthy changes
These significant changes refer to the latest io.js v3.x branch release, which is v3.3.0. Here’s the complete rundown:
- child_process: ChildProcess.prototype.send () and process.send () work asynchronously over all platforms. That’s why an optional callback parameter has been included after the message is sent.
- node: Rename “io.js” code to “Node.js.”
- node-gyp: This release combines the updated version of node-gyp that functions with every version of Node.js and io.js, which includes nightly and release candidate builds. Moving forward from io.js v3 and Node.js v4, it’s only going to download a headers tarball when creating addons instead of the whole source.
- npm: This includes an upgrade to version 2.14.2 from 2.13.3, plus a security update.
- timers: There is better timer performance due to the 0.12 implementation porting and some minor fixes.
- util: The util.is* () functions were deprecated, starting with depreciation warnings within the documentation, just for this release. The users are therefore told to find more robust alternatives within the npm registry.
- v8: Upgrade to version 4.5.103.30 from 4.4.63.30. This includes:
- Implementation of new TypedArray prototype methods: copyWithin (), fill (), every (), find (), filter (), forEach (), findIndex (), join (), indexOf (), reduce (), map (), reverse (), reduceRight (), some (), sort () and slice ().
- Implementation of new TypedArray.form () and TypedArray.of () functions.
- Implementation of arrow functions.
Known issues
While this is the complete list of known bugs, the following stand out:
- Some uses of computed object shorthand properties aren’t properly managed by the current V8.eg.
- Certain problems with unreferenced timers running during beforeExit must still be fixed.
- The surrogate pair in REPL is capable of freezing terminal.
- Calling dns.setServers () as a DNS query is underway can make said process crash on a failed assertion.
- url.resolve might transfer the url’s auth portion when resolving between two, full hosts.