Tab Atkins Jr. (2013-07-19T21:43:17.000Z)
On Fri, Jul 19, 2013 at 2:22 PM, Rick Waldron <waldron.rick at gmail.com> wrote:
> On Fri, Jul 19, 2013 at 3:21 PM, Tab Atkins Jr. <jackalmage at gmail.com>
> wrote:
>> On Fri, Jul 19, 2013 at 1:21 PM, Rick Waldron <waldron.rick at gmail.com>
>> wrote:
>> > While this is all true, the simple answer is:
>> >
>> > var a = 1, b = 2, c = 3;
>> > a < b < c; // true
>> >
>> > is already valid JavaScript and can't be co-opted to express new runtime
>> > evaluation semantics.
>>
>> Well, that's a bad example, because it's true with chained operators
>> too.  Let c = 1.5, though, and you get different behavior.
>
> It doesn't matter if you think my example is a "bad example", it's a valid
> expression per the language's existing grammar.

It certainly does, because we don't expose the parsing directly.  If
we change the interpretation of a piece of code, but it outputs the
same or compatible values, we're fine.  It's only when the observable
results change incompatibly that we have to worry.  In your example,
you get a "true" regardless of the interpretation, which means you're
not demonstrating a problem with changing the interpretation.

~TJ
forbes at lindesay.co.uk (2013-07-24T05:14:23.943Z)
It certainly does, because we don't expose the parsing directly.  If we change the interpretation of a piece of code, but it outputs the
same or compatible values, we're fine.  It's only when the observable results change incompatibly that we have to worry.  In your example, you get a "true" regardless of the interpretation, which means you're not demonstrating a problem with changing the interpretation.