mirror of https://github.com/tc39/test262.git
29 lines
951 B
JavaScript
29 lines
951 B
JavaScript
// Copyright (C) 2011 the V8 project authors. All rights reserved.
|
|
// This code is governed by the BSD license found in the LICENSE file.
|
|
/*---
|
|
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
|
|
---*/
|
|
|
|
var fns = {};
|
|
var obj = Object.create(null);
|
|
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(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');
|