On 4 Aug 2014, at 18:55, Jason Orendorff <jason.orendo...@gmail.com> wrote:
> We're talking about something different here, legacy *decimal* integer > literals starting with 0 and containing 8 or 9. As far as I know, no > version of ES has ever permitted this kind of nonsense, but supporting > it is apparently required for Web compatibility. (One more great > reason to write all your code under "use strict".) I don’t understand this comment. What does strict mode have to do with this? Note that `08` and `09` are not octal literals, since `8` and `9` are not `OctalDigit`s. In non-strict mode, https://people.mozilla.org/~jorendorff/es6-draft.html#sec-additional-syntax-numeric-literals applies, but even then `08` and `09` should throw (as per the current spec) for the same reason. Strict mode doesn’t make a difference as per the current spec when parsing this program: ```js 08 ``` It does in Firefox/Spidermonkey, but that seems like a bug. Test this in the most recent nightly: ```js (function() { 'use strict'; return 08; }()) ``` This currently throws: > SyntaxError: octal literals and octal escape sequences are deprecated …which is a misleading message. It should instead say something like: > SyntaxError: numbers starting with 0 followed by a digit are octals and can't > contain 8 _______________________________________________ es-discuss mailing list es-discuss@mozilla.org https://mail.mozilla.org/listinfo/es-discuss