[config]
# general settings for test262 ES6 version

# framework style: old, new
style=new

# handle tests tagged as [noStrict]: yes, no, skip
nostrict=yes

# handle tests tagged as [strictOnly]: yes, no, skip
strict=yes

# test mode: default, default-nostrict, default-strict, strict, nostrict, both, all
mode=default

# handle tests flagged as [async]: yes, no, skip
# for these, load 'harness/doneprintHandle.js' prior to test
# and expect `print('Test262:AsyncTestComplete')` to be called for
# successful termination
async=yes

# handle tests flagged as [module]: yes, no, skip
module=yes

# output error messages: yes, no
verbose=yes

# load harness files from this directory
harnessdir=test262/harness

# names of harness include files to skip
#harnessexclude=

# name of the error file for known errors
errorfile=test262_errors.txt

# exclude tests enumerated in this file (see also [exclude] section)
#excludefile=test262_exclude.txt

# report test results to this file
reportfile=test262_report.txt

# enumerate tests from this directory
testdir=test262/test

[features]
# Standard language features and proposed extensions
# list the features that are included
# skipped features are tagged as such to avoid warnings
# Keep this list alpha-sorted (:sort i in vim)

__getter__
__proto__
__setter__
AggregateError
align-detached-buffer-semantics-with-web-reality
arbitrary-module-namespace-names=skip
array-find-from-last
array-grouping
Array.fromAsync=skip
Array.prototype.at
Array.prototype.flat
Array.prototype.flatMap
Array.prototype.includes
Array.prototype.values
ArrayBuffer
arraybuffer-transfer=skip
arrow-function
async-functions
async-iteration
Atomics
Atomics.pause=skip
Atomics.waitAsync=skip
BigInt
caller
canonical-tz=skip
change-array-by-copy
class
class-fields-private
class-fields-private-in
class-fields-public
class-methods-private
class-static-block
class-static-fields-private
class-static-fields-public
class-static-methods-private
coalesce-expression
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
decorators=skip
default-parameters
destructuring-assignment
destructuring-binding
dynamic-import
error-cause
Error.isError=skip
explicit-resource-management=skip
exponentiation
export-star-as-namespace-from-module
FinalizationRegistry
Float16Array=skip
Float32Array
Float64Array
for-in-order
for-of
generators
globalThis
hashbang
host-gc-required=skip
import-assertions=skip
import-attributes=skip
import-defer=skip
import.meta
Int16Array
Int32Array
Int8Array
Intl-enumeration=skip
intl-normative-optional=skip
Intl.DateTimeFormat-datetimestyle=skip
Intl.DateTimeFormat-dayPeriod=skip
Intl.DateTimeFormat-extend-timezonename=skip
Intl.DateTimeFormat-formatRange=skip
Intl.DateTimeFormat-fractionalSecondDigits=skip
Intl.DisplayNames-v2=skip
Intl.DisplayNames=skip
Intl.DurationFormat=skip
Intl.ListFormat=skip
Intl.Locale-info=skip
Intl.Locale=skip
Intl.NumberFormat-unified=skip
Intl.NumberFormat-v3=skip
Intl.RelativeTimeFormat=skip
Intl.Segmenter=skip
IsHTMLDDA
iterator-helpers=skip
iterator-sequencing=skip
json-modules=skip
json-parse-with-source=skip
json-superset
legacy-regexp=skip
let
logical-assignment-operators
Map
Math.sumPrecise=skip
new.target
numeric-separator-literal
object-rest
object-spread
Object.fromEntries
Object.hasOwn
Object.is
optional-catch-binding
optional-chaining
Promise
promise-try=skip
promise-with-resolvers
Promise.allSettled
Promise.any
Promise.prototype.finally
Proxy
proxy-missing-checks
Reflect
Reflect.construct
Reflect.set
Reflect.setPrototypeOf
regexp-dotall
regexp-duplicate-named-groups=skip
regexp-lookbehind
regexp-match-indices
regexp-modifiers=skip
regexp-named-groups
regexp-unicode-property-escapes
regexp-v-flag=skip
RegExp.escape=skip
resizable-arraybuffer=skip
rest-parameters
Set
set-methods=skip
ShadowRealm=skip
SharedArrayBuffer
source-phase-imports-module-source=skip
source-phase-imports=skip
string-trimming
String.fromCodePoint
String.prototype.at
String.prototype.endsWith
String.prototype.includes
String.prototype.isWellFormed
String.prototype.matchAll
String.prototype.replaceAll
String.prototype.toWellFormed
String.prototype.trimEnd
String.prototype.trimStart
super
Symbol
Symbol.asyncIterator
Symbol.hasInstance
Symbol.isConcatSpreadable
Symbol.iterator
Symbol.match
Symbol.matchAll
Symbol.prototype.description
Symbol.replace
Symbol.search
Symbol.species
Symbol.split
Symbol.toPrimitive
Symbol.toStringTag
Symbol.unscopables
symbols-as-weakmap-keys
tail-call-optimization=skip
template
Temporal=skip
top-level-await
TypedArray
TypedArray.prototype.at
u180e
Uint16Array
Uint32Array
Uint8Array
uint8array-base64=skip
Uint8ClampedArray
WeakMap
WeakRef
WeakSet
well-formed-json-stringify

[exclude]
# list excluded tests and directories here

# intl not supported
test262/test/intl402/

# incompatible with the "caller" feature
test262/test/built-ins/Function/prototype/restricted-property-caller.js
test262/test/built-ins/Function/prototype/restricted-property-arguments.js
test262/test/built-ins/ThrowTypeError/unique-per-realm-function-proto.js

# slow tests
#test262/test/built-ins/RegExp/CharacterClassEscapes/
#test262/test/built-ins/RegExp/property-escapes/

# feature regexp-v-flag is missing in the tests
test262/test/built-ins/RegExp/CharacterClassEscapes/character-class-digit-class-escape-negative-cases.js
test262/test/built-ins/RegExp/CharacterClassEscapes/character-class-digit-class-escape-negative-cases.js
test262/test/built-ins/RegExp/CharacterClassEscapes/character-class-digit-class-escape-positive-cases.js
test262/test/built-ins/RegExp/CharacterClassEscapes/character-class-digit-class-escape-positive-cases.js
test262/test/built-ins/RegExp/CharacterClassEscapes/character-class-non-digit-class-escape-negative-cases.js
test262/test/built-ins/RegExp/CharacterClassEscapes/character-class-non-digit-class-escape-negative-cases.js
test262/test/built-ins/RegExp/CharacterClassEscapes/character-class-non-digit-class-escape-positive-cases.js
test262/test/built-ins/RegExp/CharacterClassEscapes/character-class-non-digit-class-escape-positive-cases.js
test262/test/built-ins/RegExp/CharacterClassEscapes/character-class-non-whitespace-class-escape-negative-cases.js
test262/test/built-ins/RegExp/CharacterClassEscapes/character-class-non-whitespace-class-escape-negative-cases.js
test262/test/built-ins/RegExp/CharacterClassEscapes/character-class-non-whitespace-class-escape-positive-cases.js
test262/test/built-ins/RegExp/CharacterClassEscapes/character-class-non-whitespace-class-escape-positive-cases.js
test262/test/built-ins/RegExp/CharacterClassEscapes/character-class-non-word-class-escape-negative-cases.js
test262/test/built-ins/RegExp/CharacterClassEscapes/character-class-non-word-class-escape-negative-cases.js
test262/test/built-ins/RegExp/CharacterClassEscapes/character-class-non-word-class-escape-positive-cases.js
test262/test/built-ins/RegExp/CharacterClassEscapes/character-class-non-word-class-escape-positive-cases.js
test262/test/built-ins/RegExp/CharacterClassEscapes/character-class-whitespace-class-escape-negative-cases.js
test262/test/built-ins/RegExp/CharacterClassEscapes/character-class-whitespace-class-escape-negative-cases.js
test262/test/built-ins/RegExp/CharacterClassEscapes/character-class-whitespace-class-escape-positive-cases.js
test262/test/built-ins/RegExp/CharacterClassEscapes/character-class-whitespace-class-escape-positive-cases.js
test262/test/built-ins/RegExp/CharacterClassEscapes/character-class-word-class-escape-negative-cases.js
test262/test/built-ins/RegExp/CharacterClassEscapes/character-class-word-class-escape-negative-cases.js
test262/test/built-ins/RegExp/CharacterClassEscapes/character-class-word-class-escape-positive-cases.js
test262/test/built-ins/RegExp/CharacterClassEscapes/character-class-word-class-escape-positive-cases.js

# not yet in official specification
test262/test/built-ins/String/prototype/match/cstm-matcher-on-bigint-primitive.js
test262/test/built-ins/String/prototype/match/cstm-matcher-on-bigint-primitive.js
test262/test/built-ins/String/prototype/match/cstm-matcher-on-boolean-primitive.js
test262/test/built-ins/String/prototype/match/cstm-matcher-on-boolean-primitive.js
test262/test/built-ins/String/prototype/match/cstm-matcher-on-number-primitive.js
test262/test/built-ins/String/prototype/match/cstm-matcher-on-number-primitive.js
test262/test/built-ins/String/prototype/match/cstm-matcher-on-string-primitive.js
test262/test/built-ins/String/prototype/match/cstm-matcher-on-string-primitive.js
test262/test/built-ins/String/prototype/matchAll/cstm-matchall-on-bigint-primitive.js
test262/test/built-ins/String/prototype/matchAll/cstm-matchall-on-bigint-primitive.js
test262/test/built-ins/String/prototype/matchAll/cstm-matchall-on-number-primitive.js
test262/test/built-ins/String/prototype/matchAll/cstm-matchall-on-number-primitive.js
test262/test/built-ins/String/prototype/matchAll/cstm-matchall-on-string-primitive.js
test262/test/built-ins/String/prototype/matchAll/cstm-matchall-on-string-primitive.js
test262/test/built-ins/String/prototype/replace/cstm-replace-on-bigint-primitive.js
test262/test/built-ins/String/prototype/replace/cstm-replace-on-bigint-primitive.js
test262/test/built-ins/String/prototype/replace/cstm-replace-on-boolean-primitive.js
test262/test/built-ins/String/prototype/replace/cstm-replace-on-boolean-primitive.js
test262/test/built-ins/String/prototype/replace/cstm-replace-on-number-primitive.js
test262/test/built-ins/String/prototype/replace/cstm-replace-on-number-primitive.js
test262/test/built-ins/String/prototype/replace/cstm-replace-on-string-primitive.js
test262/test/built-ins/String/prototype/replace/cstm-replace-on-string-primitive.js
test262/test/built-ins/String/prototype/replaceAll/cstm-replaceall-on-bigint-primitive.js
test262/test/built-ins/String/prototype/replaceAll/cstm-replaceall-on-bigint-primitive.js
test262/test/built-ins/String/prototype/replaceAll/cstm-replaceall-on-boolean-primitive.js
test262/test/built-ins/String/prototype/replaceAll/cstm-replaceall-on-boolean-primitive.js
test262/test/built-ins/String/prototype/replaceAll/cstm-replaceall-on-number-primitive.js
test262/test/built-ins/String/prototype/replaceAll/cstm-replaceall-on-number-primitive.js
test262/test/built-ins/String/prototype/replaceAll/cstm-replaceall-on-string-primitive.js
test262/test/built-ins/String/prototype/replaceAll/cstm-replaceall-on-string-primitive.js
test262/test/built-ins/String/prototype/search/cstm-search-on-bigint-primitive.js
test262/test/built-ins/String/prototype/search/cstm-search-on-bigint-primitive.js
test262/test/built-ins/String/prototype/search/cstm-search-on-boolean-primitive.js
test262/test/built-ins/String/prototype/search/cstm-search-on-boolean-primitive.js
test262/test/built-ins/String/prototype/search/cstm-search-on-number-primitive.js
test262/test/built-ins/String/prototype/search/cstm-search-on-number-primitive.js
test262/test/built-ins/String/prototype/search/cstm-search-on-string-primitive.js
test262/test/built-ins/String/prototype/search/cstm-search-on-string-primitive.js
test262/test/built-ins/String/prototype/split/cstm-split-on-bigint-primitive.js
test262/test/built-ins/String/prototype/split/cstm-split-on-bigint-primitive.js
test262/test/built-ins/String/prototype/split/cstm-split-on-boolean-primitive.js
test262/test/built-ins/String/prototype/split/cstm-split-on-boolean-primitive.js
test262/test/built-ins/String/prototype/split/cstm-split-on-number-primitive.js
test262/test/built-ins/String/prototype/split/cstm-split-on-number-primitive.js
test262/test/built-ins/String/prototype/split/cstm-split-on-string-primitive.js
test262/test/built-ins/String/prototype/split/cstm-split-on-string-primitive.js

####################################
# staging tests

# sort() does not modify the array and we don't update it (XXX: the
# spec updates it in this case)
test262/test/staging/sm/Array/frozen-dense-array.js

# not supported
test262/test/staging/sm/Set/difference.js
test262/test/staging/sm/Set/intersection.js
test262/test/staging/sm/Set/is-disjoint-from.js
test262/test/staging/sm/Set/is-subset-of.js
test262/test/staging/sm/Set/is-superset-of.js
test262/test/staging/sm/Set/symmetric-difference.js
test262/test/staging/sm/Set/union.js
test262/test/staging/sm/extensions/censor-strict-caller.js
test262/test/staging/sm/JSON/parse-with-source.js
test262/test/staging/sm/RegExp/flags.js
test262/test/staging/sm/RegExp/prototype.js

# no f16
test262/test/staging/sm/Math/f16round.js
test262/test/staging/sm/TypedArray/sort_small.js
test262/test/staging/sm/extensions/dataview.js
test262/test/staging/sm/TypedArray/toString.js

# not standard
test262/test/staging/sm/Function/builtin-no-construct.js
test262/test/staging/sm/Function/function-caller-restrictions.js
test262/test/staging/sm/Function/function-toString-builtin-name.js
test262/test/staging/sm/extensions/arguments-property-access-in-function.js
test262/test/staging/sm/extensions/function-caller-skips-eval-frames.js
test262/test/staging/sm/extensions/function-properties.js
# RegExp toSource not fully compliant
test262/test/staging/sm/RegExp/toString.js
test262/test/staging/sm/RegExp/source.js

[tests]
# list test files or use config.testdir
