> > > A proxy having the right to get at an object's private field names is > > equivalent to a proxy having the right to obtain all weak maps for > > which the object is the key. The security implications are the same. > > If a proxy can do a faithful membrane without one of these rights, it > > can do a faithful membrane without the other of these rights. If a > > proxy has no rights to get at an object's private field names, the > > membrane will still work as follows: > > > > proxy[name] does not trap > > object[proxy] calls a trap on the proxy > > Good point -- need a new trap here? Or is this get with an object-type > property name? >
Cormac's paper on virtual values (linked from the harmony:proxies wiki page, see <http://slang.soe.ucsc.edu/cormac/proxy.pdf>) already provides a solution for this case: obj[proxy] traps the handler's "geti(obj)" trap obj[proxy] = value traps the handler's "seti(obj, value)" trap We could argue about the precise names of the traps, but I like this design. Cheers, Tom
_______________________________________________ es-discuss mailing list [email protected] https://mail.mozilla.org/listinfo/es-discuss

