docs: function parseUnaryExpressionOrHigher() {
              /**
               * ES7 UpdateExpression:
               *      1) LeftHandSideExpression[?Yield]
               *      2) LeftHandSideExpression[?Yield][no LineTerminator here]++
               *      3) LeftHandSideExpression[?Yield][no LineTerminator here]--
               *      4) ++UnaryExpression[?Yield]
               *      5) --UnaryExpression[?Yield]
               */
              if (isUpdateExpression()) {
                  var incrementExpression = parseIncrementExpression();
                  return token() === 38 /* AsteriskAsteriskToken */ ?
                      parseBinaryExpressionRest(getBinaryOperatorPrecedence(), incrementExpression) :
                      incrementExpression;
              }
              /**
               * ES7 UnaryExpression:
               *      1) UpdateExpression[?yield]
               *      2) delete UpdateExpression[?yield]
               *      3) void UpdateExpression[?yield]
               *      4) typeof UpdateExpression[?yield]
               *      5) + UpdateExpression[?yield]
               *      6) - UpdateExpression[?yield]
               *      7) ~ UpdateExpression[?yield]
               *      8) ! UpdateExpression[?yield]
               */
              var unaryOperator = token();
              var simpleUnaryExpression = parseSimpleUnaryExpression();
              if (token() === 38 /* AsteriskAsteriskToken */) {
                  var start = ts.skipTrivia(sourceText, simpleUnaryExpression.pos);
                  if (simpleUnaryExpression.kind === 177 /* TypeAssertionExpression */) {
                      parseErrorAtPosition(start, simpleUnaryExpression.end - start, ts.Diagnostics.A_type_assertion_expression_is_not_allowed_in_the_left_hand_side_of_an_exponentiation_expression_Consider_enclosing_the_expression_in_parentheses);
                  }
                  else {
                      parseErrorAtPosition(start, simpleUnaryExpression.end - start, ts.Diagnostics.An_unary_expression_with_the_0_operator_is_not_allowed_in_the_left_hand_side_of_an_exponentiation_expression_Consider_enclosing_the_expression_in_parentheses, ts.tokenToString(unaryOperator));
                  }
              }
              return simpleUnaryExpression;
          }