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