Great snippet by Benjamin De Cock:
var supportsES6 = function() {
try {
new Function("(a = 0) => a");
return true;
}
catch (err) {
return false;
}
}();
The critical test is the
a = 0
. All browsers supporting default parameters have a fairly complete support of ES6 — for example, Edge 13 will be rejected by this test despite a decent ES6 coverage.
The Stripe website for example ships with untranspiled ES6, which is only executed if the supportsES6
check checks out:
if (supportsES6) {
var script = document.createElement("script");
script.src = "my-es6-file.js";
document.head.appendChild(script);
}
Test if ES6 ES2015 is ~fully supported →
Consider donating.
I don’t run ads on my blog nor do I do this for profit. A donation however would always put a smile on my face though. Thanks!
This is “nice” but requires CSP headers to include support for ‘unsafe-eval’. Any idea how to do this without this requirement?
Hey Ralf, you can call this code from a “script” tag so there is no need to set a “CSP”