Skip to content

Commit c9cb7fe

Browse files
author
Joseph Watts
committed
Clean up private name assignment expression temp variable emit
1 parent 82ca154 commit c9cb7fe

File tree

1 file changed

+9
-7
lines changed

1 file changed

+9
-7
lines changed

src/compiler/transformers/esnext.ts

Lines changed: 9 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -475,15 +475,17 @@ namespace ts {
475475
const weakMapName = accessPrivateName(node.left.name);
476476
if (isCompoundAssignment(node.operatorToken.kind)) {
477477
let setReceiver: Expression;
478-
let getReceiver: Identifier;
479-
if (!isIdentifier(node.left.expression) && !isKeyword(node.left.expression.kind)) {
480-
getReceiver = createTempVariable(/* recordTempVariable */ undefined);
481-
hoistVariableDeclaration(getReceiver);
482-
setReceiver = createBinary(getReceiver, SyntaxKind.EqualsToken, node.left.expression);
478+
let getReceiver: Expression;
479+
const receiverExpr = node.left.expression;
480+
if (!isIdentifier(receiverExpr) && !isThisProperty(node.left) && !isSuperProperty(node.left)) {
481+
const tempVariable = createTempVariable(/* recordTempVariable */ undefined);
482+
hoistVariableDeclaration(tempVariable);
483+
setReceiver = createBinary(tempVariable, SyntaxKind.EqualsToken, node.left.expression);
484+
getReceiver = tempVariable;
483485
}
484486
else {
485-
getReceiver = node.left.expression as Identifier;
486-
setReceiver = node.left.expression as Identifier;
487+
getReceiver = node.left.expression;
488+
setReceiver = node.left.expression;
487489
}
488490
return setOriginalNode(
489491
createClassPrivateFieldSetHelper(

0 commit comments

Comments
 (0)