X-0009 Mozilla が固まる?

replaceChild() で墜ちる

1.4.20011014で、 見出しリストをクリック→更新→クリック という操作を行うと必ずフリーズするという問題が起こっていましたが、調べてみたところ、原因はツリーの中身を replaceChild で入れ替えていたせいだったようです( removeChild と appendChild に分けて処理するとフリーズしなくなりました)。文法的には何らおかしいところがなかったため、発見に手間取ってしまいました。

createElementNS() で墜ちる

2001年11月後半、パフォーマンスを向上する修正が Mozilla にいくつも取り入れられたそうですが、同時に、既にある名前空間を指定して未定義の要素を生成するとエラーになるというバグも加わってしまったようです。例えば以下のようなコードを書くと、条件によってほぼ100%の確立でアプリケーションエラーを起こし、 Mozilla が強制終了されてしまいました。

var ruby = document.createElementNS(
     'http://www.w3.org/1999/xhtml',
     'html:ruby'
   );

// XHTML1.1 の ruby 要素は Mozilla 内部の要素リストにはなかった。
// components/gkparser.dll を覗いたら、 bgsound やら xmp やら
// そーいうのは含まれてるのに……