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

Reply via email to