2012/7/31 Brandon Benvie <bran...@brandonbenvie.com> > You can still do useful things even without access to the public name > though, as long as you can still forward to the target and get the result > back. This allows you to instrument the action and to associate it with > something unique even if you don't have a way to access the name and it's > valuable arbitrarily outside of the trap. However, if there's no way to > forward it correctly then the trap can't really exist at all anyway.
No, if a handler intercepts a private name access for a private name it doesn't know, it has no way of forwarding the access in such a way that it can still intercept the result. That would allow the handler to read or change the value of a private name it doesn't know. The only way a handler can forward a private name access is by returning undefined from its getName trap. The forwarding at that point is done by the proxy, with no further interaction with the handler. The handler doesn't get to change the value returned from target[name]. This is crucial. AFAICT, the only two useful things a handler can do when it intercepts a private name it knows nothing about is: 1) ask the proxy to forward 2) throw If the handler does know of the private name, or the name is unique, then the handler can do the forwarding itself and intercept/change/decorate the result as usual. Cheers, Tom
_______________________________________________ es-discuss mailing list es-discuss@mozilla.org https://mail.mozilla.org/listinfo/es-discuss