// Generator-iterators are consumed the first time they are iterated.

function range(n) {
    for (var i = 0; i < n; i++)
        yield i;
}

var r = range(10);
var i = 0;
for (var x in r)
    assertEq(x, i++);
assertEq(i, 10);
for (var y in r)
    throw "FAIL";
assertEq(y, undefined);