typo in 3rd sentence of 2nd paragraph: "can guarantee" --> "can't guarantee"

On Jun 15, 2011, at 9:26 AM, Allen Wirfs-Brock wrote:

> 
> On Jun 15, 2011, at 4:34 AM, Tom Van Cutsem wrote:
> 
>> 2011/6/14 Allen Wirfs-Brock <[email protected]>
>> ...
>>  
>> I emphasize Array when I look at this simply because it is a fairly simple 
>> example of the sort of thing that a host object might currently do and the 
>> most important use case of proxies for me is the replacement/emulation of 
>> host objects.  I really don't know where this idea that non-configurable 
>> implies no special semantics comes from.  That isn't the case in the ES5 
>> specification  (10.6,15.3.5.4,15.4.5.1+15.4.5.2, 15.5.5.2) for such 
>> properties.
>> 
>> I'm not sure what you mean by special semantics. If you mean strong 
>> guarantees/invariants, then one example would be that a non-writable, 
>> non-configurable data property is guaranteed to have a stable value. The 
>> proposed strawman allows proxies to define such properties, at the expense 
>> of giving up interception of access to such a property.
> 
> By "special semantics", I mean any semantics for the Object internal methods 
> other than exactly what is specified in section 8.12.  
> 
> The ES specification states requirements but doesn't make any guarantees.  
> For example, it states a requirement on host objects concerning consistency 
> of value for non-writable, non-configurable data properties.  But it can't 
> guarantee that an implementation doesn't have bugs or has simply choosen to 
> ignore that requirement.   Also, the spec. doesn't say that accessing the 
> value of such non-writable/non-configurable properties may not have any 
> side-effects.  As far as I know, nobody has ever actually audited any of the 
> emerging  ES5 browser implementations to see if their DOM implementations 
> fully conform to all of the requirements of the ES5 spec. In the short term, 
> I will be surprised if somebody does this and discoveres that the 
> implementations all fully conform.
> 
> In general I see invariants violations as bugs that you normally don't 
> explicitly write defensives code to detect.  You assume the invariant is true 
> and expect any significant violation of the invariant to manifest itself in 
> some buggy behavior of your program.  Any reasonable sized application or 
> framework is gong to have hundreds, if not thousands, of such invariants.  I 
> don't see why the non-writable/non-configurable invariant is particularly any 
> more or less important than any other of the invariants that might be 
> violated using proxies or just using regular ES code.  In particular, I don't 
> understand why that invariant is so important we would degrade the ability to 
> proxies to support some of their primary uses cases.
> 
> It may be that for some security scenarios it really is important to have 
> truly frozen data only objects.  I have no problem with supporting that need 
> via the fix trap or something like it.  What I object to is using that use 
> case as a justification for not supporting other important use cases such as 
> accurate emulation of built-in objects or the DOM.
> 
> Allen
> 
> 
> _______________________________________________
> 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

Reply via email to