Automatic Semicolon Insertion Is Evil
Here's an edge case from hell... Imagine your team inherting a cool-looking JavaScript project at work. It's an enormous amount of code, but mostly it's a server-side application. As time goes on, your team is tasked with building on the client code, and you're adding features and fixing bugs as the project develops. Then one day your team decides it's time to minify the client-side JavaScript. "Easy," you think, as you fire up your favorite minifier. Suddenly, an error appears. And another. And another. As you are putting out the fires, it dawns on your team that something was very, very wrong with the code. The original developers chose to rely automatic semicolon insertion in their JavaScript, and minification has just potentially destroyed this project. This is just one example of ASI coming back to bite you in the ass. The same thing will happen to your ASI-filled JavaScript after you put it on CloudFlare (they use an in-house minifier). The potential for disaster is just too great.
There are many posts about the dangers of ASI (importantly, this one by the creator of JavaScript).
Automatic semicolon insertion is not a simple stylistic choice, no matter what anybody says. This is not the same thing as deciding where to put curly braces in your if statements. If you are relying on ASI to complete your expressions and you don't know the precise mechanism used by your JS interpreter for inserting semicolons, you are writing broken code. I am certain anyone who says ASI is worth the trouble has never spent hours debugging script which works until it gets munged in a minifier. I realize it's pretty trendy and cool-looking not to use semicolons, but you are punishing the programmers that come after you. Even if you know the rules by heart, you shouldn't use ASI unless you know with certainty that this script will never be minified in the future. If you are writing JavaScript that anyone else may one day be responsible for, you are punishing other programmers with your code by relying on automatic semicolon insertion. And that doesn't make you cool at all.