Skip to content

Instantly share code, notes, and snippets.

@Julien-Marcou
Last active July 11, 2024 20:58
Show Gist options
  • Save Julien-Marcou/156b19aea4704e1d2f48adafc6e2acbf to your computer and use it in GitHub Desktop.
Save Julien-Marcou/156b19aea4704e1d2f48adafc6e2acbf to your computer and use it in GitHub Desktop.
ECMAScript Support

ECMAScript Support (as of October 29, 2022)

Global support of es2023 since:

  • Chrome v97 (January 4, 2022)
  • Edge v97 (December 1, 2021)
  • Safari v15.4 (March 14, 2022)
  • Safari on iOS v15.4 (March 14, 2022)
  • Opera v83 (January 19, 2022)
  • Firefox v104 (June 23, 2022)
  • Samsung Browser v18 (August 8, 2022)
  • Chrome for Android v97 (January 11, 2022)
  • Firefox for Android v105 (September 20, 2022)

Other browsers are not supported (Internet Explorer, non-chromium Edge, Opera Mini, Opera Mobile, ...).

The supported browsers represent 88.3% of the global browser usage when excluding the following features:

Or 73.6% when including them.

Least supported features usage

In addition to the 3 previous features (which are barely used anyway), here are some other features, which are more commonly used but are not yet widely adopted (supported by less than 92% of browser usage).

Browser usage

Each line only represents the % of browser usage supporting the features for the given ECMAScript version and does not include features of previous versions, which means the % can be lower when combining multiple ECMAScript versions.

  • es2023: 88.5%
  • es2022: 88.2%
  • es2021: 92.2%
  • es2020: 92.6%
  • es2019: 94.6%
  • es2018: 94.8%
  • es2017: 95.3%
  • es2016: 95.6%
  • es2015: 96.3% (aka es6)

Main features

Non-exhaustive list:

  • es2023
    • Array.findLast()
    • Array.findLastIndex()
  • es2022
    • Instance/private/static field
    • Object.hasOwn()
    • Array.at()
    • Top level await
  • es2021
    • Promise.any()
    • String.replaceAll()
  • es2020
    • Optional chaining ?
    • Null coalescing operator ??
  • es2019
    • Array.flat()
    • Array.flatMap()
    • Object.fromEntries()
  • es2018
    • Promise.finally()
    • Improved rest/spread operator ...
  • es2017
    • await operator
    • Async function
  • es2016:
    • Array.includes()
    • Exponentiation operator **
    • Improved rest/spread operator ...
    • Improved generator
  • es2015
    • Class
    • Promise
    • Arrow function
    • Rest/spread operator ...
    • for of loop
    • Template literal `${}`
    • Generator

Can I use references

Some links may not display results properly as Can I use struggles to display more than 8 selected features.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment