It&#x27;s one &quot;extra&quot; rule. I call it the &quot;Winky Frown Rule&quot; or you could less cheekily refer to it as something of a &quot;Complete Emoji Rule&quot;: lines that start with frowns (, [, ` should be winky frowns: ;(, ;[, ;`<p>95% of the time I ever use a winky frown is Typescript type assertions ;(&lt;any&gt;someObj)...<p>It doesn&#x27;t impact destructuring at all because destructuring lines start with let (or const, or maybe var if you are feeling old school that day).<p>ASI is not very different at all from the newline rules in Python, ML, Haskell, et al... Freedom from semicolons makes ES2015 feel like the OCaml derivative it always sort of has been.