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
--- |
512 |
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
--- |
771 |
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
--- |
538 |
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-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-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: |
Collection of helper constants and functions for testing resizable array buffers.
defines:
- floatCtors
- ctors
- MyBigInt64Array
- CreateResizableArrayBuffer
- MayNeedBigInt
- Convert
- ToNumbers
- CreateRabForTest
- CollectValuesAndResize
- TestIterationAndResize
features: [BigInt]
--- |
3893 |
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]
--- |
2181 |
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]
--- |
2504 |
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]
--- |
3115 |
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]
--- |
2277 |
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]
--- |
2488 |
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 |