Quoting @williamkapke https://github.com/nodejs/nodejs.org/pull/674#issuecomment-214133370
I guess there could be more clarification on the difference of the
--es_stagingvs--harmonyflags. From the existing page, I concluded they were the aliases of each other. I guess that isn't true:
See: https://github.com/williamkapke/node-compat-table/issues/1#issuecomment-214118438
I've never used those flags myself, can someone explain the difference?
/cc @nodejs/collaborators
In v4 and v5, they're synonyms for beta-level features: considered complete but not battle-tested yet; can still have bugs.
In v6, --es_staging is --harmony plus a few alpha-level features; currently --harmony_regexp_lookbehind and --harmony_tailcalls but that can change at any time.
Note that --es-staging is labeled as «for internal use only» and exposes more unstable features, while the change that got landed promotes --es-staging over --harmony.
--es_staging (enable test-worthy harmony features (for internal use only))
--harmony (enable all completed harmony features)
@ChALkeR Good catch, the "for internal use" remark was not present in Node.js 4.3.1. So we should rather document the --harmony flag only and leave out --es_staging?
@fhemberger In Node.js 4.3.1 those two were equivalent.
So we should rather document the
--harmonyflag only and leave out--es_staging?
/cc @nodejs/documentation
@ChALkeR Yes, but in Node.js 6.0 they are not and --es_staging is flagged "for internal use". But in all versions --harmony does the same, so we should use this flag in our documentation and omit the internal flag --es_staging.
But in all versions
--harmonydoes the same,
… except for 0.10/0.12.
so we should use this flag in our documentation and omit the internal flag
--es_staging.
I agree.
Fixed on 139393e.
Most helpful comment
In v4 and v5, they're synonyms for beta-level features: considered complete but not battle-tested yet; can still have bugs.
In v6,
--es_stagingis--harmonyplus a few alpha-level features; currently--harmony_regexp_lookbehindand--harmony_tailcallsbut that can change at any time.