Early error on '0' followed by '8' or '9' in numeric literals does not seem to be web-compatible

Mathias Bynens mathias at qiwi.be
Wed Aug 6 22:49:40 PDT 2014


On 7 Aug 2014, at 02:46, Bill Frantz <frantz at pwpconsult.com> wrote:

> On Tue, Aug 5, 2014 at 7:56 AM, Mathias Bynens <mathias at qiwi.be> wrote:
> 
> ...
>> In section 11.8.3 (Numeric Literals), the definition for
>> `DecimalIntegerLiteral` should somehow be tweaked to match that of
>> `DecimalDigits`, with the exception that if the first digit is `0` and all
>> other digits are octal digits (0-7) it must be treated as a legacy octal
>> literal.
> 
> So this horrible footgun, changing the value of a constant changes its radix, is only lurking in sloppy mode.

It affects strict mode code too in existing implementations: there you go from not throwing on e.g. `0123456789` (which is not an octal literal because of the `8` and `9`) to suddenly throwing a syntax error when the value changes to `0` followed by only octal digits (as then it is an octal literal). See my previous posts in this thread.


More information about the es-discuss mailing list