<h3 dir="auto">Input Code</h3>

<div class="highlight highlight-source-js notranslate position-relative overflow-auto" dir="auto" data-snippet-clipboard-copy-content="function f(...[a, b, c]) {
    return a + b + c;
}"><pre class="notranslate"><span class="pl-k">function</span> <span class="pl-en">f</span><span class="pl-kos">(</span>...<span class="pl-kos">[</span><span class="pl-s1">a</span><span class="pl-kos">,</span> <span class="pl-s1">b</span><span class="pl-kos">,</span> <span class="pl-s1">c</span><span class="pl-kos">]</span><span class="pl-kos">)</span> <span class="pl-kos">{</span>
    <span class="pl-k">return</span> <span class="pl-s1">a</span> <span class="pl-c1">+</span> <span class="pl-s1">b</span> <span class="pl-c1">+</span> <span class="pl-s1">c</span><span class="pl-kos">;</span>
<span class="pl-kos">}</span></pre></div>
<h3 dir="auto">Babel Configuration (.babelrc, package.json, cli command)</h3>

<div class="highlight highlight-source-js notranslate position-relative overflow-auto" dir="auto" data-snippet-clipboard-copy-content="{
  &quot;presets&quot;: [&quot;es2015&quot;, &quot;stage-0&quot;]
}"><pre class="notranslate"><span class="pl-kos">{</span>
  <span class="pl-s">"presets"</span>: <span class="pl-kos">[</span><span class="pl-s">"es2015"</span><span class="pl-kos">,</span> <span class="pl-s">"stage-0"</span><span class="pl-kos">]</span>
<span class="pl-kos">}</span></pre></div>
<h3 dir="auto">Expected Behavior</h3>


<p dir="auto">It should compile.</p>
<h3 dir="auto">Current Behavior</h3>


<div class="snippet-clipboard-content notranslate position-relative overflow-auto" data-snippet-clipboard-copy-content="repl: Unexpected token (1:14)
&gt; 1 | function f(...[a, b, c]) {
    |               ^
  2 |     return a + b + c;
  3 | }"><pre class="notranslate"><code class="notranslate">repl: Unexpected token (1:14)
&gt; 1 | function f(...[a, b, c]) {
    |               ^
  2 |     return a + b + c;
  3 | }
</code></pre></div>
<h3 dir="auto">Context</h3>


<p dir="auto">The sample code is taken from MDN (<a href="https://developer.mozilla.org/en/docs/Web/JavaScript/Reference/Functions/rest_parameters" rel="nofollow">here</a>) and runs just fine on Chrome natively.</p>
<h3 dir="auto">Your Environment</h3>

<table role="table">
<thead>
<tr>
<th>software</th>
<th>version</th>
</tr>
</thead>
<tbody>
<tr>
<td>Babel</td>
<td>6.18.0</td>
</tr>
<tr>
<td>node</td>
<td>6.3.1</td>
</tr>
<tr>
<td>npm</td>
<td>3.10.3</td>
</tr>
<tr>
<td>Operating System</td>
<td>macOS 10.11.5</td>
</tr>
</tbody>
</table>
<div class="highlight highlight-source-js notranslate position-relative overflow-auto" dir="auto" data-snippet-clipboard-copy-content="((...[, y, z]) =&gt; console.log(y, z))(1, 2, 3);"><pre class="notranslate"><span class="pl-kos">(</span><span class="pl-kos">(</span>...<span class="pl-kos">[</span><span class="pl-kos">,</span> <span class="pl-s1">y</span><span class="pl-kos">,</span> <span class="pl-s1">z</span><span class="pl-kos">]</span><span class="pl-kos">)</span> <span class="pl-c1">=&gt;</span> <span class="pl-smi">console</span><span class="pl-kos">.</span><span class="pl-en">log</span><span class="pl-kos">(</span><span class="pl-s1">y</span><span class="pl-kos">,</span> <span class="pl-s1">z</span><span class="pl-kos">)</span><span class="pl-kos">)</span><span class="pl-kos">(</span><span class="pl-c1">1</span><span class="pl-kos">,</span> <span class="pl-c1">2</span><span class="pl-kos">,</span> <span class="pl-c1">3</span><span class="pl-kos">)</span><span class="pl-kos">;</span></pre></div>
<blockquote>
<p dir="auto">However, this code is valid in ES2016. It even works in Chrome 50.<br>
For more information, see <a href="https://esdiscuss.org/topic/ignoring-arguments" rel="nofollow">https://esdiscuss.org/topic/ignoring-arguments</a></p>
</blockquote>
<p dir="auto"><a href="https://phabricator.babeljs.io/T7396" rel="nofollow">https://phabricator.babeljs.io/T7396</a></p>