mirror of
https://github.com/tc39/test262.git
synced 2025-07-25 23:14:47 +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
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