code: function parseSimpleUnaryExpression() {
              switch (token()) {
                  case 35 /* PlusToken */:
                  case 36 /* MinusToken */:
                  case 50 /* TildeToken */:
                  case 49 /* ExclamationToken */:
                      return parsePrefixUnaryExpression();
                  case 78 /* DeleteKeyword */:
                      return parseDeleteExpression();
                  case 101 /* TypeOfKeyword */:
                      return parseTypeOfExpression();
                  case 103 /* VoidKeyword */:
                      return parseVoidExpression();
                  case 25 /* LessThanToken */:
                      // This is modified UnaryExpression grammar in TypeScript
                      //  UnaryExpression (modified):
                      //      < type > UnaryExpression
                      return parseTypeAssertion();
                  case 119 /* AwaitKeyword */:
                      if (isAwaitExpression()) {
                          return parseAwaitExpression();
                      }
                  default:
                      return parseIncrementExpression();
              }
          }
docs: Parse ES7 simple-unary expression or higher:
  
  ES7 UnaryExpression:
  1) UpdateExpression[?yield]
  2) delete UnaryExpression[?yield]
  3) void UnaryExpression[?yield]
  4) typeof UnaryExpression[?yield]
  5) + UnaryExpression[?yield]
  6) - UnaryExpression[?yield]
  7) ~ UnaryExpression[?yield]
  8) ! UnaryExpression[?yield]
  9) [+Await] await UnaryExpression[?yield]