Most of the snippets fall into either column 5 or 10 in the output table on this site[1] (which is down, hence cached copy, hopefully it works for you guys). These are mostly interoperable across browser.
1. http://cc.bingj.com/cache.aspx?q=new-es5-strict-mode-requirement-function-statements-not-at-top-level-of-a-program-or-function-are-prohibited&d=4643002220544120&mkt=en-US&setlang=en-US&w=U93XPP_KaQ0_ZPk7dkr1Ij8kiT-SHMWI From: [email protected] [mailto:[email protected]] On Behalf Of Brandon Benvie Sent: Wednesday, December 26, 2012 2:38 PM To: Allen Wirfs-Brock Cc: [email protected] Subject: Re: Real World Func Decl in Block Scope Breakages This appears to be correct. A number of the examples can be boiled down to the following test: if (false) { function x(){ console.log('worked'); } } x(); In Chrome, IE, Opera, and Safari 'worked' will be logged. In Firefox it will silently fail. On Wed, Dec 26, 2012 at 5:22 PM, Allen Wirfs-Brock <[email protected]> wrote: Essentially only, uses of this form are currently interoperable among all major implementations: if (condition) { function foo() {}; foo(); //function declared and invoked in same conditional blocks. } Other uses (without other explicit feature or browser detection logic being involved) are not likely to be interoperable. I haven't looked in detail at all of Brian's snippets. But several that I have glanced at look to me like they wouldn't be interoperable among current browsers. _______________________________________________ es-discuss mailing list [email protected] https://mail.mozilla.org/listinfo/es-discuss

