On Nov 13, 2012, at 10:35 PM, Brendan Eich wrote:

> Erik Arvidsson wrote:
>> On Tue, Nov 13, 2012 at 3:25 PM, Tom Van Cutsem <[email protected] 
>> <mailto:[email protected]>> wrote:
>> 
>> 
>>    So, my proposal: let's revert the fundamental traps of Handler to
>>    become abstract methods again. This forces subclasses of Handler
>>    to provide all fundamentals at once, avoiding the footgun.
>> 
>> 
>> Maybe we should skip the derived traps for ES6 and see if the extra 
>> allocation really becomes an issue in reality? This way we are keeping the 
>> API smaller and the risk of errors lower. We can always add the derived 
>> traps later, can't we?
> 
> Allocations always matter, in my experience -- even with V8.
> 
> Also Tom's point about precision counts, independent of allocations. A 
> "hasOwn" test in the MOP should not call the same thing that 
> Object.getOwnPropertyDescriptor calls, if we can help it -- especially 
> without a flag argument to hint the difference, but that flag argument is 
> blecherous anyway.
> 

A less blecherous flag might be as follows
 
getOwnPropertyDescriptor: function(target, name, populate=true) -> desc | 
undefined

If populate is false, the returned property descriptor doesn't need to be 
populated with the properties that describe attributes.  In that case it must 
be a frozen object.

This allows a preallocated descriptor to be used to indicate the existence of a 
property.  It also removes the blechiness of using an argument to steer the 
return type of the function.

Allen



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

Reply via email to