mirror of
https://github.com/tc39/test262.git
synced 2025-07-27 07:54:41 +02:00
Correct test for for-in
IterationStatement
This test was intended to assert the semantics of the `for-in` statement, but it was mistakenly authored to use a `for-of` statement. Update the statement under test, and improve the testing methodology to correctly assert the creation of distinct bindings.
This commit is contained in:
parent
53df13bf9d
commit
7a8e644696
@ -1,15 +1,28 @@
|
|||||||
// Copyright (C) 2011 the V8 project authors. All rights reserved.
|
// Copyright (C) 2011 the V8 project authors. All rights reserved.
|
||||||
// This code is governed by the BSD license found in the LICENSE file.
|
// This code is governed by the BSD license found in the LICENSE file.
|
||||||
/*---
|
/*---
|
||||||
es6id: 13.6.4.13
|
esid: sec-runtime-semantics-forin-div-ofbodyevaluation-lhs-stmt-iterator-lhskind-labelset
|
||||||
|
es6id: 13.7.5.13
|
||||||
description: >
|
description: >
|
||||||
let ForDeclaration: creates a fresh binding per iteration
|
let ForDeclaration: creates a fresh binding per iteration
|
||||||
---*/
|
---*/
|
||||||
|
|
||||||
let s = '';
|
var fns = {};
|
||||||
for (let x of [1, 2, 3]) {
|
var obj = Object.create(null);
|
||||||
s += x;
|
obj.a = 1;
|
||||||
|
obj.b = 1;
|
||||||
|
obj.c = 1;
|
||||||
|
|
||||||
|
for (let x in obj) {
|
||||||
|
// Store function objects as properties of an object so that their return
|
||||||
|
// value may be verified regardless of the for-in statement's enumeration
|
||||||
|
// order.
|
||||||
|
fns[x] = function() { return x; };
|
||||||
}
|
}
|
||||||
assert.sameValue(s, '123', "The value of `s` is `'123'`");
|
|
||||||
|
|
||||||
|
|
||||||
|
assert.sameValue(typeof fns.a, 'function', 'property definition: "a"');
|
||||||
|
assert.sameValue(fns.a(), 'a');
|
||||||
|
assert.sameValue(typeof fns.b, 'function', 'property definition: "b"');
|
||||||
|
assert.sameValue(fns.b(), 'b');
|
||||||
|
assert.sameValue(typeof fns.c, 'function', 'property definition: "c"');
|
||||||
|
assert.sameValue(fns.c(), 'c');
|
||||||
|
Loading…
x
Reference in New Issue
Block a user