# Copyright (c) Meta Platforms, Inc. and affiliates.
#
# This source code is licensed under the MIT license found in the
# LICENSE file in the root directory of this source tree.

# flake8: noqa

from __future__ import absolute_import, division, print_function, unicode_literals

import collections
import re


# The skiplist is ordered by decreasing severity.
SKIP_LIST = [
    # Fails due to a bug in Hermes Function.apply(): T28044390.
    "CVEs/CVE-2016-7194.js",
    # These require constructing prohibitively large arrays.
    "CVEs/CVE-2017-2521.js",
    "CVEs/CVE-2017-2464.js",
    "CVEs/CVE-2017-2536.js",
    "CVEs/CVE-2018-0758.js",
    "CVEs/CVE-2013-6632.js",
    # Uses "with".
    "CVEs/CVE-2016-1665.js",
    # Unicode identifiers.
    "test262/test/language/identifiers/vals-rus-alpha-lower-via-escape-hex4.js",
    "test262/test/language/identifiers/vals-rus-alpha-upper-via-escape-hex4.js",
    "test262/test/language/white-space/mongolian-vowel-separator.js",
    "test262/test/language/literals/regexp/mongolian-vowel-separator.js",
    "test262/test/language/literals/string/mongolian-vowel-separator.js",
    "esprima/test_fixtures/ES6/identifier/estimated.js",
    "esprima/test_fixtures/ES6/identifier/weierstrass.js",
    "esprima/test_fixtures/ES6/identifier/invalid_function_await.module.js",
    "esprima/test_fixtures/ES6/identifier/dakuten_handakuten.js",
    "esprima/test_fixtures/ES6/identifier/weierstrass_weierstrass.js",
    "esprima/test_fixtures/ES6/identifier/ethiopic_digits.js",
    "esprima/test_fixtures/ES6/identifier/module_await.js",
    # R-value assignment detected at compile time.
    "mjsunit/serialize-embedded-error.js",
    "mjsunit/regress/regress-crbug-412208.js",
    "mjsunit/regress/regress-436893.js",
    # Tests relying on es6 features.
    "mjsunit/harmony/for-in.js",
    "mjsunit/regress/regress-319120.js",
    "mjsunit/regress/regress-deopt-in-array-literal-spread.js",
    "mjsunit/regress/regress-crbug-621816.js",
    "mjsunit/computed-property-names-deopt.js",
    "test262/test/language/expressions/object/computed-property-evaluation-order.js",
    "test262/test/language/module-code/eval-export-dflt-expr-err-eval.js",
    "test262/test/language/module-code/eval-export-dflt-expr-err-get-value.js",
    # Defines __proto__ multiple times in literal and expects it to throw.
    "object-literal-multiple-proto-fields.js",  # mjsunit
    # Function instance .arguments, .caller, etc. (e.g. foo.arguments).
    "mjsunit/arguments-indirect.js",
    "mjsunit/compiler/escape-analysis-arguments.js",
    "mjsunit/compiler/optimized-closures.js",
    "mjsunit/compiler/regress-funarguments.js",
    "mjsunit/extra-arguments.js",
    "mjsunit/function-arguments-null.js",
    "mjsunit/regress/regress-105.js",
    "mjsunit/regress/regress-347262.js",
    "mjsunit/regress/regress-3985.js",
    "mjsunit/regress/regress-crbug-601617.js",
    "test262/test/language/statements/function/13.2-30-s.js",
    "test262/test/language/statements/generators/restricted-properties.js",
    "test262/test/built-ins/GeneratorFunction/instance-restricted-properties.js",
    # Expects that Object.prototype.__defineGetter__() doesn't throw on error.
    "mjsunit/regress/regress-1240.js",
    # test262 tests relying on regexp changes in es6
    "test262/test/built-ins/RegExp/prototype/Symbol.split/last-index-exceeds-str-size.js",
    # Uses ES6 classes or arrow functions.
    "mjsunit/harmony/regexp-change-exec.js",
    "mjsunit/regexp-lastIndex.js",
    # Uses ES6 Unicode regular expressions.
    # This is an interesting test that we should enable when Unicode support lands.
    "mjsunit/regexp.js",
    # Attempt to parse Date format not required by the standard.
    "mjsunit/regress/regress-396.js",
    # Uses the V8 debugger.
    "mjsunit/compiler/debug-catch-prediction.js",
    "mjsunit/debug-",
    "mjsunit/deserialize-script-id.js",
    "mjsunit/es6/debug-",
    "mjsunit/es6/mirror-iterators.js",
    "mjsunit/function-source.js",
    # Update of arguments in non-strict mode.
    "mjsunit/regress/regress-arguments-slice.js",
    "mjsunit/regress/regress-392.js",
    "mjsunit/arguments-escape.js",
    "mjsunit/argument-named-arguments.js",
    "mjsunit/regress/regress-2989.js",
    "mjsunit/regress/regress-crbug-157520.js",
    "test262/test/language/arguments-object/10.6-6-4.js",
    "test262/test/language/arguments-object/10.6-10-c-ii-1.js",
    "test262/test/language/arguments-object/S10.1.6_A1_T3.js",
    "test262/test/language/arguments-object/10.6-6-3.js",
    "test262/test/language/arguments-object/10.6-10-c-ii-2.js",
    "test262/test/language/arguments-object/mapped/mapped-arguments-nonconfigurable-4.js",
    "test262/test/language/arguments-object/mapped/mapped-arguments-nonconfigurable-strict-delete-2.js",
    "test262/test/language/arguments-object/mapped/mapped-arguments-nonconfigurable-nonwritable-3.js",
    "test262/test/language/arguments-object/mapped/mapped-arguments-nonconfigurable-nonwritable-4.js",
    "test262/test/language/arguments-object/mapped/mapped-arguments-nonconfigurable-nonwritable-5.js",
    "test262/test/language/arguments-object/mapped/mapped-arguments-nonconfigurable-2.js",
    "test262/test/language/arguments-object/mapped/mapped-arguments-nonconfigurable-delete-3.js",
    "test262/test/language/arguments-object/mapped/mapped-arguments-nonconfigurable-delete-4.js",
    "test262/test/language/arguments-object/mapped/mapped-arguments-nonconfigurable-delete-2.js",
    "test262/test/language/arguments-object/mapped/mapped-arguments-nonconfigurable-strict-delete-3.js",
    "test262/test/language/arguments-object/mapped/mapped-arguments-nonconfigurable-strict-delete-4.js",
    "test262/test/language/arguments-object/mapped/mapped-arguments-nonconfigurable-3.js",
    "test262/test/language/arguments-object/mapped/nonconfigurable-descriptors-define-failure.js",
    "test262/test/language/arguments-object/mapped/writable-enumerable-configurable-descriptor.js",
    "test262/test/language/expressions/generators/arguments-with-arguments-lex.js",
    # TODO(T90539269) ident `arguments` referenced on global
    "test262/test/language/expressions/assignmenttargettype/simple-basic-identifierreference-arguments.js",
    "test262/test/built-ins/Object/defineProperty/15.2.3.6-4-293-2.js",
    "test262/test/built-ins/Object/defineProperty/15.2.3.6-4-294-1.js",
    "test262/test/built-ins/Object/defineProperty/15.2.3.6-4-293-3.js",
    "test262/test/built-ins/Object/defineProperty/15.2.3.6-4-292-1.js",
    "test262/test/built-ins/Object/defineProperty/15.2.3.6-4-295-1.js",
    "test262/test/built-ins/Object/defineProperty/15.2.3.6-4-296-1.js",
    "test262/test/language/expressions/delete/11.4.1-4.a-16.js",
    "test262/test/language/expressions/postfix-decrement/arguments-nostrict.js",
    "test262/test/language/expressions/postfix-increment/arguments-nostrict.js",
    "test262/test/language/expressions/prefix-decrement/arguments-nostrict.js",
    "test262/test/language/expressions/prefix-increment/arguments-nostrict.js",
    "test262/test/language/statements/function/S13_A11_T1.js",
    "test262/test/language/statements/function/S13_A15_T4.js",
    "test262/test/language/statements/function/S13_A15_T5.js",
    "test262/test/language/expressions/yield/formal-parameters-after-reassignment-non-strict.js",
    "test262/test/language/arguments-object/non-strict-arguments-object-is-immutable.js",
    "test262/test/built-ins/ThrowTypeError/extensible.js",
    # arguments.caller, arguments.callee must throw
    # These tests pass in HBC but fail with JSC
    "test262/test/language/arguments-object/10.6-13-b-1-s.js",
    "test262/test/language/arguments-object/arguments-caller.js",
    # Update arguments inside an indirect eval.
    "test262/test/language/statements/variable/12.2.1-21-s.js",
    "test262/test/language/statements/variable/12.2.1-17-s.js",
    # These tests should all fail to compile. jsc-cli behaves correctly,
    # but the hermes compiler does not fail to compile.  So, we don't
    # try running them.
    "test262/test/language/statements/try/12.14.1-1gs.js",
    "test262/test/language/statements/function/13.1-8gs.js",
    "test262/test/language/statements/function/13.1-5gs.js",
    "test262/test/language/expressions/delete/11.4.1-5-a-5gs.js",
    "test262/test/language/identifiers/val-this-via-escape-hex4.js",
    "test262/test/language/literals/string/S7.8.4_A4.3_T2.js",
    "test262/test/language/literals/string/S7.8.4_A4.3_T1.js",
    "test262/test/language/literals/string/7.8.4-1gs.js",
    "test262/test/language/literals/regexp/early-err-dup-flag.js",
    "test262/test/language/literals/regexp/early-err-bad-flag.js",
    "test262/test/language/literals/regexp/early-err-pattern.js",
    "test262/test/annexB/language/statements/for-in/strict-initializer.js",
    "test262/test/language/statements/try/early-catch-var.js",
    # skipped due to use of unsupported async arrow and async generators
    "test262/test/built-ins/GeneratorFunction/is-a-constructor.js",
    "test262/test/built-ins/Object/seal/seal-asyncarrowfunction.js",
    "test262/test/built-ins/Object/seal/seal-asyncgeneratorfunction.js",
    "test262/test/built-ins/AsyncFunction/is-a-constructor.js",
    "test262/test/built-ins/AsyncArrowFunction/is-a-constructor.js",
    "test262/test/language/statements/for/head-init-async-of.js",
    "test262/test/language/statements/switch/scope-lex-async-generator.js",
    "test262/test/language/expressions/object/__proto__-permitted-dup.js",
    # TODO(T90539602) switch default create its own scope
    "test262/test/language/statements/switch/scope-lex-class.js",
    "test262/test/language/statements/switch/scope-lex-generator.js",
    "test262/test/language/statements/switch/scope-lex-async-function.js",
    # TODO(T90540113) reassignment to function name in function body
    "test262/test/language/expressions/function/named-strict-error-reassign-fn-name-in-body.js",
    "test262/test/language/expressions/function/named-strict-error-reassign-fn-name-in-body-in-arrow.js",
    "test262/test/language/expressions/generators/named-strict-error-reassign-fn-name-in-body.js",
    "test262/test/language/expressions/generators/named-strict-error-reassign-fn-name-in-body-in-arrow.js",
    "test262/test/language/expressions/function/named-no-strict-reassign-fn-name-in-body.js",
    "test262/test/language/expressions/function/named-no-strict-reassign-fn-name-in-body-in-arrow.js",
    "test262/test/language/expressions/generators/named-no-strict-reassign-fn-name-in-body.js",
    "test262/test/language/expressions/generators/named-no-strict-reassign-fn-name-in-body-in-arrow.js",
    # global undefined
    "test262/test/language/identifier-resolution/assign-to-global-undefined.js",
    # Unsupported test262 features
    "test262/test/language/statements/do-while/let-array-with-newline.js",
    "test262/test/language/statements/for-await-of/let-array-with-newline.js",
    "test262/test/language/statements/for-in/let-array-with-newline.js",
    "test262/test/language/statements/for-of/let-array-with-newline.js",
    "test262/test/language/statements/for/let-array-with-newline.js",
    "test262/test/language/statements/if/let-array-with-newline.js",
    "test262/test/language/statements/labeled/let-array-with-newline.js",
    "test262/test/language/statements/while/let-array-with-newline.js",
    "test262/test/language/statements/with/let-array-with-newline.js",
    "test262/test/language/statements/for-await-of/let-block-with-newline.js",
    "test262/test/language/statements/for-in/let-block-with-newline.js",
    "test262/test/language/statements/for-of/let-block-with-newline.js",
    "test262/test/language/statements/for/let-block-with-newline.js",
    "test262/test/language/statements/if/let-block-with-newline.js",
    "test262/test/language/statements/labeled/let-block-with-newline.js",
    "test262/test/language/statements/while/let-block-with-newline.js",
    "test262/test/language/statements/with/let-block-with-newline.js",
    "test262/test/language/statements/for-await-of/let-identifier-with-newline.js",
    "test262/test/language/statements/for-in/let-identifier-with-newline.js",
    "test262/test/language/statements/for-of/let-identifier-with-newline.js",
    "test262/test/language/statements/for/let-identifier-with-newline.js",
    "test262/test/language/statements/if/let-identifier-with-newline.js",
    "test262/test/language/statements/labeled/let-identifier-with-newline.js",
    "test262/test/language/statements/while/let-identifier-with-newline.js",
    "test262/test/language/statements/with/let-identifier-with-newline.js",
    "test262/test/built-ins/Function/prototype/toString/",
    "test262/test/built-ins/Promise/",
    "test262/test/language/block-scope/",
    "test262/test/language/computed-property-names/",
    "test262/test/language/destructuring/",
    "test262/test/language/expressions/arrow-function/",
    "test262/test/language/expressions/assignment/destructuring/",
    "test262/test/language/expressions/async-arrow-function/",
    "test262/test/language/expressions/async-generator/",
    "test262/test/language/expressions/await/",
    "test262/test/language/expressions/class/",
    "test262/test/language/expressions/dynamic-import/",
    "test262/test/language/expressions/import.meta/",
    "test262/test/language/expressions/new.target/",
    "test262/test/language/expressions/object/method-definition/",
    "test262/test/language/expressions/super/",
    "test262/test/language/module-code/",
    "test262/test/language/rest-parameters/",
    "test262/test/language/statements/async-generator/",
    "test262/test/language/statements/class/",
    "test262/test/language/statements/let/",
    # Unsupported mjsunit features
    "mjsunit/arguments.js",
    "mjsunit/es6/array-copywithin.js",
    "mjsunit/es6/array-from.js",
    "mjsunit/es6/instanceof-proxies.js",
    "mjsunit/es6/math-cbrt.js",
    "mjsunit/es6/math-expm1.js",
    "mjsunit/es6/math-log1p.js",
    "mjsunit/es6/numeric-literals.js",
    "mjsunit/es6/object-literals-property-shorthand.js",
    "mjsunit/es6/promise-",
    "mjsunit/es6/string-raw.js",
    "mjsunit/es6/string-startwith.js",
    "mjsunit/es6/tail-call-",
    # These tests test for incorrect behavior of detached ArrayBuffer that v8
    # supports.
    "mjsunit/es6/typedarray-every.js",
    "mjsunit/es6/typedarray-foreach.js",
    "mjsunit/es7/array-includes-receiver.js",
    "mjsunit/es7/exponentiation-operator.js",
    "mjsunit/es8/syntactic-tail-call-simple.js",
    "mjsunit/es8/syntactic-tail-call.js",
    "mjsunit/harmony/atomics.js",
    "mjsunit/regress/regress-wasm-",
    "mjsunit/tools/",
    # Use of V8 intrinsics that Hermes doesn't have.
    "mjsunit/es6/math-log2-log10.js",
    "mjsunit/es6/reflect-prevent-extensions.js",
    "mjsunit/smi-mul.js",
    "mjsunit/array-construct-transition.js",
    "mjsunit/array-literal-feedback.js",
    "mjsunit/array-literal-transitions.js",
    "mjsunit/array-shift4.js",
    "mjsunit/assert-opt-and-deopt.js",
    "mjsunit/call-intrinsic-type-error.js",
    "mjsunit/compare-known-objects-slow.js",
    "mjsunit/constant-fold-control-instructions.js",
    "mjsunit/count-based-osr.js",
    "mjsunit/deopt-with-fp-regs.js",
    "mjsunit/fast-array-length.js",
    "mjsunit/fast-non-keyed.js",
    "mjsunit/fast-prototype.js",
    "mjsunit/generated-transition-stub.js",
    "mjsunit/getters-on-elements.js",
    "mjsunit/math-min-max.js",
    "mjsunit/migrations.js",
    # Template strings
    "mjsunit/d8-worker-spawn-worker.js",
    "mjsunit/d8-worker-sharedarraybuffer.js",
    "mjsunit/d8-worker.js",
    # Sparse arrays
    "mjsunit/array-join.js",
    "mjsunit/sparse-array-reverse.js",
    # Overly large typed array (uses v8 flag --mock-arraybuffer-allocator)
    "mjsunit/regress/regress-crbug-380671.js",
    # for-of
    "mjsunit/compiler/optimize_max.js",
    "mjsunit/compiler/optimize_min.js",
    "mjsunit/es6/typedarray-from.js",
    "mjsunit/es6/typedarray-of.js",
    "mjsunit/es6/typedarray-reduce.js",
    "mjsunit/es6/typedarray-tostring.js",
    "mjsunit/es6/typedarray-species.js",
    "mjsunit/es6/typedarray-sort.js",
    # Symbol
    "mjsunit/es6/array-species-neg-zero.js",
    "mjsunit/es6/collections.js",
    "mjsunit/es6/instanceof.js",
    "mjsunit/es6/iterator-prototype.js",
    "mjsunit/es6/object-tostring.js",
    "mjsunit/es6/pattern-brand-check.js",
    "mjsunit/es6/prototype-ordinary-objects.js",
    "mjsunit/es6/regexp-constructor.js",
    "mjsunit/es6/species.js",
    "mjsunit/primitive-keyed-access.js",
    # Array.prototype.includes
    "mjsunit/es7/array-includes.js",
    # Promise
    "mjsunit/es6/microtask-delivery.js",
    "test262/test/built-ins/Object/prototype/toString/symbol-tag-non-str-builtin.js",
    "mjsunit/es6/reflect-get-prototype-of.js",
    # Should early error
    "test262/test/language/statements/for-in/decl-fun.js",
    "test262/test/language/statements/for/decl-fun.js",
    "test262/test/language/statements/while/decl-fun.js",
    # async
    "mjsunit/es6/function-length-configurable.js",
    "mjsunit/es6/generators-debug-liveedit.js",
    "mjsunit/es6/generators-objects.js",
    "mjsunit/es6/generators-parsing.js",
    "mjsunit/es6/generators-poisoned-properties.js",
    "mjsunit/es6/generators-relocation.js",
    "mjsunit/es6/generators-runtime.js",
    "mjsunit/es6/generators-states.js",
    "mjsunit/es6/iteration-semantics.js",
    "mjsunit/harmony/async-debug-caught-exception-cases0.js",
    "mjsunit/harmony/async-debug-caught-exception-cases1.js",
    "mjsunit/harmony/async-debug-caught-exception-cases2.js",
    "mjsunit/harmony/async-debug-caught-exception-cases3.js",
    # async function missing errors: TODO(T80014951)
    "test262/test/language/statements/async-function/escaped-async.js",
    "test262/test/language/statements/async-function/early-errors-declaration-formals-body-duplicate.js",
    "test262/test/language/expressions/async-function/escaped-async.js",
    "test262/test/language/expressions/async-function/early-errors-expression-formals-body-duplicate.js",
    # async with escape is a valid loop variable: TODO(T80014951)
    "test262/test/language/statements/for-of/head-lhs-async-escaped.js",
    # let/const (block scope)
    "esprima/test_fixtures/declaration/let/",
    "esprima/test_fixtures/declaration/const/",
    "esprima/test_fixtures/statement/iteration/for-let-let.js",
    "esprima/test_fixtures/statement/iteration/const_forin.js",
    "esprima/test_fixtures/statement/iteration/migrated_0012.js",
    "esprima/test_fixtures/statement/iteration/migrated_0020.js",
    "mjsunit/compiler/osr-block-scope-id.js",
    "mjsunit/es6/debug-blockscopes.js",
    "mjsunit/es6/regexp-tolength.js",
    "mjsunit/es6/regexp-tostring.js",
    "mjsunit/es6/regress/regress-3426.js",
    "test262/test/language/global-code/script-decl-lex-restricted-global.js",
    "test262/test/language/statements/continue/shadowing-loop-variable-in-same-scope-as-continue.js",
    "test262/test/language/global-code/decl-lex-restricted-global.js",
    "test262/test/language/expressions/equals/to-prim-hint.js",
    "test262/test/language/statements/for-in/head-let-bound-names-dup.js",
    "test262/test/language/statements/for-in/head-let-bound-names-fordecl-tdz.js",
    "test262/test/language/statements/for-in/head-let-destructuring.js",
    "test262/test/language/statements/for-in/head-let-fresh-binding-per-iteration.js",
    "test262/test/language/statements/for/head-let-destructuring.js",
    "test262/test/language/statements/for-of/head-let-",
    "test262/test/language/statements/try/early-catch-function.js",
    "test262/test/language/statements/try/optional-catch-binding-lexical.js",
    "test262/test/language/statements/switch/syntax/redeclaration/",
    "test262/test/language/global-code/block-decl-strict.js",
    "test262/test/language/function-code/block-decl-strict.js",
    "test262/test/language/function-code/block-decl-onlystrict.js",
    "test262/test/language/expressions/generators/arguments-with-arguments-fn.js",
    "test262/test/language/expressions/generators/scope-name-var-open-non-strict.js",
    "test262/test/language/expressions/object/scope-gen-meth-paramsbody-var-open.js",
    "test262/test/language/statements/generators/arguments-with-arguments-fn.js",
    "test262/test/language/statements/generators/arguments-with-arguments-lex.js",
    "test262/test/language/statements/generators/scope-name-var-open-non-strict.js",
    "test262/test/language/statements/generators/scope-paramsbody-var-open.js",
    # let/const temporarily disabled
    "test262/test/language/future-reserved-words/let-strict.js",
    "test262/test/language/statements/for-in/head-let-bound-names-in-stmt.js",
    "test262/test/language/statements/for-in/head-lhs-let.js",
    "test262/test/language/statements/for-in/labelled-fn-stmt-let.js",
    "test262/test/language/statements/for-in/head-let-bound-names-let.js",
    "test262/test/language/statements/for-in/identifier-let-allowed-as-lefthandside-expression-not-strict.js",
    "test262/test/language/statements/for/head-let-bound-names-in-stmt.js",
    "test262/test/language/statements/for/head-lhs-let.js",
    "test262/test/language/statements/for/labelled-fn-stmt-let.js",
    "test262/test/harness/assert-throws-early-syntaxerror.js",
    "test262/test/language/global-code/script-decl-lex-var.js",
    # Labels
    "test262/test/language/statements/if/labelled-fn-stmt-second.js",
    "test262/test/language/statements/for-in/labelled-fn-stmt-lhs.js",
    "test262/test/language/statements/for-in/labelled-fn-stmt-var.js",
    "test262/test/language/statements/for/labelled-fn-stmt-expr.js",
    "test262/test/language/statements/for/labelled-fn-stmt-var.js",
    "test262/test/language/statements/if/labelled-fn-stmt-lone.js",
    "test262/test/language/statements/while/labelled-fn-stmt.js",
    # destructuring
    "mjsunit/es6/destructuring-parameters-literalcount-nolazy.js",
    "mjsunit/es6/destructuring-parameters-literalcount.js",
    # computed property names
    "esprima/test_fixtures/expression/primary/object/migrated_0034.js",
    "esprima/test_fixtures/expression/primary/object/migrated_0035.js",
    "esprima/test_fixtures/expression/primary/object/migrated_0036.js",
    "mjsunit/es6/computed-property-names.js",
    "test262/test/harness/verifyProperty-restore-accessor-symbol.js",
    "test262/test/language/expressions/object/fn-name-accessor-get.js",
    "test262/test/language/expressions/object/fn-name-accessor-set.js",
    "test262/test/language/expressions/object/fn-name-arrow.js",
    "test262/test/language/expressions/object/fn-name-cover.js",
    "test262/test/language/expressions/object/fn-name-fn.js",
    # Proxy
    # T68982208 Remove the following two tests from blacklist in the next update.
    # These two tests don't support creation using revoked proxy.
    "test262/test/built-ins/Proxy/create-handler-is-revoked-proxy.js",
    "test262/test/built-ins/Proxy/create-target-is-revoked-proxy.js",
    "mjsunit/array-isarray.js",
    "mjsunit/es6/classof-proxy.js",
    "test262/test/language/statements/for-of/iterator-next-result-type.js",
    "test262/test/annexB/built-ins/Object/prototype/__proto__/set-cycle-shadowed.js",
    # Missing/undefined Proxy traps
    "test262/test/built-ins/Proxy/defineProperty/trap-is-missing-target-is-proxy.js",
    "test262/test/built-ins/Proxy/defineProperty/trap-is-undefined-target-is-proxy.js",
    "test262/test/built-ins/Proxy/getOwnPropertyDescriptor/trap-is-undefined-target-is-proxy.js",
    "test262/test/built-ins/Proxy/set/trap-is-missing-receiver-multiple-calls-index.js",
    "test262/test/built-ins/Proxy/set/trap-is-missing-receiver-multiple-calls.js",
    # These test proxy validations which don't exist in the ES10 spec or
    # or any spec I can find.
    "test262/test/built-ins/Proxy/getOwnPropertyDescriptor/resultdesc-is-not-configurable-not-writable-targetdesc-is-writable.js",
    "test262/test/built-ins/Proxy/deleteProperty/targetdesc-is-configurable-target-is-not-extensible.js",
    "test262/test/built-ins/Proxy/defineProperty/targetdesc-not-configurable-writable-desc-not-writable.js",
    # Use of "constructor" property
    "test262/test/built-ins/Array/prototype/concat/create-ctor-poisoned.js",
    "test262/test/built-ins/Array/prototype/filter/create-ctor-poisoned.js",
    "test262/test/built-ins/Array/prototype/map/create-ctor-poisoned.js",
    "test262/test/built-ins/Array/prototype/slice/create-ctor-poisoned.js",
    "test262/test/built-ins/Array/prototype/splice/create-ctor-poisoned.js",
    "test262/test/built-ins/Array/prototype/concat/create-ctor-non-object.js",
    "test262/test/built-ins/Array/prototype/filter/create-ctor-non-object.js",
    "test262/test/built-ins/Array/prototype/map/create-ctor-non-object.js",
    "test262/test/built-ins/Array/prototype/slice/create-ctor-non-object.js",
    "test262/test/built-ins/Array/prototype/splice/create-ctor-non-object.js",
    "test262/test/built-ins/Array/prototype/flat/non-object-ctor-throws.js",
    "test262/test/built-ins/Array/prototype/flatMap/this-value-ctor-non-object.js",
    # TODO(T76109235) proposal-relative-indexing-method
    "test262/test/built-ins/Array/prototype/at/",
    "test262/test/built-ins/TypedArray/prototype/at/",
    "test262/test/built-ins/String/prototype/at/",
    # TODO(T90541287) array length coercion order
    "test262/test/built-ins/Array/length/define-own-prop-length-coercion-order-set.js",
    "test262/test/built-ins/Array/length/define-own-prop-length-coercion-order.js",
    "test262/test/built-ins/Array/length/define-own-prop-length-overflow-order.js",
    # Enumerable attributes shadowing in the prototype chain.
    # T23621872
    "test262/test/language/statements/for-in/12.6.4-2.js",
    "test262/test/language/statements/for-in/order-enumerable-shadowed.js",
    # Multiple evaluation
    # T23622428
    "test262/test/language/expressions/prefix-decrement/S11.4.5_A5_T5.js",
    "test262/test/language/expressions/prefix-decrement/S11.4.5_A6_T3.js",
    "test262/test/language/expressions/prefix-increment/S11.4.4_A6_T3.js",
    "test262/test/language/expressions/prefix-increment/S11.4.4_A5_T5.js",
    "test262/test/language/expressions/postfix-increment/S11.3.1_A6_T3.js",
    "test262/test/language/expressions/postfix-increment/S11.3.1_A5_T5.js",
    "test262/test/language/expressions/postfix-decrement/S11.3.2_A6_T3.js",
    "test262/test/language/expressions/postfix-decrement/S11.3.2_A5_T5.js",
    "test262/test/language/expressions/assignment/S11.13.1_A7_T2.js",
    "test262/test/language/expressions/assignment/S11.13.1_A7_T3.js",
    "test262/test/language/expressions/assignment/S11.13.1_A7_T1.js",
    "test262/test/language/expressions/assignment/S11.13.1_A5_T5.js",
    "test262/test/language/expressions/compound-assignment/S11.13.2_A5.1_T5.js",
    "test262/test/language/expressions/compound-assignment/S11.13.2_A5.3_T5.js",
    "test262/test/language/expressions/compound-assignment/S11.13.2_A7.2_T4.js",
    "test262/test/language/expressions/compound-assignment/S11.13.2_A7.6_T4.js",
    "test262/test/language/expressions/compound-assignment/S11.13.2_A7.10_T4.js",
    "test262/test/language/expressions/compound-assignment/S11.13.2_A5.7_T5.js",
    "test262/test/language/expressions/compound-assignment/S11.13.2_A7.4_T4.js",
    "test262/test/language/expressions/compound-assignment/S11.13.2_A5.5_T5.js",
    "test262/test/language/expressions/compound-assignment/S11.13.2_A7.3_T4.js",
    "test262/test/language/expressions/compound-assignment/S11.13.2_A5.2_T5.js",
    "test262/test/language/expressions/compound-assignment/S11.13.2_A7.1_T4.js",
    "test262/test/language/expressions/compound-assignment/S11.13.2_A5.4_T5.js",
    "test262/test/language/expressions/compound-assignment/S11.13.2_A7.5_T4.js",
    "test262/test/language/expressions/compound-assignment/S11.13.2_A7.11_T4.js",
    "test262/test/language/expressions/compound-assignment/S11.13.2_A7.7_T4.js",
    "test262/test/language/expressions/compound-assignment/S11.13.2_A5.6_T5.js",
    "test262/test/language/expressions/compound-assignment/S11.13.2_A5.8_T5.js",
    "test262/test/language/expressions/compound-assignment/S11.13.2_A7.9_T4.js",
    "test262/test/language/expressions/compound-assignment/S11.13.2_A5.10_T5.js",
    "test262/test/language/expressions/compound-assignment/S11.13.2_A7.8_T4.js",
    "test262/test/language/expressions/compound-assignment/S11.13.2_A5.9_T5.js",
    "test262/test/language/expressions/compound-assignment/S11.13.2_A5.11_T5.js",
    # Redefinition
    "mjsunit/es6/regress/regress-2243.js",
    # function name is configurable
    "test262/test/language/expressions/function/name.js",
    "test262/test/language/expressions/generators/name.js",
    # TODO(T90541883) arguments and caller should not be created for strict-mode function and class
    "test262/test/language/expressions/function/forbidden-ext/b1/cls-expr-meth-forbidden-ext-direct-access-prop-arguments.js",
    "test262/test/language/expressions/function/forbidden-ext/b1/cls-expr-meth-forbidden-ext-direct-access-prop-caller.js",
    "test262/test/language/expressions/function/forbidden-ext/b1/func-expr-strict-forbidden-ext-direct-access-prop-caller.js",
    "test262/test/language/expressions/function/forbidden-ext/b1/func-expr-strict-forbidden-ext-direct-access-prop-arguments.js",
    "test262/test/language/statements/function/forbidden-ext/b1/cls-expr-meth-forbidden-ext-direct-access-prop-caller.js",
    "test262/test/language/statements/function/forbidden-ext/b1/cls-expr-meth-forbidden-ext-direct-access-prop-arguments.js",
    # accessors in JSLib
    # Escaped identifiers
    "test262/test/language/expressions/assignment/dstr/syntax-error-ident-ref-",
    "test262/test/language/identifiers/other_id_continue-escaped.js",
    "test262/test/language/identifiers/other_id_continue.js",
    "test262/test/language/identifiers/other_id_start-escaped.js",
    "test262/test/language/identifiers/other_id_start.js",
    "test262/test/language/identifiers/vertical-tilde-continue-escaped.js",
    "test262/test/language/identifiers/vertical-tilde-continue.js",
    "test262/test/language/identifiers/vertical-tilde-start-escaped.js",
    "test262/test/language/identifiers/vertical-tilde-start.js",
    # Reserved words should fail when escaped
    "test262/test/language/identifiers/val-yield-strict.js",
    "test262/test/language/identifiers/val-catch-via-escape-hex4.js",
    "test262/test/language/identifiers/val-null-via-escape-hex4.js",
    "test262/test/language/identifiers/val-if-via-escape-hex4.js",
    "test262/test/language/identifiers/val-false-via-escape-hex4.js",
    "test262/test/language/identifiers/val-extends-via-escape-hex4.js",
    "test262/test/language/identifiers/val-true-via-escape-hex4.js",
    "test262/test/language/identifiers/val-in-via-escape-hex4.js",
    "test262/test/language/identifiers/val-void-via-escape-hex4.js",
    "test262/test/language/identifiers/val-do-via-escape-hex4.js",
    "test262/test/language/identifiers/val-for-via-escape-hex4.js",
    "test262/test/language/identifiers/val-try-via-escape-hex4.js",
    "test262/test/language/identifiers/val-break-via-escape-hex4.js",
    "test262/test/language/identifiers/val-typeof-via-escape-hex4.js",
    "test262/test/language/identifiers/val-switch-via-escape-hex4.js",
    "test262/test/language/identifiers/val-enum-via-escape-hex4.js",
    "test262/test/language/identifiers/val-export-via-escape-hex4.js",
    "test262/test/language/identifiers/val-var-via-escape-hex4.js",
    "test262/test/language/identifiers/val-debugger-via-escape-hex4.js",
    "test262/test/language/identifiers/val-return-via-escape-hex4.js",
    "test262/test/language/identifiers/val-default-via-escape-hex4.js",
    "test262/test/language/identifiers/val-new-via-escape-hex4.js",
    "test262/test/language/identifiers/val-class-via-escape-hex4.js",
    "test262/test/language/identifiers/val-throw-via-escape-hex4.js",
    "test262/test/language/identifiers/val-function-via-escape-hex4.js",
    "test262/test/language/identifiers/val-instanceof-via-escape-hex4.js",
    "test262/test/language/identifiers/val-super-via-escape-hex4.js",
    "test262/test/language/identifiers/val-import-via-escape-hex4.js",
    "test262/test/language/identifiers/val-delete-via-escape-hex4.js",
    "test262/test/language/identifiers/val-case-via-escape-hex4.js",
    "test262/test/language/identifiers/val-finally-via-escape-hex4.js",
    "test262/test/language/identifiers/val-while-via-escape-hex4.js",
    "test262/test/language/identifiers/val-else-via-escape-hex4.js",
    "test262/test/language/identifiers/val-continue-via-escape-hex4.js",
    "test262/test/language/identifiers/val-super-via-escape-hex.js",
    "test262/test/language/identifiers/val-export-via-escape-hex.js",
    "test262/test/language/identifiers/val-delete-via-escape-hex.js",
    "test262/test/language/identifiers/val-false-via-escape-hex.js",
    "test262/test/language/identifiers/val-function-via-escape-hex.js",
    "test262/test/language/identifiers/val-this-via-escape-hex.js",
    "test262/test/language/identifiers/val-import-via-escape-hex.js",
    "test262/test/language/identifiers/val-new-via-escape-hex.js",
    "test262/test/language/identifiers/val-typeof-via-escape-hex.js",
    "test262/test/language/identifiers/val-null-via-escape-hex.js",
    "test262/test/language/identifiers/val-with-via-escape-hex.js",
    "test262/test/language/identifiers/val-extends-via-escape-hex.js",
    "test262/test/language/identifiers/val-continue-via-escape-hex.js",
    "test262/test/language/identifiers/val-enum-via-escape-hex.js",
    "test262/test/language/identifiers/val-break-via-escape-hex.js",
    "test262/test/language/identifiers/val-case-via-escape-hex.js",
    "test262/test/language/identifiers/val-void-via-escape-hex.js",
    "test262/test/language/identifiers/val-if-via-escape-hex.js",
    "test262/test/language/identifiers/val-do-via-escape-hex.js",
    "test262/test/language/identifiers/val-throw-via-escape-hex.js",
    "test262/test/language/identifiers/val-instanceof-via-escape-hex.js",
    "test262/test/language/identifiers/val-in-via-escape-hex.js",
    "test262/test/language/identifiers/val-while-via-escape-hex.js",
    "test262/test/language/identifiers/val-default-via-escape-hex.js",
    "test262/test/language/identifiers/val-var-via-escape-hex.js",
    "test262/test/language/identifiers/val-try-via-escape-hex.js",
    "test262/test/language/identifiers/val-true-via-escape-hex.js",
    "test262/test/language/identifiers/val-return-via-escape-hex.js",
    "test262/test/language/identifiers/val-class-via-escape-hex.js",
    "test262/test/language/identifiers/val-switch-via-escape-hex.js",
    "test262/test/language/identifiers/val-for-via-escape-hex.js",
    "test262/test/language/identifiers/val-finally-via-escape-hex.js",
    "test262/test/language/identifiers/val-debugger-via-escape-hex.js",
    "test262/test/language/identifiers/val-else-via-escape-hex.js",
    "test262/test/language/identifiers/val-catch-via-escape-hex.js",
    "test262/test/language/reserved-words/ident-reference-false-escaped.js",
    "test262/test/language/reserved-words/label-ident-true-escaped.js",
    "test262/test/language/reserved-words/label-ident-false-escaped.js",
    "test262/test/language/reserved-words/label-ident-null-escaped.js",
    "test262/test/language/reserved-words/ident-reference-true-escaped.js",
    "test262/test/language/reserved-words/ident-reference-null-escaped.js",
    "test262/test/language/future-reserved-words/implements-strict-escaped.js",
    "test262/test/language/future-reserved-words/let-strict-escaped.js",
    "test262/test/language/future-reserved-words/private-strict-escaped.js",
    "test262/test/language/future-reserved-words/static-strict-escaped.js",
    "test262/test/language/future-reserved-words/public-strict-escaped.js",
    "test262/test/language/future-reserved-words/protected-strict-escaped.js",
    "test262/test/language/future-reserved-words/yield-strict-escaped.js",
    "test262/test/language/future-reserved-words/package-strict-escaped.js",
    "test262/test/language/statements/labeled/value-yield-strict-escaped.js",
    "test262/test/language/statements/for-of/escaped-of.js",
    "test262/test/language/expressions/new.target/escaped-new.js",
    "test262/test/language/future-reserved-words/interface-strict-escaped.js",
    "test262/test/language/statements/try/catch-parameter-boundnames-restriction-eval-negative-early.js",
    # exp operator
    "test262/test/built-ins/Array/prototype/reverse/length-exceeding-integer-limit-with-object.js",
    "test262/test/built-ins/Array/prototype/splice/clamps-length-to-integer-limit.js",
    "test262/test/built-ins/Array/prototype/splice/length-exceeding-integer-limit-shrink-array.js",
    "test262/test/built-ins/Array/prototype/splice/throws-if-integer-limit-exceeded.js",
    "test262/test/built-ins/Array/prototype/splice/length-and-deleteCount-exceeding-integer-limit.js",
    "test262/test/built-ins/Array/prototype/splice/length-near-integer-limit-grow-array.js",
    "test262/test/built-ins/Array/prototype/slice/length-exceeding-integer-limit.js",
    # very large arrays
    "test262/test/built-ins/Array/prototype/reverse/length-exceeding-integer-limit-with-proxy.js",
    "test262/test/built-ins/Array/prototype/slice/length-exceeding-integer-limit-proxied-array.js",
    "test262/test/built-ins/Array/prototype/unshift/length-near-integer-limit.js",
    # default arguments
    "esprima/test_fixtures/expression/primary/object/migrated_0038.js",
    "mjsunit/es6/default-parameters-debug.js",
    "test262/test/built-ins/ThrowTypeError/unique-per-realm-non-simple.js",
    "test262/test/language/arguments-object/unmapped/via-params-dflt.js",
    "test262/test/language/arguments-object/unmapped/via-params-dstr.js",
    "test262/test/language/arguments-object/unmapped/via-params-rest.js",
    "test262/test/language/expressions/function/arguments-with-arguments-fn.js",
    "test262/test/language/expressions/function/arguments-with-arguments-lex.js",
    "test262/test/language/expressions/function/scope-name-var-open-non-strict.js",
    "test262/test/language/expressions/function/scope-name-var-open-strict.js",
    "test262/test/language/expressions/function/scope-paramsbody-var-open.js",
    "test262/test/language/expressions/generators/scope-paramsbody-var-open.js",
    "test262/test/language/expressions/generators/scope-name-var-open-strict.js",
    "test262/test/language/expressions/generators/dflt-params-trailing-comma.js",
    "test262/test/language/statements/function/arguments-with-arguments-fn.js",
    "test262/test/language/statements/function/arguments-with-arguments-lex.js",
    "test262/test/language/statements/function/scope-paramsbody-var-open.js",
    "test262/test/language/statements/try/catch-parameter-boundnames-restriction-arguments-negative-early.js",
    "test262/test/language/statements/try/scope-catch-param-lex-open.js",
    "test262/test/language/statements/generators/generator-created-after-decl-inst.js",
    "test262/test/language/expressions/generators/generator-created-after-decl-inst.js",
    # trailing comma
    "test262/test/language/expressions/function/dflt-params-trailing-comma.js",
    # classes and methods
    "mjsunit/accessors-no-prototype.js",
    "mjsunit/array-functions-prototype-misc.js",
    "mjsunit/es6/class-computed-property-names-super.js",
    "mjsunit/es6/classes-derived-return-type.js",
    "mjsunit/es6/classes-experimental.js",
    "mjsunit/es6/classes-maps.js",
    "mjsunit/es6/classes-subclass-arrays.js",
    "mjsunit/es6/classes-subclass-builtins.js",
    "mjsunit/es6/classes-super.js",
    "mjsunit/es6/computed-property-names-classes.js",
    "mjsunit/es6/computed-property-names-object-literals-methods.js",
    "mjsunit/es6/computed-property-names-super.js",
    "test262/test/built-ins/Array/prototype/concat/Array.prototype.concat_non-array.js",
    "test262/test/built-ins/TypedArray/from/this-is-not-constructor.js",
    "test262/test/built-ins/TypedArray/of/this-is-not-constructor.js",
    "test262/test/built-ins/TypedArray/prototype/fill/fill-values-conversion-once.js",
    "test262/test/built-ins/TypedArrays/buffer-arg-length-access-throws.js",
    "test262/test/built-ins/TypedArrays/buffer-arg-length-to-number-detachbuffer.js",
    "test262/test/built-ins/TypedArrays/from/property-abrupt-completion.js",
    "test262/test/built-ins/TypedArrays/from/set-value-abrupt-completion.js",
    "test262/test/built-ins/TypedArrays/from/this-is-not-constructor.js",
    "test262/test/built-ins/TypedArrays/object-arg-as-generator-iterable-returns.js",
    "test262/test/built-ins/TypedArrays/object-arg-iterating-throws.js",
    "test262/test/built-ins/TypedArrays/object-arg-iterator-throws.js",
    "test262/test/built-ins/TypedArrays/object-arg-length-throws.js",
    "test262/test/built-ins/TypedArrays/object-arg-throws-from-property.js",
    "test262/test/built-ins/TypedArrays/object-arg-throws-setting-property.js",
    "test262/test/built-ins/TypedArrays/of/argument-number-value-throws.js",
    "test262/test/built-ins/TypedArrays/of/this-is-not-constructor.js",
    "test262/test/built-ins/TypedArrays/typedarray-arg-other-ctor-buffer-ctor-access-throws.js",
    "test262/test/language/computed-property-names/class/",
    "test262/test/language/computed-property-names/to-name-side-effects/numbers-class.js",
    "test262/test/language/expressions/assignment/destructuring/keyed-destructuring-property-reference-target-evaluation-order.js",
    "test262/test/language/expressions/assignment/target-super-identifier-reference-null.js",
    "test262/test/language/expressions/assignment/target-super-computed-reference-null.js",
    "test262/test/language/expressions/object/accessor-name-literal-numeric-binary.js",
    "test262/test/language/expressions/object/accessor-name-literal-numeric-octal.js",
    "test262/test/language/expressions/object/concise-generator.js",
    "test262/test/language/expressions/object/method.js",
    "test262/test/language/expressions/object/scope-meth-paramsbody-var-close.js",
    "test262/test/language/expressions/object/scope-meth-paramsbody-var-open.js",
    "test262/test/language/expressions/object/scope-setter-paramsbody-var-close.js",
    "test262/test/language/expressions/object/scope-setter-paramsbody-var-open.js",
    "test262/test/language/expressions/typeof/get-value.js",
    "test262/test/language/expressions/object/getter-super-prop.js",
    "test262/test/language/expressions/object/setter-super-prop.js",
    # TODO(T90542236)
    "test262/test/language/expressions/object/identifier-shorthand-let-invalid-strict-mode.js",
    "test262/test/language/global-code/decl-lex-configurable-global.js",
    "test262/test/language/arguments-object/cls-decl-",
    "test262/test/language/arguments-object/cls-expr-",
    "test262/test/language/expressions/function/dstr/ary-ptrn-elem-id-init-fn-name-class.js",
    "test262/test/language/expressions/function/dstr/dflt-ary-ptrn-elem-id-init-fn-name-class.js",
    "test262/test/language/expressions/function/dstr/dflt-obj-ptrn-id-init-fn-name-class.js",
    "test262/test/language/expressions/function/dstr/obj-ptrn-id-init-fn-name-class.js",
    "test262/test/language/expressions/generators/dstr/ary-ptrn-elem-id-init-fn-name-class.js",
    "test262/test/language/expressions/generators/dstr/dflt-ary-ptrn-elem-id-init-fn-name-class.js",
    "test262/test/language/expressions/generators/dstr/dflt-obj-ptrn-id-init-fn-name-class.js",
    "test262/test/language/expressions/generators/dstr/obj-ptrn-id-init-fn-name-class.js",
    "test262/test/language/expressions/object/dstr/gen-meth-ary-ptrn-elem-id-init-fn-name-class.js",
    "test262/test/language/expressions/object/dstr/gen-meth-dflt-ary-ptrn-elem-id-init-fn-name-class.js",
    "test262/test/language/expressions/object/dstr/gen-meth-dflt-obj-ptrn-id-init-fn-name-class.js",
    "test262/test/language/expressions/object/dstr/gen-meth-obj-ptrn-id-init-fn-name-class.js",
    "test262/test/language/expressions/object/dstr/meth-ary-ptrn-elem-id-init-fn-name-class.js",
    "test262/test/language/expressions/object/dstr/meth-dflt-ary-ptrn-elem-id-init-fn-name-class.js",
    "test262/test/language/expressions/object/dstr/meth-dflt-obj-ptrn-id-init-fn-name-class.js",
    "test262/test/language/expressions/object/dstr/meth-obj-ptrn-id-init-fn-name-class.js",
    "test262/test/language/statements/for-of/dstr/let-obj-ptrn-id-init-fn-name-class.js",
    "test262/test/language/statements/for-of/dstr/var-ary-ptrn-elem-id-init-fn-name-class.js",
    "test262/test/language/statements/for-of/dstr/array-elem-target-simple-no-strict.js",
    "test262/test/language/statements/for-of/dstr/let-ary-ptrn-elem-id-init-fn-name-class.js",
    "test262/test/language/statements/for-of/dstr/obj-id-init-simple-no-strict.js",
    "test262/test/language/statements/for-of/dstr/obj-id-simple-no-strict.js",
    "test262/test/language/statements/for-of/dstr/var-obj-ptrn-id-init-fn-name-class.js",
    "test262/test/language/statements/for-of/dstr/array-elem-init-simple-no-strict.js",
    "test262/test/language/statements/variable/dstr/ary-ptrn-elem-id-init-fn-name-class.js",
    "test262/test/language/statements/variable/dstr/obj-ptrn-id-init-fn-name-class.js",
    "test262/test/language/statements/function/dstr/ary-ptrn-elem-id-init-fn-name-class.js",
    "test262/test/language/statements/function/dstr/obj-ptrn-id-init-fn-name-class.js",
    "test262/test/language/statements/function/dstr/dflt-obj-ptrn-id-init-fn-name-class.js",
    "test262/test/language/statements/function/dstr/dflt-ary-ptrn-elem-id-init-fn-name-class.js",
    "test262/test/language/statements/for/dstr/let-obj-ptrn-id-init-fn-name-class.js",
    "test262/test/language/statements/for/dstr/var-ary-ptrn-elem-id-init-fn-name-class.js",
    "test262/test/language/statements/for/dstr/let-ary-ptrn-elem-id-init-fn-name-class.js",
    "test262/test/language/statements/for/dstr/var-obj-ptrn-id-init-fn-name-class.js",
    "test262/test/language/expressions/logical-assignment/lgcl-or-assignment-operator-namedevaluation-class-expression.js",
    "test262/test/language/expressions/logical-assignment/lgcl-and-assignment-operator-namedevaluation-class-expression.js",
    "test262/test/language/expressions/logical-assignment/lgcl-nullish-assignment-operator-namedevaluation-class-expression.js",
    # T34396912 .prototype property on getter/setter
    "test262/test/built-ins/Function/prototype/Symbol.hasInstance/this-val-poisoned-prototype.js",
    # spread operator
    "mjsunit/es6/regress/regress-4298.js",
    "mjsunit/es6/regress/regress-4417.js",
    "mjsunit/es6/spread-array.js",
    "mjsunit/es6/spread-call-new-class.js",
    "mjsunit/es6/spread-call-new.js",
    "mjsunit/es6/spread-call-super-property.js",
    "mjsunit/es6/spread-call.js",
    "test262/test/language/arguments-object/meth-args-trailing-comma-spread-operator.js",
    "test262/test/language/arguments-object/func-expr-args-trailing-comma-spread-operator.js",
    "test262/test/language/arguments-object/func-decl-args-trailing-comma-spread-operator.js",
    # arrow funs
    "mjsunit/array-indexing-receiver.js",
    "mjsunit/array-sort.js",
    "mjsunit/array-tostring.js",
    "mjsunit/es6/array-concat.js",
    "mjsunit/es6/array-length.js",
    "mjsunit/es6/array-prototype-values.js",
    "mjsunit/es6/array-species-constructor-accessor.js",
    "mjsunit/es6/array-species-constructor-delete.js",
    "mjsunit/es6/array-species-constructor.js",
    "mjsunit/es6/array-species-delete.js",
    "mjsunit/es6/array-species-modified.js",
    "mjsunit/es6/array-species-parent-constructor.js",
    "mjsunit/es6/array-species-proto.js",
    "mjsunit/es6/arraybuffer-species.js",
    "mjsunit/es6/arrow-functions-lexical-arguments.js",
    "mjsunit/es6/arrow-functions.js",
    "mjsunit/es6/arrow-rest-params-lazy-parsing.js",
    "mjsunit/es6/arrow-rest-params.js",
    "mjsunit/es6/object-assign.js",
    "mjsunit/es6/object-literals-method.js",
    "mjsunit/es6/string-replace.js",
    "mjsunit/es6/tail-call.js",
    "mjsunit/modules-exports2.js",
    "test262/test/harness/verifyProperty-restore-accessor.js",
    "test262/test/harness/detachArrayBuffer-host-detachArrayBuffer.js",
    "test262/test/harness/assert-throws-early-incorrect-ctor.js",
    # Reflect
    "test262/test/language/expressions/typeof/built-in-ordinary-objects-no-call.js",
    "test262/test/built-ins/TypedArrays/buffer-arg-use-default-proto-if-custom-proto-is-not-object.js",
    "test262/test/built-ins/TypedArrays/typedarray-arg-use-default-proto-if-custom-proto-is-not-object.js",
    "test262/test/built-ins/TypedArrays/object-arg-use-default-proto-if-custom-proto-is-not-object.js",
    "test262/test/built-ins/TypedArrays/length-arg-use-default-proto-if-custom-proto-is-not-object.js",
    "test262/test/built-ins/TypedArrays/no-args-use-default-proto-if-custom-proto-is-not-object.js",
    "test262/test/built-ins/Object/internals/DefineOwnProperty/consistent-value-function-arguments.js",
    "test262/test/built-ins/Object/internals/DefineOwnProperty/consistent-value-function-caller.js",
    "test262/test/built-ins/Object/internals/DefineOwnProperty/consistent-value-regexp-$1.js",
    "test262/test/built-ins/Object/internals/DefineOwnProperty/consistent-writable-regexp-$1.js",
    "test262/test/built-ins/Object/internals/DefineOwnProperty/consistent-value-regexp-dollar1.js",
    "test262/test/built-ins/Object/internals/DefineOwnProperty/consistent-writable-regexp-dollar1.js",
    # Realm
    "mjsunit/regress/regress-crbug-501711.js",
    # leaking arguments
    "test262/test/built-ins/ThrowTypeError/name.js",
    "test262/test/built-ins/ThrowTypeError/unique-per-realm-function-proto.js",
    "test262/test/built-ins/ThrowTypeError/frozen.js",
    "test262/test/built-ins/ThrowTypeError/extensible.js<Paste>",
    # arguments object tracking local names
    "test262/test/language/arguments-object/mapped/nonconfigurable-descriptors-set-value-with-define-property.js",
    "test262/test/language/arguments-object/mapped/nonconfigurable-nonwritable-descriptors-set-by-arguments.js",
    "test262/test/language/arguments-object/mapped/nonconfigurable-descriptors-with-param-assign.js",
    "test262/test/language/arguments-object/mapped/nonconfigurable-descriptors-set-value-by-arguments.js",
    "test262/test/language/arguments-object/mapped/nonconfigurable-nonwritable-descriptors-set-by-param.js",
    "test262/test/language/arguments-object/mapped/nonconfigurable-nonenumerable-nonwritable-descriptors-set-by-arguments.js",
    "test262/test/language/arguments-object/mapped/nonconfigurable-nonenumerable-nonwritable-descriptors-set-by-param.js",
    "test262/test/language/statements/for-of/arguments-mapped-aliasing.js",
    # redeclaration
    "test262/test/language/block-scope/syntax/redeclaration/var-declaration-attempt-to-redeclare-with-function-declaration.js",
    "test262/test/language/block-scope/syntax/redeclaration/function-declaration-attempt-to-redeclare-with-function-declaration.js",
    "test262/test/language/block-scope/syntax/redeclaration/function-declaration-attempt-to-redeclare-with-var-declaration.js",
    "test262/test/language/statements/switch/syntax/redeclaration/var-declaration-attempt-to-redeclare-with-function-declaration.js",
    # Template cache in Hermes is per-module, not per-realm.
    "test262/test/language/expressions/tagged-template/cache-differing-expressions-new-function.js",
    "test262/test/language/expressions/tagged-template/cache-identical-source.js",
    "test262/test/language/expressions/tagged-template/cache-differing-expressions.js",
    "test262/test/language/expressions/tagged-template/template-object-template-map.js",
    # ToLength changes after ES5.1
    "test262/test/built-ins/TypedArray/prototype/byteLength/detached-buffer.js",
    "test262/test/built-ins/TypedArray/prototype/every/callbackfn-detachbuffer.js",
    "test262/test/built-ins/TypedArray/prototype/length/detached-buffer.js",
    # RegExp changes
    # regexp-flags appears to loop forever even in d8.
    "mjsunit/es6/regexp-flags.js",
    # Invalid lookbehinds
    "test262/test/language/literals/regexp/invalid-range-lookbehind.js",
    "test262/test/language/literals/regexp/invalid-optional-lookbehind.js",
    "test262/test/language/literals/regexp/invalid-optional-negative-lookbehind.js",
    "test262/test/language/literals/regexp/invalid-range-negative-lookbehind.js",
    # unicode-regexp-ignore-case-noi18n is an incorrect test: it falsely
    # asserts that U+212B (Angstrom Sign) and U+00E5 (A with ring) are not
    # equal under case folding.
    "mjsunit/es6/unicode-regexp-ignore-case-noi18n.js",
    # This tests behavior in ES2018.
    "test262/test/built-ins/RegExp/prototype/Symbol.search/lastindex-no-restore.js",
    # species constructors
    "test262/test/built-ins/RegExp/prototype/Symbol.split/species-ctor-ctor-non-obj.js",
    "test262/test/built-ins/RegExp/prototype/Symbol.split/species-ctor-ctor-get-err.js",
    "test262/test/built-ins/RegExp/prototype/Symbol.split/species-ctor-err.js",
    "test262/test/built-ins/RegExp/prototype/Symbol.split/species-ctor-species-get-err.js",
    "test262/test/built-ins/RegExp/prototype/Symbol.split/species-ctor-species-non-ctor.js",
    "test262/test/built-ins/RegExp/prototype/Symbol.split/species-ctor-species-undef.js",
    "test262/test/built-ins/RegExp/prototype/Symbol.split/species-ctor-y.js",
    "test262/test/built-ins/RegExp/prototype/Symbol.split/species-ctor.js",
    # JSON changes
    # prototype changes
    "test262/test/built-ins/Error/prototype/S15.11.4_A2.js",
    # TODO(T90542711) Error prorotype toString
    "test262/test/built-ins/Error/prototype/no-error-data.js",
    # Array changes
    "test262/test/built-ins/Array/prototype/toLocaleString/primitive_this_value_getter.js",
    "test262/test/built-ins/Array/prototype/toLocaleString/primitive_this_value.js",
    # Function constructor changes
    "mjsunit/function-bind.js",
    "test262/test/built-ins/Function/StrictFunction_restricted-properties.js",
    "test262/test/built-ins/Function/prototype/restricted-property-arguments.js",
    "test262/test/built-ins/Function/prototype/restricted-property-caller.js",
    "test262/test/built-ins/Function/prototype/bind/BoundFunction_restricted-properties.js",
    # Object() changes
    "test262/test/built-ins/Object/prototype/toLocaleString/primitive_this_value.js",
    "test262/test/built-ins/Object/prototype/toLocaleString/primitive_this_value_getter.js",
    # eval changes
    "test262/test/language/global-code/script-decl-var.js",
    "test262/test/language/global-code/script-decl-func-err-non-configurable.js",
    # TypedArray changes
    "test262/test/built-ins/TypedArrays/typedarray-arg-same-ctor-buffer-ctor-access-throws.js",
    "test262/test/built-ins/TypedArrays/internals/Get/key-is-not-integer.js",
    "test262/test/built-ins/TypedArrays/internals/GetOwnProperty/index-prop-desc.js",
    "test262/test/built-ins/TypedArray/prototype/sort/sorted-values-nan.js",
    "test262/test/built-ins/TypedArrays/buffer-arg-defined-negative-length.js",
    "test262/test/built-ins/TypedArrays/typedarray-arg-other-ctor-buffer-ctor-not-object-throws.js",
    "test262/test/built-ins/TypedArrays/typedarray-arg-same-ctor-buffer-ctor-value-not-obj-throws.js",
    "test262/test/built-ins/TypedArrayConstructors/ctors/length-arg/use-default-proto-if-custom-proto-is-not-object.js",
    "test262/test/built-ins/TypedArrayConstructors/ctors/object-arg/use-default-proto-if-custom-proto-is-not-object.js",
    "test262/test/built-ins/TypedArrayConstructors/ctors/buffer-arg/defined-negative-length.js",
    "test262/test/built-ins/TypedArrayConstructors/ctors/object-arg/iterator-throws.js",
    "test262/test/built-ins/TypedArrayConstructors/ctors/buffer-arg/use-default-proto-if-custom-proto-is-not-object.js",
    "test262/test/built-ins/TypedArrayConstructors/ctors/typedarray-arg/use-default-proto-if-custom-proto-is-not-object.js",
    "test262/test/built-ins/TypedArrayConstructors/ctors/typedarray-arg/other-ctor-buffer-ctor-not-object-throws.js",
    "test262/test/built-ins/TypedArrayConstructors/ctors/typedarray-arg/same-ctor-buffer-ctor-value-not-obj-throws.js",
    "test262/test/built-ins/TypedArrayConstructors/ctors/typedarray-arg/same-ctor-buffer-ctor-access-throws.js",
    "test262/test/built-ins/TypedArrayConstructors/ctors/typedarray-arg/other-ctor-buffer-ctor-access-throws.js",
    "test262/test/built-ins/TypedArrayConstructors/ctors/no-args/use-default-proto-if-custom-proto-is-not-object.js",
    "test262/test/built-ins/TypedArrayConstructors/internals/Get/key-is-not-minus-zero.js",
    "test262/test/built-ins/TypedArrayConstructors/internals/Get/key-is-not-integer.js",
    "test262/test/built-ins/TypedArrayConstructors/internals/Get/key-is-out-of-bounds.js",
    "test262/test/built-ins/TypedArrayConstructors/internals/GetOwnProperty/index-prop-desc.js",
    "test262/test/built-ins/TypedArrayConstructors/internals/HasProperty/abrupt-from-ordinary-has-parent-hasproperty.js",
    "test262/test/built-ins/TypedArrayConstructors/internals/Set/tonumber-value-throws.js",
    # TypedArray ES7 iterators
    "test262/test/built-ins/TypedArrayConstructors/ctors/object-arg/iterating-throws.js",
    "test262/test/built-ins/TypedArrayConstructors/ctors/object-arg/iterator-not-callable-throws.js",
    "test262/test/built-ins/TypedArrayConstructors/ctors/object-arg/as-generator-iterable-returns.js",
    "test262/test/built-ins/TypedArrays/object-arg-iterator-not-callable-throws.js",
    "test262/test/built-ins/TypedArrays/from/iter-invoke-error.js",
    "test262/test/built-ins/TypedArrays/from/iter-access-error.js",
    "test262/test/built-ins/TypedArrays/from/iter-next-value-error.js",
    "test262/test/built-ins/TypedArrays/from/iter-next-error.js",
    "test262/test/built-ins/TypedArray/from/iter-invoke-error.js",
    "test262/test/built-ins/TypedArray/from/iter-next-error.js",
    "test262/test/built-ins/TypedArray/from/iter-next-value-error.js",
    "test262/test/built-ins/TypedArray/from/iter-access-error.js",
    "test262/test/built-ins/TypedArrayConstructors/from/iter-invoke-error.js",
    "test262/test/built-ins/TypedArrayConstructors/from/iter-access-error.js",
    "test262/test/built-ins/TypedArrayConstructors/from/iter-next-value-error.js",
    "test262/test/built-ins/TypedArrayConstructors/from/iter-next-error.js",
    # TypedArray detaching buffer
    "test262/test/built-ins/ArrayBuffer/prototype/byteLength/detached-buffer.js",
    "test262/test/built-ins/DataView/custom-proto-access-detaches-buffer.js",
    "test262/test/built-ins/DataView/detached-buffer.js",
    "test262/test/built-ins/DataView/prototype/byteLength/detached-buffer.js",
    "test262/test/built-ins/DataView/prototype/byteLength/instance-has-detached-buffer.js",
    "test262/test/built-ins/DataView/prototype/byteOffset/detached-buffer.js",
    "test262/test/built-ins/TypedArray/prototype/find/predicate-may-detach-buffer.js",
    "test262/test/built-ins/TypedArray/prototype/findIndex/predicate-may-detach-buffer.js",
    "test262/test/built-ins/TypedArray/prototype/some/callbackfn-detachbuffer.js",
    "test262/test/built-ins/TypedArray/prototype/reduce/callbackfn-detachbuffer.js",
    "test262/test/built-ins/TypedArray/prototype/reduceRight/callbackfn-detachbuffer.js",
    "test262/test/built-ins/TypedArray/prototype/map/callbackfn-detachbuffer.js",
    "test262/test/built-ins/TypedArray/prototype/forEach/callbackfn-detachbuffer.js",
    "test262/test/built-ins/TypedArray/prototype/filter/callbackfn-detachbuffer.js",
    "test262/test/built-ins/TypedArrayConstructors/ctors/buffer-arg/byteoffset-to-number-detachbuffer.js",
    "test262/test/built-ins/TypedArrayConstructors/ctors/buffer-arg/detachedbuffer.js",
    "test262/test/built-ins/TypedArrayConstructors/ctors/buffer-arg/length-to-number-detachbuffer.js",
    "test262/test/built-ins/TypedArrayConstructors/internals/DefineOwnProperty/detached-buffer.js",
    "test262/test/built-ins/TypedArrayConstructors/internals/DefineOwnProperty/detached-buffer-throws.js",
    "test262/test/built-ins/TypedArrayConstructors/internals/DefineOwnProperty/detached-buffer-throws-realm.js",
    "test262/test/built-ins/TypedArrayConstructors/internals/DefineOwnProperty/tonumber-value-detached-buffer.js",
    "test262/test/built-ins/TypedArrayConstructors/internals/Get/detached-buffer.js",
    "test262/test/built-ins/TypedArrayConstructors/internals/Get/infinity-detached-buffer.js",
    "test262/test/built-ins/TypedArrayConstructors/internals/GetOwnProperty/detached-buffer.js",
    "test262/test/built-ins/TypedArrayConstructors/internals/GetOwnProperty/enumerate-detached-buffer.js",
    "test262/test/built-ins/TypedArrayConstructors/internals/HasProperty/detached-buffer.js",
    "test262/test/built-ins/TypedArrayConstructors/internals/Set/detached-buffer.js",
    "test262/test/built-ins/TypedArrayConstructors/internals/Delete/detached-buffer.js",
    "test262/test/built-ins/TypedArrayConstructors/internals/Set/tonumber-value-detached-buffer.js",
    "test262/test/built-ins/TypedArrays/buffer-arg-byteoffset-to-number-detachbuffer.js",
    "test262/test/built-ins/TypedArrays/buffer-arg-detachedbuffer.js",
    "test262/test/built-ins/TypedArrays/internals/DefineOwnProperty/detached-buffer.js",
    "test262/test/built-ins/TypedArrays/internals/GetOwnProperty/detached-buffer.js",
    "test262/test/built-ins/TypedArrays/internals/HasProperty/detached-buffer.js",
    "test262/test/built-ins/TypedArrays/internals/Set/tonumber-value-detached-buffer.js",
    # BigUint64Array
    "test262/test/built-ins/TypedArrayConstructors/BigUint64Array/is-a-constructor.js",
    # Float32 TypedArray failure
    "test262/test/built-ins/TypedArrays/internals/DefineOwnProperty/conversion-operation-consistent-nan.js",
    # TypedArray accessors
    "test262/test/built-ins/TypedArrays/internals/Get/key-is-out-of-bounds.js",
    "test262/test/built-ins/TypedArrays/internals/Get/detached-buffer.js",
    "test262/test/built-ins/TypedArrays/internals/Get/indexed-value-sab.js",
    "test262/test/built-ins/TypedArrays/internals/Get/key-is-not-minus-zero.js",
    "test262/test/built-ins/TypedArrays/internals/Set/tonumber-value-throws.js",
    "test262/test/built-ins/TypedArrays/internals/Set/detached-buffer.js",
    # TypedArray numeric index checks are not up to spec.  Example: Object.defineProperty(new Float64Array([42, 43]), 2, {value:10})
    "test262/test/built-ins/TypedArrays/internals/DefineOwnProperty/key-is-greater-than-last-index.js",
    "test262/test/built-ins/TypedArrays/internals/DefineOwnProperty/tonumber-value-detached-buffer.js",
    "test262/test/built-ins/TypedArrays/internals/DefineOwnProperty/key-is-minus-zero.js",
    "test262/test/built-ins/TypedArrays/internals/DefineOwnProperty/key-is-not-integer.js",
    "test262/test/built-ins/TypedArrays/internals/DefineOwnProperty/key-is-numericindex-desc-configurable.js",
    "test262/test/built-ins/TypedArrays/internals/DefineOwnProperty/key-is-lower-than-zero.js",
    "test262/test/built-ins/TypedArrays/internals/DefineOwnProperty/key-is-numericindex.js",
    "test262/test/built-ins/TypedArrays/internals/HasProperty/key-is-lower-than-zero.js",
    "test262/test/built-ins/TypedArrays/internals/Set/key-is-not-integer.js",
    "test262/test/built-ins/TypedArrays/internals/Set/key-is-out-of-bounds.js",
    "test262/test/built-ins/TypedArrays/internals/HasProperty/inherited-property.js",
    "test262/test/built-ins/TypedArrays/internals/Set/key-is-minus-zero.js",
    "test262/test/built-ins/TypedArrays/internals/HasProperty/key-is-not-integer.js",
    "test262/test/built-ins/TypedArrays/internals/HasProperty/abrupt-from-ordinary-has-parent-hasproperty.js",
    "test262/test/built-ins/TypedArrays/internals/HasProperty/key-is-minus-zero.js",
    "test262/test/built-ins/TypedArrays/internals/HasProperty/key-is-greater-than-last-index.js",
    "test262/test/built-ins/TypedArrayConstructors/internals/DefineOwnProperty/key-is-greater-than-last-index.js",
    "test262/test/built-ins/TypedArrayConstructors/internals/DefineOwnProperty/key-is-not-numeric-index-throws.js",
    "test262/test/built-ins/TypedArrayConstructors/internals/DefineOwnProperty/key-is-numericindex.js",
    "test262/test/built-ins/TypedArrayConstructors/internals/DefineOwnProperty/key-is-lower-than-zero.js",
    "test262/test/built-ins/TypedArrayConstructors/internals/DefineOwnProperty/key-is-not-integer.js",
    "test262/test/built-ins/TypedArrayConstructors/internals/DefineOwnProperty/key-is-minus-zero.js",
    "test262/test/built-ins/TypedArrayConstructors/internals/DefineOwnProperty/key-is-numericindex-desc-configurable.js",
    "test262/test/built-ins/TypedArrayConstructors/internals/Set/key-is-not-integer.js",
    "test262/test/built-ins/TypedArrayConstructors/internals/Set/key-is-out-of-bounds.js",
    "test262/test/built-ins/TypedArrayConstructors/internals/Set/key-is-minus-zero.js",
    "test262/test/built-ins/TypedArrayConstructors/internals/HasProperty/inherited-property.js",
    "test262/test/built-ins/TypedArrayConstructors/internals/HasProperty/key-is-greater-than-last-index.js",
    "test262/test/built-ins/TypedArrayConstructors/internals/HasProperty/key-is-not-integer.js",
    "test262/test/built-ins/TypedArrayConstructors/internals/HasProperty/key-is-lower-than-zero.js",
    "test262/test/built-ins/TypedArrayConstructors/internals/HasProperty/key-is-minus-zero.js",
    # SharedArrayBuffer
    "test262/test/built-ins/ArrayBuffer/prototype/byteLength/this-is-sharedarraybuffer.js",
    "test262/test/built-ins/ArrayBuffer/prototype/slice/this-is-sharedarraybuffer.js",
    # function name
    "test262/test/language/expressions/assignment/fn-name-lhs-member.js",
    "test262/test/language/expressions/assignment/fn-name-lhs-cover.js",
    # global object reference
    "test262/test/built-ins/global/global-object.js",
    "test262/test/built-ins/global/property-descriptor.js",
    # Unsupported harness tests
    "test262/test/harness/timer.js",
    "test262/test/harness/assert-throws-early-referenceerror.js",
    "test262/test/harness/assert-throws-same-realm.js",
    # SpeciesConstructor
    "test262/test/built-ins/ArrayBuffer/prototype/slice/species-constructor-is-not-object.js",
    "test262/test/built-ins/TypedArray/prototype/map/speciesctor-get-ctor-abrupt.js",
    "test262/test/built-ins/RegExp/prototype/Symbol.matchAll/species-constructor-get-constructor-throws.js",
    "test262/test/built-ins/RegExp/prototype/Symbol.matchAll/species-constructor-is-not-object-throws.js",
    # t19359477
    "mjsunit/regress/regress-3976.js",
    "mjsunit/string-replace-gc.js",
    # T46136220 Names on anonymous functions with computed property names
    "test262/test/language/expressions/object/fn-name-gen.js",
    # T56360814 Symbol primitives in iteration order
    "test262/test/built-ins/Object/defineProperties/proxy-no-ownkeys-returned-keys-order.js",
    # TODO(T90543562) Object.freeze/seal/etc. on proxy
    "test262/test/built-ins/Object/freeze/proxy-no-ownkeys-returned-keys-order.js",
    "test262/test/built-ins/Object/freeze/proxy-with-defineProperty-handler.js",
    "test262/test/built-ins/Object/getOwnPropertyDescriptors/proxy-no-ownkeys-returned-keys-order.js",
    "test262/test/built-ins/Object/isFrozen/proxy-no-ownkeys-returned-keys-order.js",
    "test262/test/built-ins/Object/isSealed/proxy-no-ownkeys-returned-keys-order.js",
    "test262/test/built-ins/Object/prototype/toString/proxy-revoked-during-get-call.js",
    "test262/test/built-ins/Object/seal/proxy-no-ownkeys-returned-keys-order.js",
    "test262/test/built-ins/Object/seal/proxy-with-defineProperty-handler.js",
    # The below 3 tests are not properly marked their use of feature to be excluded
    "test262/test/built-ins/Object/seal/seal-aggregateerror.js",
    "test262/test/built-ins/Object/seal/seal-bigint64array.js",
    "test262/test/built-ins/Object/seal/seal-biguint64array.js",
    "test262/test/built-ins/Object/assign/strings-and-symbol-order.js",
    "test262/test/built-ins/Array/prototype/concat/is-concat-spreadable-get-order.js",
    "test262/test/language/expressions/array/spread-obj-spread-order.js",
    "test262/test/language/expressions/call/spread-obj-spread-order.js",
    "test262/test/language/expressions/new/spread-obj-spread-order.js",
    # T42569352 TDZ for parameters used in initializer expressions.
    "test262/test/language/expressions/function/dflt-params-ref-later.js",
    "test262/test/language/expressions/function/dflt-params-ref-self.js",
    "test262/test/language/expressions/generators/dflt-params-ref-later.js",
    "test262/test/language/expressions/generators/dflt-params-ref-self.js",
    "test262/test/language/statements/function/dflt-params-ref-later.js",
    "test262/test/language/statements/function/dflt-params-ref-self.js",
    "test262/test/language/statements/generators/dflt-params-ref-later.js",
    "test262/test/language/statements/generators/dflt-params-ref-self.js",
    # Time out. # T20489563
    "mjsunit/regress/regress-crbug-482998.js",
    # Different time out: # T23228706
    "mjsunit/regress/regress-581.js",
    "mjsunit/regress/regress-685.js",
    "mjsunit/regress/regress-crbug-387031.js",
    "mjsunit/regress/regress-crbug-516592.js",
    "mjsunit/regress/regress-splice-large-index.js",
    # String lowercasing bugs. These only happen on Apple platforms using
    # CoreFoundation. See T24545708 for a discussion.
    "test262/test/built-ins/String/prototype/toLocaleLowerCase/special_casing_conditional.js",
    "test262/test/built-ins/String/prototype/toLowerCase/special_casing_conditional.js",
    # Intl
    "test262/test/intl402/Collator/subclassing.js",
    "test262/test/intl402/Collator/unicode-ext-value-collation.js",
    "test262/test/intl402/Collator/ignore-invalid-unicode-ext-values.js",
    "test262/test/intl402/Collator/proto-from-ctor-realm.js",
    "test262/test/intl402/Collator/prototype/resolvedOptions/order.js",
    "test262/test/intl402/String/prototype/toLocaleLowerCase/special_casing_Lithuanian.js",
    "test262/test/intl402/String/prototype/toLocaleLowerCase/special_casing_Azeri.js",
    "test262/test/intl402/String/prototype/toLocaleLowerCase/special_casing_Turkish.js",
    "test262/test/intl402/String/prototype/toLocaleUpperCase/special_casing_Lithuanian.js",
    # Unicode 13.0
    "test262/test/language/identifiers/part-unicode-13.0.0-escaped.js",
    "test262/test/language/identifiers/part-unicode-13.0.0.js",
    "test262/test/language/identifiers/part-unicode-5.2.0-escaped.js",
    "test262/test/language/identifiers/part-unicode-5.2.0.js",
    "test262/test/language/identifiers/start-unicode-13.0.0-escaped.js",
    "test262/test/language/identifiers/start-unicode-13.0.0.js",
    # Stack overflow catching.
    "mjsunit/regress/regress-1132.js",
    "mjsunit/regress/regress-446389.js",
    # Concurrent recompilation (these call quit() after deciding to skip the test).
    "mjsunit/concurrent-initial-prototype-change.js",
    "mjsunit/compiler/concurrent-proto-change.js",
    "mjsunit/compiler/manual-concurrent-recompile.js",
    "mjsunit/compiler/concurrent-invalidate-transition-map.js",
    "mjsunit/regress/regress-opt-after-debug-deopt.js",
    "mjsunit/regress/regress-embedded-cons-string.js",
    "mjsunit/regress/regress-prepare-break-while-recompile.js",
    # Fails when ASAN/UBSAN are limiting the max native stack depth.
    "mjsunit/compiler/regress-lazy-deopt.js",
    # Uncategorized mjsunit failures
    "mjsunit/accessor-map-sharing.js",
    "mjsunit/accessors-on-global-object.js",
    "mjsunit/array-bounds-check-removal.js",
    "mjsunit/array-concat.js",
    "mjsunit/array-indexing.js",
    "mjsunit/array-length.js",
    "mjsunit/array-push5.js",
    "mjsunit/array-reduce.js",
    "mjsunit/array-store-and-grow.js",
    "mjsunit/array-unshift.js",
    "mjsunit/bugs/bug-1344252.js",
    "mjsunit/bugs/bug-222.js",
    "mjsunit/bugs/bug-617.js",
    "mjsunit/bugs/bug-941049.js",
    "mjsunit/bugs/harmony/debug-blockscopes.js",
    "mjsunit/compiler/deopt-inlined-from-call.js",
    "mjsunit/compiler/increment-typefeedback.js",
    "mjsunit/compiler/inlined-array-pop-opt.js",
    "mjsunit/compiler/inlined-call.js",
    "mjsunit/compiler/integral32-add-sub.js",
    "mjsunit/compiler/opt-next-call.js",
    "mjsunit/compiler/optimized-float32array-length.js",
    "mjsunit/compiler/optimized-float64array-length.js",
    "mjsunit/compiler/optimized-instanceof-1.js",
    "mjsunit/compiler/optimized-instanceof-2.js",
    "mjsunit/compiler/optimized-int32array-length.js",
    "mjsunit/compiler/optimized-uint32array-length.js",
    "mjsunit/compiler/regress-416359.js",
    "mjsunit/compiler/regress-5320.js",
    "mjsunit/compiler/regress-compare-negate.js",
    "mjsunit/compiler/regress-stacktrace-methods.js",
    "mjsunit/compiler/string-add-try-catch.js",
    "mjsunit/constant-folding-2.js",
    "mjsunit/date-parse.js",
    "mjsunit/date.js",
    "mjsunit/deopt-minus-zero.js",
    "mjsunit/deserialize-optimize-inner.js",
    "mjsunit/dictionary-properties.js",
    "mjsunit/div-mul-minus-one.js",
    "mjsunit/double-equals.js",
    "mjsunit/element-accessor.js",
    "mjsunit/element-read-only.js",
    "mjsunit/elements-length-no-holey.js",
    "mjsunit/elements-transition-hoisting.js",
    "mjsunit/ensure-growing-store-learns.js",
    "mjsunit/error-accessors.js",
    "mjsunit/error-tostring-omit.js",
    "mjsunit/es6/function-name-configurable.js",
    "mjsunit/es6/indexed-integer-exotics.js",
    "mjsunit/es6/regress/regress-2219.js",
    "mjsunit/es6/regress/regress-2225.js",
    "mjsunit/es6/regress/regress-2322.js",
    "mjsunit/es6/regress/regress-2681.js",
    "mjsunit/es6/regress/regress-2691.js",
    "mjsunit/es6/regress/regress-3280.js",
    "mjsunit/es6/regress/regress-3683.js",
    "mjsunit/es6/regress/regress-3741.js",
    "mjsunit/es6/regress/regress-3902.js",
    "mjsunit/es6/regress/regress-4097.js",
    "mjsunit/es6/regress/regress-411237.js",
    "mjsunit/es6/regress/regress-4466.js",
    "mjsunit/es6/regress/regress-4482.js",
    "mjsunit/es6/regress/regress-455141.js",
    "mjsunit/es6/regress/regress-468661.js",
    "mjsunit/es6/regress/regress-474783.js",
    "mjsunit/es6/regress/regress-4759.js",
    "mjsunit/es6/regress/regress-508074.js",
    "mjsunit/es6/regress/regress-cr372788.js",
    "mjsunit/es6/regress/regress-cr493566.js",
    "mjsunit/es6/regress/regress-crbug-448730.js",
    "mjsunit/es6/regress/regress-inlined-new-target.js",
    "mjsunit/es6/regress/regress-lookup-transition.js",
    "mjsunit/es6/rest-params-lazy-parsing.js",
    "mjsunit/es6/throw-type-error-function-restrictions.js",
    "mjsunit/es6/typedarray.js",
    "mjsunit/field-type-tracking.js",
    "mjsunit/fixed-context-shapes-when-recompiling.js",
    "mjsunit/for-in-opt.js",
    "mjsunit/for-in.js",
    "mjsunit/get-prototype-of.js",
    "mjsunit/global-accessors.js",
    "mjsunit/global-infinity-strict.js",
    "mjsunit/global-nan-strict.js",
    "mjsunit/global-undefined-strict.js",
    "mjsunit/harmony/array-concat-array-proto-getter.js",
    "mjsunit/harmony/array-concat-object-proto-dict-getter.js",
    "mjsunit/harmony/async-arrow-lexical-arguments.js",
    "mjsunit/harmony/async-arrow-lexical-new.target.js",
    "mjsunit/harmony/async-arrow-lexical-super.js",
    "mjsunit/harmony/async-arrow-lexical-this.js",
    "mjsunit/harmony/async-await-no-constructor.js",
    "mjsunit/harmony/async-await-resolve-new.js",
    "mjsunit/harmony/async-await-species.js",
    "mjsunit/harmony/async-debug-basic.js",
    "mjsunit/harmony/async-debug-caught-exception-cases.js",
    "mjsunit/harmony/async-debug-caught-exception.js",
    "mjsunit/harmony/async-debug-step-abort-at-break.js",
    "mjsunit/harmony/async-debug-step-continue-at-break.js",
    "mjsunit/harmony/async-debug-step-in-and-out.js",
    "mjsunit/harmony/async-debug-step-in-out-out.js",
    "mjsunit/harmony/async-debug-step-in.js",
    "mjsunit/harmony/async-debug-step-nested.js",
    "mjsunit/harmony/async-debug-step-next-constant.js",
    "mjsunit/harmony/async-debug-step-next.js",
    "mjsunit/harmony/async-debug-step-out.js",
    "mjsunit/harmony/async-function-stacktrace.js",
    "mjsunit/harmony/debug-async-break-on-stack.js",
    "mjsunit/harmony/debug-async-break.js",
    "mjsunit/harmony/debug-async-function-async-task-event.js",
    "mjsunit/harmony/debug-async-liveedit.js",
    "mjsunit/harmony/default-parameter-do-expression.js",
    "mjsunit/harmony/do-expressions-control.js",
    "mjsunit/harmony/function-sent.js",
    "mjsunit/harmony/futex.js",
    "mjsunit/harmony/generators-turbo.js",
    "mjsunit/harmony/generators.js",
    "mjsunit/harmony/harmony-string-pad-end.js",
    "mjsunit/harmony/harmony-string-pad-start.js",
    "mjsunit/harmony/object-entries.js",
    "mjsunit/harmony/object-get-own-property-descriptors.js",
    "mjsunit/harmony/object-values.js",
    "mjsunit/harmony/private-symbols.js",
    "mjsunit/harmony/private.js",
    "mjsunit/harmony/regress/regress-4658.js",
    "mjsunit/harmony/regress/regress-4696.js",
    "mjsunit/harmony/regress/regress-4755.js",
    "mjsunit/harmony/regress/regress-4904.js",
    "mjsunit/harmony/regress/regress-546967.js",
    "mjsunit/harmony/regress/regress-618603.js",
    "mjsunit/harmony/regress/regress-624300.js",
    "mjsunit/harmony/regress/regress-crbug-571149.js",
    "mjsunit/harmony/regress/regress-crbug-578038.js",
    "mjsunit/harmony/regress/regress-crbug-621111.js",
    "mjsunit/harmony/regress/regress-typedarray-out-of-bounds.js",
    "mjsunit/harmony/sharedarraybuffer.js",
    "mjsunit/harmony/simd.js",
    "mjsunit/harmony/sloppy-legacy-duplicate-generators.js",
    "mjsunit/harmony/sloppy-no-duplicate-async.js",
    "mjsunit/harmony/sloppy-no-duplicate-generators.js",
    "mjsunit/harmony/sloppy-restrictive-block-function.js",
    "mjsunit/harmony/to-length.js",
    "mjsunit/harmony/to-name.js",
    "mjsunit/harmony/to-number.js",
    "mjsunit/harmony/to-primitive.js",
    "mjsunit/harmony/to-string.js",
    "mjsunit/harmony/trailing-commas-length.js",
    "mjsunit/has-own-property-evaluation-order.js",
    "mjsunit/ignition/dead-code-source-position.js",
    "mjsunit/ignition/debug-break-mixed-stack.js",
    "mjsunit/ignition/debug-break-on-stack.js",
    "mjsunit/ignition/debug-break.js",
    "mjsunit/ignition/debug-step-mixed-stack.js",
    "mjsunit/ignition/debug-step-prefix-bytecodes.js",
    "mjsunit/ignition/debugger-statement.js",
    "mjsunit/ignition/elided-instruction.js",
    "mjsunit/ignition/ignition-statistics-extension.js",
    "mjsunit/ignition/optimized-debug-frame.js",
    "mjsunit/ignition/optimized-stack-trace.js",
    "mjsunit/ignition/osr-from-generator.js",
    "mjsunit/ignition/stack-trace-source-position.js",
    "mjsunit/indexed-accessors.js",
    "mjsunit/json-replacer-order.js",
    "mjsunit/json-stringify-holder.js",
    "mjsunit/json-stringify-recursive.js",
    "mjsunit/json-stringify-stack.js",
    "mjsunit/json2.js",
    "mjsunit/keyed-load-hole-to-undefined.js",
    "mjsunit/keyed-load-with-string-key.js",
    "mjsunit/keyed-load-with-symbol-key.js",
    "mjsunit/lookup-behind-property.js",
    "mjsunit/math-floor-of-div-minus-zero.js",
    "mjsunit/minmax-simple.js",
    "mjsunit/modules-this.js",
    "mjsunit/never-optimize.js",
    "mjsunit/object-define-properties.js",
    "mjsunit/object-define-property.js",
    "mjsunit/object-freeze.js",
    "mjsunit/object-get-own-property-names.js",
    "mjsunit/object-prevent-extensions.js",
    "mjsunit/object-seal.js",
    "mjsunit/packed-elements.js",
    "mjsunit/polymorph-arrays.js",
    "mjsunit/random-bit-correlations.js",
    "mjsunit/regress-3225.js",
    "mjsunit/regress-sync-optimized-lists.js",
    "mjsunit/regress/d8-readbuffer.js",
    "mjsunit/regress/debug-prepare-step-in.js",
    "mjsunit/regress/regress-102153.js",
    "mjsunit/regress/regress-103259.js",
    "mjsunit/regress/regress-1129.js",
    "mjsunit/regress/regress-1170187.js",
    "mjsunit/regress/regress-119429.js",
    "mjsunit/regress/regress-119609.js",
    "mjsunit/regress/regress-131994.js",
    "mjsunit/regress/regress-1403.js",
    "mjsunit/regress/regress-1523.js",
    "mjsunit/regress/regress-1530.js",
    "mjsunit/regress/regress-1548.js",
    "mjsunit/regress/regress-1586.js",
    "mjsunit/regress/regress-1591.js",
    "mjsunit/regress/regress-1639-2.js",
    "mjsunit/regress/regress-1639.js",
    "mjsunit/regress/regress-1757.js",
    "mjsunit/regress/regress-1849.js",
    "mjsunit/regress/regress-1980.js",
    "mjsunit/regress/regress-2132.js",
    "mjsunit/regress/regress-2318.js",
    "mjsunit/regress/regress-2339.js",
    "mjsunit/regress/regress-2437.js",
    "mjsunit/regress/regress-2451.js",
    "mjsunit/regress/regress-2470.js",
    "mjsunit/regress/regress-252797.js",
    "mjsunit/regress/regress-2564.js",
    "mjsunit/regress/regress-2596.js",
    "mjsunit/regress/regress-2618.js",
    "mjsunit/regress/regress-2686.js",
    "mjsunit/regress/regress-269.js",
    "mjsunit/regress/regress-2825.js",
    "mjsunit/regress/regress-3159.js",
    "mjsunit/regress/regress-3176.js",
    "mjsunit/regress/regress-319722-ArrayBuffer.js",
    "mjsunit/regress/regress-319722-TypedArrays.js",
    "mjsunit/regress/regress-3255.js",
    "mjsunit/regress/regress-325676.js",
    "mjsunit/regress/regress-3281.js",
    "mjsunit/regress/regress-330046.js",
    "mjsunit/regress/regress-334.js",
    "mjsunit/regress/regress-353004.js",
    "mjsunit/regress/regress-356053.js",
    "mjsunit/regress/regress-357103.js",
    "mjsunit/regress/regress-362870.js",
    "mjsunit/regress/regress-3641.js",
    "mjsunit/regress/regress-3650-3.js",
    "mjsunit/regress/regress-365172-2.js",
    "mjsunit/regress/regress-3709.js",
    "mjsunit/regress/regress-3717.js",
    "mjsunit/regress/regress-3718.js",
    "mjsunit/regress/regress-373283.js",
    "mjsunit/regress/regress-385565.js",
    "mjsunit/regress/regress-392114.js",
    "mjsunit/regress/regress-394.js",
    "mjsunit/regress/regress-3960.js",
    "mjsunit/regress/regress-409533.js",
    "mjsunit/regress/regress-4121.js",
    "mjsunit/regress/regress-4173.js",
    "mjsunit/regress/regress-419663.js",
    "mjsunit/regress/regress-4255-4.js",
    "mjsunit/regress/regress-4266.js",
    "mjsunit/regress/regress-4267.js",
    "mjsunit/regress/regress-430201.js",
    "mjsunit/regress/regress-430201b.js",
    "mjsunit/regress/regress-4320.js",
    "mjsunit/regress/regress-4380.js",
    "mjsunit/regress/regress-4521.js",
    "mjsunit/regress/regress-4525.js",
    "mjsunit/regress/regress-4577.js",
    "mjsunit/regress/regress-4640.js",
    "mjsunit/regress/regress-4703.js",
    "mjsunit/regress/regress-479528.js",
    "mjsunit/regress/regress-4908.js",
    "mjsunit/regress/regress-4945.js",
    "mjsunit/regress/regress-4964.js",
    "mjsunit/regress/regress-4967.js",
    "mjsunit/regress/regress-4971.js",
    "mjsunit/regress/regress-5004.js",
    "mjsunit/regress/regress-500831.js",
    "mjsunit/regress/regress-5010.js",
    "mjsunit/regress/regress-5033.js",
    "mjsunit/regress/regress-5036.js",
    "mjsunit/regress/regress-5071.js",
    "mjsunit/regress/regress-5085.js",
    "mjsunit/regress/regress-5106.js",
    "mjsunit/regress/regress-514362.js",
    "mjsunit/regress/regress-5164.js",
    "mjsunit/regress/regress-5174.js",
    "mjsunit/regress/regress-5178.js",
    "mjsunit/regress/regress-5181.js",
    "mjsunit/regress/regress-520029.js",
    "mjsunit/regress/regress-5216.js",
    "mjsunit/regress/regress-5245.js",
    "mjsunit/regress/regress-5252.js",
    "mjsunit/regress/regress-5342.js",
    "mjsunit/regress/regress-539875.js",
    "mjsunit/regress/regress-5404.js",
    "mjsunit/regress/regress-542099.js",
    "mjsunit/regress/regress-544991.js",
    "mjsunit/regress/regress-554865.js",
    "mjsunit/regress/regress-575364.js",
    "mjsunit/regress/regress-578775.js",
    "mjsunit/regress/regress-595319.js",
    "mjsunit/regress/regress-596718.js",
    "mjsunit/regress/regress-599414-array-concat-fast-path.js",
    "mjsunit/regress/regress-599719.js",
    "mjsunit/regress/regress-599825.js",
    "mjsunit/regress/regress-613928.js",
    "mjsunit/regress/regress-617525.js",
    "mjsunit/regress/regress-617526.js",
    "mjsunit/regress/regress-617529.js",
    "mjsunit/regress/regress-618657.js",
    "mjsunit/regress/regress-622663.js",
    "mjsunit/regress/regress-633998.js",
    "mjsunit/regress/regress-639270.js",
    "mjsunit/regress/regress-642409.js",
    "mjsunit/regress/regress-648373-sloppy-arguments-includesValues.js",
    "mjsunit/regress/regress-649078.js",
    "mjsunit/regress/regress-674753.js",
    "mjsunit/regress/regress-857.js",
    "mjsunit/regress/regress-91013.js",
    "mjsunit/regress/regress-91120.js",
    "mjsunit/regress/regress-944.js",
    "mjsunit/regress/regress-94873.js",
    "mjsunit/regress/regress-95113.js",
    "mjsunit/regress/regress-95920.js",
    "mjsunit/regress/regress-995.js",
    "mjsunit/regress/regress-998565.js",
    "mjsunit/regress/regress-cntl-descriptors-enum.js",
    "mjsunit/regress/regress-crbug-107996.js",
    "mjsunit/regress/regress-crbug-119800.js",
    "mjsunit/regress/regress-crbug-122271.js",
    "mjsunit/regress/regress-crbug-160010.js",
    "mjsunit/regress/regress-crbug-222893.js",
    "mjsunit/regress/regress-crbug-233737.js",
    "mjsunit/regress/regress-crbug-245480.js",
    "mjsunit/regress/regress-crbug-309623.js",
    "mjsunit/regress/regress-crbug-323936.js",
    "mjsunit/regress/regress-crbug-349079.js",
    "mjsunit/regress/regress-crbug-351262.js",
    "mjsunit/regress/regress-crbug-387599.js",
    "mjsunit/regress/regress-crbug-393988.js",
    "mjsunit/regress/regress-crbug-401915.js",
    "mjsunit/regress/regress-crbug-405922.js",
    "mjsunit/regress/regress-crbug-409614.js",
    "mjsunit/regress/regress-crbug-410033.js",
    "mjsunit/regress/regress-crbug-412203.js",
    "mjsunit/regress/regress-crbug-422858.js",
    "mjsunit/regress/regress-crbug-424142.js",
    "mjsunit/regress/regress-crbug-430846.js",
    "mjsunit/regress/regress-crbug-432493.js",
    "mjsunit/regress/regress-crbug-435825.js",
    "mjsunit/regress/regress-crbug-451770.js",
    "mjsunit/regress/regress-crbug-465298.js",
    "mjsunit/regress/regress-crbug-465564.js",
    "mjsunit/regress/regress-crbug-467180.js",
    "mjsunit/regress/regress-crbug-469480.js",
    "mjsunit/regress/regress-crbug-471702.js",
    "mjsunit/regress/regress-crbug-474297.js",
    "mjsunit/regress/regress-crbug-480819.js",
    "mjsunit/regress/regress-crbug-484077.js",
    "mjsunit/regress/regress-crbug-485548-1.js",
    "mjsunit/regress/regress-crbug-485548-2.js",
    "mjsunit/regress/regress-crbug-487289.js",
    "mjsunit/regress/regress-crbug-489597.js",
    "mjsunit/regress/regress-crbug-491062.js",
    "mjsunit/regress/regress-crbug-491943.js",
    "mjsunit/regress/regress-crbug-500497.js",
    "mjsunit/regress/regress-crbug-501808.js",
    "mjsunit/regress/regress-crbug-501809.js",
    "mjsunit/regress/regress-crbug-505007-1.js",
    "mjsunit/regress/regress-crbug-505007-2.js",
    "mjsunit/regress/regress-crbug-505370.js",
    "mjsunit/regress/regress-crbug-506443.js",
    "mjsunit/regress/regress-crbug-507070.js",
    "mjsunit/regress/regress-crbug-511880.js",
    "mjsunit/regress/regress-crbug-513471.js",
    "mjsunit/regress/regress-crbug-513472.js",
    "mjsunit/regress/regress-crbug-523308.js",
    "mjsunit/regress/regress-crbug-546968.js",
    "mjsunit/regress/regress-crbug-554831.js",
    "mjsunit/regress/regress-crbug-568477-1.js",
    "mjsunit/regress/regress-crbug-568477-2.js",
    "mjsunit/regress/regress-crbug-568477-3.js",
    "mjsunit/regress/regress-crbug-568477-4.js",
    "mjsunit/regress/regress-crbug-570241.js",
    "mjsunit/regress/regress-crbug-573858.js",
    "mjsunit/regress/regress-crbug-575080.js",
    "mjsunit/regress/regress-crbug-575314.js",
    "mjsunit/regress/regress-crbug-580506.js",
    "mjsunit/regress/regress-crbug-582048.js",
    "mjsunit/regress/regress-crbug-582703.js",
    "mjsunit/regress/regress-crbug-587068.js",
    "mjsunit/regress/regress-crbug-592340.js",
    "mjsunit/regress/regress-crbug-592343.js",
    "mjsunit/regress/regress-crbug-594183.js",
    "mjsunit/regress/regress-crbug-594574-concat-leak-1.js",
    "mjsunit/regress/regress-crbug-594574-concat-leak-2.js",
    "mjsunit/regress/regress-crbug-596394.js",
    "mjsunit/regress/regress-crbug-599067.js",
    "mjsunit/regress/regress-crbug-603463.js",
    "mjsunit/regress/regress-crbug-605060.js",
    "mjsunit/regress/regress-crbug-605581.js",
    "mjsunit/regress/regress-crbug-605862.js",
    "mjsunit/regress/regress-crbug-612142.js",
    "mjsunit/regress/regress-crbug-614727.js",
    "mjsunit/regress/regress-crbug-618788.js",
    "mjsunit/regress/regress-crbug-620253.js",
    "mjsunit/regress/regress-crbug-621361.js",
    "mjsunit/regress/regress-crbug-625590.js",
    "mjsunit/regress/regress-crbug-626715.js",
    "mjsunit/regress/regress-crbug-627828.js",
    "mjsunit/regress/regress-crbug-629996.js",
    "mjsunit/regress/regress-crbug-631917.js",
    "mjsunit/regress/regress-crbug-633999.js",
    "mjsunit/regress/regress-crbug-644215.js",
    "mjsunit/regress/regress-crbug-645103.js",
    "mjsunit/regress/regress-create-exception.js",
    "mjsunit/regress/regress-debug-code-recompilation.js",
    "mjsunit/regress/regress-debug-context-load.js",
    "mjsunit/regress/regress-debug-deopt-while-recompile.js",
    "mjsunit/regress/regress-delete-empty-double.js",
    "mjsunit/regress/regress-double-canonicalization.js",
    "mjsunit/regress/regress-ensure-initial-map.js",
    "mjsunit/regress/regress-frame-details-null-receiver.js",
    "mjsunit/regress/regress-function-length-strict.js",
    "mjsunit/regress/regress-inline-class-constructor.js",
    "mjsunit/regress/regress-integer-indexed-element.js",
    "mjsunit/regress/regress-map-invalidation-1.js",
    "mjsunit/regress/regress-map-invalidation-2.js",
    "mjsunit/regress/regress-object-assign-deprecated-2.js",
    "mjsunit/regress/regress-osr-in-case-label.js",
    "mjsunit/regress/regress-param-local-type.js",
    "mjsunit/regress/regress-parseint.js",
    "mjsunit/regress/regress-put-prototype-transition.js",
    "mjsunit/regress/regress-set-flags-stress-compact.js",
    "mjsunit/regress/regress-smi-only-concat.js",
    "mjsunit/regress/regress-store-uncacheable.js",
    "mjsunit/regress/regress-string-from-char-code-tonumber.js",
    "mjsunit/regress/regress-typedarray-length.js",
    "mjsunit/regress/regress-undefined-nan.js",
    "mjsunit/regress/regress-undefined-nan3.js",
    "mjsunit/regress/regress-v8-4972.js",
    "mjsunit/regress/regress-v8-5009.js",
    "mjsunit/regress/string-compare-memcmp.js",
    "mjsunit/samevalue.js",
    "mjsunit/setters-on-elements.js",
    "mjsunit/shift-for-integer-div.js",
    "mjsunit/sin-cos.js",
    "mjsunit/smi-mul-const.js",
    "mjsunit/smi-representation.js",
    "mjsunit/stack-traces-2.js",
    "mjsunit/stack-traces-custom.js",
    "mjsunit/stack-traces-overflow.js",
    "mjsunit/string-case.js",
    "mjsunit/string-external-cached.js",
    "mjsunit/string-externalize.js",
    "mjsunit/string-oom-replace-global-regexp-with-string.js",
    "mjsunit/string-oom-replace-regexp-global-with-function.js",
    "mjsunit/string-replace-with-empty.js",
    "mjsunit/string-slices.js",
    "mjsunit/substr.js",
    "mjsunit/to_number_order.js",
    "mjsunit/track-fields.js",
    "mjsunit/unary-minus-deopt.js",
    "mjsunit/unbox-double-arrays.js",
    "mjsunit/undetectable-compare.js",
    "mjsunit/undetectable.js",
    "mjsunit/var.js",
    "mjsunit/verify-assert-false.js",
    "mjsunit/verify-check-false.js",
    ### Unsupported Esprima tests ###
    ## select ES6 features ##
    "esprima/test_fixtures/ES6/octal-integer-literal/",
    "esprima/test_fixtures/ES6/binary-integer-literal/",
    # ESPrima incorrect handling of \r\n TRV.
    "esprima/test_fixtures/ES6/template-literals/line-terminators.source.js",
    "esprima/test_fixtures/ES6/template-literals/escape-sequences.source.js",
    "esprima/test_fixtures/ES6/template-literals/literal-escape-sequences.source.js",
    # ESPrima incorrect handling of let early errors.
    "esprima/test_fixtures/ES6/binding-pattern/array-pattern/for-let-let.js",
    "esprima/test_fixtures/ES6/binding-pattern/object-pattern/for-let-let.js",
    # ESPrima incorrect handling illegal yield.
    "esprima/test_fixtures/ES6/yield/yield-generator-default-parameter.js",
    "esprima/test_fixtures/ES6/yield/yield-generator-arrow-default.js",
    "esprima/test_fixtures/ES6/yield/invalid-yield-object-property-getter.js",
    "esprima/test_fixtures/ES6/yield/invalid-yield-object-property-setter.js",
    # ESPrima incorrect handling of exporting reserved words.
    "esprima/test_fixtures/ES6/export-declaration/export-named-keyword-specifier.js",
    "esprima/test_fixtures/ES6/export-declaration/export-named-keyword-as-specifier.js",
    # ESPrima incorrect handling of invalid class properties.
    "esprima/test_fixtures/ES6/class/migrated_0021.js",
    # ESPrima has the wrong expected value.
    "esprima/test_fixtures/es2017/async/methods/class-async-method-computed.js",
    "esprima/test_fixtures/es2017/async/functions/async-if.js",
    "esprima/test_fixtures/es2017/async/functions/async-if-await.js",
    # "use strict" inside a function must apply to the name
    "esprima/test_fixtures/ES6/yield/invalid-yield-strict-function-expression.js",
    "esprima/test_fixtures/ES6/yield/invalid-yield-strict-function-declaration.js",
    # array pattern
    "esprima/test_fixtures/statement/iteration/pattern-in-for-in.js",
    # let and const
    "esprima/test_fixtures/statement/iteration/invalid-strict-for-in-let.js",
    "esprima/test_fixtures/invalid-syntax/migrated_0138.js",
    "esprima/test_fixtures/invalid-syntax/migrated_0139.js",
    "esprima/test_fixtures/invalid-syntax/migrated_0232.js",
    "esprima/test_fixtures/invalid-syntax/migrated_0140.js",
    "esprima/test_fixtures/ES6/for-of/invalid-strict-for-of-let.js",
    "esprima/test_fixtures/ES6/lexical-declaration/let_member.js",
    "esprima/test_fixtures/ES6/lexical-declaration/let_identifier.js",
    "esprima/test_fixtures/ES6/lexical-declaration/for_let_in.js",
    "esprima/test_fixtures/ES6/lexical-declaration/let_assign.js",
    # async
    "esprima/test_fixtures/es2017/async/methods/invalid-async-line-terminator-property.js",
    "esprima/test_fixtures/es2017/async/methods/invalid-async-line-terminator-method.js",
    "esprima/test_fixtures/es2017/async/methods/invalid-static-async-class-generator.js",
    "esprima/test_fixtures/es2017/async/methods/invalid-async-line-terminator-static-method.js",
    "esprima/test_fixtures/es2017/async/methods/invalid-async-generator.js",
    "esprima/test_fixtures/es2017/async/methods/invalid-async-class-generator.js",
    "esprima/test_fixtures/es2017/async/regular-identifier/line-terminator-parenthesized-arrow.js",
    "esprima/test_fixtures/es2017/async/functions/invalid-generator-declaration.js",
    "esprima/test_fixtures/es2017/async/functions/invalid-generator-expression.js",
    "esprima/test_fixtures/es2017/async/arrows/invalid-async-line-terminator3.js",
    "esprima/test_fixtures/es2017/async/arrows/invalid-async-line-terminator1.js",
    # super property
    "esprima/test_fixtures/ES6/binding-pattern/array-pattern/patterned-catch-dupe.js",
    "esprima/test_fixtures/ES6/super-property/invalid_super_not_inside_function.js",
    # object init
    "esprima/test_fixtures/ES6/object-initialiser/invalid-proto-identifiers.js",
    "esprima/test_fixtures/ES6/object-initialiser/invalid-proto-getter-literal-identifier.js",
    "esprima/test_fixtures/ES6/object-initialiser/invalid-proto-literals.js",
    "esprima/test_fixtures/ES6/object-initialiser/invalid-proto-identifier-literal.js",
    "esprima/test_fixtures/ES6/object-initialiser/invalid-proto-literal-identifier.js",
    "esprima/test_fixtures/ES6/object-initialiser/invalid-proto-setter-literal-identifier.js",
    "esprima/test_fixtures/ES6/class/invalid-setter-method-rest.js",
    "esprima/test_fixtures/invalid-syntax/migrated_0250.js",
    "esprima/test_fixtures/invalid-syntax/migrated_0184.js",
    ## ES6 end ##
    # Hermes parser does not output tokens.
    "esprima/test_fixtures/tokenize/",
    # Hermes does not emit comments
    "esprima/test_fixtures/comment/",
    # Hermes does not support tolerant parse
    "esprima/test_fixtures/tolerant-parse/",
    # Hermes does not support 'with'
    "esprima/test_fixtures/directive-prolog/migrated_0000.js",
    "esprima/test_fixtures/directive-prolog/migrated_0001.js",
    "esprima/test_fixtures/statement/with/",
    # Hermes does not yet support HTML entities in JSX
    "esprima/test_fixtures/JSX/attribute-entity-hex.js",
    "esprima/test_fixtures/JSX/attribute-non-hex-entity.js",
    "esprima/test_fixtures/JSX/attribute-entity-decimal.js",
    "esprima/test_fixtures/JSX/attribute-non-numeric-entity.js",
    "esprima/test_fixtures/JSX/attribute-entity.js",
    "esprima/test_fixtures/JSX/attribute-multi-entities.js",
    # Hermes does not support JSX elements in attributes
    "esprima/test_fixtures/JSX/attribute-element.js",
    # ESPrima strips `\n` from CRLF in multiline JSX text
    "esprima/test_fixtures/JSX/multiline-crlf-text.js",
    # unsupported features
    "esprima/test_fixtures/ES2016/",
    "esprima/test_fixtures/es2018/",
    # not sure why they fail yet
    "esprima/test_fixtures/statement/iteration/migrated_0003.js",
    "esprima/test_fixtures/expression/unary/migrated_0005.js",
    "esprima/test_fixtures/expression/unary/migrated_0004.js",
    "esprima/test_fixtures/expression/assignment/migrated_0002.js",
    # function declaration vs expression
    "esprima/test_fixtures/statement/labelled/function-declaration.js",
    "esprima/test_fixtures/statement/if/migrated_0003.js",
    # non-octal 09.5
    "esprima/test_fixtures/expression/primary/literal/numeric/migrated_0024.js",
    # These should fail but aren't failing.
    "esprima/test_fixtures/statement/if/invalid-function-declaration3.js",
    "esprima/test_fixtures/statement/if/invalid-function-declaration1.js",
    "esprima/test_fixtures/invalid-syntax/migrated_0221.js",
    "esprima/test_fixtures/invalid-syntax/migrated_0234.js",
    "esprima/test_fixtures/invalid-syntax/GH-1106-08.js",
    "esprima/test_fixtures/invalid-syntax/migrated_0188.js",
    "esprima/test_fixtures/invalid-syntax/migrated_0208.js",
    "esprima/test_fixtures/invalid-syntax/GH-1106-09.js",
    "esprima/test_fixtures/invalid-syntax/migrated_0242.js",
    "esprima/test_fixtures/invalid-syntax/migrated_0233.js",
    "esprima/test_fixtures/invalid-syntax/migrated_0247.js",
    "esprima/test_fixtures/invalid-syntax/migrated_0216.js",
    "esprima/test_fixtures/invalid-syntax/migrated_0187.js",
    "esprima/test_fixtures/invalid-syntax/migrated_0222.js",
    "esprima/test_fixtures/expression/primary/keyword/invalid-escaped-true.js",
    "esprima/test_fixtures/expression/primary/keyword/invalid-escaped-null.js",
    "esprima/test_fixtures/declaration/function/invalid-strict-labelled-function-declaration.js",
    "esprima/test_fixtures/invalid-syntax/migrated_0043.source.js",
    "esprima/test_fixtures/invalid-syntax/migrated_0044.source.js",
    "esprima/test_fixtures/invalid-syntax/migrated_0041.source.js",
    "esprima/test_fixtures/expression/primary/literal/regular-expression/migrated_0006.source.js",
    ### Unsupported Esprima tests end ###
    ### Failing Flow tests ###
    # Legacy octal literals in string literals
    "flow/types/string_literal_invalid/migrated_0000.js",
    # JSX HTML entities
    "flow/JSX/html_entity_at_start_of_child.js",
    # Destructuring identifier validation
    "flow/ES6/binding-pattern/object-pattern/yield-prop-alias-assignment-strict.js",
    # flow compiler "options" which disable features
    "flow/async_arrow_functions/with_type_parameters_types_disabled.js",
    "flow/class_properties/migrated_0003.js",
    "flow/class_properties/migrated_0008.js",
    "flow/class_properties/migrated_0026.js",
    "flow/nullish_coalescing/missing-plugin.js",
    "flow/optional_chaining/missing-plugin.js",
    "flow/typeapp_call/disabled_ambiguous_call.js",
    "flow/typeapp_call/disabled_ambiguous_new.js",
    "flow/typeapp_call/function_call_optional.js",
    "flow/typeapp_call/method_call_optional2.js",
    # Semantic validation
    "flow/ES6/super-property/super-call-in-static-constructor.js",
    "flow/class_properties/super-call-in-arrow.js",
    "flow/enums/enum-duplicate-member-name.js",
    "flow/enums/enum-invalid-member-name.js",
    "flow/types/declare_module_exports_invalid/migrated_0001.js",
    "flow/types/declare_module_invalid/migrated_0002.js",
    "flow/types/parameter_defaults/migrated_0023.js",
    "flow/uninitialized_const_bindings/migrated_0000.js",
    "flow/uninitialized_const_bindings_invalid/migrated_0000.js",
    "flow/this_param/class_constructor.js",
    # Reserved type names
    "flow/types/aliases/reserved_type.js",
    "flow/types/annotations/static_is_reserved_param.js",
    "flow/types/annotations/static_is_reserved_type.js",
    "flow/types/annotations/underscore_is_reserved_elsewhere.js",
    "flow/types/import_type_shorthand/migrated_0002.js",
    "flow/types/import_type_shorthand/typeof_reserved_value.js",
    "flow/types/import_types/default_reserved_value.js",
    "flow/types/import_types/named_reserved_value.js",
    "flow/types/import_types/typeof_named_reserved_type_alias.js",
    "flow/types/interfaces/implements_reserved_type.js",
    "flow/types/interfaces/implements_reserved_value.js",
    "flow/types/interfaces/reserved_type.js",
    "flow/types/interfaces/reserved_value.js",
    "flow/types/invalid_keywords/migrated_0000.js",
    "flow/types/invalid_keywords/migrated_0001.js",
    "flow/types/opaque_aliases/invalid/reserved_type.js",
    "flow/types/opaque_aliases/valid/reserved_value.js",
    # Potentially invalid JSX that is inconsistent across implementations.
    "flow/JSX/invalid_unpaired_gt.js",
    "flow/JSX/invalid_unpaired_rcurly.js",
    # Import attributes
    "flow/dynamic_import/migrated_0005.js",
    ### Failing Flow tests end ###
]


# Tests that we want to skip only when testing lazy compilation.
LAZY_SKIP_LIST = [
    # Variable resolution in catch handlers.
    "test262/test/language/statements/try/scope-catch-param-lex-close.js",
]


# This skiplist is specifically for tests that Hermes never intends to support,
# and so should not be counted in totals for targeting 100% coverage.
PERMANENT_SKIP_LIST = [
    # HTML comments.
    "mjsunit/html-comments.js",
    # Uses Function.toString().
    "mjsunit/fun-name.js",
    # non-standard HTML construction string functions (e.f. "foo".bold()).
    "mjsunit/html-string-funcs.js",
    # Tests v8-specific error messages.
    "mjsunit/function-call.js",
    # Tests v8-specific extension of named capture groups, not part of ES6.
    "mjsunit/harmony/regexp-named-captures.js",
    # Tests v8-specific extension of Unicode property classes, not part of ES6.
    "mjsunit/es6/unicode-regexp-backrefs.js",
    "mjsunit/es6/unicode-regexp-last-index.js",
    "mjsunit/es6/unicode-regexp-unanchored-advance.js",
    "mjsunit/harmony/regexp-property-binary.js",
    "mjsunit/harmony/regexp-property-blocks.js",
    "mjsunit/harmony/regexp-property-char-class.js",
    "mjsunit/harmony/regexp-property-enumerated.js",
    "mjsunit/harmony/regexp-property-exact-match.js",
    "mjsunit/harmony/regexp-property-general-category.js",
    "mjsunit/harmony/regexp-property-scripts.js",
    "mjsunit/harmony/regexp-property-special.js",
    # Tests RegExp.compile function which is not part of ES 5 or 6,
    # and is not interesting to implement.
    "mjsunit/regexp-compile.js",
    "mjsunit/string-slices-regexp.js",
    "mjsunit/regress/regress/regress-585775.js",
    "mjsunit/regress/regress-585775.js",
    "test262/test/annexB/built-ins/RegExp/prototype/compile/",
    "test262/test/annexB/built-ins/RegExp/prototype/flags/order-after-compile",
    # annexB
    "mjsunit/es6/string-html.js",
    "mjsunit/function-names.js",
    "mjsunit/regress/regress-536751.js",
    "test262/test/annexB/built-ins/Date/prototype/toGMTString/value.js",
    "test262/test/annexB/built-ins/String/prototype/anchor/",
    "test262/test/annexB/built-ins/String/prototype/big/",
    "test262/test/annexB/built-ins/String/prototype/blink/",
    "test262/test/annexB/built-ins/String/prototype/bold/",
    "test262/test/annexB/built-ins/String/prototype/fixed/",
    "test262/test/annexB/built-ins/String/prototype/fontcolor/",
    "test262/test/annexB/built-ins/String/prototype/fontsize/",
    "test262/test/annexB/built-ins/String/prototype/italics/",
    "test262/test/annexB/built-ins/String/prototype/link/",
    "test262/test/annexB/built-ins/String/prototype/small/",
    "test262/test/annexB/built-ins/String/prototype/strike/",
    "test262/test/annexB/built-ins/String/prototype/sub/",
    "test262/test/annexB/built-ins/String/prototype/sup/",
    "test262/test/annexB/language/function-code/block-decl",
    "test262/test/annexB/language/function-code/if-decl",
    "test262/test/annexB/language/function-code/if-stmt",
    "test262/test/annexB/language/function-code/switch-case",
    "test262/test/annexB/language/function-code/switch-dflt",
    "test262/test/annexB/language/global-code/block-decl",
    "test262/test/annexB/language/global-code/if-decl",
    "test262/test/annexB/language/global-code/if-stmt",
    "test262/test/annexB/language/global-code/switch-case",
    "test262/test/annexB/language/global-code/switch-dflt",
    "test262/test/annexB/built-ins/escape/escape-above-astral.js",
    "test262/test/annexB/language/comments/multi-line-html-close.js",
    "test262/test/annexB/language/comments/single-line-html-close-asi.js",
    "test262/test/annexB/language/comments/single-line-html-close.js",
    "test262/test/annexB/language/comments/single-line-html-open.js",
    "test262/test/annexB/language/expressions/template-literal/legacy-octal-escape-sequence-non-strict.js",
    "test262/test/language/literals/string/legacy-non-octal-escape-sequence-1-strict-explicit-pragma.js",
    "test262/test/language/literals/string/legacy-non-octal-escape-sequence-2-strict-explicit-pragma.js",
    "test262/test/language/literals/string/legacy-non-octal-escape-sequence-3-strict-explicit-pragma.js",
    "test262/test/language/literals/string/legacy-non-octal-escape-sequence-4-strict-explicit-pragma.js",
    "test262/test/language/literals/string/legacy-non-octal-escape-sequence-5-strict-explicit-pragma.js",
    "test262/test/language/literals/string/legacy-non-octal-escape-sequence-6-strict-explicit-pragma.js",
    "test262/test/language/literals/string/legacy-non-octal-escape-sequence-7-strict-explicit-pragma.js",
    "test262/test/language/literals/string/legacy-non-octal-escape-sequence-8-strict-explicit-pragma.js",
    "test262/test/language/literals/string/legacy-non-octal-escape-sequence-9-strict-explicit-pragma.js",
    "test262/test/language/literals/string/legacy-non-octal-escape-sequence-8-strict.js",
    "test262/test/language/literals/string/legacy-non-octal-escape-sequence-9-strict.js",
    "test262/test/language/literals/string/legacy-non-octal-escape-sequence-strict.js",
    "test262/test/language/literals/string/legacy-octal-escape-sequence-prologue-strict.js",
    "test262/test/annexB/language/expressions/object/__proto__-duplicate-computed.js",
    "test262/test/annexB/language/literals/regexp/class-escape.js",
    "test262/test/language/function-code/block-decl-onlystrict.js",
    "test262/test/language/function-code/switch-case-decl-onlystrict.js",
    "test262/test/language/function-code/switch-case-decl-strict.js",
    "test262/test/language/function-code/switch-dflt-decl-onlystrict.js",
    "test262/test/language/function-code/switch-dflt-decl-strict.js",
    "test262/test/language/global-code/switch-case-decl-strict.js",
    "test262/test/language/global-code/switch-dflt-decl-strict.js",
    "test262/test/annexB/language/statements/labeled/function-declaration.js",
    "test262/test/annexB/built-ins/Function/createdynfn-html-close-comment-body.js",
    "test262/test/annexB/built-ins/Function/createdynfn-html-close-comment-params.js",
    "test262/test/annexB/built-ins/Function/createdynfn-html-open-comment-body.js",
    "test262/test/annexB/built-ins/Function/createdynfn-html-open-comment-params.js",
    "test262/test/annexB/built-ins/Function/createdynfn-no-line-terminator-html-close-comment-body.js",
    "test262/test/annexB/built-ins/RegExp/prototype/Symbol.split/toint32-limit-recompiles-source.js",
    "test262/test/annexB/built-ins/RegExp/prototype/Symbol.split/Symbol.match-getter-recompiles-source.js",
    "test262/test/annexB/built-ins/RegExp/RegExp-control-escape-russian-letter.js",
    "test262/test/annexB/built-ins/RegExp/RegExp-invalid-control-escape-character-class.js",
    "test262/test/annexB/built-ins/RegExp/legacy-accessors/input/prop-desc.js",
    "test262/test/annexB/language/comments/single-line-html-close-unicode-separators.js",
    "esprima/test_fixtures/es2017/async/regular-identifier/label-async.js",
    # Testing whole feature sets that Hermes doesn't support.
    "test262/test/built-ins/Atomics/",
    "test262/test/built-ins/AsyncGeneratorFunction/",
    "test262/test/built-ins/SharedArrayBuffer/",
    "test262/test/intl402/Date/",
    "test262/test/intl402/DateTimeFormat/",
    "test262/test/intl402/DisplayNames/",
    "test262/test/intl402/Intl/supportedValuesOf/",
    "test262/test/intl402/Intl/builtin.js",
    "test262/test/intl402/Intl/getCanonicalLocales/has-property.js",
    "test262/test/intl402/Intl/getCanonicalLocales/Locale-object.js",
    "test262/test/intl402/ListFormat/",
    "test262/test/intl402/Locale/",
    "test262/test/intl402/Number/",
    "test262/test/intl402/NumberFormat/",
    "test262/test/intl402/PluralRules/",
    "test262/test/intl402/Segmenter/",
    "test262/test/intl402/RelativeTimeFormat/",
    "mjsunit/asm/",
    "mjsunit/regress/wasm/",
    "mjsunit/wasm/",
    "mjsunit/es6/proxies-",
    "mjsunit/es6/proxies.js",
    # Flow AST features.
    "flow/comment_interning/",
    "flow/decorators/",
    "flow/types/annotations_in_comments/",
    "flow/types/annotations_in_comments_invalid/",
    # Flow bug
    "flow/JSX_invalid/migrated_0000.js",
]

HANDLESAN_SKIP_LIST = [
    # Very slow tests on some builds of Hermes. Handle-SAN, ASAN, and MallocGC
    # make these very slow.
    "test262/test/built-ins/decodeURI/S15.1.3.1_A2.5_T1.js",
    "test262/test/built-ins/decodeURIComponent/S15.1.3.2_A2.5_T1.js",
    "test262/test/built-ins/RegExp/character-class-escape-non-whitespace.js",
    "test262/test/built-ins/decodeURI/S15.1.3.1_A1.11_T2.js",
    "test262/test/built-ins/decodeURI/S15.1.3.1_A1.11_T1.js",
    "test262/test/built-ins/decodeURI/S15.1.3.1_A1.12_T1.js",
    "test262/test/built-ins/decodeURI/S15.1.3.1_A1.12_T3.js",
    "test262/test/built-ins/decodeURI/S15.1.3.1_A1.12_T2.js",
    "test262/test/built-ins/decodeURI/S15.1.3.1_A1.2_T1.js",
    "test262/test/built-ins/decodeURI/S15.1.3.1_A1.2_T2.js",
    "test262/test/built-ins/decodeURI/S15.1.3.1_A2.1_T1.js",
    "test262/test/built-ins/decodeURI/S15.1.3.1_A2.4_T1.js",
    "test262/test/built-ins/decodeURI/S15.1.3.1_A1.10_T1.js",
    "test262/test/built-ins/decodeURIComponent/S15.1.3.2_A1.10_T1.js",
    "test262/test/built-ins/decodeURIComponent/S15.1.3.2_A1.12_T3.js",
    "test262/test/built-ins/decodeURIComponent/S15.1.3.2_A1.12_T2.js",
    "test262/test/built-ins/decodeURIComponent/S15.1.3.2_A1.11_T2.js",
    "test262/test/built-ins/decodeURIComponent/S15.1.3.2_A1.11_T1.js",
    "test262/test/built-ins/decodeURIComponent/S15.1.3.2_A1.12_T1.js",
    "test262/test/built-ins/decodeURIComponent/S15.1.3.2_A1.2_T1.js",
    "test262/test/built-ins/decodeURIComponent/S15.1.3.2_A1.2_T2.js",
    "test262/test/built-ins/decodeURIComponent/S15.1.3.2_A2.1_T1.js",
    "test262/test/built-ins/decodeURIComponent/S15.1.3.2_A2.4_T1.js",
    "test262/test/built-ins/encodeURI/S15.1.3.3_A2.3_T1.js",
    "test262/test/built-ins/encodeURIComponent/S15.1.3.4_A2.3_T1.js",
    "test262/test/built-ins/parseInt/S15.1.2.2_A8.js",
    "test262/test/built-ins/parseFloat/S15.1.2.3_A6.js",
    "test262/test/built-ins/String/prototype/repeat/repeat-string-n-times.js",
]

UNSUPPORTED_FEATURES = [
    "AggregateError",
    "Promise.prototype.finally",
    "Symbol.asyncIterator",
    "Symbol.species",
    "Symbol.prototype.description",
    "Symbol.unscopables",
    "async-iteration",
    "caller",
    "class",
    "class-fields-public",
    "class-fields-private",
    "class-fields-private-in",
    "class-static-fields-public",
    "class-static-fields-private",
    "class-static-methods-private",
    "class-static-block",
    "class-methods-private",
    "computed-property-names",
    "const",
    "destructuring-binding",
    "dynamic-import",
    "error-cause",
    "FinalizationGroup",
    "FinalizationRegistry",
    "import-assertions",
    "json-superset",
    "let",
    "new.target",
    "regexp-match-indices",
    "regexp-named-groups",
    "regexp-unicode-property-escapes",
    "resizable-arraybuffer",
    "string-trimming",
    "super",
    "ShadowRealm",
    "tail-call-optimization",
    "Temporal",
    "well-formed-json-stringify",
    "u180e",
    "WeakRef",
]

PERMANENT_UNSUPPORTED_FEATURES = [
    "Atomics",
    "BigInt",
    "IsHTMLDDA",
    "SharedArrayBuffer",
    "cross-realm",
]

# Tests for Intl features
INTL_TESTS = ["test262/test/intl402"]

assert len(set(SKIP_LIST)) == len(SKIP_LIST), "Skiplist has duplicates: " + str(
    [item for item, count in collections.Counter(SKIP_LIST).items() if count > 1]
)
