From c1a592615f23d4cabeb810d12a0a53ea6f84bf3a Mon Sep 17 00:00:00 2001 From: houhaoyu Date: Thu, 30 Jun 2022 10:30:47 +0800 Subject: [PATCH] fixed ce05920 from https://gitee.com/houhaoyu/developtools_ace-ets2bundle/pulls/790 fixed 26c99b0 from https://gitee.com/houhaoyu/developtools_ace-ets2bundle/pulls/789 houhaoyu@huawei.com recover getRawObject Signed-off-by: houhaoyu Change-Id: I6ffe24d47e916b78ca07bfd46d2467e482a1868a --- compiler/src/process_component_class.ts | 14 ++++++++++++++ 1 file changed, 14 insertions(+) diff --git a/compiler/src/process_component_class.ts b/compiler/src/process_component_class.ts index 2a67c79..f1b6087 100644 --- a/compiler/src/process_component_class.ts +++ b/compiler/src/process_component_class.ts @@ -333,8 +333,22 @@ function processBuildMember(node: ts.MethodDeclaration, context: ts.Transformati if (isProperty(node)) { node = createReference(node as ts.PropertyAssignment, log); } + if (ts.isPropertyAccessExpression(node) && ts.isIdentifier(node.name) && + stateObjectCollection.has(checkStateName(node)) && node.parent && ts.isCallExpression(node.parent) && + ts.isPropertyAccessExpression(node.parent.expression) && + node.parent.expression.name.escapedText.toString() !== FOREACH_GET_RAW_OBJECT) { + return ts.factory.createCallExpression(ts.factory.createPropertyAccessExpression( + ts.factory.createIdentifier(FOREACH_OBSERVED_OBJECT), + ts.factory.createIdentifier(FOREACH_GET_RAW_OBJECT)), undefined, [node]); + } return ts.visitEachChild(node, visitBuild, context); } + function checkStateName(node: ts.PropertyAccessExpression): string { + if (node.expression && !node.expression.expression && node.name && ts.isIdentifier(node.name)) { + return node.name.escapedText.toString(); + } + return null; + } } function isGeometryView(node: ts.Node): boolean {