babel/test/fixtures/traceur/Yield/ForOfGenerator.js
2015-01-04 19:40:09 +11:00

50 lines
814 B
JavaScript

function* forEachGenerator() {
yield* forInGenerator3();
yield* forInGenerator2();
}
function* forInGenerator3() {
var object = {
a: 0,
b: {
c: 1,
},
d: 2
};
for (var key in object) {
yield key;
for (var key2 in object[key]) {
yield key2;
}
}
}
function* forInGenerator2() {
var object = {
a: 0,
b: 1,
c: 2
};
var key;
for (key in object) {
if (key == 'a') {
delete object.b;
object.d = 3;
}
yield key;
yield object[key];
}
}
function accumulate(iterator) {
var result = '';
for (var value of iterator) {
result = result + String(value);
}
return result;
}
// ----------------------------------------------------------------------------
assert.equal('abcda0c2', accumulate(forEachGenerator()));