mirror of
https://github.com/tc39/test262.git
synced 2025-04-08 19:35:28 +02:00
Merge pull request #473 from bocoup/for-inof-exprs
Add tests for iterator expression in ForIn/Of head
This commit is contained in:
commit
e56687f5e9
test/language/statements
25
test/language/statements/for-in/head-decl-expr.js
Normal file
25
test/language/statements/for-in/head-decl-expr.js
Normal file
@ -0,0 +1,25 @@
|
||||
// Copyright (C) 2016 the V8 project authors. All rights reserved.
|
||||
// This code is governed by the BSD license found in the LICENSE file.
|
||||
|
||||
/*---
|
||||
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
|
||||
---*/
|
||||
|
||||
var iterCount = 0;
|
||||
|
||||
for (let x in null, { key: 0 }) {
|
||||
assert.sameValue(x, 'key');
|
||||
iterCount += 1;
|
||||
}
|
||||
|
||||
assert.sameValue(iterCount, 1);
|
26
test/language/statements/for-in/head-expr-expr.js
Normal file
26
test/language/statements/for-in/head-expr-expr.js
Normal file
@ -0,0 +1,26 @@
|
||||
// Copyright (C) 2016 the V8 project authors. All rights reserved.
|
||||
// This code is governed by the BSD license found in the LICENSE file.
|
||||
|
||||
/*---
|
||||
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
|
||||
---*/
|
||||
|
||||
var iterCount = 0;
|
||||
var x;
|
||||
|
||||
for (x in null, { key: 0 }) {
|
||||
assert.sameValue(x, 'key');
|
||||
iterCount += 1;
|
||||
}
|
||||
|
||||
assert.sameValue(iterCount, 1);
|
25
test/language/statements/for-in/head-var-expr.js
Normal file
25
test/language/statements/for-in/head-var-expr.js
Normal file
@ -0,0 +1,25 @@
|
||||
// Copyright (C) 2016 the V8 project authors. All rights reserved.
|
||||
// This code is governed by the BSD license found in the LICENSE file.
|
||||
|
||||
/*---
|
||||
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
|
||||
---*/
|
||||
|
||||
var iterCount = 0;
|
||||
|
||||
for (var x in null, { key: 0 }) {
|
||||
assert.sameValue(x, 'key');
|
||||
iterCount += 1;
|
||||
}
|
||||
|
||||
assert.sameValue(iterCount, 1);
|
13
test/language/statements/for-of/head-decl-no-expr.js
Normal file
13
test/language/statements/for-of/head-decl-no-expr.js
Normal file
@ -0,0 +1,13 @@
|
||||
// Copyright (C) 2016 the V8 project authors. All rights reserved.
|
||||
// This code is governed by the BSD license found in the LICENSE file.
|
||||
|
||||
/*---
|
||||
description: Expression not allowed in head's AssignmentExpression position
|
||||
info: >
|
||||
IterationStatement :
|
||||
for ( ForDeclaration of AssignmentExpression ) Statement
|
||||
es6id: 13.7
|
||||
negative: SyntaxError
|
||||
---*/
|
||||
|
||||
for (let x of [], []) {}
|
14
test/language/statements/for-of/head-expr-no-expr.js
Normal file
14
test/language/statements/for-of/head-expr-no-expr.js
Normal file
@ -0,0 +1,14 @@
|
||||
// Copyright (C) 2016 the V8 project authors. All rights reserved.
|
||||
// This code is governed by the BSD license found in the LICENSE file.
|
||||
|
||||
/*---
|
||||
description: Expression not allowed in head's AssignmentExpression position
|
||||
info: >
|
||||
IterationStatement :
|
||||
for ( LeftHandSideExpression of AssignmentExpression ) Statement
|
||||
es6id: 13.7
|
||||
negative: SyntaxError
|
||||
---*/
|
||||
|
||||
var x;
|
||||
for (x of [], []) {}
|
13
test/language/statements/for-of/head-var-no-expr.js
Normal file
13
test/language/statements/for-of/head-var-no-expr.js
Normal file
@ -0,0 +1,13 @@
|
||||
// Copyright (C) 2016 the V8 project authors. All rights reserved.
|
||||
// This code is governed by the BSD license found in the LICENSE file.
|
||||
|
||||
/*---
|
||||
description: Expression not allowed in head's AssignmentExpression position
|
||||
info: >
|
||||
IterationStatement :
|
||||
for ( var ForBinding of AssignmentExpression ) Statement
|
||||
es6id: 13.7
|
||||
negative: SyntaxError
|
||||
---*/
|
||||
|
||||
for (var x of [], []) {}
|
Loading…
x
Reference in New Issue
Block a user