概要 V8でジェネレータ周りの実装が進んできたので、解説してみようと思う。 ジェネレータ関数 ジェネレータ関数とは、(一つの見かたとしては)処理を途中で一時停止できる関数のことである。 例えば、呼び出される度に数を順番に返す関数を定義したいとする。 function count(n) { return function () { return n++ } } var next = count(10) next() // 10 next() // 11 next() // 12 これがジェネレータ関数を用いると次のように書ける。 function* count(n) { while (true) { yield n++ } } var gen = count(10) gen.next() // { value: 10, done: false } gen.next() // { value: