docs: def aexec(source, local=None, stream=None):
      """Asynchronous equivalent to *exec*.
  
      Support the *yield from* syntax.
      """
      if local is None:
          local = {}
      if isinstance(source, str):
          source = compile_for_aexec(source)
      for tree in source:
          coro = make_coroutine_from_tree(tree, local=local)
          result, new_local = yield from coro
          exec_result(result, new_local, stream)
          full_update(local, new_local)