20 lines
549 B
JavaScript

function sum(x, y) {
return x + y;
}
function* f() {
yield;
yield sum(yield, yield);
return yield;
}
var g = f(42);
assert.deepEqual(g.next(), {value: undefined, done: false});
assert.deepEqual(g.next(), {value: undefined, done: false});
assert.deepEqual(g.next(3), {value: undefined, done: false});
assert.deepEqual(g.next(39), {value: 42, done: false});
assert.deepEqual(g.next(), {value: undefined, done: false});
assert.deepEqual(g.next('abc'), {value: 'abc', done: true});
assert.deepEqual(g.next(), {value: undefined, done: true});