function run(genfun) { var gen = genfun(); function next(err, answer) { if (err) { return gen.throw(err); } var res = gen.next(answer); if (!res.done) { res.value(next); } } next(); }