I have an action item from the last TC39 meeting to review and reconcile the ES5 internal "MOP" with the proxy "MOP" (ie, the handler interface and traps specification). I think how I may approach it is to think of native objects as if they were proxies that with a default native handler whose trip implementation replaces the current internal [[ ]] methods. I think in the course of this there might be some refactoring of the current internal methods along the lines of the current fundamental/derived trap distinction.
The sort of items like this and others in recent threads are something I intend to address in this review. Allen On Jan 25, 2011, at 11:47 AM, Tom Van Cutsem wrote: > I think you're right, good catch. > > However, before updating the 'set' implementation at > <http://wiki.ecmascript.org/doku.php?id=harmony:proxies#trap_defaults> to > match the ES5 spec, I wonder if we shouldn't consider the opposite patch: > changing ES-harmony's [[Put]] to match the default proxy 'set' behavior. > > Without proxies, the difference between both algorithms would have been > unobservable. With proxies, it becomes observable, since using the ES5 > algorithm, a default 'set' on an own accessor property would trigger _both_ > the getOwnPropertyDescriptor and the getPropertyDescriptor trap (or, if we > assume getPropertyDescriptor is itself derived as per the other discussion > thread, then getOwnPropertyDescriptor would be called twice). With the > default implementation on the wiki, the getOwnPropertyDescriptor trap only > gets called once. > > The default 'set' trap currently avoids this artifact at the expense of code > duplication. > > Cheers, > Tom > > 2011/1/25 David Bruant <[email protected]> > Hi, > > I have the impression that the set trap has been written to be consistent > with the ES5 [[Put]] algorithm (ES5 section 8.12.5). If it's the case, then > the accessor case should only be considered after the call to > "this.getPropertyDescriptor(name);", but not before. > > Cheers, > > David > > _______________________________________________ > es-discuss mailing list > [email protected] > https://mail.mozilla.org/listinfo/es-discuss > > > _______________________________________________ > es-discuss mailing list > [email protected] > https://mail.mozilla.org/listinfo/es-discuss
_______________________________________________ es-discuss mailing list [email protected] https://mail.mozilla.org/listinfo/es-discuss

