Re: Legacy const, attempt 2 (Re: Legacy const)
On 18 April 2012 19:13, Geoffrey Sneddon gsned...@opera.com wrote: I've just had it pointed out to me that my original email made little sense, so let's try again: const has historically been needed in non-strict/strict code for web compatibility on non-IE code (typically either down to server-side UA sniffing or just explicitly non-support of IE). IE still doesn't support it, which may suggest it's not needed for compatibility any more, but as far as I can tell removing it would break enough to make it infeasible. As such, we should spec it: likely block-scoped in modules, and function-scoped otherwise. We should only really not spec it if we can get everyone who currently supports it to drop it. IE has consts, use execScript with vbs. I think Andrea did a blog post on it: http://webreflection.blogspot.co.uk/2007/10/cow-javascript-define-php-like-function.html The const keyword is a little freaky overall, Firefox seems to support it yet Opera (last time I checked) supports the keyword but doesn't perform a const operation. ___ es-discuss mailing list es-discuss@mozilla.org https://mail.mozilla.org/listinfo/es-discuss
Re: Legacy const, attempt 2 (Re: Legacy const)
gaz Heyes wrote: IE has consts, use execScript with vbs. I think Andrea did a blog post on it: http://webreflection.blogspot.co.uk/2007/10/cow-javascript-define-php-like-function.html Any port in a storm, but c'mon -- we're talking about 'const x = 42;' written in JS. That has never been supported in IE and I recall an IE blog post (from Allen, if memory serves) about why not. /be ___ es-discuss mailing list es-discuss@mozilla.org https://mail.mozilla.org/listinfo/es-discuss
Re: Legacy const, attempt 2 (Re: Legacy const)
On Apr 19, 2012, at 10:58 AM, Brendan Eich wrote: gaz Heyes wrote: IE has consts, use execScript with vbs. I think Andrea did a blog post on it: http://webreflection.blogspot.co.uk/2007/10/cow-javascript-define-php-like-function.html Any port in a storm, but c'mon -- we're talking about 'const x = 42;' written in JS. That has never been supported in IE and I recall an IE blog post (from Allen, if memory serves) about why not. http://blogs.msdn.com/b/ie/archive/2010/08/25/chakra-interoperability-means-more-than-just-standards.aspx But that was then and the world is different today. I certainly don't know anything about the plans for IE10. Allen ___ es-discuss mailing list es-discuss@mozilla.org https://mail.mozilla.org/listinfo/es-discuss
Legacy const
const is needed in non-strict/strict code, as well as in Harmony code, has historically been needed for web compatibility on non-IE code. Chakra interestingly doesn't support it. (May simply be a case of it being IE and not fed code that realizes upon it.) Either we should spec it, likely block-scoped in modules as it is now and function-scoped otherwise, or everyone should drop it. (I doubt that's feasible, though.) -- Geoffrey Sneddon — Opera Software http://gsnedders.com http://opera.com ___ es-discuss mailing list es-discuss@mozilla.org https://mail.mozilla.org/listinfo/es-discuss
Re: Legacy const
Const is spec'ed in the ES6 draft for all modes (there is really only strict and non-strict, no longer a Harmony mode). It is block scoped. If anybody wants to update their current implementation ahead of ES6 that's that they should for the ES6 draft spec.. Note that current interoperable uses of const (in browsers that support it) is probably limited to global code or the top level of functions (ie, not within blocks) so correctly supporting block level const probably won't break anything. Allen On Apr 18, 2012, at 9:54 AM, Geoffrey Sneddon wrote: const is needed in non-strict/strict code, as well as in Harmony code, has historically been needed for web compatibility on non-IE code. Chakra interestingly doesn't support it. (May simply be a case of it being IE and not fed code that realizes upon it.) Either we should spec it, likely block-scoped in modules as it is now and function-scoped otherwise, or everyone should drop it. (I doubt that's feasible, though.) -- Geoffrey Sneddon — Opera Software http://gsnedders.com http://opera.com ___ es-discuss mailing list es-discuss@mozilla.org https://mail.mozilla.org/listinfo/es-discuss ___ es-discuss mailing list es-discuss@mozilla.org https://mail.mozilla.org/listinfo/es-discuss
Legacy const, attempt 2 (Re: Legacy const)
I've just had it pointed out to me that my original email made little sense, so let's try again: const has historically been needed in non-strict/strict code for web compatibility on non-IE code (typically either down to server-side UA sniffing or just explicitly non-support of IE). IE still doesn't support it, which may suggest it's not needed for compatibility any more, but as far as I can tell removing it would break enough to make it infeasible. As such, we should spec it: likely block-scoped in modules, and function-scoped otherwise. We should only really not spec it if we can get everyone who currently supports it to drop it. -- Geoffrey Sneddon — Opera Software http://gsnedders.com http://opera.com ___ es-discuss mailing list es-discuss@mozilla.org https://mail.mozilla.org/listinfo/es-discuss
Re: Legacy const, attempt 2 (Re: Legacy const)
Geoffrey Sneddon wrote: As such, we should spec it: likely block-scoped in modules, and function-scoped otherwise. We should only really not spec it if we can get everyone who currently supports it to drop it. The TC39 group met early this year (IIRC it was the Yahoo!-hosted meeting in January) and Gavin B. of Apple agreed to try changing const to match ES6 (block-scoped everywhere), and to reserve 'let' everywhere too. TC39 is not inclined to maximize compatibility for 'const' given non-support in IE so far, and enough non-interoperation among the other browser implementations to keep web developers from relying on it even in non-IE (if (!document.all)) code forks. /be ___ es-discuss mailing list es-discuss@mozilla.org https://mail.mozilla.org/listinfo/es-discuss
Re: Legacy const, attempt 2 (Re: Legacy const)
On Apr 18, 2012, at 11:32 AM, Brendan Eich bren...@mozilla.org wrote: Geoffrey Sneddon wrote: As such, we should spec it: likely block-scoped in modules, and function-scoped otherwise. We should only really not spec it if we can get everyone who currently supports it to drop it. The TC39 group met early this year (IIRC it was the Yahoo!-hosted meeting in January) and Gavin B. of Apple agreed to try changing const to match ES6 (block-scoped everywhere), and to reserve 'let' everywhere too. Alas reserving let everywhere failed, at least one canadian bank has some (really screwed up) code that has a variable named let. Gavin and I are pondering the difficulty of having let reserved everywhere unless you use it in a non-let syntax. TC39 is not inclined to maximize compatibility for 'const' given non-support in IE so far, and enough non-interoperation among the other browser implementations to keep web developers from relying on it even in non-IE (if (!document.all)) code forks. /be ___ es-discuss mailing list es-discuss@mozilla.org https://mail.mozilla.org/listinfo/es-discuss ___ es-discuss mailing list es-discuss@mozilla.org https://mail.mozilla.org/listinfo/es-discuss