On Feb 13, 2012, at 11:43 AM, Gavin Barraclough wrote:

> On Feb 13, 2012, at 9:55 AM, Allen Wirfs-Brock wrote:
> 
>> Finally, an alternative to extending [[Get]] and [[Put]] would be to extend 
>> the GetValue abstraction operation (8.7.1) and the Simple Assignment 
>> evaluation semantics (11.13.1).
>> 
>> [[DefineOwnProperty]] and [[Delete]] still need to be extended but, 
>> independent of any of the above, these two can probably be made over-riding 
>> implementations on Object.prototype rather than extending the default 
>> implementations used by all objects.
> 
> 
> Hi Allen,
> 
> I don't know if this is helpful, but Mark's strawman seemed to make this much 
> simpler, perhaps it might make for a less intrusive specification to define 
> that this should behave as if it is an accessor property following Mark's 
> ProtoGetter/ProtoSetter descriptions, whilst leaving how the property is 
> reflected ambiguous?  I think this should amount to the same thing, just 
> might be easier to encapsulate this way?

I believe what that amounts to is specifying the property as (not "as if") an 
accessor property with ProtoGetter/ProtoSetter get/set functions and then 
specifying a  [[GetOwnProperty]] over-ride for Object.prototype.__proto__ that 
allows an implementation to choose between returning a data property descriptor 
and returning a accessor property descriptor with censored get/set functions.

There would still need to be a way to specify that special treatment of 
__proto__ in object literals is disabled when Object.prototype.__proto__ is 
modified or deleted.  While this could be done with prose I think using 
[[Delete]] and [[DefineOwnProperty]] hooks (and the UnderscoreProtoEnabled 
variable) is a more precise why to specify what actions are required to 
actually disables __proto__.

In general, I prefer preciseness over conciseness in the specification.

Also, I think we need some more thought about how the approaches (specified as 
accessor vs. specified as [[Put]]/[[Get]] extensions) differ in the presence of 
proxies.

Allen



_______________________________________________
es-discuss mailing list
[email protected]
https://mail.mozilla.org/listinfo/es-discuss

Reply via email to