Now that we have done T272104: Allow modules to opt-in to ES6 syntax support, we should consider doing the same thing for ES2016 and ES2017.
We will have to consider the benefits of new language features in a given ES version versus the costs of dropping browsers that don't support it, and the complexity of feature detection.
Notable syntax features in later versions:
- ES2016 (ES7): the ** operator.
- ES2017 (ES8):
- await statements. T343499: Add minification support for async-await (ES2017)
- async function declarations. T343499
- async function expressions.
- async function methods. T386139
Later: T386530: Add native support for ES2018-ES2020 to the minifier