36

Regarding compatibility between ECMAScript specification and actual implementation;

It is fairly easy to check out the data about browser support for ECMAScript2015 (ES6), but I found it pretty difficult to have an equivalently clear table for all the following ES versions (ES7+).

By the time this question is asked:

  • Mozilla has some info on their website: it is possible to see that ES7 and ES8 are fully supported, ES9 still has some problems and ES10 is supported on the latest versions.

  • I can also guess that IE11 never progressed after ES5.

  • I did not find anything for the other browsers, just some stolen info here and there.

How can I check what the current browser-support level is?

Manu Artero
  • 7,807
  • 5
  • 54
  • 65
Alvin Sartor
  • 1,767
  • 3
  • 19
  • 34
  • 1
    Just because a question *has* answers doesn't mean it is a question suitable for SO in the first place. It's off-topic, so it is closed. Any answers from before it was closed should be taken with a pinch of salt. – Quentin Apr 26 '22 at 09:31

2 Answers2

53

Browser vendors don't implement specific versions, but specific features. Almost every modern browser is still missing features from ES2017-ES2020. Hence there is not and won't be a table where you can see an ES version to browser version mapping.

But that is not a problem because you as a developer do the same. You use features, not versions of ECMAScript. Caniuse is still a great resource to check for support of individual features. If you are not happy with the data presentation on Caniuse, maybe these compatibility tables are better for you. Additionally, you can use polyfills and Babel for transpiling of newer features to older runtimes.

str
  • 38,402
  • 15
  • 99
  • 123
  • I would upvote this if the question wasn't off-topic. – Bergi May 16 '20 at 13:13
  • @Bergi Yes, I was on the verge of close-voting, too. – str May 16 '20 at 19:50
  • 7
    +1 for the compatibility tables link, but for me (Jan 2021) it shows no es2017 features that are not supported in latest Chrome and FF and Edge, so it seems one could do some 'ES version to browser mapping'? It's true as you say that developers can use features not versions, but for example [in TypeScript tsconfig 'lib' we have to choose es2017 or es2018 etc. based on what our minimum supported browser can handle](https://stackoverflow.com/a/57474312/2604813). – Marcus Jan 04 '21 at 23:20
  • Basically it's futile. Just target es5. Or es6 if there's a major advantage you can benefit from like reduced bundle size. – Cobolt Mar 08 '22 at 15:05
12

The simple reason is: they don't support it. Everything above ES6 is still in the works. Since ES6 is still being adopted and not all browsers support everything there's no reason for them to aim for ES7. If you want to use >ES7 features I would suggest looking into Babel, since there are ways to use ES7 and above and compile it back to ES5 so that even IE supports it.

Hope that helps, feel free to comment with questions!