[DevTools] support top-level await in console

If expression could be successfully compiled without preprocessing -
we do nothing.
Otherwise if function contains await expression:
  - if variable is var or variable is top-level we remove variable kind
    to make it available in global scope.
  - function definitions: function foo() {} -> foo = function foo() {}
  - top-level class definitions: class Foo {} -> Foo = class Foo {}

R=lushnikov@chromium.org,loue@chromium.org

Bug: chromium:658558
Change-Id: I8e9d26b93c3e53a966e43ec9c72b931a45c1a294
Reviewed-on: https://chromium-review.googlesource.com/601509
Commit-Queue: Aleksey Kozyatinskiy <kozyatinskiy@chromium.org>
Reviewed-by: Andrey Lushnikov <lushnikov@chromium.org>
Cr-Commit-Position: refs/heads/master@{#493612}
13 files changed