Firefox 3.0.1にて。
var g = function(){ while(1) yield 1; }.call();
for each(let i in g){ break; }
g.next(); // StopIteration例外
なんでやねん。なんかどう考えてもfor each文を抜けるときにジェネレータが凍結されずにcloseメソッドが呼ばれているだろこれ。Firefox2のときと挙動が違うというか、Pythonと違う。
こういうことをするならJavascript1.8でやってくれないかなあ。本気で迷惑なんだけど。
どうするか考え中。