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:
mrbkap@gmail.com 2007-09-30 17:43:30 -07:00
Родитель 2e7790b1b2
Коммит fa3819cf58
1 изменённых файлов: 7 добавлений и 0 удалений

Просмотреть файл

@ -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: