Visit Mozilla.org

JS EvaluateScript

出典: MDC

スクリプトのコンパイルおよび実行を行います。

[編集] 構文

JSBool JS_EvaluateScript(JSContext *cx, JSObject *obj,
    const char *src, uintN length, const char *filename,
    uintN lineno, jsval *rval);

JSBool JS_EvaluateUCScript(JSContext *cx, JSObject *obj,
    const jschar *src, uintN length, const char *filename,
    uintN lineno, jsval *rval);
Name Type Description
cx JSContext * スクリプトを実行するコンテキスト

リクエストが必要。 (JS_THREADSAFE ビルドでは、呼び出し側はこの JSContext 上のリクエストでなければなりません。)

obj JSObject * スクリプトと関連付けるオブジェクト
src const char * or const jschar * コンパイル・実行対象となるスクリプト文字列
length size_t srcの文字列長
filename const char * エラーメッセージ出力に利用されるスクリプトのファイル名またはそのURLを示す文字列。
lineno uintN エラー発生時に出力される行数
rval jsval * 実行結果の出力先。実行に成功したとき、*rvalにはスクリプトの最終行の実行結果の値が格納されます。

[編集] 説明

JS_EvaluateScriptは、オブジェクトobjに結合する形でスクリプトをコンパイル・実行する関数です。実行が成功したとき、rvalにスクリプトの最終行の実行結果の値へのポインタが格納されています。この関数のUnicode版として、JS_EvaluateUCScriptが用意されています。

srcはスクリプト文字列、lengthはその文字列の長さをそれぞれ引数として取ります。

filenameはスクリプトの位置を示すファイル名またはURLを引数として取ります。ここで指定した情報は、コンパイルエラーが発生したときのエラーメッセージに利用されます。linenoも同様にエラーメッセージとして出力される行番号として利用されます。

スクリプトのコンパイルと実行が成功したとき、JS_EvaluateScriptおよびJS_EvaluateUCScriptJS_TRUEを、失敗したときはJS_FALSEをそれぞれ返します。コンパイル・実行に失敗したとき、*rvalの値は未定義とみなす必要があります。

[編集] 関連項目

LXR で JS_EvaluateScript を ID 検索
LXR で JS_EvaluateUCScript を ID 検索

JS_CompileFile, JS_CompileScript, JS_DecompileScript, JS_DestroyScript, JS_EvaluateScriptForPrincipals, JS_ExecuteScript