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)

About the author

Bramus is a Freelance Web Developer from Belgium. From the moment he discovered view-source at the age of 14 (way back in 1997), he fell in love with the web and has been tinkering with it ever since (more …)

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.