ES7, ES8, ES9, ES10, ES11 Browser support
Asked Answered
S

2

75

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?

Stellate answered 16/5, 2020 at 11:23 Comment(0)
U
97

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.

Unscreened answered 16/5, 2020 at 11:41 Comment(6)
+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.Furnishings
Basically it's futile. Just target es5. Or es6 if there's a major advantage you can benefit from like reduced bundle size.Viquelia
Do transpilers / bunders have a way to tell us what features we've actually used?Swenson
Yeah, I'd love a cli/plugin/linter to halt transpilation (or just warn) when finding features in code that aren't supported by the set of browsers previously configured. Without having to verify manually on caniuse or have to make old-school browser detection trickery. Nowadays it should be automatic.Typology
I don't know how accurate is this compatibility table. For instance, how can Safari 16 support fewer features than Safari 15.4? It makes no senseChrisom
These days, the link seems to be compat-table.github.io/compat-tableLimann
M
14

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.

Merciful answered 16/5, 2020 at 11:33 Comment(0)

© 2022 - 2024 — McMap. All rights reserved.