GlobalObject::DebuggerVector * GlobalObject::getOrCreateDebuggers(JSContext *cx) { assertSameCompartment(cx, this); DebuggerVector *debuggers = getDebuggers(); if (debuggers) return debuggers; JSObject *obj = NewObjectWithGivenProto(cx, &GlobalDebuggees_class, NULL, this); if (!obj) return NULL; debuggers = cx->new_<DebuggerVector>(); if (!debuggers) return NULL; obj->setPrivate(debuggers); setReservedSlot(DEBUGGERS, ObjectValue(*obj)); return debuggers; }
void SavedFrame::initFromLookup(Lookup &lookup) { JS_ASSERT(lookup.source); JS_ASSERT(getReservedSlot(JSSLOT_SOURCE).isUndefined()); setReservedSlot(JSSLOT_SOURCE, StringValue(lookup.source)); setReservedSlot(JSSLOT_LINE, NumberValue(lookup.line)); setReservedSlot(JSSLOT_COLUMN, NumberValue(lookup.column)); setReservedSlot(JSSLOT_FUNCTIONDISPLAYNAME, lookup.functionDisplayName ? StringValue(lookup.functionDisplayName) : NullValue()); setReservedSlot(JSSLOT_PARENT, ObjectOrNullValue(lookup.parent)); setReservedSlot(JSSLOT_PRIVATE_PARENT, PrivateValue(lookup.parent)); JS_ASSERT(getReservedSlot(JSSLOT_PRINCIPALS).isUndefined()); if (lookup.principals) JS_HoldPrincipals(lookup.principals); setReservedSlot(JSSLOT_PRINCIPALS, PrivateValue(lookup.principals)); }
void SavedFrame::updatePrivateParent() { setReservedSlot(JSSLOT_PRIVATE_PARENT, PrivateValue(getParent())); }