Now that we have done {T272104}, we should consider doing the same thing for ES2016, ES2017, or whatever version makes sense.
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:
* [x] ES2016: the `**` operator.
* [ ] ES2017:
** [x] `async` function declarations.
** [x] `await` statements.
** [x] `async` function expressions.
** [ ] `async` function methods.
- [ ] ES2018: async iteration (`for await`), spread (`...`) in object literals, regex features (named capture groups, lookbehind, `/s` flag, `\p{...}`)
- [ ] ES2019: optional `catch` binding.
- [ ] ES2020: `??` and `?.` operators, dynamic import, `import.meta`, `export * as Foo from 'bar'`, BigInt.