実録、ともおじちゃん

典型的な客先常駐型ソフトウェア技術者の13年の軌跡

Cプログラムの中からJavaScriptのStringクラスメソッドを叫ぶ

2008年02月07日 | コンピュータ・家電
3年前からずっと携帯向けサーバサイドJavaScriptを実行可能なWEBサーバを作っていて、どうしてもStringクラスのreplace()メソッドが呼び出したくなりました。

要はJavaScriptで記述するところの

var str = "Twas the night before Xmas...";
str.replace(/xmas/i, "Christmas");

SpiderMonkeyを使ってC言語で書いたプログラムから実行したいのですが、なかなかうまくいかなくてハマッてしまいました。

当初、JSVAL_TO_OBJECT()で得られたオブジェクトを使って、JS_CallFunctionName()でreplace()メソッドを呼び出そうとしていましたが、うまくいきませんでした。

いろいろ試してみたところ、JS_ValueToObject()で得られたオブジェクトを使ってJS_CallFunctionName()を呼び出せばよいようです。

APIリファレンスをよく読むとちゃんと書いてありました。

If v is a boolean value, a number, or a string, the result is a new wrapper object of type Boolean, Number, or String.





最新の画像もっと見る