function parseIncrementExpression() {
            if (token === 41 /* PlusPlusToken */ || token === 42 /* MinusMinusToken */) {
                var node = createNode(179 /* 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(180 /* PostfixUnaryExpression */, expression.pos);
                node.operand = expression;
                node.operator = token;
                nextToken();
                return finishNode(node);
            }
            return expression;
        }
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