更新日:

JavaScript ジェネレータ関数

index.js
function* gfn() {
  var a = yield 0;
  yield* [1, a, 5];
}

var g = gfn(); // ジェネレータを作った。この時点ではまだ関数の中身は実行されない

// g.next() を実行すると、関数の中身が順番に実行される
console.log(g.next()); //  { value: 0, done: false }
console.log(g.next()); // { value: 1, done: false }
console.log(g.next()); //  { value: 3, done: false }
console.log(g.next()); //  { value: 5, done: false }
console.log(g.next()); //  { value: undefined, done: true }