mirror of
https://github.com/mozilla/gecko-dev.git
synced 2024-12-02 01:48:05 +00:00
Bug 547140, part 4 - Remove flags argument from resolve hooks. r=Waldo.
This commit is contained in:
parent
2a9babf664
commit
4740c9dea6
@ -24,7 +24,7 @@ public:
|
||||
static bool DocumentAllGetProperty(JSContext *cx, JS::Handle<JSObject*> obj, JS::Handle<jsid> id,
|
||||
JS::MutableHandle<JS::Value> vp);
|
||||
static bool DocumentAllNewResolve(JSContext *cx, JS::Handle<JSObject*> obj, JS::Handle<jsid> id,
|
||||
unsigned flags, JS::MutableHandle<JSObject*> objp);
|
||||
JS::MutableHandle<JSObject*> objp);
|
||||
static void ReleaseDocument(JSFreeOp *fop, JSObject *obj);
|
||||
static bool CallToGetPropMapper(JSContext *cx, unsigned argc, JS::Value *vp);
|
||||
};
|
||||
@ -291,7 +291,7 @@ nsHTMLDocumentSH::DocumentAllGetProperty(JSContext *cx, JS::Handle<JSObject*> ob
|
||||
|
||||
bool
|
||||
nsHTMLDocumentSH::DocumentAllNewResolve(JSContext *cx, JS::Handle<JSObject*> obj,
|
||||
JS::Handle<jsid> id, unsigned flags,
|
||||
JS::Handle<jsid> id,
|
||||
JS::MutableHandle<JSObject*> objp)
|
||||
{
|
||||
JS::Rooted<JS::Value> v(cx);
|
||||
|
@ -1447,8 +1447,8 @@ nsDOMClassInfo::ResolveConstructor(JSContext *cx, JSObject *aObj,
|
||||
|
||||
NS_IMETHODIMP
|
||||
nsDOMClassInfo::NewResolve(nsIXPConnectWrappedNative *wrapper, JSContext *cx,
|
||||
JSObject *obj, jsid id, uint32_t flags,
|
||||
JSObject **objp, bool *_retval)
|
||||
JSObject *obj, jsid id, JSObject **objp,
|
||||
bool *_retval)
|
||||
{
|
||||
if (id == sConstructor_id) {
|
||||
return ResolveConstructor(cx, obj, objp);
|
||||
@ -3218,8 +3218,8 @@ LookupComponentsShim(JSContext *cx, JS::Handle<JSObject*> global,
|
||||
|
||||
NS_IMETHODIMP
|
||||
nsWindowSH::NewResolve(nsIXPConnectWrappedNative *wrapper, JSContext *cx,
|
||||
JSObject *obj_, jsid id_, uint32_t flags,
|
||||
JSObject **objp, bool *_retval)
|
||||
JSObject *obj_, jsid id_, JSObject **objp,
|
||||
bool *_retval)
|
||||
{
|
||||
JS::Rooted<JSObject*> obj(cx, obj_);
|
||||
JS::Rooted<jsid> id(cx, id_);
|
||||
@ -3373,8 +3373,7 @@ nsWindowSH::NewResolve(nsIXPConnectWrappedNative *wrapper, JSContext *cx,
|
||||
return NS_OK;
|
||||
}
|
||||
|
||||
return nsDOMGenericSH::NewResolve(wrapper, cx, obj, id, flags, objp,
|
||||
_retval);
|
||||
return nsDOMGenericSH::NewResolve(wrapper, cx, obj, id, objp, _retval);
|
||||
}
|
||||
|
||||
NS_IMETHODIMP
|
||||
@ -3503,8 +3502,8 @@ nsEventTargetSH::PreserveWrapper(nsISupports *aNative)
|
||||
|
||||
NS_IMETHODIMP
|
||||
nsGenericArraySH::NewResolve(nsIXPConnectWrappedNative *wrapper, JSContext *cx,
|
||||
JSObject *aObj, jsid aId, uint32_t flags,
|
||||
JSObject **objp, bool *_retval)
|
||||
JSObject *aObj, jsid aId, JSObject **objp,
|
||||
bool *_retval)
|
||||
{
|
||||
JS::Rooted<JSObject*> obj(cx, aObj);
|
||||
JS::Rooted<jsid> id(cx, aId);
|
||||
@ -3670,8 +3669,8 @@ nsCSSRuleListSH::GetItemAt(nsISupports *aNative, uint32_t aIndex,
|
||||
|
||||
NS_IMETHODIMP
|
||||
nsStorage2SH::NewResolve(nsIXPConnectWrappedNative *wrapper, JSContext *cx,
|
||||
JSObject *obj, jsid aId, uint32_t flags,
|
||||
JSObject **objp, bool *_retval)
|
||||
JSObject *obj, jsid aId, JSObject **objp,
|
||||
bool *_retval)
|
||||
{
|
||||
JS::Rooted<jsid> id(cx, aId);
|
||||
if (ObjectIsNativeWrapper(cx, obj)) {
|
||||
@ -3917,8 +3916,8 @@ nsDOMConstructorSH::PreCreate(nsISupports *nativeObj, JSContext *cx,
|
||||
|
||||
NS_IMETHODIMP
|
||||
nsDOMConstructorSH::NewResolve(nsIXPConnectWrappedNative *wrapper, JSContext *cx,
|
||||
JSObject *aObj, jsid aId, uint32_t flags,
|
||||
JSObject **objp, bool *_retval)
|
||||
JSObject *aObj, jsid aId, JSObject **objp,
|
||||
bool *_retval)
|
||||
{
|
||||
JS::Rooted<JSObject*> obj(cx, aObj);
|
||||
JS::Rooted<jsid> id(cx, aId);
|
||||
|
@ -269,8 +269,8 @@ public:
|
||||
NS_IMETHOD Enumerate(nsIXPConnectWrappedNative *wrapper, JSContext *cx,
|
||||
JSObject *obj, bool *_retval) MOZ_OVERRIDE;
|
||||
NS_IMETHOD NewResolve(nsIXPConnectWrappedNative *wrapper, JSContext *cx,
|
||||
JSObject *obj, jsid id, uint32_t flags,
|
||||
JSObject **objp, bool *_retval) MOZ_OVERRIDE;
|
||||
JSObject *obj, jsid id, JSObject **objp,
|
||||
bool *_retval) MOZ_OVERRIDE;
|
||||
NS_IMETHOD OuterObject(nsIXPConnectWrappedNative *wrapper, JSContext * cx,
|
||||
JSObject * obj, JSObject * *_retval) MOZ_OVERRIDE;
|
||||
|
||||
@ -325,8 +325,8 @@ protected:
|
||||
|
||||
public:
|
||||
NS_IMETHOD NewResolve(nsIXPConnectWrappedNative *wrapper, JSContext *cx,
|
||||
JSObject *obj, jsid id, uint32_t flags,
|
||||
JSObject **objp, bool *_retval) MOZ_OVERRIDE;
|
||||
JSObject *obj, jsid id, JSObject **objp,
|
||||
bool *_retval) MOZ_OVERRIDE;
|
||||
NS_IMETHOD Enumerate(nsIXPConnectWrappedNative *wrapper, JSContext *cx,
|
||||
JSObject *obj, bool *_retval) MOZ_OVERRIDE;
|
||||
|
||||
@ -405,8 +405,8 @@ protected:
|
||||
}
|
||||
|
||||
NS_IMETHOD NewResolve(nsIXPConnectWrappedNative *wrapper, JSContext *cx,
|
||||
JSObject *obj, jsid id, uint32_t flags,
|
||||
JSObject **objp, bool *_retval) MOZ_OVERRIDE;
|
||||
JSObject *obj, jsid id, JSObject **objp,
|
||||
bool *_retval) MOZ_OVERRIDE;
|
||||
NS_IMETHOD SetProperty(nsIXPConnectWrappedNative *wrapper, JSContext *cx,
|
||||
JSObject *obj, jsid id, JS::Value *vp, bool *_retval) MOZ_OVERRIDE;
|
||||
NS_IMETHOD GetProperty(nsIXPConnectWrappedNative *wrapper, JSContext *cx,
|
||||
@ -464,8 +464,8 @@ public:
|
||||
return NS_OK;
|
||||
}
|
||||
NS_IMETHOD NewResolve(nsIXPConnectWrappedNative *wrapper, JSContext *cx,
|
||||
JSObject *obj, jsid id, uint32_t flags,
|
||||
JSObject **objp, bool *_retval) MOZ_OVERRIDE;
|
||||
JSObject *obj, jsid id, JSObject **objp,
|
||||
bool *_retval) MOZ_OVERRIDE;
|
||||
NS_IMETHOD Call(nsIXPConnectWrappedNative *wrapper, JSContext *cx,
|
||||
JSObject *obj, const JS::CallArgs &args, bool *_retval) MOZ_OVERRIDE;
|
||||
|
||||
|
@ -950,7 +950,7 @@ XrayResolveNativeProperty(JSContext* cx, JS::Handle<JSObject*> wrapper,
|
||||
bool
|
||||
XrayResolveOwnProperty(JSContext* cx, JS::Handle<JSObject*> wrapper,
|
||||
JS::Handle<JSObject*> obj, JS::Handle<jsid> id,
|
||||
JS::MutableHandle<JSPropertyDescriptor> desc, unsigned flags)
|
||||
JS::MutableHandle<JSPropertyDescriptor> desc)
|
||||
{
|
||||
DOMObjectType type;
|
||||
const NativePropertyHooks *nativePropertyHooks =
|
||||
@ -982,7 +982,7 @@ XrayResolveOwnProperty(JSContext* cx, JS::Handle<JSObject*> wrapper,
|
||||
}
|
||||
|
||||
return !nativePropertyHooks->mResolveOwnProperty ||
|
||||
nativePropertyHooks->mResolveOwnProperty(cx, wrapper, obj, id, desc, flags);
|
||||
nativePropertyHooks->mResolveOwnProperty(cx, wrapper, obj, id, desc);
|
||||
}
|
||||
|
||||
static bool
|
||||
@ -2194,8 +2194,7 @@ FinalizeGlobal(JSFreeOp* aFreeOp, JSObject* aObj)
|
||||
|
||||
bool
|
||||
ResolveGlobal(JSContext* aCx, JS::Handle<JSObject*> aObj,
|
||||
JS::Handle<jsid> aId, unsigned aFlags,
|
||||
JS::MutableHandle<JSObject*> aObjp)
|
||||
JS::Handle<jsid> aId, JS::MutableHandle<JSObject*> aObjp)
|
||||
{
|
||||
bool resolved;
|
||||
if (!JS_ResolveStandardClass(aCx, aObj, aId, &resolved)) {
|
||||
|
@ -2070,7 +2070,7 @@ bool
|
||||
XrayResolveOwnProperty(JSContext* cx, JS::Handle<JSObject*> wrapper,
|
||||
JS::Handle<JSObject*> obj,
|
||||
JS::Handle<jsid> id,
|
||||
JS::MutableHandle<JSPropertyDescriptor> desc, unsigned flags);
|
||||
JS::MutableHandle<JSPropertyDescriptor> desc);
|
||||
|
||||
/**
|
||||
* This resolves operations, attributes and constants of the interfaces for obj.
|
||||
@ -2548,8 +2548,7 @@ FinalizeGlobal(JSFreeOp* aFop, JSObject* aObj);
|
||||
|
||||
bool
|
||||
ResolveGlobal(JSContext* aCx, JS::Handle<JSObject*> aObj,
|
||||
JS::Handle<jsid> aId, unsigned aFlags,
|
||||
JS::MutableHandle<JSObject*> aObjp);
|
||||
JS::Handle<jsid> aId, JS::MutableHandle<JSObject*> aObjp);
|
||||
|
||||
bool
|
||||
EnumerateGlobal(JSContext* aCx, JS::Handle<JSObject*> aObj);
|
||||
|
@ -6763,7 +6763,6 @@ class CGNewResolveHook(CGAbstractBindingMethod):
|
||||
args = [Argument('JSContext*', 'cx'),
|
||||
Argument('JS::Handle<JSObject*>', 'obj'),
|
||||
Argument('JS::Handle<jsid>', 'id'),
|
||||
Argument('unsigned', 'flags'),
|
||||
Argument('JS::MutableHandle<JSObject*>', 'objp')]
|
||||
# Our "self" is actually the "obj" argument in this case, not the thisval.
|
||||
CGAbstractBindingMethod.__init__(
|
||||
@ -6796,7 +6795,7 @@ class CGNewResolveHook(CGAbstractBindingMethod):
|
||||
if self.descriptor.interface.getExtendedAttribute("Global"):
|
||||
# Resolve standard classes
|
||||
prefix = indent(dedent("""
|
||||
if (!ResolveGlobal(cx, obj, id, flags, objp)) {
|
||||
if (!ResolveGlobal(cx, obj, id, objp)) {
|
||||
return false;
|
||||
}
|
||||
if (objp) {
|
||||
@ -8640,7 +8639,6 @@ class CGResolveOwnProperty(CGAbstractStaticMethod):
|
||||
Argument('JS::Handle<JSObject*>', 'obj'),
|
||||
Argument('JS::Handle<jsid>', 'id'),
|
||||
Argument('JS::MutableHandle<JSPropertyDescriptor>', 'desc'),
|
||||
Argument('unsigned', 'flags'),
|
||||
]
|
||||
CGAbstractStaticMethod.__init__(self, descriptor, "ResolveOwnProperty",
|
||||
"bool", args)
|
||||
@ -8660,8 +8658,7 @@ class CGResolveOwnPropertyViaNewresolve(CGAbstractBindingMethod):
|
||||
Argument('JS::Handle<JSObject*>', 'wrapper'),
|
||||
Argument('JS::Handle<JSObject*>', 'obj'),
|
||||
Argument('JS::Handle<jsid>', 'id'),
|
||||
Argument('JS::MutableHandle<JSPropertyDescriptor>', 'desc'),
|
||||
Argument('unsigned', 'flags')]
|
||||
Argument('JS::MutableHandle<JSPropertyDescriptor>', 'desc')]
|
||||
CGAbstractBindingMethod.__init__(self, descriptor,
|
||||
"ResolveOwnPropertyViaNewresolve",
|
||||
args, getThisObj="",
|
||||
|
@ -31,7 +31,7 @@ namespace dom {
|
||||
typedef bool
|
||||
(* ResolveOwnProperty)(JSContext* cx, JS::Handle<JSObject*> wrapper,
|
||||
JS::Handle<JSObject*> obj, JS::Handle<jsid> id,
|
||||
JS::MutableHandle<JSPropertyDescriptor> desc, unsigned flags);
|
||||
JS::MutableHandle<JSPropertyDescriptor> desc);
|
||||
|
||||
typedef bool
|
||||
(* EnumerateOwnProperties)(JSContext* cx, JS::Handle<JSObject*> wrapper,
|
||||
|
@ -145,7 +145,7 @@ NPObjWrapper_newEnumerate(JSContext *cx, JS::Handle<JSObject*> obj, JSIterateOp
|
||||
JS::Value *statep, jsid *idp);
|
||||
|
||||
static bool
|
||||
NPObjWrapper_NewResolve(JSContext *cx, JS::Handle<JSObject*> obj, JS::Handle<jsid> id, unsigned flags,
|
||||
NPObjWrapper_NewResolve(JSContext *cx, JS::Handle<JSObject*> obj, JS::Handle<jsid> id,
|
||||
JS::MutableHandle<JSObject*> objp);
|
||||
|
||||
static bool
|
||||
@ -1522,7 +1522,7 @@ NPObjWrapper_newEnumerate(JSContext *cx, JS::Handle<JSObject*> obj, JSIterateOp
|
||||
}
|
||||
|
||||
static bool
|
||||
NPObjWrapper_NewResolve(JSContext *cx, JS::Handle<JSObject*> obj, JS::Handle<jsid> id, unsigned flags,
|
||||
NPObjWrapper_NewResolve(JSContext *cx, JS::Handle<JSObject*> obj, JS::Handle<jsid> id,
|
||||
JS::MutableHandle<JSObject*> objp)
|
||||
{
|
||||
NPObject *npobj = GetNPObject(cx, obj);
|
||||
|
@ -1062,7 +1062,7 @@ BEGIN_WORKERS_NAMESPACE
|
||||
// Entry point for main thread non-window globals.
|
||||
bool
|
||||
ResolveWorkerClasses(JSContext* aCx, JS::Handle<JSObject*> aObj, JS::Handle<jsid> aId,
|
||||
unsigned aFlags, JS::MutableHandle<JSObject*> aObjp)
|
||||
JS::MutableHandle<JSObject*> aObjp)
|
||||
{
|
||||
AssertIsOnMainThread();
|
||||
MOZ_ASSERT(nsContentUtils::IsCallerChrome());
|
||||
|
@ -172,7 +172,7 @@ enum WorkerPreference
|
||||
// All of these are implemented in RuntimeService.cpp
|
||||
bool
|
||||
ResolveWorkerClasses(JSContext* aCx, JS::Handle<JSObject*> aObj, JS::Handle<jsid> aId,
|
||||
unsigned aFlags, JS::MutableHandle<JSObject*> aObjp);
|
||||
JS::MutableHandle<JSObject*> aObjp);
|
||||
|
||||
void
|
||||
CancelWorkersForWindow(nsPIDOMWindow* aWindow);
|
||||
|
@ -886,7 +886,7 @@ GetOrCreateClassObjectMap(JSContext *cx, JS::Handle<JSObject*> scope, const char
|
||||
|
||||
// First, see if the map is already defined.
|
||||
JS::Rooted<JSPropertyDescriptor> desc(cx);
|
||||
if (!JS_GetOwnPropertyDescriptor(cx, scope, mapName, 0, &desc)) {
|
||||
if (!JS_GetOwnPropertyDescriptor(cx, scope, mapName, &desc)) {
|
||||
return nullptr;
|
||||
}
|
||||
if (desc.object() && desc.value().isObject() &&
|
||||
@ -1008,7 +1008,7 @@ nsXBLBinding::DoInitJSClass(JSContext *cx,
|
||||
// to create and define it.
|
||||
JS::Rooted<JSObject*> proto(cx);
|
||||
JS::Rooted<JSPropertyDescriptor> desc(cx);
|
||||
if (!JS_GetOwnPropertyDescriptor(cx, holder, aClassName.get(), 0, &desc)) {
|
||||
if (!JS_GetOwnPropertyDescriptor(cx, holder, aClassName.get(), &desc)) {
|
||||
return NS_ERROR_OUT_OF_MEMORY;
|
||||
}
|
||||
*aNew = !desc.object();
|
||||
|
@ -127,16 +127,15 @@ typedef bool
|
||||
typedef bool
|
||||
(* JSResolveOp)(JSContext *cx, JS::HandleObject obj, JS::HandleId id);
|
||||
|
||||
// Like JSResolveOp, except with a useless flags argument, always 0. Also:
|
||||
//
|
||||
// The *objp out parameter, on success, should be null to indicate that id
|
||||
// was not resolved; and non-null, referring to obj or one of its prototypes,
|
||||
// if id was resolved. The hook may assume *objp is null on entry.
|
||||
// Like JSResolveOp, except the *objp out parameter, on success, should be null
|
||||
// to indicate that id was not resolved; and non-null, referring to obj or one
|
||||
// of its prototypes, if id was resolved. The hook may assume *objp is null on
|
||||
// entry.
|
||||
//
|
||||
// This hook instead of JSResolveOp is called via the JSClass.resolve member
|
||||
// if JSCLASS_NEW_RESOLVE is set in JSClass.flags.
|
||||
typedef bool
|
||||
(* JSNewResolveOp)(JSContext *cx, JS::HandleObject obj, JS::HandleId id, unsigned flags,
|
||||
(* JSNewResolveOp)(JSContext *cx, JS::HandleObject obj, JS::HandleId id,
|
||||
JS::MutableHandleObject objp);
|
||||
|
||||
// Convert obj to the given type, returning true with the resulting value in
|
||||
|
@ -50,7 +50,7 @@ static const JSClass DocumentAllClass = {
|
||||
};
|
||||
|
||||
bool
|
||||
document_resolve(JSContext *cx, JS::HandleObject obj, JS::HandleId id, unsigned flags,
|
||||
document_resolve(JSContext *cx, JS::HandleObject obj, JS::HandleId id,
|
||||
JS::MutableHandleObject objp)
|
||||
{
|
||||
// If id is "all", resolve document.all=true.
|
||||
|
@ -79,7 +79,7 @@ struct AutoIncrCounters {
|
||||
};
|
||||
|
||||
bool
|
||||
doResolve(JS::HandleObject obj, JS::HandleId id, unsigned flags, JS::MutableHandleObject objp)
|
||||
doResolve(JS::HandleObject obj, JS::HandleId id, JS::MutableHandleObject objp)
|
||||
{
|
||||
CHECK_EQUAL(resolveExitCount, 0);
|
||||
AutoIncrCounters incr(this);
|
||||
@ -137,11 +137,10 @@ doResolve(JS::HandleObject obj, JS::HandleId id, unsigned flags, JS::MutableHand
|
||||
}
|
||||
|
||||
static bool
|
||||
my_resolve(JSContext *cx, JS::HandleObject obj, JS::HandleId id, unsigned flags,
|
||||
JS::MutableHandleObject objp)
|
||||
my_resolve(JSContext *cx, JS::HandleObject obj, JS::HandleId id, JS::MutableHandleObject objp)
|
||||
{
|
||||
return static_cast<cls_testResolveRecursion *>(JS_GetPrivate(obj))->
|
||||
doResolve(obj, id, flags, objp);
|
||||
doResolve(obj, id, objp);
|
||||
}
|
||||
|
||||
END_TEST(testResolveRecursion)
|
||||
|
@ -1812,8 +1812,7 @@ JS_InitStandardClasses(JSContext *cx, JS::Handle<JSObject*> obj);
|
||||
* loops any classes not yet resolved lazily.
|
||||
*/
|
||||
extern JS_PUBLIC_API(bool)
|
||||
JS_ResolveStandardClass(JSContext *cx, JS::HandleObject obj, JS::HandleId id,
|
||||
bool *resolved);
|
||||
JS_ResolveStandardClass(JSContext *cx, JS::HandleObject obj, JS::HandleId id, bool *resolved);
|
||||
|
||||
extern JS_PUBLIC_API(bool)
|
||||
JS_EnumerateStandardClasses(JSContext *cx, JS::HandleObject obj);
|
||||
|
@ -265,8 +265,7 @@ js::FunctionHasResolveHook(const JSAtomState &atomState, PropertyName *name)
|
||||
}
|
||||
|
||||
bool
|
||||
js::fun_resolve(JSContext *cx, HandleObject obj, HandleId id, unsigned flags,
|
||||
MutableHandleObject objp)
|
||||
js::fun_resolve(JSContext *cx, HandleObject obj, HandleId id, MutableHandleObject objp)
|
||||
{
|
||||
if (!JSID_IS_ATOM(id))
|
||||
return true;
|
||||
|
@ -528,8 +528,7 @@ bool
|
||||
FunctionHasResolveHook(const JSAtomState &atomState, PropertyName *name);
|
||||
|
||||
extern bool
|
||||
fun_resolve(JSContext *cx, HandleObject obj, HandleId id,
|
||||
unsigned flags, MutableHandleObject objp);
|
||||
fun_resolve(JSContext *cx, HandleObject obj, HandleId id, MutableHandleObject objp);
|
||||
|
||||
// ES6 9.2.5 IsConstructor
|
||||
bool IsConstructor(const Value &v);
|
||||
|
@ -1656,16 +1656,6 @@ Detecting(JSContext *cx, JSScript *script, jsbytecode *pc)
|
||||
return false;
|
||||
}
|
||||
|
||||
/*
|
||||
* Infer lookup flags from the currently executing bytecode, returning
|
||||
* defaultFlags if a currently executing bytecode cannot be determined.
|
||||
*/
|
||||
unsigned
|
||||
js_InferFlags(JSContext *cx, unsigned defaultFlags)
|
||||
{
|
||||
return 0;
|
||||
}
|
||||
|
||||
/* static */ bool
|
||||
JSObject::nonNativeSetProperty(JSContext *cx, HandleObject obj,
|
||||
HandleId id, MutableHandleValue vp, bool strict)
|
||||
@ -3878,8 +3868,8 @@ js::DefineNativeProperty(ExclusiveContext *cx, HandleObject obj, HandleId id, Ha
|
||||
* *recursedp = false and return true.
|
||||
*/
|
||||
static MOZ_ALWAYS_INLINE bool
|
||||
CallResolveOp(JSContext *cx, HandleObject obj, HandleId id, unsigned flags,
|
||||
MutableHandleObject objp, MutableHandleShape propp, bool *recursedp)
|
||||
CallResolveOp(JSContext *cx, HandleObject obj, HandleId id, MutableHandleObject objp,
|
||||
MutableHandleShape propp, bool *recursedp)
|
||||
{
|
||||
const Class *clasp = obj->getClass();
|
||||
JSResolveOp resolve = clasp->resolve;
|
||||
@ -3904,11 +3894,8 @@ CallResolveOp(JSContext *cx, HandleObject obj, HandleId id, unsigned flags,
|
||||
|
||||
if (clasp->flags & JSCLASS_NEW_RESOLVE) {
|
||||
JSNewResolveOp newresolve = reinterpret_cast<JSNewResolveOp>(resolve);
|
||||
if (flags == RESOLVE_INFER)
|
||||
flags = js_InferFlags(cx, 0);
|
||||
|
||||
RootedObject obj2(cx, nullptr);
|
||||
if (!newresolve(cx, obj, id, flags, &obj2))
|
||||
if (!newresolve(cx, obj, id, &obj2))
|
||||
return false;
|
||||
|
||||
/*
|
||||
@ -4001,7 +3988,6 @@ LookupOwnPropertyWithFlagsInline(ExclusiveContext *cx,
|
||||
if (!CallResolveOp(cx->asJSContext(),
|
||||
MaybeRooted<JSObject*, allowGC>::toHandle(obj),
|
||||
MaybeRooted<jsid, allowGC>::toHandle(id),
|
||||
flags,
|
||||
MaybeRooted<JSObject*, allowGC>::toMutableHandle(objp),
|
||||
MaybeRooted<Shape*, allowGC>::toMutableHandle(propp),
|
||||
&recursed))
|
||||
|
@ -1556,9 +1556,6 @@ js_GetObjectSlotName(JSTracer *trc, char *buf, size_t bufsize);
|
||||
extern bool
|
||||
js_ReportGetterOnlyAssignment(JSContext *cx, bool strict);
|
||||
|
||||
extern unsigned
|
||||
js_InferFlags(JSContext *cx, unsigned defaultFlags);
|
||||
|
||||
|
||||
namespace js {
|
||||
|
||||
|
@ -389,8 +389,7 @@ str_enumerate(JSContext *cx, HandleObject obj)
|
||||
}
|
||||
|
||||
bool
|
||||
js::str_resolve(JSContext *cx, HandleObject obj, HandleId id, unsigned flags,
|
||||
MutableHandleObject objp)
|
||||
js::str_resolve(JSContext *cx, HandleObject obj, HandleId id, MutableHandleObject objp)
|
||||
{
|
||||
if (!JSID_IS_INT(id))
|
||||
return true;
|
||||
|
@ -355,8 +355,7 @@ JSObject *
|
||||
str_split_string(JSContext *cx, HandleTypeObject type, HandleString str, HandleString sep);
|
||||
|
||||
bool
|
||||
str_resolve(JSContext *cx, HandleObject obj, HandleId id, unsigned flags,
|
||||
MutableHandleObject objp);
|
||||
str_resolve(JSContext *cx, HandleObject obj, HandleId id, MutableHandleObject objp);
|
||||
|
||||
bool
|
||||
str_replace_regexp_raw(JSContext *cx, HandleString string, HandleObject regexp,
|
||||
|
@ -2712,8 +2712,7 @@ sandbox_enumerate(JSContext *cx, HandleObject obj)
|
||||
}
|
||||
|
||||
static bool
|
||||
sandbox_resolve(JSContext *cx, HandleObject obj, HandleId id, unsigned flags,
|
||||
MutableHandleObject objp)
|
||||
sandbox_resolve(JSContext *cx, HandleObject obj, HandleId id, MutableHandleObject objp)
|
||||
{
|
||||
RootedValue v(cx);
|
||||
if (!JS_GetProperty(cx, obj, "lazy", &v))
|
||||
@ -3007,7 +3006,7 @@ ShapeOf(JSContext *cx, unsigned argc, JS::Value *vp)
|
||||
*/
|
||||
static bool
|
||||
CopyProperty(JSContext *cx, HandleObject obj, HandleObject referent, HandleId id,
|
||||
unsigned lookupFlags, MutableHandleObject objp)
|
||||
MutableHandleObject objp)
|
||||
{
|
||||
RootedShape shape(cx);
|
||||
Rooted<PropertyDescriptor> desc(cx);
|
||||
@ -3015,7 +3014,7 @@ CopyProperty(JSContext *cx, HandleObject obj, HandleObject referent, HandleId id
|
||||
|
||||
objp.set(nullptr);
|
||||
if (referent->isNative()) {
|
||||
if (!LookupPropertyWithFlags(cx, referent, id, lookupFlags, &obj2, &shape))
|
||||
if (!LookupPropertyWithFlags(cx, referent, id, 0, &obj2, &shape))
|
||||
return false;
|
||||
if (obj2 != referent)
|
||||
return true;
|
||||
@ -3061,12 +3060,11 @@ CopyProperty(JSContext *cx, HandleObject obj, HandleObject referent, HandleId id
|
||||
}
|
||||
|
||||
static bool
|
||||
resolver_resolve(JSContext *cx, HandleObject obj, HandleId id, unsigned flags,
|
||||
MutableHandleObject objp)
|
||||
resolver_resolve(JSContext *cx, HandleObject obj, HandleId id, MutableHandleObject objp)
|
||||
{
|
||||
jsval v = JS_GetReservedSlot(obj, 0);
|
||||
Rooted<JSObject*> vobj(cx, &v.toObject());
|
||||
return CopyProperty(cx, obj, vobj, id, flags, objp);
|
||||
return CopyProperty(cx, obj, vobj, id, objp);
|
||||
}
|
||||
|
||||
static bool
|
||||
@ -3080,7 +3078,7 @@ resolver_enumerate(JSContext *cx, HandleObject obj)
|
||||
RootedObject ignore(cx);
|
||||
for (size_t i = 0; ok && i < ida.length(); i++) {
|
||||
Rooted<jsid> id(cx, ida[i]);
|
||||
ok = CopyProperty(cx, obj, referent, id, 0, &ignore);
|
||||
ok = CopyProperty(cx, obj, referent, id, &ignore);
|
||||
}
|
||||
return ok;
|
||||
}
|
||||
@ -5055,8 +5053,7 @@ global_enumerate(JSContext *cx, HandleObject obj)
|
||||
}
|
||||
|
||||
static bool
|
||||
global_resolve(JSContext *cx, HandleObject obj, HandleId id, unsigned flags,
|
||||
MutableHandleObject objp)
|
||||
global_resolve(JSContext *cx, HandleObject obj, HandleId id, MutableHandleObject objp)
|
||||
{
|
||||
#ifdef LAZY_STANDARD_CLASSES
|
||||
bool resolved;
|
||||
@ -5161,8 +5158,7 @@ env_enumerate(JSContext *cx, HandleObject obj)
|
||||
}
|
||||
|
||||
static bool
|
||||
env_resolve(JSContext *cx, HandleObject obj, HandleId id, unsigned flags,
|
||||
MutableHandleObject objp)
|
||||
env_resolve(JSContext *cx, HandleObject obj, HandleId id, MutableHandleObject objp)
|
||||
{
|
||||
RootedValue idvalue(cx, IdToValue(id));
|
||||
RootedString idstring(cx, ToString(cx, idvalue));
|
||||
|
@ -358,8 +358,7 @@ ArgSetter(JSContext *cx, HandleObject obj, HandleId id, bool strict, MutableHand
|
||||
}
|
||||
|
||||
static bool
|
||||
args_resolve(JSContext *cx, HandleObject obj, HandleId id, unsigned flags,
|
||||
MutableHandleObject objp)
|
||||
args_resolve(JSContext *cx, HandleObject obj, HandleId id, MutableHandleObject objp)
|
||||
{
|
||||
objp.set(nullptr);
|
||||
|
||||
@ -476,8 +475,7 @@ StrictArgSetter(JSContext *cx, HandleObject obj, HandleId id, bool strict, Mutab
|
||||
}
|
||||
|
||||
static bool
|
||||
strictargs_resolve(JSContext *cx, HandleObject obj, HandleId id, unsigned flags,
|
||||
MutableHandleObject objp)
|
||||
strictargs_resolve(JSContext *cx, HandleObject obj, HandleId id, MutableHandleObject objp)
|
||||
{
|
||||
objp.set(nullptr);
|
||||
|
||||
|
@ -119,7 +119,7 @@ interface nsIXPCScriptable : nsISupports
|
||||
|
||||
boolean newResolve(in nsIXPConnectWrappedNative wrapper,
|
||||
in JSContextPtr cx, in JSObjectPtr obj, in jsid id,
|
||||
in uint32_t flags, out JSObjectPtr objp);
|
||||
out JSObjectPtr objp);
|
||||
|
||||
boolean convert(in nsIXPConnectWrappedNative wrapper,
|
||||
in JSContextPtr cx, in JSObjectPtr obj,
|
||||
|
@ -137,7 +137,7 @@ NS_IMETHODIMP XPC_MAP_CLASSNAME::Enumerate(nsIXPConnectWrappedNative *wrapper, J
|
||||
#endif
|
||||
|
||||
#ifndef XPC_MAP_WANT_NEWRESOLVE
|
||||
NS_IMETHODIMP XPC_MAP_CLASSNAME::NewResolve(nsIXPConnectWrappedNative *wrapper, JSContext * cx, JSObject * obj, jsid id, uint32_t flags, JSObject * *objp, bool *_retval)
|
||||
NS_IMETHODIMP XPC_MAP_CLASSNAME::NewResolve(nsIXPConnectWrappedNative *wrapper, JSContext * cx, JSObject * obj, jsid id, JSObject * *objp, bool *_retval)
|
||||
{NS_ERROR("never called"); return NS_ERROR_NOT_IMPLEMENTED;}
|
||||
#endif
|
||||
|
||||
|
@ -286,12 +286,12 @@ nsXPCComponents_Interfaces::NewEnumerate(nsIXPConnectWrappedNative *wrapper,
|
||||
}
|
||||
}
|
||||
|
||||
/* bool newResolve (in nsIXPConnectWrappedNative wrapper, in JSContextPtr cx, in JSObjectPtr obj, in jsval id, in uint32_t flags, out JSObjectPtr objp); */
|
||||
/* bool newResolve (in nsIXPConnectWrappedNative wrapper, in JSContextPtr cx, in JSObjectPtr obj, in jsval id, out JSObjectPtr objp); */
|
||||
NS_IMETHODIMP
|
||||
nsXPCComponents_Interfaces::NewResolve(nsIXPConnectWrappedNative *wrapper,
|
||||
JSContext *cx, JSObject *objArg,
|
||||
jsid idArg, uint32_t flags,
|
||||
JSObject **objp, bool *_retval)
|
||||
jsid idArg, JSObject **objp,
|
||||
bool *_retval)
|
||||
{
|
||||
RootedObject obj(cx, objArg);
|
||||
RootedId id(cx, idArg);
|
||||
@ -535,12 +535,12 @@ nsXPCComponents_InterfacesByID::NewEnumerate(nsIXPConnectWrappedNative *wrapper,
|
||||
}
|
||||
}
|
||||
|
||||
/* bool newResolve (in nsIXPConnectWrappedNative wrapper, in JSContextPtr cx, in JSObjectPtr obj, in jsval id, in uint32_t flags, out JSObjectPtr objp); */
|
||||
/* bool newResolve (in nsIXPConnectWrappedNative wrapper, in JSContextPtr cx, in JSObjectPtr obj, in jsval id, out JSObjectPtr objp); */
|
||||
NS_IMETHODIMP
|
||||
nsXPCComponents_InterfacesByID::NewResolve(nsIXPConnectWrappedNative *wrapper,
|
||||
JSContext *cx, JSObject *objArg,
|
||||
jsid idArg, uint32_t flags,
|
||||
JSObject **objp, bool *_retval)
|
||||
jsid idArg, JSObject **objp,
|
||||
bool *_retval)
|
||||
{
|
||||
RootedObject obj(cx, objArg);
|
||||
RootedId id(cx, idArg);
|
||||
@ -794,12 +794,12 @@ nsXPCComponents_Classes::NewEnumerate(nsIXPConnectWrappedNative *wrapper,
|
||||
}
|
||||
}
|
||||
|
||||
/* bool newResolve (in nsIXPConnectWrappedNative wrapper, in JSContextPtr cx, in JSObjectPtr obj, in jsval id, in uint32_t flags, out JSObjectPtr objp); */
|
||||
/* bool newResolve (in nsIXPConnectWrappedNative wrapper, in JSContextPtr cx, in JSObjectPtr obj, in jsval id, out JSObjectPtr objp); */
|
||||
NS_IMETHODIMP
|
||||
nsXPCComponents_Classes::NewResolve(nsIXPConnectWrappedNative *wrapper,
|
||||
JSContext *cx, JSObject *objArg,
|
||||
jsid idArg, uint32_t flags,
|
||||
JSObject **objp, bool *_retval)
|
||||
jsid idArg, JSObject **objp,
|
||||
bool *_retval)
|
||||
|
||||
{
|
||||
RootedId id(cx, idArg);
|
||||
@ -1052,12 +1052,12 @@ IsRegisteredCLSID(const char* str)
|
||||
return registered;
|
||||
}
|
||||
|
||||
/* bool newResolve (in nsIXPConnectWrappedNative wrapper, in JSContextPtr cx, in JSObjectPtr obj, in jsval id, in uint32_t flags, out JSObjectPtr objp); */
|
||||
/* bool newResolve (in nsIXPConnectWrappedNative wrapper, in JSContextPtr cx, in JSObjectPtr obj, in jsval id, out JSObjectPtr objp); */
|
||||
NS_IMETHODIMP
|
||||
nsXPCComponents_ClassesByID::NewResolve(nsIXPConnectWrappedNative *wrapper,
|
||||
JSContext *cx, JSObject *objArg,
|
||||
jsid idArg, uint32_t flags,
|
||||
JSObject **objp, bool *_retval)
|
||||
jsid idArg, JSObject **objp,
|
||||
bool *_retval)
|
||||
{
|
||||
RootedObject obj(cx, objArg);
|
||||
RootedId id(cx, idArg);
|
||||
@ -1287,12 +1287,12 @@ nsXPCComponents_Results::NewEnumerate(nsIXPConnectWrappedNative *wrapper,
|
||||
}
|
||||
|
||||
|
||||
/* bool newResolve (in nsIXPConnectWrappedNative wrapper, in JSContextPtr cx, in JSObjectPtr obj, in jsval id, in uint32_t flags, out JSObjectPtr objp); */
|
||||
/* bool newResolve (in nsIXPConnectWrappedNative wrapper, in JSContextPtr cx, in JSObjectPtr obj, in jsval id, out JSObjectPtr objp); */
|
||||
NS_IMETHODIMP
|
||||
nsXPCComponents_Results::NewResolve(nsIXPConnectWrappedNative *wrapper,
|
||||
JSContext *cx, JSObject *objArg,
|
||||
jsid idArg, uint32_t flags,
|
||||
JSObject * *objp, bool *_retval)
|
||||
jsid idArg, JSObject * *objp,
|
||||
bool *_retval)
|
||||
{
|
||||
RootedObject obj(cx, objArg);
|
||||
RootedId id(cx, idArg);
|
||||
|
@ -383,8 +383,8 @@ nsJSIID::NewID(nsIInterfaceInfo* aInfo)
|
||||
NS_IMETHODIMP
|
||||
nsJSIID::NewResolve(nsIXPConnectWrappedNative *wrapper,
|
||||
JSContext * cx, JSObject * objArg,
|
||||
jsid idArg, uint32_t flags,
|
||||
JSObject * *objp, bool *_retval)
|
||||
jsid idArg, JSObject * *objp,
|
||||
bool *_retval)
|
||||
{
|
||||
RootedObject obj(cx, objArg);
|
||||
RootedId id(cx, idArg);
|
||||
|
@ -42,12 +42,12 @@ NS_IMPL_RELEASE(BackstagePass)
|
||||
nsIXPCScriptable::DONT_REFLECT_INTERFACE_NAMES
|
||||
#include "xpc_map_end.h" /* This will #undef the above */
|
||||
|
||||
/* bool newResolve (in nsIXPConnectWrappedNative wrapper, in JSContextPtr cx, in JSObjectPtr obj, in jsval id, in uint32_t flags, out JSObjectPtr objp); */
|
||||
/* bool newResolve (in nsIXPConnectWrappedNative wrapper, in JSContextPtr cx, in JSObjectPtr obj, in jsval id, out JSObjectPtr objp); */
|
||||
NS_IMETHODIMP
|
||||
BackstagePass::NewResolve(nsIXPConnectWrappedNative *wrapper,
|
||||
JSContext * cx, JSObject * objArg,
|
||||
jsid idArg, uint32_t flags,
|
||||
JSObject * *objpArg, bool *_retval)
|
||||
jsid idArg, JSObject * *objpArg,
|
||||
bool *_retval)
|
||||
{
|
||||
JS::RootedObject obj(cx, objArg);
|
||||
JS::RootedId id(cx, idArg);
|
||||
@ -65,7 +65,7 @@ BackstagePass::NewResolve(nsIXPConnectWrappedNative *wrapper,
|
||||
|
||||
JS::RootedObject objp(cx, *objpArg);
|
||||
|
||||
*_retval = ResolveWorkerClasses(cx, obj, id, flags, &objp);
|
||||
*_retval = ResolveWorkerClasses(cx, obj, id, &objp);
|
||||
NS_ENSURE_TRUE(*_retval, NS_ERROR_FAILURE);
|
||||
|
||||
if (objp) {
|
||||
|
@ -825,7 +825,7 @@ env_enumerate(JSContext *cx, HandleObject obj)
|
||||
}
|
||||
|
||||
static bool
|
||||
env_resolve(JSContext *cx, HandleObject obj, HandleId id, unsigned flags,
|
||||
env_resolve(JSContext *cx, HandleObject obj, HandleId id,
|
||||
JS::MutableHandleObject objp)
|
||||
{
|
||||
JSString *idstr, *valstr;
|
||||
|
@ -873,7 +873,7 @@ XPC_WN_Helper_Finalize(js::FreeOp *fop, JSObject *obj)
|
||||
}
|
||||
|
||||
static bool
|
||||
XPC_WN_Helper_NewResolve(JSContext *cx, HandleObject obj, HandleId id, unsigned flags,
|
||||
XPC_WN_Helper_NewResolve(JSContext *cx, HandleObject obj, HandleId id,
|
||||
MutableHandleObject objp)
|
||||
{
|
||||
nsresult rv = NS_OK;
|
||||
@ -893,7 +893,7 @@ XPC_WN_Helper_NewResolve(JSContext *cx, HandleObject obj, HandleId id, unsigned
|
||||
if (allowPropMods)
|
||||
oldResolvingWrapper = ccx.SetResolvingWrapper(wrapper);
|
||||
|
||||
rv = si->GetCallback()->NewResolve(wrapper, cx, obj, id, flags,
|
||||
rv = si->GetCallback()->NewResolve(wrapper, cx, obj, id,
|
||||
obj2FromScriptable.address(), &retval);
|
||||
|
||||
if (allowPropMods)
|
||||
|
@ -150,16 +150,14 @@ public:
|
||||
|
||||
virtual bool resolveNativeProperty(JSContext *cx, HandleObject wrapper,
|
||||
HandleObject holder, HandleId id,
|
||||
MutableHandle<JSPropertyDescriptor> desc,
|
||||
unsigned flags) = 0;
|
||||
MutableHandle<JSPropertyDescriptor> desc) = 0;
|
||||
// NB: resolveOwnProperty may decide whether or not to cache what it finds
|
||||
// on the holder. If the result is not cached, the lookup will happen afresh
|
||||
// for each access, which is the right thing for things like dynamic NodeList
|
||||
// properties.
|
||||
virtual bool resolveOwnProperty(JSContext *cx, Wrapper &jsWrapper,
|
||||
HandleObject wrapper, HandleObject holder,
|
||||
HandleId id, MutableHandle<JSPropertyDescriptor> desc,
|
||||
unsigned flags);
|
||||
HandleId id, MutableHandle<JSPropertyDescriptor> desc);
|
||||
|
||||
virtual void preserveWrapper(JSObject *target) = 0;
|
||||
|
||||
@ -207,10 +205,10 @@ public:
|
||||
|
||||
virtual bool resolveNativeProperty(JSContext *cx, HandleObject wrapper,
|
||||
HandleObject holder, HandleId id,
|
||||
MutableHandle<JSPropertyDescriptor> desc, unsigned flags);
|
||||
MutableHandle<JSPropertyDescriptor> desc) MOZ_OVERRIDE;
|
||||
virtual bool resolveOwnProperty(JSContext *cx, Wrapper &jsWrapper, HandleObject wrapper,
|
||||
HandleObject holder, HandleId id,
|
||||
MutableHandle<JSPropertyDescriptor> desc, unsigned flags);
|
||||
MutableHandle<JSPropertyDescriptor> desc) MOZ_OVERRIDE;
|
||||
static bool defineProperty(JSContext *cx, HandleObject wrapper, HandleId id,
|
||||
MutableHandle<JSPropertyDescriptor> desc,
|
||||
Handle<JSPropertyDescriptor> existingDesc, bool *defined);
|
||||
@ -225,17 +223,17 @@ public:
|
||||
|
||||
static bool resolveDOMCollectionProperty(JSContext *cx, HandleObject wrapper,
|
||||
HandleObject holder, HandleId id,
|
||||
MutableHandle<JSPropertyDescriptor> desc, unsigned flags);
|
||||
MutableHandle<JSPropertyDescriptor> desc);
|
||||
|
||||
static XPCWrappedNative* getWN(JSObject *wrapper) {
|
||||
return XPCWrappedNative::Get(getTargetObject(wrapper));
|
||||
}
|
||||
|
||||
virtual void preserveWrapper(JSObject *target);
|
||||
virtual void preserveWrapper(JSObject *target) MOZ_OVERRIDE;
|
||||
|
||||
typedef ResolvingId ResolvingIdImpl;
|
||||
|
||||
virtual JSObject* createHolder(JSContext *cx, JSObject *wrapper);
|
||||
virtual JSObject* createHolder(JSContext *cx, JSObject *wrapper) MOZ_OVERRIDE;
|
||||
|
||||
static const JSClass HolderClass;
|
||||
static XPCWrappedNativeXrayTraits singleton;
|
||||
@ -258,10 +256,10 @@ public:
|
||||
|
||||
virtual bool resolveNativeProperty(JSContext *cx, HandleObject wrapper,
|
||||
HandleObject holder, HandleId id,
|
||||
MutableHandle<JSPropertyDescriptor> desc, unsigned flags);
|
||||
MutableHandle<JSPropertyDescriptor> desc) MOZ_OVERRIDE;
|
||||
virtual bool resolveOwnProperty(JSContext *cx, Wrapper &jsWrapper, HandleObject wrapper,
|
||||
HandleObject holder, HandleId id,
|
||||
MutableHandle<JSPropertyDescriptor> desc, unsigned flags);
|
||||
MutableHandle<JSPropertyDescriptor> desc) MOZ_OVERRIDE;
|
||||
static bool defineProperty(JSContext *cx, HandleObject wrapper, HandleId id,
|
||||
MutableHandle<JSPropertyDescriptor> desc,
|
||||
Handle<JSPropertyDescriptor> existingDesc, bool *defined);
|
||||
@ -281,9 +279,9 @@ public:
|
||||
|
||||
typedef ResolvingIdDummy ResolvingIdImpl;
|
||||
|
||||
virtual void preserveWrapper(JSObject *target);
|
||||
virtual void preserveWrapper(JSObject *target) MOZ_OVERRIDE;
|
||||
|
||||
virtual JSObject* createHolder(JSContext *cx, JSObject *wrapper);
|
||||
virtual JSObject* createHolder(JSContext *cx, JSObject *wrapper) MOZ_OVERRIDE;
|
||||
|
||||
static DOMXrayTraits singleton;
|
||||
};
|
||||
@ -298,14 +296,14 @@ public:
|
||||
|
||||
virtual bool resolveNativeProperty(JSContext *cx, HandleObject wrapper,
|
||||
HandleObject holder, HandleId id,
|
||||
MutableHandle<JSPropertyDescriptor> desc, unsigned flags)
|
||||
MutableHandle<JSPropertyDescriptor> desc) MOZ_OVERRIDE
|
||||
{
|
||||
MOZ_ASSUME_UNREACHABLE("resolveNativeProperty hook should never be called with HasPrototype = 1");
|
||||
}
|
||||
|
||||
virtual bool resolveOwnProperty(JSContext *cx, Wrapper &jsWrapper, HandleObject wrapper,
|
||||
HandleObject holder, HandleId id,
|
||||
MutableHandle<JSPropertyDescriptor> desc, unsigned flags);
|
||||
MutableHandle<JSPropertyDescriptor> desc) MOZ_OVERRIDE;
|
||||
|
||||
static bool defineProperty(JSContext *cx, HandleObject wrapper, HandleId id,
|
||||
MutableHandle<JSPropertyDescriptor> desc,
|
||||
@ -359,7 +357,7 @@ public:
|
||||
return JS_WrapObject(cx, protop);
|
||||
}
|
||||
|
||||
virtual void preserveWrapper(JSObject *target) {
|
||||
virtual void preserveWrapper(JSObject *target) MOZ_OVERRIDE {
|
||||
// In the case of pure JS objects, there is no underlying object, and
|
||||
// the target is the canonical representation of state. If it gets
|
||||
// collected, then expandos and such should be collected too. So there's
|
||||
@ -371,7 +369,7 @@ public:
|
||||
SLOT_ISPROTOTYPE,
|
||||
SLOT_COUNT
|
||||
};
|
||||
virtual JSObject* createHolder(JSContext *cx, JSObject *wrapper);
|
||||
virtual JSObject* createHolder(JSContext *cx, JSObject *wrapper) MOZ_OVERRIDE;
|
||||
|
||||
static JSProtoKey getProtoKey(JSObject *holder) {
|
||||
int32_t key = js::GetReservedSlot(holder, SLOT_PROTOKEY).toInt32();
|
||||
@ -397,12 +395,11 @@ bool
|
||||
JSXrayTraits::resolveOwnProperty(JSContext *cx, Wrapper &jsWrapper,
|
||||
HandleObject wrapper, HandleObject holder,
|
||||
HandleId id,
|
||||
MutableHandle<JSPropertyDescriptor> desc,
|
||||
unsigned flags)
|
||||
MutableHandle<JSPropertyDescriptor> desc)
|
||||
{
|
||||
// Call the common code.
|
||||
bool ok = XrayTraits::resolveOwnProperty(cx, jsWrapper, wrapper, holder,
|
||||
id, desc, flags);
|
||||
id, desc);
|
||||
if (!ok || desc.object())
|
||||
return ok;
|
||||
|
||||
@ -911,8 +908,7 @@ private:
|
||||
bool
|
||||
XPCWrappedNativeXrayTraits::resolveDOMCollectionProperty(JSContext *cx, HandleObject wrapper,
|
||||
HandleObject holder, HandleId id,
|
||||
MutableHandle<JSPropertyDescriptor> desc,
|
||||
unsigned flags)
|
||||
MutableHandle<JSPropertyDescriptor> desc)
|
||||
{
|
||||
// If we are not currently resolving this id and resolveNative is called
|
||||
// we don't do anything. (see defineProperty in case of shadowing is forbidden).
|
||||
@ -945,7 +941,7 @@ XPCWrappedNativeXrayTraits::resolveDOMCollectionProperty(JSContext *cx, HandleOb
|
||||
bool retval = true;
|
||||
RootedObject pobj(cx);
|
||||
nsresult rv = wn->GetScriptableInfo()->GetCallback()->NewResolve(wn, cx, wrapper, id,
|
||||
flags, pobj.address(), &retval);
|
||||
pobj.address(), &retval);
|
||||
if (NS_FAILED(rv)) {
|
||||
if (retval)
|
||||
XPCThrower::Throw(rv, cx);
|
||||
@ -996,7 +992,7 @@ XPCWrappedNativeXrayTraits::preserveWrapper(JSObject *target)
|
||||
bool
|
||||
XPCWrappedNativeXrayTraits::resolveNativeProperty(JSContext *cx, HandleObject wrapper,
|
||||
HandleObject holder, HandleId id,
|
||||
MutableHandle<JSPropertyDescriptor> desc, unsigned flags)
|
||||
MutableHandle<JSPropertyDescriptor> desc)
|
||||
{
|
||||
MOZ_ASSERT(js::GetObjectJSClass(holder) == &HolderClass);
|
||||
|
||||
@ -1012,7 +1008,7 @@ XPCWrappedNativeXrayTraits::resolveNativeProperty(JSContext *cx, HandleObject wr
|
||||
// check for those.
|
||||
if (!JSID_IS_STRING(id)) {
|
||||
/* Not found */
|
||||
return resolveDOMCollectionProperty(cx, wrapper, holder, id, desc, flags);
|
||||
return resolveDOMCollectionProperty(cx, wrapper, holder, id, desc);
|
||||
}
|
||||
|
||||
|
||||
@ -1052,7 +1048,7 @@ XPCWrappedNativeXrayTraits::resolveNativeProperty(JSContext *cx, HandleObject wr
|
||||
} else if (!(iface = ccx.GetInterface()) ||
|
||||
!(member = ccx.GetMember())) {
|
||||
/* Not found */
|
||||
return resolveDOMCollectionProperty(cx, wrapper, holder, id, desc, flags);
|
||||
return resolveDOMCollectionProperty(cx, wrapper, holder, id, desc);
|
||||
}
|
||||
|
||||
desc.object().set(holder);
|
||||
@ -1127,7 +1123,7 @@ wrappedJSObject_getter(JSContext *cx, HandleObject wrapper, HandleId id, Mutable
|
||||
bool
|
||||
XrayTraits::resolveOwnProperty(JSContext *cx, Wrapper &jsWrapper,
|
||||
HandleObject wrapper, HandleObject holder, HandleId id,
|
||||
MutableHandle<JSPropertyDescriptor> desc, unsigned flags)
|
||||
MutableHandle<JSPropertyDescriptor> desc)
|
||||
{
|
||||
desc.object().set(nullptr);
|
||||
RootedObject target(cx, getTargetObject(wrapper));
|
||||
@ -1205,12 +1201,12 @@ XrayTraits::set(JSContext *cx, HandleObject wrapper, HandleObject receiver, Hand
|
||||
bool
|
||||
XPCWrappedNativeXrayTraits::resolveOwnProperty(JSContext *cx, Wrapper &jsWrapper,
|
||||
HandleObject wrapper, HandleObject holder,
|
||||
HandleId id, MutableHandle<JSPropertyDescriptor> desc,
|
||||
unsigned flags)
|
||||
HandleId id,
|
||||
MutableHandle<JSPropertyDescriptor> desc)
|
||||
{
|
||||
// Call the common code.
|
||||
bool ok = XrayTraits::resolveOwnProperty(cx, jsWrapper, wrapper, holder,
|
||||
id, desc, flags);
|
||||
id, desc);
|
||||
if (!ok || desc.object())
|
||||
return ok;
|
||||
|
||||
@ -1256,8 +1252,8 @@ XPCWrappedNativeXrayTraits::resolveOwnProperty(JSContext *cx, Wrapper &jsWrapper
|
||||
bool retval = true;
|
||||
RootedObject pobj(cx);
|
||||
nsIXPCScriptable *callback = wn->GetScriptableInfo()->GetCallback();
|
||||
nsresult rv = callback->NewResolve(wn, cx, wrapper, id, flags,
|
||||
pobj.address(), &retval);
|
||||
nsresult rv = callback->NewResolve(wn, cx, wrapper, id, pobj.address(),
|
||||
&retval);
|
||||
if (NS_FAILED(rv)) {
|
||||
if (retval)
|
||||
XPCThrower::Throw(rv, cx);
|
||||
@ -1409,7 +1405,7 @@ XPCWrappedNativeXrayTraits::construct(JSContext *cx, HandleObject wrapper,
|
||||
bool
|
||||
DOMXrayTraits::resolveNativeProperty(JSContext *cx, HandleObject wrapper,
|
||||
HandleObject holder, HandleId id,
|
||||
MutableHandle<JSPropertyDescriptor> desc, unsigned flags)
|
||||
MutableHandle<JSPropertyDescriptor> desc)
|
||||
{
|
||||
RootedObject obj(cx, getTargetObject(wrapper));
|
||||
if (!XrayResolveNativeProperty(cx, wrapper, obj, id, desc))
|
||||
@ -1423,11 +1419,10 @@ DOMXrayTraits::resolveNativeProperty(JSContext *cx, HandleObject wrapper,
|
||||
bool
|
||||
DOMXrayTraits::resolveOwnProperty(JSContext *cx, Wrapper &jsWrapper, HandleObject wrapper,
|
||||
HandleObject holder, HandleId id,
|
||||
MutableHandle<JSPropertyDescriptor> desc, unsigned flags)
|
||||
MutableHandle<JSPropertyDescriptor> desc)
|
||||
{
|
||||
// Call the common code.
|
||||
bool ok = XrayTraits::resolveOwnProperty(cx, jsWrapper, wrapper, holder,
|
||||
id, desc, flags);
|
||||
bool ok = XrayTraits::resolveOwnProperty(cx, jsWrapper, wrapper, holder, id, desc);
|
||||
if (!ok || desc.object())
|
||||
return ok;
|
||||
|
||||
@ -1455,7 +1450,7 @@ DOMXrayTraits::resolveOwnProperty(JSContext *cx, Wrapper &jsWrapper, HandleObjec
|
||||
}
|
||||
|
||||
RootedObject obj(cx, getTargetObject(wrapper));
|
||||
if (!XrayResolveOwnProperty(cx, wrapper, obj, id, desc, flags))
|
||||
if (!XrayResolveOwnProperty(cx, wrapper, obj, id, desc))
|
||||
return false;
|
||||
|
||||
MOZ_ASSERT(!desc.object() || desc.object() == wrapper, "What did we resolve this on?");
|
||||
@ -1639,7 +1634,7 @@ HasNativeProperty(JSContext *cx, HandleObject wrapper, HandleId id, bool *hasPro
|
||||
Maybe<ResolvingId> resolvingId;
|
||||
if (traits == &XPCWrappedNativeXrayTraits::singleton)
|
||||
resolvingId.construct(cx, wrapper, id);
|
||||
if (!traits->resolveOwnProperty(cx, *handler, wrapper, holder, id, &desc, 0))
|
||||
if (!traits->resolveOwnProperty(cx, *handler, wrapper, holder, id, &desc))
|
||||
return false;
|
||||
if (desc.object()) {
|
||||
*hasProp = true;
|
||||
@ -1656,7 +1651,7 @@ HasNativeProperty(JSContext *cx, HandleObject wrapper, HandleId id, bool *hasPro
|
||||
}
|
||||
|
||||
// Try resolveNativeProperty.
|
||||
if (!traits->resolveNativeProperty(cx, wrapper, holder, id, &desc, 0))
|
||||
if (!traits->resolveNativeProperty(cx, wrapper, holder, id, &desc))
|
||||
return false;
|
||||
*hasProp = !!desc.object();
|
||||
return true;
|
||||
@ -1812,7 +1807,7 @@ XrayWrapper<Base, Traits>::getPropertyDescriptor(JSContext *cx, HandleObject wra
|
||||
// and unconditionally caches what it finds on the holder.
|
||||
|
||||
// Check resolveOwnProperty.
|
||||
if (!Traits::singleton.resolveOwnProperty(cx, *this, wrapper, holder, id, desc, 0))
|
||||
if (!Traits::singleton.resolveOwnProperty(cx, *this, wrapper, holder, id, desc))
|
||||
return false;
|
||||
|
||||
// Check the holder.
|
||||
@ -1824,7 +1819,7 @@ XrayWrapper<Base, Traits>::getPropertyDescriptor(JSContext *cx, HandleObject wra
|
||||
}
|
||||
|
||||
// Nothing in the cache. Call through, and cache the result.
|
||||
if (!Traits::singleton.resolveNativeProperty(cx, wrapper, holder, id, desc, 0))
|
||||
if (!Traits::singleton.resolveNativeProperty(cx, wrapper, holder, id, desc))
|
||||
return false;
|
||||
|
||||
// We need to handle named access on the Window somewhere other than
|
||||
@ -1922,7 +1917,7 @@ XrayWrapper<Base, Traits>::getOwnPropertyDescriptor(JSContext *cx, HandleObject
|
||||
// NB: Nothing we do here acts on the wrapped native itself, so we don't
|
||||
// enter our policy.
|
||||
|
||||
if (!Traits::singleton.resolveOwnProperty(cx, *this, wrapper, holder, id, desc, 0))
|
||||
if (!Traits::singleton.resolveOwnProperty(cx, *this, wrapper, holder, id, desc))
|
||||
return false;
|
||||
if (desc.object())
|
||||
desc.object().set(wrapper);
|
||||
|
@ -88,7 +88,6 @@ AsyncStatementParams::NewResolve(
|
||||
JSContext *aCtx,
|
||||
JSObject *aScopeObj,
|
||||
jsid aId,
|
||||
uint32_t aFlags,
|
||||
JSObject **_objp,
|
||||
bool *_retval
|
||||
)
|
||||
|
@ -216,7 +216,6 @@ StatementJSHelper::NewResolve(nsIXPConnectWrappedNative *aWrapper,
|
||||
JSContext *aCtx,
|
||||
JSObject *aScopeObj,
|
||||
jsid aId,
|
||||
uint32_t aFlags,
|
||||
JSObject **_objp,
|
||||
bool *_retval)
|
||||
{
|
||||
|
@ -157,7 +157,6 @@ StatementParams::NewResolve(nsIXPConnectWrappedNative *aWrapper,
|
||||
JSContext *aCtx,
|
||||
JSObject *aScopeObj,
|
||||
jsid aId,
|
||||
uint32_t aFlags,
|
||||
JSObject **_objp,
|
||||
bool *_retval)
|
||||
{
|
||||
|
@ -117,7 +117,6 @@ StatementRow::NewResolve(nsIXPConnectWrappedNative *aWrapper,
|
||||
JSContext *aCtx,
|
||||
JSObject *aScopeObj,
|
||||
jsid aId,
|
||||
uint32_t aFlags,
|
||||
JSObject **_objp,
|
||||
bool *_retval)
|
||||
{
|
||||
|
Loading…
Reference in New Issue
Block a user