Shipping
All shipping features, which V8 considers stable, are turned on by default on Node.js and do NOT require any kind of runtime flag.
Staged
Staged features, which are almost-completed features that are not considered stable by the V8 team, require a runtime flag:
--harmony.In progress
In progress features can be activated individually by their respective harmony flag, although this is highly discouraged unless for testing purposes.
Which features ship with which Node.js version by default?
The website node.green provides an excellent overview over supported ECMAScript features in various versions of Node.js, based on kangax’s compat-table.Which features are in progress?
New features are constantly being added to the V8 engine. Generally speaking, expect them to land on a future Node.js release, although timing is unknown. You may list all the in progress features available on each Node.js release by grepping through the--v8-options argument. Please note that these are incomplete and possibly broken features of V8, so use them at your own risk:
Should I remove the --harmony flag?
The current behavior of the --harmony flag on Node.js is to enable staged features only. After all, it is now a synonym of --es_staging. As mentioned above, these are completed features that have not been considered stable yet.
How do I find which version of V8 ships with a particular version of Node.js?
Node.js provides a simple way to list all dependencies and respective versions that ship with a specific binary through theprocess global object. In case of the V8 engine, type the following in your terminal to retrieve its version: