Right, no "useful common semantics" doesn't means that there aren't specific 
(perhaps many) cases that will work in all current browsers.  It just means 
that it is hard to find a generalization of those specific cases that could be 
a useful implementable semantics that would be worth trying to spec.  One might 
be: the enclosing function only contains a single declaration for inner 
function F and all references to F must be in the same block as the declaration 
of F and follow the declaration.

Allen




On Feb 8, 2011, at 2:56 PM, Brendan Eich wrote:

> On Feb 8, 2011, at 2:41 PM, Allen Wirfs-Brock wrote:
> 
>>> The other one I know of is nested named function declarations 
>>> <http://wiki.ecmascript.org/doku.php?id=conventions:no_non_standard_strict_decls>.
>>>  And there was an ASI mis-description for "break" and "continue" that was 
>>> corrected between ES5 and ES5.1.
>> 
>> There really isn't any useful common semantics for function declaration in 
>> blocks.  See 
>> https://blogs.msdn.com/b/ie/archive/2010/08/25/chakra-interoperability-means-more-than-just-standards.aspx
>>  
> 
> Yet we keep running into bugs where someone uses function-in-block 
> intersection semantics.
> 
> Clearly it's useful, since we want it in Harmony. Of course, it's not 
> supported so developers counting on it are on thin ice regarding name 
> collisions, name leaks, etc.
> 
> Most recent example:
> 
> https://bugzilla.mozilla.org/show_bug.cgi?id=630851
> 
> See https://bugzilla.mozilla.org/show_bug.cgi?id=630851#c8 in particular.
> 
> Nevertheless, we are banning function-in-block under Firefox 4's ES5 strict 
> mode implementation.
> 
> /be
> 

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

Reply via email to