I don't like referring to this as "automatic semicolon insertion". The behavior you're referring to here is really about line termination/continuation.
var a =
42
is only parseable one way because assignment requires an argument.Javascript just happens to make assumptions with certain kinds of ambiguities, but then, all programming languages do.