(left, operator, right)
| 24424 | } |
| 24425 | // @api |
| 24426 | function createBinaryExpression(left, operator, right) { |
| 24427 | var node = createBaseExpression(221 /* SyntaxKind.BinaryExpression */); |
| 24428 | var operatorToken = asToken(operator); |
| 24429 | var operatorKind = operatorToken.kind; |
| 24430 | node.left = parenthesizerRules().parenthesizeLeftSideOfBinary(operatorKind, left); |
| 24431 | node.operatorToken = operatorToken; |
| 24432 | node.right = parenthesizerRules().parenthesizeRightSideOfBinary(operatorKind, node.left, right); |
| 24433 | node.transformFlags |= |
| 24434 | propagateChildFlags(node.left) | |
| 24435 | propagateChildFlags(node.operatorToken) | |
| 24436 | propagateChildFlags(node.right); |
| 24437 | if (operatorKind === 60 /* SyntaxKind.QuestionQuestionToken */) { |
| 24438 | node.transformFlags |= 32 /* TransformFlags.ContainsES2020 */; |
| 24439 | } |
| 24440 | else if (operatorKind === 63 /* SyntaxKind.EqualsToken */) { |
| 24441 | if (ts.isObjectLiteralExpression(node.left)) { |
| 24442 | node.transformFlags |= |
| 24443 | 1024 /* TransformFlags.ContainsES2015 */ | |
| 24444 | 128 /* TransformFlags.ContainsES2018 */ | |
| 24445 | 4096 /* TransformFlags.ContainsDestructuringAssignment */ | |
| 24446 | propagateAssignmentPatternFlags(node.left); |
| 24447 | } |
| 24448 | else if (ts.isArrayLiteralExpression(node.left)) { |
| 24449 | node.transformFlags |= |
| 24450 | 1024 /* TransformFlags.ContainsES2015 */ | |
| 24451 | 4096 /* TransformFlags.ContainsDestructuringAssignment */ | |
| 24452 | propagateAssignmentPatternFlags(node.left); |
| 24453 | } |
| 24454 | } |
| 24455 | else if (operatorKind === 42 /* SyntaxKind.AsteriskAsteriskToken */ || operatorKind === 67 /* SyntaxKind.AsteriskAsteriskEqualsToken */) { |
| 24456 | node.transformFlags |= 512 /* TransformFlags.ContainsES2016 */; |
| 24457 | } |
| 24458 | else if (ts.isLogicalOrCoalescingAssignmentOperator(operatorKind)) { |
| 24459 | node.transformFlags |= 16 /* TransformFlags.ContainsES2021 */; |
| 24460 | } |
| 24461 | return node; |
| 24462 | } |
| 24463 | function propagateAssignmentPatternFlags(node) { |
| 24464 | if (node.transformFlags & 32768 /* TransformFlags.ContainsObjectRestOrSpread */) |
| 24465 | return 32768 /* TransformFlags.ContainsObjectRestOrSpread */; |
no test coverage detected