Tracking ECMAScript 6 Support
August 17, 2013
ECMAScript 6 is being progressively implemented by browser vendors over time and as such there is no ETA on it being available in all environments.
Whilst specs and implementations continue to mature, you may find the below resources helpful in keeping track of where we are with browser and environment support:
- Feature comparison matrix of ECMAScript implementations (V8, JSC, JScript etc) by Thomas Lahn
- Harmony features available in Node can be listed with
node --v8-options | grep harmony
- ECMAScript 6 compatibility table by Kangax
- Google's V8: Harmony features with corresponding open bugs in on the tracker (i.e what ES6 features Chrome and Opera will support, either by default or behind the
about:flags
> 'Enable Experimental JavaScript' flag). - ECMAScript 6 support in Firefox (MDN). There is also a meta-bug on Buzilla you can check-out that's slightly more in the trenches (HT @domenic). In addition, Rick Waldron suggests subscribing for component notifications from bugzilla and then creating a filter, however this might be a little high-volume.
- IE Dev Center on supported ES6 features (hunting down a better list for IE11+)
- ECMAScript 6 official draft specification (and the unofficial HTML version of the draft)
I recommended that you follow @esdiscuss for a summary of what is happening on the es-discuss mailing list for links to the latest discussions.
Although it is outside of the scope of this brief post, you can use transpilers such as Traceur (write-up on my Grunt + Traceur setup), the Square ES6 module transpiler (known to have a few issues), ES6 Shim and the ES6 Module Loader polyfill to get some mileage while we wait for vendors to implement native support for features.
Sindre Sorhus also maintains a wiki of real-world usage of ECMAScript 6 features in today's libraries and frameworks that may be of interest.