It's not a factory. Cc'ing Dave and Sam, who may have a thought. We've
talked in TC39 about putting it in a built-in module.
/be
Tom Schuster wrote:
ProxyConstructor or java style proxyfactory
On Jun 20, 2013 8:12 PM, "Luke Wagner"<[email protected]> wrote:
Agreed. Hard to think of a name that isn't ambiguous with
ObjectProxyClass/FunctionProxyClass. Perhaps ProxySingletonClass?
----- Original Message -----
It looks like ProxyClass is only used for the "Proxy" object that we
add to the global (i.e., the thing that allows you to do
Proxy.create). That object isn't actually a proxy at all. It
probably would make sense to rename ProxyClass to something less
confusing.
-Bill
----- Original Message -----
From: "Nicholas Nethercote"<[email protected]>
To: "JS Internals list"
<[email protected]>
Sent: Wednesday, June 19, 2013 11:33:12 PM
Subject: [JS-internals] Proxy question
Hi,
Here's some code from jsproxy.h:
inline bool IsObjectProxyClass(const Class *clasp)
{
return clasp ==&js::ObjectProxyClass || clasp ==
&js::OuterWindowProxyClass;
}
inline bool IsFunctionProxyClass(const Class *clasp)
{
return clasp ==&js::FunctionProxyClass;
}
inline bool IsProxy(JSObject *obj)
{
Class *clasp = GetObjectClass(obj);
return IsObjectProxyClass(clasp) ||
IsFunctionProxyClass(clasp);
}
So... IsProxy() succeeds if an object has one of the following
classes: FunctionProxyClass, ObjectProxyClass,
OuterWindowProxyClass.
However, it fails if the object's class is ProxyClass. This is...
surprising. Is it a bug?
If I try changing IsProxy() to allow ProxyClass I get assertion
failures.
There's a similar case in jsfriendapi.h where ProxyClass is
ignored:
inline bool
GetObjectProto(JSContext *cx, JS::Handle<JSObject*> obj,
JS::MutableHandle<JSObject*> proto)
{
// njn: hmm
js::Class *clasp = GetObjectClass(obj);
if (clasp ==&js::ObjectProxyClass ||
clasp ==&js::OuterWindowProxyClass ||
clasp ==&js::FunctionProxyClass)
{
return JS_GetPrototype(cx, obj, proto.address());
}
Nick
_______________________________________________
dev-tech-js-engine-internals mailing list
[email protected]
https://lists.mozilla.org/listinfo/dev-tech-js-engine-internals
_______________________________________________
dev-tech-js-engine-internals mailing list
[email protected]
https://lists.mozilla.org/listinfo/dev-tech-js-engine-internals
_______________________________________________
dev-tech-js-engine-internals mailing list
[email protected]
https://lists.mozilla.org/listinfo/dev-tech-js-engine-internals
_______________________________________________
dev-tech-js-engine-internals mailing list
[email protected]
https://lists.mozilla.org/listinfo/dev-tech-js-engine-internals
_______________________________________________
dev-tech-js-engine-internals mailing list
[email protected]
https://lists.mozilla.org/listinfo/dev-tech-js-engine-internals