On Apr 19, 2011, at 3:08 PM, Garrett Smith wrote:
> On 4/19/11, Isaac Schlueter <[email protected]> wrote:
>> ASI didn't change the program behavior. ASI didn't happen in that example.
Isaac is correct.
>> Newline elision changed the program behavior.
Or newlines being insignificant whitespace, let's say.
> No, `MyWidget = function(){}` was not explicitly terminated by a
> semicolon. The end of the input stream is reached and a semicolon is
> inserted.
Not in the concatenation of a.js and b.js. Please attend to your own example.
Only if a.js is processed as a Program (the grammar's goal nonterminal), in
which case, yes, ASI kicks in, and no, there is no subsequent ( or [ or similar
input to cause trouble.
> "Newline elision" did not change behavior.
>
> Concatenation of a.js and b.js results in behavior that is not the
> same as when a.js and b.js are in separate files.
That is true, but now you are changing the terms of the debate. The claim that
ASI does not affect non-error semantics applies for any given Program -- not
for Program X and Program Y.
What you describe is a hazard, we've covered it. But your argument foundered on
ASI applying differently on two different programs. Of course that can happen.
/be
_______________________________________________
es-discuss mailing list
[email protected]
https://mail.mozilla.org/listinfo/es-discuss