(node)
| 98402 | } |
| 98403 | } |
| 98404 | function visitExponentiationAssignmentExpression(node) { |
| 98405 | var target; |
| 98406 | var value; |
| 98407 | var left = ts.visitNode(node.left, visitor, ts.isExpression); |
| 98408 | var right = ts.visitNode(node.right, visitor, ts.isExpression); |
| 98409 | if (ts.isElementAccessExpression(left)) { |
| 98410 | // Transforms `a[x] **= b` into `(_a = a)[_x = x] = Math.pow(_a[_x], b)` |
| 98411 | var expressionTemp = factory.createTempVariable(hoistVariableDeclaration); |
| 98412 | var argumentExpressionTemp = factory.createTempVariable(hoistVariableDeclaration); |
| 98413 | target = ts.setTextRange(factory.createElementAccessExpression(ts.setTextRange(factory.createAssignment(expressionTemp, left.expression), left.expression), ts.setTextRange(factory.createAssignment(argumentExpressionTemp, left.argumentExpression), left.argumentExpression)), left); |
| 98414 | value = ts.setTextRange(factory.createElementAccessExpression(expressionTemp, argumentExpressionTemp), left); |
| 98415 | } |
| 98416 | else if (ts.isPropertyAccessExpression(left)) { |
| 98417 | // Transforms `a.x **= b` into `(_a = a).x = Math.pow(_a.x, b)` |
| 98418 | var expressionTemp = factory.createTempVariable(hoistVariableDeclaration); |
| 98419 | target = ts.setTextRange(factory.createPropertyAccessExpression(ts.setTextRange(factory.createAssignment(expressionTemp, left.expression), left.expression), left.name), left); |
| 98420 | value = ts.setTextRange(factory.createPropertyAccessExpression(expressionTemp, left.name), left); |
| 98421 | } |
| 98422 | else { |
| 98423 | // Transforms `a **= b` into `a = Math.pow(a, b)` |
| 98424 | target = left; |
| 98425 | value = left; |
| 98426 | } |
| 98427 | return ts.setTextRange(factory.createAssignment(target, ts.setTextRange(factory.createGlobalMethodCall("Math", "pow", [value, right]), node)), node); |
| 98428 | } |
| 98429 | function visitExponentiationExpression(node) { |
| 98430 | // Transforms `a ** b` into `Math.pow(a, b)` |
| 98431 | var left = ts.visitNode(node.left, visitor, ts.isExpression); |
no outgoing calls
no test coverage detected