07.08.2014, 09:49, "Mathias Bynens" <math...@qiwi.be>:
> On 7 Aug 2014, at 02:46, Bill Frantz <fra...@pwpconsult.com> wrote:
>>  On Tue, Aug 5, 2014 at 7:56 AM, Mathias Bynens <math...@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.

Throw if value is ambiguous (i.e. `052`), don't throw if value is unambiguous 
(i.e. `05`, `082`). Looks good to me.

It is not compiler job to prevent bad code style, it's what linters should do.
_______________________________________________
es-discuss mailing list
es-discuss@mozilla.org
https://mail.mozilla.org/listinfo/es-discuss

Reply via email to