code: function parseIncrementExpression() {
              if (token() === 41 /* PlusPlusToken */ || token() === 42 /* MinusMinusToken */) {
                  var node = createNode(185 /* PrefixUnaryExpression */);
                  node.operator = token();
                  nextToken();
                  node.operand = parseLeftHandSideExpressionOrHigher();
                  return finishNode(node);
              }
              else if (sourceFile.languageVariant === 1 /* JSX */ && token() === 25 /* LessThanToken */ && lookAhead(nextTokenIsIdentifierOrKeyword)) {
                  // JSXElement is part of primaryExpression
                  return parseJsxElementOrSelfClosingElement(/*inExpressionContext*/ true);
              }
              var expression = parseLeftHandSideExpressionOrHigher();
              ts.Debug.assert(ts.isLeftHandSideExpression(expression));
              if ((token() === 41 /* PlusPlusToken */ || token() === 42 /* MinusMinusToken */) && !scanner.hasPrecedingLineBreak()) {
                  var node = createNode(186 /* PostfixUnaryExpression */, expression.pos);
                  node.operand = expression;
                  node.operator = token();
                  nextToken();
                  return finishNode(node);
              }
              return expression;
          }
docs: Parse ES7 IncrementExpression. IncrementExpression is used instead of ES6's PostFixExpression.
  
  ES7 IncrementExpression[yield]:
  1) LeftHandSideExpression[?yield]
  2) LeftHandSideExpression[?yield] [[no LineTerminator here]]++
  3) LeftHandSideExpression[?yield] [[no LineTerminator here]]--
  4) ++LeftHandSideExpression[?yield]
  5) --LeftHandSideExpression[?yield]
  In TypeScript (2), (3) are parsed as PostfixUnaryExpression. (4), (5) are parsed as PrefixUnaryExpression