On Apr 19, 2011, at 3:08 PM, Garrett Smith wrote:

> On 4/19/11, Isaac Schlueter <i...@izs.me> 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
es-discuss@mozilla.org
https://mail.mozilla.org/listinfo/es-discuss

Reply via email to