On Apr 23, 2012, at 2:40 AM, Andreas Rossberg wrote:

> On 21 April 2012 11:56, Herby Vojčík <he...@mailbox.sk> wrote:
> 
...
> 
>> JS model _is_ about "sloppy semantics" (I do not call it sloopy, I'd rather
>> called it liberal), that is, undefined if not present.
> 
> It's a term sometimes used on TC39, I didn't invent it (I used to call
> it "classic" mode for improved neutrality).
> 
> I may take issues with associating pre-strict-mode sweeping under the
> rug with liberal ideals, though. :)

I like Martin Rinard's concept of code that is  "failure oblivious" 
http://citeseerx.ist.psu.edu/viewdoc/download?doi=10.1.1.68.9926&rep=rep1&type=pdf
 

Arguably, the robustness of the web is dependent up the fact many Javascript 
based webpages will continue to operate, perhaps in a slight degraded mode, 
even in the face of runtime errors.  I'm all for "early errors" that cause a 
structurally ill-formed script from loading.  But for a well-formed program I 
don't see why throwing a (probably uncaught) exception is necessarily any more 
robust than simply returning undefined when various dynamic failures (such as 
the destructuring situations we are talking about) are encountered.

To me, undefined propagation  feels a lot like NaN propagation in numeric 
expressions.  Those of us who don't do a lot of numeric computation may be 
puzzled by NaNs, but it is a lot easier to simply let a NaN propagate through a 
complex formula and check it at the end, then it is to check for an exception 
on each operation of the formula.  And, sometimes it turns out that the NaN 
didn't really matter at all...

It is important that JavaScript programmer are able to harden the failure 
critical portions of their applications.  Trying to automatically harden 
everything may actually make JS a less useful languages.

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

Reply via email to