mirror of
https://repo.dactyloidae.xyz/Dactyloidae/UXP.git
synced 2026-10-27 01:27:30 +09:00
Issue #1257 - Part1: Remove watch class-hook and proxy trap.
This commit is contained in:
parent
abbe1d4499
commit
3b9fbdc71d
18 changed files with 5 additions and 145 deletions
|
|
@ -1026,11 +1026,6 @@ public:
|
||||||
return false;
|
return false;
|
||||||
}
|
}
|
||||||
|
|
||||||
virtual bool watch(JSContext *cx, JS::Handle<JSObject*> proxy,
|
|
||||||
JS::Handle<jsid> id, JS::Handle<JSObject*> callable) const override;
|
|
||||||
virtual bool unwatch(JSContext *cx, JS::Handle<JSObject*> proxy,
|
|
||||||
JS::Handle<jsid> id) const override;
|
|
||||||
|
|
||||||
static void ObjectMoved(JSObject *obj, const JSObject *old);
|
static void ObjectMoved(JSObject *obj, const JSObject *old);
|
||||||
|
|
||||||
static const nsOuterWindowProxy singleton;
|
static const nsOuterWindowProxy singleton;
|
||||||
|
|
@ -1398,20 +1393,6 @@ nsOuterWindowProxy::AppendIndexedPropertyNames(JSContext *cx, JSObject *proxy,
|
||||||
return true;
|
return true;
|
||||||
}
|
}
|
||||||
|
|
||||||
bool
|
|
||||||
nsOuterWindowProxy::watch(JSContext *cx, JS::Handle<JSObject*> proxy,
|
|
||||||
JS::Handle<jsid> id, JS::Handle<JSObject*> callable) const
|
|
||||||
{
|
|
||||||
return js::WatchGuts(cx, proxy, id, callable);
|
|
||||||
}
|
|
||||||
|
|
||||||
bool
|
|
||||||
nsOuterWindowProxy::unwatch(JSContext *cx, JS::Handle<JSObject*> proxy,
|
|
||||||
JS::Handle<jsid> id) const
|
|
||||||
{
|
|
||||||
return js::UnwatchGuts(cx, proxy, id);
|
|
||||||
}
|
|
||||||
|
|
||||||
void
|
void
|
||||||
nsOuterWindowProxy::ObjectMoved(JSObject *obj, const JSObject *old)
|
nsOuterWindowProxy::ObjectMoved(JSObject *obj, const JSObject *old)
|
||||||
{
|
{
|
||||||
|
|
|
||||||
|
|
@ -1968,8 +1968,6 @@ const js::ObjectOps sInterfaceObjectClassObjectOps = {
|
||||||
nullptr, /* setProperty */
|
nullptr, /* setProperty */
|
||||||
nullptr, /* getOwnPropertyDescriptor */
|
nullptr, /* getOwnPropertyDescriptor */
|
||||||
nullptr, /* deleteProperty */
|
nullptr, /* deleteProperty */
|
||||||
nullptr, /* watch */
|
|
||||||
nullptr, /* unwatch */
|
|
||||||
nullptr, /* getElements */
|
nullptr, /* getElements */
|
||||||
nullptr, /* enumerate */
|
nullptr, /* enumerate */
|
||||||
InterfaceObjectToString, /* funToString */
|
InterfaceObjectToString, /* funToString */
|
||||||
|
|
|
||||||
|
|
@ -13169,9 +13169,9 @@ class CGDictionary(CGThing):
|
||||||
# continues to match the list in test_Object.prototype_props.html
|
# continues to match the list in test_Object.prototype_props.html
|
||||||
if (member.identifier.name in
|
if (member.identifier.name in
|
||||||
["constructor", "toSource", "toString", "toLocaleString", "valueOf",
|
["constructor", "toSource", "toString", "toLocaleString", "valueOf",
|
||||||
"watch", "unwatch", "hasOwnProperty", "isPrototypeOf",
|
"hasOwnProperty", "isPrototypeOf", "propertyIsEnumerable",
|
||||||
"propertyIsEnumerable", "__defineGetter__", "__defineSetter__",
|
"__defineGetter__", "__defineSetter__", "__lookupGetter__",
|
||||||
"__lookupGetter__", "__lookupSetter__", "__proto__"]):
|
"__lookupSetter__", "__proto__"]):
|
||||||
raise TypeError("'%s' member of %s dictionary shadows "
|
raise TypeError("'%s' member of %s dictionary shadows "
|
||||||
"a property of Object.prototype, and Xrays to "
|
"a property of Object.prototype, and Xrays to "
|
||||||
"Object can't handle that.\n"
|
"Object can't handle that.\n"
|
||||||
|
|
|
||||||
|
|
@ -274,19 +274,6 @@ DOMProxyHandler::delete_(JSContext* cx, JS::Handle<JSObject*> proxy,
|
||||||
return result.succeed();
|
return result.succeed();
|
||||||
}
|
}
|
||||||
|
|
||||||
bool
|
|
||||||
BaseDOMProxyHandler::watch(JSContext* cx, JS::Handle<JSObject*> proxy, JS::Handle<jsid> id,
|
|
||||||
JS::Handle<JSObject*> callable) const
|
|
||||||
{
|
|
||||||
return js::WatchGuts(cx, proxy, id, callable);
|
|
||||||
}
|
|
||||||
|
|
||||||
bool
|
|
||||||
BaseDOMProxyHandler::unwatch(JSContext* cx, JS::Handle<JSObject*> proxy, JS::Handle<jsid> id) const
|
|
||||||
{
|
|
||||||
return js::UnwatchGuts(cx, proxy, id);
|
|
||||||
}
|
|
||||||
|
|
||||||
bool
|
bool
|
||||||
BaseDOMProxyHandler::ownPropertyKeys(JSContext* cx,
|
BaseDOMProxyHandler::ownPropertyKeys(JSContext* cx,
|
||||||
JS::Handle<JSObject*> proxy,
|
JS::Handle<JSObject*> proxy,
|
||||||
|
|
|
||||||
|
|
@ -72,11 +72,6 @@ public:
|
||||||
virtual bool getOwnEnumerablePropertyKeys(JSContext* cx, JS::Handle<JSObject*> proxy,
|
virtual bool getOwnEnumerablePropertyKeys(JSContext* cx, JS::Handle<JSObject*> proxy,
|
||||||
JS::AutoIdVector &props) const override;
|
JS::AutoIdVector &props) const override;
|
||||||
|
|
||||||
bool watch(JSContext* cx, JS::Handle<JSObject*> proxy, JS::Handle<jsid> id,
|
|
||||||
JS::Handle<JSObject*> callable) const override;
|
|
||||||
bool unwatch(JSContext* cx, JS::Handle<JSObject*> proxy,
|
|
||||||
JS::Handle<jsid> id) const override;
|
|
||||||
|
|
||||||
protected:
|
protected:
|
||||||
// Hook for subclasses to implement shared ownPropertyKeys()/keys()
|
// Hook for subclasses to implement shared ownPropertyKeys()/keys()
|
||||||
// functionality. The "flags" argument is either JSITER_OWNONLY (for keys())
|
// functionality. The "flags" argument is either JSITER_OWNONLY (for keys())
|
||||||
|
|
|
||||||
|
|
@ -248,7 +248,6 @@ const static js::ObjectOps sNPObjectJSWrapperObjectOps = {
|
||||||
nullptr, // setProperty
|
nullptr, // setProperty
|
||||||
nullptr, // getOwnPropertyDescriptor
|
nullptr, // getOwnPropertyDescriptor
|
||||||
nullptr, // deleteProperty
|
nullptr, // deleteProperty
|
||||||
nullptr, nullptr, // watch/unwatch
|
|
||||||
nullptr, // getElements
|
nullptr, // getElements
|
||||||
NPObjWrapper_Enumerate,
|
NPObjWrapper_Enumerate,
|
||||||
nullptr,
|
nullptr,
|
||||||
|
|
|
||||||
|
|
@ -425,12 +425,6 @@ typedef bool
|
||||||
(* DeletePropertyOp)(JSContext* cx, JS::HandleObject obj, JS::HandleId id,
|
(* DeletePropertyOp)(JSContext* cx, JS::HandleObject obj, JS::HandleId id,
|
||||||
JS::ObjectOpResult& result);
|
JS::ObjectOpResult& result);
|
||||||
|
|
||||||
typedef bool
|
|
||||||
(* WatchOp)(JSContext* cx, JS::HandleObject obj, JS::HandleId id, JS::HandleObject callable);
|
|
||||||
|
|
||||||
typedef bool
|
|
||||||
(* UnwatchOp)(JSContext* cx, JS::HandleObject obj, JS::HandleId id);
|
|
||||||
|
|
||||||
class JS_FRIEND_API(ElementAdder)
|
class JS_FRIEND_API(ElementAdder)
|
||||||
{
|
{
|
||||||
public:
|
public:
|
||||||
|
|
@ -670,8 +664,6 @@ struct ObjectOps
|
||||||
SetPropertyOp setProperty;
|
SetPropertyOp setProperty;
|
||||||
GetOwnPropertyOp getOwnPropertyDescriptor;
|
GetOwnPropertyOp getOwnPropertyDescriptor;
|
||||||
DeletePropertyOp deleteProperty;
|
DeletePropertyOp deleteProperty;
|
||||||
WatchOp watch;
|
|
||||||
UnwatchOp unwatch;
|
|
||||||
GetElementsOp getElements;
|
GetElementsOp getElements;
|
||||||
JSNewEnumerateOp enumerate;
|
JSNewEnumerateOp enumerate;
|
||||||
JSFunToStringOp funToString;
|
JSFunToStringOp funToString;
|
||||||
|
|
@ -822,8 +814,8 @@ struct Class
|
||||||
* Objects of this class aren't native objects. They don't have Shapes that
|
* Objects of this class aren't native objects. They don't have Shapes that
|
||||||
* describe their properties and layout. Classes using this flag must
|
* describe their properties and layout. Classes using this flag must
|
||||||
* provide their own property behavior, either by being proxy classes (do
|
* provide their own property behavior, either by being proxy classes (do
|
||||||
* this) or by overriding all the ObjectOps except getElements, watch and
|
* this) or by overriding all the ObjectOps except getElements
|
||||||
* unwatch (don't do this).
|
* (don't do this).
|
||||||
*/
|
*/
|
||||||
static const uint32_t NON_NATIVE = JSCLASS_INTERNAL_FLAG2;
|
static const uint32_t NON_NATIVE = JSCLASS_INTERNAL_FLAG2;
|
||||||
|
|
||||||
|
|
@ -900,8 +892,6 @@ struct Class
|
||||||
const { return oOps ? oOps->getOwnPropertyDescriptor
|
const { return oOps ? oOps->getOwnPropertyDescriptor
|
||||||
: nullptr; }
|
: nullptr; }
|
||||||
DeletePropertyOp getOpsDeleteProperty() const { return oOps ? oOps->deleteProperty : nullptr; }
|
DeletePropertyOp getOpsDeleteProperty() const { return oOps ? oOps->deleteProperty : nullptr; }
|
||||||
WatchOp getOpsWatch() const { return oOps ? oOps->watch : nullptr; }
|
|
||||||
UnwatchOp getOpsUnwatch() const { return oOps ? oOps->unwatch : nullptr; }
|
|
||||||
GetElementsOp getOpsGetElements() const { return oOps ? oOps->getElements : nullptr; }
|
GetElementsOp getOpsGetElements() const { return oOps ? oOps->getElements : nullptr; }
|
||||||
JSNewEnumerateOp getOpsEnumerate() const { return oOps ? oOps->enumerate : nullptr; }
|
JSNewEnumerateOp getOpsEnumerate() const { return oOps ? oOps->enumerate : nullptr; }
|
||||||
JSFunToStringOp getOpsFunToString() const { return oOps ? oOps->funToString : nullptr; }
|
JSFunToStringOp getOpsFunToString() const { return oOps ? oOps->funToString : nullptr; }
|
||||||
|
|
|
||||||
|
|
@ -341,12 +341,6 @@ class JS_FRIEND_API(BaseProxyHandler)
|
||||||
virtual bool isCallable(JSObject* obj) const;
|
virtual bool isCallable(JSObject* obj) const;
|
||||||
virtual bool isConstructor(JSObject* obj) const;
|
virtual bool isConstructor(JSObject* obj) const;
|
||||||
|
|
||||||
// These two hooks must be overridden, or not overridden, in tandem -- no
|
|
||||||
// overriding just one!
|
|
||||||
virtual bool watch(JSContext* cx, JS::HandleObject proxy, JS::HandleId id,
|
|
||||||
JS::HandleObject callable) const;
|
|
||||||
virtual bool unwatch(JSContext* cx, JS::HandleObject proxy, JS::HandleId id) const;
|
|
||||||
|
|
||||||
virtual bool getElements(JSContext* cx, HandleObject proxy, uint32_t begin, uint32_t end,
|
virtual bool getElements(JSContext* cx, HandleObject proxy, uint32_t begin, uint32_t end,
|
||||||
ElementAdder* adder) const;
|
ElementAdder* adder) const;
|
||||||
|
|
||||||
|
|
|
||||||
|
|
@ -2215,7 +2215,6 @@ const ObjectOps TypedObject::objectOps_ = {
|
||||||
TypedObject::obj_setProperty,
|
TypedObject::obj_setProperty,
|
||||||
TypedObject::obj_getOwnPropertyDescriptor,
|
TypedObject::obj_getOwnPropertyDescriptor,
|
||||||
TypedObject::obj_deleteProperty,
|
TypedObject::obj_deleteProperty,
|
||||||
nullptr, nullptr, /* watch/unwatch */
|
|
||||||
nullptr, /* getElements */
|
nullptr, /* getElements */
|
||||||
TypedObject::obj_enumerate,
|
TypedObject::obj_enumerate,
|
||||||
nullptr, /* thisValue */
|
nullptr, /* thisValue */
|
||||||
|
|
|
||||||
|
|
@ -2836,9 +2836,6 @@ js::UnwatchGuts(JSContext* cx, JS::HandleObject origObj, JS::HandleId id)
|
||||||
bool
|
bool
|
||||||
js::WatchProperty(JSContext* cx, HandleObject obj, HandleId id, HandleObject callable)
|
js::WatchProperty(JSContext* cx, HandleObject obj, HandleId id, HandleObject callable)
|
||||||
{
|
{
|
||||||
if (WatchOp op = obj->getOpsWatch())
|
|
||||||
return op(cx, obj, id, callable);
|
|
||||||
|
|
||||||
if (!obj->isNative() || obj->is<TypedArrayObject>()) {
|
if (!obj->isNative() || obj->is<TypedArrayObject>()) {
|
||||||
JS_ReportErrorNumberASCII(cx, GetErrorMessage, nullptr, JSMSG_CANT_WATCH,
|
JS_ReportErrorNumberASCII(cx, GetErrorMessage, nullptr, JSMSG_CANT_WATCH,
|
||||||
obj->getClass()->name);
|
obj->getClass()->name);
|
||||||
|
|
@ -2851,9 +2848,6 @@ js::WatchProperty(JSContext* cx, HandleObject obj, HandleId id, HandleObject cal
|
||||||
bool
|
bool
|
||||||
js::UnwatchProperty(JSContext* cx, HandleObject obj, HandleId id)
|
js::UnwatchProperty(JSContext* cx, HandleObject obj, HandleId id)
|
||||||
{
|
{
|
||||||
if (UnwatchOp op = obj->getOpsUnwatch())
|
|
||||||
return op(cx, obj, id);
|
|
||||||
|
|
||||||
return UnwatchGuts(cx, obj, id);
|
return UnwatchGuts(cx, obj, id);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
|
||||||
|
|
@ -141,8 +141,6 @@ class JSObject : public js::gc::Cell
|
||||||
js::GetOwnPropertyOp getOpsGetOwnPropertyDescriptor()
|
js::GetOwnPropertyOp getOpsGetOwnPropertyDescriptor()
|
||||||
const { return getClass()->getOpsGetOwnPropertyDescriptor(); }
|
const { return getClass()->getOpsGetOwnPropertyDescriptor(); }
|
||||||
js::DeletePropertyOp getOpsDeleteProperty() const { return getClass()->getOpsDeleteProperty(); }
|
js::DeletePropertyOp getOpsDeleteProperty() const { return getClass()->getOpsDeleteProperty(); }
|
||||||
js::WatchOp getOpsWatch() const { return getClass()->getOpsWatch(); }
|
|
||||||
js::UnwatchOp getOpsUnwatch() const { return getClass()->getOpsUnwatch(); }
|
|
||||||
js::GetElementsOp getOpsGetElements() const { return getClass()->getOpsGetElements(); }
|
js::GetElementsOp getOpsGetElements() const { return getClass()->getOpsGetElements(); }
|
||||||
JSNewEnumerateOp getOpsEnumerate() const { return getClass()->getOpsEnumerate(); }
|
JSNewEnumerateOp getOpsEnumerate() const { return getClass()->getOpsEnumerate(); }
|
||||||
JSFunToStringOp getOpsFunToString() const { return getClass()->getOpsFunToString(); }
|
JSFunToStringOp getOpsFunToString() const { return getClass()->getOpsFunToString(); }
|
||||||
|
|
|
||||||
|
|
@ -315,13 +315,6 @@ class JS_FRIEND_API(SecurityWrapper) : public Base
|
||||||
virtual bool regexp_toShared(JSContext* cx, HandleObject proxy, RegExpGuard* g) const override;
|
virtual bool regexp_toShared(JSContext* cx, HandleObject proxy, RegExpGuard* g) const override;
|
||||||
virtual bool boxedValue_unbox(JSContext* cx, HandleObject proxy, MutableHandleValue vp) const override;
|
virtual bool boxedValue_unbox(JSContext* cx, HandleObject proxy, MutableHandleValue vp) const override;
|
||||||
|
|
||||||
// Allow isCallable and isConstructor. They used to be class-level, and so could not be guarded
|
|
||||||
// against.
|
|
||||||
|
|
||||||
virtual bool watch(JSContext* cx, JS::HandleObject proxy, JS::HandleId id,
|
|
||||||
JS::HandleObject callable) const override;
|
|
||||||
virtual bool unwatch(JSContext* cx, JS::HandleObject proxy, JS::HandleId id) const override;
|
|
||||||
|
|
||||||
/*
|
/*
|
||||||
* Allow our subclasses to select the superclass behavior they want without
|
* Allow our subclasses to select the superclass behavior they want without
|
||||||
* needing to specify an exact superclass.
|
* needing to specify an exact superclass.
|
||||||
|
|
|
||||||
|
|
@ -418,20 +418,6 @@ BaseProxyHandler::setImmutablePrototype(JSContext* cx, HandleObject proxy, bool*
|
||||||
return true;
|
return true;
|
||||||
}
|
}
|
||||||
|
|
||||||
bool
|
|
||||||
BaseProxyHandler::watch(JSContext* cx, HandleObject proxy, HandleId id, HandleObject callable) const
|
|
||||||
{
|
|
||||||
JS_ReportErrorNumberASCII(cx, GetErrorMessage, nullptr, JSMSG_CANT_WATCH,
|
|
||||||
proxy->getClass()->name);
|
|
||||||
return false;
|
|
||||||
}
|
|
||||||
|
|
||||||
bool
|
|
||||||
BaseProxyHandler::unwatch(JSContext* cx, HandleObject proxy, HandleId id) const
|
|
||||||
{
|
|
||||||
return true;
|
|
||||||
}
|
|
||||||
|
|
||||||
bool
|
bool
|
||||||
BaseProxyHandler::getElements(JSContext* cx, HandleObject proxy, uint32_t begin, uint32_t end,
|
BaseProxyHandler::getElements(JSContext* cx, HandleObject proxy, uint32_t begin, uint32_t end,
|
||||||
ElementAdder* adder) const
|
ElementAdder* adder) const
|
||||||
|
|
|
||||||
|
|
@ -504,20 +504,6 @@ Proxy::boxedValue_unbox(JSContext* cx, HandleObject proxy, MutableHandleValue vp
|
||||||
|
|
||||||
JSObject * const TaggedProto::LazyProto = reinterpret_cast<JSObject*>(0x1);
|
JSObject * const TaggedProto::LazyProto = reinterpret_cast<JSObject*>(0x1);
|
||||||
|
|
||||||
/* static */ bool
|
|
||||||
Proxy::watch(JSContext* cx, JS::HandleObject proxy, JS::HandleId id, JS::HandleObject callable)
|
|
||||||
{
|
|
||||||
JS_CHECK_RECURSION(cx, return false);
|
|
||||||
return proxy->as<ProxyObject>().handler()->watch(cx, proxy, id, callable);
|
|
||||||
}
|
|
||||||
|
|
||||||
/* static */ bool
|
|
||||||
Proxy::unwatch(JSContext* cx, JS::HandleObject proxy, JS::HandleId id)
|
|
||||||
{
|
|
||||||
JS_CHECK_RECURSION(cx, return false);
|
|
||||||
return proxy->as<ProxyObject>().handler()->unwatch(cx, proxy, id);
|
|
||||||
}
|
|
||||||
|
|
||||||
/* static */ bool
|
/* static */ bool
|
||||||
Proxy::getElements(JSContext* cx, HandleObject proxy, uint32_t begin, uint32_t end,
|
Proxy::getElements(JSContext* cx, HandleObject proxy, uint32_t begin, uint32_t end,
|
||||||
ElementAdder* adder)
|
ElementAdder* adder)
|
||||||
|
|
@ -698,18 +684,6 @@ js::proxy_Construct(JSContext* cx, unsigned argc, Value* vp)
|
||||||
return Proxy::construct(cx, proxy, args);
|
return Proxy::construct(cx, proxy, args);
|
||||||
}
|
}
|
||||||
|
|
||||||
bool
|
|
||||||
js::proxy_Watch(JSContext* cx, HandleObject obj, HandleId id, HandleObject callable)
|
|
||||||
{
|
|
||||||
return Proxy::watch(cx, obj, id, callable);
|
|
||||||
}
|
|
||||||
|
|
||||||
bool
|
|
||||||
js::proxy_Unwatch(JSContext* cx, HandleObject obj, HandleId id)
|
|
||||||
{
|
|
||||||
return Proxy::unwatch(cx, obj, id);
|
|
||||||
}
|
|
||||||
|
|
||||||
bool
|
bool
|
||||||
js::proxy_GetElements(JSContext* cx, HandleObject proxy, uint32_t begin, uint32_t end,
|
js::proxy_GetElements(JSContext* cx, HandleObject proxy, uint32_t begin, uint32_t end,
|
||||||
ElementAdder* adder)
|
ElementAdder* adder)
|
||||||
|
|
@ -750,7 +724,6 @@ const ObjectOps js::ProxyObjectOps = {
|
||||||
js::proxy_SetProperty,
|
js::proxy_SetProperty,
|
||||||
js::proxy_GetOwnPropertyDescriptor,
|
js::proxy_GetOwnPropertyDescriptor,
|
||||||
js::proxy_DeleteProperty,
|
js::proxy_DeleteProperty,
|
||||||
js::proxy_Watch, js::proxy_Unwatch,
|
|
||||||
js::proxy_GetElements,
|
js::proxy_GetElements,
|
||||||
nullptr, /* enumerate */
|
nullptr, /* enumerate */
|
||||||
js::proxy_FunToString
|
js::proxy_FunToString
|
||||||
|
|
|
||||||
|
|
@ -65,9 +65,6 @@ class Proxy
|
||||||
static bool regexp_toShared(JSContext* cx, HandleObject proxy, RegExpGuard* g);
|
static bool regexp_toShared(JSContext* cx, HandleObject proxy, RegExpGuard* g);
|
||||||
static bool boxedValue_unbox(JSContext* cx, HandleObject proxy, MutableHandleValue vp);
|
static bool boxedValue_unbox(JSContext* cx, HandleObject proxy, MutableHandleValue vp);
|
||||||
|
|
||||||
static bool watch(JSContext* cx, HandleObject proxy, HandleId id, HandleObject callable);
|
|
||||||
static bool unwatch(JSContext* cx, HandleObject proxy, HandleId id);
|
|
||||||
|
|
||||||
static bool getElements(JSContext* cx, HandleObject obj, uint32_t begin, uint32_t end,
|
static bool getElements(JSContext* cx, HandleObject obj, uint32_t begin, uint32_t end,
|
||||||
ElementAdder* adder);
|
ElementAdder* adder);
|
||||||
|
|
||||||
|
|
|
||||||
|
|
@ -130,24 +130,5 @@ SecurityWrapper<Base>::defineProperty(JSContext* cx, HandleObject wrapper, Handl
|
||||||
return Base::defineProperty(cx, wrapper, id, desc, result);
|
return Base::defineProperty(cx, wrapper, id, desc, result);
|
||||||
}
|
}
|
||||||
|
|
||||||
template <class Base>
|
|
||||||
bool
|
|
||||||
SecurityWrapper<Base>::watch(JSContext* cx, HandleObject proxy,
|
|
||||||
HandleId id, HandleObject callable) const
|
|
||||||
{
|
|
||||||
ReportUnwrapDenied(cx);
|
|
||||||
return false;
|
|
||||||
}
|
|
||||||
|
|
||||||
template <class Base>
|
|
||||||
bool
|
|
||||||
SecurityWrapper<Base>::unwatch(JSContext* cx, HandleObject proxy,
|
|
||||||
HandleId id) const
|
|
||||||
{
|
|
||||||
ReportUnwrapDenied(cx);
|
|
||||||
return false;
|
|
||||||
}
|
|
||||||
|
|
||||||
|
|
||||||
template class js::SecurityWrapper<Wrapper>;
|
template class js::SecurityWrapper<Wrapper>;
|
||||||
template class js::SecurityWrapper<CrossCompartmentWrapper>;
|
template class js::SecurityWrapper<CrossCompartmentWrapper>;
|
||||||
|
|
|
||||||
|
|
@ -408,7 +408,6 @@ const ObjectOps ModuleEnvironmentObject::objectOps_ = {
|
||||||
ModuleEnvironmentObject::setProperty,
|
ModuleEnvironmentObject::setProperty,
|
||||||
ModuleEnvironmentObject::getOwnPropertyDescriptor,
|
ModuleEnvironmentObject::getOwnPropertyDescriptor,
|
||||||
ModuleEnvironmentObject::deleteProperty,
|
ModuleEnvironmentObject::deleteProperty,
|
||||||
nullptr, nullptr, /* watch/unwatch */
|
|
||||||
nullptr, /* getElements */
|
nullptr, /* getElements */
|
||||||
ModuleEnvironmentObject::enumerate,
|
ModuleEnvironmentObject::enumerate,
|
||||||
nullptr
|
nullptr
|
||||||
|
|
@ -790,7 +789,6 @@ static const ObjectOps WithEnvironmentObjectOps = {
|
||||||
with_SetProperty,
|
with_SetProperty,
|
||||||
with_GetOwnPropertyDescriptor,
|
with_GetOwnPropertyDescriptor,
|
||||||
with_DeleteProperty,
|
with_DeleteProperty,
|
||||||
nullptr, nullptr, /* watch/unwatch */
|
|
||||||
nullptr, /* getElements */
|
nullptr, /* getElements */
|
||||||
nullptr, /* enumerate (native enumeration of target doesn't work) */
|
nullptr, /* enumerate (native enumeration of target doesn't work) */
|
||||||
nullptr,
|
nullptr,
|
||||||
|
|
@ -1159,7 +1157,6 @@ static const ObjectOps RuntimeLexicalErrorObjectObjectOps = {
|
||||||
lexicalError_SetProperty,
|
lexicalError_SetProperty,
|
||||||
lexicalError_GetOwnPropertyDescriptor,
|
lexicalError_GetOwnPropertyDescriptor,
|
||||||
lexicalError_DeleteProperty,
|
lexicalError_DeleteProperty,
|
||||||
nullptr, nullptr, /* watch/unwatch */
|
|
||||||
nullptr, /* getElements */
|
nullptr, /* getElements */
|
||||||
nullptr, /* enumerate (native enumeration of target doesn't work) */
|
nullptr, /* enumerate (native enumeration of target doesn't work) */
|
||||||
nullptr, /* this */
|
nullptr, /* this */
|
||||||
|
|
|
||||||
|
|
@ -924,8 +924,6 @@ const js::ObjectOps XPC_WN_ObjectOpsWithEnumerate = {
|
||||||
nullptr, // setProperty
|
nullptr, // setProperty
|
||||||
nullptr, // getOwnPropertyDescriptor
|
nullptr, // getOwnPropertyDescriptor
|
||||||
nullptr, // deleteProperty
|
nullptr, // deleteProperty
|
||||||
nullptr, // watch
|
|
||||||
nullptr, // unwatch
|
|
||||||
nullptr, // getElements
|
nullptr, // getElements
|
||||||
XPC_WN_JSOp_Enumerate,
|
XPC_WN_JSOp_Enumerate,
|
||||||
nullptr, // funToString
|
nullptr, // funToString
|
||||||
|
|
|
||||||
Loading…
Add table
Add a link
Reference in a new issue