title: Does awaiting a non-Promise have any detectable effect?
body: <p>One can <code>await</code> a non-Promise and <a href="https://github.com/Microsoft/TypeScript/issues/8310" rel="noreferrer">that's good so</a>.</p>
  
  <p>All these expressions are valid and cause no error:</p>
  
  <pre><code>await 5
  await 'A'
  await {}
  await null
  await undefined 
  </code></pre>
  
  <p>Is there any <strong>detectable effect</strong> of awaiting a non-Promise? Is there any difference in behavior one should be aware of to avoid a potential error? Any performance differences?</p>
  
  <p>Are the following two lines completely same or do they <em>theoretically</em> differ?:</p>
  
  <pre><code>var x = 5
  var x = await 5
  </code></pre>
  
  <p>How? Any example to demonstrate the difference? </p>
  
  <p>PS: According <a href="https://github.com/Microsoft/TypeScript/issues/8310#issuecomment-214892918" rel="noreferrer">TypeScript authors</a>, there is a difference:</p>
  
  <blockquote>
    <p><code>var x = await 5;</code> is not the same as <code>var x = 5;</code>; <code>var x = await 5;</code> will assign x 5 in the next tern, where as <code>var x = 5;</code> will evaluate immediately.</p>
  </blockquote>