This article covers features introduced in SpiderMonkey 17
Create a JavaScript function from a text string.
Syntax
bool
JS::CompileFunction(JSContext *cx, JS::AutoObjectVector &scopeChain,
                    const JS::ReadOnlyCompileOptions &options,
                    const char *name, unsigned nargs, const char *const *argnames,
                    const char16_t *chars, size_t length, JS::MutableHandleFunction fun);
bool
JS::CompileFunction(JSContext *cx, JS::AutoObjectVector &scopeChain,
                    const JS::ReadOnlyCompileOptions &options,
                    const char *name, unsigned nargs, const char *const *argnames,
                    JS::SourceBufferHolder &srcBuf, JS::MutableHandleFunction fun);
bool
JS::CompileFunction(JSContext *cx, JS::AutoObjectVector &scopeChain,
                    const JS::ReadOnlyCompileOptions &options,
                    const char *name, unsigned nargs, const char *const *argnames,
                    const char *bytes, size_t length, JS::MutableHandleFunction fun);
| Name | Type | Description | 
|---|---|---|
| cx | JSContext * | The context in which to compile the function. Requires request. In a JS_THREADSAFEbuild, the caller must be in a request on thisJSContext. | 
| scopeChain | JS::AutoObjectVector & | The scope in which to compile the function. | 
| options | JS::ReadOnlyCompileOptions & | Compile options. | 
| name | const char * | Name to assign the newly compiled function. | 
| nargs | unsigned | Number of arguments to pass to the function. | 
| argnames | const char *const * | Names to assign to the arguments passed to the function. | 
| chars | const char16_t * | String containing the body of the function to compile. | 
| bytes | const char * | String containing the body of the function to compile. | 
| length | size_t | The length, in characters, of body. | 
| srcBuf | JS::SourceBufferHolder & | Source buffer containing the script function compile. | 
| fun | JS::MutableHandleFunction | Out parameter. On success, funreceives the result function. | 
Description
JS::CompileFunction compiles a function from a text string chars, bytes, or srcBuf.
name is the name to assign to the newly created function. nargs is the number of arguments the function takes, and argnames is a pointer to the first element of an array of names to assign each argument. The number of argument names should match the number of arguments specified in nargs.
chars, bytes, or srcBuf is a string containing the source code of the function. length is the length of the source code in characters.
On success, JS::CompileFunction stores an function object representing the newly compiled function into fun and and returns true. Otherwise, it returns false and the value left in fun is undefined.
See Also
- The JSAPI User Guide contains example code using compiled scripts.
- MXR ID Search for JS::CompileFunction
- JS::Evaluate
- JS::Compile
- JS::CompileOffThread
- JS_ExecuteScript
- JS_DecompileScript
- bug 771705