- ECMAScript 6: modules and shallow continuations. These things have been known for a while – see .
- ECMAScript 7: guards, contracts, event loop concurrency.
- ECMAScript 8: macros, parallel arrays (SIMD) [background].
- Easily create embedded domain-specific languages (for HTML fragments, queries, GUI definitions, etc.).
- Invent new more concise syntax for specific tasks (this one is mainly for – gifted – library authors). If you wanted to, you could also call the result a domain-specific language.
- Any new syntax introduced after ECMAScript 8 can be retrofitted to previous versions via macros.