Compile a security-enabled script for execution.
JSScript * JS_CompileScriptForPrincipals(JSContext *cx, JSObject *obj, JSPrincipals *principals, const char *src, size_t length, const char *filename, uintN lineno); JSScript * JS_CompileUCScriptForPrincipals(JSContext *cx, JSObject *obj, JSPrincipals *principals, const jschar *src, size_t length, const char *filename, uintN lineno);
||The context in which to compile the script.
Requires request. In a
||Object with which the script is associated.|
||Pointer to the structure holding the security information for this script.|
||String containing the script to compile.|
||The length of
||Name of file or URL containing the function. Used to report filename or URL in error messages.|
||Line number. Used to report the offending line in the file or URL if an error occurs.|
JS_CompileScriptForPrincipals compiles a security-enabled script,
src, for execution.
JS_CompileUCScriptForPrincipals is the Unicode version of the function. The script is associated with a JS object.
principals is a pointer to the
JSPrincipals structure that contains the security information to associate with this script.
src is the string containing the text of the script.
length indicates the length of the script, in characters.
filename is the name of the file (or URL) containing the script. This information is included in error messages if an error occurs during compilation. Similarly,
lineno is used to report the line number of the script or file where an error occurred during compilation.
JS_CompileUCScriptForPrincipals return a pointer to the compiled script. On error or exception, they return
The application is responsible for ensuring that the new compiled script is cleaned up later—either by
directly or by calling
in which case the garbage collector cleans up the script.
Warning: This API is subject to bug 438633, which can cause crashes in almost any program that uses
JS_DestroyScript(). The workaround is to use
JS_NewScriptObject() to root each newly-compiled script, as described in the JSAPI User Guide under Compiled scripts.