Check if a browser supports ES6 ES2015


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";

Test if ES6 ES2015 is ~fully supported →

Did this help you out? Like what you see?
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!

☕️ Buy me a Coffee ($3)

Join the Conversation


  1. This is “nice” but requires CSP headers to include support for ‘unsafe-eval’. Any idea how to do this without this requirement?

Leave a comment

Your email address will not be published. Required fields are marked *

This site uses Akismet to reduce spam. Learn how your comment data is processed.