07.08.2014, 18:51, "Mark S. Miller" <[email protected]>:
On Thu, Aug 7, 2014 at 7:08 AM, Alex Kocharin <[email protected]> wrote:
07.08.2014, 09:49, "Mathias Bynens" <[email protected]>:> On 7 Aug 2014, at 02:46, Bill Frantz <[email protected]> wrote:Throw if value is ambiguous (i.e. `052`), don't throw if value is unambiguous (i.e. `05`, `082`). Looks good to me.
>> On Tue, Aug 5, 2014 at 7:56 AM, Mathias Bynens <[email protected]> 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.
It is not compiler job to prevent bad code style, it's what linters should do.It is partially the job of strict mode to prevent some egregiously confusing constructs. There is a line to draw between what strict mode prohibits and what linters warn about. But there's no one line statement of principle that captures this. Strict mode prohibits "with" and some other constructs that make it especially hard to reason about programs.
Well, then the question is this. Is strict mode optional or mandatory to use? Will a developer always have a choice not to use it?
If it is optional like it is now, that's fine.
But if it is going to become the only es mode in the future, it should be extended as much as possible, leaving linting job to linters. Including confusing "with", because it have its uses in template engines.
_______________________________________________ es-discuss mailing list [email protected] https://mail.mozilla.org/listinfo/es-discuss

