зеркало из https://github.com/mozilla/gecko-dev.git
Backed out changeset 8ead64ff09e8 (bug 1294013)
This commit is contained in:
Родитель
82b995f603
Коммит
19389cc679
|
@ -1485,22 +1485,12 @@ GetStatusProperty(JSContext* cx, HandleObject obj, HandlePropertyName name, JSTr
|
||||||
}
|
}
|
||||||
|
|
||||||
static bool
|
static bool
|
||||||
ParseResumptionValue(JSContext* cx, HandleValue rval, JSTrapStatus* statusp, MutableHandleValue vp)
|
ParseResumptionValueAsObject(JSContext* cx, HandleValue rv, JSTrapStatus* statusp,
|
||||||
|
MutableHandleValue vp)
|
||||||
{
|
{
|
||||||
if (rval.isUndefined()) {
|
|
||||||
*statusp = JSTRAP_CONTINUE;
|
|
||||||
vp.setUndefined();
|
|
||||||
return true;
|
|
||||||
}
|
|
||||||
if (rval.isNull()) {
|
|
||||||
*statusp = JSTRAP_ERROR;
|
|
||||||
vp.setUndefined();
|
|
||||||
return true;
|
|
||||||
}
|
|
||||||
|
|
||||||
int hits = 0;
|
int hits = 0;
|
||||||
if (rval.isObject()) {
|
if (rv.isObject()) {
|
||||||
RootedObject obj(cx, &rval.toObject());
|
RootedObject obj(cx, &rv.toObject());
|
||||||
if (!GetStatusProperty(cx, obj, cx->names().return_, JSTRAP_RETURN, statusp, vp, &hits))
|
if (!GetStatusProperty(cx, obj, cx->names().return_, JSTRAP_RETURN, statusp, vp, &hits))
|
||||||
return false;
|
return false;
|
||||||
if (!GetStatusProperty(cx, obj, cx->names().throw_, JSTRAP_THROW, statusp, vp, &hits))
|
if (!GetStatusProperty(cx, obj, cx->names().throw_, JSTRAP_THROW, statusp, vp, &hits))
|
||||||
|
@ -1522,12 +1512,21 @@ Debugger::parseResumptionValueHelper(Maybe<AutoCompartment>& ac, bool ok, const
|
||||||
vp.setUndefined();
|
vp.setUndefined();
|
||||||
if (!ok)
|
if (!ok)
|
||||||
return handleUncaughtException(ac, vp, callHook, thisVForCheck, frame);
|
return handleUncaughtException(ac, vp, callHook, thisVForCheck, frame);
|
||||||
|
if (rv.isUndefined()) {
|
||||||
|
ac.reset();
|
||||||
|
return JSTRAP_CONTINUE;
|
||||||
|
}
|
||||||
|
if (rv.isNull()) {
|
||||||
|
ac.reset();
|
||||||
|
return JSTRAP_ERROR;
|
||||||
|
}
|
||||||
|
|
||||||
JSContext* cx = ac->context()->asJSContext();
|
JSContext* cx = ac->context()->asJSContext();
|
||||||
RootedValue rvRoot(cx, rv);
|
|
||||||
JSTrapStatus status = JSTRAP_CONTINUE;
|
JSTrapStatus status = JSTRAP_CONTINUE;
|
||||||
RootedValue v(cx);
|
RootedValue v(cx);
|
||||||
if (!ParseResumptionValue(cx, rvRoot, &status, &v) ||
|
RootedValue rvRoot(cx, rv);
|
||||||
|
|
||||||
|
if (!ParseResumptionValueAsObject(cx, rvRoot, &status, &v) ||
|
||||||
!unwrapDebuggeeValue(cx, &v))
|
!unwrapDebuggeeValue(cx, &v))
|
||||||
{
|
{
|
||||||
return handleUncaughtException(ac, vp, callHook, thisVForCheck, frame);
|
return handleUncaughtException(ac, vp, callHook, thisVForCheck, frame);
|
||||||
|
|
Загрузка…
Ссылка в новой задаче