Parenthesize computed names if not an assignment expression (#22280)

This commit is contained in:
Wesley Wigham
2018-03-01 16:49:56 -08:00
committed by GitHub
parent 10e3b73330
commit 36bebe9487
3 changed files with 21 additions and 14 deletions

View File

@@ -230,9 +230,16 @@ namespace ts {
: node;
}
function parenthesizeForComputedName(expression: Expression): Expression {
return (isBinaryExpression(expression) && expression.operatorToken.kind === SyntaxKind.CommaToken) ||
expression.kind === SyntaxKind.CommaListExpression ?
createParen(expression) :
expression;
}
export function createComputedPropertyName(expression: Expression) {
const node = <ComputedPropertyName>createSynthesizedNode(SyntaxKind.ComputedPropertyName);
node.expression = expression;
node.expression = parenthesizeForComputedName(expression);
return node;
}