Implement parsing, evaluation, lexical this capture, and new rejection for arrow functions. Covers expression bodies, block bodies, zero/single/ multi-param forms, and backtracking disambiguation from grouping parens. Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
1689 lines
41 KiB
TOML
1689 lines
41 KiB
TOML
# JS262 Conformance Test Manifest
|
|
# Test262-inspired tests for the JS engine.
|
|
# Paths are relative to this file's directory.
|
|
|
|
# ============================================================
|
|
# Variable declarations (feature = "variable-declarations")
|
|
# ============================================================
|
|
|
|
[[case]]
|
|
id = "js262-var-hoisting-basic"
|
|
input = "fixtures/var-hoisting-basic.js"
|
|
mode = "script"
|
|
expected_output = "expected/var-hoisting-basic.txt"
|
|
status = "pass"
|
|
feature = "variable-declarations"
|
|
flags = []
|
|
|
|
[[case]]
|
|
id = "js262-var-hoisting-function-scope"
|
|
input = "fixtures/var-hoisting-function-scope.js"
|
|
mode = "script"
|
|
expected_output = "expected/var-hoisting-function-scope.txt"
|
|
status = "pass"
|
|
feature = "variable-declarations"
|
|
flags = []
|
|
|
|
[[case]]
|
|
id = "js262-var-hoisting-if-branch"
|
|
input = "fixtures/var-hoisting-if-branch.js"
|
|
mode = "script"
|
|
expected_output = "expected/var-hoisting-if-branch.txt"
|
|
status = "pass"
|
|
feature = "variable-declarations"
|
|
flags = []
|
|
|
|
[[case]]
|
|
id = "js262-var-hoisting-untaken-else"
|
|
input = "fixtures/var-hoisting-untaken-else.js"
|
|
mode = "script"
|
|
expected_output = "expected/var-hoisting-untaken-else.txt"
|
|
status = "pass"
|
|
feature = "variable-declarations"
|
|
flags = []
|
|
|
|
[[case]]
|
|
id = "js262-var-default-undefined"
|
|
input = "fixtures/var-default-undefined.js"
|
|
mode = "script"
|
|
expected_output = "expected/var-default-undefined.txt"
|
|
status = "pass"
|
|
feature = "variable-declarations"
|
|
flags = []
|
|
|
|
[[case]]
|
|
id = "js262-var-multiple-declarations"
|
|
input = "fixtures/var-multiple-declarations.js"
|
|
mode = "script"
|
|
expected_output = "expected/var-multiple-declarations.txt"
|
|
status = "pass"
|
|
feature = "variable-declarations"
|
|
flags = []
|
|
|
|
[[case]]
|
|
id = "js262-let-block-scope"
|
|
input = "fixtures/let-block-scope.js"
|
|
mode = "script"
|
|
expected_output = "expected/let-block-scope.txt"
|
|
status = "pass"
|
|
feature = "variable-declarations"
|
|
flags = []
|
|
|
|
[[case]]
|
|
id = "js262-let-const-in-block"
|
|
input = "fixtures/let-const-in-block.js"
|
|
mode = "script"
|
|
expected_output = "expected/let-const-in-block.txt"
|
|
status = "pass"
|
|
feature = "variable-declarations"
|
|
flags = []
|
|
|
|
[[case]]
|
|
id = "js262-const-immutability"
|
|
input = "fixtures/const-immutability.js"
|
|
mode = "script"
|
|
expected_output = "expected/const-immutability.txt"
|
|
status = "pass"
|
|
feature = "variable-declarations"
|
|
flags = []
|
|
|
|
[[case]]
|
|
id = "js262-const-reassign-error"
|
|
input = "fixtures/const-reassign-error.js"
|
|
mode = "script"
|
|
expected_error = "type"
|
|
status = "pass"
|
|
feature = "variable-declarations"
|
|
flags = []
|
|
|
|
[[case]]
|
|
id = "js262-let-tdz-error"
|
|
input = "fixtures/let-tdz-error.js"
|
|
mode = "script"
|
|
expected_error = "reference"
|
|
status = "pass"
|
|
feature = "variable-declarations"
|
|
flags = []
|
|
|
|
# ============================================================
|
|
# Expressions and operators (feature = "expressions")
|
|
# ============================================================
|
|
|
|
[[case]]
|
|
id = "js262-string-coercion-concat"
|
|
input = "fixtures/string-coercion-concat.js"
|
|
mode = "script"
|
|
expected_output = "expected/string-coercion-concat.txt"
|
|
status = "pass"
|
|
feature = "expressions"
|
|
flags = []
|
|
|
|
[[case]]
|
|
id = "js262-expr-string-concat-coercion"
|
|
input = "fixtures/expr-string-concat-coercion.js"
|
|
mode = "script"
|
|
expected_output = "expected/expr-string-concat-coercion.txt"
|
|
status = "pass"
|
|
feature = "expressions"
|
|
flags = []
|
|
|
|
[[case]]
|
|
id = "js262-expr-arithmetic-coercion"
|
|
input = "fixtures/expr-arithmetic-coercion.js"
|
|
mode = "script"
|
|
expected_output = "expected/expr-arithmetic-coercion.txt"
|
|
status = "pass"
|
|
feature = "expressions"
|
|
flags = []
|
|
|
|
[[case]]
|
|
id = "js262-expr-abstract-equality"
|
|
input = "fixtures/expr-abstract-equality.js"
|
|
mode = "script"
|
|
expected_output = "expected/expr-abstract-equality.txt"
|
|
status = "pass"
|
|
feature = "expressions"
|
|
flags = []
|
|
|
|
[[case]]
|
|
id = "js262-expr-strict-equality"
|
|
input = "fixtures/expr-strict-equality.js"
|
|
mode = "script"
|
|
expected_output = "expected/expr-strict-equality.txt"
|
|
status = "pass"
|
|
feature = "expressions"
|
|
flags = []
|
|
|
|
[[case]]
|
|
id = "js262-expr-typeof-all-types"
|
|
input = "fixtures/expr-typeof-all-types.js"
|
|
mode = "script"
|
|
expected_output = "expected/expr-typeof-all-types.txt"
|
|
status = "pass"
|
|
feature = "expressions"
|
|
flags = []
|
|
|
|
[[case]]
|
|
id = "js262-expr-typeof-undeclared"
|
|
input = "fixtures/expr-typeof-undeclared.js"
|
|
mode = "script"
|
|
expected_output = "expected/expr-typeof-undeclared.txt"
|
|
status = "pass"
|
|
feature = "expressions"
|
|
flags = []
|
|
|
|
[[case]]
|
|
id = "js262-expr-unary-negation"
|
|
input = "fixtures/expr-unary-negation.js"
|
|
mode = "script"
|
|
expected_output = "expected/expr-unary-negation.txt"
|
|
status = "pass"
|
|
feature = "expressions"
|
|
flags = []
|
|
|
|
[[case]]
|
|
id = "js262-expr-logical-not"
|
|
input = "fixtures/expr-logical-not.js"
|
|
mode = "script"
|
|
expected_output = "expected/expr-logical-not.txt"
|
|
status = "pass"
|
|
feature = "expressions"
|
|
flags = []
|
|
|
|
[[case]]
|
|
id = "js262-expr-precedence-grouping"
|
|
input = "fixtures/expr-precedence-grouping.js"
|
|
mode = "script"
|
|
expected_output = "expected/expr-precedence-grouping.txt"
|
|
status = "pass"
|
|
feature = "expressions"
|
|
flags = []
|
|
|
|
[[case]]
|
|
id = "js262-expr-division-special"
|
|
input = "fixtures/expr-division-special.js"
|
|
mode = "script"
|
|
expected_output = "expected/expr-division-special.txt"
|
|
status = "pass"
|
|
feature = "expressions"
|
|
flags = []
|
|
|
|
[[case]]
|
|
id = "js262-expr-remainder"
|
|
input = "fixtures/expr-remainder.js"
|
|
mode = "script"
|
|
expected_output = "expected/expr-remainder.txt"
|
|
status = "pass"
|
|
feature = "expressions"
|
|
flags = []
|
|
|
|
[[case]]
|
|
id = "js262-expr-comparison"
|
|
input = "fixtures/expr-comparison.js"
|
|
mode = "script"
|
|
expected_output = "expected/expr-comparison.txt"
|
|
status = "pass"
|
|
feature = "expressions"
|
|
flags = []
|
|
|
|
[[case]]
|
|
id = "js262-expr-inequality"
|
|
input = "fixtures/expr-inequality.js"
|
|
mode = "script"
|
|
expected_output = "expected/expr-inequality.txt"
|
|
status = "pass"
|
|
feature = "expressions"
|
|
flags = []
|
|
|
|
[[case]]
|
|
id = "js262-expr-nan-equality"
|
|
input = "fixtures/expr-nan-equality.js"
|
|
mode = "script"
|
|
expected_output = "expected/expr-nan-equality.txt"
|
|
status = "pass"
|
|
feature = "expressions"
|
|
flags = []
|
|
|
|
[[case]]
|
|
id = "js262-expr-string-non-string-concat"
|
|
input = "fixtures/expr-string-non-string-concat.js"
|
|
mode = "script"
|
|
expected_output = "expected/expr-string-non-string-concat.txt"
|
|
status = "pass"
|
|
feature = "expressions"
|
|
flags = []
|
|
|
|
# ============================================================
|
|
# Functions (feature = "functions")
|
|
# ============================================================
|
|
|
|
[[case]]
|
|
id = "js262-func-declaration-hoisting"
|
|
input = "fixtures/func-declaration-hoisting.js"
|
|
mode = "script"
|
|
expected_output = "expected/func-declaration-hoisting.txt"
|
|
status = "pass"
|
|
feature = "functions"
|
|
flags = []
|
|
|
|
[[case]]
|
|
id = "js262-func-expression-named"
|
|
input = "fixtures/func-expression-named.js"
|
|
mode = "script"
|
|
expected_output = "expected/func-expression-named.txt"
|
|
status = "pass"
|
|
feature = "functions"
|
|
flags = []
|
|
|
|
[[case]]
|
|
id = "js262-func-expression-anonymous"
|
|
input = "fixtures/func-expression-anonymous.js"
|
|
mode = "script"
|
|
expected_output = "expected/func-expression-anonymous.txt"
|
|
status = "pass"
|
|
feature = "functions"
|
|
flags = []
|
|
|
|
[[case]]
|
|
id = "js262-func-fewer-args"
|
|
input = "fixtures/func-fewer-args.js"
|
|
mode = "script"
|
|
expected_output = "expected/func-fewer-args.txt"
|
|
status = "pass"
|
|
feature = "functions"
|
|
flags = []
|
|
|
|
[[case]]
|
|
id = "js262-func-extra-args"
|
|
input = "fixtures/func-extra-args.js"
|
|
mode = "script"
|
|
expected_output = "expected/func-extra-args.txt"
|
|
status = "pass"
|
|
feature = "functions"
|
|
flags = []
|
|
|
|
[[case]]
|
|
id = "js262-func-implicit-return"
|
|
input = "fixtures/func-implicit-return.js"
|
|
mode = "script"
|
|
expected_output = "expected/func-implicit-return.txt"
|
|
status = "pass"
|
|
feature = "functions"
|
|
flags = []
|
|
|
|
[[case]]
|
|
id = "js262-func-recursive"
|
|
input = "fixtures/func-recursive.js"
|
|
mode = "script"
|
|
expected_output = "expected/func-recursive.txt"
|
|
status = "pass"
|
|
feature = "functions"
|
|
flags = []
|
|
|
|
[[case]]
|
|
id = "js262-func-as-value"
|
|
input = "fixtures/func-as-value.js"
|
|
mode = "script"
|
|
expected_output = "expected/func-as-value.txt"
|
|
status = "pass"
|
|
feature = "functions"
|
|
flags = []
|
|
|
|
[[case]]
|
|
id = "js262-func-nested-calls"
|
|
input = "fixtures/func-nested-calls.js"
|
|
mode = "script"
|
|
expected_output = "expected/func-nested-calls.txt"
|
|
status = "pass"
|
|
feature = "functions"
|
|
flags = []
|
|
|
|
[[case]]
|
|
id = "js262-func-callback-pattern"
|
|
input = "fixtures/func-callback-pattern.js"
|
|
mode = "script"
|
|
expected_output = "expected/func-callback-pattern.txt"
|
|
status = "pass"
|
|
feature = "functions"
|
|
flags = []
|
|
|
|
# ============================================================
|
|
# Control flow (feature = "control-flow")
|
|
# ============================================================
|
|
|
|
[[case]]
|
|
id = "js262-if-else-basic"
|
|
input = "fixtures/if-else-basic.js"
|
|
mode = "script"
|
|
expected_output = "expected/if-else-basic.txt"
|
|
status = "pass"
|
|
feature = "control-flow"
|
|
flags = []
|
|
|
|
[[case]]
|
|
id = "js262-if-else-nested"
|
|
input = "fixtures/if-else-nested.js"
|
|
mode = "script"
|
|
expected_output = "expected/if-else-nested.txt"
|
|
status = "pass"
|
|
feature = "control-flow"
|
|
flags = []
|
|
|
|
[[case]]
|
|
id = "js262-truthiness-falsy"
|
|
input = "fixtures/truthiness-falsy.js"
|
|
mode = "script"
|
|
expected_output = "expected/truthiness-falsy.txt"
|
|
status = "pass"
|
|
feature = "control-flow"
|
|
flags = []
|
|
|
|
[[case]]
|
|
id = "js262-truthiness-truthy"
|
|
input = "fixtures/truthiness-truthy.js"
|
|
mode = "script"
|
|
expected_output = "expected/truthiness-truthy.txt"
|
|
status = "pass"
|
|
feature = "control-flow"
|
|
flags = []
|
|
|
|
[[case]]
|
|
id = "js262-if-without-else"
|
|
input = "fixtures/if-without-else.js"
|
|
mode = "script"
|
|
expected_output = "expected/if-without-else.txt"
|
|
status = "pass"
|
|
feature = "control-flow"
|
|
flags = []
|
|
|
|
[[case]]
|
|
id = "js262-if-else-chain"
|
|
input = "fixtures/if-else-chain.js"
|
|
mode = "script"
|
|
expected_output = "expected/if-else-chain.txt"
|
|
status = "pass"
|
|
feature = "control-flow"
|
|
flags = []
|
|
|
|
# ============================================================
|
|
# Types (feature = "types")
|
|
# ============================================================
|
|
|
|
[[case]]
|
|
id = "js262-type-boolean-coercion"
|
|
input = "fixtures/type-boolean-coercion.js"
|
|
mode = "script"
|
|
expected_output = "expected/type-boolean-coercion.txt"
|
|
status = "pass"
|
|
feature = "types"
|
|
flags = []
|
|
|
|
[[case]]
|
|
id = "js262-type-number-to-string"
|
|
input = "fixtures/type-number-to-string.js"
|
|
mode = "script"
|
|
expected_output = "expected/type-number-to-string.txt"
|
|
status = "pass"
|
|
feature = "types"
|
|
flags = []
|
|
|
|
[[case]]
|
|
id = "js262-type-string-to-number"
|
|
input = "fixtures/type-string-to-number.js"
|
|
mode = "script"
|
|
expected_output = "expected/type-string-to-number.txt"
|
|
status = "pass"
|
|
feature = "types"
|
|
flags = []
|
|
|
|
[[case]]
|
|
id = "js262-type-nan-behavior"
|
|
input = "fixtures/type-nan-behavior.js"
|
|
mode = "script"
|
|
expected_output = "expected/type-nan-behavior.txt"
|
|
status = "pass"
|
|
feature = "types"
|
|
flags = []
|
|
|
|
[[case]]
|
|
id = "js262-type-equality-coercion-table"
|
|
input = "fixtures/type-equality-coercion-table.js"
|
|
mode = "script"
|
|
expected_output = "expected/type-equality-coercion-table.txt"
|
|
status = "pass"
|
|
feature = "types"
|
|
flags = []
|
|
|
|
# ============================================================
|
|
# Errors (feature = "errors")
|
|
# ============================================================
|
|
|
|
[[case]]
|
|
id = "js262-reference-error-undeclared"
|
|
input = "fixtures/reference-error-undeclared.js"
|
|
mode = "script"
|
|
expected_error = "reference"
|
|
status = "pass"
|
|
feature = "errors"
|
|
flags = []
|
|
|
|
[[case]]
|
|
id = "js262-type-error-call-non-function"
|
|
input = "fixtures/type-error-call-non-function.js"
|
|
mode = "script"
|
|
expected_error = "type"
|
|
status = "pass"
|
|
feature = "errors"
|
|
flags = []
|
|
|
|
[[case]]
|
|
id = "js262-error-assign-undeclared"
|
|
input = "fixtures/error-assign-undeclared.js"
|
|
mode = "script"
|
|
expected_error = "reference"
|
|
status = "pass"
|
|
feature = "errors"
|
|
flags = []
|
|
|
|
[[case]]
|
|
id = "js262-error-null-property-access"
|
|
input = "fixtures/error-null-property-access.js"
|
|
mode = "script"
|
|
expected_error = "type"
|
|
status = "pass"
|
|
feature = "errors"
|
|
flags = []
|
|
|
|
[[case]]
|
|
id = "js262-error-parse-invalid-syntax"
|
|
input = "fixtures/error-parse-invalid-syntax.js"
|
|
mode = "script"
|
|
expected_error = "parse"
|
|
status = "pass"
|
|
feature = "errors"
|
|
flags = []
|
|
|
|
[[case]]
|
|
id = "js262-error-statement-limit"
|
|
input = "fixtures/error-statement-limit.js"
|
|
mode = "script"
|
|
expected_error = "runtime"
|
|
status = "pass"
|
|
feature = "errors"
|
|
flags = []
|
|
|
|
# ============================================================
|
|
# DOM bindings (feature = "dom-bindings")
|
|
# ============================================================
|
|
|
|
[[case]]
|
|
id = "js262-dom-getelementbyid"
|
|
input = "fixtures/dom-getelementbyid.js"
|
|
mode = "dom"
|
|
expected_output = "expected/dom-getelementbyid.txt"
|
|
status = "pass"
|
|
feature = "dom-bindings"
|
|
flags = []
|
|
|
|
[[case]]
|
|
id = "js262-dom-createelement-appendchild"
|
|
input = "fixtures/dom-createelement-appendchild.js"
|
|
mode = "dom"
|
|
expected_output = "expected/dom-createelement-appendchild.txt"
|
|
status = "pass"
|
|
feature = "dom-bindings"
|
|
flags = []
|
|
|
|
[[case]]
|
|
id = "js262-dom-textcontent-readwrite"
|
|
input = "fixtures/dom-textcontent-readwrite.js"
|
|
mode = "dom"
|
|
expected_output = "expected/dom-textcontent-readwrite.txt"
|
|
status = "pass"
|
|
feature = "dom-bindings"
|
|
flags = []
|
|
|
|
[[case]]
|
|
id = "js262-dom-nested-tree"
|
|
input = "fixtures/dom-nested-tree.js"
|
|
mode = "dom"
|
|
expected_output = "expected/dom-nested-tree.txt"
|
|
status = "pass"
|
|
feature = "dom-bindings"
|
|
flags = []
|
|
|
|
[[case]]
|
|
id = "js262-dom-removechild"
|
|
input = "fixtures/dom-removechild.js"
|
|
mode = "dom"
|
|
expected_output = "expected/dom-removechild.txt"
|
|
status = "pass"
|
|
feature = "dom-bindings"
|
|
flags = []
|
|
|
|
[[case]]
|
|
id = "js262-dom-multiple-mutations"
|
|
input = "fixtures/dom-multiple-mutations.js"
|
|
mode = "dom"
|
|
expected_output = "expected/dom-multiple-mutations.txt"
|
|
status = "pass"
|
|
feature = "dom-bindings"
|
|
flags = []
|
|
|
|
# ============================================================
|
|
# Events (feature = "events")
|
|
# ============================================================
|
|
|
|
[[case]]
|
|
id = "js262-event-click-handler"
|
|
input = "fixtures/event-click-handler.js"
|
|
mode = "dom"
|
|
expected_output = "expected/event-click-handler.txt"
|
|
status = "pass"
|
|
feature = "events"
|
|
steps = "dispatch_click:target"
|
|
flags = []
|
|
|
|
[[case]]
|
|
id = "js262-event-multiple-handlers"
|
|
input = "fixtures/event-multiple-handlers.js"
|
|
mode = "dom"
|
|
expected_output = "expected/event-multiple-handlers.txt"
|
|
status = "pass"
|
|
feature = "events"
|
|
steps = "dispatch_click:target"
|
|
flags = []
|
|
|
|
[[case]]
|
|
id = "js262-event-remove-listener"
|
|
input = "fixtures/event-remove-listener.js"
|
|
mode = "dom"
|
|
expected_output = "expected/event-remove-listener.txt"
|
|
status = "pass"
|
|
feature = "events"
|
|
steps = "dispatch_click:target"
|
|
flags = []
|
|
|
|
[[case]]
|
|
id = "js262-event-bubbles-to-parent"
|
|
input = "fixtures/event-bubbles-to-parent.js"
|
|
mode = "dom"
|
|
expected_output = "expected/event-bubbles-to-parent.txt"
|
|
status = "pass"
|
|
feature = "events"
|
|
steps = "dispatch_click:target"
|
|
flags = []
|
|
|
|
[[case]]
|
|
id = "js262-event-stop-propagation"
|
|
input = "fixtures/event-stop-propagation.js"
|
|
mode = "dom"
|
|
expected_output = "expected/event-stop-propagation.txt"
|
|
status = "pass"
|
|
feature = "events"
|
|
steps = "dispatch_click:target"
|
|
flags = []
|
|
|
|
[[case]]
|
|
id = "js262-event-type-property"
|
|
input = "fixtures/event-type-property.js"
|
|
mode = "dom"
|
|
expected_output = "expected/event-type-property.txt"
|
|
status = "pass"
|
|
feature = "events"
|
|
steps = "dispatch_click:target"
|
|
flags = []
|
|
|
|
# ============================================================
|
|
# Promises (feature = "promises")
|
|
# ============================================================
|
|
|
|
[[case]]
|
|
id = "js262-promise-resolve-then"
|
|
input = "fixtures/promise-resolve-then.js"
|
|
mode = "dom"
|
|
expected_output = "expected/promise-resolve-then.txt"
|
|
status = "pass"
|
|
feature = "promises"
|
|
flags = []
|
|
|
|
[[case]]
|
|
id = "js262-promise-chain-3deep"
|
|
input = "fixtures/promise-chain-3deep.js"
|
|
mode = "dom"
|
|
expected_output = "expected/promise-chain-3deep.txt"
|
|
status = "pass"
|
|
feature = "promises"
|
|
flags = []
|
|
|
|
[[case]]
|
|
id = "js262-promise-resolve-static"
|
|
input = "fixtures/promise-resolve-static.js"
|
|
mode = "dom"
|
|
expected_output = "expected/promise-resolve-static.txt"
|
|
status = "pass"
|
|
feature = "promises"
|
|
flags = []
|
|
|
|
[[case]]
|
|
id = "js262-promise-reject-catch"
|
|
input = "fixtures/promise-reject-catch.js"
|
|
mode = "dom"
|
|
expected_output = "expected/promise-reject-catch.txt"
|
|
status = "pass"
|
|
feature = "promises"
|
|
flags = []
|
|
|
|
[[case]]
|
|
id = "js262-promise-double-resolve"
|
|
input = "fixtures/promise-double-resolve.js"
|
|
mode = "dom"
|
|
expected_output = "expected/promise-double-resolve.txt"
|
|
status = "pass"
|
|
feature = "promises"
|
|
flags = []
|
|
|
|
# ============================================================
|
|
# Scheduling (feature = "scheduling")
|
|
# ============================================================
|
|
|
|
[[case]]
|
|
id = "js262-timer-basic"
|
|
input = "fixtures/timer-basic.js"
|
|
mode = "dom"
|
|
expected_output = "expected/timer-basic.txt"
|
|
status = "pass"
|
|
feature = "scheduling"
|
|
steps = "tick"
|
|
flags = []
|
|
|
|
[[case]]
|
|
id = "js262-sched-timer-delay0"
|
|
input = "fixtures/sched-timer-delay0.js"
|
|
mode = "dom"
|
|
expected_output = "expected/sched-timer-delay0.txt"
|
|
status = "pass"
|
|
feature = "scheduling"
|
|
steps = "tick"
|
|
flags = []
|
|
|
|
[[case]]
|
|
id = "js262-sched-timer-delay100"
|
|
input = "fixtures/sched-timer-delay100.js"
|
|
mode = "dom"
|
|
expected_output = "expected/sched-timer-delay100.txt"
|
|
status = "pass"
|
|
feature = "scheduling"
|
|
steps = "advance_ms:100,tick"
|
|
flags = []
|
|
|
|
[[case]]
|
|
id = "js262-sched-timer-ordering"
|
|
input = "fixtures/sched-timer-ordering.js"
|
|
mode = "dom"
|
|
expected_output = "expected/sched-timer-ordering.txt"
|
|
status = "pass"
|
|
feature = "scheduling"
|
|
steps = "advance_ms:100,tick,advance_ms:100,tick"
|
|
flags = []
|
|
|
|
[[case]]
|
|
id = "js262-sched-cleartimeout"
|
|
input = "fixtures/sched-cleartimeout.js"
|
|
mode = "dom"
|
|
expected_output = "expected/sched-cleartimeout.txt"
|
|
status = "pass"
|
|
feature = "scheduling"
|
|
steps = "tick"
|
|
flags = []
|
|
|
|
[[case]]
|
|
id = "js262-sched-microtask-before-task"
|
|
input = "fixtures/sched-microtask-before-task.js"
|
|
mode = "dom"
|
|
expected_output = "expected/sched-microtask-before-task.txt"
|
|
status = "pass"
|
|
feature = "scheduling"
|
|
steps = "tick"
|
|
flags = []
|
|
|
|
[[case]]
|
|
id = "js262-sched-nested-microtasks"
|
|
input = "fixtures/sched-nested-microtasks.js"
|
|
mode = "dom"
|
|
expected_output = "expected/sched-nested-microtasks.txt"
|
|
status = "pass"
|
|
feature = "scheduling"
|
|
flags = []
|
|
|
|
# ============================================================
|
|
# Known failures — documents feature gaps for future work
|
|
# ============================================================
|
|
|
|
[[case]]
|
|
id = "js262-for-loop-basic"
|
|
input = "fixtures/for-loop-basic.js"
|
|
mode = "script"
|
|
expected_output = "expected/for-loop-basic.txt"
|
|
status = "pass"
|
|
feature = "for-loops"
|
|
flags = []
|
|
|
|
[[case]]
|
|
id = "js262-while-loop-basic"
|
|
input = "fixtures/while-loop-basic.js"
|
|
mode = "script"
|
|
expected_output = "expected/while-loop-basic.txt"
|
|
status = "pass"
|
|
feature = "while-loops"
|
|
flags = []
|
|
|
|
[[case]]
|
|
id = "js262-do-while-basic"
|
|
input = "fixtures/do-while-basic.js"
|
|
mode = "script"
|
|
expected_output = "expected/do-while-basic.txt"
|
|
status = "pass"
|
|
feature = "do-while-loops"
|
|
flags = []
|
|
|
|
[[case]]
|
|
id = "js262-try-catch-basic"
|
|
input = "fixtures/try-catch-basic.js"
|
|
mode = "script"
|
|
expected_output = "expected/try-catch-basic.txt"
|
|
status = "pass"
|
|
feature = "try-catch"
|
|
flags = []
|
|
|
|
[[case]]
|
|
id = "js262-try-finally-basic"
|
|
input = "fixtures/try-finally-basic.js"
|
|
mode = "script"
|
|
expected_output = "expected/try-finally-basic.txt"
|
|
status = "pass"
|
|
feature = "try-catch"
|
|
flags = []
|
|
|
|
[[case]]
|
|
id = "js262-try-catch-throw"
|
|
input = "fixtures/try-catch-throw.js"
|
|
mode = "script"
|
|
expected_output = "expected/try-catch-throw.txt"
|
|
status = "pass"
|
|
feature = "try-catch"
|
|
flags = []
|
|
|
|
[[case]]
|
|
id = "js262-try-catch-finally-all"
|
|
input = "fixtures/try-catch-finally-all.js"
|
|
mode = "script"
|
|
expected_output = "expected/try-catch-finally-all.txt"
|
|
status = "pass"
|
|
feature = "try-catch"
|
|
flags = []
|
|
|
|
[[case]]
|
|
id = "js262-logical-and"
|
|
input = "fixtures/logical-and.js"
|
|
mode = "script"
|
|
status = "pass"
|
|
expected_output = "expected/logical-and.txt"
|
|
feature = "logical-ops"
|
|
flags = []
|
|
|
|
[[case]]
|
|
id = "js262-logical-or"
|
|
input = "fixtures/logical-or.js"
|
|
mode = "script"
|
|
status = "pass"
|
|
expected_output = "expected/logical-or.txt"
|
|
feature = "logical-ops"
|
|
flags = []
|
|
|
|
[[case]]
|
|
id = "js262-array-literal"
|
|
input = "fixtures/array-literal.js"
|
|
mode = "script"
|
|
expected_output = "expected/array-literal.txt"
|
|
status = "pass"
|
|
feature = "arrays"
|
|
flags = []
|
|
|
|
[[case]]
|
|
id = "js262-object-literal"
|
|
input = "fixtures/object-literal.js"
|
|
mode = "script"
|
|
expected_output = "expected/object-literal.txt"
|
|
status = "pass"
|
|
feature = "objects"
|
|
flags = []
|
|
|
|
[[case]]
|
|
id = "js262-object-property-assign"
|
|
input = "fixtures/object-property-assign.js"
|
|
mode = "script"
|
|
expected_output = "expected/object-property-assign.txt"
|
|
status = "pass"
|
|
feature = "objects"
|
|
flags = []
|
|
|
|
[[case]]
|
|
id = "js262-object-nested"
|
|
input = "fixtures/object-nested.js"
|
|
mode = "script"
|
|
expected_output = "expected/object-nested.txt"
|
|
status = "pass"
|
|
feature = "objects"
|
|
flags = []
|
|
|
|
[[case]]
|
|
id = "js262-object-typeof"
|
|
input = "fixtures/object-typeof.js"
|
|
mode = "script"
|
|
expected_output = "expected/object-typeof.txt"
|
|
status = "pass"
|
|
feature = "objects"
|
|
flags = []
|
|
|
|
[[case]]
|
|
id = "js262-template-literal"
|
|
input = "fixtures/template-literal.js"
|
|
expected_output = "expected/template-literal.txt"
|
|
mode = "script"
|
|
status = "pass"
|
|
feature = "template-literals"
|
|
flags = []
|
|
|
|
[[case]]
|
|
id = "js262-ternary-operator"
|
|
input = "fixtures/ternary-operator.js"
|
|
mode = "script"
|
|
status = "known_fail"
|
|
reason = "ternary operator not yet supported in parser"
|
|
feature = "ternary"
|
|
flags = []
|
|
|
|
[[case]]
|
|
id = "js262-arrow-function"
|
|
input = "fixtures/arrow-function.js"
|
|
mode = "script"
|
|
status = "pass"
|
|
expected_output = "expected/arrow-function.txt"
|
|
feature = "arrow-functions"
|
|
flags = []
|
|
|
|
[[case]]
|
|
id = "js262-arrow-function-this"
|
|
input = "fixtures/arrow-function-this.js"
|
|
mode = "script"
|
|
status = "pass"
|
|
expected_output = "expected/arrow-function-this.txt"
|
|
feature = "arrow-functions"
|
|
flags = []
|
|
|
|
[[case]]
|
|
id = "js262-arrow-function-new-error"
|
|
input = "fixtures/arrow-function-new-error.js"
|
|
mode = "script"
|
|
status = "pass"
|
|
expected_output = "expected/arrow-function-new-error.txt"
|
|
feature = "arrow-functions"
|
|
flags = []
|
|
|
|
[[case]]
|
|
id = "js262-arrow-function-arity"
|
|
input = "fixtures/arrow-function-arity.js"
|
|
mode = "script"
|
|
status = "pass"
|
|
expected_output = "expected/arrow-function-arity.txt"
|
|
feature = "arrow-functions"
|
|
flags = []
|
|
|
|
[[case]]
|
|
id = "js262-arrow-function-outer-scope"
|
|
input = "fixtures/arrow-function-outer-scope.js"
|
|
mode = "script"
|
|
status = "pass"
|
|
expected_output = "expected/arrow-function-outer-scope.txt"
|
|
feature = "arrow-functions"
|
|
flags = []
|
|
|
|
[[case]]
|
|
id = "js262-arrow-function-iife"
|
|
input = "fixtures/arrow-function-iife.js"
|
|
mode = "script"
|
|
status = "pass"
|
|
expected_output = "expected/arrow-function-iife.txt"
|
|
feature = "arrow-functions"
|
|
flags = []
|
|
|
|
[[case]]
|
|
id = "js262-switch-basic"
|
|
input = "fixtures/switch-basic.js"
|
|
mode = "script"
|
|
status = "pass"
|
|
expected_output = "expected/switch-basic.txt"
|
|
feature = "switch"
|
|
flags = []
|
|
|
|
[[case]]
|
|
id = "js262-for-in-loop"
|
|
input = "fixtures/for-in-loop.js"
|
|
mode = "script"
|
|
status = "known_fail"
|
|
reason = "for-in loop not yet supported in parser"
|
|
feature = "for-in"
|
|
flags = []
|
|
|
|
[[case]]
|
|
id = "js262-compound-assignment"
|
|
input = "fixtures/compound-assignment.js"
|
|
mode = "script"
|
|
expected_output = "expected/compound-assignment.txt"
|
|
status = "pass"
|
|
feature = "compound-assignment"
|
|
flags = []
|
|
|
|
[[case]]
|
|
id = "js262-increment-decrement"
|
|
input = "fixtures/increment-decrement.js"
|
|
mode = "script"
|
|
expected_output = "expected/increment-decrement.txt"
|
|
status = "pass"
|
|
feature = "increment-decrement"
|
|
flags = []
|
|
|
|
[[case]]
|
|
id = "js262-computed-member-access"
|
|
input = "fixtures/computed-member-access.js"
|
|
mode = "script"
|
|
expected_output = "expected/computed-member-access.txt"
|
|
status = "pass"
|
|
feature = "computed-member"
|
|
flags = []
|
|
|
|
[[case]]
|
|
id = "js262-string-length"
|
|
input = "fixtures/string-length.js"
|
|
mode = "script"
|
|
expected_output = "expected/string-length.txt"
|
|
status = "pass"
|
|
feature = "string-methods"
|
|
flags = []
|
|
|
|
[[case]]
|
|
id = "js262-string-methods-basic"
|
|
input = "fixtures/string-methods-basic.js"
|
|
mode = "script"
|
|
expected_output = "expected/string-methods-basic.txt"
|
|
status = "pass"
|
|
feature = "string-methods"
|
|
flags = []
|
|
|
|
[[case]]
|
|
id = "js262-string-methods-advanced"
|
|
input = "fixtures/string-methods-advanced.js"
|
|
mode = "script"
|
|
expected_output = "expected/string-methods-advanced.txt"
|
|
status = "pass"
|
|
feature = "string-methods"
|
|
flags = []
|
|
|
|
[[case]]
|
|
id = "js262-function-name-call"
|
|
input = "fixtures/function-name-call.js"
|
|
mode = "script"
|
|
expected_output = "expected/function-name-call.txt"
|
|
status = "pass"
|
|
feature = "function-call"
|
|
flags = []
|
|
|
|
[[case]]
|
|
id = "js262-object-prototype-tostring"
|
|
input = "fixtures/object-prototype-tostring.js"
|
|
mode = "script"
|
|
expected_output = "expected/object-prototype-tostring.txt"
|
|
status = "pass"
|
|
feature = "object-prototype"
|
|
flags = []
|
|
|
|
[[case]]
|
|
id = "js262-throw-basic"
|
|
input = "fixtures/throw-basic.js"
|
|
mode = "script"
|
|
expected_output = "expected/throw-basic.txt"
|
|
status = "pass"
|
|
feature = "try-catch"
|
|
flags = []
|
|
|
|
[[case]]
|
|
id = "js262-instanceof-basic"
|
|
input = "fixtures/instanceof-basic.js"
|
|
mode = "script"
|
|
status = "known_fail"
|
|
reason = "instanceof operator not yet supported in parser"
|
|
feature = "instanceof"
|
|
flags = []
|
|
|
|
[[case]]
|
|
id = "js262-stack-overflow"
|
|
input = "fixtures/stack-overflow.js"
|
|
mode = "script"
|
|
status = "skip"
|
|
reason = "infinite recursion exhausts Rust stack and aborts the process"
|
|
feature = "stack-overflow"
|
|
flags = []
|
|
|
|
[[case]]
|
|
id = "js262-bitwise-or"
|
|
input = "fixtures/bitwise-or.js"
|
|
mode = "script"
|
|
status = "known_fail"
|
|
reason = "bitwise operators not yet supported in parser"
|
|
feature = "bitwise-ops"
|
|
flags = []
|
|
|
|
# ============================================================
|
|
# this keyword (feature = "this-keyword")
|
|
# ============================================================
|
|
|
|
[[case]]
|
|
id = "js262-this-keyword"
|
|
input = "fixtures/this-keyword.js"
|
|
mode = "script"
|
|
expected_output = "expected/this-keyword.txt"
|
|
status = "pass"
|
|
feature = "this-keyword"
|
|
flags = []
|
|
|
|
[[case]]
|
|
id = "js262-this-constructor-basic"
|
|
input = "fixtures/this-constructor-basic.js"
|
|
mode = "script"
|
|
expected_output = "expected/this-constructor-basic.txt"
|
|
status = "pass"
|
|
feature = "this-keyword"
|
|
flags = []
|
|
|
|
[[case]]
|
|
id = "js262-this-method-call"
|
|
input = "fixtures/this-method-call.js"
|
|
mode = "script"
|
|
expected_output = "expected/this-method-call.txt"
|
|
status = "pass"
|
|
feature = "this-keyword"
|
|
flags = []
|
|
|
|
[[case]]
|
|
id = "js262-this-constructor-multiple-props"
|
|
input = "fixtures/this-constructor-multiple-props.js"
|
|
mode = "script"
|
|
expected_output = "expected/this-constructor-multiple-props.txt"
|
|
status = "pass"
|
|
feature = "this-keyword"
|
|
flags = []
|
|
|
|
[[case]]
|
|
id = "js262-this-constructor-method"
|
|
input = "fixtures/this-constructor-method.js"
|
|
mode = "script"
|
|
expected_output = "expected/this-constructor-method.txt"
|
|
status = "pass"
|
|
feature = "this-keyword"
|
|
flags = []
|
|
|
|
# ============================================================
|
|
# Loop tests (feature = "for-loops", "while-loops", "do-while-loops")
|
|
# ============================================================
|
|
|
|
[[case]]
|
|
id = "js262-for-loop-break"
|
|
input = "fixtures/for-loop-break.js"
|
|
mode = "script"
|
|
expected_output = "expected/for-loop-break.txt"
|
|
status = "pass"
|
|
feature = "for-loops"
|
|
flags = []
|
|
|
|
[[case]]
|
|
id = "js262-for-loop-continue"
|
|
input = "fixtures/for-loop-continue.js"
|
|
mode = "script"
|
|
expected_output = "expected/for-loop-continue.txt"
|
|
status = "pass"
|
|
feature = "for-loops"
|
|
flags = []
|
|
|
|
[[case]]
|
|
id = "js262-for-loop-nested"
|
|
input = "fixtures/for-loop-nested.js"
|
|
mode = "script"
|
|
expected_output = "expected/for-loop-nested.txt"
|
|
status = "pass"
|
|
feature = "for-loops"
|
|
flags = []
|
|
|
|
[[case]]
|
|
id = "js262-for-loop-let-scoping"
|
|
input = "fixtures/for-loop-let-scoping.js"
|
|
mode = "script"
|
|
expected_output = "expected/for-loop-let-scoping.txt"
|
|
status = "pass"
|
|
feature = "for-loops"
|
|
flags = []
|
|
|
|
[[case]]
|
|
id = "js262-for-loop-empty-parts"
|
|
input = "fixtures/for-loop-empty-parts.js"
|
|
mode = "script"
|
|
expected_output = "expected/for-loop-empty-parts.txt"
|
|
status = "pass"
|
|
feature = "for-loops"
|
|
flags = []
|
|
|
|
[[case]]
|
|
id = "js262-while-loop-break"
|
|
input = "fixtures/while-loop-break.js"
|
|
mode = "script"
|
|
expected_output = "expected/while-loop-break.txt"
|
|
status = "pass"
|
|
feature = "while-loops"
|
|
flags = []
|
|
|
|
[[case]]
|
|
id = "js262-while-loop-continue"
|
|
input = "fixtures/while-loop-continue.js"
|
|
mode = "script"
|
|
expected_output = "expected/while-loop-continue.txt"
|
|
status = "pass"
|
|
feature = "while-loops"
|
|
flags = []
|
|
|
|
[[case]]
|
|
id = "js262-do-while-executes-once"
|
|
input = "fixtures/do-while-executes-once.js"
|
|
mode = "script"
|
|
expected_output = "expected/do-while-executes-once.txt"
|
|
status = "pass"
|
|
feature = "do-while-loops"
|
|
flags = []
|
|
|
|
|
|
|
|
# --- Real Test262 tests (Phase A) ---
|
|
|
|
[[case]]
|
|
id = "t262-asi-S7-9-2-A1-T1"
|
|
input = "test262/language/asi/S7.9.2_A1_T1.js"
|
|
mode = "test262"
|
|
expected_error = "parse"
|
|
status = "pass"
|
|
feature = "asi"
|
|
flags = []
|
|
|
|
[[case]]
|
|
id = "t262-asi-S7-9-2-A1-T2"
|
|
input = "test262/language/asi/S7.9.2_A1_T2.js"
|
|
mode = "test262"
|
|
status = "known_fail"
|
|
reason = "ASI not fully implemented"
|
|
feature = "asi"
|
|
flags = []
|
|
|
|
[[case]]
|
|
id = "t262-asi-S7-9-2-A1-T3"
|
|
input = "test262/language/asi/S7.9.2_A1_T3.js"
|
|
mode = "test262"
|
|
expected_error = "parse"
|
|
status = "pass"
|
|
feature = "asi"
|
|
flags = []
|
|
|
|
[[case]]
|
|
id = "t262-asi-S7-9-2-A1-T6"
|
|
input = "test262/language/asi/S7.9.2_A1_T6.js"
|
|
mode = "test262"
|
|
expected_error = "parse"
|
|
status = "pass"
|
|
feature = "asi"
|
|
flags = []
|
|
|
|
[[case]]
|
|
id = "t262-asi-S7-9-A10-T1"
|
|
input = "test262/language/asi/S7.9_A10_T1.js"
|
|
mode = "test262"
|
|
status = "known_fail"
|
|
reason = "ASI not fully implemented"
|
|
feature = "asi"
|
|
flags = []
|
|
|
|
[[case]]
|
|
id = "t262-block-scope-leave-finally-block-let-declaration-only-shadows-outer-parameter-value-1"
|
|
input = "test262/language/block-scope/leave/finally-block-let-declaration-only-shadows-outer-parameter-value-1.js"
|
|
mode = "test262"
|
|
status = "pass"
|
|
feature = "block-scope"
|
|
flags = []
|
|
|
|
[[case]]
|
|
id = "t262-block-scope-leave-finally-block-let-declaration-only-shadows-outer-parameter-value-2"
|
|
input = "test262/language/block-scope/leave/finally-block-let-declaration-only-shadows-outer-parameter-value-2.js"
|
|
mode = "test262"
|
|
status = "pass"
|
|
feature = "block-scope"
|
|
flags = []
|
|
|
|
[[case]]
|
|
id = "t262-block-scope-leave-for-loop-block-let-declaration-only-shadows-outer-parameter-value-1"
|
|
input = "test262/language/block-scope/leave/for-loop-block-let-declaration-only-shadows-outer-parameter-value-1.js"
|
|
mode = "test262"
|
|
status = "pass"
|
|
feature = "block-scope"
|
|
flags = []
|
|
|
|
[[case]]
|
|
id = "t262-block-scope-leave-for-loop-block-let-declaration-only-shadows-outer-parameter-value-2"
|
|
input = "test262/language/block-scope/leave/for-loop-block-let-declaration-only-shadows-outer-parameter-value-2.js"
|
|
mode = "test262"
|
|
status = "known_fail"
|
|
reason = "label syntax not supported"
|
|
feature = "block-scope"
|
|
flags = []
|
|
|
|
[[case]]
|
|
id = "t262-block-scope-leave-nested-block-let-declaration-only-shadows-outer-parameter-value-1"
|
|
input = "test262/language/block-scope/leave/nested-block-let-declaration-only-shadows-outer-parameter-value-1.js"
|
|
mode = "test262"
|
|
status = "known_fail"
|
|
reason = "label syntax not supported"
|
|
feature = "block-scope"
|
|
flags = []
|
|
|
|
[[case]]
|
|
id = "t262-block-scope-return-from-block-const"
|
|
input = "test262/language/block-scope/return-from/block-const.js"
|
|
mode = "test262"
|
|
status = "pass"
|
|
feature = "block-scope"
|
|
flags = []
|
|
|
|
[[case]]
|
|
id = "t262-block-scope-return-from-block-let"
|
|
input = "test262/language/block-scope/return-from/block-let.js"
|
|
mode = "test262"
|
|
status = "pass"
|
|
feature = "block-scope"
|
|
flags = []
|
|
|
|
[[case]]
|
|
id = "t262-block-scope-shadowing-catch-parameter-shadowing-catch-parameter"
|
|
input = "test262/language/block-scope/shadowing/catch-parameter-shadowing-catch-parameter.js"
|
|
mode = "test262"
|
|
status = "pass"
|
|
feature = "block-scope"
|
|
flags = []
|
|
|
|
[[case]]
|
|
id = "t262-block-scope-shadowing-catch-parameter-shadowing-function-parameter-name"
|
|
input = "test262/language/block-scope/shadowing/catch-parameter-shadowing-function-parameter-name.js"
|
|
mode = "test262"
|
|
status = "pass"
|
|
feature = "block-scope"
|
|
flags = []
|
|
|
|
[[case]]
|
|
id = "t262-block-scope-shadowing-catch-parameter-shadowing-let-declaration"
|
|
input = "test262/language/block-scope/shadowing/catch-parameter-shadowing-let-declaration.js"
|
|
mode = "test262"
|
|
status = "pass"
|
|
feature = "block-scope"
|
|
flags = []
|
|
|
|
[[case]]
|
|
id = "t262-block-scope-shadowing-catch-parameter-shadowing-var-variable"
|
|
input = "test262/language/block-scope/shadowing/catch-parameter-shadowing-var-variable.js"
|
|
mode = "test262"
|
|
status = "pass"
|
|
feature = "block-scope"
|
|
flags = []
|
|
|
|
[[case]]
|
|
id = "t262-block-scope-shadowing-const-declaration-shadowing-catch-parameter"
|
|
input = "test262/language/block-scope/shadowing/const-declaration-shadowing-catch-parameter.js"
|
|
mode = "test262"
|
|
status = "pass"
|
|
feature = "block-scope"
|
|
flags = []
|
|
|
|
[[case]]
|
|
id = "t262-block-scope-syntax-function-declarations-in-statement-position-case-expression-statement-list"
|
|
input = "test262/language/block-scope/syntax/function-declarations/in-statement-position-case-expression-statement-list.js"
|
|
mode = "test262"
|
|
status = "known_fail"
|
|
reason = "function declarations in blocks not supported"
|
|
feature = "block-scope"
|
|
flags = []
|
|
|
|
[[case]]
|
|
id = "t262-block-scope-syntax-function-declarations-in-statement-position-default-statement-list"
|
|
input = "test262/language/block-scope/syntax/function-declarations/in-statement-position-default-statement-list.js"
|
|
mode = "test262"
|
|
status = "known_fail"
|
|
reason = "function declarations in blocks not supported"
|
|
feature = "block-scope"
|
|
flags = []
|
|
|
|
[[case]]
|
|
id = "t262-block-scope-syntax-function-declarations-in-statement-position-do-statement-while-expression"
|
|
input = "test262/language/block-scope/syntax/function-declarations/in-statement-position-do-statement-while-expression.js"
|
|
mode = "test262"
|
|
expected_error = "parse"
|
|
status = "pass"
|
|
feature = "block-scope"
|
|
flags = []
|
|
|
|
[[case]]
|
|
id = "t262-block-scope-syntax-function-declarations-in-statement-position-for-statement"
|
|
input = "test262/language/block-scope/syntax/function-declarations/in-statement-position-for-statement.js"
|
|
mode = "test262"
|
|
expected_error = "parse"
|
|
status = "pass"
|
|
feature = "block-scope"
|
|
flags = []
|
|
|
|
[[case]]
|
|
id = "t262-block-scope-syntax-function-declarations-in-statement-position-while-expression-statement"
|
|
input = "test262/language/block-scope/syntax/function-declarations/in-statement-position-while-expression-statement.js"
|
|
mode = "test262"
|
|
expected_error = "parse"
|
|
status = "pass"
|
|
feature = "block-scope"
|
|
flags = []
|
|
|
|
[[case]]
|
|
id = "t262-block-scope-syntax-redeclaration-global-allowed-to-declare-function-with-function-declaration"
|
|
input = "test262/language/block-scope/syntax/redeclaration-global/allowed-to-declare-function-with-function-declaration.js"
|
|
mode = "test262"
|
|
status = "pass"
|
|
feature = "block-scope"
|
|
flags = []
|
|
|
|
[[case]]
|
|
id = "t262-block-scope-syntax-redeclaration-global-allowed-to-redeclare-function-declaration-with-var"
|
|
input = "test262/language/block-scope/syntax/redeclaration-global/allowed-to-redeclare-function-declaration-with-var.js"
|
|
mode = "test262"
|
|
status = "pass"
|
|
feature = "block-scope"
|
|
flags = []
|
|
|
|
[[case]]
|
|
id = "t262-block-scope-syntax-redeclaration-global-allowed-to-redeclare-var-with-function-declaration"
|
|
input = "test262/language/block-scope/syntax/redeclaration-global/allowed-to-redeclare-var-with-function-declaration.js"
|
|
mode = "test262"
|
|
status = "pass"
|
|
feature = "block-scope"
|
|
flags = []
|
|
|
|
[[case]]
|
|
id = "t262-comments-S7-4-A1-T2"
|
|
input = "test262/language/comments/S7.4_A1_T2.js"
|
|
mode = "test262"
|
|
status = "pass"
|
|
feature = "comments"
|
|
flags = []
|
|
|
|
[[case]]
|
|
id = "t262-comments-S7-4-A2-T2"
|
|
input = "test262/language/comments/S7.4_A2_T2.js"
|
|
mode = "test262"
|
|
expected_error = "parse"
|
|
status = "pass"
|
|
feature = "comments"
|
|
flags = []
|
|
|
|
[[case]]
|
|
id = "t262-comments-S7-4-A3"
|
|
input = "test262/language/comments/S7.4_A3.js"
|
|
mode = "test262"
|
|
expected_error = "parse"
|
|
status = "pass"
|
|
feature = "comments"
|
|
flags = []
|
|
|
|
[[case]]
|
|
id = "t262-comments-S7-4-A4-T1"
|
|
input = "test262/language/comments/S7.4_A4_T1.js"
|
|
mode = "test262"
|
|
expected_error = "parse"
|
|
status = "pass"
|
|
feature = "comments"
|
|
flags = []
|
|
|
|
[[case]]
|
|
id = "t262-comments-S7-4-A4-T3"
|
|
input = "test262/language/comments/S7.4_A4_T3.js"
|
|
mode = "test262"
|
|
status = "pass"
|
|
feature = "comments"
|
|
flags = []
|
|
|
|
[[case]]
|
|
id = "t262-directive-prologue-10-1-1-1-s"
|
|
input = "test262/language/directive-prologue/10.1.1-1-s.js"
|
|
mode = "test262"
|
|
status = "pass"
|
|
feature = "directive-prologue"
|
|
flags = []
|
|
|
|
[[case]]
|
|
id = "t262-directive-prologue-10-1-1-10-s"
|
|
input = "test262/language/directive-prologue/10.1.1-10-s.js"
|
|
mode = "test262"
|
|
status = "pass"
|
|
feature = "directive-prologue"
|
|
flags = []
|
|
|
|
[[case]]
|
|
id = "t262-directive-prologue-10-1-1-3-s"
|
|
input = "test262/language/directive-prologue/10.1.1-3-s.js"
|
|
mode = "test262"
|
|
status = "pass"
|
|
feature = "directive-prologue"
|
|
flags = []
|
|
|
|
[[case]]
|
|
id = "t262-directive-prologue-10-1-1-4-s"
|
|
input = "test262/language/directive-prologue/10.1.1-4-s.js"
|
|
mode = "test262"
|
|
status = "pass"
|
|
feature = "directive-prologue"
|
|
flags = []
|
|
|
|
[[case]]
|
|
id = "t262-directive-prologue-10-1-1-6-s"
|
|
input = "test262/language/directive-prologue/10.1.1-6-s.js"
|
|
mode = "test262"
|
|
status = "pass"
|
|
feature = "directive-prologue"
|
|
flags = []
|
|
|
|
[[case]]
|
|
id = "t262-expressions-assignment-non-simple-target"
|
|
input = "test262/language/expressions/assignment/non-simple-target.js"
|
|
mode = "test262"
|
|
expected_error = "parse"
|
|
status = "pass"
|
|
feature = "expressions"
|
|
flags = []
|
|
|
|
[[case]]
|
|
id = "t262-expressions-assignment-target-assignment-inside-function"
|
|
input = "test262/language/expressions/assignment/target-assignment-inside-function.js"
|
|
mode = "test262"
|
|
expected_error = "parse"
|
|
status = "pass"
|
|
feature = "expressions"
|
|
flags = []
|
|
|
|
[[case]]
|
|
id = "t262-expressions-assignment-target-assignment"
|
|
input = "test262/language/expressions/assignment/target-assignment.js"
|
|
mode = "test262"
|
|
expected_error = "parse"
|
|
status = "pass"
|
|
feature = "expressions"
|
|
flags = []
|
|
|
|
[[case]]
|
|
id = "t262-expressions-assignment-target-boolean"
|
|
input = "test262/language/expressions/assignment/target-boolean.js"
|
|
mode = "test262"
|
|
expected_error = "parse"
|
|
status = "pass"
|
|
feature = "expressions"
|
|
flags = []
|
|
|
|
[[case]]
|
|
id = "t262-expressions-assignment-target-cover-id"
|
|
input = "test262/language/expressions/assignment/target-cover-id.js"
|
|
mode = "test262"
|
|
status = "known_fail"
|
|
reason = "parenthesized assignment target not supported"
|
|
feature = "expressions"
|
|
flags = []
|
|
|
|
[[case]]
|
|
id = "t262-expressions-call-S11-2-4-A1-3-T1"
|
|
input = "test262/language/expressions/call/S11.2.4_A1.3_T1.js"
|
|
mode = "test262"
|
|
expected_error = "parse"
|
|
status = "pass"
|
|
feature = "expressions"
|
|
flags = []
|
|
|
|
[[case]]
|
|
id = "t262-expressions-call-S11-2-4-A1-4-T1"
|
|
input = "test262/language/expressions/call/S11.2.4_A1.4_T1.js"
|
|
mode = "test262"
|
|
status = "known_fail"
|
|
reason = "indirect eval semantics not supported"
|
|
feature = "expressions"
|
|
flags = []
|
|
|
|
[[case]]
|
|
id = "t262-expressions-call-scope-var-close"
|
|
input = "test262/language/expressions/call/scope-var-close.js"
|
|
mode = "test262"
|
|
status = "known_fail"
|
|
reason = "var scoping in call expression not correct"
|
|
feature = "expressions"
|
|
flags = []
|
|
|
|
[[case]]
|
|
id = "t262-expressions-compound-assignment-11-13-2-12-s"
|
|
input = "test262/language/expressions/compound-assignment/11.13.2-12-s.js"
|
|
mode = "test262"
|
|
status = "known_fail"
|
|
reason = "strict mode not fully implemented"
|
|
feature = "expressions"
|
|
flags = []
|
|
|
|
[[case]]
|
|
id = "t262-expressions-compound-assignment-11-13-2-13-s"
|
|
input = "test262/language/expressions/compound-assignment/11.13.2-13-s.js"
|
|
mode = "test262"
|
|
status = "known_fail"
|
|
reason = "strict mode not fully implemented"
|
|
feature = "expressions"
|
|
flags = []
|
|
|
|
[[case]]
|
|
id = "t262-expressions-compound-assignment-11-13-2-14-s"
|
|
input = "test262/language/expressions/compound-assignment/11.13.2-14-s.js"
|
|
mode = "test262"
|
|
status = "known_fail"
|
|
reason = "strict mode not fully implemented"
|
|
feature = "expressions"
|
|
flags = []
|
|
|
|
[[case]]
|
|
id = "t262-expressions-compound-assignment-11-13-2-15-s"
|
|
input = "test262/language/expressions/compound-assignment/11.13.2-15-s.js"
|
|
mode = "test262"
|
|
status = "known_fail"
|
|
reason = "strict mode not fully implemented"
|
|
feature = "expressions"
|
|
flags = []
|
|
|
|
[[case]]
|
|
id = "t262-expressions-compound-assignment-11-13-2-16-s"
|
|
input = "test262/language/expressions/compound-assignment/11.13.2-16-s.js"
|
|
mode = "test262"
|
|
status = "known_fail"
|
|
reason = "strict mode not fully implemented"
|
|
feature = "expressions"
|
|
flags = []
|
|
|
|
[[case]]
|
|
id = "t262-expressions-division-line-terminator"
|
|
input = "test262/language/expressions/division/line-terminator.js"
|
|
mode = "test262"
|
|
status = "pass"
|
|
feature = "expressions"
|
|
flags = []
|
|
|
|
[[case]]
|
|
id = "t262-expressions-exponentiation-exp-assignment-operator"
|
|
input = "test262/language/expressions/exponentiation/exp-assignment-operator.js"
|
|
mode = "test262"
|
|
status = "known_fail"
|
|
reason = "exponentiation assignment operator not supported"
|
|
feature = "expressions"
|
|
flags = []
|
|
|
|
[[case]]
|
|
id = "js262-array-push-pop"
|
|
input = "fixtures/array-push-pop.js"
|
|
mode = "script"
|
|
expected_output = "expected/array-push-pop.txt"
|
|
status = "pass"
|
|
feature = "arrays"
|
|
flags = []
|
|
|
|
[[case]]
|
|
id = "js262-array-join"
|
|
input = "fixtures/array-join.js"
|
|
mode = "script"
|
|
expected_output = "expected/array-join.txt"
|
|
status = "pass"
|
|
feature = "arrays"
|
|
flags = []
|
|
|
|
[[case]]
|
|
id = "js262-array-indexOf"
|
|
input = "fixtures/array-indexOf.js"
|
|
mode = "script"
|
|
expected_output = "expected/array-indexOf.txt"
|
|
status = "pass"
|
|
feature = "arrays"
|
|
flags = []
|
|
|
|
[[case]]
|
|
id = "js262-array-slice"
|
|
input = "fixtures/array-slice.js"
|
|
mode = "script"
|
|
expected_output = "expected/array-slice.txt"
|
|
status = "pass"
|
|
feature = "arrays"
|
|
flags = []
|
|
|
|
[[case]]
|
|
id = "js262-array-concat"
|
|
input = "fixtures/array-concat.js"
|
|
mode = "script"
|
|
expected_output = "expected/array-concat.txt"
|
|
status = "pass"
|
|
feature = "arrays"
|
|
flags = []
|