From 44c6cf74cb9761f5471f1129a810c2f96f5f8deb Mon Sep 17 00:00:00 2001 From: Marcel Laverdet Date: Tue, 5 May 2020 09:05:02 -0700 Subject: [PATCH] Fix `updateBinary` `operator` parameter (#38129) * Fix `updateBinary` `operator` parameter There is an issue in `updateBinary` where attempting to update `operator` without updating `left` or `right` results in a silent no-op. * Use defaulted parameter in `updateBinary` --- src/compiler/factoryPublic.ts | 5 +++-- 1 file changed, 3 insertions(+), 2 deletions(-) diff --git a/src/compiler/factoryPublic.ts b/src/compiler/factoryPublic.ts index e17cf3c5054..d78fdfc4dac 100644 --- a/src/compiler/factoryPublic.ts +++ b/src/compiler/factoryPublic.ts @@ -1411,10 +1411,11 @@ namespace ts { return node; } - export function updateBinary(node: BinaryExpression, left: Expression, right: Expression, operator?: BinaryOperator | BinaryOperatorToken) { + export function updateBinary(node: BinaryExpression, left: Expression, right: Expression, operator: BinaryOperator | BinaryOperatorToken = node.operatorToken) { return node.left !== left || node.right !== right - ? updateNode(createBinary(left, operator || node.operatorToken, right), node) + || node.operatorToken !== operator + ? updateNode(createBinary(left, operator, right), node) : node; }