JS_ExecuteScript 编辑
Execute a compiled script.
Syntax
bool
JS_ExecuteScript(JSContext *cx, JS::HandleScript script,
JS::MutableHandleValue rval); // Added in SpiderMonkey 45
bool
JS_ExecuteScript(JSContext *cx, JS::HandleScript script); // Added in SpiderMonkey 45
bool
JS_ExecuteScript(JSContext *cx, JS::AutoObjectVector &scopeChain,
JS::HandleScript script, JS::MutableHandleValue rval); // Added in SpiderMonkey 36
bool
JS_ExecuteScript(JSContext *cx, JS::AutoObjectVector &scopeChain,
JS::HandleScript script); // Added in SpiderMonkey 36
bool
JS_ExecuteScript(JSContext *cx, JS::HandleObject obj, JS::HandleScript script,
JS::MutableHandleValue rval); // Obsolete since JSAPI 39
bool
JS_ExecuteScript(JSContext *cx, JS::HandleObject obj, JS::HandleScript script); // Obsolete since JSAPI 39
bool
JS::CloneAndExecuteScript(JSContext *cx, JS::Handle<JSScript*> script); // Added in SpiderMonkey 45
bool
JS::CloneAndExecuteScript(JSContext *cx, JS::Handle<JSObject*> obj,
JS::Handle<JSScript*> script); // Added in SpiderMonkey 31, obsoleted since JSAPI 39
Name | Type | Description |
---|---|---|
cx | JSContext * | The context in which to execute the script. Requires request. In a JS_THREADSAFE build, the caller must be in a request on this JSContext . |
obj | JS::HandleObject | The scope in which to execute the script. In the simplest cases, this should just be the embedding's global object. Obsolete since JSAPI 39
In ECMAScript terms, the script is executed in a new execution context, but that context is not initialized quite as described in any of the three cases in ECMA 262-3 §10.2. Instead:
|
scopeChain | JS::AutoObjectVector & | An explicit scope chain. scopeChain must not include the global object on it; that's implicit. It needs to contain the other objects that should end up on the scripts's scope chain. Objects in the vector should be ordered from inner to the outer scope. |
script | JS::HandleScript | The compiled script to execute. |
rval | JS::MutableHandleValue | Out parameter. On success, rval receives the value from the last executed expression statement processed in the script. |
Description
JS_ExecuteScript
executes a previously-compiled script, script
.
JS::CloneAndExecuteScript
handles a cross-compartment script. If the script is cross-compartment, it is cloned into the current compartment before executing.
If the script executes successfully, rval
receives the value from the last executed expression statement processed in the script, and JS_ExecuteScript
returns true
. Otherwise it returns false
, and the value left in rval
is unspecified.
The JSAPI User Guide contains example code using compiled scripts.
To execute a script that has not been compiled, use JS::Evaluate
instead.
See Also
- MXR ID Search for
JS_ExecuteScript
- MXR ID Search for
JS::CloneAndExecuteScript
JS::Compile
JS::Evaluate
- bug 993438
- bug 1145294 -- removed
obj
fromJS::CloneAndExecuteScript
. - bug 1097987 -- removed
obj
fromJS_ExecuteScript
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论