зеркало из https://github.com/mozilla/gecko-dev.git
Bug 1359653: Part 2 - Allow CloneAndExecuteScript with non-lexical scripts. r=shu
MozReview-Commit-ID: Hq3rvgjwH3f --HG-- extra : source : 3f94cd9d95b99436ea5f77aee5d220092b6b32d6
This commit is contained in:
Родитель
81232b555a
Коммит
16393582a7
|
@ -4590,6 +4590,23 @@ JS::CloneAndExecuteScript(JSContext* cx, HandleScript scriptArg,
|
|||
return ExecuteScript(cx, globalLexical, script, rval.address());
|
||||
}
|
||||
|
||||
JS_PUBLIC_API(bool)
|
||||
JS::CloneAndExecuteScript(JSContext* cx, JS::AutoObjectVector& envChain,
|
||||
HandleScript scriptArg,
|
||||
JS::MutableHandleValue rval)
|
||||
{
|
||||
CHECK_REQUEST(cx);
|
||||
RootedScript script(cx, scriptArg);
|
||||
if (script->compartment() != cx->compartment()) {
|
||||
script = CloneGlobalScript(cx, ScopeKind::NonSyntactic, script);
|
||||
if (!script)
|
||||
return false;
|
||||
|
||||
js::Debugger::onNewScript(cx, script);
|
||||
}
|
||||
return ExecuteScript(cx, envChain, script, rval.address());
|
||||
}
|
||||
|
||||
static const unsigned LARGE_SCRIPT_LENGTH = 500*1024;
|
||||
|
||||
static bool
|
||||
|
|
|
@ -4383,6 +4383,15 @@ extern JS_PUBLIC_API(bool)
|
|||
CloneAndExecuteScript(JSContext* cx, JS::Handle<JSScript*> script,
|
||||
JS::MutableHandleValue rval);
|
||||
|
||||
/**
|
||||
* Like CloneAndExecuteScript above, but allows executing under a non-syntactic
|
||||
* environment chain.
|
||||
*/
|
||||
extern JS_PUBLIC_API(bool)
|
||||
CloneAndExecuteScript(JSContext* cx, JS::AutoObjectVector& envChain,
|
||||
JS::Handle<JSScript*> script,
|
||||
JS::MutableHandleValue rval);
|
||||
|
||||
} /* namespace JS */
|
||||
|
||||
namespace JS {
|
||||
|
|
Загрузка…
Ссылка в новой задаче