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 やら
// そーいうのは含まれてるのに……