зеркало из https://github.com/mozilla/pjs.git
Propagate exceptions from the evalcx context to the outer context so they can be caught. bug 353737, r+a=brendan
This commit is contained in:
Родитель
2e7790b1b2
Коммит
fa3819cf58
|
@ -2402,10 +2402,17 @@ EvalInContext(JSContext *cx, JSObject *obj, uintN argc, jsval *argv,
|
||||||
} else {
|
} else {
|
||||||
fp = JS_GetScriptedCaller(cx, NULL);
|
fp = JS_GetScriptedCaller(cx, NULL);
|
||||||
JS_SetGlobalObject(scx, sobj);
|
JS_SetGlobalObject(scx, sobj);
|
||||||
|
JS_ToggleOptions(scx, JSOPTION_DONT_REPORT_UNCAUGHT);
|
||||||
ok = JS_EvaluateUCScript(scx, sobj, src, srclen,
|
ok = JS_EvaluateUCScript(scx, sobj, src, srclen,
|
||||||
fp->script->filename,
|
fp->script->filename,
|
||||||
JS_PCToLineNumber(cx, fp->script, fp->pc),
|
JS_PCToLineNumber(cx, fp->script, fp->pc),
|
||||||
rval);
|
rval);
|
||||||
|
if (!ok) {
|
||||||
|
if (JS_GetPendingException(scx, &v))
|
||||||
|
JS_SetPendingException(cx, v);
|
||||||
|
else
|
||||||
|
JS_ReportOutOfMemory(cx);
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
out:
|
out:
|
||||||
|
|
Загрузка…
Ссылка в новой задаче