* Parse ES7 exponential expression and await expression * * ES7 ExponentiationExpression: * 1) UnaryExpression[?Yield] * 2) UpdateExpression[?Yield] ** ExponentiationExpression[?Yield] *
()
| 34922 | * |
| 34923 | */ |
| 34924 | function parseUnaryExpressionOrHigher() { |
| 34925 | /** |
| 34926 | * ES7 UpdateExpression: |
| 34927 | * 1) LeftHandSideExpression[?Yield] |
| 34928 | * 2) LeftHandSideExpression[?Yield][no LineTerminator here]++ |
| 34929 | * 3) LeftHandSideExpression[?Yield][no LineTerminator here]-- |
| 34930 | * 4) ++UnaryExpression[?Yield] |
| 34931 | * 5) --UnaryExpression[?Yield] |
| 34932 | */ |
| 34933 | if (isUpdateExpression()) { |
| 34934 | var pos = getNodePos(); |
| 34935 | var updateExpression = parseUpdateExpression(); |
| 34936 | return token() === 42 /* SyntaxKind.AsteriskAsteriskToken */ ? |
| 34937 | parseBinaryExpressionRest(ts.getBinaryOperatorPrecedence(token()), updateExpression, pos) : |
| 34938 | updateExpression; |
| 34939 | } |
| 34940 | /** |
| 34941 | * ES7 UnaryExpression: |
| 34942 | * 1) UpdateExpression[?yield] |
| 34943 | * 2) delete UpdateExpression[?yield] |
| 34944 | * 3) void UpdateExpression[?yield] |
| 34945 | * 4) typeof UpdateExpression[?yield] |
| 34946 | * 5) + UpdateExpression[?yield] |
| 34947 | * 6) - UpdateExpression[?yield] |
| 34948 | * 7) ~ UpdateExpression[?yield] |
| 34949 | * 8) ! UpdateExpression[?yield] |
| 34950 | */ |
| 34951 | var unaryOperator = token(); |
| 34952 | var simpleUnaryExpression = parseSimpleUnaryExpression(); |
| 34953 | if (token() === 42 /* SyntaxKind.AsteriskAsteriskToken */) { |
| 34954 | var pos = ts.skipTrivia(sourceText, simpleUnaryExpression.pos); |
| 34955 | var end = simpleUnaryExpression.end; |
| 34956 | if (simpleUnaryExpression.kind === 211 /* SyntaxKind.TypeAssertionExpression */) { |
| 34957 | parseErrorAt(pos, end, ts.Diagnostics.A_type_assertion_expression_is_not_allowed_in_the_left_hand_side_of_an_exponentiation_expression_Consider_enclosing_the_expression_in_parentheses); |
| 34958 | } |
| 34959 | else { |
| 34960 | parseErrorAt(pos, end, 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)); |
| 34961 | } |
| 34962 | } |
| 34963 | return simpleUnaryExpression; |
| 34964 | } |
| 34965 | /** |
| 34966 | * Parse ES7 simple-unary expression or higher: |
| 34967 | * |
no test coverage detected
searching dependent graphs…