> пруф или сам знаешь кто
я тебе рассказал как работают парсеры. не веришь - открой исходники и посмотри.
> var q = 1 var w = 11
я не стал усложнять описание рассказом про контексты. перевод строки меняет контекст на "продолжение выражения с новой строки". и только в этом контексте лексема "var" завершает предыдущее выражение и начинает новое. в контексте "незавершённое выражение" она кидает исключение. а семиколон - это просто ничего не делающий оператор, а никакой не "разделитель выражений"
if( false ) ; else alert(1)
if( false ) {} else alert(1)