JavaScriptのジェネレータ

function* generator(){
  var a = yield 1;
  console.log("a : ",a);

  return 4;
}

var g = generator();
console.log("*******************");
console.log(g.next(10));
console.log("*******************");
console.log(g.next(20));
console.log("*******************");
console.log(g.next(30));
console.log("*******************");
console.log(g.next(40));
console.log("*******************");
$ node --harmony test.js
*******************
{ value: 1, done: false }
*******************
a :  20
{ value: 4, done: true }
*******************
{ value: undefined, done: true }
*******************
{ value: undefined, done: true }
*******************