arkanalyzer 1.0.29 → 1.0.31

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.
Files changed (86) hide show
  1. package/lib/Scene.d.ts +7 -0
  2. package/lib/Scene.d.ts.map +1 -1
  3. package/lib/Scene.js +196 -173
  4. package/lib/VFG/builder/DVFGBuilder.d.ts.map +1 -1
  5. package/lib/VFG/builder/DVFGBuilder.js +11 -6
  6. package/lib/callgraph/algorithm/AbstractAnalysis.d.ts +3 -1
  7. package/lib/callgraph/algorithm/AbstractAnalysis.d.ts.map +1 -1
  8. package/lib/callgraph/algorithm/AbstractAnalysis.js +18 -10
  9. package/lib/callgraph/algorithm/RapidTypeAnalysis.d.ts.map +1 -1
  10. package/lib/callgraph/algorithm/RapidTypeAnalysis.js +8 -7
  11. package/lib/callgraph/common/Statistics.d.ts.map +1 -1
  12. package/lib/callgraph/common/Statistics.js +25 -24
  13. package/lib/callgraph/model/CallGraph.d.ts.map +1 -1
  14. package/lib/callgraph/model/CallGraph.js +0 -1
  15. package/lib/callgraph/pointerAnalysis/Context.d.ts.map +1 -1
  16. package/lib/callgraph/pointerAnalysis/Context.js +0 -1
  17. package/lib/callgraph/pointerAnalysis/PTAUtils.d.ts +9 -3
  18. package/lib/callgraph/pointerAnalysis/PTAUtils.d.ts.map +1 -1
  19. package/lib/callgraph/pointerAnalysis/PTAUtils.js +32 -18
  20. package/lib/callgraph/pointerAnalysis/Pag.d.ts +17 -1
  21. package/lib/callgraph/pointerAnalysis/Pag.d.ts.map +1 -1
  22. package/lib/callgraph/pointerAnalysis/Pag.js +74 -27
  23. package/lib/callgraph/pointerAnalysis/PagBuilder.d.ts +51 -18
  24. package/lib/callgraph/pointerAnalysis/PagBuilder.d.ts.map +1 -1
  25. package/lib/callgraph/pointerAnalysis/PagBuilder.js +533 -346
  26. package/lib/callgraph/pointerAnalysis/PointerAnalysis.d.ts.map +1 -1
  27. package/lib/callgraph/pointerAnalysis/PointerAnalysis.js +15 -14
  28. package/lib/core/base/Local.js +2 -2
  29. package/lib/core/base/Type.d.ts +10 -1
  30. package/lib/core/base/Type.d.ts.map +1 -1
  31. package/lib/core/base/Type.js +18 -1
  32. package/lib/core/common/ArkValueTransformer.d.ts.map +1 -1
  33. package/lib/core/common/ArkValueTransformer.js +3 -1
  34. package/lib/core/common/DummyMainCreater.d.ts.map +1 -1
  35. package/lib/core/common/DummyMainCreater.js +17 -20
  36. package/lib/core/common/IRInference.d.ts.map +1 -1
  37. package/lib/core/common/IRInference.js +21 -12
  38. package/lib/core/common/TypeInference.d.ts +1 -0
  39. package/lib/core/common/TypeInference.d.ts.map +1 -1
  40. package/lib/core/common/TypeInference.js +30 -4
  41. package/lib/core/dataflow/DataflowSolver.d.ts +1 -0
  42. package/lib/core/dataflow/DataflowSolver.d.ts.map +1 -1
  43. package/lib/core/dataflow/DataflowSolver.js +21 -17
  44. package/lib/core/dataflow/ReachingDef.d.ts.map +1 -1
  45. package/lib/core/dataflow/ReachingDef.js +6 -0
  46. package/lib/core/dataflow/UndefinedVariable.d.ts.map +1 -1
  47. package/lib/core/dataflow/UndefinedVariable.js +0 -25
  48. package/lib/core/graph/Cfg.d.ts +1 -0
  49. package/lib/core/graph/Cfg.d.ts.map +1 -1
  50. package/lib/core/graph/Cfg.js +49 -45
  51. package/lib/core/graph/DominanceFinder.js +19 -19
  52. package/lib/core/graph/builder/ViewTreeBuilder.d.ts +1 -0
  53. package/lib/core/graph/builder/ViewTreeBuilder.d.ts.map +1 -1
  54. package/lib/core/graph/builder/ViewTreeBuilder.js +34 -31
  55. package/lib/core/model/ArkMethod.d.ts.map +1 -1
  56. package/lib/core/model/ArkMethod.js +13 -6
  57. package/lib/core/model/builder/builderUtils.d.ts.map +1 -1
  58. package/lib/core/model/builder/builderUtils.js +72 -63
  59. package/lib/save/serializeArkIR.d.ts.map +1 -1
  60. package/lib/save/serializeArkIR.js +11 -24
  61. package/lib/save/source/SourceBody.js +10 -10
  62. package/lib/save/source/SourceFilePrinter.d.ts +1 -0
  63. package/lib/save/source/SourceFilePrinter.d.ts.map +1 -1
  64. package/lib/save/source/SourceFilePrinter.js +11 -8
  65. package/lib/save/source/SourceNamespace.d.ts +1 -0
  66. package/lib/save/source/SourceNamespace.d.ts.map +1 -1
  67. package/lib/save/source/SourceNamespace.js +11 -8
  68. package/lib/save/source/SourceStmt.d.ts +1 -0
  69. package/lib/save/source/SourceStmt.d.ts.map +1 -1
  70. package/lib/save/source/SourceStmt.js +37 -35
  71. package/lib/save/source/SourceTransformer.d.ts +2 -0
  72. package/lib/save/source/SourceTransformer.d.ts.map +1 -1
  73. package/lib/save/source/SourceTransformer.js +64 -54
  74. package/lib/transformer/StaticSingleAssignmentFormer.d.ts +5 -0
  75. package/lib/transformer/StaticSingleAssignmentFormer.d.ts.map +1 -1
  76. package/lib/transformer/StaticSingleAssignmentFormer.js +119 -101
  77. package/lib/utils/CfgStructualAnalysis.d.ts +1 -0
  78. package/lib/utils/CfgStructualAnalysis.d.ts.map +1 -1
  79. package/lib/utils/CfgStructualAnalysis.js +28 -24
  80. package/lib/utils/FileUtils.d.ts.map +1 -1
  81. package/lib/utils/FileUtils.js +14 -12
  82. package/lib/utils/callGraphUtils.d.ts.map +1 -1
  83. package/lib/utils/callGraphUtils.js +26 -23
  84. package/lib/utils/entryMethodUtils.d.ts.map +1 -1
  85. package/lib/utils/entryMethodUtils.js +11 -8
  86. package/package.json +2 -2
@@ -1 +1 @@
1
- {"version":3,"file":"SourceFilePrinter.d.ts","sourceRoot":"","sources":["../../../src/save/source/SourceFilePrinter.ts"],"names":[],"mappings":"AAkCA,OAAO,EAAE,OAAO,EAAE,MAAM,0BAA0B,CAAC;AACnD,OAAO,EAAE,IAAI,EAAE,MAAM,qBAAqB,CAAC;AAO3C,OAAO,EAAE,OAAO,EAAE,MAAM,YAAY,CAAC;AAErC;;GAEG;AACH,qBAAa,iBAAkB,SAAQ,OAAO;IAC1C,OAAO,EAAE,OAAO,CAAC;IACjB,KAAK,EAAE,IAAI,EAAE,CAAM;gBAEP,OAAO,EAAE,OAAO;IAKrB,IAAI,IAAI,MAAM;CA2CxB"}
1
+ {"version":3,"file":"SourceFilePrinter.d.ts","sourceRoot":"","sources":["../../../src/save/source/SourceFilePrinter.ts"],"names":[],"mappings":"AAkCA,OAAO,EAAE,OAAO,EAAE,MAAM,0BAA0B,CAAC;AACnD,OAAO,EAAE,IAAI,EAAE,MAAM,qBAAqB,CAAC;AAO3C,OAAO,EAAE,OAAO,EAAE,MAAM,YAAY,CAAC;AAGrC;;GAEG;AACH,qBAAa,iBAAkB,SAAQ,OAAO;IAC1C,OAAO,EAAE,OAAO,CAAC;IACjB,KAAK,EAAE,IAAI,EAAE,CAAM;gBAEP,OAAO,EAAE,OAAO;IAK5B,OAAO,CAAC,uBAAuB;IAYxB,IAAI,IAAI,MAAM;CA8BxB"}
@@ -31,6 +31,16 @@ class SourceFilePrinter extends Printer_1.Printer {
31
31
  this.items = [];
32
32
  this.arkFile = arkFile;
33
33
  }
34
+ printDefaultClassInFile(cls) {
35
+ for (let method of cls.getMethods()) {
36
+ if (method.isDefaultArkMethod()) {
37
+ this.items.push(...new SourceMethod_1.SourceMethod(method, this.printer.getIndent()).dumpDefaultMethod());
38
+ }
39
+ else if (!PrinterUtils_1.PrinterUtils.isAnonymousMethod(method.getName())) {
40
+ this.items.push(new SourceMethod_1.SourceMethod(method));
41
+ }
42
+ }
43
+ }
34
44
  dump() {
35
45
  this.printer.clear();
36
46
  // print imports
@@ -42,14 +52,7 @@ class SourceFilePrinter extends Printer_1.Printer {
42
52
  // print class
43
53
  for (let cls of this.arkFile.getClasses()) {
44
54
  if (cls.isDefaultArkClass()) {
45
- for (let method of cls.getMethods()) {
46
- if (method.isDefaultArkMethod()) {
47
- this.items.push(...new SourceMethod_1.SourceMethod(method, this.printer.getIndent()).dumpDefaultMethod());
48
- }
49
- else if (!PrinterUtils_1.PrinterUtils.isAnonymousMethod(method.getName())) {
50
- this.items.push(new SourceMethod_1.SourceMethod(method));
51
- }
52
- }
55
+ this.printDefaultClassInFile(cls);
53
56
  }
54
57
  else if (!PrinterUtils_1.PrinterUtils.isAnonymousClass(cls.getName())) {
55
58
  this.items.push(new SourceClass_1.SourceClass(cls));
@@ -7,6 +7,7 @@ export declare class SourceNamespace extends SourceBase {
7
7
  ns: ArkNamespace;
8
8
  constructor(ns: ArkNamespace, indent?: string);
9
9
  getLine(): number;
10
+ private printDefaultClassInNamespace;
10
11
  dump(): string;
11
12
  }
12
13
  //# sourceMappingURL=SourceNamespace.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"SourceNamespace.d.ts","sourceRoot":"","sources":["../../../src/save/source/SourceNamespace.ts"],"names":[],"mappings":"AAgBA,OAAO,EAAE,YAAY,EAAE,MAAM,+BAA+B,CAAC;AAC7D,OAAO,EAAE,UAAU,EAAE,MAAM,cAAc,CAAC;AAO1C;;GAEG;AACH,qBAAa,eAAgB,SAAQ,UAAU;IAC3C,EAAE,EAAE,YAAY,CAAC;gBAEE,EAAE,EAAE,YAAY,EAAE,MAAM,GAAE,MAAW;IAKjD,OAAO,IAAI,MAAM;IAIjB,IAAI,IAAI,MAAM;CAsDxB"}
1
+ {"version":3,"file":"SourceNamespace.d.ts","sourceRoot":"","sources":["../../../src/save/source/SourceNamespace.ts"],"names":[],"mappings":"AAgBA,OAAO,EAAE,YAAY,EAAE,MAAM,+BAA+B,CAAC;AAC7D,OAAO,EAAE,UAAU,EAAE,MAAM,cAAc,CAAC;AAQ1C;;GAEG;AACH,qBAAa,eAAgB,SAAQ,UAAU;IAC3C,EAAE,EAAE,YAAY,CAAC;gBAEE,EAAE,EAAE,YAAY,EAAE,MAAM,GAAE,MAAW;IAKjD,OAAO,IAAI,MAAM;IAIxB,OAAO,CAAC,4BAA4B;IAU7B,IAAI,IAAI,MAAM;CA2CxB"}
@@ -32,6 +32,16 @@ class SourceNamespace extends SourceBase_1.SourceBase {
32
32
  getLine() {
33
33
  return this.ns.getLine();
34
34
  }
35
+ printDefaultClassInNamespace(items, cls) {
36
+ for (let method of cls.getMethods()) {
37
+ if (method.isDefaultArkMethod()) {
38
+ items.push(...new SourceMethod_1.SourceMethod(method, this.printer.getIndent()).dumpDefaultMethod());
39
+ }
40
+ else if (!PrinterUtils_1.PrinterUtils.isAnonymousMethod(method.getName())) {
41
+ items.push(new SourceMethod_1.SourceMethod(method, this.printer.getIndent()));
42
+ }
43
+ }
44
+ }
35
45
  dump() {
36
46
  const commentsMetadata = this.ns.getMetadata(ArkMetadata_1.ArkMetadataKind.LEADING_COMMENTS);
37
47
  if (commentsMetadata instanceof ArkMetadata_1.CommentsMetadata) {
@@ -50,14 +60,7 @@ class SourceNamespace extends SourceBase_1.SourceBase {
50
60
  continue;
51
61
  }
52
62
  if (cls.isDefaultArkClass()) {
53
- for (let method of cls.getMethods()) {
54
- if (method.isDefaultArkMethod()) {
55
- items.push(...new SourceMethod_1.SourceMethod(method, this.printer.getIndent()).dumpDefaultMethod());
56
- }
57
- else if (!PrinterUtils_1.PrinterUtils.isAnonymousMethod(method.getName())) {
58
- items.push(new SourceMethod_1.SourceMethod(method, this.printer.getIndent()));
59
- }
60
- }
63
+ this.printDefaultClassInNamespace(items, cls);
61
64
  }
62
65
  else {
63
66
  items.push(new SourceClass_1.SourceClass(cls, this.printer.getIndent()));
@@ -56,6 +56,7 @@ export declare class SourceAssignStmt extends SourceStmt {
56
56
  * temp1.constructor(10)
57
57
  */
58
58
  private transferRightNewExpr;
59
+ private handleConstructorInvoke;
59
60
  /**
60
61
  * $temp0 = newarray[4]
61
62
  * $temp0[0] = 1
@@ -1 +1 @@
1
- {"version":3,"file":"SourceStmt.d.ts","sourceRoot":"","sources":["../../../src/save/source/SourceStmt.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"SourceStmt.d.ts","sourceRoot":"","sources":["../../../src/save/source/SourceStmt.ts"],"names":[],"mappings":"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"}
@@ -188,36 +188,35 @@ class SourceAssignStmt extends SourceStmt {
188
188
  }
189
189
  if (this.context.hasTempVisit(this.leftCode)) {
190
190
  this.setText('');
191
+ return;
191
192
  }
192
193
  else if (PrinterUtils_1.PrinterUtils.isTemp(this.leftCode)) {
193
194
  this.setText(`${this.rightCode};`);
195
+ return;
194
196
  }
195
- else {
196
- if (this.leftOp instanceof Local_1.Local &&
197
- this.context.getLocals().has(this.leftOp.getName()) &&
198
- !this.isLocalTempValue(this.leftOp)) {
199
- if (this.context.isLocalDefined(this.leftOp)) {
200
- this.setText(`${this.leftCode} = ${this.rightCode};`);
197
+ if (this.leftOp instanceof Local_1.Local &&
198
+ this.context.getLocals().has(this.leftOp.getName()) &&
199
+ !this.isLocalTempValue(this.leftOp)) {
200
+ if (this.context.isLocalDefined(this.leftOp)) {
201
+ this.setText(`${this.leftCode} = ${this.rightCode};`);
202
+ return;
203
+ }
204
+ let flag = this.leftOp.getConstFlag() ? 'const' : 'let';
205
+ if (this.context.getArkFile().getExportInfoBy(this.leftCode) && this.context.isInDefaultMethod()) {
206
+ this.setText(`export ${flag} ${this.leftCode} = ${this.rightCode};`);
207
+ }
208
+ else {
209
+ if (this.leftTypeCode.length > 0) {
210
+ this.setText(`${flag} ${this.leftCode}: ${this.leftTypeCode} = ${this.rightCode};`);
201
211
  }
202
212
  else {
203
- let flag = this.leftOp.getConstFlag() ? 'const' : 'let';
204
- if (this.context.getArkFile().getExportInfoBy(this.leftCode) && this.context.isInDefaultMethod()) {
205
- this.setText(`export ${flag} ${this.leftCode} = ${this.rightCode};`);
206
- }
207
- else {
208
- if (this.leftTypeCode.length > 0) {
209
- this.setText(`${flag} ${this.leftCode}: ${this.leftTypeCode} = ${this.rightCode};`);
210
- }
211
- else {
212
- this.setText(`${flag} ${this.leftCode} = ${this.rightCode};`);
213
- }
214
- }
215
- this.context.defineLocal(this.leftOp);
213
+ this.setText(`${flag} ${this.leftCode} = ${this.rightCode};`);
216
214
  }
217
215
  }
218
- else {
219
- this.setText(`${this.leftCode} = ${this.rightCode};`);
220
- }
216
+ this.context.defineLocal(this.leftOp);
217
+ }
218
+ else {
219
+ this.setText(`${this.leftCode} = ${this.rightCode};`);
221
220
  }
222
221
  }
223
222
  afterDump() {
@@ -249,19 +248,7 @@ class SourceAssignStmt extends SourceStmt {
249
248
  let instanceInvokeExpr = stmt.getInvokeExpr();
250
249
  if ('constructor' === instanceInvokeExpr.getMethodSignature().getMethodSubSignature().getMethodName() &&
251
250
  instanceInvokeExpr.getBase().getName() === this.leftOp.getName()) {
252
- let args = [];
253
- instanceInvokeExpr.getArgs().forEach((v) => {
254
- args.push(this.transformer.valueToString(v));
255
- });
256
- if (originType === PrinterUtils_1.CLASS_CATEGORY_COMPONENT) {
257
- this.rightCode = `${this.transformer.typeToString(this.rightOp.getType())}(${args.join(', ')})`;
258
- }
259
- else if (originType === ArkClass_1.ClassCategory.TYPE_LITERAL || originType === ArkClass_1.ClassCategory.OBJECT) {
260
- this.rightCode = `${this.transformer.literalObjectToString(this.rightOp.getType())}`;
261
- }
262
- else {
263
- this.rightCode = `new ${this.transformer.typeToString(this.rightOp.getType())}(${args.join(', ')})`;
264
- }
251
+ this.handleConstructorInvoke(instanceInvokeExpr, originType);
265
252
  return;
266
253
  }
267
254
  }
@@ -279,6 +266,21 @@ class SourceAssignStmt extends SourceStmt {
279
266
  this.rightCode = `new ${this.transformer.typeToString(this.rightOp.getType())}()`;
280
267
  }
281
268
  }
269
+ handleConstructorInvoke(instanceInvokeExpr, originType) {
270
+ let args = [];
271
+ instanceInvokeExpr.getArgs().forEach((v) => {
272
+ args.push(this.transformer.valueToString(v));
273
+ });
274
+ if (originType === PrinterUtils_1.CLASS_CATEGORY_COMPONENT) {
275
+ this.rightCode = `${this.transformer.typeToString(this.rightOp.getType())}(${args.join(', ')})`;
276
+ }
277
+ else if (originType === ArkClass_1.ClassCategory.TYPE_LITERAL || originType === ArkClass_1.ClassCategory.OBJECT) {
278
+ this.rightCode = `${this.transformer.literalObjectToString(this.rightOp.getType())}`;
279
+ }
280
+ else {
281
+ this.rightCode = `new ${this.transformer.typeToString(this.rightOp.getType())}(${args.join(', ')})`;
282
+ }
283
+ }
282
284
  /**
283
285
  * $temp0 = newarray[4]
284
286
  * $temp0[0] = 1
@@ -25,6 +25,7 @@ export declare class SourceTransformer {
25
25
  private anonymousMethodToString;
26
26
  private anonymousClassToString;
27
27
  instanceInvokeExprToString(invokeExpr: ArkInstanceInvokeExpr): string;
28
+ private transBuilderMethod;
28
29
  staticInvokeExprToString(invokeExpr: ArkStaticInvokeExpr): string;
29
30
  private genericTypesToString;
30
31
  typeArrayToString(types: Type[], split?: string): string;
@@ -32,6 +33,7 @@ export declare class SourceTransformer {
32
33
  private exprToString;
33
34
  refToString(value: AbstractRef): string;
34
35
  valueToString(value: Value, operator?: string): string;
36
+ private localToString;
35
37
  literalObjectToString(type: ClassType): string;
36
38
  typeToString(type: Type): string;
37
39
  private literalType2string;
@@ -1 +1 @@
1
- {"version":3,"file":"SourceTransformer.d.ts","sourceRoot":"","sources":["../../../src/save/source/SourceTransformer.ts"],"names":[],"mappings":"AAeA,OAAO,EAAE,QAAQ,EAAE,MAAM,0BAA0B,CAAC;AACpD,OAAO,EAMH,qBAAqB,EAKrB,mBAAmB,EAKtB,MAAM,sBAAsB,CAAC;AAC9B,OAAO,EAAE,KAAK,EAAE,MAAM,uBAAuB,CAAC;AAC9C,OAAO,EAAE,QAAQ,EAAiB,MAAM,2BAA2B,CAAC;AACpE,OAAO,EAAE,SAAS,EAAE,MAAM,4BAA4B,CAAC;AACvD,OAAO,EAAE,cAAc,EAAE,eAAe,EAAE,MAAM,+BAA+B,CAAC;AAChF,OAAO,EAAE,aAAa,EAAE,MAAM,cAAc,CAAC;AAI7C,OAAO,EAGH,SAAS,EAQT,IAAI,EAKP,MAAM,sBAAsB,CAAC;AAE9B,OAAO,EAAE,KAAK,EAAE,MAAM,uBAAuB,CAAC;AAC9C,OAAO,EAAE,WAAW,EAAmE,MAAM,qBAAqB,CAAC;AACnH,OAAO,EAAE,OAAO,EAAE,MAAM,0BAA0B,CAAC;AASnD,OAAO,EAAE,YAAY,EAAE,MAAM,+BAA+B,CAAC;AAU7D,MAAM,WAAW,kBAAkB;IAC/B,UAAU,IAAI,OAAO,CAAC;IAEtB,wBAAwB,IAAI,YAAY,GAAG,SAAS,CAAC;IAErD,SAAS,CAAC,SAAS,EAAE,eAAe,GAAG,SAAS,GAAG,IAAI,CAAC;IAExD,QAAQ,CAAC,SAAS,EAAE,cAAc,GAAG,QAAQ,GAAG,IAAI,CAAC;IAErD,UAAU,IAAI,aAAa,CAAC;IAE5B,cAAc,CAAC,IAAI,EAAE,KAAK,GAAG,MAAM,CAAC;IAEpC,iBAAiB,IAAI,OAAO,CAAC;CAChC;AAED,qBAAa,iBAAiB;IAC1B,SAAS,CAAC,OAAO,EAAE,kBAAkB,CAAC;gBAE1B,OAAO,EAAE,kBAAkB;IAIvC,OAAO,CAAC,uBAAuB;IAM/B,OAAO,CAAC,sBAAsB;IAKvB,0BAA0B,CAAC,UAAU,EAAE,qBAAqB,GAAG,MAAM;IAkBrE,wBAAwB,CAAC,UAAU,EAAE,mBAAmB,GAAG,MAAM;IA4DxE,OAAO,CAAC,oBAAoB;IAYrB,iBAAiB,CAAC,KAAK,EAAE,IAAI,EAAE,EAAE,KAAK,GAAE,MAAa,GAAG,MAAM;WASvD,aAAa,CAAC,KAAK,EAAE,QAAQ,GAAG,MAAM;IAUpD,OAAO,CAAC,YAAY;IA2Db,WAAW,CAAC,KAAK,EAAE,WAAW,GAAG,MAAM;IA8BvC,aAAa,CAAC,KAAK,EAAE,KAAK,EAAE,QAAQ,CAAC,EAAE,MAAM,GAAG,MAAM;IAiDtD,qBAAqB,CAAC,IAAI,EAAE,SAAS,GAAG,MAAM;IAW9C,YAAY,CAAC,IAAI,EAAE,IAAI,GAAG,MAAM;IA+DvC,OAAO,CAAC,kBAAkB;IAQ1B,OAAO,CAAC,mBAAmB;IAgB3B,OAAO,CAAC,gBAAgB;IAcxB,OAAO,CAAC,gBAAgB;IASxB,OAAO,CAAC,gBAAgB;IAcxB,OAAO,CAAC,oBAAoB;IAO5B,OAAO,CAAC,oBAAoB;IAmB5B,OAAO,CAAC,2BAA2B;IAQnC,OAAO,CAAC,gBAAgB;CAkB3B"}
1
+ {"version":3,"file":"SourceTransformer.d.ts","sourceRoot":"","sources":["../../../src/save/source/SourceTransformer.ts"],"names":[],"mappings":"AAeA,OAAO,EAAE,QAAQ,EAAE,MAAM,0BAA0B,CAAC;AACpD,OAAO,EAMH,qBAAqB,EAKrB,mBAAmB,EAKtB,MAAM,sBAAsB,CAAC;AAC9B,OAAO,EAAE,KAAK,EAAE,MAAM,uBAAuB,CAAC;AAC9C,OAAO,EAAE,QAAQ,EAAiB,MAAM,2BAA2B,CAAC;AACpE,OAAO,EAAE,SAAS,EAAE,MAAM,4BAA4B,CAAC;AACvD,OAAO,EAAE,cAAc,EAAE,eAAe,EAAE,MAAM,+BAA+B,CAAC;AAChF,OAAO,EAAE,aAAa,EAAE,MAAM,cAAc,CAAC;AAI7C,OAAO,EAGH,SAAS,EAQT,IAAI,EAKP,MAAM,sBAAsB,CAAC;AAE9B,OAAO,EAAE,KAAK,EAAE,MAAM,uBAAuB,CAAC;AAC9C,OAAO,EAAE,WAAW,EAAmE,MAAM,qBAAqB,CAAC;AACnH,OAAO,EAAE,OAAO,EAAE,MAAM,0BAA0B,CAAC;AASnD,OAAO,EAAE,YAAY,EAAE,MAAM,+BAA+B,CAAC;AAU7D,MAAM,WAAW,kBAAkB;IAC/B,UAAU,IAAI,OAAO,CAAC;IAEtB,wBAAwB,IAAI,YAAY,GAAG,SAAS,CAAC;IAErD,SAAS,CAAC,SAAS,EAAE,eAAe,GAAG,SAAS,GAAG,IAAI,CAAC;IAExD,QAAQ,CAAC,SAAS,EAAE,cAAc,GAAG,QAAQ,GAAG,IAAI,CAAC;IAErD,UAAU,IAAI,aAAa,CAAC;IAE5B,cAAc,CAAC,IAAI,EAAE,KAAK,GAAG,MAAM,CAAC;IAEpC,iBAAiB,IAAI,OAAO,CAAC;CAChC;AAED,qBAAa,iBAAiB;IAC1B,SAAS,CAAC,OAAO,EAAE,kBAAkB,CAAC;gBAE1B,OAAO,EAAE,kBAAkB;IAIvC,OAAO,CAAC,uBAAuB;IAM/B,OAAO,CAAC,sBAAsB;IAKvB,0BAA0B,CAAC,UAAU,EAAE,qBAAqB,GAAG,MAAM;IAkB5E,OAAO,CAAC,kBAAkB;IAwCnB,wBAAwB,CAAC,UAAU,EAAE,mBAAmB,GAAG,MAAM;IA8BxE,OAAO,CAAC,oBAAoB;IAYrB,iBAAiB,CAAC,KAAK,EAAE,IAAI,EAAE,EAAE,KAAK,GAAE,MAAa,GAAG,MAAM;WASvD,aAAa,CAAC,KAAK,EAAE,QAAQ,GAAG,MAAM;IAUpD,OAAO,CAAC,YAAY;IA2Db,WAAW,CAAC,KAAK,EAAE,WAAW,GAAG,MAAM;IA8BvC,aAAa,CAAC,KAAK,EAAE,KAAK,EAAE,QAAQ,CAAC,EAAE,MAAM,GAAG,MAAM;IAqB7D,OAAO,CAAC,aAAa;IAgCd,qBAAqB,CAAC,IAAI,EAAE,SAAS,GAAG,MAAM;IAW9C,YAAY,CAAC,IAAI,EAAE,IAAI,GAAG,MAAM;IA+DvC,OAAO,CAAC,kBAAkB;IAQ1B,OAAO,CAAC,mBAAmB;IAgB3B,OAAO,CAAC,gBAAgB;IAcxB,OAAO,CAAC,gBAAgB;IASxB,OAAO,CAAC,gBAAgB;IAcxB,OAAO,CAAC,oBAAoB;IAO5B,OAAO,CAAC,oBAAoB;IAmB5B,OAAO,CAAC,2BAA2B;IAQnC,OAAO,CAAC,gBAAgB;CAkB3B"}
@@ -88,6 +88,41 @@ class SourceTransformer {
88
88
  }
89
89
  return `${this.valueToString(invokeExpr.getBase())}.${methodName}${genericCode}(${args.join(', ')})`;
90
90
  }
91
+ transBuilderMethod(className, methodName, args, invokeExpr, genericCode) {
92
+ if (className === EtsConst_1.COMPONENT_CUSTOMVIEW) {
93
+ if (methodName === EtsConst_1.COMPONENT_CREATE_FUNCTION) {
94
+ // Anonymous @Builder method
95
+ if (args.length > 1) {
96
+ // remove the substring '() =>' or '(x, y): type =>' at the beginning of args[1]
97
+ const pattern = /^\([^)]*\)\s*:\s*\w*\s*=>\s*/;
98
+ args[1] = args[1].replace(pattern, '');
99
+ }
100
+ return `${args.join(' ')}`;
101
+ }
102
+ if (methodName === EtsConst_1.COMPONENT_POP_FUNCTION) {
103
+ return '';
104
+ }
105
+ }
106
+ if (PrinterUtils_1.PrinterUtils.isComponentCreate(invokeExpr)) {
107
+ if (className === EtsConst_1.COMPONENT_IF) {
108
+ return `if (${args.join(', ')})`;
109
+ }
110
+ return `${className}${genericCode}(${args.join(', ')})`;
111
+ }
112
+ if (PrinterUtils_1.PrinterUtils.isComponentIfBranchInvoke(invokeExpr)) {
113
+ let arg0 = invokeExpr.getArg(0);
114
+ if (arg0.getValue() === '0') {
115
+ return ``;
116
+ }
117
+ else {
118
+ return '} else {';
119
+ }
120
+ }
121
+ if (PrinterUtils_1.PrinterUtils.isComponentPop(invokeExpr)) {
122
+ return '}';
123
+ }
124
+ return null;
125
+ }
91
126
  staticInvokeExprToString(invokeExpr) {
92
127
  let methodSignature = invokeExpr.getMethodSignature();
93
128
  let method = this.context.getMethod(methodSignature);
@@ -103,37 +138,9 @@ class SourceTransformer {
103
138
  });
104
139
  let genericCode = this.genericTypesToString(invokeExpr.getRealGenericTypes());
105
140
  if (this.context.isInBuilderMethod()) {
106
- if (className === EtsConst_1.COMPONENT_CUSTOMVIEW) {
107
- if (methodName === EtsConst_1.COMPONENT_CREATE_FUNCTION) {
108
- // Anonymous @Builder method
109
- if (args.length > 1) {
110
- // remove the substring '() =>' or '(x, y): type =>' at the beginning of args[1]
111
- const pattern = /^\([^)]*\)\s*:\s*\w*\s*=>\s*/;
112
- args[1] = args[1].replace(pattern, '');
113
- }
114
- return `${args.join(' ')}`;
115
- }
116
- if (methodName === EtsConst_1.COMPONENT_POP_FUNCTION) {
117
- return '';
118
- }
119
- }
120
- if (PrinterUtils_1.PrinterUtils.isComponentCreate(invokeExpr)) {
121
- if (className === EtsConst_1.COMPONENT_IF) {
122
- return `if (${args.join(', ')})`;
123
- }
124
- return `${className}${genericCode}(${args.join(', ')})`;
125
- }
126
- if (PrinterUtils_1.PrinterUtils.isComponentIfBranchInvoke(invokeExpr)) {
127
- let arg0 = invokeExpr.getArg(0);
128
- if (arg0.getValue() === '0') {
129
- return ``;
130
- }
131
- else {
132
- return '} else {';
133
- }
134
- }
135
- if (PrinterUtils_1.PrinterUtils.isComponentPop(invokeExpr)) {
136
- return '}';
141
+ const res = this.transBuilderMethod(className, methodName, args, invokeExpr, genericCode);
142
+ if (res !== null) {
143
+ return res;
137
144
  }
138
145
  }
139
146
  if (className && className.length > 0 && methodName !== TSConst_1.SUPER_NAME) {
@@ -248,34 +255,37 @@ class SourceTransformer {
248
255
  return SourceTransformer.constToString(value);
249
256
  }
250
257
  if (value instanceof Local_1.Local) {
251
- if (PrinterUtils_1.PrinterUtils.isAnonymousMethod(value.getName())) {
252
- let methodSignature = value.getType().getMethodSignature();
253
- let anonymousMethod = this.context.getMethod(methodSignature);
254
- if (anonymousMethod) {
255
- return this.anonymousMethodToString(anonymousMethod, this.context.getPrinter().getIndent());
256
- }
258
+ return this.localToString(value, operator);
259
+ }
260
+ logger.info(`valueToString ${value.constructor} not support.`);
261
+ return `${value}`;
262
+ }
263
+ localToString(value, operator) {
264
+ if (PrinterUtils_1.PrinterUtils.isAnonymousMethod(value.getName())) {
265
+ let methodSignature = value.getType().getMethodSignature();
266
+ let anonymousMethod = this.context.getMethod(methodSignature);
267
+ if (anonymousMethod) {
268
+ return this.anonymousMethodToString(anonymousMethod, this.context.getPrinter().getIndent());
257
269
  }
258
- if (PrinterUtils_1.PrinterUtils.isAnonymousClass(value.getName())) {
259
- let clsSignature = value.getType().getClassSignature();
260
- let cls = this.context.getClass(clsSignature);
261
- if (cls) {
262
- return this.anonymousClassToString(cls, this.context.getPrinter().getIndent());
263
- }
270
+ }
271
+ if (PrinterUtils_1.PrinterUtils.isAnonymousClass(value.getName())) {
272
+ let clsSignature = value.getType().getClassSignature();
273
+ let cls = this.context.getClass(clsSignature);
274
+ if (cls) {
275
+ return this.anonymousClassToString(cls, this.context.getPrinter().getIndent());
264
276
  }
265
- if (operator === Expr_1.NormalBinaryOperator.Division ||
266
- operator === Expr_1.NormalBinaryOperator.Multiplication ||
267
- operator === Expr_1.NormalBinaryOperator.Remainder) {
268
- if (PrinterUtils_1.PrinterUtils.isTemp(value.getName())) {
269
- let stmt = value.getDeclaringStmt();
270
- if (stmt instanceof Stmt_1.ArkAssignStmt && stmt.getRightOp() instanceof Expr_1.ArkNormalBinopExpr) {
271
- return `(${this.context.transTemp2Code(value)})`;
272
- }
277
+ }
278
+ if (operator === Expr_1.NormalBinaryOperator.Division ||
279
+ operator === Expr_1.NormalBinaryOperator.Multiplication ||
280
+ operator === Expr_1.NormalBinaryOperator.Remainder) {
281
+ if (PrinterUtils_1.PrinterUtils.isTemp(value.getName())) {
282
+ let stmt = value.getDeclaringStmt();
283
+ if (stmt instanceof Stmt_1.ArkAssignStmt && stmt.getRightOp() instanceof Expr_1.ArkNormalBinopExpr) {
284
+ return `(${this.context.transTemp2Code(value)})`;
273
285
  }
274
286
  }
275
- return this.context.transTemp2Code(value);
276
287
  }
277
- logger.info(`valueToString ${value.constructor} not support.`);
278
- return `${value}`;
288
+ return this.context.transTemp2Code(value);
279
289
  }
280
290
  literalObjectToString(type) {
281
291
  let name = type.getClassSignature().getClassName();
@@ -1,9 +1,14 @@
1
1
  import { ArkBody } from '../core/model/ArkBody';
2
2
  export declare class StaticSingleAssignmentFormer {
3
3
  transformBody(body: ArkBody): void;
4
+ private transformStmt;
4
5
  private decideBlockToPhiStmts;
6
+ private handleDf;
7
+ private handleBlockWithSucc;
5
8
  private addPhiStmts;
9
+ private renameUseAndDef;
6
10
  private renameLocals;
11
+ private removeVisitedTree;
7
12
  private constainsPhiExpr;
8
13
  private getOriginalLocal;
9
14
  private addNewArgToPhi;
@@ -1 +1 @@
1
- {"version":3,"file":"StaticSingleAssignmentFormer.d.ts","sourceRoot":"","sources":["../../src/transformer/StaticSingleAssignmentFormer.ts"],"names":[],"mappings":"AAsBA,OAAO,EAAE,OAAO,EAAE,MAAM,uBAAuB,CAAC;AAEhD,qBAAa,4BAA4B;IAC9B,aAAa,CAAC,IAAI,EAAE,OAAO;IAgClC,OAAO,CAAC,qBAAqB;IA2C7B,OAAO,CAAC,WAAW;IAsCnB,OAAO,CAAC,YAAY;IAwFpB,OAAO,CAAC,gBAAgB;IAWxB,OAAO,CAAC,gBAAgB;IAcxB,OAAO,CAAC,cAAc;IAetB,OAAO,CAAC,mBAAmB;IAS3B,OAAO,CAAC,kBAAkB;CAI7B"}
1
+ {"version":3,"file":"StaticSingleAssignmentFormer.d.ts","sourceRoot":"","sources":["../../src/transformer/StaticSingleAssignmentFormer.ts"],"names":[],"mappings":"AAsBA,OAAO,EAAE,OAAO,EAAE,MAAM,uBAAuB,CAAC;AAEhD,qBAAa,4BAA4B;IAC9B,aAAa,CAAC,IAAI,EAAE,OAAO,GAAG,IAAI;IAqBzC,OAAO,CAAC,aAAa;IAcrB,OAAO,CAAC,qBAAqB;IAuB7B,OAAO,CAAC,QAAQ;IA4BhB,OAAO,CAAC,mBAAmB;IAkB3B,OAAO,CAAC,WAAW;IA4BnB,OAAO,CAAC,eAAe;IA8BvB,OAAO,CAAC,YAAY;IA8CpB,OAAO,CAAC,iBAAiB;IAwBzB,OAAO,CAAC,gBAAgB;IAWxB,OAAO,CAAC,gBAAgB;IAcxB,OAAO,CAAC,cAAc;IAetB,OAAO,CAAC,mBAAmB;IAS3B,OAAO,CAAC,kBAAkB;CAI7B"}