ある機能がどのECMAバージョンで入ったのかの一覧表。ある程度グルーピングをしてある。
2025年現在のproposalsのfinished-proposals.mdを参照している。
(なお、全部確認はしたはずだが、間違ってる可能性もある。抜け等あったらコメントお願いします🙏)
Array
- ES2016:
Array.prototype.includes - ES2019:
Array.prototype.{flat,flatMap} - ES2020: Optional Chaining
?.[] - ES2022:
Array.prototype.at() - ES2023:
Array.prototype.{findLast,findLastIndex} - ES2023: Change Array by Copy
Array.prototype.toReversedArray.prototype.toSortedArray.prototype.toSplicedArray.prototype.with
- ES2024: Array Grouping
Object.groupBy,Map.groupBy
Atomic
- ES2017: Shared memory and atomics
- ES2024:
Atomics.waitAsync
Class
- ES2022: Class Fields (Private instance methods and accessors, Class Public Instance Fields & Private Instance Fields, Static class fields and private static methods)
- ES2022: Class Static Block
- ES2022: Ergonomic brand checks for Private Fields
Function
- ES2017: Async functions
- ES2017: Trailing commas in function parameter lists and calls
- ES2019:
Function.prototype.toStringrevision - ES2020: Optional Chaining
?.()
Module
- ES2019: JSON superset
- ES2020:
import() - ES2020:
import.meta - ES2025: Import Attributes
- ES2025: JSON Modules
Object
- ES2017:
Object.getOwnPropertyDescriptors - ES2017:
Object.values/Object.entries - ES2018: Rest/Spread Properties
- ES2019:
Object.fromEntries - ES2020: Optional Chaining
?. - ES2022:
Object.hasOwn(AccessibleObject.prototype.hasOwnProperty) - ES2024:
Object.groupBy(Array Grouping)
Operator
- ES2016:
**(Exponentiation operator) - ES2020:
??(Nullish coalescing Operator) - ES2021:
||=,&&=,??=(Logical Assignment Operators)
Promise
- ES2018:
Promise.prototype.finally - ES2020:
Promise.allSettled - ES2021:
Promise.any - ES2024:
Promise.withResolvers - ES2025:
Promise.try
RegExp
- ES2018: RegExp Lookbehind Assertions
- ES2018: RegExp Unicode Property Escapes
- ES2018: RegExp named capture groups
- ES2018:
s(dotAll) flag for regular expressions - ES2022: RegExp Match Indices
- ES2024: RegExp v flag with set notation + properties of strings
- ES2025: Duplicate named capture groups
- ES2025: RegExp Modifiers
- ES2025:
RegExp.escape
String
- ES2017:
String.prototype.{padStart,padEnd} - ES2019:
String.prototype.{trimStart,trimEnd} - ES2020:
String.prototype.matchAll - ES2021:
String.prototype.replaceAll - ES2022:
String.prototype.at() - ES2024: Well-Formed Unicode Strings
TypedArray
- ES2022:
TypedArray.prototype.at() - ES2023: Change Array by Copy
TypedArray.prototype.toReversedTypedArray.prototype.toSortedTypedArray.prototype.with
Other
- ES2018: Asynchronous Iteration
- ES2018: Lifting template literal restriction
- ES2019: Well-formed
JSON.stringify - ES2019: Optional
catchbinding - ES2019:
Symbol.prototype.description - ES2020:
for-inmechanics - ES2020:
BigInt - ES2020:
globalThis - ES2021: Numeric separators
- ES2021: WeakRefs
- ES2022: Error Cause
- ES2022: Top-level
await - ES2023: Hashbang Grammar
- ES2023: Symbols as WeakMap keys
- ES2024: ArrayBuffer transfer
- ES2024: Resizable and growable ArrayBuffers
- ES2025: Float16 on TypedArrays, DataView,
Math.f16round - ES2025: New Set methods
Set.prototype.intersectionSet.prototype.unionSet.prototype.differenceSet.prototype.symmetricDifferenceSet.prototype.isSubsetOfSet.prototype.isSupersetOfSet.prototype.isDisjointFrom
- ES2025: Sync Iterator helpers