arkanalyzer 1.0.29 → 1.0.30

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 (80) 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/Pag.d.ts.map +1 -1
  18. package/lib/callgraph/pointerAnalysis/Pag.js +26 -26
  19. package/lib/callgraph/pointerAnalysis/PagBuilder.d.ts +3 -0
  20. package/lib/callgraph/pointerAnalysis/PagBuilder.d.ts.map +1 -1
  21. package/lib/callgraph/pointerAnalysis/PagBuilder.js +112 -92
  22. package/lib/callgraph/pointerAnalysis/PointerAnalysis.d.ts.map +1 -1
  23. package/lib/callgraph/pointerAnalysis/PointerAnalysis.js +15 -14
  24. package/lib/core/base/Type.d.ts +10 -1
  25. package/lib/core/base/Type.d.ts.map +1 -1
  26. package/lib/core/base/Type.js +18 -1
  27. package/lib/core/common/ArkValueTransformer.d.ts.map +1 -1
  28. package/lib/core/common/ArkValueTransformer.js +3 -1
  29. package/lib/core/common/DummyMainCreater.d.ts.map +1 -1
  30. package/lib/core/common/DummyMainCreater.js +17 -20
  31. package/lib/core/common/IRInference.d.ts.map +1 -1
  32. package/lib/core/common/IRInference.js +18 -10
  33. package/lib/core/common/TypeInference.d.ts.map +1 -1
  34. package/lib/core/common/TypeInference.js +12 -1
  35. package/lib/core/dataflow/DataflowSolver.d.ts +1 -0
  36. package/lib/core/dataflow/DataflowSolver.d.ts.map +1 -1
  37. package/lib/core/dataflow/DataflowSolver.js +21 -17
  38. package/lib/core/dataflow/ReachingDef.d.ts.map +1 -1
  39. package/lib/core/dataflow/ReachingDef.js +6 -0
  40. package/lib/core/dataflow/UndefinedVariable.d.ts.map +1 -1
  41. package/lib/core/dataflow/UndefinedVariable.js +0 -25
  42. package/lib/core/graph/Cfg.d.ts +1 -0
  43. package/lib/core/graph/Cfg.d.ts.map +1 -1
  44. package/lib/core/graph/Cfg.js +49 -45
  45. package/lib/core/graph/DominanceFinder.js +19 -19
  46. package/lib/core/graph/builder/ViewTreeBuilder.d.ts +1 -0
  47. package/lib/core/graph/builder/ViewTreeBuilder.d.ts.map +1 -1
  48. package/lib/core/graph/builder/ViewTreeBuilder.js +34 -31
  49. package/lib/core/model/ArkMethod.d.ts.map +1 -1
  50. package/lib/core/model/ArkMethod.js +13 -6
  51. package/lib/core/model/builder/builderUtils.d.ts.map +1 -1
  52. package/lib/core/model/builder/builderUtils.js +72 -63
  53. package/lib/save/serializeArkIR.d.ts.map +1 -1
  54. package/lib/save/serializeArkIR.js +11 -24
  55. package/lib/save/source/SourceBody.js +10 -10
  56. package/lib/save/source/SourceFilePrinter.d.ts +1 -0
  57. package/lib/save/source/SourceFilePrinter.d.ts.map +1 -1
  58. package/lib/save/source/SourceFilePrinter.js +11 -8
  59. package/lib/save/source/SourceNamespace.d.ts +1 -0
  60. package/lib/save/source/SourceNamespace.d.ts.map +1 -1
  61. package/lib/save/source/SourceNamespace.js +11 -8
  62. package/lib/save/source/SourceStmt.d.ts +1 -0
  63. package/lib/save/source/SourceStmt.d.ts.map +1 -1
  64. package/lib/save/source/SourceStmt.js +37 -35
  65. package/lib/save/source/SourceTransformer.d.ts +2 -0
  66. package/lib/save/source/SourceTransformer.d.ts.map +1 -1
  67. package/lib/save/source/SourceTransformer.js +64 -54
  68. package/lib/transformer/StaticSingleAssignmentFormer.d.ts +5 -0
  69. package/lib/transformer/StaticSingleAssignmentFormer.d.ts.map +1 -1
  70. package/lib/transformer/StaticSingleAssignmentFormer.js +119 -101
  71. package/lib/utils/CfgStructualAnalysis.d.ts +1 -0
  72. package/lib/utils/CfgStructualAnalysis.d.ts.map +1 -1
  73. package/lib/utils/CfgStructualAnalysis.js +28 -24
  74. package/lib/utils/FileUtils.d.ts.map +1 -1
  75. package/lib/utils/FileUtils.js +14 -12
  76. package/lib/utils/callGraphUtils.d.ts.map +1 -1
  77. package/lib/utils/callGraphUtils.js +26 -23
  78. package/lib/utils/entryMethodUtils.d.ts.map +1 -1
  79. package/lib/utils/entryMethodUtils.js +11 -8
  80. package/package.json +2 -2
@@ -43,17 +43,16 @@ class DominanceFinder {
43
43
  let blockIdx = this.blockToIdx.get(block);
44
44
  let preds = Array.from(block.getPredecessors());
45
45
  let newIdom = this.getFirstDefinedBlockPredIdx(preds);
46
- if (preds.length > 0 && newIdom !== -1) {
47
- for (const pred of preds) {
48
- let predIdx = this.blockToIdx.get(pred);
49
- if (this.idoms[predIdx] !== -1) {
50
- newIdom = this.intersect(newIdom, predIdx);
51
- }
52
- }
53
- if (this.idoms[blockIdx] !== newIdom) {
54
- this.idoms[blockIdx] = newIdom;
55
- isChanged = true;
56
- }
46
+ if (preds.length <= 0 || newIdom === -1) {
47
+ continue;
48
+ }
49
+ for (const pred of preds) {
50
+ let predIdx = this.blockToIdx.get(pred);
51
+ this.idoms[predIdx] !== -1 ? newIdom = this.intersect(newIdom, predIdx) : null;
52
+ }
53
+ if (this.idoms[blockIdx] !== newIdom) {
54
+ this.idoms[blockIdx] = newIdom;
55
+ isChanged = true;
57
56
  }
58
57
  }
59
58
  }
@@ -64,14 +63,15 @@ class DominanceFinder {
64
63
  }
65
64
  for (const block of this.blocks) {
66
65
  let preds = Array.from(block.getPredecessors());
67
- if (preds.length > 1) {
68
- let blockIdx = this.blockToIdx.get(block);
69
- for (const pred of preds) {
70
- let predIdx = this.blockToIdx.get(pred);
71
- while (predIdx !== this.idoms[blockIdx]) {
72
- this.domFrontiers[predIdx].push(blockIdx);
73
- predIdx = this.idoms[predIdx];
74
- }
66
+ if (preds.length <= 1) {
67
+ continue;
68
+ }
69
+ let blockIdx = this.blockToIdx.get(block);
70
+ for (const pred of preds) {
71
+ let predIdx = this.blockToIdx.get(pred);
72
+ while (predIdx !== this.idoms[blockIdx]) {
73
+ this.domFrontiers[predIdx].push(blockIdx);
74
+ predIdx = this.idoms[predIdx];
75
75
  }
76
76
  }
77
77
  }
@@ -165,6 +165,7 @@ export declare class ViewTreeImpl extends TreeNodeStack implements ViewTree {
165
165
  */
166
166
  private addSystemComponentNode;
167
167
  private findMethodInvokeBuilderMethod;
168
+ private parseFieldInObjectLiteral;
168
169
  private parseObjectLiteralExpr;
169
170
  private viewComponentCreationParser;
170
171
  private waterFlowCreationParser;
@@ -1 +1 @@
1
- {"version":3,"file":"ViewTreeBuilder.d.ts","sourceRoot":"","sources":["../../../../src/core/graph/builder/ViewTreeBuilder.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"ViewTreeBuilder.d.ts","sourceRoot":"","sources":["../../../../src/core/graph/builder/ViewTreeBuilder.ts"],"names":[],"mappings":"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"}
@@ -757,43 +757,46 @@ class ViewTreeImpl extends TreeNodeStack {
757
757
  }
758
758
  }
759
759
  }
760
+ parseFieldInObjectLiteral(field, cls, transferMap) {
761
+ let dstField = cls.getFieldWithName(field.getName());
762
+ if ((dstField === null || dstField === void 0 ? void 0 : dstField.getStateDecorators().length) === 0 && !(dstField === null || dstField === void 0 ? void 0 : dstField.hasBuilderParamDecorator())) {
763
+ return;
764
+ }
765
+ let stmts = field.getInitializer();
766
+ if (stmts.length === 0) {
767
+ return;
768
+ }
769
+ let assignStmt = stmts[stmts.length - 1];
770
+ if (!(assignStmt instanceof Stmt_1.ArkAssignStmt)) {
771
+ return;
772
+ }
773
+ let value = assignStmt.getRightOp();
774
+ if (value instanceof Local_1.Local) {
775
+ value = backtraceLocalInitValue(value);
776
+ }
777
+ if (dstField === null || dstField === void 0 ? void 0 : dstField.hasBuilderParamDecorator()) {
778
+ let method = this.findBuilderMethod(value);
779
+ if (method) {
780
+ transferMap.set(dstField, method);
781
+ }
782
+ }
783
+ else {
784
+ let srcField;
785
+ if (value instanceof Ref_1.ArkInstanceFieldRef) {
786
+ srcField = this.getDeclaringArkClass().getFieldWithName(value.getFieldName());
787
+ }
788
+ if (srcField && dstField) {
789
+ transferMap.set(dstField, srcField);
790
+ }
791
+ }
792
+ }
760
793
  parseObjectLiteralExpr(cls, object, builder) {
761
794
  let transferMap = new Map();
762
795
  if (object instanceof Local_1.Local && object.getType() instanceof Type_1.ClassType) {
763
796
  let anonymousSig = object.getType().getClassSignature();
764
797
  let anonymous = this.findClass(anonymousSig);
765
798
  anonymous === null || anonymous === void 0 ? void 0 : anonymous.getFields().forEach((field) => {
766
- let dstField = cls.getFieldWithName(field.getName());
767
- if ((dstField === null || dstField === void 0 ? void 0 : dstField.getStateDecorators().length) === 0 && !(dstField === null || dstField === void 0 ? void 0 : dstField.hasBuilderParamDecorator())) {
768
- return;
769
- }
770
- let stmts = field.getInitializer();
771
- if (stmts.length === 0) {
772
- return;
773
- }
774
- let assignStmt = stmts[stmts.length - 1];
775
- if (!(assignStmt instanceof Stmt_1.ArkAssignStmt)) {
776
- return;
777
- }
778
- let value = assignStmt.getRightOp();
779
- if (value instanceof Local_1.Local) {
780
- value = backtraceLocalInitValue(value);
781
- }
782
- if (dstField === null || dstField === void 0 ? void 0 : dstField.hasBuilderParamDecorator()) {
783
- let method = this.findBuilderMethod(value);
784
- if (method) {
785
- transferMap.set(dstField, method);
786
- }
787
- }
788
- else {
789
- let srcField;
790
- if (value instanceof Ref_1.ArkInstanceFieldRef) {
791
- srcField = this.getDeclaringArkClass().getFieldWithName(value.getFieldName());
792
- }
793
- if (srcField && dstField) {
794
- transferMap.set(dstField, srcField);
795
- }
796
- }
799
+ this.parseFieldInObjectLiteral(field, cls, transferMap);
797
800
  });
798
801
  }
799
802
  // If the builder exists, there will be a unique BuilderParam
@@ -1 +1 @@
1
- {"version":3,"file":"ArkMethod.d.ts","sourceRoot":"","sources":["../../../src/core/model/ArkMethod.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"ArkMethod.d.ts","sourceRoot":"","sources":["../../../src/core/model/ArkMethod.ts"],"names":[],"mappings":"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"}
@@ -550,7 +550,7 @@ class ArkMethod extends ArkBaseModel_1.ArkBaseModel {
550
550
  })) !== null && _b !== void 0 ? _b : signatures === null || signatures === void 0 ? void 0 : signatures[0]) !== null && _c !== void 0 ? _c : this.getSignature();
551
551
  }
552
552
  matchParam(paramType, arg, scene) {
553
- var _a;
553
+ var _a, _b;
554
554
  const argType = arg.getType();
555
555
  if (arg instanceof Local_1.Local) {
556
556
  const stmt = arg.getDeclaringStmt();
@@ -571,17 +571,24 @@ class ArkMethod extends ArkBaseModel_1.ArkBaseModel {
571
571
  else if (argType instanceof Type_1.FunctionType && paramType instanceof Type_1.FunctionType) {
572
572
  return argType.getMethodSignature().getParamLength() === paramType.getMethodSignature().getParamLength();
573
573
  }
574
- else if (argType instanceof Type_1.FunctionType && paramType instanceof Type_1.ClassType &&
574
+ else if (paramType instanceof Type_1.ClassType &&
575
575
  paramType.getClassSignature().getClassName().includes(EtsConst_1.CALL_BACK)) {
576
- return true;
576
+ return argType instanceof Type_1.FunctionType;
577
577
  }
578
578
  else if (paramType instanceof Type_1.LiteralType && arg instanceof Constant_1.Constant) {
579
579
  return arg.getValue().replace(/[\"|\']/g, '') === paramType.getLiteralName()
580
580
  .toString().replace(/[\"|\']/g, '');
581
581
  }
582
- else if (paramType instanceof Type_1.NumberType && argType instanceof Type_1.ClassType && ArkClass_1.ClassCategory.ENUM ===
583
- ((_a = scene.getClass(argType.getClassSignature())) === null || _a === void 0 ? void 0 : _a.getCategory())) {
584
- return true;
582
+ else if (paramType instanceof Type_1.ClassType && argType instanceof Type_1.EnumValueType) {
583
+ return paramType.getClassSignature() === argType.getFieldSignature().getDeclaringSignature();
584
+ }
585
+ else if (paramType instanceof Type_1.EnumValueType) {
586
+ if (argType instanceof Type_1.EnumValueType) {
587
+ return paramType.getFieldSignature() === argType.getFieldSignature();
588
+ }
589
+ else if (argType.constructor === ((_a = paramType.getConstant()) === null || _a === void 0 ? void 0 : _a.getType().constructor) && arg instanceof Constant_1.Constant) {
590
+ return ((_b = paramType.getConstant()) === null || _b === void 0 ? void 0 : _b.getValue()) === arg.getValue();
591
+ }
585
592
  }
586
593
  return argType.constructor === paramType.constructor;
587
594
  }
@@ -1 +1 @@
1
- {"version":3,"file":"builderUtils.d.ts","sourceRoot":"","sources":["../../../../src/core/model/builder/builderUtils.ts"],"names":[],"mappings":"AAeA,OAAO,EAAE,EAAE,EAAE,cAAc,EAAE,oBAAoB,EAAE,QAAQ,EAAE,wBAAwB,EAAE,MAAM,iBAAiB,CAAC;AAC/G,OAAO,EACH,SAAS,EAIT,WAAW,EAGX,IAAI,EAIP,MAAM,iBAAiB,CAAC;AAEzB,OAAO,EAAE,QAAQ,EAAE,MAAM,aAAa,CAAC;AAEvC,OAAO,EAAE,QAAQ,EAAE,MAAM,aAAa,CAAC;AACvC,OAAO,EAAE,SAAS,EAAE,MAAM,cAAc,CAAC;AACzC,OAAO,EAAE,SAAS,EAAE,MAAM,sBAAsB,CAAC;AACjD,OAAO,EAGH,eAAe,EAElB,MAAM,oBAAoB,CAAC;AAuB5B,wBAAgB,mBAAmB,CAAC,IAAI,EAAE,EAAE,CAAC,aAAa,GAAG,MAAM,CAUlE;AAED,wBAAgB,8BAA8B,CAAC,IAAI,EAAE,EAAE,CAAC,wBAAwB,GAAG,MAAM,CAYxF;AAED,wBAAgB,eAAe,CAAC,IAAI,EAAE,EAAE,CAAC,IAAI,EAAE,UAAU,EAAE,EAAE,CAAC,UAAU,GAAG,GAAG,CAAC,SAAS,CAAC,CAUxF;AA2BD,wBAAgB,cAAc,CAAC,IAAI,EAAE,EAAE,CAAC,IAAI,GAAG,MAAM,CAUpD;AAED,wBAAgB,oBAAoB,CAAC,eAAe,CAAC,EAAE,EAAE,CAAC,SAAS,CAAC,cAAc,CAAC,GAAG,GAAG,CAAC,MAAM,EAAE,MAAM,CAAC,CAkBxG;AAED,wBAAgB,mBAAmB,CAAC,cAAc,EAAE,EAAE,CAAC,SAAS,CAAC,wBAAwB,CAAC,EACtD,UAAU,EAAE,EAAE,CAAC,UAAU,EAAE,WAAW,EAAE,SAAS,GAAG,QAAQ,GAAG,WAAW,EAAE,CAyB/G;AAED,wBAAgB,eAAe,CAAC,MAAM,EAAE,EAAE,CAAC,SAAS,CAAC,oBAAoB,CAAC,EAAE,WAAW,EAAE,SAAS,GAAG,QAAQ,EAAE,UAAU,EAAE,EAAE,CAAC,UAAU,qBA4GvI;AAED,wBAAgB,gBAAgB,CAAC,IAAI,EAAE,IAAI,EAAE,WAAW,EAAE,SAAS,GAAG,QAAQ,GAAG,SAAS,GAAG,IAAI,CAmDhG;AAED,wBAAgB,eAAe,CAAC,IAAI,EAAE,QAAQ,EAAE,UAAU,EAAE,EAAE,CAAC,UAAU,EAAE,MAAM,EAAE,SAAS,QAM3F;AAED,wBAAgB,WAAW,CAAC,QAAQ,EAAE,EAAE,CAAC,QAAQ,GAAG,EAAE,CAAC,wBAAwB,EAAE,UAAU,EAAE,EAAE,CAAC,UAAU,EAC9E,WAAW,EAAE,SAAS,GAAG,QAAQ,GAAG,QAAQ,GAAG,IAAI,CA8F9E;AAED,wBAAgB,mBAAmB,CAAC,MAAM,EAAE,MAAM,QAiDjD"}
1
+ {"version":3,"file":"builderUtils.d.ts","sourceRoot":"","sources":["../../../../src/core/model/builder/builderUtils.ts"],"names":[],"mappings":"AAeA,OAAO,EAAE,EAAE,EAAE,cAAc,EAAE,oBAAoB,EAAE,QAAQ,EAAE,wBAAwB,EAAE,MAAM,iBAAiB,CAAC;AAC/G,OAAO,EACH,SAAS,EAIT,WAAW,EAGX,IAAI,EAIP,MAAM,iBAAiB,CAAC;AAEzB,OAAO,EAAE,QAAQ,EAAE,MAAM,aAAa,CAAC;AAEvC,OAAO,EAAE,QAAQ,EAAE,MAAM,aAAa,CAAC;AACvC,OAAO,EAAE,SAAS,EAAE,MAAM,cAAc,CAAC;AACzC,OAAO,EAAE,SAAS,EAAE,MAAM,sBAAsB,CAAC;AACjD,OAAO,EAGH,eAAe,EAElB,MAAM,oBAAoB,CAAC;AAuB5B,wBAAgB,mBAAmB,CAAC,IAAI,EAAE,EAAE,CAAC,aAAa,GAAG,MAAM,CAUlE;AAED,wBAAgB,8BAA8B,CAAC,IAAI,EAAE,EAAE,CAAC,wBAAwB,GAAG,MAAM,CAYxF;AAED,wBAAgB,eAAe,CAAC,IAAI,EAAE,EAAE,CAAC,IAAI,EAAE,UAAU,EAAE,EAAE,CAAC,UAAU,GAAG,GAAG,CAAC,SAAS,CAAC,CAUxF;AA2BD,wBAAgB,cAAc,CAAC,IAAI,EAAE,EAAE,CAAC,IAAI,GAAG,MAAM,CAUpD;AAED,wBAAgB,oBAAoB,CAAC,eAAe,CAAC,EAAE,EAAE,CAAC,SAAS,CAAC,cAAc,CAAC,GAAG,GAAG,CAAC,MAAM,EAAE,MAAM,CAAC,CAkBxG;AAED,wBAAgB,mBAAmB,CAAC,cAAc,EAAE,EAAE,CAAC,SAAS,CAAC,wBAAwB,CAAC,EACtD,UAAU,EAAE,EAAE,CAAC,UAAU,EAAE,WAAW,EAAE,SAAS,GAAG,QAAQ,GAAG,WAAW,EAAE,CAyB/G;AA4ED,wBAAgB,eAAe,CAAC,MAAM,EAAE,EAAE,CAAC,SAAS,CAAC,oBAAoB,CAAC,EAAE,WAAW,EAAE,SAAS,GAAG,QAAQ,EAAE,UAAU,EAAE,EAAE,CAAC,UAAU,GAAG,eAAe,EAAE,CA8C3J;AAED,wBAAgB,gBAAgB,CAAC,IAAI,EAAE,IAAI,EAAE,WAAW,EAAE,SAAS,GAAG,QAAQ,GAAG,SAAS,GAAG,IAAI,CAmDhG;AAED,wBAAgB,eAAe,CAAC,IAAI,EAAE,QAAQ,EAAE,UAAU,EAAE,EAAE,CAAC,UAAU,EAAE,MAAM,EAAE,SAAS,QAM3F;AAED,wBAAgB,WAAW,CAAC,QAAQ,EAAE,EAAE,CAAC,QAAQ,GAAG,EAAE,CAAC,wBAAwB,EAAE,UAAU,EAAE,EAAE,CAAC,UAAU,EAC9E,WAAW,EAAE,SAAS,GAAG,QAAQ,GAAG,QAAQ,GAAG,IAAI,CA8F9E;AAED,wBAAgB,mBAAmB,CAAC,MAAM,EAAE,MAAM,QAiDjD"}
@@ -181,6 +181,76 @@ function buildTypeParameters(typeParameters, sourceFile, arkInstance) {
181
181
  return genericTypes;
182
182
  }
183
183
  exports.buildTypeParameters = buildTypeParameters;
184
+ function buildObjectBindingPatternParam(methodParameter, paramNameNode) {
185
+ methodParameter.setName('ObjectBindingPattern');
186
+ let elements = [];
187
+ paramNameNode.elements.forEach((element) => {
188
+ let paraElement = new ArkMethodBuilder_1.ObjectBindingPatternParameter();
189
+ if (element.propertyName) {
190
+ if (ohos_typescript_1.default.isIdentifier(element.propertyName)) {
191
+ paraElement.setPropertyName(element.propertyName.text);
192
+ }
193
+ else {
194
+ logger.warn('New propertyName of ObjectBindingPattern found, please contact developers to support this!');
195
+ }
196
+ }
197
+ if (element.name) {
198
+ if (ohos_typescript_1.default.isIdentifier(element.name)) {
199
+ paraElement.setName(element.name.text);
200
+ }
201
+ else {
202
+ logger.warn('New name of ObjectBindingPattern found, please contact developers to support this!');
203
+ }
204
+ }
205
+ if (element.initializer) {
206
+ logger.warn('TODO: support ObjectBindingPattern initializer.');
207
+ }
208
+ if (element.dotDotDotToken) {
209
+ paraElement.setOptional(true);
210
+ }
211
+ elements.push(paraElement);
212
+ });
213
+ methodParameter.setObjElements(elements);
214
+ }
215
+ function buildBindingElementOfBindingPatternParam(element, paraElement) {
216
+ if (element.propertyName) {
217
+ if (ohos_typescript_1.default.isIdentifier(element.propertyName)) {
218
+ paraElement.setPropertyName(element.propertyName.text);
219
+ }
220
+ else {
221
+ logger.warn('New propertyName of ArrayBindingPattern found, please contact developers to support this!');
222
+ }
223
+ }
224
+ if (element.name) {
225
+ if (ohos_typescript_1.default.isIdentifier(element.name)) {
226
+ paraElement.setName(element.name.text);
227
+ }
228
+ else {
229
+ logger.warn('New name of ArrayBindingPattern found, please contact developers to support this!');
230
+ }
231
+ }
232
+ if (element.initializer) {
233
+ logger.warn('TODO: support ArrayBindingPattern initializer.');
234
+ }
235
+ if (element.dotDotDotToken) {
236
+ paraElement.setOptional(true);
237
+ }
238
+ }
239
+ function buildArrayBindingPatternParam(methodParameter, paramNameNode) {
240
+ methodParameter.setName('ArrayBindingPattern');
241
+ let elements = [];
242
+ paramNameNode.elements.forEach((element) => {
243
+ let paraElement = new ArkMethodBuilder_1.ArrayBindingPatternParameter();
244
+ if (ohos_typescript_1.default.isBindingElement(element)) {
245
+ buildBindingElementOfBindingPatternParam(element, paraElement);
246
+ }
247
+ else if (ohos_typescript_1.default.isOmittedExpression(element)) {
248
+ logger.warn('TODO: support OmittedExpression for ArrayBindingPattern parameter name.');
249
+ }
250
+ elements.push(paraElement);
251
+ });
252
+ methodParameter.setArrayElements(elements);
253
+ }
184
254
  function buildParameters(params, arkInstance, sourceFile) {
185
255
  let parameters = [];
186
256
  params.forEach((parameter) => {
@@ -190,71 +260,10 @@ function buildParameters(params, arkInstance, sourceFile) {
190
260
  methodParameter.setName(parameter.name.text);
191
261
  }
192
262
  else if (ohos_typescript_1.default.isObjectBindingPattern(parameter.name)) {
193
- methodParameter.setName('ObjectBindingPattern');
194
- let elements = [];
195
- parameter.name.elements.forEach((element) => {
196
- let paraElement = new ArkMethodBuilder_1.ObjectBindingPatternParameter();
197
- if (element.propertyName) {
198
- if (ohos_typescript_1.default.isIdentifier(element.propertyName)) {
199
- paraElement.setPropertyName(element.propertyName.text);
200
- }
201
- else {
202
- logger.warn('New propertyName of ObjectBindingPattern found, please contact developers to support this!');
203
- }
204
- }
205
- if (element.name) {
206
- if (ohos_typescript_1.default.isIdentifier(element.name)) {
207
- paraElement.setName(element.name.text);
208
- }
209
- else {
210
- logger.warn('New name of ObjectBindingPattern found, please contact developers to support this!');
211
- }
212
- }
213
- if (element.initializer) {
214
- logger.warn('TODO: support ObjectBindingPattern initializer.');
215
- }
216
- if (element.dotDotDotToken) {
217
- paraElement.setOptional(true);
218
- }
219
- elements.push(paraElement);
220
- });
221
- methodParameter.setObjElements(elements);
263
+ buildObjectBindingPatternParam(methodParameter, parameter.name);
222
264
  }
223
265
  else if (ohos_typescript_1.default.isArrayBindingPattern(parameter.name)) {
224
- methodParameter.setName('ArrayBindingPattern');
225
- let elements = [];
226
- parameter.name.elements.forEach((element) => {
227
- let paraElement = new ArkMethodBuilder_1.ArrayBindingPatternParameter();
228
- if (ohos_typescript_1.default.isBindingElement(element)) {
229
- if (element.propertyName) {
230
- if (ohos_typescript_1.default.isIdentifier(element.propertyName)) {
231
- paraElement.setPropertyName(element.propertyName.text);
232
- }
233
- else {
234
- logger.warn('New propertyName of ArrayBindingPattern found, please contact developers to support this!');
235
- }
236
- }
237
- if (element.name) {
238
- if (ohos_typescript_1.default.isIdentifier(element.name)) {
239
- paraElement.setName(element.name.text);
240
- }
241
- else {
242
- logger.warn('New name of ArrayBindingPattern found, please contact developers to support this!');
243
- }
244
- }
245
- if (element.initializer) {
246
- logger.warn('TODO: support ArrayBindingPattern initializer.');
247
- }
248
- if (element.dotDotDotToken) {
249
- paraElement.setOptional(true);
250
- }
251
- }
252
- else if (ohos_typescript_1.default.isOmittedExpression(element)) {
253
- logger.warn('TODO: support OmittedExpression for ArrayBindingPattern parameter name.');
254
- }
255
- elements.push(paraElement);
256
- });
257
- methodParameter.setArrayElements(elements);
266
+ buildArrayBindingPatternParam(methodParameter, parameter.name);
258
267
  }
259
268
  else {
260
269
  logger.warn('Parameter name is not identifier, ObjectBindingPattern nor ArrayBindingPattern, please contact developers to support this!');
@@ -1 +1 @@
1
- {"version":3,"file":"serializeArkIR.d.ts","sourceRoot":"","sources":["../../src/save/serializeArkIR.ts"],"names":[],"mappings":"AAiBA,OAAO,EAAE,OAAO,EAAwB,MAAM,WAAW,CAAC;AAG1D,OAAO,EAAE,KAAK,EAAE,MAAM,UAAU,CAAC;AACjC,OAAO,EAAE,OAAO,EAAE,MAAM,uBAAuB,CAAC;AAKhD,wBAAgB,wBAAwB,CAAC,QAAQ,EAAE,MAAM,EAAE,OAAO,GAAE,OAAe,GAAG,KAAK,CAY1F;AAED,wBAAgB,wBAAwB,CAAC,QAAQ,EAAE,MAAM,EAAE,OAAO,GAAE,OAAe,GAAG,KAAK,CAS1F;AAED,wBAAgB,gBAAgB,CAAC,OAAO,EAAE,OAAO,EAAE,MAAM,CAAC,EAAE,MAAM,GAAG,IAAI,CAWxE;AAED,wBAAgB,cAAc,CAC1B,KAAK,EAAE,KAAK,EACZ,MAAM,EAAE,MAAM,EACd,OAAO,GAAE,OAAe,GACzB,IAAI,CAcN;AAgND,eAAO,MAAM,OAAO,SAqCd,CAAC"}
1
+ {"version":3,"file":"serializeArkIR.d.ts","sourceRoot":"","sources":["../../src/save/serializeArkIR.ts"],"names":[],"mappings":"AAiBA,OAAO,EAAE,OAAO,EAAwB,MAAM,WAAW,CAAC;AAG1D,OAAO,EAAE,KAAK,EAAE,MAAM,UAAU,CAAC;AACjC,OAAO,EAAE,OAAO,EAAE,MAAM,uBAAuB,CAAC;AAKhD,wBAAgB,wBAAwB,CAAC,QAAQ,EAAE,MAAM,EAAE,OAAO,GAAE,OAAe,GAAG,KAAK,CAY1F;AAED,wBAAgB,wBAAwB,CAAC,QAAQ,EAAE,MAAM,EAAE,OAAO,GAAE,OAAe,GAAG,KAAK,CAS1F;AAED,wBAAgB,gBAAgB,CAAC,OAAO,EAAE,OAAO,EAAE,MAAM,CAAC,EAAE,MAAM,GAAG,IAAI,CAWxE;AAED,wBAAgB,cAAc,CAC1B,KAAK,EAAE,KAAK,EACZ,MAAM,EAAE,MAAM,EACd,OAAO,GAAE,OAAe,GACzB,IAAI,CAcN;AAgMD,eAAO,MAAM,OAAO,SAqCd,CAAC"}
@@ -81,9 +81,7 @@ function serializeScene(scene, outDir, verbose = false) {
81
81
  }
82
82
  exports.serializeScene = serializeScene;
83
83
  function serializeSingleTsFile(input, output, options) {
84
- if (options.verbose) {
85
- console.log(`Serializing TS file to JSON: '${input}' -> '${output}'`);
86
- }
84
+ options.verbose && console.log(`Serializing TS file to JSON: '${input}' -> '${output}'`);
87
85
  let filepath = path_1.default.resolve(input);
88
86
  let projectDir = path_1.default.dirname(filepath);
89
87
  const scene = buildSceneFromSingleFile(filepath, options.verbose);
@@ -95,28 +93,20 @@ function serializeSingleTsFile(input, output, options) {
95
93
  }
96
94
  }
97
95
  if (options.inferTypes) {
98
- if (options.verbose) {
99
- console.log('Inferring types...');
100
- }
96
+ options.verbose && console.log('Inferring types...');
101
97
  scene.inferTypes();
102
98
  if (options.inferTypes > 1) {
103
99
  for (let i = 1; i < options.inferTypes; i++) {
104
- if (options.verbose) {
105
- console.log(`Inferring types one more time (${i + 1} / ${options.inferTypes})...`);
106
- }
100
+ options.verbose && console.log(`Inferring types one more time (${i + 1} / ${options.inferTypes})...`);
107
101
  scene.inferTypes();
108
102
  }
109
103
  }
110
104
  }
111
105
  if (options.entrypoint) {
112
- if (options.verbose) {
113
- console.log('Generating entrypoint...');
114
- }
106
+ options.verbose && console.log('Generating entrypoint...');
115
107
  PointerAnalysis_1.PointerAnalysis.pointerAnalysisForWholeProject(scene);
116
108
  }
117
- if (options.verbose) {
118
- console.log('Extracting single ArkFile...');
119
- }
109
+ options.verbose && console.log('Extracting single ArkFile...');
120
110
  if (files.length === 0) {
121
111
  console.error(`ERROR: No files found in the project directory '${projectDir}'.`);
122
112
  process.exit(1);
@@ -128,6 +118,10 @@ function serializeSingleTsFile(input, output, options) {
128
118
  // Note: we explicitly push a single path to the project files (in config),
129
119
  // so we expect there is only *one* ArkFile in the scene.
130
120
  let arkFile = scene.getFiles()[0];
121
+ serializeFile(arkFile, output, options, scene);
122
+ options.verbose && console.log('All done!');
123
+ }
124
+ function serializeFile(arkFile, output, options, scene) {
131
125
  let outPath;
132
126
  if (fs_1.default.existsSync(output) && fs_1.default.statSync(output).isDirectory()) {
133
127
  outPath = path_1.default.join(output, arkFile.getName() + '.json');
@@ -156,9 +150,6 @@ function serializeSingleTsFile(input, output, options) {
156
150
  console.log(`Serializing entrypoint to '${outPath}'...`);
157
151
  printer.dumpToJson(arkFile, outPath);
158
152
  }
159
- if (options.verbose) {
160
- console.log('All done!');
161
- }
162
153
  }
163
154
  function serializeMultipleTsFiles(inputDir, outDir, options) {
164
155
  console.log(`Serializing multiple TS files to JSON: '${inputDir}' -> '${outDir}'`);
@@ -185,9 +176,7 @@ function serializeMultipleTsFiles(inputDir, outDir, options) {
185
176
  scene.inferTypes();
186
177
  if (options.inferTypes > 1) {
187
178
  for (let i = 1; i < options.inferTypes; i++) {
188
- if (options.verbose) {
189
- console.log(`Inferring types one more time (${i + 1} / ${options.inferTypes})...`);
190
- }
179
+ options.verbose && console.log(`Inferring types one more time (${i + 1} / ${options.inferTypes})...`);
191
180
  scene.inferTypes();
192
181
  }
193
182
  }
@@ -225,9 +214,7 @@ function serializeTsProject(inputDir, outDir, options) {
225
214
  scene.inferTypes();
226
215
  if (options.inferTypes > 1) {
227
216
  for (let i = 1; i < options.inferTypes; i++) {
228
- if (options.verbose) {
229
- console.log(`Inferring types one more time (${i + 1} / ${options.inferTypes})...`);
230
- }
217
+ options.verbose && console.log(`Inferring types one more time (${i + 1} / ${options.inferTypes})...`);
231
218
  scene.inferTypes();
232
219
  }
233
220
  }
@@ -231,12 +231,13 @@ class SourceBody {
231
231
  for (let i = stmts.length - 1; i > 0; i--) {
232
232
  if (stmts[i] instanceof Stmt_1.ArkInvokeStmt && stmts[i].getInvokeExpr()) {
233
233
  let instanceInvokeExpr = stmts[i].getInvokeExpr();
234
- if ('constructor' === instanceInvokeExpr.getMethodSignature().getMethodSubSignature().getMethodName()) {
235
- let localName = instanceInvokeExpr.getBase().getName();
236
- let newExprIdx = findNewExpr(i, localName);
237
- if (newExprIdx >= 0 && newExprIdx < i - 1) {
238
- moveStmt(i, newExprIdx);
239
- }
234
+ if ('constructor' !== instanceInvokeExpr.getMethodSignature().getMethodSubSignature().getMethodName()) {
235
+ continue;
236
+ }
237
+ let localName = instanceInvokeExpr.getBase().getName();
238
+ let newExprIdx = findNewExpr(i, localName);
239
+ if (newExprIdx >= 0 && newExprIdx < i - 1) {
240
+ moveStmt(i, newExprIdx);
240
241
  }
241
242
  }
242
243
  }
@@ -246,10 +247,9 @@ class SourceBody {
246
247
  if (!(stmts[j] instanceof Stmt_1.ArkAssignStmt)) {
247
248
  continue;
248
249
  }
249
- if (stmts[j].getLeftOp() instanceof Local_1.Local) {
250
- if (stmts[j].getLeftOp().getName() === name) {
251
- return j;
252
- }
250
+ const leftOp = stmts[j].getLeftOp();
251
+ if (leftOp instanceof Local_1.Local && leftOp.getName() === name) {
252
+ return j;
253
253
  }
254
254
  }
255
255
  return -1;
@@ -8,6 +8,7 @@ export declare class SourceFilePrinter extends Printer {
8
8
  arkFile: ArkFile;
9
9
  items: Dump[];
10
10
  constructor(arkFile: ArkFile);
11
+ private printDefaultClassInFile;
11
12
  dump(): string;
12
13
  }
13
14
  //# sourceMappingURL=SourceFilePrinter.d.ts.map
@@ -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