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