fix endless loop

Signed-off-by: houhaoyu <houhaoyu@huawei.com>
Change-Id: I177dc29a89e9b6b264aea6c998d1635b7ca47a68
This commit is contained in:
houhaoyu
2022-03-30 14:31:29 +08:00
parent b91cc5e433
commit 18770df7f5
+6
View File
@@ -623,6 +623,7 @@ export function bindComponentAttr(node: ts.ExpressionStatement, identifierNode:
});
}
while (temp && ts.isCallExpression(temp) && temp.expression) {
let flag: boolean = false;
if (temp.expression && (validatePropertyAccessExpressionWithCustomBuilder(temp.expression) ||
validateIdentifierWithCustomBuilder(temp.expression))) {
let propertyName: string = '';
@@ -641,12 +642,14 @@ export function bindComponentAttr(node: ts.ExpressionStatement, identifierNode:
default:
temp = processCustomBuilderProperty(temp);
}
flag = true;
}
if (ts.isPropertyAccessExpression(temp.expression) &&
temp.expression.name && ts.isIdentifier(temp.expression.name)) {
addComponentAttr(temp, temp.expression.name, lastStatement, statements, identifierNode, log,
isStylesAttr, isGlobalStyles);
temp = temp.expression.expression;
flag = true;
} else if (ts.isIdentifier(temp.expression)) {
if (!INNER_COMPONENT_NAMES.has(temp.expression.getText()) &&
!GESTURE_TYPE_NAMES.has(temp.expression.getText())) {
@@ -655,6 +658,9 @@ export function bindComponentAttr(node: ts.ExpressionStatement, identifierNode:
}
break;
}
if (!flag) {
temp = temp.expression;
}
}
if (lastStatement.statement && lastStatement.kind) {
statements.push(lastStatement.statement);