2015-01-04 19:40:09 +11:00

46 lines
852 B
JavaScript

(function() {
var i;
function* f() {
for (i = 0; i < 8; i++) {
yield i;
}
}
var x, x2, xs;
[, x, , x2, , ...xs] = f();
assert.equal(1, x);
assert.equal(3, x2);
assertArrayEquals([5, 6, 7], xs);
[] = f();
assert.equal(8, i); // Since we never call next().
x = -1;
[x] = f();
assert.equal(0, x);
assert.equal(0, i); // Since we called next once.
})();
// Same but with VariableDeclarations instead of AssignmenExpressions.
(function() {
var i;
function* f() {
for (i = 0; i < 8; i++) {
yield i;
}
}
var [, x, , x2, , ...xs] = f();
assert.equal(1, x);
assert.equal(3, x2);
assertArrayEquals([5, 6, 7], xs);
var [] = f();
assert.equal(8, i); // Since we never call next().
var [y] = f();
assert.equal(0, y);
assert.equal(0, i); // Since we called next once.
})();