Name Description Size Coverage
12.6.4-1.js --- es5id: 12.6.4-1 description: > The for-in Statement - a property name must not be visited more than once in any enumeration. --- 957 -
12.6.4-2.js --- es5id: 12.6.4-2 description: > The for-in Statement - the values of [[Enumerable]] attributes are not considered when determining if a property of a prototype object is shadowed by a previous object on the prototype chain --- 947 -
browser.js 0 -
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 in Expression ) Statement 1. Let keyResult be ForIn/OfHeadEvaluation( « », Expression, enumerate). 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)). --- 1429 -
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 in Expression ) Statement 1. Let keyResult be ForIn/OfHeadEvaluation( « », Expression, enumerate). 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]]. --- 1125 -
cptn-decl-skip-itr.js --- es6id: 13.7.5.11 description: > Completion value when head has a declaration and iteration is skipped info: | IterationStatement : for ( var ForBinding in Expression ) Statement 1. Let keyResult be ForIn/OfHeadEvaluation( « », Expression, enumerate). 2. ReturnIfAbrupt(keyResult). 13.7.5.12 Runtime Semantics: ForIn/OfHeadEvaluation [...] 7. If iterationKind is enumerate, then a. If exprValue.[[value]] is null or undefined, then i. Return Completion{[[type]]: break, [[value]]: empty, [[target]]: empty}. --- 1019 -
cptn-decl-zero-itr.js --- es6id: 13.7.5.11 description: > Completion value when head has a declaration and no iteration occurs info: | IterationStatement : for ( var ForBinding in Expression ) Statement 1. Let keyResult be ForIn/OfHeadEvaluation( « », Expression, enumerate). 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). --- 972 -
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 in Expression ) Statement 1. Let keyResult be ForIn/OfHeadEvaluation( « », Expression, enumerate). 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)). --- 1462 -
cptn-expr-itr.js --- es6id: 13.7.5.11 description: > Completion value when head has no declaration and iteration occurs info: | IterationStatement : for ( LeftHandSideExpression in Expression ) Statement 1. Let keyResult be ForIn/OfHeadEvaluation( « », Expression, enumerate). 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]]. --- 1152 -
cptn-expr-skip-itr.js --- es6id: 13.7.5.11 description: > Completion value when head has no declaration and iteration is skipped info: | IterationStatement : for ( LeftHandSideExpression in Expression ) Statement 1. Let keyResult be ForIn/OfHeadEvaluation( « », Expression, enumerate). 2. ReturnIfAbrupt(keyResult). 13.7.5.12 Runtime Semantics: ForIn/OfHeadEvaluation [...] 7. If iterationKind is enumerate, then a. If exprValue.[[value]] is null or undefined, then i. Return Completion{[[type]]: break, [[value]]: empty, [[target]]: empty}. --- 1040 -
cptn-expr-zero-itr.js --- es6id: 13.7.5.11 description: > Completion value when head has no declaration and no iteration occurs info: | IterationStatement : for ( LeftHandSideExpression in Expression ) Statement 1. Let keyResult be ForIn/OfHeadEvaluation( « », Expression, enumerate). 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). --- 999 -
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 -
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) --- 360 -
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 --- 383 -
head-decl-expr.js --- description: Expression is allowed in head info: | IterationStatement : for ( ForDeclaration in Expression ) Statement 1. Let keyResult be the result of performing ForIn/OfHeadEvaluation(BoundNames of ForDeclaration, Expression, enumerate). 2. ReturnIfAbrupt(keyResult). 3. Return ForIn/OfBodyEvaluation(ForDeclaration, Statement, keyResult, lexicalBinding, labelSet). es6id: 13.7.5.11 --- 735 -
head-expr-expr.js --- description: Expression is allowed in head info: | IterationStatement : for ( ForDeclaration in Expression ) Statement 1. Let keyResult be the result of performing ForIn/OfHeadEvaluation(BoundNames of ForDeclaration, Expression, enumerate). 2. ReturnIfAbrupt(keyResult). 3. Return ForIn/OfBodyEvaluation(ForDeclaration, Statement, keyResult, lexicalBinding, labelSet). es6id: 13.7.5.11 --- 738 -
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) --- 358 -
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-iteration-statements es6id: 13.7 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] in Expression[+In, ?Yield] ) Statement[?Yield, ?Return] for ( ForDeclaration[?Yield] in Expression[+In, ?Yield] ) Statement[?Yield, ?Return] --- 805 -
head-let-fresh-binding-per-iteration.js --- esid: sec-runtime-semantics-forin-div-ofbodyevaluation-lhs-stmt-iterator-lhskind-labelset es6id: 13.7.5.13 description: > let ForDeclaration: creates a fresh binding per iteration --- 973 -
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 --- 502 -
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-iteration-statements es6id: 13.7 description: > The `let` token is interpreted as an Identifier when it is not followed by a `[` token info: | Syntax IterationStatement[Yield, Return]: for ( [lookahead ∉ { let [ } ] LeftHandSideExpression[?Yield] in Expression[+In, ?Yield] ) Statement[?Yield, ?Return] for ( ForDeclaration[?Yield] in Expression[+In, ?Yield] ) Statement[?Yield, ?Return] flags: [noStrict] --- 937 -
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 --- 478 -
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 --- 459 -
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 --- 470 -
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] --- 469 -
head-var-expr.js --- description: Expression is allowed in head info: | IterationStatement : for ( ForDeclaration in Expression ) Statement 1. Let keyResult be the result of performing ForIn/OfHeadEvaluation(BoundNames of ForDeclaration, Expression, enumerate). 2. ReturnIfAbrupt(keyResult). 3. Return ForIn/OfBodyEvaluation(ForDeclaration, Statement, keyResult, lexicalBinding, labelSet). es6id: 13.7.5.11 --- 735 -
identifier-let-allowed-as-lefthandside-expression-not-strict.js --- description: > identifier "let" allowed as lefthandside expression esid: sec-iteration-statements info: | for ( [ lookahead ∉ { let [ } ] LeftHandSideExpression [?Yield, ?Await] in Expression[+In, ?Yield, ? Await]) Statement[?Yield, ?Await, ?Return] flags: [noStrict] --- 473 -
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] --- 582 -
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] --- 519 -
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] --- 542 -
order-after-define-property.js --- esid: sec-enumerate-object-properties description: > Property names are returned in ascending chronological order of creation that is unaffected by [[DefineOwnProperty]]. info: | EnumerateObjectProperties ( O ) EnumerateObjectProperties must obtain the own property keys of the target object by calling its [[OwnPropertyKeys]] internal method. Property attributes of the target object must be obtained by calling its [[GetOwnProperty]] internal method. OrdinaryOwnPropertyKeys ( O ) [...] 3. For each own property key P of O that is a String but is not an array index, in ascending chronological order of property creation, do a. Add P as the last element of keys. [...] 5. Return keys. includes: [compareArray.js] --- 1405 -
order-enumerable-shadowed.js --- esid: sec-enumerate-object-properties description: Enumerable properties the prototype which are shadowed by non-enumerable properties on the object are not enumerated features: [for-in-order] includes: [compareArray.js] --- 651 -
order-property-added.js --- esid: sec-enumerate-object-properties description: Properties added to the object during iteration are not enumerated features: [for-in-order] includes: [compareArray.js] --- 529 -
order-property-on-prototype.js --- esid: sec-enumerate-object-properties description: Properties on the prototype are enumerated after properties on the object features: [for-in-order] includes: [compareArray.js] --- 563 -
order-simple-object.js --- esid: sec-enumerate-object-properties description: Property enumeration order for simple objects features: [for-in-order] includes: [compareArray.js] --- 572 -
resizable-buffer.js --- esid: sec-arraybuffer-length description: > Indices of TypedArrays backed by resizable buffers are enumerable with for-in includes: [resizableArrayBufferUtils.js] features: [resizable-arraybuffer] --- 578 -
S12.6.4_A1.js --- info: "\"for(key in undefined)\" Statement is allowed" es5id: 12.6.4_A1 description: Checking if execution of "for(key in undefined)" passes --- 916 -
S12.6.4_A2.js --- info: "\"for(key in null)\" Expression is allowed" es5id: 12.6.4_A2 description: Checking if execution of "for(key in null)" passes --- 896 -
S12.6.4_A3.1.js --- info: | The production IterationStatement: "for (var VariableDeclarationNoIn in Expression) Statement" es5id: 12.6.4_A3.1 description: > Using an array as an Expression is appropriate. Here Expression is an array of numbers --- 1248 -
S12.6.4_A3.js --- info: | The production IterationStatement: "for (var VariableDeclarationNoIn in Expression) Statement" es5id: 12.6.4_A3 description: > Using an array as an Expression is appropriate. Here Expression is an array of numbers. Eval is used --- 1261 -
S12.6.4_A4.1.js --- info: | The production IterationStatement: "for (var VariableDeclarationNoIn in Expression) Statement" es5id: 12.6.4_A4.1 description: Using Object as an Expression is appropriate. Eval is used --- 1265 -
S12.6.4_A4.js --- info: | The production IterationStatement: "for (var VariableDeclarationNoIn in Expression) Statement" es5id: 12.6.4_A4 description: Using Object as an Expression is appropriate. Eval is used --- 1264 -
S12.6.4_A5.1.js --- info: | The production IterationStatement: "for (var VariableDeclarationNoIn in Expression) Statement" es5id: 12.6.4_A5.1 description: > Using hierarchical Object as an Expression is appropriate. The depth is two --- 1292 -
S12.6.4_A5.js --- info: | The production IterationStatement: "for (var VariableDeclarationNoIn in Expression) Statement" es5id: 12.6.4_A5 description: > Using hierarchical Object as an Expression is appropriate. The depth is two --- 1296 -
S12.6.4_A6.1.js --- info: | The production IterationStatement: "for (var VariableDeclarationNoIn in Expression) Statement" es5id: 12.6.4_A6.1 description: > Using Object with custom prototype as an Expression is appropriate. The prototype is "{feat:2,hint:"protohint"}" --- 1455 -
S12.6.4_A6.js --- info: | The production IterationStatement: "for (var VariableDeclarationNoIn in Expression) Statement" es5id: 12.6.4_A6 description: > Using Object with custom prototype as an Expression is appropriate. The prototype is "{feat:2,hint:"protohint"}" --- 1454 -
S12.6.4_A7_T1.js --- info: | Properties of the object being enumerated may be deleted during enumeration es5id: 12.6.4_A7_T1 description: > Checking "for (LeftHandSideExpression in Expression) Statement" case --- 1391 -
S12.6.4_A7_T2.js --- info: | Properties of the object being enumerated may be deleted during enumeration es5id: 12.6.4_A7_T2 description: > Checking "for (var VariableDeclarationNoIn in Expression) Statement" case --- 899 -
S12.6.4_A14_T2.js --- info: FunctionExpession within a "for-in" Expression is allowed es5id: 12.6.4_A14_T2 description: "Using \"function __func(){return {a:1};}()\" as Expession" --- 862 -
S12.6.4_A15.js --- info: Block within a "for-in" Expression is not allowed es5id: 12.6.4_A15 description: Using block within "for-in" Expression negative: phase: parse type: SyntaxError --- 591 -
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] --- 1576 -
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] --- 1341 -
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] --- 1640 -
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] --- 1719 -
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] --- 1639 -
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] --- 1729 -
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 -
var-arguments-fn-strict-init-strict.js --- esid: sec-for-statement description: > 'for(var arguments = 42 in ...) {...}' throws SyntaxError in strict mode within a function declaration flags: [onlyStrict] negative: phase: parse type: SyntaxError --- 477 -
var-arguments-fn-strict-strict.js --- esid: sec-for-statement description: > 'for(var arguments in ...) {...}' throws SyntaxError in strict mode within a function declaration flags: [onlyStrict] negative: phase: parse type: SyntaxError --- 464 -
var-arguments-strict-init-strict.js --- esid: sec-for-statement description: > 'for(var arguments = 42 in ...) {...}' throws SyntaxError in strict mode flags: [onlyStrict] negative: phase: parse type: SyntaxError --- 434 -
var-arguments-strict-strict.js --- esid: sec-for-statement description: "'for(var arguments in ...) {...}' throws SyntaxError in strict mode" flags: [onlyStrict] negative: phase: parse type: SyntaxError --- 416 -
var-eval-strict-init-strict.js --- esid: sec-for-statement description: "'for(var eval = 42 in ...) {...}' throws SyntaxError in strict mode" flags: [onlyStrict] negative: phase: parse type: SyntaxError --- 416 -
var-eval-strict-strict.js --- esid: sec-for-statement description: "'for(var eval in ...) {...}' throws SyntaxError in strict mode" flags: [onlyStrict] negative: phase: parse type: SyntaxError --- 406 -