MDN will be in maintenance mode on Friday September 22nd, starting at 10 AM Pacific / 5 PM UTC, for about 1 hour.


Obsolete since JSAPI 19
This feature is obsolete. Although it may still work in some browsers, its use is discouraged since it could be removed at any time. Try to avoid using it.

Compile a script, reading the source code from a stdio FILE.


JSObject *
JS_CompileUTF8FileHandle(JSContext *cx, JSObject *obj,
    const char *filename, FILE *file);

JSObject *
    JSContext *cx, JSObject *obj,
    const char *filename, FILE *file, JSPrincipals *principals);


Name Type Description
cx JSContext * The context in which to compile the script. Requires request. In a JS_THREADSAFE build, the caller must be in a request on this JSContext.
obj JSObject * Object with which the script is associated.
filename const char * Filename to associate with the compiled script. This filename is used for error messages. It should be the name of the file that contains the script, if available.
file FILE * The file handle containing the script to compile.
principals JSPrincipals * (only in JS_CompileUTF8FileHandleForPrincipals) The security principals to associate with the new script, or NULL.


JS_CompileUTF8FileHandle reads a script from a stdio file handle and compiles the script for execution by the JavaScript engine. JS_CompileUTF8FileHandleForPrincipals is a version of the function for use with SpiderMonkey's security features.

filename is the name of the file containing the script to compile. file is the file handle. JS_CompileUTF8FileHandle does not close the file handle.

If principals is non-null, it points to a JSPrincipals object that is associated with the new script and any functions it creates.

On success, JS_CompileUTF8FileHandle reads file to EOF and returns an object representing the newly compiled script. If an error occurs during compilation, JS_CompileUTF8FileHandle stops reading from the file and returns NULL.

JS_CompileUTF8FileHandle and JS_CompileUTF8FileHandleForPrincipals are deprecated, use FILE, use JS::Compile instead.

See Also

Document Tags and Contributors

 Contributors to this page: arai, fscholz, tschneidereit, Jorend
 Last updated by: arai,