Handles creating a reasonable AST when destructuring into a parens'd expresssion (#40115)

* Handles creating a lgical AST when destructuring  into a parens

* Adds an async example
This commit is contained in:
Orta Therox
2020-10-05 14:12:47 -04:00
committed by GitHub
parent 82f3ac90ed
commit dd84bc1dc9
6 changed files with 190 additions and 1 deletions

View File

@@ -7820,9 +7820,13 @@ namespace ts {
const propName = getDestructuringPropertyName(node);
if (propName) {
const literal = setTextRange(parseNodeFactory.createStringLiteral(propName), node);
const result = setTextRange(parseNodeFactory.createElementAccessExpression(parentAccess, literal), node);
const lhsExpr = isLeftHandSideExpression(parentAccess) ? parentAccess : parseNodeFactory.createParenthesizedExpression(parentAccess);
const result = setTextRange(parseNodeFactory.createElementAccessExpression(lhsExpr, literal), node);
setParent(literal, result);
setParent(result, node);
if (lhsExpr !== parentAccess) {
setParent(lhsExpr, result);
}
result.flowNode = parentAccess.flowNode;
return result;
}