arkanalyzer 1.0.12 → 1.0.14
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/lib/Config.d.ts +1 -0
- package/lib/Config.d.ts.map +1 -1
- package/lib/callgraph/algorithm/AbstractAnalysis.js +1 -1
- package/lib/callgraph/pointerAnalysis/Pag.js +1 -1
- package/lib/core/base/Ref.js +1 -1
- package/lib/core/common/ArkIRTransformer.d.ts +2 -1
- package/lib/core/common/ArkIRTransformer.d.ts.map +1 -1
- package/lib/core/common/ArkIRTransformer.js +83 -59
- package/lib/core/common/ArkValueTransformer.d.ts +6 -1
- package/lib/core/common/ArkValueTransformer.d.ts.map +1 -1
- package/lib/core/common/ArkValueTransformer.js +228 -152
- package/lib/core/common/Builtin.d.ts +3 -1
- package/lib/core/common/Builtin.d.ts.map +1 -1
- package/lib/core/common/Builtin.js +3 -0
- package/lib/core/common/CfgBuilder.js +8 -8
- package/lib/core/common/IRUtils.d.ts +3 -2
- package/lib/core/common/IRUtils.d.ts.map +1 -1
- package/lib/core/common/IRUtils.js +27 -13
- package/lib/core/common/ValueUtil.d.ts +2 -2
- package/lib/core/common/ValueUtil.d.ts.map +1 -1
- package/lib/core/graph/BasicBlock.js +1 -1
- package/lib/core/model/ArkExport.d.ts +3 -1
- package/lib/core/model/ArkExport.d.ts.map +1 -1
- package/lib/core/model/ArkExport.js +9 -3
- package/lib/core/model/ArkMetadata.d.ts +14 -2
- package/lib/core/model/ArkMetadata.d.ts.map +1 -1
- package/lib/core/model/ArkMetadata.js +12 -1
- package/lib/core/model/ArkMethod.js +2 -2
- package/lib/core/model/builder/ArkClassBuilder.js +7 -7
- package/lib/core/model/builder/ArkExportBuilder.d.ts.map +1 -1
- package/lib/core/model/builder/ArkExportBuilder.js +6 -3
- package/lib/core/model/builder/ArkFieldBuilder.js +2 -2
- package/lib/core/model/builder/ArkImportBuilder.js +6 -6
- package/lib/core/model/builder/ArkMethodBuilder.js +1 -1
- package/lib/core/model/builder/ArkNamespaceBuilder.js +1 -1
- package/lib/index.d.ts +3 -0
- package/lib/index.d.ts.map +1 -1
- package/lib/index.js +8 -1
- package/lib/save/source/SourceClass.d.ts.map +1 -1
- package/lib/save/source/SourceClass.js +7 -3
- package/lib/save/source/SourceField.d.ts.map +1 -1
- package/lib/save/source/SourceField.js +7 -3
- package/lib/save/source/SourceMethod.d.ts.map +1 -1
- package/lib/save/source/SourceMethod.js +8 -4
- package/lib/save/source/SourceModule.d.ts.map +1 -1
- package/lib/save/source/SourceModule.js +14 -6
- package/lib/save/source/SourceNamespace.d.ts.map +1 -1
- package/lib/save/source/SourceNamespace.js +8 -6
- package/lib/save/source/SourceStmt.d.ts.map +1 -1
- package/lib/save/source/SourceStmt.js +7 -4
- package/lib/utils/AstTreeUtils.d.ts +5 -0
- package/lib/utils/AstTreeUtils.d.ts.map +1 -0
- package/lib/utils/AstTreeUtils.js +26 -0
- package/lib/utils/CfgStructualAnalysis.js +1 -1
- package/lib/utils/SparseBitVector.d.ts +3 -0
- package/lib/utils/SparseBitVector.d.ts.map +1 -1
- package/lib/utils/SparseBitVector.js +3 -1
- package/package.json +1 -1
package/lib/Config.d.ts
CHANGED
package/lib/Config.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"Config.d.ts","sourceRoot":"","sources":["../src/Config.ts"],"names":[],"mappings":"AAsBA,MAAM,WAAW,GAAG;IAChB,IAAI,EAAE,MAAM,CAAC;IACb,IAAI,EAAE,MAAM,CAAC;IACb,UAAU,EAAE,MAAM,CAAC;CACtB;AAED,MAAM,WAAW,QAAQ;IACrB,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,eAAe,CAAC,EAAE;QACd,OAAO,CAAC,EAAE,MAAM,CAAC;QACjB,KAAK,CAAC,EAAE;YACJ,CAAC,GAAG,EAAE,MAAM,GAAG,MAAM,EAAE,CAAC;SAC3B,CAAC;KACL,CAAC;CAEL;AAED,MAAM,MAAM,iBAAiB,GAAG,MAAM,GAAG,MAAM,GAAG,OAAO,GAAG,CAAC,MAAM,GAAG,MAAM,CAAC,EAAE,GAAG,MAAM,EAAE,GAAG,IAAI,GAAG,SAAS,CAAC;AAC9G,MAAM,WAAW,YAAY;IACzB,eAAe,CAAC,EAAE,MAAM,EAAE,CAAC;IAC3B,eAAe,CAAC,EAAE,MAAM,EAAE,CAAC;IAC3B,qBAAqB,CAAC,EAAE,OAAO,CAAC;IAChC,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,SAAS,CAAC,EAAE,OAAO,CAAC;IACpB,CAAC,MAAM,EAAE,MAAM,GAAG,iBAAiB,CAAC;CACvC;AAID,qBAAa,WAAW;IACpB,OAAO,CAAC,iBAAiB,CAAc;IACvC,OAAO,CAAC,sBAAsB,CAAc;IAE5C,OAAO,CAAC,UAAU,CAAc;IAChC,OAAO,CAAC,OAAO,CAAa;IAE5B,OAAO,CAAC,QAAQ,CAAgB;IAChC,OAAO,CAAC,WAAW,CAAsD;IAEzE,OAAO,CAAC,YAAY,CAAgB;IAEpC,OAAO,CAAC,OAAO,CAAe;gBAElB,OAAO,CAAC,EAAE,YAAY;IAK3B,UAAU,IAAI,YAAY;IAIjC;;;;;;;OAOG;IACI,WAAW,CACd,iBAAiB,EAAE,MAAM,EACzB,sBAAsB,EAAE,MAAM,EAC9B,IAAI,EAAE,GAAG,EAAE,EACX,YAAY,CAAC,EAAE,MAAM,EAAE;IAU3B;;;;;;;;;;;OAWG;IACI,mBAAmB,CAAC,sBAAsB,EAAE,MAAM;IAUlD,qBAAqB,CAAC,WAAW,EAAE,MAAM,EAAE,UAAU,EAAE,MAAM,EAAE,kBAAkB,EAAE,MAAM,EAAE,EAAE,IAAI,CAAC,EAAE,GAAG,EAAE,GAAG,IAAI;IAavH,OAAO,CAAC,gBAAgB;IAkBjB,aAAa,CAAC,cAAc,EAAE,MAAM;IAmCpC,oBAAoB;IAIpB,yBAAyB;IAIzB,eAAe;IAIf,WAAW;IAIX,cAAc;IAId,aAAa;IAIb,UAAU;IAIjB,OAAO,CAAC,iBAAiB;CAY5B"}
|
|
1
|
+
{"version":3,"file":"Config.d.ts","sourceRoot":"","sources":["../src/Config.ts"],"names":[],"mappings":"AAsBA,MAAM,WAAW,GAAG;IAChB,IAAI,EAAE,MAAM,CAAC;IACb,IAAI,EAAE,MAAM,CAAC;IACb,UAAU,EAAE,MAAM,CAAC;CACtB;AAED,MAAM,WAAW,QAAQ;IACrB,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,eAAe,CAAC,EAAE;QACd,OAAO,CAAC,EAAE,MAAM,CAAC;QACjB,KAAK,CAAC,EAAE;YACJ,CAAC,GAAG,EAAE,MAAM,GAAG,MAAM,EAAE,CAAC;SAC3B,CAAC;KACL,CAAC;CAEL;AAED,MAAM,MAAM,iBAAiB,GAAG,MAAM,GAAG,MAAM,GAAG,OAAO,GAAG,CAAC,MAAM,GAAG,MAAM,CAAC,EAAE,GAAG,MAAM,EAAE,GAAG,IAAI,GAAG,SAAS,CAAC;AAC9G,MAAM,WAAW,YAAY;IACzB,eAAe,CAAC,EAAE,MAAM,EAAE,CAAC;IAC3B,eAAe,CAAC,EAAE,MAAM,EAAE,CAAC;IAC3B,qBAAqB,CAAC,EAAE,OAAO,CAAC;IAChC,sBAAsB,CAAC,EAAC,OAAO,CAAA;IAC/B,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,SAAS,CAAC,EAAE,OAAO,CAAC;IACpB,CAAC,MAAM,EAAE,MAAM,GAAG,iBAAiB,CAAC;CACvC;AAID,qBAAa,WAAW;IACpB,OAAO,CAAC,iBAAiB,CAAc;IACvC,OAAO,CAAC,sBAAsB,CAAc;IAE5C,OAAO,CAAC,UAAU,CAAc;IAChC,OAAO,CAAC,OAAO,CAAa;IAE5B,OAAO,CAAC,QAAQ,CAAgB;IAChC,OAAO,CAAC,WAAW,CAAsD;IAEzE,OAAO,CAAC,YAAY,CAAgB;IAEpC,OAAO,CAAC,OAAO,CAAe;gBAElB,OAAO,CAAC,EAAE,YAAY;IAK3B,UAAU,IAAI,YAAY;IAIjC;;;;;;;OAOG;IACI,WAAW,CACd,iBAAiB,EAAE,MAAM,EACzB,sBAAsB,EAAE,MAAM,EAC9B,IAAI,EAAE,GAAG,EAAE,EACX,YAAY,CAAC,EAAE,MAAM,EAAE;IAU3B;;;;;;;;;;;OAWG;IACI,mBAAmB,CAAC,sBAAsB,EAAE,MAAM;IAUlD,qBAAqB,CAAC,WAAW,EAAE,MAAM,EAAE,UAAU,EAAE,MAAM,EAAE,kBAAkB,EAAE,MAAM,EAAE,EAAE,IAAI,CAAC,EAAE,GAAG,EAAE,GAAG,IAAI;IAavH,OAAO,CAAC,gBAAgB;IAkBjB,aAAa,CAAC,cAAc,EAAE,MAAM;IAmCpC,oBAAoB;IAIpB,yBAAyB;IAIzB,eAAe;IAIf,WAAW;IAIX,cAAc;IAId,aAAa;IAIb,UAAU;IAIjB,OAAO,CAAC,iBAAiB;CAY5B"}
|
|
@@ -114,7 +114,7 @@ class AbstractAnalysis {
|
|
|
114
114
|
}
|
|
115
115
|
cfg.getStmts().forEach((stmt) => {
|
|
116
116
|
if (stmt.containsInvokeExpr()) {
|
|
117
|
-
|
|
117
|
+
this.resolveCall(cgNode.getID(), stmt).forEach(stmt => calleeMethods.push(stmt));
|
|
118
118
|
}
|
|
119
119
|
});
|
|
120
120
|
return calleeMethods;
|
|
@@ -781,7 +781,7 @@ class Pag extends BaseExplicitGraph_1.BaseExplicitGraph {
|
|
|
781
781
|
return ndId;
|
|
782
782
|
}
|
|
783
783
|
getOrNewNode(cid, v, s) {
|
|
784
|
-
let nodeId
|
|
784
|
+
let nodeId;
|
|
785
785
|
// Value
|
|
786
786
|
if (!(v instanceof ArkExport_1.ExportInfo)) {
|
|
787
787
|
nodeId = this.hasCtxNode(cid, v);
|
package/lib/core/base/Ref.js
CHANGED
|
@@ -40,7 +40,8 @@ export declare class ArkIRTransformer {
|
|
|
40
40
|
private returnStatementToStmts;
|
|
41
41
|
private blockToStmts;
|
|
42
42
|
private expressionStatementToStmts;
|
|
43
|
-
|
|
43
|
+
private addInvokeStmts;
|
|
44
|
+
private shouldGenerateExtraAssignStmt;
|
|
44
45
|
private typeAliasDeclarationToStmts;
|
|
45
46
|
private resolveImportTypeNode;
|
|
46
47
|
switchStatementToValueAndStmts(switchStatement: ts.SwitchStatement): ValueAndStmts[];
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"ArkIRTransformer.d.ts","sourceRoot":"","sources":["../../../src/core/common/ArkIRTransformer.ts"],"names":[],"mappings":"AAeA,OAAO,
|
|
1
|
+
{"version":3,"file":"ArkIRTransformer.d.ts","sourceRoot":"","sources":["../../../src/core/common/ArkIRTransformer.ts"],"names":[],"mappings":"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"}
|
|
@@ -155,7 +155,7 @@ class ArkIRTransformer {
|
|
|
155
155
|
}
|
|
156
156
|
this.mapStmtsToTsStmt(stmts, node);
|
|
157
157
|
if (stmts.length > 0) {
|
|
158
|
-
IRUtils_1.IRUtils.
|
|
158
|
+
IRUtils_1.IRUtils.setComments(stmts[0], node, this.sourceFile, this.declaringMethod.getDeclaringArkFile().getScene().getOptions());
|
|
159
159
|
}
|
|
160
160
|
return stmts;
|
|
161
161
|
}
|
|
@@ -175,14 +175,14 @@ class ArkIRTransformer {
|
|
|
175
175
|
const stmts = [];
|
|
176
176
|
if (returnStatement.expression) {
|
|
177
177
|
let { value: exprValue, valueOriginalPositions: exprPositions, stmts: exprStmts, } = this.tsNodeToValueAndStmts(returnStatement.expression);
|
|
178
|
-
stmts.push(
|
|
178
|
+
exprStmts.forEach(stmt => stmts.push(stmt));
|
|
179
179
|
if (IRUtils_1.IRUtils.moreThanOneAddress(exprValue)) {
|
|
180
180
|
({
|
|
181
181
|
value: exprValue,
|
|
182
182
|
valueOriginalPositions: exprPositions,
|
|
183
183
|
stmts: exprStmts,
|
|
184
184
|
} = this.generateAssignStmtForValue(exprValue, exprPositions));
|
|
185
|
-
stmts.push(
|
|
185
|
+
exprStmts.forEach(stmt => stmts.push(stmt));
|
|
186
186
|
}
|
|
187
187
|
const returnStmt = new Stmt_1.ArkReturnStmt(exprValue);
|
|
188
188
|
returnStmt.setOperandOriginalPositions(exprPositions);
|
|
@@ -196,44 +196,63 @@ class ArkIRTransformer {
|
|
|
196
196
|
blockToStmts(block) {
|
|
197
197
|
const stmts = [];
|
|
198
198
|
for (const statement of block.statements) {
|
|
199
|
-
|
|
199
|
+
this.tsNodeToStmts(statement).forEach(stmt => stmts.push(stmt));
|
|
200
200
|
}
|
|
201
201
|
return stmts;
|
|
202
202
|
}
|
|
203
203
|
expressionStatementToStmts(expressionStatement) {
|
|
204
|
-
|
|
205
|
-
|
|
206
|
-
expressionToStmts(expression) {
|
|
207
|
-
const { value: exprValue, valueOriginalPositions: exprPositions, stmts: stmts, } = this.tsNodeToValueAndStmts(expression);
|
|
204
|
+
const exprNode = expressionStatement.expression;
|
|
205
|
+
const { value: exprValue, valueOriginalPositions: exprPositions, stmts: stmts, } = this.tsNodeToValueAndStmts(exprNode);
|
|
208
206
|
if (exprValue instanceof Expr_1.AbstractInvokeExpr) {
|
|
209
|
-
|
|
210
|
-
invokeStmt.setOperandOriginalPositions(exprPositions);
|
|
211
|
-
stmts.push(invokeStmt);
|
|
212
|
-
let hasRepeat = false;
|
|
213
|
-
for (const stmt of stmts) {
|
|
214
|
-
if ((stmt instanceof Stmt_1.ArkAssignStmt) && (stmt.getRightOp() instanceof Expr_1.ArkStaticInvokeExpr)) {
|
|
215
|
-
const rightOp = stmt.getRightOp();
|
|
216
|
-
if (rightOp.getMethodSignature().getMethodSubSignature().getMethodName() === EtsConst_1.COMPONENT_REPEAT) {
|
|
217
|
-
const createMethodSignature = ArkSignatureBuilder_1.ArkSignatureBuilder.buildMethodSignatureFromClassNameAndMethodName(EtsConst_1.COMPONENT_REPEAT, EtsConst_1.COMPONENT_CREATE_FUNCTION);
|
|
218
|
-
const createInvokeExpr = new Expr_1.ArkStaticInvokeExpr(createMethodSignature, rightOp.getArgs());
|
|
219
|
-
stmt.setRightOp(createInvokeExpr);
|
|
220
|
-
hasRepeat = true;
|
|
221
|
-
}
|
|
222
|
-
}
|
|
223
|
-
}
|
|
224
|
-
if (hasRepeat) {
|
|
225
|
-
const popMethodSignature = ArkSignatureBuilder_1.ArkSignatureBuilder.buildMethodSignatureFromClassNameAndMethodName(EtsConst_1.COMPONENT_REPEAT, EtsConst_1.COMPONENT_POP_FUNCTION);
|
|
226
|
-
const popInvokeExpr = new Expr_1.ArkStaticInvokeExpr(popMethodSignature, []);
|
|
227
|
-
const popInvokeStmt = new Stmt_1.ArkInvokeStmt(popInvokeExpr);
|
|
228
|
-
stmts.push(popInvokeStmt);
|
|
229
|
-
}
|
|
207
|
+
this.addInvokeStmts(exprValue, exprPositions, stmts);
|
|
230
208
|
}
|
|
231
|
-
else if (
|
|
209
|
+
else if (this.shouldGenerateExtraAssignStmt(exprNode)) {
|
|
232
210
|
const { stmts: exprStmts } = this.generateAssignStmtForValue(exprValue, exprPositions);
|
|
233
|
-
stmts.push(
|
|
211
|
+
exprStmts.forEach(stmt => stmts.push(stmt));
|
|
234
212
|
}
|
|
235
213
|
return stmts;
|
|
236
214
|
}
|
|
215
|
+
addInvokeStmts(invokeExpr, exprPositions, stmts) {
|
|
216
|
+
const invokeStmt = new Stmt_1.ArkInvokeStmt(invokeExpr);
|
|
217
|
+
invokeStmt.setOperandOriginalPositions(exprPositions);
|
|
218
|
+
stmts.push(invokeStmt);
|
|
219
|
+
let hasRepeat = false;
|
|
220
|
+
for (const stmt of stmts) {
|
|
221
|
+
if ((stmt instanceof Stmt_1.ArkAssignStmt) && (stmt.getRightOp() instanceof Expr_1.ArkStaticInvokeExpr)) {
|
|
222
|
+
const rightOp = stmt.getRightOp();
|
|
223
|
+
if (rightOp.getMethodSignature().getMethodSubSignature().getMethodName() === EtsConst_1.COMPONENT_REPEAT) {
|
|
224
|
+
const createMethodSignature = ArkSignatureBuilder_1.ArkSignatureBuilder.buildMethodSignatureFromClassNameAndMethodName(EtsConst_1.COMPONENT_REPEAT, EtsConst_1.COMPONENT_CREATE_FUNCTION);
|
|
225
|
+
const createInvokeExpr = new Expr_1.ArkStaticInvokeExpr(createMethodSignature, rightOp.getArgs());
|
|
226
|
+
stmt.setRightOp(createInvokeExpr);
|
|
227
|
+
hasRepeat = true;
|
|
228
|
+
}
|
|
229
|
+
}
|
|
230
|
+
}
|
|
231
|
+
if (hasRepeat) {
|
|
232
|
+
const popMethodSignature = ArkSignatureBuilder_1.ArkSignatureBuilder.buildMethodSignatureFromClassNameAndMethodName(EtsConst_1.COMPONENT_REPEAT, EtsConst_1.COMPONENT_POP_FUNCTION);
|
|
233
|
+
const popInvokeExpr = new Expr_1.ArkStaticInvokeExpr(popMethodSignature, []);
|
|
234
|
+
const popInvokeStmt = new Stmt_1.ArkInvokeStmt(popInvokeExpr);
|
|
235
|
+
stmts.push(popInvokeStmt);
|
|
236
|
+
}
|
|
237
|
+
}
|
|
238
|
+
shouldGenerateExtraAssignStmt(expression) {
|
|
239
|
+
if (ts.isParenthesizedExpression(expression)) {
|
|
240
|
+
return this.shouldGenerateExtraAssignStmt(expression.expression);
|
|
241
|
+
}
|
|
242
|
+
if ((ts.isBinaryExpression(expression) && (expression.operatorToken.kind === ts.SyntaxKind.FirstAssignment ||
|
|
243
|
+
ArkValueTransformer_1.ArkValueTransformer.isCompoundAssignmentOperator(expression.operatorToken.kind))) ||
|
|
244
|
+
ts.isEtsComponentExpression(expression) || ts.isVoidExpression(expression) ||
|
|
245
|
+
ts.isNewExpression(expression) || ts.isCallExpression(expression) ||
|
|
246
|
+
(ts.isPrefixUnaryExpression(expression) &&
|
|
247
|
+
(expression.operator === ts.SyntaxKind.PlusPlusToken ||
|
|
248
|
+
expression.operator === ts.SyntaxKind.MinusMinusToken)) ||
|
|
249
|
+
(ts.isPostfixUnaryExpression(expression) &&
|
|
250
|
+
(expression.operator === ts.SyntaxKind.PlusPlusToken ||
|
|
251
|
+
expression.operator === ts.SyntaxKind.MinusMinusToken))) {
|
|
252
|
+
return false;
|
|
253
|
+
}
|
|
254
|
+
return true;
|
|
255
|
+
}
|
|
237
256
|
typeAliasDeclarationToStmts(typeAliasDeclaration) {
|
|
238
257
|
var _a;
|
|
239
258
|
const aliasName = typeAliasDeclaration.name.text;
|
|
@@ -296,25 +315,25 @@ class ArkIRTransformer {
|
|
|
296
315
|
const valueAndStmtsOfSwitchAndCases = [];
|
|
297
316
|
const exprStmts = [];
|
|
298
317
|
let { value: exprValue, valueOriginalPositions: exprPositions, stmts: exprTempStmts, } = this.tsNodeToValueAndStmts(switchStatement.expression);
|
|
299
|
-
exprStmts.push(
|
|
318
|
+
exprTempStmts.forEach(stmt => exprStmts.push(stmt));
|
|
300
319
|
if (IRUtils_1.IRUtils.moreThanOneAddress(exprValue)) {
|
|
301
320
|
({ value: exprValue, valueOriginalPositions: exprPositions, stmts: exprTempStmts } =
|
|
302
321
|
this.generateAssignStmtForValue(exprValue, exprPositions));
|
|
303
|
-
exprStmts.push(
|
|
322
|
+
exprTempStmts.forEach(stmt => exprStmts.push(stmt));
|
|
304
323
|
}
|
|
305
324
|
valueAndStmtsOfSwitchAndCases.push({ value: exprValue, valueOriginalPositions: exprPositions, stmts: exprStmts });
|
|
306
325
|
for (const clause of switchStatement.caseBlock.clauses) {
|
|
307
326
|
if (ts.isCaseClause(clause)) {
|
|
308
327
|
const clauseStmts = [];
|
|
309
328
|
let { value: clauseValue, valueOriginalPositions: clausePositions, stmts: clauseTempStmts, } = this.tsNodeToValueAndStmts(clause.expression);
|
|
310
|
-
clauseStmts.push(
|
|
329
|
+
clauseTempStmts.forEach(stmt => clauseStmts.push(stmt));
|
|
311
330
|
if (IRUtils_1.IRUtils.moreThanOneAddress(clauseValue)) {
|
|
312
331
|
({
|
|
313
332
|
value: clauseValue,
|
|
314
333
|
valueOriginalPositions: clausePositions,
|
|
315
334
|
stmts: clauseTempStmts,
|
|
316
335
|
} = this.generateAssignStmtForValue(clauseValue, clausePositions));
|
|
317
|
-
clauseStmts.push(
|
|
336
|
+
clauseTempStmts.forEach(stmt => clauseStmts.push(stmt));
|
|
318
337
|
}
|
|
319
338
|
valueAndStmtsOfSwitchAndCases.push({ value: clauseValue, valueOriginalPositions: clausePositions, stmts: clauseStmts });
|
|
320
339
|
}
|
|
@@ -324,48 +343,48 @@ class ArkIRTransformer {
|
|
|
324
343
|
forStatementToStmts(forStatement) {
|
|
325
344
|
const stmts = [];
|
|
326
345
|
if (forStatement.initializer) {
|
|
327
|
-
|
|
346
|
+
this.tsNodeToValueAndStmts(forStatement.initializer).stmts.forEach(stmt => stmts.push(stmt));
|
|
328
347
|
}
|
|
329
348
|
const dummyInitializerStmt = new DummyStmt(ArkIRTransformer.DUMMY_LOOP_INITIALIZER_STMT);
|
|
330
349
|
stmts.push(dummyInitializerStmt);
|
|
331
350
|
if (forStatement.condition) {
|
|
332
351
|
const { value: conditionValue, stmts: conditionStmts, } = this.arkValueTransformer.conditionToValueAndStmts(forStatement.condition);
|
|
333
|
-
stmts.push(
|
|
352
|
+
conditionStmts.forEach(stmt => stmts.push(stmt));
|
|
334
353
|
stmts.push(new Stmt_1.ArkIfStmt(conditionValue));
|
|
335
354
|
}
|
|
336
355
|
if (forStatement.incrementor) {
|
|
337
|
-
|
|
356
|
+
this.tsNodeToValueAndStmts(forStatement.incrementor).stmts.forEach(stmt => stmts.push(stmt));
|
|
338
357
|
}
|
|
339
358
|
return stmts;
|
|
340
359
|
}
|
|
341
360
|
rangeForStatementToStmts(forOfStatement) {
|
|
342
361
|
const stmts = [];
|
|
343
362
|
let { value: iterableValue, valueOriginalPositions: iterablePositions, stmts: iterableStmts, } = this.tsNodeToValueAndStmts(forOfStatement.expression);
|
|
344
|
-
stmts.push(
|
|
363
|
+
iterableStmts.forEach(stmt => stmts.push(stmt));
|
|
345
364
|
if (!(iterableValue instanceof Local_1.Local)) {
|
|
346
365
|
({ value: iterableValue, valueOriginalPositions: iterablePositions, stmts: iterableStmts } =
|
|
347
366
|
this.generateAssignStmtForValue(iterableValue, iterablePositions));
|
|
348
|
-
stmts.push(
|
|
367
|
+
iterableStmts.forEach(stmt => stmts.push(stmt));
|
|
349
368
|
}
|
|
350
369
|
const iteratorMethodSubSignature = new ArkSignature_1.MethodSubSignature(Builtin_1.Builtin.ITERATOR_FUNCTION, [], Builtin_1.Builtin.ITERATOR_CLASS_TYPE);
|
|
351
370
|
const iteratorMethodSignature = new ArkSignature_1.MethodSignature(ArkSignature_1.ClassSignature.DEFAULT, iteratorMethodSubSignature);
|
|
352
371
|
const iteratorInvokeExpr = new Expr_1.ArkInstanceInvokeExpr(iterableValue, iteratorMethodSignature, []);
|
|
353
372
|
const iteratorInvokeExprPositions = [iterablePositions[0], ...iterablePositions];
|
|
354
373
|
const { value: iterator, valueOriginalPositions: iteratorPositions, stmts: iteratorStmts, } = this.generateAssignStmtForValue(iteratorInvokeExpr, iteratorInvokeExprPositions);
|
|
355
|
-
stmts.push(
|
|
374
|
+
iteratorStmts.forEach(stmt => stmts.push(stmt));
|
|
356
375
|
iterator.setType(Builtin_1.Builtin.ITERATOR_CLASS_TYPE);
|
|
357
376
|
const nextMethodSubSignature = new ArkSignature_1.MethodSubSignature(Builtin_1.Builtin.ITERATOR_NEXT, [], Builtin_1.Builtin.ITERATOR_RESULT_CLASS_TYPE);
|
|
358
377
|
const nextMethodSignature = new ArkSignature_1.MethodSignature(ArkSignature_1.ClassSignature.DEFAULT, nextMethodSubSignature);
|
|
359
378
|
const iteratorNextInvokeExpr = new Expr_1.ArkInstanceInvokeExpr(iterator, nextMethodSignature, []);
|
|
360
379
|
const iteratorNextInvokeExprPositions = [iteratorPositions[0], ...iteratorPositions];
|
|
361
380
|
const { value: iteratorResult, valueOriginalPositions: iteratorResultPositions, stmts: iteratorResultStmts, } = this.generateAssignStmtForValue(iteratorNextInvokeExpr, iteratorNextInvokeExprPositions);
|
|
362
|
-
stmts.push(
|
|
381
|
+
iteratorResultStmts.forEach(stmt => stmts.push(stmt));
|
|
363
382
|
iteratorResult.setType(Builtin_1.Builtin.ITERATOR_RESULT_CLASS_TYPE);
|
|
364
383
|
const doneFieldSignature = new ArkSignature_1.FieldSignature(Builtin_1.Builtin.ITERATOR_RESULT_DONE, Builtin_1.Builtin.ITERATOR_RESULT_CLASS_SIGNATURE, Type_1.BooleanType.getInstance(), false);
|
|
365
384
|
const doneFieldRef = new Ref_1.ArkInstanceFieldRef(iteratorResult, doneFieldSignature);
|
|
366
385
|
const doneFieldRefPositions = [iteratorResultPositions[0], ...iteratorResultPositions];
|
|
367
386
|
const { value: doneFlag, valueOriginalPositions: doneFlagPositions, stmts: doneFlagStmts, } = this.generateAssignStmtForValue(doneFieldRef, doneFieldRefPositions);
|
|
368
|
-
stmts.push(
|
|
387
|
+
doneFlagStmts.forEach(stmt => stmts.push(stmt));
|
|
369
388
|
doneFlag.setType(Type_1.BooleanType.getInstance());
|
|
370
389
|
const conditionExpr = new Expr_1.ArkConditionExpr(doneFlag, ValueUtil_1.ValueUtil.getBooleanConstant(true), Expr_1.RelationalBinaryOperator.Equality);
|
|
371
390
|
const conditionExprPositions = [doneFlagPositions[0], ...doneFlagPositions, Position_1.FullPosition.DEFAULT];
|
|
@@ -376,7 +395,7 @@ class ArkIRTransformer {
|
|
|
376
395
|
const valueFieldRef = new Ref_1.ArkInstanceFieldRef(iteratorResult, valueFieldSignature);
|
|
377
396
|
const valueFieldRefPositions = [iteratorResultPositions[0], ...iteratorResultPositions];
|
|
378
397
|
const { value: yieldValue, valueOriginalPositions: yieldValuePositions, stmts: yieldValueStmts, } = this.generateAssignStmtForValue(valueFieldRef, valueFieldRefPositions);
|
|
379
|
-
stmts.push(
|
|
398
|
+
yieldValueStmts.forEach(stmt => stmts.push(stmt));
|
|
380
399
|
const castExpr = new Expr_1.ArkCastExpr(yieldValue, Type_1.UnknownType.getInstance());
|
|
381
400
|
const castExprPositions = [yieldValuePositions[0], ...yieldValuePositions];
|
|
382
401
|
const initializerNode = forOfStatement.initializer;
|
|
@@ -385,13 +404,15 @@ class ArkIRTransformer {
|
|
|
385
404
|
const { value: initValue, valueOriginalPositions: initOriPos, stmts: initStmts, } = this.arkValueTransformer.variableDeclarationToValueAndStmts(initializerNode.declarations[0], isConst, false);
|
|
386
405
|
const assignStmt = new Stmt_1.ArkAssignStmt(initValue, castExpr);
|
|
387
406
|
assignStmt.setOperandOriginalPositions([...initOriPos, ...castExprPositions]);
|
|
388
|
-
stmts.push(assignStmt
|
|
407
|
+
stmts.push(assignStmt);
|
|
408
|
+
initStmts.forEach(stmt => stmts.push(stmt));
|
|
389
409
|
}
|
|
390
410
|
else { // initializer maybe an expression
|
|
391
411
|
const { value: initValue, valueOriginalPositions: initOriPos, stmts: initStmts, } = this.tsNodeToValueAndStmts(initializerNode);
|
|
392
412
|
const assignStmt = new Stmt_1.ArkAssignStmt(initValue, castExpr);
|
|
393
413
|
assignStmt.setOperandOriginalPositions([...initOriPos, ...castExprPositions]);
|
|
394
|
-
stmts.push(
|
|
414
|
+
initStmts.forEach(stmt => stmts.push(stmt));
|
|
415
|
+
stmts.push(assignStmt);
|
|
395
416
|
}
|
|
396
417
|
return stmts;
|
|
397
418
|
}
|
|
@@ -400,14 +421,14 @@ class ArkIRTransformer {
|
|
|
400
421
|
const dummyInitializerStmt = new DummyStmt(ArkIRTransformer.DUMMY_LOOP_INITIALIZER_STMT);
|
|
401
422
|
stmts.push(dummyInitializerStmt);
|
|
402
423
|
const { value: conditionExpr, stmts: conditionStmts, } = this.arkValueTransformer.conditionToValueAndStmts(whileStatement.expression);
|
|
403
|
-
stmts.push(
|
|
424
|
+
conditionStmts.forEach(stmt => stmts.push(stmt));
|
|
404
425
|
stmts.push(new Stmt_1.ArkIfStmt(conditionExpr));
|
|
405
426
|
return stmts;
|
|
406
427
|
}
|
|
407
428
|
doStatementToStmts(doStatement) {
|
|
408
429
|
const stmts = [];
|
|
409
430
|
const { value: conditionExpr, stmts: conditionStmts, } = this.arkValueTransformer.conditionToValueAndStmts(doStatement.expression);
|
|
410
|
-
stmts.push(
|
|
431
|
+
conditionStmts.forEach(stmt => stmts.push(stmt));
|
|
411
432
|
stmts.push(new Stmt_1.ArkIfStmt(conditionExpr));
|
|
412
433
|
return stmts;
|
|
413
434
|
}
|
|
@@ -421,21 +442,21 @@ class ArkIRTransformer {
|
|
|
421
442
|
const stmts = [];
|
|
422
443
|
if (this.inBuilderMethod) {
|
|
423
444
|
const { value: conditionExpr, valueOriginalPositions: conditionExprPositions, stmts: conditionStmts, } = this.arkValueTransformer.conditionToValueAndStmts(ifStatement.expression);
|
|
424
|
-
stmts.push(
|
|
445
|
+
conditionStmts.forEach(stmt => stmts.push(stmt));
|
|
425
446
|
const createMethodSignature = ArkSignatureBuilder_1.ArkSignatureBuilder.buildMethodSignatureFromClassNameAndMethodName(EtsConst_1.COMPONENT_IF, EtsConst_1.COMPONENT_CREATE_FUNCTION);
|
|
426
447
|
const { value: conditionLocal, valueOriginalPositions: conditionLocalPositions, stmts: assignConditionStmts } = this.generateAssignStmtForValue(conditionExpr, conditionExprPositions);
|
|
427
|
-
stmts.push(
|
|
448
|
+
assignConditionStmts.forEach(stmt => stmts.push(stmt));
|
|
428
449
|
const createInvokeExpr = new Expr_1.ArkStaticInvokeExpr(createMethodSignature, [conditionLocal]);
|
|
429
450
|
const createInvokeExprPositions = [conditionLocalPositions[0], ...conditionLocalPositions];
|
|
430
451
|
const { stmts: createStmts } = this.generateAssignStmtForValue(createInvokeExpr, createInvokeExprPositions);
|
|
431
|
-
stmts.push(
|
|
452
|
+
createStmts.forEach(stmt => stmts.push(stmt));
|
|
432
453
|
const branchMethodSignature = ArkSignatureBuilder_1.ArkSignatureBuilder.buildMethodSignatureFromClassNameAndMethodName(EtsConst_1.COMPONENT_IF, EtsConst_1.COMPONENT_BRANCH_FUNCTION);
|
|
433
454
|
const branchInvokeExpr = new Expr_1.ArkStaticInvokeExpr(branchMethodSignature, [ValueUtil_1.ValueUtil.getOrCreateNumberConst(0)]);
|
|
434
455
|
const branchInvokeExprPositions = [conditionLocalPositions[0], Position_1.FullPosition.DEFAULT];
|
|
435
456
|
const branchInvokeStmt = new Stmt_1.ArkInvokeStmt(branchInvokeExpr);
|
|
436
457
|
branchInvokeStmt.setOperandOriginalPositions(branchInvokeExprPositions);
|
|
437
458
|
stmts.push(branchInvokeStmt);
|
|
438
|
-
|
|
459
|
+
this.tsNodeToStmts(ifStatement.thenStatement).forEach(stmt => stmts.push(stmt));
|
|
439
460
|
if (ifStatement.elseStatement) {
|
|
440
461
|
const branchElseMethodSignature = ArkSignatureBuilder_1.ArkSignatureBuilder.buildMethodSignatureFromClassNameAndMethodName(EtsConst_1.COMPONENT_IF, EtsConst_1.COMPONENT_BRANCH_FUNCTION);
|
|
441
462
|
const branchElseInvokeExpr = new Expr_1.ArkStaticInvokeExpr(branchElseMethodSignature, [ValueUtil_1.ValueUtil.getOrCreateNumberConst(1)]);
|
|
@@ -443,7 +464,7 @@ class ArkIRTransformer {
|
|
|
443
464
|
const branchElseInvokeStmt = new Stmt_1.ArkInvokeStmt(branchElseInvokeExpr);
|
|
444
465
|
branchElseInvokeStmt.setOperandOriginalPositions(branchElseInvokeExprPositions);
|
|
445
466
|
stmts.push(branchElseInvokeStmt);
|
|
446
|
-
|
|
467
|
+
this.tsNodeToStmts(ifStatement.elseStatement).forEach(stmt => stmts.push(stmt));
|
|
447
468
|
}
|
|
448
469
|
const popMethodSignature = ArkSignatureBuilder_1.ArkSignatureBuilder.buildMethodSignatureFromClassNameAndMethodName(EtsConst_1.COMPONENT_IF, EtsConst_1.COMPONENT_POP_FUNCTION);
|
|
449
470
|
const popInvokeExpr = new Expr_1.ArkStaticInvokeExpr(popMethodSignature, []);
|
|
@@ -452,7 +473,7 @@ class ArkIRTransformer {
|
|
|
452
473
|
}
|
|
453
474
|
else {
|
|
454
475
|
const { value: conditionExpr, valueOriginalPositions: conditionExprPositions, stmts: conditionStmts, } = this.arkValueTransformer.conditionToValueAndStmts(ifStatement.expression);
|
|
455
|
-
stmts.push(
|
|
476
|
+
conditionStmts.forEach(stmt => stmts.push(stmt));
|
|
456
477
|
const ifStmt = new Stmt_1.ArkIfStmt(conditionExpr);
|
|
457
478
|
ifStmt.setOperandOriginalPositions(conditionExprPositions);
|
|
458
479
|
stmts.push(ifStmt);
|
|
@@ -465,7 +486,7 @@ class ArkIRTransformer {
|
|
|
465
486
|
throwStatementToStmts(throwStatement) {
|
|
466
487
|
const stmts = [];
|
|
467
488
|
const { value: throwValue, valueOriginalPositions: throwValuePositions, stmts: throwStmts, } = this.tsNodeToValueAndStmts(throwStatement.expression);
|
|
468
|
-
stmts.push(
|
|
489
|
+
throwStmts.forEach(stmt => stmts.push(stmt));
|
|
469
490
|
const throwStmt = new Stmt_1.ArkThrowStmt(throwValue);
|
|
470
491
|
throwStmt.setOperandOriginalPositions(throwValuePositions);
|
|
471
492
|
stmts.push(throwStmt);
|
|
@@ -478,7 +499,8 @@ class ArkIRTransformer {
|
|
|
478
499
|
const caughtExceptionRef = new Ref_1.ArkCaughtExceptionRef(Type_1.UnknownType.getInstance());
|
|
479
500
|
const assignStmt = new Stmt_1.ArkAssignStmt(catchValue, caughtExceptionRef);
|
|
480
501
|
assignStmt.setOperandOriginalPositions(catchOriPos);
|
|
481
|
-
stmts.push(assignStmt
|
|
502
|
+
stmts.push(assignStmt);
|
|
503
|
+
catchStmts.forEach(stmt => stmts.push(stmt));
|
|
482
504
|
}
|
|
483
505
|
return stmts;
|
|
484
506
|
}
|
|
@@ -491,7 +513,7 @@ class ArkIRTransformer {
|
|
|
491
513
|
newClassInExportToStmts(expression) {
|
|
492
514
|
let stmts = [];
|
|
493
515
|
let { value: rightValue, valueOriginalPositions: rightPositions, stmts: rightStmts, } = this.tsNodeToValueAndStmts(expression);
|
|
494
|
-
stmts.push(
|
|
516
|
+
rightStmts.forEach(stmt => stmts.push(stmt));
|
|
495
517
|
let leftValue = this.arkValueTransformer.addNewLocal(TSConst_1.DEFAULT);
|
|
496
518
|
let leftPositions = rightPositions;
|
|
497
519
|
const assignStmt = new Stmt_1.ArkAssignStmt(leftValue, rightValue);
|
|
@@ -569,6 +591,8 @@ class ArkIRTransformer {
|
|
|
569
591
|
return Expr_1.RelationalBinaryOperator.StrictEquality;
|
|
570
592
|
case ts.SyntaxKind.ExclamationEqualsEqualsToken:
|
|
571
593
|
return Expr_1.RelationalBinaryOperator.StrictInequality;
|
|
594
|
+
default:
|
|
595
|
+
;
|
|
572
596
|
}
|
|
573
597
|
return null;
|
|
574
598
|
}
|
|
@@ -583,13 +607,13 @@ class ArkIRTransformer {
|
|
|
583
607
|
const stmts = [];
|
|
584
608
|
if (IRUtils_1.IRUtils.moreThanOneAddress(leftValue)) {
|
|
585
609
|
const { value: tempLeftValue, valueOriginalPositions: tempLeftPositions, stmts: leftStmts, } = this.generateAssignStmtForValue(leftValue, leftOpOriginalPositions);
|
|
586
|
-
stmts.push(
|
|
610
|
+
leftStmts.forEach(stmt => stmts.push(stmt));
|
|
587
611
|
leftValue = tempLeftValue;
|
|
588
612
|
leftOpOriginalPositions = tempLeftPositions;
|
|
589
613
|
}
|
|
590
614
|
if (IRUtils_1.IRUtils.moreThanOneAddress(rightValue)) {
|
|
591
615
|
const { value: tempRightValue, valueOriginalPositions: tempRightPositions, stmts: rightStmts, } = this.generateAssignStmtForValue(rightValue, rightOpOriginalPositions);
|
|
592
|
-
stmts.push(
|
|
616
|
+
rightStmts.forEach(stmt => stmts.push(stmt));
|
|
593
617
|
rightValue = tempRightValue;
|
|
594
618
|
rightOpOriginalPositions = tempRightPositions;
|
|
595
619
|
}
|
|
@@ -16,7 +16,6 @@ export declare class ArkValueTransformer {
|
|
|
16
16
|
private arkIRTransformer;
|
|
17
17
|
private aliasTypeMap;
|
|
18
18
|
private builderMethodContextFlag;
|
|
19
|
-
private static compoundAssignmentOperators;
|
|
20
19
|
constructor(arkIRTransformer: ArkIRTransformer, sourceFile: ts.SourceFile, declaringMethod: ArkMethod);
|
|
21
20
|
getLocals(): Set<Local>;
|
|
22
21
|
getThisLocal(): Local;
|
|
@@ -36,17 +35,22 @@ export declare class ArkValueTransformer {
|
|
|
36
35
|
private etsComponentExpressionToValueAndStmts;
|
|
37
36
|
private classExpressionToValueAndStmts;
|
|
38
37
|
private templateExpressionToValueAndStmts;
|
|
38
|
+
private processTemplatePlaceholders;
|
|
39
|
+
private combineTemplateParts;
|
|
40
|
+
private taggedTemplateExpressionToValueAndStmts;
|
|
39
41
|
private collectTemplateValues;
|
|
40
42
|
private identifierToValueAndStmts;
|
|
41
43
|
private propertyAccessExpressionToValue;
|
|
42
44
|
private elementAccessExpressionToValueAndStmts;
|
|
43
45
|
private callExpressionToValueAndStmts;
|
|
46
|
+
private generateInvokeValueAndStmts;
|
|
44
47
|
private parseArgumentsOfCallExpression;
|
|
45
48
|
private parseArguments;
|
|
46
49
|
private callableNodeToValueAndStmts;
|
|
47
50
|
private newExpressionToValueAndStmts;
|
|
48
51
|
private newArrayExpressionToValueAndStmts;
|
|
49
52
|
private arrayLiteralExpressionToValueAndStmts;
|
|
53
|
+
private generateArrayExprAndStmts;
|
|
50
54
|
private prefixUnaryExpressionToValueAndStmts;
|
|
51
55
|
private postfixUnaryExpressionToValueAndStmts;
|
|
52
56
|
private awaitExpressionToValueAndStmts;
|
|
@@ -80,5 +84,6 @@ export declare class ArkValueTransformer {
|
|
|
80
84
|
private resolveTypeReferenceNode;
|
|
81
85
|
private resolveTypeLiteralNode;
|
|
82
86
|
private resolveFunctionTypeNode;
|
|
87
|
+
static isCompoundAssignmentOperator(operator: ts.SyntaxKind): boolean;
|
|
83
88
|
}
|
|
84
89
|
//# sourceMappingURL=ArkValueTransformer.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"ArkValueTransformer.d.ts","sourceRoot":"","sources":["../../../src/core/common/ArkValueTransformer.ts"],"names":[],"mappings":"AAeA,OAAO,KAAK,EAAE,MAAM,iBAAiB,CAAC;AACtC,OAAO,EAAE,KAAK,EAAE,MAAM,eAAe,CAAC;AAEtC,OAAO,EAAE,sBAAsB,EAAiD,MAAM,cAAc,CAAC;AAuBrG,OAAO,EACH,SAAS,EAYT,IAAI,EAMP,MAAM,cAAc,CAAC;AAetB,OAAO,EAAyE,SAAS,EAAE,MAAM,aAAa,CAAC;AAE/G,OAAO,EAAE,SAAS,EAAE,MAAM,oBAAoB,CAAC;AAK/C,OAAO,EAAE,gBAAgB,EAAa,aAAa,EAAE,MAAM,oBAAoB,CAAC;AAKhF,qBAAa,mBAAmB;IAC5B,OAAO,CAAC,qBAAqB,CAAa;IAC1C,OAAO,CAAC,WAAW,CAAa;IAChC,OAAO,CAAC,UAAU,CAAgB;IAClC,OAAO,CAAC,MAAM,CAAiC;IAC/C,OAAO,CAAC,OAAO,CAAC,CAAyB;IACzC,OAAO,CAAC,SAAS,CAAQ;IACzB,OAAO,CAAC,eAAe,CAAY;IACnC,OAAO,CAAC,gBAAgB,CAAmB;IAC3C,OAAO,CAAC,YAAY,CAA+D;IACnF,OAAO,CAAC,wBAAwB,CAAS;
|
|
1
|
+
{"version":3,"file":"ArkValueTransformer.d.ts","sourceRoot":"","sources":["../../../src/core/common/ArkValueTransformer.ts"],"names":[],"mappings":"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"}
|