Lispからjavascriptのオブジェクトを生成したい
javascriptのnew演算子をwrapするところで詰まっている。
new TestObj(arg1, arg2)
というのをメタプログラムしたいのだが、関数呼び出しの場合であればFunctionオブジェクトにapplyメソッドが用意されているので、簡単なのだけれど、new演算子の場合は、いかんともしがたい。
http://nanto.asablo.jp/blog/2005/10/24/118564
などを参考にしてみたが、自作オブジェクトだとうまく動くが、組み込みのDate型のインスタンスを生成してみると何やらうまく動かない。
toStringやvalueObメソッドが、Date型のオブジェクトから呼び出されていないという文句を言ってきた。
__proto__をみても、正しそうだし、instanceof Dateでもtrueを返す。
うーん。spidermonkeyのソースとかみるしかないのだろうか。
それとももう少しECMAとかjavascriptの仕様に潜るか。