## Proposed language features
#
# This project accepts tests for language proposals that have reached stage 3
# in TC39's standardization process. Those tests should be annotated with a
# dedicated feature flag so that consumers may more easily omit them as
# necessary.
#
# https://github.com/tc39/process-document

# Missing checks in Proxy internal methods
# https://github.com/tc39/ecma262/pull/666
proxy-missing-checks

# Promise.allSettled
# https://github.com/tc39/proposal-promise-allSettled
Promise.allSettled

# Hashbang Grammar
# https://github.com/tc39/proposal-hashbang
hashbang

# Object.fromEntries
# https://github.com/tc39/proposal-object-from-entries
Object.fromEntries

# BigInt
# https://github.com/tc39/proposal-bigint
BigInt

# Class Fields
# https://github.com/tc39/proposal-class-fields
class-fields-public
class-fields-private

# Class Static Fields & Methods
# https://github.com/tc39/proposal-static-class-features/
class-static-fields-public
class-static-fields-private
class-static-methods-private

# Class Private methods and getter/setters
# https://github.com/tc39/proposal-private-methods
class-methods-private

# Dynamic Import
# https://github.com/tc39/proposal-dynamic-import
dynamic-import

# Array.prototype.flat and Array.prototype.flatMap
# https://github.com/tc39/proposal-flatMap
Array.prototype.flat
Array.prototype.flatMap

# String Trimming
# https://github.com/tc39/proposal-string-left-right-trim
# Includes all tests for:
# String.prototype.{trimStart, trimEnd, trimLeft, trimRight}
string-trimming
String.prototype.trimEnd
String.prototype.trimStart

# Numeric Separator Literal
# https://github.com/tc39/proposal-numeric-separator
numeric-separator-literal

# String.prototype.matchAll
# https://github.com/tc39/proposal-string-matchall
String.prototype.matchAll
Symbol.matchAll

# Symbol.prototype.description
# https://github.com/tc39/proposal-symbol-description
Symbol.prototype.description

# Well-formed JSON.stringify
# https://github.com/tc39/proposal-well-formed-stringify
well-formed-json-stringify

# Intl.ListFormat
# https://github.com/tc39/proposal-intl-list-format
Intl.ListFormat

# Intl.Locale
# https://github.com/tc39/proposal-intl-locale
Intl.Locale

# Intl.Locale Info
# https://github.com/tc39/proposal-intl-locale-info
Intl.Locale-info

# Intl.RelativeTimeFormat
# https://github.com/tc39/proposal-intl-relative-time
Intl.RelativeTimeFormat

# Intl.Segmenter
# https://github.com/tc39/proposal-intl-segmenter
Intl.Segmenter

# Intl.NumberFormat unified proposal
# https://github.com/sffc/proposal-unified-intl-numberformat
Intl.NumberFormat-unified

# Intl.DateTimeFormat: dateStyle and timeStyle options
# https://github.com/tc39/proposal-intl-datetime-style
Intl.DateTimeFormat-datetimestyle

# Intl.DateTimeFormat: formatRange and formatRangeToParts functions
# https://github.com/tc39/proposal-intl-DateTimeFormat-formatRange
Intl.DateTimeFormat-formatRange

# Intl.DateTimeFormat: add 'dayPeriod' option
# https://github.com/tc39/ecma402/pull/346
Intl.DateTimeFormat-dayPeriod

# Intl.DateTimeFormat: add 'quarter' option
# https://github.com/tc39/ecma402/pull/346
Intl.DateTimeFormat-quarter

# Intl.DateTimeFormat: add 'fractionalSecondDigits' option
# https://github.com/tc39/ecma402/pull/347
Intl.DateTimeFormat-fractionalSecondDigits

# Intl "normative optional"
# https://tc39.es/ecma402/#legacy-constructor
intl-normative-optional

# Intl "Intl.DisplayNames v2"
# https://github.com/tc39/intl-displaynames-v2
Intl.DisplayNames-v2

# Intl "Extend TimeZoneName Option Proposal"
# https://github.com/tc39/proposal-intl-extend-timezonename
Intl.DateTimeFormat-extend-timezonename

# Intl "Enumeration API"
# https://github.com/tc39/proposal-intl-enumeration
Intl-enumeration

# Global
# https://github.com/tc39/proposal-global
globalThis

# `export * as namespace from module`
# https://github.com/tc39/ecma262/pull/1174
export-star-as-namespace-from-module

# import.meta
# https://github.com/tc39/proposal-import-meta
import.meta

# WeakRef
# https://github.com/tc39/proposal-weakref
WeakRef
FinalizationRegistry

# FinalizationRegistry#cleanupSome
# https://github.com/tc39/proposal-cleanup-some
FinalizationRegistry.prototype.cleanupSome

# Optional Chaining
# https://github.com/tc39/proposal-optional-chaining
optional-chaining

# Top Level Await
# https://github.com/tc39/proposal-top-level-await
top-level-await

# RegExp Match Array Indices
# https://github.com/tc39/proposal-regexp-match-indices
regexp-match-indices

# Nullish Coalesce Expression
# https://github.com/tc39/proposal-nullish-coalescing
coalesce-expression

# Intl.DisplayNames
# https://github.com/tc39-transfer/proposal-intl-displaynames
Intl.DisplayNames

# Intl.NumberFormat V3
# https://github.com/tc39/proposal-intl-numberformat-v3
Intl.NumberFormat-v3

# Promise.any
# https://github.com/tc39/proposal-promise-any
Promise.any
AggregateError

# String.prototype.replaceAll
# https://github.com/tc39/proposal-string-replaceall
String.prototype.replaceAll

# Enumeration order for for-in
# https://github.com/tc39/proposal-for-in-order
for-in-order

# Legacy RegExp features
# https://github.com/tc39/proposal-regexp-legacy-features
legacy-regexp

# Logical Assignment Operators
# https://github.com/tc39/proposal-logical-assignment
logical-assignment-operators

# Atomics.waitAsync
# https://github.com/tc39/proposal-atomics-wait-async
Atomics.waitAsync

# Item Method
# https://github.com/tc39/proposal-item-method
Array.prototype.at
String.prototype.at
TypedArray.prototype.at

# Arbitrary module namespace names
# https://github.com/tc39/ecma262/pull/2154
arbitrary-module-namespace-names

# Align detached buffer semantics with web reality
# https://github.com/tc39/ecma262/pull/2164
align-detached-buffer-semantics-with-web-reality

# Object.hasOwn
# https://github.com/tc39/proposal-accessible-object-hasownproperty
Object.hasOwn

# Class static initialization blocks
# https://github.com/tc39/proposal-class-static-block
class-static-block

# Ergonomic brand checks for Private Fields
# https://github.com/tc39/proposal-private-fields-in-in
class-fields-private-in

# Error cause
# https://github.com/tc39/proposal-error-cause
error-cause

# Import Assertions
# https://github.com/tc39/proposal-import-assertions/
import-assertions

# JSON modules
# https://github.com/tc39/proposal-json-modules
json-modules

# Resizable Arraybuffer
# https://github.com/tc39/proposal-resizablearraybuffer
resizable-arraybuffer

# Temporal
# https://github.com/tc39/proposal-temporal
Temporal

# ShadowRealm, née Callable Boundary Realms
# https://github.com/tc39/proposal-realms
ShadowRealm

# Array.prototype.findLast & Array.prototype.findLastIndex
# https://github.com/tc39/proposal-array-find-from-last
array-find-from-last

# Array.prototype.groupBy & Array.prototype.groupByToMap
# https://github.com/tc39/proposal-array-grouping
array-grouping

# Intl.DurationFormat
# https://github.com/tc39/proposal-intl-duration-format
Intl.DurationFormat

# RegExp set notation + properties of strings
# https://github.com/tc39/proposal-regexp-set-notation
regexp-v-flag

## Standard language features
#
# Language features that have been included in a published version of the
# ECMA-262 specification. These flags are largely maintained for historical
# reasons, though their use for relatively new features (i.e. prior to
# availability across major implementations) is appreciated.

ArrayBuffer
Array.prototype.values
arrow-function
async-iteration
async-functions
Atomics
caller
class
computed-property-names
const
cross-realm
DataView
DataView.prototype.getFloat32
DataView.prototype.getFloat64
DataView.prototype.getInt16
DataView.prototype.getInt32
DataView.prototype.getInt8
DataView.prototype.getUint16
DataView.prototype.getUint32
DataView.prototype.setUint8
default-parameters
destructuring-assignment
destructuring-binding
for-of
Float32Array
Float64Array
generators
Int8Array
Int16Array
Int32Array
json-superset
let
Map
new.target
object-rest
object-spread
Object.is
optional-catch-binding
Promise
Promise.prototype.finally
Proxy
Reflect
Reflect.construct
Reflect.set
Reflect.setPrototypeOf
regexp-dotall
regexp-lookbehind
regexp-named-groups
regexp-unicode-property-escapes
rest-parameters
Set
SharedArrayBuffer
String.fromCodePoint
String.prototype.endsWith
String.prototype.includes
super
Symbol
Symbol.asyncIterator
Symbol.hasInstance
Symbol.isConcatSpreadable
Symbol.iterator
Symbol.match
Symbol.replace
Symbol.search
Symbol.species
Symbol.split
Symbol.toPrimitive
Symbol.toStringTag
Symbol.unscopables
tail-call-optimization
template
TypedArray
u180e
Uint8Array
Uint16Array
Uint32Array
Uint8ClampedArray
WeakMap
WeakSet
__proto__
__getter__
__setter__

## Test-Harness Features
#
# The rare cases where testing language functionality requires non-standard
# language features, exposed through global-environment functions on the $262
# object, go here.

IsHTMLDDA
host-gc-required