Node.js support for => (arrow function)

Is Node.js supporting => function keyword alias already? If yes, starting from which version? How to enable this language extension?

(function() { console.log('it works!') })()

Becomes

(() => { console.log('it works!') })()

Solution 1:

In short: yes, arrow functions are reasonably well supported in Node.js since version 4.4.5.

Completely correct support starts with version 6. Initial support was introduced as far as v0.12 but is was very incomplete and disabled by default until v4.0 when it got better. See Node's ES6 compatibility table for details: http://node.green/#ES2015-functions-arrow-functions.

Solution 2:

The syntax you're referring to is "arrow function" syntax. It is a feature of ECMAScript 6, also known as "Harmony". The ES6 standard is now finalized, but engines are still implementing its new features.

The V8 now has arrow function support. Node runs on the V8 engine, but it can take some time for Node to incorporate the latest version into its code base.

Whenever it is added, it might possibly be enabled only via a --harmony command-line flag.

Solution 3:

You can follow this issue: https://code.google.com/p/v8/issues/detail?id=2700

Currently (as 02.05.2014) arrow functions have been implemented and waiting until this functionality will be landed in v8: https://codereview.chromium.org/160073006/

After then we'll need to wait, until v8 version with arrow function would be integrated into Node.JS. You can follow Node.JS changelog there: https://github.com/joyent/node/blob/master/ChangeLog (search for "v8: upgrade to ....")

Solution 4:

kangax's compatibility tables can keep you up-to-date with what is currently available in Node.

Experimental features can be enabled using the instructions on this page:

All shipping features are turned on by default on Node.js

Staged feature require a runtime flag: --es_staging (or its synonym, --harmony)

In progress features can be activated individually by their respective harmony flag (e.g. --harmony_destructuring) but this is highly discouraged