classStaticBlock22.ts(4,9): error TS1359: Identifier expected. 'await' is a reserved word that cannot be used here.
classStaticBlock22.ts(7,11): error TS1359: Identifier expected. 'await' is a reserved word that cannot be used here.
classStaticBlock22.ts(13,9): error TS1359: Identifier expected. 'await' is a reserved word that cannot be used here.
classStaticBlock22.ts(16,14): error TS1359: Identifier expected. 'await' is a reserved word that cannot be used here.
classStaticBlock22.ts(19,11): error TS1359: Identifier expected. 'await' is a reserved word that cannot be used here.
classStaticBlock22.ts(29,15): error TS1359: Identifier expected. 'await' is a reserved word that cannot be used here.
classStaticBlock22.ts(32,12): error TS1359: Identifier expected. 'await' is a reserved word that cannot be used here.


==== classStaticBlock22.ts (7 errors) ====
    let await: "any";
    class C {
      static {
        let await: any; // illegal, cannot declare a new binding for await
            ~~~~~
!!! error TS1359: Identifier expected. 'await' is a reserved word that cannot be used here.
      }
      static {
        let { await } = {} as any; // illegal, cannot declare a new binding for await
              ~~~~~
!!! error TS1359: Identifier expected. 'await' is a reserved word that cannot be used here.
      }
      static {
        let { await: other } = {} as any; // legal
      }
      static {
        let await; // illegal, cannot declare a new binding for await
            ~~~~~
!!! error TS1359: Identifier expected. 'await' is a reserved word that cannot be used here.
      }
      static {
        function await() { }; // illegal
                 ~~~~~
!!! error TS1359: Identifier expected. 'await' is a reserved word that cannot be used here.
      }
      static {
        class await { }; // illegal
              ~~~~~
!!! error TS1359: Identifier expected. 'await' is a reserved word that cannot be used here.
      }
    
      static {
        class D {
          await = 1; // legal
          x = await; // legal (initializers have an implicit function boundary)
        };
      }
      static {
        (function await() { }); // legal, 'await' in function expression name not bound inside of static block
                  ~~~~~
!!! error TS1359: Identifier expected. 'await' is a reserved word that cannot be used here.
      }
      static {
        (class await { }); // legal, 'await' in class expression name not bound inside of static block
               ~~~~~
!!! error TS1359: Identifier expected. 'await' is a reserved word that cannot be used here.
      }
      static {
        (function () { return await; }); // legal, 'await' is inside of a new function boundary
      }
      static {
        (() => await); // legal, 'await' is inside of a new function boundary
      }
    
      static {
        class E {
          constructor() { await; }
          method() { await; }
          get accessor() {
            await;
            return 1;
          }
          set accessor(v: any) {
            await;
          }
          propLambda = () => { await; }
          propFunc = function () { await; }
        }
      }
      static {
        class S {
          static method() { await; }
          static get accessor() {
            await;
            return 1;
          }
          static set accessor(v: any) {
            await;
          }
          static propLambda = () => { await; }
          static propFunc = function () { await; }
        }
      }
    }
    