Name Description Size Coverage
arguments-mapped-aliasing.js --- es6id: 13.6.4 description: > Mapped arguments object mutation via alias during traversal using for..of info: | "Mapped" arguments objects should be able to be traversed using a `for..of` loop, and dynamic changes to the formal parameters should be reflected in the iterated values. flags: [noStrict] --- 758 -
arguments-mapped-mutation.js --- es6id: 13.6.4 description: Mapped arguments object mutation during traversal using for..of info: | "Mapped" arguments objects should be able to be traversed using a `for..of` loop, and dynamic changes to their contents should be reflected in the iterated values. flags: [noStrict] --- 717 -
arguments-mapped.js --- es6id: 13.6.4 description: Mapped arguments object traversal using for..of info: | "Mapped" arguments objects should be able to be traversed using a `for..of` loop. flags: [noStrict] --- 601 -
arguments-unmapped-aliasing.js --- es6id: 13.6.4 description: > Unmapped arguments object mutation via alias during traversal using for..of info: | "Unmapped" arguments objects should be able to be traversed using a `for..of` loop, and dynamic changes to the formal parameters should not be reflected in the iterated values. flags: [noStrict] --- 782 -
arguments-unmapped-mutation.js --- es6id: 13.6.4 description: Unmapped arguments object mutation during traversal using for..of info: | "Unmapped" arguments objects should be able to be traversed using a `for..of` loop, and dynamic changes to their contents should be reflected in the iterated values. flags: [noStrict] --- 737 -
arguments-unmapped.js --- es6id: 13.6.4 description: Unmapped arguments object traversal using for..of info: | "Umapped" arguments objects should be able to be traversed using a `for..of` loop. flags: [noStrict] --- 620 -
array-contract-expand.js --- description: > Array entry removal and re-insertion during traversal using for..of info: | Entries removed from an Array instance during traversal should be visited if they are re-inserted prior to iterator exhaustion. es6id: 13.6.4 --- 714 -
array-contract.js --- description: Array entry removal during traversal using for..of info: | Entries removed from an Array instance during traversal should not be visited. es6id: 13.6.4 --- 519 -
array-expand-contract.js --- description: > Array entry insertion and removal items during traversal using for..of info: | New entries inserted into an Array instance during traversal should not be visited if they are removed prior to visitation. es6id: 13.6.4 --- 606 -
array-expand.js --- description: Array entry insertion during traversal using for..of info: | New entries inserted into an Array instance during traversal should be visited. es6id: 13.6.4 --- 625 -
array-key-get-error.js --- description: Error in Array entry access during traversal using for..of info: | If retrieving an element from the array produces an error, that error should be forwarded to the run time. es6id: 13.6.4 --- 694 -
array.js --- description: > Array instances should be able to be traversed using a `for...of` loop. es6id: 13.6.4 --- 506 -
Array.prototype.entries.js --- description: > The method should return a valid iterator that can be traversed using a `for...of` loop. es6id: 22.1.3.4 --- 763 -
Array.prototype.keys.js --- description: > The method should return a valid iterator that can be traversed using a `for...of` loop. es6id: 22.1.3.13 --- 530 -
Array.prototype.Symbol.iterator.js --- description: > The method should return a valid iterator that can be traversed using a `for...of` loop. es6id: 22.1.3.30 features: [Symbol.iterator] --- 577 -
body-dstr-assign-error.js --- esid: sec-runtime-semantics-forin-div-ofheadevaluation-tdznames-expr-iterationkind description: > If the left-hand side requires a DestructuringAssignment operation and that operation produces an error, the iterator should be closed and the error forwarded to the runtime. info: | ... Else, If lhsKind is assignment, then Let status be the result of performing DestructuringAssignmentEvaluation of assignmentPattern using nextValue as the argument. ... If status is an abrupt completion, then Set the running execution context's LexicalEnvironment to oldEnv. If iterationKind is enumerate, then Return status. features: [destructuring-assignment, for-of, Symbol.iterator] --- 1438 -
body-dstr-assign.js --- esid: sec-runtime-semantics-forin-div-ofbodyevaluation-lhs-stmt-iterator-lhskind-labelset description: > The left-hand side may take the form of a DestructuringAssignment. info: | ... Else, If lhsKind is assignment, then Let status be the result of performing DestructuringAssignmentEvaluation of assignmentPattern using nextValue as the argument. features: [destructuring-assignment, for-of] --- 731 -
body-put-error.js --- esid: sec-runtime-semantics-forin-div-ofbodyevaluation-lhs-stmt-iterator-lhskind-labelset description: > If the left-hand side is not a lexical binding and the assignment produces an error, the iterator should be closed and the error forwarded to the runtime. info: | ... If destructuring is false, then If lhsRef is an abrupt completion, then Let status be lhsRef. Else if lhsKind is lexicalBinding, then Let status be InitializeReferencedBinding(lhsRef, nextValue). Else, Let status be PutValue(lhsRef, nextValue). ... features: [for-of, Symbol.iterator] --- 1311 -
break-from-catch.js --- es6id: 13.6.4.13 S5.n description: > Control flow during body evaluation should honor `break` statements within the `catch` block of `try` statements. features: [generators] --- 809 -
break-from-finally.js --- es6id: 13.6.4.13 S5.n description: > Control flow during body evaluation should honor `break` statements within `finally` blocks. features: [generators] --- 761 -
break-from-try.js --- es6id: 13.6.4.13 S5.n description: > Control flow during body evaluation should honor `break` statements within `try` blocks. features: [generators] --- 758 -
break-label-from-catch.js --- es6id: 13.6.4.13 S5.n description: > Control flow during body evaluation should honor `break` statements within `try` blocks. features: [generators] --- 921 -
break-label-from-finally.js --- es6id: 13.6.4.13 S5.n description: > Control flow during body evaluation should honor `break` statements within `try` blocks. features: [generators] --- 892 -
break-label-from-try.js --- es6id: 13.6.4.13 S5.n description: > Control flow during body evaluation should honor `break` statements within `try` blocks. features: [generators] --- 891 -
break-label.js --- es6id: 13.6.4.13 S5.n description: > Control flow during body evaluation should honor labeled `break` statements. features: [generators] --- 756 -
break.js --- es6id: 13.6.4.13 S5.n description: > Control flow during body evaluation should honor `break` statements. features: [generators] --- 587 -
browser.js 0 -
continue-from-catch.js --- es6id: 13.6.4.13 S5.n description: > Control flow during body evaluation should honor `continue` statements within the `catch` block of `try` statements. features: [generators] --- 744 -
continue-from-finally.js --- es6id: 13.6.4.13 S5.n description: > Control flow during body evaluation should honor `continue` statements within the `finally` block of `try` statements. features: [generators] --- 760 -
continue-from-try.js --- es6id: 13.6.4.13 S5.n description: > Control flow during body evaluation should honor `continue` statements within `try` blocks. features: [generators] --- 693 -
continue-label-from-catch.js --- es6id: 13.6.4.13 S5.n description: > Control flow during body evaluation should honor `continue` statements within the `catch` block of `try` statements. features: [generators] --- 915 -
continue-label-from-finally.js --- es6id: 13.6.4.13 S5.n description: > Control flow during body evaluation should honor `continue` statements within the `finally` block of `try` statements. features: [generators] --- 934 -
continue-label-from-try.js --- es6id: 13.6.4.13 S5.n description: > Control flow during body evaluation should honor `continue` statements within `try` blocks. features: [generators] --- 858 -
continue-label.js --- es6id: 13.6.4.13 S5.n description: > Control flow during body evaluation should honor labeled `continue` statements. features: [generators] --- 680 -
continue.js --- es6id: 13.6.4.13 S5.n description: > Control flow during body evaluation should honor `continue` statements. features: [generators] --- 519 -
cptn-decl-abrupt-empty.js --- es6id: 13.7.5.11 description: > Completion value when head has a declaration and iteration is cancelled info: | IterationStatement : for ( var ForBinding of AssignmentExpression ) Statement 1. Let keyResult be the result of performing ForIn/OfHeadEvaluation( « », AssignmentExpression, iterate). 2. ReturnIfAbrupt(keyResult). 3. Return ForIn/OfBodyEvaluation(ForBinding, Statement, keyResult, varBinding, labelSet). 13.7.5.13 Runtime Semantics: ForIn/OfBodyEvaluation [...] 2. Let V = undefined. [...] 5. Repeat a. Let nextResult be IteratorStep(iterator). b. ReturnIfAbrupt(nextResult). c. If nextResult is false, return NormalCompletion(V). [...] k. Let result be the result of evaluating stmt. [...] m. If LoopContinues(result, labelSet) is false, return IteratorClose(iterator, UpdateEmpty(result, V)). --- 1459 -
cptn-decl-itr.js --- es6id: 13.7.5.11 description: > Completion value when head has a declaration and iteration occurs info: | IterationStatement : for ( var ForBinding of AssignmentExpression ) Statement 1. Let keyResult be the result of performing ForIn/OfHeadEvaluation( « », AssignmentExpression, iterate). 2. ReturnIfAbrupt(keyResult). 3. Return ForIn/OfBodyEvaluation(ForBinding, Statement, keyResult, varBinding, labelSet). 13.7.5.13 Runtime Semantics: ForIn/OfBodyEvaluation [...] 2. Let V = undefined. [...] 5. Repeat a. Let nextResult be IteratorStep(iterator). b. ReturnIfAbrupt(nextResult). c. If nextResult is false, return NormalCompletion(V). [...] k. Let result be the result of evaluating stmt. [...] n. If result.[[value]] is not empty, let V be result.[[value]]. --- 1165 -
cptn-decl-no-itr.js --- es6id: 13.7.5.11 description: > Completion value when head has a declaration and no iteration occurs info: | IterationStatement : for ( var ForBinding of AssignmentExpression ) Statement 1. Let keyResult be the result of performing ForIn/OfHeadEvaluation( « », AssignmentExpression, iterate). 2. ReturnIfAbrupt(keyResult). 3. Return ForIn/OfBodyEvaluation(ForBinding, Statement, keyResult, varBinding, labelSet). 13.7.5.13 Runtime Semantics: ForIn/OfBodyEvaluation [...] 2. Let V = undefined. [...] 5. Repeat a. Let nextResult be IteratorStep(iterator). b. ReturnIfAbrupt(nextResult). c. If nextResult is false, return NormalCompletion(V). --- 1023 -
cptn-expr-abrupt-empty.js --- es6id: 13.7.5.11 description: > Completion value when head has no declaration and iteration is cancelled info: | IterationStatement : for ( LeftHandSideExpression of AssignmentExpression ) Statement 1. Let keyResult be the result of performing ForIn/OfHeadEvaluation( « », AssignmentExpression, iterate). 2. ReturnIfAbrupt(keyResult). 3. Return ForIn/OfBodyEvaluation(LeftHandSideExpression, Statement, keyResult, assignment, labelSet). 13.7.5.13 Runtime Semantics: ForIn/OfBodyEvaluation [...] 2. Let V = undefined. [...] 5. Repeat a. Let nextResult be IteratorStep(iterator). b. ReturnIfAbrupt(nextResult). c. If nextResult is false, return NormalCompletion(V). [...] k. Let result be the result of evaluating stmt. [...] m. If LoopContinues(result, labelSet) is false, return IteratorClose(iterator, UpdateEmpty(result, V)). --- 1500 -
cptn-expr-itr.js --- es6id: 13.7.5.11 description: > Completion value when head has no declaration and iteration occurs info: | IterationStatement : for ( LeftHandSideExpression of AssignmentExpression ) Statement 1. Let keyResult be the result of performing ForIn/OfHeadEvaluation( « », AssignmentExpression, iterate). 2. ReturnIfAbrupt(keyResult). 3. Return ForIn/OfBodyEvaluation(LeftHandSideExpression, Statement, keyResult, assignment, labelSet). 13.7.5.13 Runtime Semantics: ForIn/OfBodyEvaluation [...] 2. Let V = undefined. [...] 5. Repeat a. Let nextResult be IteratorStep(iterator). b. ReturnIfAbrupt(nextResult). c. If nextResult is false, return NormalCompletion(V). [...] k. Let result be the result of evaluating stmt. [...] n. If result.[[value]] is not empty, let V be result.[[value]]. --- 1200 -
cptn-expr-no-itr.js --- es6id: 13.7.5.11 description: > Completion value when head has no declaration and no iteration occurs info: | IterationStatement : for ( LeftHandSideExpression of AssignmentExpression ) Statement 1. Let keyResult be the result of performing ForIn/OfHeadEvaluation( « », AssignmentExpression, iterate). 2. ReturnIfAbrupt(keyResult). 3. Return ForIn/OfBodyEvaluation(LeftHandSideExpression, Statement, keyResult, assignment, labelSet). 13.7.5.13 Runtime Semantics: ForIn/OfBodyEvaluation [...] 2. Let V = undefined. [...] 5. Repeat a. Let nextResult be IteratorStep(iterator). b. ReturnIfAbrupt(nextResult). c. If nextResult is false, return NormalCompletion(V). --- 1058 -
decl-async-fun.js --- esid: sec-for-in-and-for-of-statements description: > AsyncFunctionDeclaration is not allowed in statement position info: | ExpressionStatement[Yield, Await] : [lookahead ∉ { {, function, async [no LineTerminator here] function, class, let [ }] Expression[+In, ?Yield, ?Await] ; negative: phase: parse type: SyntaxError features: [async-functions] --- 600 -
decl-async-gen.js --- esid: sec-for-in-and-for-of-statements description: > AsyncGeneratorDeclaration is not allowed in statement position info: | ExpressionStatement[Yield, Await] : [lookahead ∉ { {, function, async [no LineTerminator here] function, class, let [ }] Expression[+In, ?Yield, ?Await] ; negative: phase: parse type: SyntaxError features: [async-iteration] --- 602 -
decl-cls.js --- description: Class declaration not allowed in statement position esid: sec-for-in-and-for-of-statements es6id: 13.7.5 negative: phase: parse type: SyntaxError --- 393 -
decl-const.js --- description: Lexical declaration (const) not allowed in statement position esid: sec-for-in-and-for-of-statements es6id: 13.7.5 negative: phase: parse type: SyntaxError --- 408 -
decl-fun.js --- description: Function declaration not allowed in statement position esid: sec-for-in-and-for-of-statements es6id: 13.7.5 negative: phase: parse type: SyntaxError --- 401 -
decl-gen.js --- description: Generator declaration not allowed in statement position esid: sec-for-in-and-for-of-statements es6id: 13.7.5 negative: phase: parse type: SyntaxError features: [generators] --- 426 -
decl-let.js --- description: Lexical declaration (let) not allowed in statement position esid: sec-for-in-and-for-of-statements es6id: 13.7.5 negative: phase: parse type: SyntaxError --- 397 -
dstr -
escaped-of.js --- esid: sec-grammar-notation description: > The `of` contextual keyword must not contain Unicode escape sequences. info: | Terminal symbols are shown in fixed width font, both in the productions of the grammars and throughout this specification whenever the text directly refers to such a terminal symbol. These are to appear in a script exactly as written. All terminal symbol code points specified in this way are to be understood as the appropriate Unicode code points from the Basic Latin range, as opposed to any similar-looking code points from other Unicode ranges. negative: phase: parse type: SyntaxError --- 851 -
float32array-mutate.js --- es6id: 13.6.4 description: Float32Array mutation during traversal using for..of info: | Float32Array instances should be able to be traversed using a `for..of` loop, and dynamic changes to their contents should be reflected in the iterated values. features: [TypedArray] --- 796 -
float32array.js --- es6id: 13.6.4 description: Float32Array traversal using for..of info: | Float32Array instances should be able to be traversed using a `for..of` loop. features: [TypedArray] --- 675 -
float64array-mutate.js --- es6id: 13.6.4 description: Float64Array mutation during traversal using for..of info: | Float64Array instances should be able to be traversed using a `for..of` loop, and dynamic changes to their contents should be reflected in the iterated values. features: [TypedArray] --- 796 -
float64array.js --- es6id: 13.6.4 description: Float64Array traversal using for..of info: | Float64Array instances should be able to be traversed using a `for..of` loop. features: [TypedArray] --- 675 -
generator-close-via-break.js --- es6id: 13.6.4.13 description: > Generators should be closed via their `return` method when iteration is interrupted via a `break` statement. features: [generators] --- 1277 -
generator-close-via-continue.js --- esid: sec-runtime-semantics-forin-div-ofbodyevaluation-lhs-stmt-iterator-lhskind-labelset description: > Generators should be closed via their `return` method when iteration is interrupted via a `continue` statement. info: | 13.7.5.13 Runtime Semantics: ForIn/OfBodyEvaluation ( lhs, stmt, iteratorRecord, iterationKind, lhsKind, labelSet ) ... 5. Repeat, ... i. Let result be the result of evaluating stmt. ... k. If LoopContinues(result, labelSet) is false, then i. If iterationKind is enumerate, then ... ii. Else, 1. Assert: iterationKind is iterate. 2. Return ? IteratorClose(iteratorRecord, UpdateEmpty(result, V)). ... features: [generators] --- 1891 -
generator-close-via-return.js --- es6id: 13.6.4.13 description: > Generators should be closed via their `return` method when iteration is interrupted via a `return` statement. features: [generators] --- 1320 -
generator-close-via-throw.js --- es6id: 13.6.4.13 description: > Generators should be closed via their `return` method when iteration is interrupted via a `throw` statement. features: [generators] --- 1321 -
generator-next-error.js --- es6id: 13.6.4.13 S5.g description: > If `nextResult` is an abrupt completion as per IteratorStep (ES6 7.4.5), return the completion. features: [generators] --- 600 -
generator.js --- es6id: 13.6.4.13 description: > Generator function should return valid iterable objects. features: [generators] --- 504 -
generic-iterable.js --- es6id: 13.6.4.13 description: > Generic objects with `@@iterator` protocols should function as iterables. features: [Symbol.iterator] --- 624 -
head-await-using-bound-names-fordecl-tdz.js --- esid: sec-for-in-and-for-of-statements description: > ForIn/Of: Bound names of ForDeclaration are in TDZ (for-of) flags: [async] includes: [asyncHelpers.js] features: [explicit-resource-management] --- 818 -
head-await-using-bound-names-in-stmt.js --- description: The body may not re-declare variables declared in the head negative: phase: parse type: SyntaxError info: | It is a Syntax Error if any element of the BoundNames of ForDeclaration also occurs in the VarDeclaredNames of Statement. esid: sec-for-in-and-for-of-statements flags: [module] features: [explicit-resource-management] --- 857 -
head-await-using-bound-names-let.js --- esid: sec-for-in-and-for-of-statements description: ForDeclaration containing 'await using' may not contain a binding for `let` negative: phase: parse type: SyntaxError info: | It is a Syntax Error if the BoundNames of ForDeclaration contains "let". flags: [noStrict] features: [explicit-resource-management] --- 830 -
head-await-using-fresh-binding-per-iteration.js --- esid: sec-for-in-and-for-of-statements description: > ForDeclaration containing 'await using' creates a fresh binding per iteration flags: [module] features: [explicit-resource-management] --- 1117 -
head-await-using-init.js --- esid: sec-for-in-and-for-of-statements description: > ForDeclaration containing 'await using' does not support an initializer info: | IterationStatement: for (ForDeclaration of AssignmentExpression) Statement negative: phase: parse type: SyntaxError features: [explicit-resource-management] --- 864 -
head-const-bound-names-dup.js --- description: The head's declaration may not contain duplicate entries negative: phase: parse type: SyntaxError info: | It is a Syntax Error if the BoundNames of ForDeclaration contains any duplicate entries. esid: sec-for-in-and-for-of-statements es6id: 13.7.5 --- 502 -
head-const-bound-names-fordecl-tdz.js --- es6id: 13.6.4.12_S2 description: > ForIn/Of: Bound names of ForDeclaration are in TDZ (for-of) --- 358 -
head-const-bound-names-in-stmt.js --- description: The body may not re-declare variables declared in the head negative: phase: parse type: SyntaxError info: | It is a Syntax Error if any element of the BoundNames of ForDeclaration also occurs in the VarDeclaredNames of Statement. esid: sec-for-in-and-for-of-statements es6id: 13.7.5 --- 542 -
head-const-bound-names-let.js --- description: The declaration may not contain a binding for `let` negative: phase: parse type: SyntaxError info: | It is a Syntax Error if the BoundNames of ForDeclaration contains "let". esid: sec-for-in-and-for-of-statements es6id: 13.7.5 flags: [noStrict] --- 492 -
head-const-fresh-binding-per-iteration.js --- es6id: 13.6.4.13 description: > const ForDeclaration: creates a fresh binding per iteration --- 611 -
head-const-init.js --- esid: sec-iteration-statements description: > Initializer is not allowed in head's ForDeclaration position. info: | IterationStatement: for (ForDeclaration of AssignmentExpression) Statement negative: phase: parse type: SyntaxError --- 465 -
head-decl-no-expr.js --- description: Expression not allowed in head's AssignmentExpression position info: | IterationStatement : for ( ForDeclaration of AssignmentExpression ) Statement es6id: 13.7 negative: phase: parse type: SyntaxError --- 458 -
head-expr-no-expr.js --- description: Expression not allowed in head's AssignmentExpression position info: | IterationStatement : for ( LeftHandSideExpression of AssignmentExpression ) Statement es6id: 13.7 negative: phase: parse type: SyntaxError --- 469 -
head-expr-obj-iterator-method.js --- es6id: 13.6.4.12 S8.b description: > The value of the expression in a for-of statement's head must have an `@@iterator` method. --- 377 -
head-expr-primitive-iterator-method.js --- es6id: 13.6.4.12 S8.b description: > The value of the expression in a for-of statement's head must have an `@@iterator` method. --- 442 -
head-expr-to-obj.js --- es6id: 13.6.4.12 S8.b description: > The value of the expression in a for-of statement's head is subject to the semantics of the ToObject abstract operation. --- 478 -
head-let-bound-names-dup.js --- description: The head's declaration may not contain duplicate entries negative: phase: parse type: SyntaxError info: | It is a Syntax Error if the BoundNames of ForDeclaration contains any duplicate entries. esid: sec-for-in-and-for-of-statements-static-semantics-early-errors es6id: 13.7.5 --- 530 -
head-let-bound-names-fordecl-tdz.js --- es6id: 13.6.4.12_S2 description: > ForIn/Of: Bound names of ForDeclaration are in TDZ (for-of) --- 356 -
head-let-bound-names-in-stmt.js --- description: The body may not re-declare variables declared in the head negative: phase: parse type: SyntaxError info: | It is a Syntax Error if any element of the BoundNames of ForDeclaration also occurs in the VarDeclaredNames of Statement. esid: sec-for-in-and-for-of-statements-static-semantics-early-errors es6id: 13.7.5 --- 570 -
head-let-bound-names-let.js --- description: The declaration may not contain a binding for `let` negative: phase: parse type: SyntaxError info: | It is a Syntax Error if the BoundNames of ForDeclaration contains "let". flags: [noStrict] esid: sec-for-in-and-for-of-statements es6id: 13.7.5 --- 490 -
head-let-destructuring.js --- esid: sec-for-in-and-for-of-statements es6id: 13.7.5 description: > The token sequence `let [`is interpreted as the beginning of a destructuring binding pattern info: | Syntax IterationStatement[Yield, Return]: for ( [lookahead ≠ let]LeftHandSideExpression[?Yield] of AssignmentExpression[+In, ?Yield] ) Statement[?Yield, ?Return] for ( ForDeclaration[?Yield] of AssignmentExpression[+In, ?Yield] ) Statement[?Yield, ?Return] --- 784 -
head-let-fresh-binding-per-iteration.js --- es6id: 13.6.4.13 description: > let ForDeclaration: creates a fresh binding per iteration --- 607 -
head-let-init.js --- esid: sec-iteration-statements description: > Initializer is not allowed in head's ForDeclaration position. info: | IterationStatement: for (ForDeclaration of AssignmentExpression) Statement negative: phase: parse type: SyntaxError --- 463 -
head-lhs-async-dot.js --- description: leading `async` token in for-of LHS info: | The `async` token is allowed in the LHS if not followed by `of` esid: sec-for-in-and-for-of-statements --- 404 -
head-lhs-async-escaped.js --- esid: sec-for-in-and-for-of-statements description: > The left-hand-side of a for-of loop may be the identifier `async` written with an escape sequence. info: | ForInOfStatement[Yield, Await, Return] : for ( [lookahead ∉ { let, async of }] LeftHandSideExpression[?Yield, ?Await] of AssignmentExpression[+In, ?Yield, ?Await] ) Statement[?Yield, ?Await, ?Return] --- 602 -
head-lhs-async-invalid.js --- description: leading `async` token in for-of LHS info: | The `async` token is disallowed in the LHS when followed by `of` esid: sec-for-in-and-for-of-statements negative: phase: parse type: SyntaxError --- 433 -
head-lhs-async-parens.js --- esid: sec-for-in-and-for-of-statements description: > The left-hand-side of a for-of loop may be the identifier `async` surrounded by parentheses. info: | ForInOfStatement[Yield, Await, Return] : for ( [lookahead ∉ { let, async of }] LeftHandSideExpression[?Yield, ?Await] of AssignmentExpression[+In, ?Yield, ?Await] ) Statement[?Yield, ?Await, ?Return] --- 593 -
head-lhs-cover-non-asnmt-trgt.js --- description: Head's LeftHandSideExpression must be a simple assignment target info: | It is a Syntax Error if IsValidSimpleAssignmentTarget of LeftHandSideExpression is false. It is a Syntax Error if the LeftHandSideExpression is CoverParenthesizedExpressionAndArrowParameterList : ( Expression ) and Expression derives a production that would produce a Syntax Error according to these rules if that production is substituted for LeftHandSideExpression. This rule is recursively applied. esid: sec-for-in-and-for-of-statements-static-semantics-early-errors es6id: 13.7.5 negative: phase: parse type: SyntaxError --- 869 -
head-lhs-cover.js --- description: > Head's AssignmentExpression may be CoverParenthesizedExpressionAndArrowParameterList esid: sec-for-in-and-for-of-statements-static-semantics-early-errors es6id: 13.7.5 --- 488 -
head-lhs-invalid-asnmt-ptrn-ary.js --- description: Invalid destructuring assignment pattern (array literal) info: | It is a Syntax Error if LeftHandSideExpression is either an ObjectLiteral or an ArrayLiteral and if the lexical token sequence matched by LeftHandSideExpression cannot be parsed with no tokens left over using AssignmentPattern as the goal symbol. esid: sec-for-in-and-for-of-statements-static-semantics-early-errors es6id: 13.7.5 negative: phase: parse type: SyntaxError --- 695 -
head-lhs-invalid-asnmt-ptrn-obj.js --- description: Invalid destructuring assignment pattern (object literal) info: | It is a Syntax Error if LeftHandSideExpression is either an ObjectLiteral or an ArrayLiteral and if the lexical token sequence matched by LeftHandSideExpression cannot be parsed with no tokens left over using AssignmentPattern as the goal symbol. esid: sec-for-in-and-for-of-statements-static-semantics-early-errors es6id: 13.7.5 negative: phase: parse type: SyntaxError --- 698 -
head-lhs-let.js --- esid: sec-for-in-and-for-of-statements es6id: 13.7.5 description: > The `let` token is disallowed when not followed by a `[` token info: | Syntax IterationStatement[Yield, Return]: for ( [lookahead ≠ let]LeftHandSideExpression[?Yield] of AssignmentExpression[+In, ?Yield] ) Statement[?Yield, ?Return] for ( ForDeclaration[?Yield] of AssignmentExpression[+In, ?Yield] ) Statement[?Yield, ?Return] negative: phase: parse type: SyntaxError --- 693 -
head-lhs-member.js --- description: > Head's AssignmentExpression may be a MemberExpression esid: sec-for-in-and-for-of-statements-static-semantics-early-errors es6id: 13.7.5 --- 464 -
head-lhs-non-asnmt-trgt.js --- description: Head's LeftHandSideExpression must be a simple assignment target info: | It is a Syntax Error if IsValidSimpleAssignmentTarget of LeftHandSideExpression is false. esid: sec-for-in-and-for-of-statements-static-semantics-early-errors es6id: 13.7.5 negative: phase: parse type: SyntaxError --- 534 -
head-using-bound-names-fordecl-tdz.js --- esid: sec-for-in-and-for-of-statements description: > ForIn/Of: Bound names of ForDeclaration are in TDZ (for-of) features: [explicit-resource-management] --- 715 -
head-using-bound-names-in-stmt.js --- description: The body may not re-declare variables declared in the head negative: phase: parse type: SyntaxError info: | It is a Syntax Error if any element of the BoundNames of ForDeclaration also occurs in the VarDeclaredNames of Statement. esid: sec-for-in-and-for-of-statements features: [explicit-resource-management] --- 828 -
head-using-bound-names-let.js --- esid: sec-for-in-and-for-of-statements description: ForDeclaration containing 'using' may not contain a binding for `let` negative: phase: parse type: SyntaxError info: | It is a Syntax Error if the BoundNames of ForDeclaration contains "let". flags: [noStrict] features: [explicit-resource-management] --- 794 -
head-using-fresh-binding-per-iteration.js --- esid: sec-for-in-and-for-of-statements description: > ForDeclaration containing 'using' creates a fresh binding per iteration features: [explicit-resource-management] --- 1049 -
head-using-init.js --- esid: sec-for-in-and-for-of-statements description: > ForDeclaration containing 'using' does not support an initializer info: | IterationStatement: for (ForDeclaration of AssignmentExpression) Statement negative: phase: parse type: SyntaxError features: [explicit-resource-management] --- 827 -
head-var-bound-names-dup.js --- description: The head's declaration may contain duplicate entries esid: sec-for-in-and-for-of-statements-static-semantics-early-errors es6id: 13.7.5 --- 453 -
head-var-bound-names-in-stmt.js --- description: The body may re-declare variables declared in the head esid: sec-for-in-and-for-of-statements-static-semantics-early-errors es6id: 13.7.5 --- 456 -
head-var-bound-names-let.js --- description: The head's bound names may include "let" esid: sec-for-in-and-for-of-statements-static-semantics-early-errors es6id: 13.7.5 flags: [noStrict] --- 455 -
head-var-init.js --- esid: sec-iteration-statements description: > Initializer is not allowed in head's ForBinding position. info: | IterationStatement: for (var ForBinding of AssignmentExpression) Statement negative: phase: parse type: SyntaxError --- 459 -
head-var-no-expr.js --- description: Expression not allowed in head's AssignmentExpression position info: | IterationStatement : for ( var ForBinding of AssignmentExpression ) Statement es6id: 13.7 negative: phase: parse type: SyntaxError --- 458 -
int8array-mutate.js --- es6id: 13.6.4 description: Int8Array mutation during traversal using for..of info: | Int8Array instances should be able to be traversed using a `for..of` loop, and dynamic changes to their contents should be reflected in the iterated values. features: [TypedArray] --- 787 -
int8array.js --- es6id: 13.6.4 description: > Int8Array instances should be able to be traversed using a `for..of` loop. features: [TypedArray] --- 622 -
int16array-mutate.js --- es6id: 13.6.4 description: Int16Array mutation during traversal using for..of info: | Int16Array instances should be able to be traversed using a `for..of` loop, and dynamic changes to their contents should be reflected in the iterated values. features: [TypedArray] --- 790 -
int16array.js --- es6id: 13.6.4 description: > Int16Array instances should be able to be traversed using a `for..of` loop. features: [TypedArray] --- 624 -
int32array-mutate.js --- es6id: 13.6.4 description: Int32Array mutation during traversal using for..of info: | Int32Array instances should be able to be traversed using a `for..of` loop, and dynamic changes to their contents should be reflected in the iterated values. features: [TypedArray] --- 790 -
int32array.js --- es6id: 13.6.4 description: > Int32Array instances should be able to be traversed using a `for..of` loop. features: [TypedArray] --- 624 -
iterator-as-proxy.js --- es6id: 13.6.4.13 description: > Iterators that are implemented as proxies should behave identically to non-proxy versions. features: [Proxy, Symbol.iterator] --- 851 -
iterator-close-non-object.js --- es6id: 13.6.4.13 description: > If an iterator's `return` method returns a non-Object value, a TypeError should be thrown. features: [Symbol.iterator] --- 735 -
iterator-close-non-throw-get-method-abrupt.js --- esid: sec-iteratorclose description: > If retrieving an iterator's `return` method generates an error while closing the iterator with non-throw completion, the error should be forwarded to the runtime. info: | IteratorClose ( iteratorRecord, completion ) [...] 4. Let innerResult be GetMethod(iterator, "return"). 5. If innerResult.[[Type]] is normal, [...] 6. If completion.[[Type]] is throw, return Completion(completion). 7. If innerResult.[[Type]] is throw, return Completion(innerResult). GetMethod ( V, P ) [...] 2. Let func be ? GetV(V, P). features: [Symbol.iterator] --- 1196 -
iterator-close-non-throw-get-method-is-null.js --- esid: sec-iteratorclose description: > If iterator's "return" method is `null`, received non-throw completion is forwarded to the runtime. info: | IteratorClose ( iteratorRecord, completion ) [...] 4. Let innerResult be GetMethod(iterator, "return"). 5. If innerResult.[[Type]] is normal, a. Let return be innerResult.[[Value]]. b. If return is undefined, return Completion(completion). GetMethod ( V, P ) [...] 2. Let func be ? GetV(V, P). 3. If func is either undefined or null, return undefined. features: [Symbol.iterator] --- 1115 -
iterator-close-non-throw-get-method-non-callable.js --- esid: sec-iteratorclose description: > If retrieving an iterator's `return` method generates an error while closing the iterator with non-throw completion, the error should be forwarded to the runtime. info: | IteratorClose ( iteratorRecord, completion ) [...] 4. Let innerResult be GetMethod(iterator, "return"). 5. If innerResult.[[Type]] is normal, [...] 6. If completion.[[Type]] is throw, return Completion(completion). 7. If innerResult.[[Type]] is throw, return Completion(innerResult). GetMethod ( V, P ) [...] 2. Let func be ? GetV(V, P). 3. If func is either undefined or null, return undefined. 4. If IsCallable(func) is false, throw a TypeError exception. features: [Symbol.iterator] --- 1267 -
iterator-close-throw-get-method-abrupt.js --- esid: sec-iteratorclose description: > If retrieving an iterator's `return` method generates an error while closing the iterator with throw completion, this error should be suppressed. info: | IteratorClose ( iteratorRecord, completion ) [...] 4. Let innerResult be GetMethod(iterator, "return"). 5. If innerResult.[[Type]] is normal, [...] 6. If completion.[[Type]] is throw, return Completion(completion). 7. If innerResult.[[Type]] is throw, return Completion(innerResult). GetMethod ( V, P ) [...] 2. Let func be ? GetV(V, P). features: [Symbol.iterator] --- 1219 -
iterator-close-throw-get-method-non-callable.js --- esid: sec-iteratorclose description: > If retrieving an iterator's `return` method generates an error while closing the iterator with throw completion, this error should be suppressed. info: | IteratorClose ( iteratorRecord, completion ) [...] 4. Let innerResult be GetMethod(iterator, "return"). 5. If innerResult.[[Type]] is normal, [...] 6. If completion.[[Type]] is throw, return Completion(completion). 7. If innerResult.[[Type]] is throw, return Completion(innerResult). GetMethod ( V, P ) [...] 2. Let func be ? GetV(V, P). 3. If func is either undefined or null, return undefined. 4. If IsCallable(func) is false, throw a TypeError exception. features: [Symbol.iterator] --- 1299 -
iterator-close-via-break.js --- es6id: 13.6.4.13 description: > Iterators should be closed via their `return` method when iteration is interrupted via a `break` statement. features: [Symbol.iterator] --- 1106 -
iterator-close-via-continue.js --- esid: sec-runtime-semantics-forin-div-ofbodyevaluation-lhs-stmt-iterator-lhskind-labelset description: > Iterators should be closed via their `return` method when iteration is interrupted via a `continue` statement. info: | 13.7.5.13 Runtime Semantics: ForIn/OfBodyEvaluation ( lhs, stmt, iteratorRecord, iterationKind, lhsKind, labelSet ) ... 5. Repeat, ... i. Let result be the result of evaluating stmt. ... k. If LoopContinues(result, labelSet) is false, then i. If iterationKind is enumerate, then ... ii. Else, 1. Assert: iterationKind is iterate. 2. Return ? IteratorClose(iteratorRecord, UpdateEmpty(result, V)). ... features: [Symbol.iterator] --- 1720 -
iterator-close-via-return.js --- es6id: 13.6.4.13 description: > Iterators should be closed via their `return` method when iteration is interrupted via a `return` statement. features: [Symbol.iterator] --- 1149 -
iterator-close-via-throw.js --- es6id: 13.6.4.13 description: > Iterators should be closed via their `return` method when iteration is interrupted via a `throw` statement. features: [Symbol.iterator] --- 1151 -
iterator-next-error.js --- es6id: 13.6.4.13 S5.d description: > If `nextResult` is an abrupt completion as per IteratorStep (ES6 7.4.5), return the completion. info: | [...] 5. Repeat a. Let nextResult be ? IteratorStep(iterator). features: [Symbol.iterator] --- 917 -
iterator-next-reference.js --- esid: sec-getiterator description: > The iterator's `next` method should be accessed only once with each iteration as per the `GetIterator` abstract operation (7.4.1). features: [Symbol.iterator, for-of] --- 1085 -
iterator-next-result-done-attr.js --- es6id: 7.4.3 description: > The `done` value of iteration result objects should be interpreted as incomplete as per `ToBoolean` (7.1.2). features: [Symbol.iterator] --- 2341 -
iterator-next-result-type.js --- es6id: 13.6.4.13 S5.c description: > If Type(result) is not Object, throw a TypeError exception as per `IteratorNext` (7.4.2 S4) features: [Symbol.iterator] --- 2212 -
iterator-next-result-value-attr-error.js --- es6id: 13.6.4.13 S5.g description: > If `nextValue` is an abrupt completion as per IteratorValue (ES6 7.4.4), return the completion. info: | [...] 5. Repeat a. Let nextResult be ? IteratorStep(iterator). b. If nextResult is false, return NormalCompletion(V). c. Let nextValue be ? IteratorValue(nextResult). features: [Symbol.iterator] --- 1112 -
iterator-next-result-value-attr.js --- es6id: 13.6.4.13 S5.f description: > The `value` of iteration result objects should be retrieved using the Get abstract operation. features: [Symbol.iterator] --- 1035 -
labelled-fn-stmt-const.js --- description: It is a Syntax Error if IsLabelledFunction(Statement) is true. negative: phase: parse type: SyntaxError esid: sec-semantics-static-semantics-early-errors es6id: 13.7.1.1 info: | Although Annex B describes an extension which permits labelled function declarations outside of strict mode, this early error is applied regardless of the language mode. --- 630 -
labelled-fn-stmt-let.js --- description: It is a Syntax Error if IsLabelledFunction(Statement) is true. negative: phase: parse type: SyntaxError esid: sec-semantics-static-semantics-early-errors es6id: 13.7.1.1 info: | Although Annex B describes an extension which permits labelled function declarations outside of strict mode, this early error is applied regardless of the language mode. --- 628 -
labelled-fn-stmt-lhs.js --- description: It is a Syntax Error if IsLabelledFunction(Statement) is true. negative: phase: parse type: SyntaxError esid: sec-semantics-static-semantics-early-errors es6id: 13.7.1.1 info: | Although Annex B describes an extension which permits labelled function declarations outside of strict mode, this early error is applied regardless of the language mode. --- 624 -
labelled-fn-stmt-var.js --- description: It is a Syntax Error if IsLabelledFunction(Statement) is true. negative: phase: parse type: SyntaxError esid: sec-semantics-static-semantics-early-errors es6id: 13.7.1.1 info: | Although Annex B describes an extension which permits labelled function declarations outside of strict mode, this early error is applied regardless of the language mode. --- 628 -
let-array-with-newline.js --- esid: sec-for-in-and-for-of-statements description: > ExpressionStatement has a lookahead restriction for `let [`. info: | ExpressionStatement[Yield, Await] : [lookahead ∉ { {, function, async [no LineTerminator here] function, class, let [ }] Expression[+In, ?Yield, ?Await] ; negative: phase: parse type: SyntaxError flags: [noStrict] --- 580 -
let-block-with-newline.js --- esid: sec-for-in-and-for-of-statements description: > ExpressionStatement doesn't have a lookahead restriction for `let {`. info: | ExpressionStatement[Yield, Await] : [lookahead ∉ { {, function, async [no LineTerminator here] function, class, let [ }] Expression[+In, ?Yield, ?Await] ; flags: [noStrict] --- 517 -
let-identifier-with-newline.js --- esid: sec-for-in-and-for-of-statements description: > ExpressionStatement doesn't have a lookahead restriction for `let <binding-identifier>`. info: | ExpressionStatement[Yield, Await] : [lookahead ∉ { {, function, async [no LineTerminator here] function, class, let [ }] Expression[+In, ?Yield, ?Await] ; flags: [noStrict] --- 540 -
map-contract-expand.js --- description: Map entry removal and re-insertion during traversal using for..of info: | Entries removed from a Map instance during traversal should be visited if they are re-inserted prior to iterator exhaustion. es6id: 13.6.4 features: [Map] --- 813 -
map-contract.js --- description: > Entries removed from a Map instance during traversal should not be visited. es6id: 13.6.4 features: [Map] --- 541 -
map-expand-contract.js --- description: Map entry insertion during traversal using for..of info: | New entries inserted into a Map instance during traversal should not be visited if they are removed prior to visitation. es6id: 13.6.4 features: [Map] --- 651 -
map-expand.js --- description: Map entry insertion during traversal using for..of info: | New entries inserted into a Map instance during traversal should be visited. es6id: 13.6.4 features: [Map] --- 684 -
map.js --- description: Map traversal using for..of info: | Map instances should be able to be traversed using a `for...of` loop. es6id: 13.6.4 features: [Map] --- 806 -
nested.js --- es6id: 13.6.4.13 description: > Nested statements should operate independently. features: [generators] --- 769 -
return-from-catch.js --- es6id: 13.6.4.13 description: > Control flow during body evaluation should honor `return` statements within the `catch` block of `try` statements. features: [generators] --- 980 -
return-from-finally.js --- es6id: 13.6.4.13 description: > Control flow during body evaluation should honor `return` statements within the `finally` block of `try` statements. features: [generators] --- 954 -
return-from-try.js --- es6id: 13.6.4.13 description: > Control flow during body evaluation should honor `return` statements within `try` blocks. features: [generators] --- 1012 -
return.js --- es6id: 13.6.4.13 description: > Control flow during body evaluation should honor `return` statements. features: [generators] --- 779 -
scope-body-lex-boundary.js --- esid: sec-for-in-and-for-of-statements-runtime-semantics-labelledevaluation description: > Creation of new lexical environment for each evaluation of the statement body info: | IterationStatement : for ( ForDeclaration of AssignmentExpression ) Statement [...] 2. Return ? ForIn/OfBodyEvaluation(ForDeclaration, Statement, keyResult, lexicalBinding, labelSet). 13.7.5.13 Runtime Semantics: ForIn/OfBodyEvaluation [...] 5. Repeat [...] i. Let result be the result of evaluating stmt. j. Set the running execution context's LexicalEnvironment to oldEnv. k. If LoopContinues(result, labelSet) is false, return ? IteratorClose(iterator, UpdateEmpty(result, V)). l. If result.[[Value]] is not empty, let V be result.[[Value]]. features: [let] --- 1280 -
scope-body-lex-close.js --- esid: sec-for-in-and-for-of-statements-runtime-semantics-labelledevaluation description: > Removal of lexical environment for the initial evaluation of the statement body info: | IterationStatement : for ( ForDeclaration of AssignmentExpression ) Statement [...] 2. Return ? ForIn/OfBodyEvaluation(ForDeclaration, Statement, keyResult, lexicalBinding, labelSet). 13.7.5.13 Runtime Semantics: ForIn/OfBodyEvaluation [...] 5. Repeat [...] i. Let result be the result of evaluating stmt. j. Set the running execution context's LexicalEnvironment to oldEnv. k. If LoopContinues(result, labelSet) is false, return ? IteratorClose(iterator, UpdateEmpty(result, V)). l. If result.[[Value]] is not empty, let V be result.[[Value]]. features: [let] --- 1355 -
scope-body-lex-open.js --- esid: sec-for-in-and-for-of-statements-runtime-semantics-labelledevaluation description: > Creation of new lexical environment for the initial evaluation of the statement body info: | IterationStatement : for ( ForDeclaration of AssignmentExpression ) Statement [...] 2. Return ? ForIn/OfBodyEvaluation(ForDeclaration, Statement, keyResult, lexicalBinding, labelSet). 13.7.5.13 Runtime Semantics: ForIn/OfBodyEvaluation [...] 5. Repeat [...] d. If lhsKind is either assignment or varBinding, then [...] e. Else, i. Assert: lhsKind is lexicalBinding. ii. Assert: lhs is a ForDeclaration. iii. Let iterationEnv be NewDeclarativeEnvironment(oldEnv). iv. Perform BindingInstantiation for lhs passing iterationEnv as the argument. v. Set the running execution context's LexicalEnvironment to iterationEnv. [...] features: [let] --- 1662 -
scope-body-var-none.js --- esid: sec-for-in-and-for-of-statements-runtime-semantics-labelledevaluation description: No variable environment is created for the statement body info: | IterationStatement : for ( ForDeclaration of AssignmentExpression ) Statement [...] 2. Return ? ForIn/OfBodyEvaluation(ForDeclaration, Statement, keyResult, lexicalBinding, labelSet). 13.7.5.13 Runtime Semantics: ForIn/OfBodyEvaluation [...] 5. Repeat [...] d. If lhsKind is either assignment or varBinding, then [...] e. Else, i. Assert: lhsKind is lexicalBinding. ii. Assert: lhs is a ForDeclaration. iii. Let iterationEnv be NewDeclarativeEnvironment(oldEnv). iv. Perform BindingInstantiation for lhs passing iterationEnv as the argument. v. Set the running execution context's LexicalEnvironment to iterationEnv. [...] features: [let] --- 1720 -
scope-head-lex-close.js --- esid: sec-for-in-and-for-of-statements-runtime-semantics-labelledevaluation description: > Removal of lexical environment to serve as a temporal dead zone for the statement's AssignmentExpresson info: | IterationStatement : for ( ForDeclaration of AssignmentExpression ) Statement 1. Let keyResult be the result of performing ? ForIn/OfHeadEvaluation(BoundNames of ForDeclaration, AssignmentExpression, iterate). [...] 13.7.5.12 Runtime Semantics: ForIn/OfHeadEvaluation [...] 2. If TDZnames is not an empty List, then a. Assert: TDZnames has no duplicate entries. b. Let TDZ be NewDeclarativeEnvironment(oldEnv). c. Let TDZEnvRec be TDZ's EnvironmentRecord. d. For each string name in TDZnames, do i. Perform ! TDZEnvRec.CreateMutableBinding(name, false). e. Set the running execution context's LexicalEnvironment to TDZ. 3. Let exprRef be the result of evaluating expr. 4. Set the running execution context's LexicalEnvironment to oldEnv. [...] features: [let] --- 1658 -
scope-head-lex-open.js --- esid: sec-for-in-and-for-of-statements-runtime-semantics-labelledevaluation description: > Creation of new lexical environment to serve as a temporal dead zone for the statement's AssignmentExpresson info: | IterationStatement : for ( ForDeclaration of AssignmentExpression ) Statement 1. Let keyResult be the result of performing ? ForIn/OfHeadEvaluation(BoundNames of ForDeclaration, AssignmentExpression, iterate). [...] 13.7.5.12 Runtime Semantics: ForIn/OfHeadEvaluation [...] 2. If TDZnames is not an empty List, then a. Assert: TDZnames has no duplicate entries. b. Let TDZ be NewDeclarativeEnvironment(oldEnv). c. Let TDZEnvRec be TDZ's EnvironmentRecord. d. For each string name in TDZnames, do i. Perform ! TDZEnvRec.CreateMutableBinding(name, false). e. Set the running execution context's LexicalEnvironment to TDZ. 3. Let exprRef be the result of evaluating expr. [...] features: [let] --- 1400 -
scope-head-var-none.js --- esid: sec-for-in-and-for-of-statements-runtime-semantics-labelledevaluation description: > No variable environment is created for the statement "head" info: | IterationStatement : for ( ForDeclaration of AssignmentExpression ) Statement 1. Let keyResult be the result of performing ? ForIn/OfHeadEvaluation(BoundNames of ForDeclaration, AssignmentExpression, iterate). [...] 13.7.5.12 Runtime Semantics: ForIn/OfHeadEvaluation [...] 2. If TDZnames is not an empty List, then a. Assert: TDZnames has no duplicate entries. b. Let TDZ be NewDeclarativeEnvironment(oldEnv). c. Let TDZEnvRec be TDZ's EnvironmentRecord. d. For each string name in TDZnames, do i. Perform ! TDZEnvRec.CreateMutableBinding(name, false). e. Set the running execution context's LexicalEnvironment to TDZ. 3. Let exprRef be the result of evaluating expr. [...] flags: [noStrict] --- 1723 -
set-contract-expand.js --- description: Set entry removal and re-insertion during traversal using for..of info: | Entries removed from a Set instance during traversal should be visited if they are re-inserted prior to iterator exhaustion. es6id: 13.6.4 features: [Set] --- 742 -
set-contract.js --- description: > Entries removed from a Set instance during traversal should not be visited. es6id: 13.6.4 features: [Set] --- 497 -
set-expand-contract.js --- description: Set entry insertion and removal during traversal using for..of info: | New entries inserted into a Set instance during traversal should not be visited if they are removed prior to visitation. es6id: 13.6.4 features: [Set] --- 619 -
set-expand.js --- description: Set entry insertaion during traversal using for..of info: | New entries inserted into a Set instance during traversal should be visited. es6id: 13.6.4 features: [Set] --- 619 -
set.js --- description: > Set instances should be able to be traversed using a `for...of` loop. es6id: 13.6.4 features: [Set] --- 880 -
shell.js --- description: | A collection of assertion and wrapper functions for testing asynchronous built-ins. defines: [asyncTest, assert.throwsAsync] --- 7494 -
string-astral-truncated.js --- description: String traversal using for..of (incomplete surrogate pairs) info: | String literals should be able to be traversed using a `for...of` loop. The loop body should execute once for each incomplete surrogate pair. es6id: 13.6.4 --- 752 -
string-astral.js --- description: String traversal using for..of (astral symbols) info: | String literals should be able to be traversed using a `for...of` loop. The loop body should execute once for each astral symbol. es6id: 13.6.4 --- 736 -
string-bmp.js --- description: String traversal using for..of info: | String literals should be able to be traversed using a `for...of` loop. The loop body should execute once for every BMP character. es6id: 13.6.4 --- 654 -
throw-from-catch.js --- es6id: 13.6.4.13 description: > Control flow during body evaluation should honor `throw` statements within the `catch` block of `try` statements. features: [generators] --- 1026 -
throw-from-finally.js --- es6id: 13.6.4.13 description: > Control flow during body evaluation should honor `throw` statements within the `finally` block of `try` statements. features: [generators] --- 999 -
throw.js --- es6id: 13.6.4.13 description: > Control flow during body evaluation should honor `throw` statements. features: [generators] --- 824 -
typedarray-backed-by-resizable-buffer-grow-before-end.js --- esid: sec-arraybuffer-length description: > TypedArrays backed by resizable buffers are iterable with for-of and behave correctly when the buffer is grown during iteration features: [resizable-arraybuffer] includes: [compareArray.js, resizableArrayBufferUtils.js] --- 1985 -
typedarray-backed-by-resizable-buffer-grow-mid-iteration.js --- esid: sec-arraybuffer-length description: > TypedArrays backed by resizable buffers are iterable with for-of and behave correctly when the buffer is grown during iteration features: [resizable-arraybuffer] includes: [compareArray.js, resizableArrayBufferUtils.js] --- 2308 -
typedarray-backed-by-resizable-buffer-shrink-mid-iteration.js --- esid: sec-arraybuffer-length description: > TypedArrays backed by resizable buffers are iterable with for-of and behave correctly when the buffer is shrunk during iteration features: [resizable-arraybuffer] includes: [compareArray.js, resizableArrayBufferUtils.js] --- 2919 -
typedarray-backed-by-resizable-buffer-shrink-to-zero-mid-iteration.js --- esid: sec-arraybuffer-length description: > TypedArrays backed by resizable buffers are iterable with for-of and behave correctly when the buffer is shrunk during iteration features: [resizable-arraybuffer] includes: [compareArray.js, resizableArrayBufferUtils.js] --- 2081 -
typedarray-backed-by-resizable-buffer.js --- esid: sec-arraybuffer-length description: > TypedArrays backed by resizable buffers are iterable with for-of features: [resizable-arraybuffer] includes: [compareArray.js, resizableArrayBufferUtils.js] --- 2292 -
uint8array-mutate.js --- es6id: 13.6.4 description: Uint8Array mutation during traversal using for..of info: | Uint8Array instances should be able to be traversed using a `for..of` loop, and dynamic changes to their contents should be reflected in the iterated values. features: [TypedArray] --- 790 -
uint8array.js --- es6id: 13.6.4 description: > Uint8Array instances should be able to be traversed using a `for..of` loop. features: [TypedArray] --- 624 -
uint8clampedarray-mutate.js --- es6id: 13.6.4 description: Uint8ClampedArray mutation during traversal using for..of info: | Uint8ClampedArray instances should be able to be traversed using a `for..of` loop, and dynamic changes to their contents should be reflected in the iterated values. features: [TypedArray] --- 811 -
uint8clampedarray.js --- es6id: 13.6.4 description: > Uint8ClampedArray instances should be able to be traversed using a `for..of` loop. features: [TypedArray] --- 642 -
uint16array-mutate.js --- es6id: 13.6.4 description: Uint16Array mutation during traversal using for..of info: | Uint16Array instances should be able to be traversed using a `for..of` loop, and dynamic changes to their contents should be reflected in the iterated values. features: [TypedArray] --- 793 -
uint16array.js --- es6id: 13.6.4 description: Uint16Array traversal using for..of info: | Uint16Array instances should be able to be traversed using a `for..of` loop. features: [TypedArray] --- 672 -
uint32array-mutate.js --- es6id: 13.6.4 description: Uint32Array mutation during traversal using for..of info: | Uint32Array instances should be able to be traversed using a `for..of` loop, and dynamic changes to their contents should be reflected in the iterated values. features: [TypedArray] --- 793 -
uint32array.js --- es6id: 13.6.4 description: Uint32Array traversal using for..of info: | Uint32Array instances should be able to be traversed using a `for..of` loop. features: [TypedArray] --- 672 -
yield-from-catch.js --- es6id: 13.6.4.13 description: > Control flow during body evaluation should honor `yield` statements within the `catch` block of `try` statements. features: [generators] --- 1452 -
yield-from-finally.js --- es6id: 13.6.4.13 description: > Control flow during body evaluation should honor `yield` statements within the `finally` block of `try` statements. features: [generators] --- 1366 -
yield-from-try.js --- es6id: 13.6.4.13 description: > Control flow during body evaluation should honor `yield` statements within `try` blocks. features: [generators] --- 1338 -
yield-star-from-catch.js --- es6id: 13.6.4.13 description: > Control flow during body evaluation should honor `yield *` statements within the `catch` block of `try` statements. features: [generators] --- 1955 -
yield-star-from-finally.js --- es6id: 13.6.4.13 description: > Control flow during body evaluation should honor `yield *` statements within the `finally` block of `try` statements. features: [generators] --- 1869 -
yield-star-from-try.js --- es6id: 13.6.4.13 description: > Control flow during body evaluation should honor `yield *` statements within `try` blocks. features: [generators] --- 1841 -
yield-star.js --- es6id: 13.6.4.13 description: > Control flow during body evaluation should honor `yield *` statements. features: [generators] --- 1493 -
yield.js --- es6id: 13.6.4.13 description: > Control flow during body evaluation should honor `yield` statements. features: [generators] --- 1097 -