One more thought: people are already avoiding "use strict"; because it bites 
back:

* concatenation with non-strict code and under-testing, but let's hope we are 
past this now;
* performance dinged a bit by strict mode, or at least non-strict calling 
strict and vice versa.

We should try to avoid taking away the forbidden fruit prematurely. In 
particular since ES6 is based on ES5 strict.

When <| is out and well-deployed, maybe. No predictable schedule for when we 
could actually hope to remove __proto__.

/be

On Nov 8, 2011, at 8:57 PM, Mark S. Miller wrote:

> http://www.google.com/support/forum/p/Google+Docs/thread?tid=0cd4a00bd4aef9e4
> But yes. Because the difference would be silent, I'm skeptical too.
> 
> On Tue, Nov 8, 2011 at 8:23 PM, David Herman <dher...@mozilla.com> wrote:
> And another silent semantic change? I wouldn't be so quick to do that. And 
> that's not the direction we were going for __proto__ in the last f2f.
> 
> I *wish* __proto__ were just treated as another normal property. And I'd like 
> for us to work towards a future where that's the case. I'm just skeptical we 
> can do it by cramming it into strict mode.
> 
> Dave
> 
> On Nov 8, 2011, at 3:50 PM, Mark S. Miller wrote:
> 
>> 
>> 
>> On Tue, Nov 8, 2011 at 3:46 PM, Mark S. Miller <erig...@google.com> wrote:
>> 
>> 
>> On Tue, Nov 8, 2011 at 3:33 PM, David Herman <dher...@mozilla.com> wrote:
>>> Perhaps __proto__ should not be writeable in "use strict"?
>>> 
>>> That's a great idea! This never occurred to me, and I have not heard anyone 
>>> suggest this. Thanks!
>> 
>> Doesn't work.
>> 
>>     obj[(function(__){return __ + "proto" + __})("__")]
>> 
>> If the "[" above is a strict "[", it should not be able to address 
>> "__proto__", regardless of whether the  "__proto__" is computed or not. Or 
>> if we intend only to suppress writing, then
>> 
>>      obj[(function(__){return __ + "proto" + __})("__")] = {}
>> 
>> should still fail if the "[" above is in strict code.
>> 
>> Sorry, it should not fail. It should simply create a normal property that 
>> happens to be named "__proto__". Likewise, your first example should simply 
>> address such a normal property. Then JSON would again be an almost-subset of 
>> ES5/strict, modulo \u2028 and \u2029.
>> 
>>  
>> 
>>  
>> 
>> Dave
>> 
>> 
>> 
>> 
>> -- 
>>     Cheers,
>>     --MarkM
>> 
>> 
>> 
>> -- 
>>     Cheers,
>>     --MarkM
> 
> 
> 
> 
> -- 
>     Cheers,
>     --MarkM
> _______________________________________________
> es-discuss mailing list
> es-discuss@mozilla.org
> https://mail.mozilla.org/listinfo/es-discuss

_______________________________________________
es-discuss mailing list
es-discuss@mozilla.org
https://mail.mozilla.org/listinfo/es-discuss

Reply via email to