expressionNeedsStateMachine(tree) {
    if (tree === null)
      return false;
    return scopeContainsAwait(tree);
  }
Desugars async function bodies. Async function bodies contain 'async' statements.

At the top level the state machine is translated into this source code:

{
  machine variables
  return $traceurRuntime.asyncWrap(machineFunction);
}