<h2 dir="auto">Bug Report</h2>
<p dir="auto"><strong>Current Behavior</strong><br>
<code class="notranslate">x += y</code> doesn't evaluate the <code class="notranslate">x</code> value before <code class="notranslate">await</code>ing.</p>
<p dir="auto"><strong>Input Code</strong></p>
<div class="highlight highlight-source-js notranslate position-relative overflow-auto" dir="auto" data-snippet-clipboard-copy-content="let x = 0;
async function test() {
  x += await 1;
  console.log(x);
}
test();
x += 1;"><pre class="notranslate"><span class="pl-k">let</span> <span class="pl-s1">x</span> <span class="pl-c1">=</span> <span class="pl-c1">0</span><span class="pl-kos">;</span>
<span class="pl-k">async</span> <span class="pl-k">function</span> <span class="pl-en">test</span><span class="pl-kos">(</span><span class="pl-kos">)</span> <span class="pl-kos">{</span>
  <span class="pl-s1">x</span> <span class="pl-c1">+=</span> <span class="pl-k">await</span> <span class="pl-c1">1</span><span class="pl-kos">;</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">x</span><span class="pl-kos">)</span><span class="pl-kos">;</span>
<span class="pl-kos">}</span>
<span class="pl-en">test</span><span class="pl-kos">(</span><span class="pl-kos">)</span><span class="pl-kos">;</span>
<span class="pl-s1">x</span> <span class="pl-c1">+=</span> <span class="pl-c1">1</span><span class="pl-kos">;</span></pre></div>
<p dir="auto"><strong>Expected behavior/code</strong><br>
<code class="notranslate">1</code> should be logged.<br>
However, <code class="notranslate">2</code> is being logged.</p>
<p dir="auto"><strong>Babel Configuration (.babelrc, package.json, cli command)</strong><br>
<a href="https://babeljs.io/repl/#?babili=false&amp;browsers=&amp;build=&amp;builtIns=false&amp;code_lz=DYUwLgBAHhC8EAYDcAoAhgZwJ4DsDGEAZgK75gCWA9jhGCBmABQCUEA3ihNBANTxoB3NOUgBGVFzzUMlUADpglAOaMozVAF8UdBi1Qw-EcUA&amp;debug=false&amp;forceAllTransforms=false&amp;shippedProposals=false&amp;circleciRepo=&amp;evaluate=true&amp;fileSize=false&amp;lineWrap=false&amp;presets=es2015%2Ces2017&amp;prettier=false&amp;targets=&amp;version=6.26.0&amp;envVersion=" rel="nofollow">Preset 2015 and 2017</a>.</p>
<p dir="auto"><strong>Environment</strong><br>
<a href="https://babeljs.io/repl/#?babili=false&amp;browsers=&amp;build=&amp;builtIns=false&amp;code_lz=DYUwLgBAHhC8EAYDcAoAhgZwJ4DsDGEAZgK75gCWA9jhGCBmABQCUEA3ihNBANTxoB3NOUgBGVFzzUMlUADpglAOaMozVAF8UdBi1Qw-EcUA&amp;debug=false&amp;forceAllTransforms=false&amp;shippedProposals=false&amp;circleciRepo=&amp;evaluate=true&amp;fileSize=false&amp;lineWrap=false&amp;presets=es2015%2Ces2017&amp;prettier=false&amp;targets=&amp;version=6.26.0&amp;envVersion=" rel="nofollow">The website</a>.</p>
<p dir="auto"><strong>Possible Solution</strong><br>
Convert <code class="notranslate">x += await y</code> into <code class="notranslate">x = x + await y</code> as a first step.</p>
<p dir="auto"><strong>Additional context/Screenshots</strong><br>
<a target="_blank" rel="noopener noreferrer nofollow" href="https://user-images.githubusercontent.com/9323190/40719126-00852e7c-6445-11e8-94e3-0b2bd090ed4c.png"><img width="1031" alt="screen shot 2018-05-30 at 8 06 36 pm" src="https://user-images.githubusercontent.com/9323190/40719126-00852e7c-6445-11e8-94e3-0b2bd090ed4c.png" style="max-width: 100%;"></a></p>
<h3 dir="auto">Input Code</h3>


<div class="highlight highlight-source-js notranslate position-relative overflow-auto" dir="auto" data-snippet-clipboard-copy-content="result = { __proto__: x, __proto__: y } = value;"><pre class="notranslate"><span class="pl-s1">result</span> <span class="pl-c1">=</span> <span class="pl-kos">{</span> <span class="pl-c1">__proto__</span>: <span class="pl-s1">x</span><span class="pl-kos">,</span> <span class="pl-c1">__proto__</span>: <span class="pl-s1">y</span> <span class="pl-kos">}</span> <span class="pl-c1">=</span> <span class="pl-s1">value</span><span class="pl-kos">;</span></pre></div>
<h3 dir="auto">Babel Configuration (.babelrc, package.json, cli command)</h3>

<p dir="auto">presets - latest</p>
<h3 dir="auto">Expected Behavior</h3>
<p dir="auto">No error</p>
<h3 dir="auto">Current Behavior</h3>
<p dir="auto">Error: <code class="notranslate">Redefinition of __proto__ property</code></p>


<h3 dir="auto">Possible Solution</h3>


<h3 dir="auto">Context</h3>


<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></td>
</tr>
<tr>
<td>node</td>
<td></td>
</tr>
<tr>
<td>npm</td>
<td></td>
</tr>
<tr>
<td>Operating System</td>
<td></td>
</tr>
</tbody>
</table>