<div class="snippet-clipboard-content notranslate position-relative overflow-auto" data-snippet-clipboard-copy-content="❯❯ babel --version
5.8.23 (babel-core 5.8.25)"><pre class="notranslate"><code class="notranslate">❯❯ babel --version
5.8.23 (babel-core 5.8.25)
</code></pre></div>
<p dir="auto">input</p>
<div class="snippet-clipboard-content notranslate position-relative overflow-auto" data-snippet-clipboard-copy-content="()=&gt;{}()"><pre class="notranslate"><code class="notranslate">()=&gt;{}()
</code></pre></div>
<p dir="auto">output</p>
<div class="snippet-clipboard-content notranslate position-relative overflow-auto" data-snippet-clipboard-copy-content="&quot;use strict&quot;;

(function () {})();"><pre class="notranslate"><code class="notranslate">"use strict";

(function () {})();
</code></pre></div>
<p dir="auto">expected:</p>
<div class="snippet-clipboard-content notranslate position-relative overflow-auto" data-snippet-clipboard-copy-content="Error: Unexpected token &quot;(&quot;"><pre class="notranslate"><code class="notranslate">Error: Unexpected token "("
</code></pre></div>
<p dir="auto">These non-programs are accepted by babel: <code class="notranslate">!()=&gt;0</code>, <code class="notranslate">a + ()=&gt;0</code>, <code class="notranslate">a || ()=&gt;0</code>, etc.</p>
<p dir="auto">Arrows should have the precedence of an assignment expression.</p>