Bug 1271653 - DebuggerObject.getPrototypeOf should return a DebuggerObject;r=fitzgen

This commit is contained in:
Eddy Bruel 2016-06-21 11:27:37 +02:00
Родитель 4fa8fd2f03
Коммит 1dd3db254b
2 изменённых файлов: 13 добавлений и 5 удалений

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

@ -7906,7 +7906,7 @@ DebuggerObject::protoGetter(JSContext* cx, unsigned argc, Value* vp)
{
THIS_DEBUGOBJECT(cx, argc, vp, "get proto", args, object)
RootedObject result(cx);
Rooted<DebuggerObject*> result(cx);
if (!DebuggerObject::getPrototypeOf(cx, object, &result))
return false;
@ -9102,7 +9102,7 @@ DebuggerObject::isFrozen(JSContext* cx, Handle<DebuggerObject*> object, bool& re
/* static */ bool
DebuggerObject::getPrototypeOf(JSContext* cx, Handle<DebuggerObject*> object,
MutableHandleObject result)
MutableHandle<DebuggerObject*> result)
{
RootedObject referent(cx, object->referent());
Debugger* dbg = object->owner();
@ -9114,8 +9114,16 @@ DebuggerObject::getPrototypeOf(JSContext* cx, Handle<DebuggerObject*> object,
return false;
}
result.set(proto);
return !result || dbg->wrapDebuggeeObject(cx, result);
if (!proto) {
result.set(nullptr);
return true;
}
if (!dbg->wrapDebuggeeObject(cx, &proto))
return false;
result.set(&proto->as<DebuggerObject>());
return true;
}
/* static */ bool

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

@ -1095,7 +1095,7 @@ class DebuggerObject : public NativeObject
static MOZ_MUST_USE bool isSealed(JSContext* cx, Handle<DebuggerObject*> object, bool& result);
static MOZ_MUST_USE bool isFrozen(JSContext* cx, Handle<DebuggerObject*> object, bool& result);
static MOZ_MUST_USE bool getPrototypeOf(JSContext* cx, Handle<DebuggerObject*> object,
MutableHandleObject result);
MutableHandle<DebuggerObject*> result);
static MOZ_MUST_USE bool getOwnPropertyNames(JSContext* cx, Handle<DebuggerObject*> object,
MutableHandle<IdVector> result);
static MOZ_MUST_USE bool getOwnPropertySymbols(JSContext* cx, Handle<DebuggerObject*> object,