instanceofが失敗する

テキストノードだと普通は instanceof Text とすると true が返ってくれるのだけど、エラーになることもあるんだ。

ここで適当にノードを拾って instanceof Text をやろうとすると、以下のようなエラーが。(Opera の場合)

JavaScript - http://la.ma.la/blog/
Javascript URL thread: "javascript:var a=document.getElementsByTagName('p')[0].firstChild;alert(a instanceof Text);void(0);"
Error:
name: TypeError
message: Statement on line 1: Second argument to 'instanceof' does not implement [[HasInstance]]
Backtrace:
  Line 1 of unknown script 
    var a=document.getElementsByTagName('p')[0].firstChild;alert(a instanceof Text);void(0);
stacktrace:   ...

よくわからん。Text オブジェクトのプロパティで HasInstance が無いとダメってことかな?

しかも他のサイトでは大丈夫なのに何故ここだけ?

うーん。

Firefox だったら下のようなエラー。

Error: invalid 'instanceof' operand Text
Source File: javascript:var%20a=document.getElementsByTagName('p')[0].firstChild;alert(a%20instanceof%20Text);void(0);
Line: 1

Safari なら false とアラートが出るな。しかし nodeName だとちゃんと #text なのに…