On Jan 6, 2011, at 12:17 AM, Garrett Smith wrote:

> On 1/5/11, Allen Wirfs-Brock <al...@wirfs-brock.com> wrote:
> [...]
>> the function expression form has a well-defined meaning anywhere including
>> in the compound statement blocks such as if-statements.  The meaning of the
>> latter two declaration forms are not defined by the standard when they occur
>> within compound statement blocks.  What they do, depends upon the browser.
>> 
> [...]
> 
> ES5 note uses some terminology that I don't understand.

I missed the "issue a warning" there at the bottom of 12, but there's also one 
in 14.1.


> "disallow usage"? "issue a warning"? What do those mean? It'd make
> sense to say "throw a SyntaxError". What does it mean to issue a
> warning? When does it happen? After the misplaced FD early (as early
> errors)? Or do warnings cause for abrupt completion?
> 
> I'd prefer "An implementation that handles FD as a Statement must
> issue a warning" but I think "issue a warning" should be defined.

We are going to ban function declarations in blocks in strict mode, in Firefox 
4. We have warning facilitiies too but they can generate a ton of noise without 
extra latch logic to suppress all but the first and avoid a console-spam storm. 
We're not going to warn about functions in blocks.

A recent function-in-block case we found involved an expectation of hoisting, 
either to block top (as proposed for Harmony, where the function binding would 
be block-local) or top of enclosing function or program (as IE and followers 
do). We evangelized the site successfully to reorder things. FYI, and a hopeful 
sign.

/be

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

Reply via email to