arkanalyzer 1.0.91 → 1.0.93

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 (54) hide show
  1. package/lib/Scene.d.ts +15 -0
  2. package/lib/Scene.d.ts.map +1 -1
  3. package/lib/Scene.js +39 -0
  4. package/lib/callgraph/algorithm/AbstractAnalysis.d.ts +6 -0
  5. package/lib/callgraph/algorithm/AbstractAnalysis.d.ts.map +1 -1
  6. package/lib/callgraph/algorithm/AbstractAnalysis.js +17 -8
  7. package/lib/callgraph/algorithm/ClassHierarchyAnalysis.d.ts +1 -0
  8. package/lib/callgraph/algorithm/ClassHierarchyAnalysis.d.ts.map +1 -1
  9. package/lib/callgraph/algorithm/ClassHierarchyAnalysis.js +9 -3
  10. package/lib/callgraph/algorithm/RapidTypeAnalysis.d.ts +147 -0
  11. package/lib/callgraph/algorithm/RapidTypeAnalysis.d.ts.map +1 -1
  12. package/lib/callgraph/algorithm/RapidTypeAnalysis.js +803 -76
  13. package/lib/callgraph/model/CallGraph.d.ts +1 -0
  14. package/lib/callgraph/model/CallGraph.d.ts.map +1 -1
  15. package/lib/callgraph/model/CallGraph.js +4 -0
  16. package/lib/callgraph/model/CallSite.d.ts +88 -1
  17. package/lib/callgraph/model/CallSite.d.ts.map +1 -1
  18. package/lib/callgraph/model/CallSite.js +58 -4
  19. package/lib/core/common/ArkIRTransformer.d.ts.map +1 -1
  20. package/lib/core/common/ArkIRTransformer.js +1 -1
  21. package/lib/core/common/IRInference.js +2 -2
  22. package/lib/core/common/SdkUtils.js +1 -1
  23. package/lib/core/common/TypeInference.d.ts.map +1 -1
  24. package/lib/core/common/TypeInference.js +3 -0
  25. package/lib/core/graph/builder/SwitchBuilder.d.ts.map +1 -1
  26. package/lib/core/graph/builder/SwitchBuilder.js +11 -1
  27. package/lib/core/graph/builder/ViewTreeBuilder.d.ts +13 -3
  28. package/lib/core/graph/builder/ViewTreeBuilder.d.ts.map +1 -1
  29. package/lib/core/graph/builder/ViewTreeBuilder.js +271 -86
  30. package/lib/core/model/ArkModule.d.ts +9 -12
  31. package/lib/core/model/ArkModule.d.ts.map +1 -1
  32. package/lib/core/model/ArkModule.js +7 -10
  33. package/lib/core/model/builder/ArkClassBuilder.js +10 -4
  34. package/lib/core/model/builder/ArkMethodBuilder.d.ts +2 -1
  35. package/lib/core/model/builder/ArkMethodBuilder.d.ts.map +1 -1
  36. package/lib/core/model/builder/ArkMethodBuilder.js +5 -1
  37. package/lib/frontend/FrontendBuilder.d.ts +8 -10
  38. package/lib/frontend/FrontendBuilder.d.ts.map +1 -1
  39. package/lib/frontend/FrontendBuilder.js +9 -17
  40. package/lib/frontend/common/ModuleAnalysisConfig.d.ts +8 -1
  41. package/lib/frontend/common/ModuleAnalysisConfig.d.ts.map +1 -1
  42. package/lib/frontend/common/ModuleAnalysisConfig.js +10 -1
  43. package/lib/frontend/common/ModuleBuilder.d.ts +44 -33
  44. package/lib/frontend/common/ModuleBuilder.d.ts.map +1 -1
  45. package/lib/frontend/common/ModuleBuilder.js +195 -66
  46. package/lib/frontend/common/ModuleCache.d.ts +1 -0
  47. package/lib/frontend/common/ModuleCache.d.ts.map +1 -1
  48. package/lib/frontend/common/ModuleCache.js +1 -0
  49. package/lib/frontend/common/ModuleDepth.d.ts +19 -14
  50. package/lib/frontend/common/ModuleDepth.d.ts.map +1 -1
  51. package/lib/frontend/common/ModuleDepth.js +25 -15
  52. package/lib/frontend/cppFrontend/graph/builder/SwitchBuilder.d.ts.map +1 -1
  53. package/lib/frontend/cppFrontend/graph/builder/SwitchBuilder.js +11 -1
  54. package/package.json +1 -1
@@ -59,6 +59,7 @@ export declare class CallGraph extends BaseExplicitGraph {
59
59
  addDynamicCallInfo(callStmt: Stmt, caller: Method, potentialCallee?: Method): void;
60
60
  addDynamicCallEdge(callerID: NodeID, calleeID: NodeID, callStmt: Stmt): void;
61
61
  getDynCallSiteByStmt(stmt: Stmt): DynCallSite | undefined;
62
+ recordCallSite(stmt: Stmt, cs: CallSite): void;
62
63
  addStmtToCallSiteMap(stmt: Stmt, cs: CallSite): boolean;
63
64
  getCallSiteByStmt(stmt: Stmt): CallSite[];
64
65
  addMethodToCallSiteMap(funcID: FuncID, cs: CallSite): void;
@@ -1 +1 @@
1
- {"version":3,"file":"CallGraph.d.ts","sourceRoot":"","sources":["../../../src/callgraph/model/CallGraph.ts"],"names":[],"mappings":"AAeA,OAAO,EAAE,eAAe,EAAE,MAAM,+BAA+B,CAAC;AAChE,OAAO,EAAE,IAAI,EAAE,MAAM,sBAAsB,CAAC;AAC5C,OAAO,EAAE,KAAK,EAAE,MAAM,aAAa,CAAC;AACpC,OAAO,EAAE,SAAS,EAAE,MAAM,4BAA4B,CAAC;AAGvD,OAAO,EAAE,QAAQ,EAAE,QAAQ,EAAE,iBAAiB,EAAE,MAAM,EAAE,MAAM,oCAAoC,CAAC;AAGnG,OAAO,EAAE,QAAQ,EAAE,UAAU,EAAE,eAAe,EAAE,WAAW,EAAE,SAAS,EAAE,MAAM,YAAY,CAAC;AAG3F,MAAM,MAAM,MAAM,GAAG,eAAe,CAAC;AACrC,MAAM,MAAM,MAAM,GAAG,MAAM,CAAC;AAE5B,OAAO,EAAE,QAAQ,EAAE,WAAW,EAAE,SAAS,EAAE,CAAC;AAE5C,oBAAY,iBAAiB;IACzB,IAAI,IAAA;IACJ,OAAO,IAAA;IACP,SAAS,IAAA;IACT,WAAW,IAAA;IACX,KAAK,IAAA;CACR;AAMD,qBAAa,aAAc,SAAQ,QAAQ;IACvC,OAAO,CAAC,KAAK,CAAa;gBAEd,GAAG,EAAE,aAAa,EAAE,GAAG,EAAE,aAAa;IAI3C,iBAAiB,CAAC,KAAK,EAAE,IAAI,GAAG,IAAI;IAIpC,kBAAkB,CAAC,KAAK,EAAE,IAAI,GAAG,IAAI;IAIrC,mBAAmB,CAAC,KAAK,EAAE,IAAI,GAAG,IAAI;IAItC,aAAa,IAAI,OAAO;IAIxB,eAAe,IAAI,OAAO;IAI1B,cAAc,IAAI,OAAO;IAIzB,UAAU,IAAI,MAAM;CAW9B;AAED,qBAAa,aAAc,SAAQ,QAAQ;IACvC,OAAO,CAAC,MAAM,CAAS;IACvB,OAAO,CAAC,WAAW,CAAkB;gBAEzB,EAAE,EAAE,MAAM,EAAE,CAAC,EAAE,MAAM,EAAE,CAAC,GAAE,iBAA0C;IAKzE,SAAS,IAAI,MAAM;IAInB,YAAY,CAAC,CAAC,EAAE,OAAO,GAAG,IAAI;IAI9B,WAAW,IAAI,OAAO;IAI7B,IAAW,aAAa,IAAI,OAAO,CAElC;IAEM,UAAU,IAAI,MAAM;IAIpB,WAAW,IAAI,MAAM;CAK/B;AAED,qBAAa,SAAU,SAAQ,iBAAiB;IAC5C,OAAO,CAAC,KAAK,CAAQ;IACrB,OAAO,CAAC,SAAS,CAAyB;IAC1C,OAAO,CAAC,iBAAiB,CAAoC;IAC7D,OAAO,CAAC,oBAAoB,CAAqC;IACjE,OAAO,CAAC,iBAAiB,CAAkC;IAC3D,OAAO,CAAC,iBAAiB,CAAyC;IAClE,OAAO,CAAC,mBAAmB,CAAyC;IACpE,OAAO,CAAC,OAAO,CAAY;IAC3B,OAAO,CAAC,MAAM,CAAC,CAAS;IACxB,OAAO,CAAC,iBAAiB,CAAqB;gBAElC,CAAC,EAAE,KAAK,EAAE,gBAAgB,GAAE,OAAe;IAQvD,OAAO,CAAC,iBAAiB;IAIlB,iBAAiB,CAAC,KAAK,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,GAAG,aAAa,GAAG,SAAS;IAK1E,YAAY,IAAI,QAAQ,CAAC,aAAa,CAAC;IAIvC,gBAAgB,CAAC,MAAM,EAAE,MAAM,EAAE,IAAI,GAAE,iBAA0C,GAAG,aAAa;IAYjG,mBAAmB,CAAC,MAAM,EAAE,MAAM,GAAG,IAAI;IASzC,wBAAwB,CAAC,MAAM,EAAE,MAAM,GAAG,aAAa;IAgBvD,0BAA0B,CAAC,MAAM,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,EAAE,QAAQ,EAAE,IAAI,EAAE,YAAY,GAAE,OAAc,GAAG,IAAI;IA2B9G,mBAAmB,CAAC,MAAM,EAAE,MAAM,GAAG,IAAI;IAYzC,kBAAkB,CAAC,QAAQ,EAAE,IAAI,EAAE,MAAM,EAAE,MAAM,EAAE,eAAe,CAAC,EAAE,MAAM,GAAG,IAAI;IAYlF,kBAAkB,CAAC,QAAQ,EAAE,MAAM,EAAE,QAAQ,EAAE,MAAM,EAAE,QAAQ,EAAE,IAAI,GAAG,IAAI;IAmB5E,oBAAoB,CAAC,IAAI,EAAE,IAAI,GAAG,WAAW,GAAG,SAAS;IAIzD,oBAAoB,CAAC,IAAI,EAAE,IAAI,EAAE,EAAE,EAAE,QAAQ,GAAG,OAAO;IASvD,iBAAiB,CAAC,IAAI,EAAE,IAAI,GAAG,QAAQ,EAAE;IAIzC,sBAAsB,CAAC,MAAM,EAAE,MAAM,EAAE,EAAE,EAAE,QAAQ,GAAG,IAAI;IAQ1D,oBAAoB,CAAC,IAAI,EAAE,MAAM,GAAG,eAAe,GAAG,GAAG,CAAC,QAAQ,CAAC;IAWnE,qBAAqB,CAAC,IAAI,EAAE,MAAM,GAAG,eAAe,GAAG,IAAI,EAAE;IAU7D,WAAW,IAAI,GAAG,CAAC,MAAM,EAAE,GAAG,CAAC,MAAM,CAAC,CAAC;IAkBvC,iBAAiB,CAAC,EAAE,EAAE,MAAM,GAAG,MAAM,GAAG,IAAI;IAQ5C,oBAAoB,CAAC,EAAE,EAAE,MAAM,GAAG,SAAS,GAAG,IAAI;IAUlD,UAAU,IAAI,MAAM,EAAE;IAItB,UAAU,CAAC,CAAC,EAAE,MAAM,EAAE,GAAG,IAAI;IAI7B,gBAAgB,IAAI,GAAG,CAAC,MAAM,EAAE,aAAa,CAAC;IAI9C,IAAI,CAAC,IAAI,EAAE,MAAM,EAAE,KAAK,CAAC,EAAE,MAAM,GAAG,IAAI;IAQxC,SAAS,CAAC,IAAI,EAAE,MAAM,GAAG,IAAI;IAK7B,eAAe,CAAC,MAAM,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,GAAG,OAAO;IA0BvD,SAAS,IAAI,IAAI;IAIjB,OAAO,IAAI,IAAI;IAIf,SAAS,IAAI,IAAI;IAIjB,OAAO,IAAI,MAAM;IAIjB,kBAAkB,CAAC,iBAAiB,EAAE,MAAM,GAAG,IAAI;IAInD,kBAAkB,IAAI,MAAM,GAAG,SAAS;IAIxC,eAAe,CAAC,MAAM,EAAE,MAAM,GAAG,OAAO;IAYxC,YAAY,IAAI,MAAM;IAItB,kBAAkB,IAAI,eAAe;IAIrC,eAAe,CAAC,IAAI,EAAE,UAAU,GAAG,MAAM;CAWnD"}
1
+ {"version":3,"file":"CallGraph.d.ts","sourceRoot":"","sources":["../../../src/callgraph/model/CallGraph.ts"],"names":[],"mappings":"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"}
@@ -225,6 +225,10 @@ class CallGraph extends BaseExplicitGraph_1.BaseExplicitGraph {
225
225
  getDynCallSiteByStmt(stmt) {
226
226
  return this.stmtToDynCallSitemap.get(stmt);
227
227
  }
228
+ recordCallSite(stmt, cs) {
229
+ this.addStmtToCallSiteMap(stmt, cs);
230
+ this.addMethodToCallSiteMap(cs.calleeFuncID, cs);
231
+ }
228
232
  addStmtToCallSiteMap(stmt, cs) {
229
233
  if (this.stmtToCallSitemap.has(stmt)) {
230
234
  this.stmtToCallSitemap.get(stmt).push(cs);
@@ -1,39 +1,126 @@
1
1
  import { Stmt } from '../../core/base/Stmt';
2
2
  import { Value } from '../../core/base/Value';
3
3
  import { FuncID } from './CallGraph';
4
+ /**
5
+ * 调用点 ID 的类型别名,全局唯一递增分配。
6
+ */
4
7
  export type CallSiteID = number;
8
+ /**
9
+ * 调用点统一接口。
10
+ * 一个调用点表示调用图中一条 `caller → callee` 边在 caller 侧的来源语句信息。
11
+ */
5
12
  export interface ICallSite {
13
+ /** 全局唯一标识 */
6
14
  id: CallSiteID;
15
+ /** 触发该调用的语句(通常是 ArkInvokeStmt) */
7
16
  callStmt: Stmt;
17
+ /** 调用参数列表,若语句不包含参数信息则为 undefined */
8
18
  args: Value[] | undefined;
19
+ /** 调用方方法 ID */
9
20
  callerFuncID: FuncID;
21
+ /** 获取被调用方方法 ID */
10
22
  getCalleeFuncID(): FuncID | undefined;
11
23
  }
24
+ /**
25
+ * 静态调用点。
26
+ *
27
+ * 表示一条**确定**的 `caller → callee` 调用边:在构建调用图时(CHA/RTA/PTA),
28
+ * 调用语句的目标方法已被解析为具体的 calleeFuncID,不再发生变化。
29
+ *
30
+ * 与 {@link DynCallSite} 相对,后者在创建时 callee 未知或仅为候选,
31
+ * 需要在后续指针分析阶段被克隆为确定性的静态调用点。
32
+ */
12
33
  export declare class CallSite implements ICallSite {
34
+ /** 全局唯一标识 */
13
35
  id: CallSiteID;
36
+ /** 触发该调用的语句(通常是 ArkInvokeStmt) */
14
37
  callStmt: Stmt;
38
+ /** 调用参数列表,若语句不包含参数信息则为 undefined */
15
39
  args: Value[] | undefined;
40
+ /** 被调用方方法 ID */
16
41
  calleeFuncID: FuncID;
42
+ /** 调用方方法 ID */
17
43
  callerFuncID: FuncID;
18
- constructor(id: CallSiteID, s: Stmt, a: Value[] | undefined, ce: FuncID, cr: FuncID);
44
+ /**
45
+ * 当该调用点对应一条 **callback 调用边** 时,argIndex 表示 callback
46
+ * 是原始调用语句的第几个入参(0-based)。
47
+ *
48
+ * 例如语句 `button.onClick(callback)` 中,callback 是第 0 个入参,
49
+ * 则为该 callback 创建的 CallSite 的 argIndex = 0。
50
+ *
51
+ * 对于非 callback 类型的普通调用边,此字段为 undefined。
52
+ */
53
+ readonly argIndex?: number;
54
+ constructor(id: CallSiteID, s: Stmt, a: Value[] | undefined, ce: FuncID, cr: FuncID, argIndex?: number);
19
55
  getCalleeFuncID(): FuncID | undefined;
20
56
  }
57
+ /**
58
+ * 动态调用点。
59
+ *
60
+ * 表示一条**不确定**的调用边:在调用图构建初期,调用语句的 callee 尚未确定
61
+ * (典型场景为通过函数类型变量发起的间接调用 `fn()`),仅记录一个候选 callee
62
+ * 或留空,等待指针分析(PTA)阶段将实际指向的方法解析出来后,
63
+ * 再通过 {@link CallSiteManager.cloneCallSiteFromDyn} 克隆为确定性的 {@link CallSite}。
64
+ */
21
65
  export declare class DynCallSite implements ICallSite {
66
+ /** 全局唯一标识 */
22
67
  id: CallSiteID;
68
+ /** 触发该调用的语句(通常是 ArkInvokeStmt) */
23
69
  callStmt: Stmt;
70
+ /** 调用参数列表,若语句不包含参数信息则为 undefined */
24
71
  args: Value[] | undefined;
72
+ /** 候选被调用方方法 ID,在创建时可能不确定 */
25
73
  potentialCalleeFuncID: FuncID | undefined;
74
+ /** 调用方方法 ID */
26
75
  callerFuncID: FuncID;
27
76
  constructor(id: CallSiteID, s: Stmt, a: Value[] | undefined, ptcCallee: FuncID | undefined, caller: FuncID);
28
77
  getCalleeFuncID(): FuncID | undefined;
29
78
  }
79
+ /**
80
+ * 调用点全局管理器。
81
+ *
82
+ * 负责为 {@link CallSite} 和 {@link DynCallSite} 分配全局唯一 ID,
83
+ * 维护 ID → 调用点、调用点 → ID 的双向映射,
84
+ * 以及动态调用点到其克隆出的静态调用点集合的映射。
85
+ */
30
86
  export declare class CallSiteManager {
31
87
  private idToCallSiteMap;
32
88
  private callSiteToIdMap;
33
89
  private dynToStaticMap;
90
+ /**
91
+ * 创建并注册一个静态调用点。
92
+ * @param s - 触发调用的语句
93
+ * @param a - 调用参数列表
94
+ * @param ce - 被调用方方法 ID
95
+ * @param cr - 调用方方法 ID
96
+ * @returns 新建的全局唯一静态调用点
97
+ */
34
98
  newCallSite(s: Stmt, a: Value[] | undefined, ce: FuncID, cr: FuncID): CallSite;
99
+ /**
100
+ * 创建并注册一个动态调用点。
101
+ * @param s - 触发调用的语句
102
+ * @param a - 调用参数列表
103
+ * @param ptcCallee - 候选被调用方方法 ID,不确定时传 undefined
104
+ * @param caller - 调用方方法 ID
105
+ * @returns 新建的全局唯一动态调用点
106
+ */
35
107
  newDynCallSite(s: Stmt, a: Value[] | undefined, ptcCallee: FuncID | undefined, caller: FuncID): DynCallSite;
108
+ /**
109
+ * 从一个动态调用点克隆出一个确定 callee 的静态调用点。
110
+ *
111
+ * 同一个动态调用点可被多次克隆(对应指针分析解析出的多个实际 callee),
112
+ * 已存在相同 callee 的克隆时直接复用,避免重复创建。
113
+ *
114
+ * @param dynCallSite - 原始动态调用点
115
+ * @param calleeFuncID - 解析出的确定被调用方方法 ID
116
+ * @returns 克隆出的静态调用点(新建或已存在的)
117
+ */
36
118
  cloneCallSiteFromDyn(dynCallSite: DynCallSite, calleeFuncID: FuncID): CallSite;
119
+ /**
120
+ * 根据 ID 查询调用点。
121
+ * @param id - 调用点全局唯一 ID
122
+ * @returns 对应的调用点,不存在时返回 undefined
123
+ */
37
124
  getCallSiteById(id: CallSiteID): ICallSite | undefined;
38
125
  }
39
126
  //# sourceMappingURL=CallSite.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"CallSite.d.ts","sourceRoot":"","sources":["../../../src/callgraph/model/CallSite.ts"],"names":[],"mappings":"AAeA,OAAO,EAAE,IAAI,EAAE,MAAM,sBAAsB,CAAC;AAC5C,OAAO,EAAE,KAAK,EAAE,MAAM,uBAAuB,CAAC;AAC9C,OAAO,EAAE,MAAM,EAAE,MAAM,aAAa,CAAC;AAErC,MAAM,MAAM,UAAU,GAAG,MAAM,CAAC;AAEhC,MAAM,WAAW,SAAS;IACtB,EAAE,EAAE,UAAU,CAAC;IACf,QAAQ,EAAE,IAAI,CAAC;IACf,IAAI,EAAE,KAAK,EAAE,GAAG,SAAS,CAAC;IAC1B,YAAY,EAAE,MAAM,CAAC;IACrB,eAAe,IAAI,MAAM,GAAG,SAAS,CAAC;CACzC;AAED,qBAAa,QAAS,YAAW,SAAS;IAC/B,EAAE,EAAE,UAAU,CAAC;IACf,QAAQ,EAAE,IAAI,CAAC;IACf,IAAI,EAAE,KAAK,EAAE,GAAG,SAAS,CAAC;IAC1B,YAAY,EAAE,MAAM,CAAC;IACrB,YAAY,EAAE,MAAM,CAAC;gBAEhB,EAAE,EAAE,UAAU,EAAE,CAAC,EAAE,IAAI,EAAE,CAAC,EAAE,KAAK,EAAE,GAAG,SAAS,EAAE,EAAE,EAAE,MAAM,EAAE,EAAE,EAAE,MAAM;IAQ5E,eAAe,IAAI,MAAM,GAAG,SAAS;CAG/C;AAED,qBAAa,WAAY,YAAW,SAAS;IAClC,EAAE,EAAE,UAAU,CAAC;IACf,QAAQ,EAAE,IAAI,CAAC;IACf,IAAI,EAAE,KAAK,EAAE,GAAG,SAAS,CAAC;IAC1B,qBAAqB,EAAE,MAAM,GAAG,SAAS,CAAC;IAC1C,YAAY,EAAE,MAAM,CAAC;gBAEhB,EAAE,EAAE,UAAU,EAAE,CAAC,EAAE,IAAI,EAAE,CAAC,EAAE,KAAK,EAAE,GAAG,SAAS,EAAE,SAAS,EAAE,MAAM,GAAG,SAAS,EAAE,MAAM,EAAE,MAAM;IAQnG,eAAe,IAAI,MAAM,GAAG,SAAS;CAG/C;AAED,qBAAa,eAAe;IACxB,OAAO,CAAC,eAAe,CAAyC;IAChE,OAAO,CAAC,eAAe,CAAyC;IAChE,OAAO,CAAC,cAAc,CAA4C;IAE3D,WAAW,CAAC,CAAC,EAAE,IAAI,EAAE,CAAC,EAAE,KAAK,EAAE,GAAG,SAAS,EAAE,EAAE,EAAE,MAAM,EAAE,EAAE,EAAE,MAAM,GAAG,QAAQ;IAQ9E,cAAc,CAAC,CAAC,EAAE,IAAI,EAAE,CAAC,EAAE,KAAK,EAAE,GAAG,SAAS,EAAE,SAAS,EAAE,MAAM,GAAG,SAAS,EAAE,MAAM,EAAE,MAAM,GAAG,WAAW;IAQ3G,oBAAoB,CAAC,WAAW,EAAE,WAAW,EAAE,YAAY,EAAE,MAAM,GAAG,QAAQ;IAkB9E,eAAe,CAAC,EAAE,EAAE,UAAU,GAAG,SAAS,GAAG,SAAS;CAGhE"}
1
+ {"version":3,"file":"CallSite.d.ts","sourceRoot":"","sources":["../../../src/callgraph/model/CallSite.ts"],"names":[],"mappings":"AAeA,OAAO,EAAE,IAAI,EAAE,MAAM,sBAAsB,CAAC;AAC5C,OAAO,EAAE,KAAK,EAAE,MAAM,uBAAuB,CAAC;AAC9C,OAAO,EAAE,MAAM,EAAE,MAAM,aAAa,CAAC;AAErC;;GAEG;AACH,MAAM,MAAM,UAAU,GAAG,MAAM,CAAC;AAEhC;;;GAGG;AACH,MAAM,WAAW,SAAS;IACtB,aAAa;IACb,EAAE,EAAE,UAAU,CAAC;IACf,kCAAkC;IAClC,QAAQ,EAAE,IAAI,CAAC;IACf,oCAAoC;IACpC,IAAI,EAAE,KAAK,EAAE,GAAG,SAAS,CAAC;IAC1B,eAAe;IACf,YAAY,EAAE,MAAM,CAAC;IACrB,kBAAkB;IAClB,eAAe,IAAI,MAAM,GAAG,SAAS,CAAC;CACzC;AAED;;;;;;;;GAQG;AACH,qBAAa,QAAS,YAAW,SAAS;IACtC,aAAa;IACN,EAAE,EAAE,UAAU,CAAC;IACtB,kCAAkC;IAC3B,QAAQ,EAAE,IAAI,CAAC;IACtB,oCAAoC;IAC7B,IAAI,EAAE,KAAK,EAAE,GAAG,SAAS,CAAC;IACjC,gBAAgB;IACT,YAAY,EAAE,MAAM,CAAC;IAC5B,eAAe;IACR,YAAY,EAAE,MAAM,CAAC;IAC5B;;;;;;;;OAQG;IACH,QAAQ,CAAC,QAAQ,CAAC,EAAE,MAAM,CAAC;gBAEf,EAAE,EAAE,UAAU,EAAE,CAAC,EAAE,IAAI,EAAE,CAAC,EAAE,KAAK,EAAE,GAAG,SAAS,EAAE,EAAE,EAAE,MAAM,EAAE,EAAE,EAAE,MAAM,EAAE,QAAQ,CAAC,EAAE,MAAM;IAS/F,eAAe,IAAI,MAAM,GAAG,SAAS;CAG/C;AAED;;;;;;;GAOG;AACH,qBAAa,WAAY,YAAW,SAAS;IACzC,aAAa;IACN,EAAE,EAAE,UAAU,CAAC;IACtB,kCAAkC;IAC3B,QAAQ,EAAE,IAAI,CAAC;IACtB,oCAAoC;IAC7B,IAAI,EAAE,KAAK,EAAE,GAAG,SAAS,CAAC;IACjC,4BAA4B;IACrB,qBAAqB,EAAE,MAAM,GAAG,SAAS,CAAC;IACjD,eAAe;IACR,YAAY,EAAE,MAAM,CAAC;gBAEhB,EAAE,EAAE,UAAU,EAAE,CAAC,EAAE,IAAI,EAAE,CAAC,EAAE,KAAK,EAAE,GAAG,SAAS,EAAE,SAAS,EAAE,MAAM,GAAG,SAAS,EAAE,MAAM,EAAE,MAAM;IAQnG,eAAe,IAAI,MAAM,GAAG,SAAS;CAG/C;AAED;;;;;;GAMG;AACH,qBAAa,eAAe;IACxB,OAAO,CAAC,eAAe,CAAyC;IAChE,OAAO,CAAC,eAAe,CAAyC;IAChE,OAAO,CAAC,cAAc,CAA4C;IAElE;;;;;;;OAOG;IACI,WAAW,CAAC,CAAC,EAAE,IAAI,EAAE,CAAC,EAAE,KAAK,EAAE,GAAG,SAAS,EAAE,EAAE,EAAE,MAAM,EAAE,EAAE,EAAE,MAAM,GAAG,QAAQ;IAQrF;;;;;;;OAOG;IACI,cAAc,CAAC,CAAC,EAAE,IAAI,EAAE,CAAC,EAAE,KAAK,EAAE,GAAG,SAAS,EAAE,SAAS,EAAE,MAAM,GAAG,SAAS,EAAE,MAAM,EAAE,MAAM,GAAG,WAAW;IAQlH;;;;;;;;;OASG;IACI,oBAAoB,CAAC,WAAW,EAAE,WAAW,EAAE,YAAY,EAAE,MAAM,GAAG,QAAQ;IAgBrF;;;;OAIG;IACI,eAAe,CAAC,EAAE,EAAE,UAAU,GAAG,SAAS,GAAG,SAAS;CAGhE"}
@@ -15,19 +15,37 @@
15
15
  */
16
16
  Object.defineProperty(exports, "__esModule", { value: true });
17
17
  exports.CallSiteManager = exports.DynCallSite = exports.CallSite = void 0;
18
+ /**
19
+ * 静态调用点。
20
+ *
21
+ * 表示一条**确定**的 `caller → callee` 调用边:在构建调用图时(CHA/RTA/PTA),
22
+ * 调用语句的目标方法已被解析为具体的 calleeFuncID,不再发生变化。
23
+ *
24
+ * 与 {@link DynCallSite} 相对,后者在创建时 callee 未知或仅为候选,
25
+ * 需要在后续指针分析阶段被克隆为确定性的静态调用点。
26
+ */
18
27
  class CallSite {
19
- constructor(id, s, a, ce, cr) {
28
+ constructor(id, s, a, ce, cr, argIndex) {
20
29
  this.id = id;
21
30
  this.callStmt = s;
22
31
  this.args = a;
23
32
  this.calleeFuncID = ce;
24
33
  this.callerFuncID = cr;
34
+ this.argIndex = argIndex;
25
35
  }
26
36
  getCalleeFuncID() {
27
37
  return this.calleeFuncID;
28
38
  }
29
39
  }
30
40
  exports.CallSite = CallSite;
41
+ /**
42
+ * 动态调用点。
43
+ *
44
+ * 表示一条**不确定**的调用边:在调用图构建初期,调用语句的 callee 尚未确定
45
+ * (典型场景为通过函数类型变量发起的间接调用 `fn()`),仅记录一个候选 callee
46
+ * 或留空,等待指针分析(PTA)阶段将实际指向的方法解析出来后,
47
+ * 再通过 {@link CallSiteManager.cloneCallSiteFromDyn} 克隆为确定性的 {@link CallSite}。
48
+ */
31
49
  class DynCallSite {
32
50
  constructor(id, s, a, ptcCallee, caller) {
33
51
  this.id = id;
@@ -41,12 +59,27 @@ class DynCallSite {
41
59
  }
42
60
  }
43
61
  exports.DynCallSite = DynCallSite;
62
+ /**
63
+ * 调用点全局管理器。
64
+ *
65
+ * 负责为 {@link CallSite} 和 {@link DynCallSite} 分配全局唯一 ID,
66
+ * 维护 ID → 调用点、调用点 → ID 的双向映射,
67
+ * 以及动态调用点到其克隆出的静态调用点集合的映射。
68
+ */
44
69
  class CallSiteManager {
45
70
  constructor() {
46
71
  this.idToCallSiteMap = new Map();
47
72
  this.callSiteToIdMap = new Map();
48
73
  this.dynToStaticMap = new Map();
49
74
  }
75
+ /**
76
+ * 创建并注册一个静态调用点。
77
+ * @param s - 触发调用的语句
78
+ * @param a - 调用参数列表
79
+ * @param ce - 被调用方方法 ID
80
+ * @param cr - 调用方方法 ID
81
+ * @returns 新建的全局唯一静态调用点
82
+ */
50
83
  newCallSite(s, a, ce, cr) {
51
84
  let id = this.idToCallSiteMap.size;
52
85
  let callSite = new CallSite(id, s, a, ce, cr);
@@ -54,6 +87,14 @@ class CallSiteManager {
54
87
  this.callSiteToIdMap.set(callSite, id);
55
88
  return callSite;
56
89
  }
90
+ /**
91
+ * 创建并注册一个动态调用点。
92
+ * @param s - 触发调用的语句
93
+ * @param a - 调用参数列表
94
+ * @param ptcCallee - 候选被调用方方法 ID,不确定时传 undefined
95
+ * @param caller - 调用方方法 ID
96
+ * @returns 新建的全局唯一动态调用点
97
+ */
57
98
  newDynCallSite(s, a, ptcCallee, caller) {
58
99
  let id = this.idToCallSiteMap.size;
59
100
  let callSite = new DynCallSite(id, s, a, ptcCallee, caller);
@@ -61,12 +102,20 @@ class CallSiteManager {
61
102
  this.callSiteToIdMap.set(callSite, id);
62
103
  return callSite;
63
104
  }
105
+ /**
106
+ * 从一个动态调用点克隆出一个确定 callee 的静态调用点。
107
+ *
108
+ * 同一个动态调用点可被多次克隆(对应指针分析解析出的多个实际 callee),
109
+ * 已存在相同 callee 的克隆时直接复用,避免重复创建。
110
+ *
111
+ * @param dynCallSite - 原始动态调用点
112
+ * @param calleeFuncID - 解析出的确定被调用方方法 ID
113
+ * @returns 克隆出的静态调用点(新建或已存在的)
114
+ */
64
115
  cloneCallSiteFromDyn(dynCallSite, calleeFuncID) {
65
116
  var _a;
66
117
  let clonedCS = (_a = this.dynToStaticMap.get(dynCallSite.id)) !== null && _a !== void 0 ? _a : [];
67
- let foundCS = clonedCS
68
- .map(id => this.idToCallSiteMap.get(id))
69
- .find(cs => cs.calleeFuncID === calleeFuncID);
118
+ let foundCS = clonedCS.map(id => this.idToCallSiteMap.get(id)).find(cs => cs.calleeFuncID === calleeFuncID);
70
119
  if (foundCS) {
71
120
  return foundCS;
72
121
  }
@@ -75,6 +124,11 @@ class CallSiteManager {
75
124
  this.dynToStaticMap.set(dynCallSite.id, clonedCS);
76
125
  return staticCS;
77
126
  }
127
+ /**
128
+ * 根据 ID 查询调用点。
129
+ * @param id - 调用点全局唯一 ID
130
+ * @returns 对应的调用点,不存在时返回 undefined
131
+ */
78
132
  getCallSiteById(id) {
79
133
  return this.idToCallSiteMap.get(id);
80
134
  }
@@ -1 +1 @@
1
- {"version":3,"file":"ArkIRTransformer.d.ts","sourceRoot":"","sources":["../../../src/core/common/ArkIRTransformer.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"ArkIRTransformer.d.ts","sourceRoot":"","sources":["../../../src/core/common/ArkIRTransformer.ts"],"names":[],"mappings":"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"}
@@ -268,12 +268,12 @@ class ArkIRTransformer {
268
268
  return stmts;
269
269
  }
270
270
  const { value: paramInitValue, valueOriginalPositions: paramInitPositions, stmts: paramInitStmts } = this.tsNodeToValueAndStmts(paramNode.initializer);
271
- stmts.push(...paramInitStmts);
272
271
  const ifStmt = new Stmt_1.ArkIfStmt(new Expr_1.ArkConditionExpr(paramLocal, ValueUtil_1.ValueUtil.getUndefinedConst(), Expr_1.RelationalBinaryOperator.Equality));
273
272
  ifStmt.setOperandOriginalPositions([Position_1.FullPosition.DEFAULT, Position_1.FullPosition.DEFAULT]);
274
273
  stmts.push(ifStmt);
275
274
  const currConditionalOperatorIndex = this.arkValueTransformer.conditionalOperatorNo++;
276
275
  stmts.push(new DummyStmt(ArkIRTransformer.DUMMY_CONDITIONAL_OPERATOR_IF_TRUE_STMT + currConditionalOperatorIndex));
276
+ stmts.push(...paramInitStmts);
277
277
  const assignStmt = new Stmt_1.ArkAssignStmt(paramLocal, paramInitValue);
278
278
  assignStmt.setOperandOriginalPositions([Position_1.FullPosition.DEFAULT, ...paramInitPositions]);
279
279
  stmts.push(assignStmt);
@@ -527,7 +527,7 @@ class IRInference {
527
527
  return null;
528
528
  }
529
529
  static getRealTypes(expr, declaredClass, baseType, method) {
530
- var _a;
530
+ var _a, _b;
531
531
  let realTypes;
532
532
  const tmp = [];
533
533
  if (method === null || method === void 0 ? void 0 : method.getGenericTypes()) {
@@ -546,7 +546,7 @@ class IRInference {
546
546
  realTypes = [new Type_1.ClassType(declaredClass === null || declaredClass === void 0 ? void 0 : declaredClass.getSignature())];
547
547
  }
548
548
  else {
549
- realTypes = (_a = baseType.getRealGenericTypes()) !== null && _a !== void 0 ? _a : declaredClass === null || declaredClass === void 0 ? void 0 : declaredClass.getRealTypes();
549
+ realTypes = (_b = (_a = expr.getRealGenericTypes()) !== null && _a !== void 0 ? _a : baseType.getRealGenericTypes()) !== null && _b !== void 0 ? _b : declaredClass === null || declaredClass === void 0 ? void 0 : declaredClass.getRealTypes();
550
550
  }
551
551
  return realTypes;
552
552
  }
@@ -326,7 +326,7 @@ class SdkUtils {
326
326
  }
327
327
  }
328
328
  exports.SdkUtils = SdkUtils;
329
- SdkUtils.esVersion = 'ES2017';
329
+ SdkUtils.esVersion = 'ES2021';
330
330
  SdkUtils.esVersionMap = new Map([
331
331
  ['ES2017', 'lib.es2020.d.ts'],
332
332
  ['ES2021', 'lib.es2021.d.ts']
@@ -1 +1 @@
1
- {"version":3,"file":"TypeInference.d.ts","sourceRoot":"","sources":["../../../src/core/common/TypeInference.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"TypeInference.d.ts","sourceRoot":"","sources":["../../../src/core/common/TypeInference.ts"],"names":[],"mappings":"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"}
@@ -1122,6 +1122,9 @@ class TypeInference {
1122
1122
  if (!(declare instanceof Type_1.ClassType) || !(real instanceof Type_1.ClassType)) {
1123
1123
  return false;
1124
1124
  }
1125
+ if (real.getClassSignature().getClassName() === declare.getClassSignature().getClassName()) {
1126
+ return false;
1127
+ }
1125
1128
  const fatherClass = scene.getClass(declare.getClassSignature());
1126
1129
  let childClass = scene.getClass(real.getClassSignature());
1127
1130
  while (childClass) {
@@ -1 +1 @@
1
- {"version":3,"file":"SwitchBuilder.d.ts","sourceRoot":"","sources":["../../../../src/core/graph/builder/SwitchBuilder.ts"],"names":[],"mappings":"AAeA,OAAO,EAAE,UAAU,EAAE,MAAM,eAAe,CAAC;AAC3C,OAAO,EAAE,gBAAgB,EAAE,aAAa,EAAE,MAAM,+BAA+B,CAAC;AAEhF,OAAO,EAAE,YAAY,EAAsC,MAAM,cAAc,CAAC;AAKhF;;GAEG;AACH,qBAAa,aAAa;IACf,WAAW,CACd,sBAAsB,EAAE,GAAG,CAAC,YAAY,EAAE,UAAU,CAAC,EACrD,0BAA0B,EAAE,YAAY,EAAE,EAC1C,gCAAgC,EAAE,aAAa,EAAE,EAAE,EACnD,gBAAgB,EAAE,gBAAgB,EAClC,aAAa,EAAE,GAAG,CAAC,UAAU,CAAC,GAC/B,IAAI;IA0CP,OAAO,CAAC,wBAAwB;IAwChC,OAAO,CAAC,uBAAuB;CA8ClC"}
1
+ {"version":3,"file":"SwitchBuilder.d.ts","sourceRoot":"","sources":["../../../../src/core/graph/builder/SwitchBuilder.ts"],"names":[],"mappings":"AAeA,OAAO,EAAE,UAAU,EAAE,MAAM,eAAe,CAAC;AAC3C,OAAO,EAAE,gBAAgB,EAAE,aAAa,EAAE,MAAM,+BAA+B,CAAC;AAEhF,OAAO,EAAE,YAAY,EAAsC,MAAM,cAAc,CAAC;AAKhF;;GAEG;AACH,qBAAa,aAAa;IACf,WAAW,CACd,sBAAsB,EAAE,GAAG,CAAC,YAAY,EAAE,UAAU,CAAC,EACrD,0BAA0B,EAAE,YAAY,EAAE,EAC1C,gCAAgC,EAAE,aAAa,EAAE,EAAE,EACnD,gBAAgB,EAAE,gBAAgB,EAClC,aAAa,EAAE,GAAG,CAAC,UAAU,CAAC,GAC/B,IAAI;IA0CP,OAAO,CAAC,wBAAwB;IAwChC,OAAO,CAAC,uBAAuB;CAwDlC"}
@@ -109,7 +109,17 @@ class SwitchBuilder {
109
109
  const expectedSuccessorsOfCaseIfBlock = [];
110
110
  const defaultStmtBuilder = switchStmtBuilder.default;
111
111
  if (defaultStmtBuilder && defaultStmtBuilder.block) {
112
- expectedSuccessorsOfCaseIfBlock.push(...successorsOfBlockContainSwitch.splice(-1, 1));
112
+ // default may appear before later cases; identify by block identity, not list position
113
+ if (!blockBuilderToCfgBlock.has(defaultStmtBuilder.block)) {
114
+ logger.error(`can't find basicBlock corresponding to the default blockBuilder.`);
115
+ return false;
116
+ }
117
+ const defaultBasicBlock = blockBuilderToCfgBlock.get(defaultStmtBuilder.block);
118
+ const defaultIndex = successorsOfBlockContainSwitch.indexOf(defaultBasicBlock);
119
+ if (defaultIndex !== -1) {
120
+ successorsOfBlockContainSwitch.splice(defaultIndex, 1);
121
+ }
122
+ expectedSuccessorsOfCaseIfBlock.push(defaultBasicBlock);
113
123
  }
114
124
  else {
115
125
  const afterSwitchStmtBuilder = switchStmtBuilder.afterSwitch;
@@ -94,6 +94,11 @@ export declare class ViewTreeImpl extends TreeNodeStack implements ViewTree {
94
94
  private buildViewStatus;
95
95
  private stateValues;
96
96
  private fieldTypes;
97
+ private containsBuilderParam;
98
+ private static readonly buildingTrees;
99
+ static isBuilding(sig: MethodSignature | ClassSignature): boolean;
100
+ static beginBatchBuild(): void;
101
+ static endBatchBuild(): void;
97
102
  /**
98
103
  * @internal
99
104
  */
@@ -158,6 +163,8 @@ export declare class ViewTreeImpl extends TreeNodeStack implements ViewTree {
158
163
  * @internal
159
164
  */
160
165
  private addCustomComponentNode;
166
+ /** CustomComponent leaf when ArkClass is gone; signature from Scene.customComponentMap. */
167
+ private addCustomComponentStubNode;
161
168
  private cloneBuilderParamNode;
162
169
  /**
163
170
  * @internal
@@ -175,15 +182,18 @@ export declare class ViewTreeImpl extends TreeNodeStack implements ViewTree {
175
182
  private forEachCreationParser;
176
183
  private repeatCreationParser;
177
184
  private ifBranchCreationParser;
178
- private COMPONENT_CREATE_PARSERS;
179
- COMPONENT_BEHAVIOR_PARSERS: Map<string, (local2Node: Map<Local, ViewTreeNodeImpl>, stmt: Stmt, expr: ArkInstanceInvokeExpr) => ViewTreeNodeImpl | undefined>;
185
+ private _createParsers;
186
+ private get COMPONENT_CREATE_PARSERS();
187
+ private _behaviorParsers;
188
+ get COMPONENT_BEHAVIOR_PARSERS(): Map<string, (local2Node: Map<Local, ViewTreeNodeImpl>, stmt: Stmt, expr: ArkInstanceInvokeExpr) => ViewTreeNodeImpl | undefined>;
180
189
  private componentCreateParse;
181
190
  private parseStaticInvokeExpr;
182
191
  /**
183
192
  * $temp4.margin({ top: 20 });
184
- * @param viewTree
185
193
  * @param local2Node
194
+ * @param stmt
186
195
  * @param expr
196
+ * @param shouldPush
187
197
  */
188
198
  private parseInstanceInvokeExpr;
189
199
  private parsePtrInvokeExpr;
@@ -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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"}