arkanalyzer 1.0.40 → 1.0.41

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 (61) hide show
  1. package/lib/callgraph/algorithm/ClassHierarchyAnalysis.d.ts.map +1 -1
  2. package/lib/callgraph/algorithm/ClassHierarchyAnalysis.js +3 -4
  3. package/lib/callgraph/algorithm/RapidTypeAnalysis.d.ts.map +1 -1
  4. package/lib/callgraph/algorithm/RapidTypeAnalysis.js +7 -8
  5. package/lib/callgraph/model/CallGraph.d.ts +5 -5
  6. package/lib/callgraph/model/CallGraph.d.ts.map +1 -1
  7. package/lib/callgraph/model/CallGraph.js +18 -21
  8. package/lib/callgraph/model/CallSite.d.ts +16 -6
  9. package/lib/callgraph/model/CallSite.d.ts.map +1 -1
  10. package/lib/callgraph/model/CallSite.js +48 -8
  11. package/lib/callgraph/model/builder/CallGraphBuilder.d.ts +0 -1
  12. package/lib/callgraph/model/builder/CallGraphBuilder.d.ts.map +1 -1
  13. package/lib/callgraph/model/builder/CallGraphBuilder.js +0 -8
  14. package/lib/callgraph/pointerAnalysis/Pag.d.ts +3 -6
  15. package/lib/callgraph/pointerAnalysis/Pag.d.ts.map +1 -1
  16. package/lib/callgraph/pointerAnalysis/Pag.js +6 -29
  17. package/lib/callgraph/pointerAnalysis/PagBuilder.d.ts +6 -15
  18. package/lib/callgraph/pointerAnalysis/PagBuilder.d.ts.map +1 -1
  19. package/lib/callgraph/pointerAnalysis/PagBuilder.js +56 -80
  20. package/lib/callgraph/pointerAnalysis/PointerAnalysis.d.ts +2 -1
  21. package/lib/callgraph/pointerAnalysis/PointerAnalysis.d.ts.map +1 -1
  22. package/lib/callgraph/pointerAnalysis/PointerAnalysis.js +12 -8
  23. package/lib/callgraph/pointerAnalysis/PointerAnalysisConfig.d.ts +9 -3
  24. package/lib/callgraph/pointerAnalysis/PointerAnalysisConfig.d.ts.map +1 -1
  25. package/lib/callgraph/pointerAnalysis/PointerAnalysisConfig.js +12 -5
  26. package/lib/callgraph/pointerAnalysis/context/Context.d.ts +69 -0
  27. package/lib/callgraph/pointerAnalysis/context/Context.d.ts.map +1 -0
  28. package/lib/callgraph/pointerAnalysis/context/Context.js +202 -0
  29. package/lib/callgraph/pointerAnalysis/context/ContextItem.d.ts +40 -0
  30. package/lib/callgraph/pointerAnalysis/context/ContextItem.d.ts.map +1 -0
  31. package/lib/callgraph/pointerAnalysis/context/ContextItem.js +99 -0
  32. package/lib/callgraph/pointerAnalysis/context/ContextSelector.d.ts +46 -0
  33. package/lib/callgraph/pointerAnalysis/context/ContextSelector.d.ts.map +1 -0
  34. package/lib/callgraph/pointerAnalysis/context/ContextSelector.js +138 -0
  35. package/lib/core/common/ArkIRTransformer.d.ts +1 -0
  36. package/lib/core/common/ArkIRTransformer.d.ts.map +1 -1
  37. package/lib/core/common/ArkIRTransformer.js +58 -2
  38. package/lib/core/common/ArkValueTransformer.d.ts +1 -1
  39. package/lib/core/common/ArkValueTransformer.d.ts.map +1 -1
  40. package/lib/core/common/SdkUtils.d.ts.map +1 -1
  41. package/lib/core/common/SdkUtils.js +12 -2
  42. package/lib/core/graph/BaseExplicitGraph.d.ts +1 -0
  43. package/lib/core/graph/BaseExplicitGraph.d.ts.map +1 -1
  44. package/lib/core/graph/BaseExplicitGraph.js +3 -0
  45. package/lib/core/graph/builder/CfgBuilder.d.ts +2 -1
  46. package/lib/core/graph/builder/CfgBuilder.d.ts.map +1 -1
  47. package/lib/core/graph/builder/CfgBuilder.js +51 -7
  48. package/lib/core/model/builder/ArkClassBuilder.js +18 -1
  49. package/lib/core/model/builder/builderUtils.d.ts.map +1 -1
  50. package/lib/core/model/builder/builderUtils.js +2 -1
  51. package/lib/index.d.ts +0 -1
  52. package/lib/index.d.ts.map +1 -1
  53. package/lib/index.js +2 -4
  54. package/lib/save/arkir/ArkIRMethodPrinter.d.ts.map +1 -1
  55. package/lib/save/arkir/ArkIRMethodPrinter.js +13 -5
  56. package/lib/save/source/SourceStmt.d.ts.map +1 -1
  57. package/lib/save/source/SourceStmt.js +9 -1
  58. package/package.json +2 -2
  59. package/lib/callgraph/pointerAnalysis/Context.d.ts +0 -38
  60. package/lib/callgraph/pointerAnalysis/Context.d.ts.map +0 -1
  61. package/lib/callgraph/pointerAnalysis/Context.js +0 -154
@@ -160,7 +160,7 @@ class ArkIRTransformer {
160
160
  stmts = this.classDeclarationToStmts(node);
161
161
  }
162
162
  else if (ts.isParameter(node)) {
163
- stmts = this.parameterPropertyToStmts(node);
163
+ stmts = this.parameterToStmts(node);
164
164
  }
165
165
  this.mapStmtsToTsStmt(stmts, node);
166
166
  if (stmts.length > 0) {
@@ -193,10 +193,25 @@ class ArkIRTransformer {
193
193
  // This is only used to add class property assign stmts into constructor when it is with parameter property.
194
194
  parameterPropertyToStmts(paramNode) {
195
195
  var _a, _b, _c;
196
+ let stmts = [];
197
+ let fieldName;
198
+ if (ts.isIdentifier(paramNode.name)) {
199
+ fieldName = paramNode.name.text;
200
+ }
201
+ else if (ts.isObjectBindingPattern(paramNode.name)) {
202
+ // TODO
203
+ return stmts;
204
+ }
205
+ else if (ts.isArrayBindingPattern(paramNode.name)) {
206
+ // TODO
207
+ return stmts;
208
+ }
209
+ else {
210
+ return stmts;
211
+ }
196
212
  if (paramNode.modifiers === undefined || !ts.isIdentifier(paramNode.name)) {
197
213
  return [];
198
214
  }
199
- const fieldName = paramNode.name.text;
200
215
  const arkClass = this.declaringMethod.getDeclaringArkClass();
201
216
  const fieldSignature = (_a = arkClass.getFieldWithName(fieldName)) === null || _a === void 0 ? void 0 : _a.getSignature();
202
217
  const paramLocal = Array.from(this.getLocals()).find(local => local.getName() === fieldName);
@@ -221,6 +236,47 @@ class ArkIRTransformer {
221
236
  }
222
237
  return [fieldAssignStmt];
223
238
  }
239
+ parameterToStmts(paramNode) {
240
+ if (this.declaringMethod.getName() === TSConst_1.CONSTRUCTOR_NAME && paramNode.modifiers) {
241
+ return this.parameterPropertyToStmts(paramNode);
242
+ }
243
+ let stmts = [];
244
+ if (paramNode.initializer === undefined) {
245
+ return stmts;
246
+ }
247
+ let paramName;
248
+ if (ts.isIdentifier(paramNode.name)) {
249
+ paramName = paramNode.name.text;
250
+ }
251
+ else if (ts.isObjectBindingPattern(paramNode.name)) {
252
+ // TODO
253
+ return stmts;
254
+ }
255
+ else if (ts.isArrayBindingPattern(paramNode.name)) {
256
+ // TODO
257
+ return stmts;
258
+ }
259
+ else {
260
+ return stmts;
261
+ }
262
+ const paramLocal = Array.from(this.getLocals()).find(local => local.getName() === paramName);
263
+ if (paramLocal === undefined) {
264
+ return stmts;
265
+ }
266
+ const { value: paramInitValue, valueOriginalPositions: paramInitPositions, stmts: paramInitStmts, } = this.tsNodeToValueAndStmts(paramNode.initializer);
267
+ stmts.push(...paramInitStmts);
268
+ const ifStmt = new Stmt_1.ArkIfStmt(new Expr_1.ArkConditionExpr(paramLocal, ValueUtil_1.ValueUtil.getUndefinedConst(), Expr_1.RelationalBinaryOperator.Equality));
269
+ ifStmt.setOperandOriginalPositions([Position_1.FullPosition.DEFAULT, Position_1.FullPosition.DEFAULT]);
270
+ stmts.push(ifStmt);
271
+ const currConditionalOperatorIndex = this.arkValueTransformer.conditionalOperatorNo++;
272
+ stmts.push(new DummyStmt(ArkIRTransformer.DUMMY_CONDITIONAL_OPERATOR_IF_TRUE_STMT + currConditionalOperatorIndex));
273
+ const assignStmt = new Stmt_1.ArkAssignStmt(paramLocal, paramInitValue);
274
+ assignStmt.setOperandOriginalPositions([Position_1.FullPosition.DEFAULT, ...paramInitPositions]);
275
+ stmts.push(assignStmt);
276
+ stmts.push(new DummyStmt(ArkIRTransformer.DUMMY_CONDITIONAL_OPERATOR_IF_FALSE_STMT + currConditionalOperatorIndex));
277
+ stmts.push(new DummyStmt(ArkIRTransformer.DUMMY_CONDITIONAL_OPERATOR_END_STMT + currConditionalOperatorIndex));
278
+ return stmts;
279
+ }
224
280
  returnStatementToStmts(returnStatement) {
225
281
  const stmts = [];
226
282
  if (returnStatement.expression) {
@@ -6,7 +6,7 @@ import { GlobalRef } from '../base/Ref';
6
6
  import { ArkMethod } from '../model/ArkMethod';
7
7
  import { ArkIRTransformer, ValueAndStmts } from './ArkIRTransformer';
8
8
  export declare class ArkValueTransformer {
9
- private conditionalOperatorNo;
9
+ conditionalOperatorNo: number;
10
10
  private tempLocalNo;
11
11
  private sourceFile;
12
12
  private locals;
@@ -1 +1 @@
1
- {"version":3,"file":"ArkValueTransformer.d.ts","sourceRoot":"","sources":["../../../src/core/common/ArkValueTransformer.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"ArkValueTransformer.d.ts","sourceRoot":"","sources":["../../../src/core/common/ArkValueTransformer.ts"],"names":[],"mappings":"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"}
@@ -1 +1 @@
1
- {"version":3,"file":"SdkUtils.d.ts","sourceRoot":"","sources":["../../../src/core/common/SdkUtils.ts"],"names":[],"mappings":"AAeA,OAAO,EAAE,OAAO,EAAE,MAAM,kBAAkB,CAAC;AAC3C,OAAO,EAAE,SAAS,EAAc,MAAM,oBAAoB,CAAC;AAO3D,OAAO,EAAE,SAAS,EAAE,MAAM,oBAAoB,CAAC;AAG/C,OAAO,EAAE,gBAAgB,EAAE,MAAM,aAAa,CAAC;AAG/C,OAAO,EAAE,GAAG,EAAE,MAAM,cAAc,CAAC;AAMnC,qBAAa,QAAQ;IACjB,OAAO,CAAC,MAAM,CAAC,SAAS,CAAoB;IAC5C,OAAO,CAAC,MAAM,CAAC,YAAY,CAGxB;IAEH,OAAO,CAAC,MAAM,CAAC,YAAY,CAAoD;IAC/E,OAAc,aAAa,SAAc;IACzC,OAAO,CAAC,MAAM,CAAC,aAAa,CAAsC;IAClE,OAAc,YAAY,EAAE,GAAG,CAI7B;WAEY,YAAY,CAAC,YAAY,EAAE,GAAG,GAAG,IAAI;WAQrC,iBAAiB,IAAI,MAAM,EAAE;IAY3C,OAAO,CAAC,MAAM,CAAC,QAAQ;WAaT,OAAO,IAAI,IAAI;WAIf,iBAAiB,CAAC,IAAI,EAAE,OAAO,GAAG,IAAI;WAOtC,gBAAgB,CAAC,IAAI,EAAE,MAAM,GAAG,OAAO,GAAG,SAAS;WAInD,aAAa,CAAC,IAAI,EAAE,OAAO,EAAE,SAAS,EAAE,GAAG,CAAC,MAAM,EAAE,SAAS,CAAC,GAAG,IAAI;WAyBrE,cAAc,CAAC,IAAI,EAAE,OAAO,EAAE,SAAS,EAAE,GAAG,CAAC,MAAM,EAAE,SAAS,CAAC,GAAG,IAAI;WAetE,OAAO,CAAC,GAAG,EAAE,SAAS,EAAE,SAAS,EAAE,GAAG,CAAC,MAAM,EAAE,SAAS,CAAC,EAAE,QAAQ,GAAE,OAAe,GAAG,IAAI;WAY3F,eAAe,CAAC,IAAI,EAAE,OAAO,EAAE,SAAS,EAAE,GAAG,CAAC,MAAM,EAAE,SAAS,CAAC,GAAG,IAAI;IAoBrF,OAAO,CAAC,MAAM,CAAC,SAAS;IAiBxB,OAAO,CAAC,MAAM,CAAC,eAAe;IA0B9B,OAAO,CAAC,MAAM,CAAC,WAAW;WAkBZ,iBAAiB,CAAC,MAAM,EAAE,gBAAgB,EAAE,SAAS,EAAE,SAAS,GAAG,IAAI;CAUxF"}
1
+ {"version":3,"file":"SdkUtils.d.ts","sourceRoot":"","sources":["../../../src/core/common/SdkUtils.ts"],"names":[],"mappings":"AAeA,OAAO,EAAE,OAAO,EAAE,MAAM,kBAAkB,CAAC;AAC3C,OAAO,EAAE,SAAS,EAAc,MAAM,oBAAoB,CAAC;AAO3D,OAAO,EAAE,SAAS,EAAE,MAAM,oBAAoB,CAAC;AAG/C,OAAO,EAAE,gBAAgB,EAAE,MAAM,aAAa,CAAC;AAG/C,OAAO,EAAE,GAAG,EAAE,MAAM,cAAc,CAAC;AAMnC,qBAAa,QAAQ;IACjB,OAAO,CAAC,MAAM,CAAC,SAAS,CAAoB;IAC5C,OAAO,CAAC,MAAM,CAAC,YAAY,CAGxB;IAEH,OAAO,CAAC,MAAM,CAAC,YAAY,CAAoD;IAC/E,OAAc,aAAa,SAAc;IACzC,OAAO,CAAC,MAAM,CAAC,aAAa,CAAsC;IAClE,OAAc,YAAY,EAAE,GAAG,CAI7B;WAEY,YAAY,CAAC,YAAY,EAAE,GAAG,GAAG,IAAI;WAQrC,iBAAiB,IAAI,MAAM,EAAE;IAqB3C,OAAO,CAAC,MAAM,CAAC,QAAQ;WAaT,OAAO,IAAI,IAAI;WAIf,iBAAiB,CAAC,IAAI,EAAE,OAAO,GAAG,IAAI;WAOtC,gBAAgB,CAAC,IAAI,EAAE,MAAM,GAAG,OAAO,GAAG,SAAS;WAInD,aAAa,CAAC,IAAI,EAAE,OAAO,EAAE,SAAS,EAAE,GAAG,CAAC,MAAM,EAAE,SAAS,CAAC,GAAG,IAAI;WAyBrE,cAAc,CAAC,IAAI,EAAE,OAAO,EAAE,SAAS,EAAE,GAAG,CAAC,MAAM,EAAE,SAAS,CAAC,GAAG,IAAI;WAetE,OAAO,CAAC,GAAG,EAAE,SAAS,EAAE,SAAS,EAAE,GAAG,CAAC,MAAM,EAAE,SAAS,CAAC,EAAE,QAAQ,GAAE,OAAe,GAAG,IAAI;WAY3F,eAAe,CAAC,IAAI,EAAE,OAAO,EAAE,SAAS,EAAE,GAAG,CAAC,MAAM,EAAE,SAAS,CAAC,GAAG,IAAI;IAoBrF,OAAO,CAAC,MAAM,CAAC,SAAS;IAiBxB,OAAO,CAAC,MAAM,CAAC,eAAe;IA0B9B,OAAO,CAAC,MAAM,CAAC,WAAW;WAkBZ,iBAAiB,CAAC,MAAM,EAAE,gBAAgB,EAAE,SAAS,EAAE,SAAS,GAAG,IAAI;CAUxF"}
@@ -65,8 +65,18 @@ class SdkUtils {
65
65
  }
66
66
  static fetchBuiltInFiles() {
67
67
  var _a;
68
- const filePath = path_1.default.resolve(this.BUILT_IN_PATH, (_a = this.esVersionMap.get(this.esVersion)) !== null && _a !== void 0 ? _a : '');
69
- this.BUILT_IN_SDK.path = path_1.default.resolve(this.BUILT_IN_PATH);
68
+ let builtInPath = this.BUILT_IN_PATH;
69
+ try {
70
+ // If arkanalyzer is used as dependency by other project, the base directory should be the module path.
71
+ const moduleRoot = path_1.default.dirname(path_1.default.dirname(require.resolve('arkanalyzer')));
72
+ builtInPath = path_1.default.join(moduleRoot, this.BUILT_IN_PATH);
73
+ logger.debug(`arkanalyzer is used as dependency, so using builtin sdk file in ${builtInPath}.`);
74
+ }
75
+ catch (_b) {
76
+ logger.debug(`use builtin sdk file in ${builtInPath}.`);
77
+ }
78
+ const filePath = path_1.default.resolve(builtInPath, (_a = this.esVersionMap.get(this.esVersion)) !== null && _a !== void 0 ? _a : '');
79
+ this.BUILT_IN_SDK.path = path_1.default.resolve(builtInPath);
70
80
  if (!fs_1.default.existsSync(filePath)) {
71
81
  logger.error(`built in directory ${filePath} is not exist, please check!`);
72
82
  return [];
@@ -46,6 +46,7 @@ export declare abstract class BaseExplicitGraph implements GraphTraits<BaseNode>
46
46
  protected edgeMarkSet: Set<string>;
47
47
  constructor();
48
48
  getNodeNum(): number;
49
+ getEdgeNum(): number;
49
50
  nodesItor(): IterableIterator<BaseNode>;
50
51
  addNode(n: BaseNode): void;
51
52
  getNode(id: NodeID): BaseNode | undefined;
@@ -1 +1 @@
1
- {"version":3,"file":"BaseExplicitGraph.d.ts","sourceRoot":"","sources":["../../../src/core/graph/BaseExplicitGraph.ts"],"names":[],"mappings":"AAeA,OAAO,EAAE,IAAI,EAAE,MAAM,EAAE,WAAW,EAAE,MAAM,eAAe,CAAC;AAE1D,OAAO,EAAE,IAAI,EAAE,MAAM,EAAE,CAAC;AACxB,8BAAsB,QAAQ;IAC1B,OAAO,CAAC,GAAG,CAAW;IACtB,OAAO,CAAC,GAAG,CAAW;IACtB,SAAS,CAAC,IAAI,EAAE,IAAI,CAAC;gBAET,CAAC,EAAE,QAAQ,EAAE,CAAC,EAAE,QAAQ,EAAE,CAAC,EAAE,IAAI;IAMtC,QAAQ,IAAI,MAAM;IAIlB,QAAQ,IAAI,MAAM;IAIlB,UAAU,IAAI,QAAQ;IAItB,UAAU,IAAI,QAAQ;IAItB,OAAO,IAAI,IAAI;IAIf,OAAO,CAAC,IAAI,EAAE,IAAI,GAAG,IAAI;IAIzB,YAAY,IAAI;QAAE,GAAG,EAAE,MAAM,CAAC;QAAC,GAAG,EAAE,MAAM,CAAA;KAAE;IAO5C,UAAU,IAAI,MAAM;CAG9B;AAED,8BAAsB,QAAQ;IAC1B,OAAO,CAAC,EAAE,CAAS;IACnB,SAAS,CAAC,IAAI,EAAE,IAAI,CAAC;IACrB,OAAO,CAAC,OAAO,CAA4B;IAC3C,OAAO,CAAC,QAAQ,CAA4B;gBAEhC,EAAE,EAAE,MAAM,EAAE,CAAC,EAAE,IAAI;IAKxB,KAAK,IAAI,MAAM;IAIf,OAAO,IAAI,IAAI;IAIf,OAAO,CAAC,IAAI,EAAE,IAAI,GAAG,IAAI;IAIzB,gBAAgB,IAAI,OAAO;IAI3B,gBAAgB,IAAI,OAAO;IAI3B,eAAe,CAAC,CAAC,EAAE,QAAQ,GAAG,OAAO;IAIrC,eAAe,CAAC,CAAC,EAAE,QAAQ,GAAG,OAAO;IAIrC,eAAe,CAAC,CAAC,EAAE,QAAQ,GAAG,IAAI;IAIlC,eAAe,CAAC,CAAC,EAAE,QAAQ,GAAG,IAAI;IAIlC,kBAAkB,CAAC,CAAC,EAAE,QAAQ,GAAG,OAAO;IAIxC,kBAAkB,CAAC,CAAC,EAAE,QAAQ,GAAG,OAAO;IAIxC,eAAe,IAAI,GAAG,CAAC,QAAQ,CAAC;IAIhC,gBAAgB,IAAI,GAAG,CAAC,QAAQ,CAAC;IAIjC,UAAU,IAAI,MAAM;aAIX,WAAW,IAAI,MAAM;CACxC;AAED,8BAAsB,iBAAkB,YAAW,WAAW,CAAC,QAAQ,CAAC;IACpE,SAAS,CAAC,OAAO,EAAE,MAAM,CAAK;IAC9B,SAAS,CAAC,OAAO,EAAE,MAAM,CAAK;IAC9B,SAAS,CAAC,WAAW,EAAE,GAAG,CAAC,MAAM,EAAE,QAAQ,CAAC,CAAC;IAC7C,SAAS,CAAC,WAAW,EAAE,GAAG,CAAC,MAAM,CAAC,CAAC;;IAO5B,UAAU,IAAI,MAAM;IAIpB,SAAS,IAAI,gBAAgB,CAAC,QAAQ,CAAC;IAIvC,OAAO,CAAC,CAAC,EAAE,QAAQ,GAAG,IAAI;IAK1B,OAAO,CAAC,EAAE,EAAE,MAAM,GAAG,QAAQ,GAAG,SAAS;IAQzC,OAAO,CAAC,EAAE,EAAE,MAAM,GAAG,OAAO;IAI5B,UAAU,CAAC,EAAE,EAAE,MAAM,GAAG,OAAO;IAQ/B,OAAO,CAAC,GAAG,EAAE,QAAQ,EAAE,GAAG,EAAE,QAAQ,GAAG,OAAO;IAU9C,cAAc,CAAC,IAAI,EAAE,QAAQ,GAAG,OAAO;IAUvC,YAAY,IAAI,gBAAgB,CAAC,QAAQ,CAAC;aAIjC,YAAY,IAAI,MAAM;CACzC"}
1
+ {"version":3,"file":"BaseExplicitGraph.d.ts","sourceRoot":"","sources":["../../../src/core/graph/BaseExplicitGraph.ts"],"names":[],"mappings":"AAeA,OAAO,EAAE,IAAI,EAAE,MAAM,EAAE,WAAW,EAAE,MAAM,eAAe,CAAC;AAE1D,OAAO,EAAE,IAAI,EAAE,MAAM,EAAE,CAAC;AACxB,8BAAsB,QAAQ;IAC1B,OAAO,CAAC,GAAG,CAAW;IACtB,OAAO,CAAC,GAAG,CAAW;IACtB,SAAS,CAAC,IAAI,EAAE,IAAI,CAAC;gBAET,CAAC,EAAE,QAAQ,EAAE,CAAC,EAAE,QAAQ,EAAE,CAAC,EAAE,IAAI;IAMtC,QAAQ,IAAI,MAAM;IAIlB,QAAQ,IAAI,MAAM;IAIlB,UAAU,IAAI,QAAQ;IAItB,UAAU,IAAI,QAAQ;IAItB,OAAO,IAAI,IAAI;IAIf,OAAO,CAAC,IAAI,EAAE,IAAI,GAAG,IAAI;IAIzB,YAAY,IAAI;QAAE,GAAG,EAAE,MAAM,CAAC;QAAC,GAAG,EAAE,MAAM,CAAA;KAAE;IAO5C,UAAU,IAAI,MAAM;CAG9B;AAED,8BAAsB,QAAQ;IAC1B,OAAO,CAAC,EAAE,CAAS;IACnB,SAAS,CAAC,IAAI,EAAE,IAAI,CAAC;IACrB,OAAO,CAAC,OAAO,CAA4B;IAC3C,OAAO,CAAC,QAAQ,CAA4B;gBAEhC,EAAE,EAAE,MAAM,EAAE,CAAC,EAAE,IAAI;IAKxB,KAAK,IAAI,MAAM;IAIf,OAAO,IAAI,IAAI;IAIf,OAAO,CAAC,IAAI,EAAE,IAAI,GAAG,IAAI;IAIzB,gBAAgB,IAAI,OAAO;IAI3B,gBAAgB,IAAI,OAAO;IAI3B,eAAe,CAAC,CAAC,EAAE,QAAQ,GAAG,OAAO;IAIrC,eAAe,CAAC,CAAC,EAAE,QAAQ,GAAG,OAAO;IAIrC,eAAe,CAAC,CAAC,EAAE,QAAQ,GAAG,IAAI;IAIlC,eAAe,CAAC,CAAC,EAAE,QAAQ,GAAG,IAAI;IAIlC,kBAAkB,CAAC,CAAC,EAAE,QAAQ,GAAG,OAAO;IAIxC,kBAAkB,CAAC,CAAC,EAAE,QAAQ,GAAG,OAAO;IAIxC,eAAe,IAAI,GAAG,CAAC,QAAQ,CAAC;IAIhC,gBAAgB,IAAI,GAAG,CAAC,QAAQ,CAAC;IAIjC,UAAU,IAAI,MAAM;aAIX,WAAW,IAAI,MAAM;CACxC;AAED,8BAAsB,iBAAkB,YAAW,WAAW,CAAC,QAAQ,CAAC;IACpE,SAAS,CAAC,OAAO,EAAE,MAAM,CAAK;IAC9B,SAAS,CAAC,OAAO,EAAE,MAAM,CAAK;IAC9B,SAAS,CAAC,WAAW,EAAE,GAAG,CAAC,MAAM,EAAE,QAAQ,CAAC,CAAC;IAC7C,SAAS,CAAC,WAAW,EAAE,GAAG,CAAC,MAAM,CAAC,CAAC;;IAO5B,UAAU,IAAI,MAAM;IAIpB,UAAU,IAAI,MAAM;IAIpB,SAAS,IAAI,gBAAgB,CAAC,QAAQ,CAAC;IAIvC,OAAO,CAAC,CAAC,EAAE,QAAQ,GAAG,IAAI;IAK1B,OAAO,CAAC,EAAE,EAAE,MAAM,GAAG,QAAQ,GAAG,SAAS;IAQzC,OAAO,CAAC,EAAE,EAAE,MAAM,GAAG,OAAO;IAI5B,UAAU,CAAC,EAAE,EAAE,MAAM,GAAG,OAAO;IAQ/B,OAAO,CAAC,GAAG,EAAE,QAAQ,EAAE,GAAG,EAAE,QAAQ,GAAG,OAAO;IAU9C,cAAc,CAAC,IAAI,EAAE,QAAQ,GAAG,OAAO;IAUvC,YAAY,IAAI,gBAAgB,CAAC,QAAQ,CAAC;aAIjC,YAAY,IAAI,MAAM;CACzC"}
@@ -111,6 +111,9 @@ class BaseExplicitGraph {
111
111
  getNodeNum() {
112
112
  return this.nodeNum;
113
113
  }
114
+ getEdgeNum() {
115
+ return this.edgeNum;
116
+ }
114
117
  nodesItor() {
115
118
  return this.idToNodeMap.values();
116
119
  }
@@ -143,7 +143,7 @@ export declare class CfgBuilder {
143
143
  getDotEdges(stmt: StatementBuilder): void;
144
144
  errorTest(stmt: StatementBuilder): void;
145
145
  buildStatementBuilder4ArrowFunction(stmt: ts.Node): void;
146
- private getParamPropertyNodes;
146
+ private getParamNodeWithInitializerOrModifier;
147
147
  buildCfgBuilder(): void;
148
148
  private handleBuilder;
149
149
  isBodyEmpty(): boolean;
@@ -168,6 +168,7 @@ export declare class CfgBuilder {
168
168
  aliasTypeMap: Map<string, [AliasType, ArkAliasTypeDefineStmt]>;
169
169
  traps: Trap[];
170
170
  };
171
+ private removeEmptyBlocks;
171
172
  private initializeBuild;
172
173
  private processBlocks;
173
174
  private generateReturnStmt;
@@ -1 +1 @@
1
- {"version":3,"file":"CfgBuilder.d.ts","sourceRoot":"","sources":["../../../../src/core/graph/builder/CfgBuilder.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"CfgBuilder.d.ts","sourceRoot":"","sources":["../../../../src/core/graph/builder/CfgBuilder.ts"],"names":[],"mappings":"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"}
@@ -639,6 +639,9 @@ class CfgBuilder {
639
639
  for (let i = stmt.nexts.length - 1; i >= 0; i--) {
640
640
  stmtQueue.push(stmt.nexts[i]);
641
641
  }
642
+ if (stmt.afterSwitch && stmt.afterSwitch.lasts.size === 0) {
643
+ stmtQueue.push(stmt.afterSwitch);
644
+ }
642
645
  }
643
646
  else if (stmt instanceof TryStatementBuilder) {
644
647
  if (stmt.finallyStatement) {
@@ -922,11 +925,11 @@ class CfgBuilder {
922
925
  s.next = this.exit;
923
926
  this.exit.lasts = new Set([s]);
924
927
  }
925
- getParamPropertyNodes(constructorParams) {
928
+ getParamNodeWithInitializerOrModifier(paramNodes) {
926
929
  let stmts = [];
927
- constructorParams.forEach(parameter => {
928
- if (parameter.modifiers !== undefined) {
929
- stmts.push(parameter);
930
+ paramNodes.forEach(param => {
931
+ if (param.initializer !== undefined || param.modifiers !== undefined) {
932
+ stmts.push(param);
930
933
  }
931
934
  });
932
935
  return stmts;
@@ -959,9 +962,9 @@ class CfgBuilder {
959
962
  else if (ts.isModuleDeclaration(this.astRoot) && ts.isModuleBlock(this.astRoot.body)) {
960
963
  stmts = [...this.astRoot.body.statements];
961
964
  }
962
- // For constructor, add parameter property node to stmts which can be used when build body
963
- if (ts.isConstructorDeclaration(this.astRoot)) {
964
- stmts = [...this.getParamPropertyNodes(this.astRoot.parameters), ...stmts];
965
+ // Add param node with initializer or modifier to stmts which can be used when build body to create class field and initializer stmts.
966
+ if (!this.emptyBody && ts.isFunctionLike(this.astRoot)) {
967
+ stmts = [...this.getParamNodeWithInitializerOrModifier(this.astRoot.parameters), ...stmts];
965
968
  }
966
969
  if (!ModelUtils_1.ModelUtils.isArkUIBuilderMethod(this.declaringMethod)) {
967
970
  this.walkAST(this.entry, this.exit, stmts);
@@ -1047,6 +1050,7 @@ class CfgBuilder {
1047
1050
  this.adjustBlocks(blockBuilderToCfgBlock, blocksContainLoopCondition, basicBlockSet, blockBuildersContainSwitch, valueAndStmtsOfSwitchAndCasesAll, arkIRTransformer);
1048
1051
  const trapBuilder = new TrapBuilder_1.TrapBuilder();
1049
1052
  const traps = trapBuilder.buildTraps(blockBuilderToCfgBlock, blockBuildersBeforeTry, arkIRTransformer, basicBlockSet);
1053
+ this.removeEmptyBlocks(basicBlockSet);
1050
1054
  const cfg = this.createCfg(blockBuilderToCfgBlock, basicBlockSet, currBlockId);
1051
1055
  return {
1052
1056
  cfg,
@@ -1056,6 +1060,46 @@ class CfgBuilder {
1056
1060
  traps,
1057
1061
  };
1058
1062
  }
1063
+ removeEmptyBlocks(basicBlockSet) {
1064
+ for (const bb of basicBlockSet) {
1065
+ if (bb.getStmts().length > 0) {
1066
+ continue;
1067
+ }
1068
+ const predecessors = bb.getPredecessors();
1069
+ const successors = bb.getSuccessors();
1070
+ // the empty basic block with neither predecessor nor successor could be deleted directly
1071
+ if (predecessors.length === 0 && successors.length === 0) {
1072
+ basicBlockSet.delete(bb);
1073
+ continue;
1074
+ }
1075
+ // the empty basic block with predecessor but no successor could be deleted directly and remove its ID from the predecessor blocks
1076
+ if (predecessors.length > 0 && successors.length === 0) {
1077
+ for (const predecessor of predecessors) {
1078
+ predecessor.removeSuccessorBlock(bb);
1079
+ }
1080
+ basicBlockSet.delete(bb);
1081
+ continue;
1082
+ }
1083
+ // the empty basic block with successor but no predecessor could be deleted directly and remove its ID from the successor blocks
1084
+ if (predecessors.length === 0 && successors.length > 0) {
1085
+ for (const successor of successors) {
1086
+ successor.removePredecessorBlock(bb);
1087
+ }
1088
+ basicBlockSet.delete(bb);
1089
+ continue;
1090
+ }
1091
+ // the rest case is the empty basic block both with predecessor and successor, should relink its predecessor and successor
1092
+ for (const predecessor of predecessors) {
1093
+ predecessor.removeSuccessorBlock(bb);
1094
+ successors.forEach(successor => predecessor.addSuccessorBlock(successor));
1095
+ }
1096
+ for (const successor of successors) {
1097
+ successor.removePredecessorBlock(bb);
1098
+ predecessors.forEach(predecessor => successor.addPredecessorBlock(predecessor));
1099
+ }
1100
+ basicBlockSet.delete(bb);
1101
+ }
1102
+ }
1059
1103
  initializeBuild() {
1060
1104
  const blockBuilderToCfgBlock = new Map();
1061
1105
  const basicBlockSet = new Set();
@@ -394,6 +394,24 @@ function buildParameterProperty2ArkField(params, cls, sourceFile) {
394
394
  return;
395
395
  }
396
396
  params.forEach(parameter => {
397
+ let fieldName;
398
+ if (ohos_typescript_1.default.isIdentifier(parameter.name)) {
399
+ fieldName = parameter.name.text;
400
+ }
401
+ else if (ohos_typescript_1.default.isObjectBindingPattern(parameter.name)) {
402
+ // TODO
403
+ logger.warn(`Need to support param property with ObjectBindingPattern node type: ${cls.getSignature().toString()}!`);
404
+ return;
405
+ }
406
+ else if (ohos_typescript_1.default.isArrayBindingPattern(parameter.name)) {
407
+ // TODO
408
+ logger.warn(`Need to support param property with ArrayBindingPattern node type: ${cls.getSignature().toString()}!`);
409
+ return;
410
+ }
411
+ else {
412
+ logger.warn(`Need to support param property with new node type: ${cls.getSignature().toString()}!`);
413
+ return;
414
+ }
397
415
  if (parameter.modifiers === undefined || !ohos_typescript_1.default.isIdentifier(parameter.name)) {
398
416
  return;
399
417
  }
@@ -402,7 +420,6 @@ function buildParameterProperty2ArkField(params, cls, sourceFile) {
402
420
  field.setCode(parameter.getText(sourceFile));
403
421
  field.setCategory(ArkField_1.FieldCategory.PARAMETER_PROPERTY);
404
422
  field.setOriginPosition(Position_1.LineColPosition.buildFromNode(parameter, sourceFile));
405
- let fieldName = parameter.name.text;
406
423
  let fieldType;
407
424
  if (parameter.type) {
408
425
  fieldType = (0, builderUtils_1.buildGenericType)((0, builderUtils_1.tsNode2Type)(parameter.type, sourceFile, field), field);
@@ -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,EAA4D,eAAe,EAAiC,MAAM,oBAAoB,CAAC;AAyB9I,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,CAC/B,cAAc,EAAE,EAAE,CAAC,SAAS,CAAC,wBAAwB,CAAC,EACtD,UAAU,EAAE,EAAE,CAAC,UAAU,EACzB,WAAW,EAAE,SAAS,GAAG,QAAQ,GAClC,WAAW,EAAE,CAyBf;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,CAsDhG;AAED,wBAAgB,eAAe,CAAC,IAAI,EAAE,QAAQ,EAAE,UAAU,EAAE,EAAE,CAAC,UAAU,EAAE,MAAM,EAAE,SAAS,GAAG,IAAI,CAMlG;AAED,wBAAgB,WAAW,CACvB,QAAQ,EAAE,EAAE,CAAC,QAAQ,GAAG,EAAE,CAAC,wBAAwB,EACnD,UAAU,EAAE,EAAE,CAAC,UAAU,EACzB,WAAW,EAAE,SAAS,GAAG,QAAQ,GAAG,QAAQ,GAC7C,IAAI,CA8FN;AAED,wBAAgB,mBAAmB,CAAC,MAAM,EAAE,MAAM,GAAG,IAAI,CAiDxD"}
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,EAA4D,eAAe,EAAiC,MAAM,oBAAoB,CAAC;AAyB9I,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,CAC/B,cAAc,EAAE,EAAE,CAAC,SAAS,CAAC,wBAAwB,CAAC,EACtD,UAAU,EAAE,EAAE,CAAC,UAAU,EACzB,WAAW,EAAE,SAAS,GAAG,QAAQ,GAClC,WAAW,EAAE,CAyBf;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,CA+C3J;AAED,wBAAgB,gBAAgB,CAAC,IAAI,EAAE,IAAI,EAAE,WAAW,EAAE,SAAS,GAAG,QAAQ,GAAG,SAAS,GAAG,IAAI,CAsDhG;AAED,wBAAgB,eAAe,CAAC,IAAI,EAAE,QAAQ,EAAE,UAAU,EAAE,EAAE,CAAC,UAAU,EAAE,MAAM,EAAE,SAAS,GAAG,IAAI,CAMlG;AAED,wBAAgB,WAAW,CACvB,QAAQ,EAAE,EAAE,CAAC,QAAQ,GAAG,EAAE,CAAC,wBAAwB,EACnD,UAAU,EAAE,EAAE,CAAC,UAAU,EACzB,WAAW,EAAE,SAAS,GAAG,QAAQ,GAAG,QAAQ,GAC7C,IAAI,CA8FN;AAED,wBAAgB,mBAAmB,CAAC,MAAM,EAAE,MAAM,GAAG,IAAI,CAiDxD"}
@@ -281,7 +281,8 @@ function buildParameters(params, arkInstance, sourceFile) {
281
281
  }
282
282
  // initializer
283
283
  if (parameter.initializer) {
284
- //TODO?
284
+ // For param with initializer, it is actually optional param. The cfgBuilder will do the last initializer things.
285
+ methodParameter.setOptional(true);
285
286
  }
286
287
  // dotDotDotToken
287
288
  if (parameter.dotDotDotToken) {
package/lib/index.d.ts CHANGED
@@ -4,7 +4,6 @@ export { RapidTypeAnalysis } from './callgraph/algorithm/RapidTypeAnalysis';
4
4
  export { PTAStat, PAGStat, CGStat } from './callgraph/common/Statistics';
5
5
  export * from './callgraph/model/CallGraph';
6
6
  export { CallGraphBuilder } from './callgraph/model/builder/CallGraphBuilder';
7
- export { KLimitedContextSensitive } from './callgraph/pointerAnalysis/Context';
8
7
  export { DummyCallCreator } from './callgraph/pointerAnalysis/DummyCallCreator';
9
8
  export * from './callgraph/pointerAnalysis/Pag';
10
9
  export { CSFuncID, PagBuilder } from './callgraph/pointerAnalysis/PagBuilder';
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAgBA,OAAO,EAAE,gBAAgB,EAAE,MAAM,wCAAwC,CAAC;AAC1E,OAAO,EAAE,sBAAsB,EAAE,MAAM,8CAA8C,CAAC;AACtF,OAAO,EAAE,iBAAiB,EAAE,MAAM,yCAAyC,CAAC;AAG5E,OAAO,EAAE,OAAO,EAAE,OAAO,EAAE,MAAM,EAAE,MAAM,+BAA+B,CAAC;AAGzE,cAAc,6BAA6B,CAAC;AAC5C,OAAO,EAAE,gBAAgB,EAAE,MAAM,4CAA4C,CAAC;AAG9E,OAAO,EAAE,gBAAgB,EAAE,MAAM,8CAA8C,CAAC;AAChF,cAAc,iCAAiC,CAAC;AAChD,OAAO,EAAE,QAAQ,EAAE,UAAU,EAAE,MAAM,wCAAwC,CAAC;AAC9E,OAAO,EAAE,eAAe,EAAE,MAAM,6CAA6C,CAAC;AAC9E,OAAO,EAAE,qBAAqB,EAAE,MAAM,mDAAmD,CAAC;AAC1F,OAAO,EAAE,MAAM,EAAE,UAAU,EAAE,MAAM,mCAAmC,CAAC;AAEvE,OAAO,EAAE,IAAI,EAAE,MAAM,YAAY,CAAC;AAClC,OAAO,EAAE,WAAW,EAAE,MAAM,2BAA2B,CAAC;AAGxD,OAAO,EAAE,QAAQ,EAAE,MAAM,sBAAsB,CAAC;AAChD,OAAO,EAAE,SAAS,EAAE,MAAM,uBAAuB,CAAC;AAClD,OAAO,EAAE,WAAW,EAAE,MAAM,yBAAyB,CAAC;AACtD,cAAc,kBAAkB,CAAC;AACjC,OAAO,EAAE,KAAK,EAAE,MAAM,mBAAmB,CAAC;AAC1C,OAAO,EAAE,eAAe,EAAE,YAAY,EAAE,MAAM,sBAAsB,CAAC;AACrE,cAAc,iBAAiB,CAAC;AAChC,cAAc,kBAAkB,CAAC;AACjC,cAAc,kBAAkB,CAAC;AACjC,OAAO,EAAE,KAAK,EAAE,MAAM,mBAAmB,CAAC;AAG1C,OAAO,EAAE,UAAU,EAAE,MAAM,0BAA0B,CAAC;AACtD,cAAc,qBAAqB,CAAC;AACpC,OAAO,EAAE,gBAAgB,EAAE,MAAM,gCAAgC,CAAC;AAClE,cAAc,wBAAwB,CAAC;AACvC,OAAO,EAAE,eAAe,EAAE,MAAM,+BAA+B,CAAC;AAChE,OAAO,EAAE,OAAO,EAAE,MAAM,uBAAuB,CAAC;AAChD,OAAO,EAAE,cAAc,EAAE,MAAM,8BAA8B,CAAC;AAC9D,OAAO,EAAE,eAAe,EAAE,MAAM,+BAA+B,CAAC;AAChE,cAAc,uBAAuB,CAAC;AACtC,OAAO,EAAE,aAAa,EAAE,MAAM,6BAA6B,CAAC;AAC5D,OAAO,EAAE,SAAS,EAAE,MAAM,yBAAyB,CAAC;AACpD,OAAO,EAAE,YAAY,EAAE,KAAK,EAAE,MAAM,4BAA4B,CAAC;AAGjE,OAAO,EAAE,eAAe,EAAE,YAAY,EAAE,MAAM,iCAAiC,CAAC;AAChF,OAAO,EAAE,cAAc,EAAE,MAAM,gCAAgC,CAAC;AAChE,OAAO,EAAE,cAAc,EAAE,MAAM,gCAAgC,CAAC;AAChE,OAAO,EAAE,aAAa,EAAE,QAAQ,EAAE,MAAM,sBAAsB,CAAC;AAC/D,OAAO,EAAE,IAAI,EAAE,MAAM,sBAAsB,CAAC;AAC5C,OAAO,EAAE,wBAAwB,EAAE,uBAAuB,EAAE,MAAM,mCAAmC,CAAC;AAGtG,OAAO,EAAE,UAAU,EAAE,MAAM,yBAAyB,CAAC;AACrD,OAAO,EAAE,GAAG,EAAE,MAAM,kBAAkB,CAAC;AACvC,OAAO,EAAE,QAAQ,EAAE,YAAY,EAAE,MAAM,uBAAuB,CAAC;AAC/D,OAAO,EAAE,eAAe,EAAE,MAAM,8BAA8B,CAAC;AAC/D,OAAO,EAAE,aAAa,EAAE,MAAM,4BAA4B,CAAC;AAC3D,OAAO,EAAE,MAAM,EAAE,IAAI,EAAE,QAAQ,EAAE,QAAQ,EAAE,iBAAiB,EAAE,MAAM,gCAAgC,CAAC;AACrG,OAAO,EAAE,YAAY,EAAE,MAAM,kBAAkB,CAAC;AAGhD,OAAO,EAAE,OAAO,EAAE,MAAM,sBAAsB,CAAC;AAC/C,OAAO,EAAE,YAAY,EAAE,MAAM,2BAA2B,CAAC;AACzD,OAAO,EAAE,QAAQ,EAAE,MAAM,uBAAuB,CAAC;AACjD,OAAO,EAAE,SAAS,EAAE,MAAM,wBAAwB,CAAC;AACnD,OAAO,EAAE,QAAQ,EAAE,MAAM,uBAAuB,CAAC;AACjD,OAAO,EAAE,UAAU,EAAE,MAAM,wBAAwB,CAAC;AACpD,OAAO,EAAE,UAAU,EAAE,MAAM,wBAAwB,CAAC;AACpD,OAAO,EAAE,OAAO,EAAE,MAAM,sBAAsB,CAAC;AAC/C,cAAc,2BAA2B,CAAC;AAC1C,cAAc,0CAA0C,CAAC;AAEzD,OAAO,EAAE,WAAW,EAAE,MAAM,UAAU,CAAC;AACvC,OAAO,EAAE,KAAK,EAAE,MAAM,SAAS,CAAC;AAGhC,OAAO,EAAE,OAAO,EAAE,MAAM,gBAAgB,CAAC;AACzC,OAAO,EAAE,cAAc,EAAE,MAAM,uBAAuB,CAAC;AACvD,OAAO,EAAE,gBAAgB,EAAE,eAAe,EAAE,mBAAmB,EAAE,cAAc,EAAE,MAAM,mBAAmB,CAAC;AAC3G,OAAO,EAAE,YAAY,IAAI,mBAAmB,EAAE,MAAM,4BAA4B,CAAC;AACjF,OAAO,EAAE,WAAW,IAAI,kBAAkB,EAAE,MAAM,2BAA2B,CAAC;AAC9E,OAAO,EAAE,eAAe,IAAI,sBAAsB,EAAE,MAAM,+BAA+B,CAAC;AAC1F,OAAO,EAAE,iBAAiB,EAAE,MAAM,iCAAiC,CAAC;AACpE,OAAO,EAAE,WAAW,EAAE,MAAM,oBAAoB,CAAC;AACjD,OAAO,EAAE,YAAY,EAAE,MAAM,qBAAqB,CAAC;AACnD,OAAO,EAAE,eAAe,EAAE,MAAM,wBAAwB,CAAC;AAGzD,cAAc,4CAA4C,CAAC;AAG3D,cAAc,wBAAwB,CAAC;AACvC,cAAc,0BAA0B,CAAC;AACzC,cAAc,mBAAmB,CAAC;AAClC,cAAc,qBAAqB,CAAC;AACpC,cAAc,qBAAqB,CAAC;AACpC,cAAc,sBAAsB,CAAC;AACrC,cAAc,sBAAsB,CAAC;AACrC,OAAO,EAAE,SAAS,EAAE,eAAe,EAAE,MAAM,gBAAgB,CAAC;AAC5D,OAAO,EAAE,OAAO,IAAI,MAAM,EAAE,MAAM,gBAAgB,CAAC;AAGnD,OAAO,EAAE,MAAM,iBAAiB,CAAC;AACjC,OAAO,EAAE,EAAE,EAAE,CAAC"}
package/lib/index.js CHANGED
@@ -31,8 +31,8 @@ var __importDefault = (this && this.__importDefault) || function (mod) {
31
31
  return (mod && mod.__esModule) ? mod : { "default": mod };
32
32
  };
33
33
  Object.defineProperty(exports, "__esModule", { value: true });
34
- exports.ArkFile = exports.SCCDetection = exports.BaseExplicitGraph = exports.BaseNode = exports.BaseEdge = exports.DominanceTree = exports.DominanceFinder = exports.Cfg = exports.BasicBlock = exports.UndefinedVariableSolver = exports.UndefinedVariableChecker = exports.Fact = exports.PathEdge = exports.PathEdgePoint = exports.DataflowSolver = exports.DataflowResult = exports.DataflowProblem = exports.Scope = exports.VisibleValue = exports.ValueUtil = exports.TypeInference = exports.StmtUseReplacer = exports.RefUseReplacer = exports.IRUtils = exports.ExprUseReplacer = exports.DummyMainCreater = exports.ModelUtils = exports.FullPosition = exports.LineColPosition = exports.Local = exports.DefUseChain = exports.Decorator = exports.Constant = exports.DVFGBuilder = exports.DVFG = exports.DiffPTData = exports.PtsSet = exports.PointerAnalysisConfig = exports.PointerAnalysis = exports.PagBuilder = exports.CSFuncID = exports.DummyCallCreator = exports.KLimitedContextSensitive = exports.CallGraphBuilder = exports.CGStat = exports.PAGStat = exports.PTAStat = exports.RapidTypeAnalysis = exports.ClassHierarchyAnalysis = exports.AbstractAnalysis = void 0;
35
- exports.ts = exports.Logger = exports.LOG_MODULE_TYPE = exports.LOG_LEVEL = exports.ViewTreePrinter = exports.GraphPrinter = exports.JsonPrinter = exports.SourceFilePrinter = exports.SourceNamespacePrinter = exports.SourceClassPrinter = exports.SourceMethodPrinter = exports.DotFilePrinter = exports.DotNamespacePrinter = exports.DotClassPrinter = exports.DotMethodPrinter = exports.PrinterBuilder = exports.Printer = exports.Scene = exports.SceneConfig = exports.ArkBody = exports.ImportInfo = exports.ExportInfo = exports.ArkField = exports.ArkMethod = exports.ArkClass = exports.ArkNamespace = void 0;
34
+ exports.ArkNamespace = exports.ArkFile = exports.SCCDetection = exports.BaseExplicitGraph = exports.BaseNode = exports.BaseEdge = exports.DominanceTree = exports.DominanceFinder = exports.Cfg = exports.BasicBlock = exports.UndefinedVariableSolver = exports.UndefinedVariableChecker = exports.Fact = exports.PathEdge = exports.PathEdgePoint = exports.DataflowSolver = exports.DataflowResult = exports.DataflowProblem = exports.Scope = exports.VisibleValue = exports.ValueUtil = exports.TypeInference = exports.StmtUseReplacer = exports.RefUseReplacer = exports.IRUtils = exports.ExprUseReplacer = exports.DummyMainCreater = exports.ModelUtils = exports.FullPosition = exports.LineColPosition = exports.Local = exports.DefUseChain = exports.Decorator = exports.Constant = exports.DVFGBuilder = exports.DVFG = exports.DiffPTData = exports.PtsSet = exports.PointerAnalysisConfig = exports.PointerAnalysis = exports.PagBuilder = exports.CSFuncID = exports.DummyCallCreator = exports.CallGraphBuilder = exports.CGStat = exports.PAGStat = exports.PTAStat = exports.RapidTypeAnalysis = exports.ClassHierarchyAnalysis = exports.AbstractAnalysis = void 0;
35
+ exports.ts = exports.Logger = exports.LOG_MODULE_TYPE = exports.LOG_LEVEL = exports.ViewTreePrinter = exports.GraphPrinter = exports.JsonPrinter = exports.SourceFilePrinter = exports.SourceNamespacePrinter = exports.SourceClassPrinter = exports.SourceMethodPrinter = exports.DotFilePrinter = exports.DotNamespacePrinter = exports.DotClassPrinter = exports.DotMethodPrinter = exports.PrinterBuilder = exports.Printer = exports.Scene = exports.SceneConfig = exports.ArkBody = exports.ImportInfo = exports.ExportInfo = exports.ArkField = exports.ArkMethod = exports.ArkClass = void 0;
36
36
  // callgraph/algorithm
37
37
  var AbstractAnalysis_1 = require("./callgraph/algorithm/AbstractAnalysis");
38
38
  Object.defineProperty(exports, "AbstractAnalysis", { enumerable: true, get: function () { return AbstractAnalysis_1.AbstractAnalysis; } });
@@ -50,8 +50,6 @@ __exportStar(require("./callgraph/model/CallGraph"), exports);
50
50
  var CallGraphBuilder_1 = require("./callgraph/model/builder/CallGraphBuilder");
51
51
  Object.defineProperty(exports, "CallGraphBuilder", { enumerable: true, get: function () { return CallGraphBuilder_1.CallGraphBuilder; } });
52
52
  // callgraph/pointerAnalysis
53
- var Context_1 = require("./callgraph/pointerAnalysis/Context");
54
- Object.defineProperty(exports, "KLimitedContextSensitive", { enumerable: true, get: function () { return Context_1.KLimitedContextSensitive; } });
55
53
  var DummyCallCreator_1 = require("./callgraph/pointerAnalysis/DummyCallCreator");
56
54
  Object.defineProperty(exports, "DummyCallCreator", { enumerable: true, get: function () { return DummyCallCreator_1.DummyCallCreator; } });
57
55
  __exportStar(require("./callgraph/pointerAnalysis/Pag"), exports);
@@ -1 +1 @@
1
- {"version":3,"file":"ArkIRMethodPrinter.d.ts","sourceRoot":"","sources":["../../../src/save/arkir/ArkIRMethodPrinter.ts"],"names":[],"mappings":"AAeA,OAAO,EAAE,SAAS,EAAE,MAAM,4BAA4B,CAAC;AAKvD,OAAO,EAAE,WAAW,EAAE,MAAM,qBAAqB,CAAC;AAIlD;;GAEG;AACH,qBAAa,kBAAmB,SAAQ,WAAW;IAC/C,OAAO,CAAC,MAAM,CAAY;gBAEP,MAAM,EAAE,SAAS,EAAE,MAAM,GAAE,MAAW;IAKlD,IAAI,IAAI,MAAM;IAYd,OAAO,IAAI,MAAM;IAyBxB,OAAO,CAAC,WAAW;IAgBnB,OAAO,CAAC,SAAS;IAMjB,SAAS,CAAC,mBAAmB,CAAC,MAAM,EAAE,SAAS,GAAG,MAAM;IAsCxD,OAAO,CAAC,QAAQ;IAehB,OAAO,CAAC,eAAe;CA2B1B"}
1
+ {"version":3,"file":"ArkIRMethodPrinter.d.ts","sourceRoot":"","sources":["../../../src/save/arkir/ArkIRMethodPrinter.ts"],"names":[],"mappings":"AAeA,OAAO,EAAE,SAAS,EAAE,MAAM,4BAA4B,CAAC;AAKvD,OAAO,EAAE,WAAW,EAAE,MAAM,qBAAqB,CAAC;AAIlD;;GAEG;AACH,qBAAa,kBAAmB,SAAQ,WAAW;IAC/C,OAAO,CAAC,MAAM,CAAY;gBAEP,MAAM,EAAE,SAAS,EAAE,MAAM,GAAE,MAAW;IAKlD,IAAI,IAAI,MAAM;IAYd,OAAO,IAAI,MAAM;IAyBxB,OAAO,CAAC,WAAW;IAgBnB,OAAO,CAAC,SAAS;IAMjB,SAAS,CAAC,mBAAmB,CAAC,MAAM,EAAE,SAAS,GAAG,MAAM;IAsCxD,OAAO,CAAC,QAAQ;IAwBhB,OAAO,CAAC,eAAe;CA2B1B"}
@@ -113,14 +113,22 @@ class ArkIRMethodPrinter extends BasePrinter_1.BasePrinter {
113
113
  }
114
114
  printCfg(cfg) {
115
115
  let blocks = cfg.getBlocks();
116
- let firstBB = true;
116
+ let isFirstBB = true;
117
+ let firstBB = cfg.getStartingBlock();
118
+ // Try to always print the starting block at the beginning.
119
+ if (firstBB) {
120
+ this.printBasicBlock(firstBB);
121
+ isFirstBB = false;
122
+ }
117
123
  for (const block of blocks) {
118
- if (!firstBB) {
119
- this.printer.writeLine('');
124
+ if (!firstBB || block.getId() !== firstBB.getId()) {
125
+ if (!isFirstBB) {
126
+ this.printer.writeLine('');
127
+ }
128
+ this.printBasicBlock(block);
120
129
  }
121
- this.printBasicBlock(block);
122
130
  if (firstBB) {
123
- firstBB = false;
131
+ isFirstBB = false;
124
132
  }
125
133
  }
126
134
  }
@@ -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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"}
@@ -117,6 +117,7 @@ var AssignStmtDumpType;
117
117
  AssignStmtDumpType[AssignStmtDumpType["NORMAL"] = 0] = "NORMAL";
118
118
  AssignStmtDumpType[AssignStmtDumpType["TEMP_REPLACE"] = 1] = "TEMP_REPLACE";
119
119
  AssignStmtDumpType[AssignStmtDumpType["COMPONENT_CREATE"] = 2] = "COMPONENT_CREATE";
120
+ AssignStmtDumpType[AssignStmtDumpType["PARAM_REPLACE"] = 3] = "PARAM_REPLACE";
120
121
  })(AssignStmtDumpType || (AssignStmtDumpType = {}));
121
122
  class SourceAssignStmt extends SourceStmt {
122
123
  constructor(context, original) {
@@ -130,9 +131,13 @@ class SourceAssignStmt extends SourceStmt {
130
131
  transfer2ts() {
131
132
  this.leftOp = this.original.getLeftOp();
132
133
  this.rightOp = this.original.getRightOp();
134
+ if (this.rightOp instanceof Ref_1.ArkParameterRef) {
135
+ this.setText('');
136
+ this.dumpType = AssignStmtDumpType.PARAM_REPLACE;
137
+ return;
138
+ }
133
139
  if ((this.leftOp instanceof Local_1.Local && this.leftOp.getName() === 'this') ||
134
140
  (this.rightOp instanceof Constant_1.Constant && this.rightOp.getValue() === 'undefined') ||
135
- this.rightOp instanceof Ref_1.ArkParameterRef ||
136
141
  this.rightOp instanceof Ref_1.ClosureFieldRef) {
137
142
  this.setText('');
138
143
  this.dumpType = AssignStmtDumpType.NORMAL;
@@ -185,6 +190,9 @@ class SourceAssignStmt extends SourceStmt {
185
190
  }
186
191
  }
187
192
  beforeDump() {
193
+ if (this.dumpType === AssignStmtDumpType.PARAM_REPLACE && this.leftOp instanceof Local_1.Local) {
194
+ this.context.defineLocal(this.leftOp);
195
+ }
188
196
  if (this.dumpType !== AssignStmtDumpType.TEMP_REPLACE) {
189
197
  return;
190
198
  }
package/package.json CHANGED
@@ -1,7 +1,7 @@
1
1
  {
2
2
  "name": "arkanalyzer",
3
- "version": "1.0.40",
4
- "commit_id": "47e9374c",
3
+ "version": "1.0.41",
4
+ "commit_id": "49dc535b",
5
5
  "files": [
6
6
  "docs",
7
7
  "lib",
@@ -1,38 +0,0 @@
1
- import { FuncID } from '../model/CallGraph';
2
- export type ContextID = number;
3
- export declare const DUMMY_CID = 0;
4
- declare class Context {
5
- private contextElems;
6
- static sEmptyCtx: Context;
7
- constructor(contextElems?: number[]);
8
- static newEmpty(): Context;
9
- static new(contextElems: number[]): Context;
10
- static newKLimitedContext(oldCtx: Context, elem: number, k: number): Context;
11
- static kLimitedContext(ctx: Context, k: number): Context;
12
- length(): number;
13
- get(index: number): number;
14
- toString(): String;
15
- }
16
- declare class ContextCache {
17
- private contextList;
18
- private contextToIDMap;
19
- constructor();
20
- getOrNewContextID(context: Context): ContextID;
21
- updateContext(id: ContextID, newContext: Context, oldContext: Context): boolean;
22
- getContextID(context: Context): ContextID | undefined;
23
- getContext(id: number): Context | undefined;
24
- getContextList(): Context[];
25
- }
26
- export declare class KLimitedContextSensitive {
27
- k: number;
28
- ctxCache: ContextCache;
29
- constructor(k: number);
30
- emptyContext(): Context;
31
- getEmptyContextID(): ContextID;
32
- getContextID(context: Context): ContextID;
33
- getContextByID(context_id: number): Context | undefined;
34
- getNewContextID(callerFuncId: FuncID): ContextID;
35
- getOrNewContext(callerCid: ContextID, calleeFuncId: FuncID, findCalleeAsTop?: boolean): ContextID;
36
- }
37
- export {};
38
- //# sourceMappingURL=Context.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"Context.d.ts","sourceRoot":"","sources":["../../../src/callgraph/pointerAnalysis/Context.ts"],"names":[],"mappings":"AAeA,OAAO,EAAE,MAAM,EAAE,MAAM,oBAAoB,CAAC;AAE5C,MAAM,MAAM,SAAS,GAAG,MAAM,CAAC;AAC/B,eAAO,MAAM,SAAS,IAAI,CAAC;AAE3B,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,EAAE,MAAM,GAAG,OAAO;IASjD,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"}