code: function parseUnaryExpression() {
          var token, expr;
  
          if (lookahead.type !== Token.Punctuator && lookahead.type !== Token.Keyword) {
              expr = parsePostfixExpression();
          } else if (match('+') || match('-') || match('!')) {
              token = lex();
              expr = parseUnaryExpression();
              expr = delegate.createUnaryExpression(token.value, expr);
          } else if (matchKeyword('delete') || matchKeyword('void') || matchKeyword('typeof')) {
              throwError({}, Messages.UnexpectedToken);
          } else {
              expr = parsePostfixExpression();
          }
  
          return expr;
      }
docs: 11.4 Unary Operators