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
@@ -97,36 +97,37 @@ class PTAStat {
97
97
  return new Date().getTime();
98
98
  }
99
99
  getInferedStat() {
100
+ let stmtStat = (s) => {
101
+ if (!(s instanceof Stmt_1.ArkAssignStmt)) {
102
+ return;
103
+ }
104
+ let lop = s.getLeftOp();
105
+ if (visited.has(lop)) {
106
+ return;
107
+ }
108
+ visited.add(lop);
109
+ if (inferred.includes(lop)) {
110
+ if (lop.getType() instanceof Type_1.UnknownType) {
111
+ this.numInferedUnknownValue++;
112
+ }
113
+ else {
114
+ this.numInferedDiffTypeValue++;
115
+ }
116
+ }
117
+ else {
118
+ if (lop.getType() instanceof Type_1.UnknownType) {
119
+ this.numNotInferedUnknownValue++;
120
+ }
121
+ }
122
+ this.totalValuesInVisitedFunc++;
123
+ };
100
124
  let inferred = Array.from(this.pta.getTypeDiffMap().keys());
101
125
  let visited = new Set();
102
126
  let cg = this.pta.getCallGraph();
103
127
  this.pta.getHandledFuncs().forEach(funcID => {
104
128
  var _a;
105
129
  let f = cg.getArkMethodByFuncID(funcID);
106
- (_a = f === null || f === void 0 ? void 0 : f.getCfg()) === null || _a === void 0 ? void 0 : _a.getStmts().forEach(s => {
107
- if (!(s instanceof Stmt_1.ArkAssignStmt)) {
108
- return;
109
- }
110
- let lop = s.getLeftOp();
111
- if (visited.has(lop)) {
112
- return;
113
- }
114
- visited.add(lop);
115
- if (inferred.includes(lop)) {
116
- if (lop.getType() instanceof Type_1.UnknownType) {
117
- this.numInferedUnknownValue++;
118
- }
119
- else {
120
- this.numInferedDiffTypeValue++;
121
- }
122
- }
123
- else {
124
- if (lop.getType() instanceof Type_1.UnknownType) {
125
- this.numNotInferedUnknownValue++;
126
- }
127
- }
128
- this.totalValuesInVisitedFunc++;
129
- });
130
+ (_a = f === null || f === void 0 ? void 0 : f.getCfg()) === null || _a === void 0 ? void 0 : _a.getStmts().forEach(s => stmtStat(s));
130
131
  });
131
132
  }
132
133
  getUnhandledFuncStat() {
@@ -1 +1 @@
1
- {"version":3,"file":"CallGraph.d.ts","sourceRoot":"","sources":["../../../src/callgraph/model/CallGraph.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"CallGraph.d.ts","sourceRoot":"","sources":["../../../src/callgraph/model/CallGraph.ts"],"names":[],"mappings":"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"}
@@ -314,7 +314,6 @@ class CallGraph extends BaseExplicitGraph_1.BaseExplicitGraph {
314
314
  if (node !== undefined) {
315
315
  return node.getMethod();
316
316
  }
317
- //return undefined;
318
317
  return null;
319
318
  }
320
319
  getArkMethodByFuncID(id) {
@@ -1 +1 @@
1
- {"version":3,"file":"Context.d.ts","sourceRoot":"","sources":["../../../src/callgraph/pointerAnalysis/Context.ts"],"names":[],"mappings":"AAeA,OAAO,EAAC,MAAM,EAAC,MAAM,oBAAoB,CAAA;AAEzC,MAAM,MAAM,SAAS,GAAG,MAAM,CAAA;AAC9B,eAAO,MAAM,SAAS,IAAI,CAAA;AAE1B,cAAM,OAAO;IACT,OAAO,CAAC,YAAY,CAAW;IAC/B,MAAM,CAAC,SAAS,EAAE,OAAO,CAAmB;gBAEhC,YAAY,GAAE,MAAM,EAAO;IAIvC,MAAM,CAAC,QAAQ,IAAI,OAAO;IAI1B,MAAM,CAAC,GAAG,CAAC,YAAY,EAAE,MAAM,EAAE,GAAG,OAAO;IAK3C,MAAM,CAAC,kBAAkB,CAAC,MAAM,EAAE,OAAO,EAAE,IAAI,EAAE,MAAM,EAAE,CAAC,EAAE,MAAM,GAAG,OAAO;IAa5E,MAAM,CAAC,eAAe,CAAC,GAAG,EAAE,OAAO,EAAE,CAAC,EAAC,MAAM,GAAG,OAAO;IAShD,MAAM,IAAI,MAAM;IAIhB,GAAG,CAAC,KAAK,EAAE,MAAM,GAAG,MAAM;IAO1B,QAAQ,IAAI,MAAM;CAG5B;AAED,cAAM,YAAY;IACd,OAAO,CAAC,WAAW,CAAiB;IACpC,OAAO,CAAC,cAAc,CAAkC;;IAOjD,iBAAiB,CAAC,OAAO,EAAE,OAAO,GAAG,SAAS;IAa9C,aAAa,CAAC,EAAE,EAAE,SAAS,EAAE,UAAU,EAAE,OAAO,EAAE,UAAU,EAAE,OAAO,GAAG,OAAO;IAY/E,YAAY,CAAC,OAAO,EAAE,OAAO,GAAG,SAAS,GAAG,SAAS;IASrD,UAAU,CAAC,EAAE,EAAE,MAAM,GAAG,OAAO,GAAG,SAAS;IAQ3C,cAAc,IAAI,OAAO,EAAE;CAGrC;AAED,qBAAa,wBAAwB;IACjC,CAAC,EAAE,MAAM,CAAC;IACV,QAAQ,EAAE,YAAY,CAAC;gBAEX,CAAC,EAAE,MAAM;IAOd,YAAY,IAAI,OAAO;IAIvB,iBAAiB,IAAI,SAAS;IAI9B,YAAY,CAAC,OAAO,EAAE,OAAO,GAAG,SAAS;IAIzC,cAAc,CAAC,UAAU,EAAE,MAAM,GAAG,OAAO,GAAG,SAAS;IAIvD,eAAe,CAAC,YAAY,EAAE,MAAM,GAAG,SAAS;IAIhD,eAAe,CAAC,SAAS,EAAE,SAAS,EAAE,YAAY,EAAE,MAAM,EAAE,eAAe,GAAE,OAAe,GAAG,SAAS;CAmBlH"}
1
+ {"version":3,"file":"Context.d.ts","sourceRoot":"","sources":["../../../src/callgraph/pointerAnalysis/Context.ts"],"names":[],"mappings":"AAeA,OAAO,EAAC,MAAM,EAAC,MAAM,oBAAoB,CAAA;AAEzC,MAAM,MAAM,SAAS,GAAG,MAAM,CAAA;AAC9B,eAAO,MAAM,SAAS,IAAI,CAAA;AAE1B,cAAM,OAAO;IACT,OAAO,CAAC,YAAY,CAAW;IAC/B,MAAM,CAAC,SAAS,EAAE,OAAO,CAAmB;gBAEhC,YAAY,GAAE,MAAM,EAAO;IAIvC,MAAM,CAAC,QAAQ,IAAI,OAAO;IAI1B,MAAM,CAAC,GAAG,CAAC,YAAY,EAAE,MAAM,EAAE,GAAG,OAAO;IAK3C,MAAM,CAAC,kBAAkB,CAAC,MAAM,EAAE,OAAO,EAAE,IAAI,EAAE,MAAM,EAAE,CAAC,EAAE,MAAM,GAAG,OAAO;IAa5E,MAAM,CAAC,eAAe,CAAC,GAAG,EAAE,OAAO,EAAE,CAAC,EAAC,MAAM,GAAG,OAAO;IAShD,MAAM,IAAI,MAAM;IAIhB,GAAG,CAAC,KAAK,EAAE,MAAM,GAAG,MAAM;IAO1B,QAAQ,IAAI,MAAM;CAG5B;AAED,cAAM,YAAY;IACd,OAAO,CAAC,WAAW,CAAiB;IACpC,OAAO,CAAC,cAAc,CAAkC;;IAOjD,iBAAiB,CAAC,OAAO,EAAE,OAAO,GAAG,SAAS;IAa9C,aAAa,CAAC,EAAE,EAAE,SAAS,EAAE,UAAU,EAAE,OAAO,EAAE,UAAU,EAAE,OAAO,GAAG,OAAO;IAY/E,YAAY,CAAC,OAAO,EAAE,OAAO,GAAG,SAAS,GAAG,SAAS;IASrD,UAAU,CAAC,EAAE,EAAE,MAAM,GAAG,OAAO,GAAG,SAAS;IAO3C,cAAc,IAAI,OAAO,EAAE;CAGrC;AAED,qBAAa,wBAAwB;IACjC,CAAC,EAAE,MAAM,CAAC;IACV,QAAQ,EAAE,YAAY,CAAC;gBAEX,CAAC,EAAE,MAAM;IAOd,YAAY,IAAI,OAAO;IAIvB,iBAAiB,IAAI,SAAS;IAI9B,YAAY,CAAC,OAAO,EAAE,OAAO,GAAG,SAAS;IAIzC,cAAc,CAAC,UAAU,EAAE,MAAM,GAAG,OAAO,GAAG,SAAS;IAIvD,eAAe,CAAC,YAAY,EAAE,MAAM,GAAG,SAAS;IAIhD,eAAe,CAAC,SAAS,EAAE,SAAS,EAAE,YAAY,EAAE,MAAM,EAAE,eAAe,GAAE,OAAe,GAAG,SAAS;CAmBlH"}
@@ -102,7 +102,6 @@ class ContextCache {
102
102
  return undefined;
103
103
  }
104
104
  getContext(id) {
105
- //if (id === 0 || id > this.contextList.length) {
106
105
  if (id > this.contextList.length) {
107
106
  return undefined;
108
107
  }
@@ -1 +1 @@
1
- {"version":3,"file":"Pag.d.ts","sourceRoot":"","sources":["../../../src/callgraph/pointerAnalysis/Pag.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"Pag.d.ts","sourceRoot":"","sources":["../../../src/callgraph/pointerAnalysis/Pag.ts"],"names":[],"mappings":"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"}
@@ -702,36 +702,36 @@ class Pag extends BaseExplicitGraph_1.BaseExplicitGraph {
702
702
  this.contextValueToIdMap.set(value, ctx2NdMap);
703
703
  }
704
704
  ctx2NdMap.set(cid, id);
705
- if (value instanceof Ref_1.ArkInstanceFieldRef || value instanceof Ref_1.ArkArrayRef) {
706
- let base = value.getBase();
707
- //TODO: remove below once this Local is not uniq in %instInit is fix
708
- if (base instanceof Local_1.Local && base.getName() === 'this') {
709
- (_a = stmt === null || stmt === void 0 ? void 0 : stmt.getCfg()) === null || _a === void 0 ? void 0 : _a.getStmts().forEach(s => {
710
- if (s instanceof Stmt_1.ArkAssignStmt &&
711
- (s.getLeftOp()) instanceof Local_1.Local &&
712
- s.getLeftOp().getName() === 'this') {
713
- base = s.getLeftOp();
714
- return;
715
- }
716
- });
717
- }
718
- let ctxMap = this.contextBaseToIdMap.get(base);
719
- if (ctxMap === undefined) {
720
- ctxMap = new Map();
721
- ctxMap.set(cid, [pagNode.getID()]);
705
+ if (!(value instanceof Ref_1.ArkInstanceFieldRef || value instanceof Ref_1.ArkArrayRef)) {
706
+ return;
707
+ }
708
+ let base = value.getBase();
709
+ //TODO: remove below once this Local is not uniq in %instInit is fix
710
+ if (base instanceof Local_1.Local && base.getName() === 'this') {
711
+ (_a = stmt === null || stmt === void 0 ? void 0 : stmt.getCfg()) === null || _a === void 0 ? void 0 : _a.getStmts().forEach((s) => {
712
+ if (s instanceof Stmt_1.ArkAssignStmt && s.getLeftOp() instanceof Local_1.Local &&
713
+ s.getLeftOp().getName() === 'this') {
714
+ base = s.getLeftOp();
715
+ return;
716
+ }
717
+ });
718
+ }
719
+ let ctxMap = this.contextBaseToIdMap.get(base);
720
+ if (ctxMap === undefined) {
721
+ ctxMap = new Map();
722
+ ctxMap.set(cid, [pagNode.getID()]);
723
+ }
724
+ else {
725
+ let nodes = ctxMap.get(cid);
726
+ if (nodes === undefined) {
727
+ nodes = [pagNode.getID()];
722
728
  }
723
729
  else {
724
- let nodes = ctxMap.get(cid);
725
- if (nodes === undefined) {
726
- nodes = [pagNode.getID()];
727
- }
728
- else {
729
- nodes.push(pagNode.getID());
730
- }
731
- ctxMap.set(cid, nodes);
730
+ nodes.push(pagNode.getID());
732
731
  }
733
- this.contextBaseToIdMap.set(base, ctxMap);
732
+ ctxMap.set(cid, nodes);
734
733
  }
734
+ this.contextBaseToIdMap.set(base, ctxMap);
735
735
  }
736
736
  /*
737
737
  * This node has no context info
@@ -40,6 +40,7 @@ export declare class PagBuilder {
40
40
  private globalThisPagNode?;
41
41
  private storagePropertyMap;
42
42
  private externalScopeVariableMap;
43
+ private retriggerNodesList;
43
44
  constructor(p: Pag, cg: CallGraph, s: Scene, kLimit: number, scale: PtaAnalysisScale);
44
45
  private buildFuncPagAndAddToWorklist;
45
46
  private addToFuncHandledListThisRound;
@@ -50,6 +51,7 @@ export declare class PagBuilder {
50
51
  private buildInvokeExprInAssignStmt;
51
52
  private addFuncPagCallSite;
52
53
  private buildInvokeExprInInvokeStmt;
54
+ private processExternalScopeValue;
53
55
  /**
54
56
  * will not create real funcPag, only create param values
55
57
  */
@@ -163,5 +165,6 @@ export declare class PagBuilder {
163
165
  private addExportVariableMap;
164
166
  getExportVariableMap(src: Local): Local[];
165
167
  addEdgesFromInterFuncPag(interFuncPag: InterFuncPag, cid: ContextID): boolean;
168
+ getRetriggerNodes(): NodeID[];
166
169
  }
167
170
  //# sourceMappingURL=PagBuilder.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"PagBuilder.d.ts","sourceRoot":"","sources":["../../../src/callgraph/pointerAnalysis/PagBuilder.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"PagBuilder.d.ts","sourceRoot":"","sources":["../../../src/callgraph/pointerAnalysis/PagBuilder.ts"],"names":[],"mappings":"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"}
@@ -81,6 +81,7 @@ class PagBuilder {
81
81
  this.globalThisValue = new Local_1.Local(TSConst_1.GLOBAL_THIS_NAME);
82
82
  this.storagePropertyMap = new Map();
83
83
  this.externalScopeVariableMap = new Map();
84
+ this.retriggerNodesList = new Set();
84
85
  this.pag = p;
85
86
  this.cg = cg;
86
87
  this.scale = scale;
@@ -154,9 +155,7 @@ class PagBuilder {
154
155
  let fpag = new Pag_1.FuncPag();
155
156
  for (let stmt of cfg.getStmts()) {
156
157
  if (stmt instanceof Stmt_1.ArkAssignStmt) {
157
- stmt.getRightOp().getUses().forEach((v) => {
158
- this.handleValueFromExternalScope(v, funcID);
159
- });
158
+ this.processExternalScopeValue(stmt.getRightOp(), funcID);
160
159
  // Add non-call edges
161
160
  let kind = this.getEdgeKindForAssignStmt(stmt);
162
161
  if (kind !== Pag_1.PagEdgeKind.Unknown) {
@@ -167,6 +166,7 @@ class PagBuilder {
167
166
  this.buildInvokeExprInAssignStmt(stmt, fpag);
168
167
  }
169
168
  else if (stmt instanceof Stmt_1.ArkInvokeStmt && this.scale === PointerAnalysisConfig_1.PtaAnalysisScale.WholeProgram) {
169
+ this.processExternalScopeValue(stmt.getInvokeExpr(), funcID);
170
170
  this.buildInvokeExprInInvokeStmt(stmt, fpag);
171
171
  }
172
172
  else {
@@ -235,6 +235,16 @@ class PagBuilder {
235
235
  throw new Error('Can not find callsite by stmt');
236
236
  }
237
237
  }
238
+ processExternalScopeValue(value, funcID) {
239
+ if (value instanceof Local_1.Local) {
240
+ this.handleValueFromExternalScope(value, funcID);
241
+ }
242
+ else if (value instanceof Expr_1.ArkInstanceInvokeExpr) {
243
+ value.getUses().forEach((v) => {
244
+ this.handleValueFromExternalScope(v, funcID);
245
+ });
246
+ }
247
+ }
238
248
  /**
239
249
  * will not create real funcPag, only create param values
240
250
  */
@@ -537,19 +547,20 @@ class PagBuilder {
537
547
  var _a;
538
548
  let calleeName = (_a = unknownCallSite.callStmt.getInvokeExpr()) === null || _a === void 0 ? void 0 : _a.getMethodSignature().getMethodSubSignature().getMethodName();
539
549
  let base = locals.get(calleeName);
540
- if (base) {
541
- let baseNodeIDs = this.pag.getNodesByValue(base);
542
- if (!baseNodeIDs) {
543
- logger.warn(`[build dynamic call site] can not handle call site with base ${base.toString()}`);
544
- return;
545
- }
546
- for (let nodeID of baseNodeIDs.values()) {
547
- let node = this.pag.getNode(nodeID);
548
- if (!(node instanceof Pag_1.PagLocalNode)) {
549
- continue;
550
- }
551
- node.addRelatedUnknownCallSite(unknownCallSite);
550
+ if (!base) {
551
+ return;
552
+ }
553
+ let baseNodeIDs = this.pag.getNodesByValue(base);
554
+ if (!baseNodeIDs) {
555
+ logger.warn(`[build dynamic call site] can not handle call site with base ${base.toString()}`);
556
+ return;
557
+ }
558
+ for (let nodeID of baseNodeIDs.values()) {
559
+ let node = this.pag.getNode(nodeID);
560
+ if (!(node instanceof Pag_1.PagLocalNode)) {
561
+ continue;
552
562
  }
563
+ node.addRelatedUnknownCallSite(unknownCallSite);
553
564
  }
554
565
  });
555
566
  }
@@ -599,43 +610,43 @@ class PagBuilder {
599
610
  return callee;
600
611
  }
601
612
  callee.push(tempCallee);
602
- }
603
- else {
604
- let calleeName = ivkExpr.getMethodSignature().getMethodSubSignature().getMethodName();
605
- // instance method invoke
606
- if (!(value instanceof Expr_1.ArkNewExpr || value instanceof Expr_1.ArkNewArrayExpr)) {
607
- return callee;
608
- }
609
- let tempCallee;
610
- // try to get callee by MethodSignature
611
- if (value instanceof Expr_1.ArkNewExpr) {
612
- // get class signature
613
- let clsSig = value.getType().getClassSignature();
614
- let cls;
615
- cls = this.scene.getClass(clsSig);
616
- while (!tempCallee && cls) {
617
- tempCallee = cls.getMethodWithName(calleeName);
618
- cls = cls.getSuperClass();
619
- }
620
- if (!tempCallee) {
621
- tempCallee = this.scene.getMethod(ivkExpr.getMethodSignature());
622
- }
623
- }
624
- if (!tempCallee && cs.args) {
625
- // while pts has {o_1, o_2} and invoke expr represents a method that only {o_1} has
626
- // return empty node when {o_2} come in
627
- // try to get callee by anonymous method in param
628
- for (let arg of cs.args) {
629
- // TODO: anonymous method param and return value pointer pass
630
- let argType = arg.getType();
631
- if (argType instanceof Type_1.FunctionType) {
632
- callee.push(this.scene.getMethod(argType.getMethodSignature()));
633
- }
613
+ return callee;
614
+ }
615
+ //else branch
616
+ let calleeName = ivkExpr.getMethodSignature().getMethodSubSignature().getMethodName();
617
+ // instance method invoke
618
+ if (!(value instanceof Expr_1.ArkNewExpr || value instanceof Expr_1.ArkNewArrayExpr)) {
619
+ return callee;
620
+ }
621
+ let tempCallee;
622
+ // try to get callee by MethodSignature
623
+ if (value instanceof Expr_1.ArkNewExpr) {
624
+ // get class signature
625
+ let clsSig = value.getType().getClassSignature();
626
+ let cls;
627
+ cls = this.scene.getClass(clsSig);
628
+ while (!tempCallee && cls) {
629
+ tempCallee = cls.getMethodWithName(calleeName);
630
+ cls = cls.getSuperClass();
631
+ }
632
+ if (!tempCallee) {
633
+ tempCallee = this.scene.getMethod(ivkExpr.getMethodSignature());
634
+ }
635
+ }
636
+ if (!tempCallee && cs.args) {
637
+ // while pts has {o_1, o_2} and invoke expr represents a method that only {o_1} has
638
+ // return empty node when {o_2} come in
639
+ // try to get callee by anonymous method in param
640
+ for (let arg of cs.args) {
641
+ // TODO: anonymous method param and return value pointer pass
642
+ let argType = arg.getType();
643
+ if (argType instanceof Type_1.FunctionType) {
644
+ callee.push(this.scene.getMethod(argType.getMethodSignature()));
634
645
  }
635
646
  }
636
- else if (tempCallee) {
637
- callee.push(tempCallee);
638
- }
647
+ }
648
+ else if (tempCallee) {
649
+ callee.push(tempCallee);
639
650
  }
640
651
  return callee;
641
652
  }
@@ -664,11 +675,12 @@ class PagBuilder {
664
675
  callee = this.scene.getMethod(ivkExpr.getMethodSignature());
665
676
  if (!callee) {
666
677
  (_a = cs.args) === null || _a === void 0 ? void 0 : _a.forEach(arg => {
667
- if (arg.getType() instanceof Type_1.FunctionType) {
668
- callee = this.scene.getMethod(arg.getType().getMethodSignature());
669
- if (callee) {
670
- callees.push(callee);
671
- }
678
+ if (!(arg.getType() instanceof Type_1.FunctionType)) {
679
+ return;
680
+ }
681
+ callee = this.scene.getMethod(arg.getType().getMethodSignature());
682
+ if (callee) {
683
+ callees.push(callee);
672
684
  }
673
685
  });
674
686
  }
@@ -941,43 +953,45 @@ class PagBuilder {
941
953
  var _a, _b;
942
954
  let argNum = (_a = cs.args) === null || _a === void 0 ? void 0 : _a.length;
943
955
  let srcNodes = [];
944
- if (argNum) {
945
- // add args to parameters edges
946
- for (let i = 0; i < argNum; i++) {
947
- let arg = (_b = cs.args) === null || _b === void 0 ? void 0 : _b.at(i);
948
- let paramValue;
949
- if (arg instanceof Local_1.Local && arg.getType() instanceof Type_1.FunctionType) {
950
- // TODO: cannot find value
951
- paramValue = this.methodParamValueMap.get(funcID).get(i);
952
- }
953
- else {
954
- continue;
955
- }
956
- if (arg && paramValue) {
957
- // Get or create new PAG node for argument and parameter
958
- let srcPagNode = this.getOrNewPagNode(callerCid, arg, cs.callStmt);
959
- let dstPagNode = this.getOrNewPagNode(calleeCid, paramValue, cs.callStmt);
960
- if (dstPagNode instanceof Pag_1.PagLocalNode) {
961
- // set the fake param Value in PagLocalNode
962
- /**
963
- * TODO: !!!
964
- * some API param is in the form of anonymous method:
965
- * component/common.d.ts
966
- * declare function animateTo(value: AnimateParam, event: () => void): void;
967
- *
968
- * this param fake Value will create PagFuncNode rather than PagLocalNode
969
- * when this API is called, the anonymous method pointer will not be able to pass into the fake Value PagNode
970
- */
971
- dstPagNode.setSdkParam();
972
- let sdkParamInvokeStmt = new Stmt_1.ArkInvokeStmt(new Expr_1.ArkPtrInvokeExpr(arg.getType().getMethodSignature(), paramValue, []));
973
- // create new DynCallSite
974
- let sdkParamCallSite = new CallGraph_1.DynCallSite(funcID, sdkParamInvokeStmt, undefined, undefined);
975
- dstPagNode.addRelatedDynCallSite(sdkParamCallSite);
976
- }
977
- this.pag.addPagEdge(srcPagNode, dstPagNode, Pag_1.PagEdgeKind.Copy, cs.callStmt);
978
- srcNodes.push(srcPagNode.getID());
979
- }
956
+ if (!argNum) {
957
+ return srcNodes;
958
+ }
959
+ // add args to parameters edges
960
+ for (let i = 0; i < argNum; i++) {
961
+ let arg = (_b = cs.args) === null || _b === void 0 ? void 0 : _b.at(i);
962
+ let paramValue;
963
+ if (arg instanceof Local_1.Local && arg.getType() instanceof Type_1.FunctionType) {
964
+ // TODO: cannot find value
965
+ paramValue = this.methodParamValueMap.get(funcID).get(i);
980
966
  }
967
+ else {
968
+ continue;
969
+ }
970
+ if (!(arg && paramValue)) {
971
+ continue;
972
+ }
973
+ // Get or create new PAG node for argument and parameter
974
+ let srcPagNode = this.getOrNewPagNode(callerCid, arg, cs.callStmt);
975
+ let dstPagNode = this.getOrNewPagNode(calleeCid, paramValue, cs.callStmt);
976
+ if (dstPagNode instanceof Pag_1.PagLocalNode) {
977
+ // set the fake param Value in PagLocalNode
978
+ /**
979
+ * TODO: !!!
980
+ * some API param is in the form of anonymous method:
981
+ * component/common.d.ts
982
+ * declare function animateTo(value: AnimateParam, event: () => void): void;
983
+ *
984
+ * this param fake Value will create PagFuncNode rather than PagLocalNode
985
+ * when this API is called, the anonymous method pointer will not be able to pass into the fake Value PagNode
986
+ */
987
+ dstPagNode.setSdkParam();
988
+ let sdkParamInvokeStmt = new Stmt_1.ArkInvokeStmt(new Expr_1.ArkPtrInvokeExpr(arg.getType().getMethodSignature(), paramValue, []));
989
+ // create new DynCallSite
990
+ let sdkParamCallSite = new CallGraph_1.DynCallSite(funcID, sdkParamInvokeStmt, undefined, undefined);
991
+ dstPagNode.addRelatedDynCallSite(sdkParamCallSite);
992
+ }
993
+ this.pag.addPagEdge(srcPagNode, dstPagNode, Pag_1.PagEdgeKind.Copy, cs.callStmt);
994
+ srcNodes.push(srcPagNode.getID());
981
995
  }
982
996
  return srcNodes;
983
997
  }
@@ -1387,7 +1401,7 @@ class PagBuilder {
1387
1401
  */
1388
1402
  handleValueFromExternalScope(value, funcID, originValue) {
1389
1403
  if (value instanceof Local_1.Local) {
1390
- if (value.getDeclaringStmt()) {
1404
+ if (value.getDeclaringStmt() || (value.getName() === 'this')) {
1391
1405
  // not from external scope
1392
1406
  return;
1393
1407
  }
@@ -1512,9 +1526,15 @@ class PagBuilder {
1512
1526
  let existingNodes = this.pag.getNodesByValue(exportLocal);
1513
1527
  existingNodes === null || existingNodes === void 0 ? void 0 : existingNodes.forEach(n => {
1514
1528
  this.pag.addPagEdge(this.pag.getNode(n), dstPagNode, e.kind);
1529
+ this.retriggerNodesList.add(n);
1515
1530
  });
1516
1531
  }
1517
1532
  return true;
1518
1533
  }
1534
+ getRetriggerNodes() {
1535
+ let retriggerNodes = Array.from(this.retriggerNodesList);
1536
+ this.retriggerNodesList.clear();
1537
+ return retriggerNodes;
1538
+ }
1519
1539
  }
1520
1540
  exports.PagBuilder = PagBuilder;
@@ -1 +1 @@
1
- {"version":3,"file":"PointerAnalysis.d.ts","sourceRoot":"","sources":["../../../src/callgraph/pointerAnalysis/PointerAnalysis.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"PointerAnalysis.d.ts","sourceRoot":"","sources":["../../../src/callgraph/pointerAnalysis/PointerAnalysis.ts"],"names":[],"mappings":"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"}
@@ -173,6 +173,7 @@ class PointerAnalysis extends AbstractAnalysis_1.AbstractAnalysis {
173
173
  */
174
174
  initWorklist() {
175
175
  let changed = false;
176
+ this.addToReanalyze(this.pagBuilder.getRetriggerNodes());
176
177
  for (let e of this.pag.getAddrEdges()) {
177
178
  this.ptaStat.numProcessedAddr++;
178
179
  let { src, dst } = e.getEndPoints();
@@ -273,11 +274,12 @@ class PointerAnalysis extends AbstractAnalysis_1.AbstractAnalysis {
273
274
  else {
274
275
  dstNode = this.pag.getOrClonePagFieldNode(fieldNode, pt);
275
276
  }
276
- if (dstNode && this.pag.addPagEdge(srcNode, dstNode, Pag_1.PagEdgeKind.Copy)) {
277
- this.ptaStat.numRealWrite++;
278
- if (this.ptd.resetElem(srcNode.getID())) {
279
- this.worklist.push(srcNode.getID());
280
- }
277
+ if (!(dstNode && this.pag.addPagEdge(srcNode, dstNode, Pag_1.PagEdgeKind.Copy))) {
278
+ continue;
279
+ }
280
+ this.ptaStat.numRealWrite++;
281
+ if (this.ptd.resetElem(srcNode.getID())) {
282
+ this.worklist.push(srcNode.getID());
281
283
  }
282
284
  }
283
285
  });
@@ -297,12 +299,13 @@ class PointerAnalysis extends AbstractAnalysis_1.AbstractAnalysis {
297
299
  else {
298
300
  srcNode = this.pag.getOrClonePagFieldNode(fieldNode, pt);
299
301
  }
300
- if (srcNode && this.pag.addPagEdge(srcNode, dstNode, Pag_1.PagEdgeKind.Copy)) {
301
- this.ptaStat.numRealLoad++;
302
- // TODO: if field is used before initialzed, newSrc node has no diff pts
303
- if (this.ptd.resetElem(srcNode.getID())) {
304
- this.worklist.push(srcNode.getID());
305
- }
302
+ if (!(srcNode && this.pag.addPagEdge(srcNode, dstNode, Pag_1.PagEdgeKind.Copy))) {
303
+ continue;
304
+ }
305
+ this.ptaStat.numRealLoad++;
306
+ // TODO: if field is used before initialzed, newSrc node has no diff pts
307
+ if (this.ptd.resetElem(srcNode.getID())) {
308
+ this.worklist.push(srcNode.getID());
306
309
  }
307
310
  }
308
311
  });
@@ -561,9 +564,7 @@ class PointerAnalysis extends AbstractAnalysis_1.AbstractAnalysis {
561
564
  fs.access(filePath, fs.constants.F_OK, (err) => {
562
565
  if (!err) {
563
566
  fs.truncate(filePath, 0, (err) => {
564
- if (err) {
565
- logger.error('Error to truncate file ', err);
566
- }
567
+ err && logger.error('Error to truncate file ', err);
567
568
  });
568
569
  }
569
570
  let updatedContent = '';