title: async/await not returning resolved promise
body: <p>From what I understand of <code>async/await</code>, <code>await</code> causes JavaScript to pause until the <code>Promise</code> is either resolved or rejected, before it continues forward. Given the following code</p>
  
  <pre><code>function foo(uri) {
  
      … do a bunch of other stuff …
  
      const result = bar(uri);
      console.log('step 2 done');
      return {"uri": uri, "result": result};
  }
  
  function async bar(uri) {
      const response =  await fetch(uri);
      const result = await JSON.parse(response);
      console.log('step 1 done');
      return result;
  }
  
  const result = foo('my/server/resource');
  console.log(result);
  </code></pre>
  
  <p>I expect</p>
  
  <pre><code>step 1 done
  step 2 done
  {"uri": 'my/server/resource', "result": { … bunch of data … }}
  </code></pre>
  
  <p>but I get</p>
  
  <pre><code>step 2 done
  {"uri": 'my/server/resource', "result": {}}
  step 1 done
  </code></pre>
  
  <p>What am I doing wrong?</p>