GreaseMonkeyのscript修正

Firefox(build:2005092515)にアップグレードしたところ、今まで動作していたGreaseMonkeyのscriptが動作しなくなったので原因を調査したところこのページがヒット。XPCNativeWrapperというものが関係あるらしい。以下のように修正して動作OK。

var divs = document.getElementsByTagName('div');
// for(var i=0; i<divs.length; ++i){ // 以前のコード
var div; for(var i=0; div = divs[i]; ++i){ // 修正後のコード

動くようになったが以下の疑問が……。

  • t.lenghtはなぜ無効?
  • forはどのタイミングでexitするの?

2005/09/27追記

  • divs[i]をdivへ代入するのがが失敗(divs[i]がnull等)になるまでforをループさせると考えれば、それほどわかりにくくはないかな?