instanceof 問題続き
http://d.hatena.ne.jp/yssk22/20090407#1239134996 で JS_InitStandardClass が怪しいよ、といわれて、ソースをいじって試してみたのだが、
function(doc) { emit("0_Array", Array.toString()); emit("1_Number", Number.toString()); emit("2_Is Array?", doc.array_member instanceof Array) emit("3_Is Number?", doc.array_member[1] instanceof Number) // test the user class TestClass = function(){}; var obj = new TestClass(); emit("4_InstanceOfUserClass", obj instanceof TestClass) } got the result: (key, value) -> ("0_Array", "function Array() {\n [native code]\n}") ("1_Number", "function Number() {\n [native code]\n}") ("2_Is Array", false) ("3_Is Number", false) ("4_InstanceOfUserClass", true)
だめだろ。こりゃ。instanceof が buggy なのか、JS_Contextがどうかしているのか。とにもかくにもSpiderMonkeyなんて知らないから再調査。。instanceof が使えなくても constructor.name はいけるとおもうんだけれど、Number には通用しないんだよ。。。