arkanalyzer 1.0.5

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 (322) hide show
  1. package/LICENSE +201 -0
  2. package/README.en.md +88 -0
  3. package/README.md +98 -0
  4. package/docs/HowToCreatePR.md +55 -0
  5. package/docs/HowToHandleIssues.md +155 -0
  6. package/docs/quickstart.pdf +0 -0
  7. package/lib/Config.d.ts +26 -0
  8. package/lib/Config.d.ts.map +1 -0
  9. package/lib/Config.js +128 -0
  10. package/lib/Scene.d.ts +125 -0
  11. package/lib/Scene.d.ts.map +1 -0
  12. package/lib/Scene.js +762 -0
  13. package/lib/callgraph/algorithm/AbstractAnalysis.d.ts +28 -0
  14. package/lib/callgraph/algorithm/AbstractAnalysis.d.ts.map +1 -0
  15. package/lib/callgraph/algorithm/AbstractAnalysis.js +137 -0
  16. package/lib/callgraph/algorithm/ClassHierarchyAnalysis.d.ts +11 -0
  17. package/lib/callgraph/algorithm/ClassHierarchyAnalysis.d.ts.map +1 -0
  18. package/lib/callgraph/algorithm/ClassHierarchyAnalysis.js +71 -0
  19. package/lib/callgraph/algorithm/RapidTypeAnalysis.d.ts +16 -0
  20. package/lib/callgraph/algorithm/RapidTypeAnalysis.d.ts.map +1 -0
  21. package/lib/callgraph/algorithm/RapidTypeAnalysis.js +147 -0
  22. package/lib/callgraph/common/Statistics.d.ts +58 -0
  23. package/lib/callgraph/common/Statistics.d.ts.map +1 -0
  24. package/lib/callgraph/common/Statistics.js +203 -0
  25. package/lib/callgraph/model/BaseGraph.d.ts +62 -0
  26. package/lib/callgraph/model/BaseGraph.d.ts.map +1 -0
  27. package/lib/callgraph/model/BaseGraph.js +158 -0
  28. package/lib/callgraph/model/CallGraph.d.ts +94 -0
  29. package/lib/callgraph/model/CallGraph.d.ts.map +1 -0
  30. package/lib/callgraph/model/CallGraph.js +339 -0
  31. package/lib/callgraph/model/builder/CallGraphBuilder.d.ts +16 -0
  32. package/lib/callgraph/model/builder/CallGraphBuilder.d.ts.map +1 -0
  33. package/lib/callgraph/model/builder/CallGraphBuilder.js +106 -0
  34. package/lib/callgraph/pointerAnalysis/Context.d.ts +38 -0
  35. package/lib/callgraph/pointerAnalysis/Context.d.ts.map +1 -0
  36. package/lib/callgraph/pointerAnalysis/Context.js +156 -0
  37. package/lib/callgraph/pointerAnalysis/DummyCallCreator.d.ts +23 -0
  38. package/lib/callgraph/pointerAnalysis/DummyCallCreator.d.ts.map +1 -0
  39. package/lib/callgraph/pointerAnalysis/DummyCallCreator.js +104 -0
  40. package/lib/callgraph/pointerAnalysis/Pag.d.ts +209 -0
  41. package/lib/callgraph/pointerAnalysis/Pag.d.ts.map +1 -0
  42. package/lib/callgraph/pointerAnalysis/Pag.js +774 -0
  43. package/lib/callgraph/pointerAnalysis/PagBuilder.d.ts +88 -0
  44. package/lib/callgraph/pointerAnalysis/PagBuilder.d.ts.map +1 -0
  45. package/lib/callgraph/pointerAnalysis/PagBuilder.js +821 -0
  46. package/lib/callgraph/pointerAnalysis/PointerAnalysis.d.ts +64 -0
  47. package/lib/callgraph/pointerAnalysis/PointerAnalysis.d.ts.map +1 -0
  48. package/lib/callgraph/pointerAnalysis/PointerAnalysis.js +502 -0
  49. package/lib/callgraph/pointerAnalysis/PointerAnalysisConfig.d.ts +9 -0
  50. package/lib/callgraph/pointerAnalysis/PointerAnalysisConfig.d.ts.map +1 -0
  51. package/lib/callgraph/pointerAnalysis/PointerAnalysisConfig.js +57 -0
  52. package/lib/callgraph/pointerAnalysis/PtsDS.d.ts +58 -0
  53. package/lib/callgraph/pointerAnalysis/PtsDS.d.ts.map +1 -0
  54. package/lib/callgraph/pointerAnalysis/PtsDS.js +234 -0
  55. package/lib/core/base/Constant.d.ts +17 -0
  56. package/lib/core/base/Constant.d.ts.map +1 -0
  57. package/lib/core/base/Constant.js +53 -0
  58. package/lib/core/base/Decorator.d.ts +15 -0
  59. package/lib/core/base/Decorator.d.ts.map +1 -0
  60. package/lib/core/base/Decorator.js +43 -0
  61. package/lib/core/base/DefUseChain.d.ts +9 -0
  62. package/lib/core/base/DefUseChain.d.ts.map +1 -0
  63. package/lib/core/base/DefUseChain.js +25 -0
  64. package/lib/core/base/Expr.d.ts +219 -0
  65. package/lib/core/base/Expr.d.ts.map +1 -0
  66. package/lib/core/base/Expr.js +896 -0
  67. package/lib/core/base/Local.d.ts +40 -0
  68. package/lib/core/base/Local.d.ts.map +1 -0
  69. package/lib/core/base/Local.js +101 -0
  70. package/lib/core/base/Position.d.ts +39 -0
  71. package/lib/core/base/Position.d.ts.map +1 -0
  72. package/lib/core/base/Position.js +86 -0
  73. package/lib/core/base/Ref.d.ts +75 -0
  74. package/lib/core/base/Ref.d.ts.map +1 -0
  75. package/lib/core/base/Ref.js +286 -0
  76. package/lib/core/base/Stmt.d.ts +109 -0
  77. package/lib/core/base/Stmt.d.ts.map +1 -0
  78. package/lib/core/base/Stmt.js +374 -0
  79. package/lib/core/base/Type.d.ts +220 -0
  80. package/lib/core/base/Type.d.ts.map +1 -0
  81. package/lib/core/base/Type.js +477 -0
  82. package/lib/core/base/Value.d.ts +11 -0
  83. package/lib/core/base/Value.d.ts.map +1 -0
  84. package/lib/core/base/Value.js +16 -0
  85. package/lib/core/common/ArkIRTransformer.d.ts +101 -0
  86. package/lib/core/common/ArkIRTransformer.d.ts.map +1 -0
  87. package/lib/core/common/ArkIRTransformer.js +1674 -0
  88. package/lib/core/common/BodyBuilder.d.ts +10 -0
  89. package/lib/core/common/BodyBuilder.d.ts.map +1 -0
  90. package/lib/core/common/BodyBuilder.js +34 -0
  91. package/lib/core/common/Builtin.d.ts +35 -0
  92. package/lib/core/common/Builtin.d.ts.map +1 -0
  93. package/lib/core/common/Builtin.js +78 -0
  94. package/lib/core/common/CfgBuilder.d.ts +136 -0
  95. package/lib/core/common/CfgBuilder.d.ts.map +1 -0
  96. package/lib/core/common/CfgBuilder.js +1241 -0
  97. package/lib/core/common/Const.d.ts +15 -0
  98. package/lib/core/common/Const.d.ts.map +1 -0
  99. package/lib/core/common/Const.js +34 -0
  100. package/lib/core/common/DummyMainCreater.d.ts +48 -0
  101. package/lib/core/common/DummyMainCreater.d.ts.map +1 -0
  102. package/lib/core/common/DummyMainCreater.js +433 -0
  103. package/lib/core/common/EtsConst.d.ts +65 -0
  104. package/lib/core/common/EtsConst.d.ts.map +1 -0
  105. package/lib/core/common/EtsConst.js +918 -0
  106. package/lib/core/common/ExprUseReplacer.d.ts +18 -0
  107. package/lib/core/common/ExprUseReplacer.d.ts.map +1 -0
  108. package/lib/core/common/ExprUseReplacer.js +88 -0
  109. package/lib/core/common/IRUtils.d.ts +7 -0
  110. package/lib/core/common/IRUtils.d.ts.map +1 -0
  111. package/lib/core/common/IRUtils.js +39 -0
  112. package/lib/core/common/ModelUtils.d.ts +61 -0
  113. package/lib/core/common/ModelUtils.d.ts.map +1 -0
  114. package/lib/core/common/ModelUtils.js +628 -0
  115. package/lib/core/common/RefUseReplacer.d.ts +14 -0
  116. package/lib/core/common/RefUseReplacer.d.ts.map +1 -0
  117. package/lib/core/common/RefUseReplacer.js +50 -0
  118. package/lib/core/common/StmtUseReplacer.d.ts +16 -0
  119. package/lib/core/common/StmtUseReplacer.d.ts.map +1 -0
  120. package/lib/core/common/StmtUseReplacer.js +88 -0
  121. package/lib/core/common/TSConst.d.ts +11 -0
  122. package/lib/core/common/TSConst.d.ts.map +1 -0
  123. package/lib/core/common/TSConst.js +28 -0
  124. package/lib/core/common/TypeInference.d.ts +44 -0
  125. package/lib/core/common/TypeInference.d.ts.map +1 -0
  126. package/lib/core/common/TypeInference.js +519 -0
  127. package/lib/core/common/ValueUtil.d.ts +17 -0
  128. package/lib/core/common/ValueUtil.d.ts.map +1 -0
  129. package/lib/core/common/ValueUtil.js +71 -0
  130. package/lib/core/common/VisibleValue.d.ts +37 -0
  131. package/lib/core/common/VisibleValue.d.ts.map +1 -0
  132. package/lib/core/common/VisibleValue.js +212 -0
  133. package/lib/core/dataflow/DataflowProblem.d.ts +21 -0
  134. package/lib/core/dataflow/DataflowProblem.d.ts.map +1 -0
  135. package/lib/core/dataflow/DataflowProblem.js +33 -0
  136. package/lib/core/dataflow/DataflowResult.d.ts +8 -0
  137. package/lib/core/dataflow/DataflowResult.d.ts.map +1 -0
  138. package/lib/core/dataflow/DataflowResult.js +26 -0
  139. package/lib/core/dataflow/DataflowSolver.d.ts +40 -0
  140. package/lib/core/dataflow/DataflowSolver.d.ts.map +1 -0
  141. package/lib/core/dataflow/DataflowSolver.js +318 -0
  142. package/lib/core/dataflow/Edge.d.ts +16 -0
  143. package/lib/core/dataflow/Edge.d.ts.map +1 -0
  144. package/lib/core/dataflow/Edge.js +40 -0
  145. package/lib/core/dataflow/Fact.d.ts +7 -0
  146. package/lib/core/dataflow/Fact.d.ts.map +1 -0
  147. package/lib/core/dataflow/Fact.js +24 -0
  148. package/lib/core/dataflow/TiantAnalysis.d.ts +37 -0
  149. package/lib/core/dataflow/TiantAnalysis.d.ts.map +1 -0
  150. package/lib/core/dataflow/TiantAnalysis.js +326 -0
  151. package/lib/core/dataflow/UndefinedVariable.d.ts +32 -0
  152. package/lib/core/dataflow/UndefinedVariable.d.ts.map +1 -0
  153. package/lib/core/dataflow/UndefinedVariable.js +235 -0
  154. package/lib/core/dataflow/Util.d.ts +8 -0
  155. package/lib/core/dataflow/Util.d.ts.map +1 -0
  156. package/lib/core/dataflow/Util.js +137 -0
  157. package/lib/core/graph/BasicBlock.d.ts +26 -0
  158. package/lib/core/graph/BasicBlock.d.ts.map +1 -0
  159. package/lib/core/graph/BasicBlock.js +92 -0
  160. package/lib/core/graph/Cfg.d.ts +29 -0
  161. package/lib/core/graph/Cfg.d.ts.map +1 -0
  162. package/lib/core/graph/Cfg.js +154 -0
  163. package/lib/core/graph/DominanceFinder.d.ts +16 -0
  164. package/lib/core/graph/DominanceFinder.d.ts.map +1 -0
  165. package/lib/core/graph/DominanceFinder.js +121 -0
  166. package/lib/core/graph/DominanceTree.d.ts +13 -0
  167. package/lib/core/graph/DominanceTree.d.ts.map +1 -0
  168. package/lib/core/graph/DominanceTree.js +70 -0
  169. package/lib/core/graph/ViewTree.d.ts +115 -0
  170. package/lib/core/graph/ViewTree.d.ts.map +1 -0
  171. package/lib/core/graph/ViewTree.js +16 -0
  172. package/lib/core/graph/builder/ViewTreeBuilder.d.ts +204 -0
  173. package/lib/core/graph/builder/ViewTreeBuilder.d.ts.map +1 -0
  174. package/lib/core/graph/builder/ViewTreeBuilder.js +1046 -0
  175. package/lib/core/model/ArkBody.d.ts +22 -0
  176. package/lib/core/model/ArkBody.d.ts.map +1 -0
  177. package/lib/core/model/ArkBody.js +63 -0
  178. package/lib/core/model/ArkClass.d.ts +110 -0
  179. package/lib/core/model/ArkClass.d.ts.map +1 -0
  180. package/lib/core/model/ArkClass.js +315 -0
  181. package/lib/core/model/ArkExport.d.ts +70 -0
  182. package/lib/core/model/ArkExport.d.ts.map +1 -0
  183. package/lib/core/model/ArkExport.js +143 -0
  184. package/lib/core/model/ArkField.d.ts +60 -0
  185. package/lib/core/model/ArkField.d.ts.map +1 -0
  186. package/lib/core/model/ArkField.js +157 -0
  187. package/lib/core/model/ArkFile.d.ts +62 -0
  188. package/lib/core/model/ArkFile.d.ts.map +1 -0
  189. package/lib/core/model/ArkFile.js +160 -0
  190. package/lib/core/model/ArkImport.d.ts +43 -0
  191. package/lib/core/model/ArkImport.d.ts.map +1 -0
  192. package/lib/core/model/ArkImport.js +109 -0
  193. package/lib/core/model/ArkMethod.d.ts +76 -0
  194. package/lib/core/model/ArkMethod.d.ts.map +1 -0
  195. package/lib/core/model/ArkMethod.js +235 -0
  196. package/lib/core/model/ArkNamespace.d.ts +65 -0
  197. package/lib/core/model/ArkNamespace.d.ts.map +1 -0
  198. package/lib/core/model/ArkNamespace.js +182 -0
  199. package/lib/core/model/ArkSignature.d.ts +98 -0
  200. package/lib/core/model/ArkSignature.d.ts.map +1 -0
  201. package/lib/core/model/ArkSignature.js +281 -0
  202. package/lib/core/model/builder/ArkClassBuilder.d.ts +13 -0
  203. package/lib/core/model/builder/ArkClassBuilder.d.ts.map +1 -0
  204. package/lib/core/model/builder/ArkClassBuilder.js +422 -0
  205. package/lib/core/model/builder/ArkExportBuilder.d.ts +25 -0
  206. package/lib/core/model/builder/ArkExportBuilder.d.ts.map +1 -0
  207. package/lib/core/model/builder/ArkExportBuilder.js +207 -0
  208. package/lib/core/model/builder/ArkFieldBuilder.d.ts +9 -0
  209. package/lib/core/model/builder/ArkFieldBuilder.d.ts.map +1 -0
  210. package/lib/core/model/builder/ArkFieldBuilder.js +189 -0
  211. package/lib/core/model/builder/ArkFileBuilder.d.ts +10 -0
  212. package/lib/core/model/builder/ArkFileBuilder.d.ts.map +1 -0
  213. package/lib/core/model/builder/ArkFileBuilder.js +164 -0
  214. package/lib/core/model/builder/ArkImportBuilder.d.ts +4 -0
  215. package/lib/core/model/builder/ArkImportBuilder.d.ts.map +1 -0
  216. package/lib/core/model/builder/ArkImportBuilder.js +125 -0
  217. package/lib/core/model/builder/ArkMethodBuilder.d.ts +60 -0
  218. package/lib/core/model/builder/ArkMethodBuilder.d.ts.map +1 -0
  219. package/lib/core/model/builder/ArkMethodBuilder.js +419 -0
  220. package/lib/core/model/builder/ArkNamespaceBuilder.d.ts +5 -0
  221. package/lib/core/model/builder/ArkNamespaceBuilder.d.ts.map +1 -0
  222. package/lib/core/model/builder/ArkNamespaceBuilder.js +171 -0
  223. package/lib/core/model/builder/ArkSignatureBuilder.d.ts +9 -0
  224. package/lib/core/model/builder/ArkSignatureBuilder.d.ts.map +1 -0
  225. package/lib/core/model/builder/ArkSignatureBuilder.js +40 -0
  226. package/lib/core/model/builder/builderUtils.d.ts +18 -0
  227. package/lib/core/model/builder/builderUtils.d.ts.map +1 -0
  228. package/lib/core/model/builder/builderUtils.js +449 -0
  229. package/lib/index.d.ts +77 -0
  230. package/lib/index.d.ts.map +1 -0
  231. package/lib/index.js +190 -0
  232. package/lib/save/ArkStream.d.ts +24 -0
  233. package/lib/save/ArkStream.d.ts.map +1 -0
  234. package/lib/save/ArkStream.js +83 -0
  235. package/lib/save/DotPrinter.d.ts +48 -0
  236. package/lib/save/DotPrinter.d.ts.map +1 -0
  237. package/lib/save/DotPrinter.js +229 -0
  238. package/lib/save/GraphPrinter.d.ts +17 -0
  239. package/lib/save/GraphPrinter.d.ts.map +1 -0
  240. package/lib/save/GraphPrinter.js +135 -0
  241. package/lib/save/JsonPrinter.d.ts +28 -0
  242. package/lib/save/JsonPrinter.d.ts.map +1 -0
  243. package/lib/save/JsonPrinter.js +511 -0
  244. package/lib/save/Printer.d.ts +17 -0
  245. package/lib/save/Printer.d.ts.map +1 -0
  246. package/lib/save/Printer.js +27 -0
  247. package/lib/save/PrinterBuilder.d.ts +38 -0
  248. package/lib/save/PrinterBuilder.d.ts.map +1 -0
  249. package/lib/save/PrinterBuilder.js +102 -0
  250. package/lib/save/serializeArkIR.d.ts +3 -0
  251. package/lib/save/serializeArkIR.d.ts.map +1 -0
  252. package/lib/save/serializeArkIR.js +166 -0
  253. package/lib/save/source/SourceBase.d.ts +32 -0
  254. package/lib/save/source/SourceBase.d.ts.map +1 -0
  255. package/lib/save/source/SourceBase.js +93 -0
  256. package/lib/save/source/SourceBody.d.ts +60 -0
  257. package/lib/save/source/SourceBody.d.ts.map +1 -0
  258. package/lib/save/source/SourceBody.js +292 -0
  259. package/lib/save/source/SourceClass.d.ts +27 -0
  260. package/lib/save/source/SourceClass.d.ts.map +1 -0
  261. package/lib/save/source/SourceClass.js +202 -0
  262. package/lib/save/source/SourceField.d.ts +15 -0
  263. package/lib/save/source/SourceField.d.ts.map +1 -0
  264. package/lib/save/source/SourceField.js +68 -0
  265. package/lib/save/source/SourceFilePrinter.d.ts +14 -0
  266. package/lib/save/source/SourceFilePrinter.d.ts.map +1 -0
  267. package/lib/save/source/SourceFilePrinter.js +73 -0
  268. package/lib/save/source/SourceMethod.d.ts +24 -0
  269. package/lib/save/source/SourceMethod.d.ts.map +1 -0
  270. package/lib/save/source/SourceMethod.js +170 -0
  271. package/lib/save/source/SourceModule.d.ts +18 -0
  272. package/lib/save/source/SourceModule.d.ts.map +1 -0
  273. package/lib/save/source/SourceModule.js +120 -0
  274. package/lib/save/source/SourceNamespace.d.ts +13 -0
  275. package/lib/save/source/SourceNamespace.d.ts.map +1 -0
  276. package/lib/save/source/SourceNamespace.js +80 -0
  277. package/lib/save/source/SourceStmt.d.ts +172 -0
  278. package/lib/save/source/SourceStmt.d.ts.map +1 -0
  279. package/lib/save/source/SourceStmt.js +757 -0
  280. package/lib/save/source/SourceTransformer.d.ts +37 -0
  281. package/lib/save/source/SourceTransformer.d.ts.map +1 -0
  282. package/lib/save/source/SourceTransformer.js +338 -0
  283. package/lib/save/source/SourceUtils.d.ts +25 -0
  284. package/lib/save/source/SourceUtils.d.ts.map +1 -0
  285. package/lib/save/source/SourceUtils.js +201 -0
  286. package/lib/transformer/FunctionTransformer.d.ts +3 -0
  287. package/lib/transformer/FunctionTransformer.d.ts.map +1 -0
  288. package/lib/transformer/FunctionTransformer.js +17 -0
  289. package/lib/transformer/SceneTransformer.d.ts +3 -0
  290. package/lib/transformer/SceneTransformer.d.ts.map +1 -0
  291. package/lib/transformer/SceneTransformer.js +17 -0
  292. package/lib/transformer/StaticSingleAssignmentFormer.d.ts +13 -0
  293. package/lib/transformer/StaticSingleAssignmentFormer.d.ts.map +1 -0
  294. package/lib/transformer/StaticSingleAssignmentFormer.js +259 -0
  295. package/lib/transformer/Transformer.d.ts +7 -0
  296. package/lib/transformer/Transformer.d.ts.map +1 -0
  297. package/lib/transformer/Transformer.js +22 -0
  298. package/lib/utils/CfgStructualAnalysis.d.ts +93 -0
  299. package/lib/utils/CfgStructualAnalysis.d.ts.map +1 -0
  300. package/lib/utils/CfgStructualAnalysis.js +955 -0
  301. package/lib/utils/FileUtils.d.ts +18 -0
  302. package/lib/utils/FileUtils.d.ts.map +1 -0
  303. package/lib/utils/FileUtils.js +131 -0
  304. package/lib/utils/callGraphUtils.d.ts +31 -0
  305. package/lib/utils/callGraphUtils.d.ts.map +1 -0
  306. package/lib/utils/callGraphUtils.js +208 -0
  307. package/lib/utils/entryMethodUtils.d.ts +16 -0
  308. package/lib/utils/entryMethodUtils.d.ts.map +1 -0
  309. package/lib/utils/entryMethodUtils.js +139 -0
  310. package/lib/utils/getAllFiles.d.ts +10 -0
  311. package/lib/utils/getAllFiles.d.ts.map +1 -0
  312. package/lib/utils/getAllFiles.js +91 -0
  313. package/lib/utils/json5parser.d.ts +7 -0
  314. package/lib/utils/json5parser.d.ts.map +1 -0
  315. package/lib/utils/json5parser.js +146 -0
  316. package/lib/utils/logger.d.ts +19 -0
  317. package/lib/utils/logger.d.ts.map +1 -0
  318. package/lib/utils/logger.js +90 -0
  319. package/lib/utils/pathTransfer.d.ts +2 -0
  320. package/lib/utils/pathTransfer.d.ts.map +1 -0
  321. package/lib/utils/pathTransfer.js +25 -0
  322. package/package.json +29 -0
@@ -0,0 +1,203 @@
1
+ "use strict";
2
+ /*
3
+ * Copyright (c) 2024 Huawei Device Co., Ltd.
4
+ * Licensed under the Apache License, Version 2.0 (the "License");
5
+ * you may not use this file except in compliance with the License.
6
+ * You may obtain a copy of the License at
7
+ *
8
+ * http://www.apache.org/licenses/LICENSE-2.0
9
+ *
10
+ * Unless required by applicable law or agreed to in writing, software
11
+ * distributed under the License is distributed on an "AS IS" BASIS,
12
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
13
+ * See the License for the specific language governing permissions and
14
+ * limitations under the License.
15
+ */
16
+ Object.defineProperty(exports, "__esModule", { value: true });
17
+ exports.CGStat = exports.PAGStat = exports.PTAStat = void 0;
18
+ const Stmt_1 = require("../../core/base/Stmt");
19
+ const Type_1 = require("../../core/base/Type");
20
+ const CallGraph_1 = require("../model/CallGraph");
21
+ class StatTraits {
22
+ getStat() {
23
+ return '';
24
+ }
25
+ printStat() {
26
+ console.log(this.getStat());
27
+ }
28
+ }
29
+ class PTAStat {
30
+ constructor(pta) {
31
+ this.numProcessedAddr = 0;
32
+ this.numProcessedCopy = 0;
33
+ this.numProcessedLoad = 0;
34
+ this.numProcessedWrite = 0;
35
+ this.numProcessedThis = 0;
36
+ this.numRealWrite = 0;
37
+ this.numRealLoad = 0;
38
+ this.numUnhandledFun = 0;
39
+ this.numTotalValuesInHandedFun = 0;
40
+ this.numTotalHandledValue = 0;
41
+ // Original type is UnknownType but inferred by PTA
42
+ this.numInferedUnknownValue = 0;
43
+ // Original type is not UnknownType and inferred with different type by PTA
44
+ this.numInferedDiffTypeValue = 0;
45
+ // Total number of values in the functions visited by PTA
46
+ this.totalValuesInVisitedFunc = 0;
47
+ // Original type is UnkonwnType and not inferred by PTA as well
48
+ this.numNotInferedUnknownValue = 0;
49
+ this.numUnhandledFunc = 0;
50
+ this.iterTimes = 0;
51
+ this.TotalTime = 0;
52
+ this.startTime = 0;
53
+ this.endTime = 0;
54
+ this.rssUsed = 0;
55
+ this.heapUsed = 0;
56
+ this.pta = pta;
57
+ }
58
+ startStat() {
59
+ this.startTime = this.getNow();
60
+ this.startMemUsage = process.memoryUsage();
61
+ }
62
+ endStat() {
63
+ this.endTime = this.getNow();
64
+ this.endMemUsage = process.memoryUsage();
65
+ this.TotalTime = (this.endTime - this.startTime) / 1000;
66
+ this.rssUsed = Number(this.endMemUsage.rss - this.startMemUsage.rss) / Number(1024 * 1024);
67
+ this.heapUsed = Number(this.endMemUsage.heapTotal - this.startMemUsage.heapTotal) / Number(1024 * 1024);
68
+ this.getInferedStat();
69
+ this.getUnhandledFuncStat();
70
+ }
71
+ getNow() {
72
+ return new Date().getTime();
73
+ }
74
+ getInferedStat() {
75
+ let inferred = Array.from(this.pta.getTypeDiffMap().keys());
76
+ let visited = new Set();
77
+ let cg = this.pta.getCallGraph();
78
+ this.pta.getHandledFuncs().forEach(funcID => {
79
+ var _a;
80
+ let f = cg.getArkMethodByFuncID(funcID);
81
+ (_a = f === null || f === void 0 ? void 0 : f.getCfg()) === null || _a === void 0 ? void 0 : _a.getStmts().forEach(s => {
82
+ if (!(s instanceof Stmt_1.ArkAssignStmt)) {
83
+ return;
84
+ }
85
+ let lop = s.getLeftOp();
86
+ if (visited.has(lop)) {
87
+ return;
88
+ }
89
+ visited.add(lop);
90
+ if (inferred.includes(lop)) {
91
+ if (lop.getType() instanceof Type_1.UnknownType) {
92
+ this.numInferedUnknownValue++;
93
+ }
94
+ else {
95
+ this.numInferedDiffTypeValue++;
96
+ }
97
+ }
98
+ else {
99
+ if (lop.getType() instanceof Type_1.UnknownType) {
100
+ this.numNotInferedUnknownValue++;
101
+ }
102
+ }
103
+ this.totalValuesInVisitedFunc++;
104
+ });
105
+ });
106
+ }
107
+ getUnhandledFuncStat() {
108
+ let cg = this.pta.getCallGraph();
109
+ this.pta.getUnhandledFuncs().forEach(funcID => {
110
+ let cgNode = cg.getNode(funcID);
111
+ if (cgNode.getIsSdkMethod()) {
112
+ return;
113
+ }
114
+ let f = cg.getArkMethodByFuncID(funcID);
115
+ if (f) {
116
+ this.numUnhandledFun++;
117
+ }
118
+ });
119
+ }
120
+ getStat() {
121
+ // TODO: get PAG stat and CG stat
122
+ let output;
123
+ output = '==== Pointer analysis Statictics: ====\n';
124
+ output = output + `Processed address\t${this.numProcessedAddr}\n`;
125
+ output = output + `Processed copy\t\t${this.numProcessedCopy}\n`;
126
+ output = output + `Processed load\t\t${this.numProcessedLoad}\n`;
127
+ output = output + `Processed write\t\t${this.numProcessedWrite}\n`;
128
+ output = output + `Real write\t\t${this.numRealWrite}\n`;
129
+ output = output + `Real load\t\t${this.numRealLoad}\n`;
130
+ output = output + `Processed This\t\t${this.numProcessedThis}\n\n`;
131
+ output = output + `Unhandled function\t${this.numUnhandledFun}\n`;
132
+ output = output + `Total values in visited function\t${this.totalValuesInVisitedFunc}\n`;
133
+ output = output + `Infered Value unknown+different type\t${this.numInferedUnknownValue}+${this.numInferedDiffTypeValue}\n\n`;
134
+ output = output + `Total Time\t\t${this.TotalTime} S\n`;
135
+ output = output + `Total iterator Times\t${this.iterTimes}\n`;
136
+ output = output + `RSS used\t\t${this.rssUsed.toFixed(3)} Mb\n`;
137
+ output = output + `Heap used\t\t${this.heapUsed.toFixed(3)} Mb\n`;
138
+ return output;
139
+ }
140
+ printStat() {
141
+ console.log(this.getStat());
142
+ }
143
+ }
144
+ exports.PTAStat = PTAStat;
145
+ class PAGStat {
146
+ constructor() {
147
+ this.numDynamicCall = 0;
148
+ this.numTotalFunction = 0;
149
+ this.numTotalNode = 0;
150
+ }
151
+ getStat() {
152
+ let output;
153
+ output = '==== PAG Statictics: ====\n';
154
+ output = output + `Dynamic call\t\t${this.numDynamicCall}\n`;
155
+ output = output + `Total function handled\t${this.numTotalFunction}\n`;
156
+ output = output + `Total PAG Nodes\t\t${this.numTotalNode}\n`;
157
+ return output;
158
+ }
159
+ printStat() {
160
+ console.log(this.getStat());
161
+ }
162
+ }
163
+ exports.PAGStat = PAGStat;
164
+ class CGStat extends StatTraits {
165
+ constructor() {
166
+ super(...arguments);
167
+ //real, vitual, intrinsic, constructor
168
+ this.numTotalNode = 0;
169
+ this.numReal = 0;
170
+ this.numVirtual = 0;
171
+ this.numIntrinsic = 0;
172
+ this.numConstructor = 0;
173
+ }
174
+ addNodeStat(kind) {
175
+ switch (kind) {
176
+ case CallGraph_1.CallGraphNodeKind.real:
177
+ this.numReal++;
178
+ break;
179
+ case CallGraph_1.CallGraphNodeKind.vitual:
180
+ this.numVirtual++;
181
+ break;
182
+ case CallGraph_1.CallGraphNodeKind.constructor:
183
+ this.numConstructor++;
184
+ break;
185
+ case CallGraph_1.CallGraphNodeKind.intrinsic:
186
+ this.numIntrinsic++;
187
+ break;
188
+ default:
189
+ }
190
+ this.numTotalNode++;
191
+ }
192
+ getStat() {
193
+ let output;
194
+ output = '==== CG Statictics: ====\n';
195
+ output = output + `Real function\t\t${this.numReal}\n`;
196
+ output = output + `Intrinsic function\t${this.numIntrinsic}\n`;
197
+ output = output + `Constructor function\t${this.numConstructor}\n`;
198
+ output = output + `Blank function\t\t${this.numVirtual}\n`;
199
+ output = output + `Total\t\t\t${this.numTotalNode}\n`;
200
+ return output;
201
+ }
202
+ }
203
+ exports.CGStat = CGStat;
@@ -0,0 +1,62 @@
1
+ export type NodeID = number;
2
+ export type Kind = number;
3
+ export interface GraphTraits {
4
+ nodesItor(): IterableIterator<BaseNode>;
5
+ getGraphName(): string;
6
+ getNode(id: NodeID): BaseNode | undefined;
7
+ }
8
+ export declare abstract class BaseEdge {
9
+ private src;
10
+ private dst;
11
+ private kind;
12
+ constructor(s: BaseNode, d: BaseNode, k: Kind);
13
+ getSrcID(): NodeID;
14
+ getDstID(): NodeID;
15
+ getSrcNode(): BaseNode;
16
+ getDstNode(): BaseNode;
17
+ getKind(): Kind;
18
+ getEndPoints(): {
19
+ src: NodeID;
20
+ dst: NodeID;
21
+ };
22
+ getDotAttr(): string;
23
+ }
24
+ export declare abstract class BaseNode {
25
+ private id;
26
+ private kind;
27
+ private inEdges;
28
+ private outEdges;
29
+ constructor(id: NodeID, k: Kind);
30
+ getID(): NodeID;
31
+ getKind(): Kind;
32
+ hasIncomingEdges(): boolean;
33
+ hasOutgoingEdges(): boolean;
34
+ hasIncomingEdge(e: BaseEdge): boolean;
35
+ hasOutgoingEdge(e: BaseEdge): boolean;
36
+ addIncomingEdge(e: BaseEdge): void;
37
+ addOutgoingEdge(e: BaseEdge): void;
38
+ removeIncomingEdge(e: BaseEdge): boolean;
39
+ removeOutgoingEdge(e: BaseEdge): boolean;
40
+ getIncomingEdge(): Set<BaseEdge>;
41
+ getOutgoingEdges(): Set<BaseEdge>;
42
+ getDotAttr(): string;
43
+ getDotLabel(): string;
44
+ }
45
+ export declare class BaseGraph implements GraphTraits {
46
+ protected edgeNum: number;
47
+ protected nodeNum: number;
48
+ protected idToNodeMap: Map<NodeID, BaseNode>;
49
+ protected edgeMarkSet: Set<string>;
50
+ constructor();
51
+ getNodeNum(): number;
52
+ nodesItor(): IterableIterator<BaseNode>;
53
+ addNode(n: BaseNode): void;
54
+ getNode(id: NodeID): BaseNode | undefined;
55
+ hasNode(id: NodeID): boolean;
56
+ removeNode(id: NodeID): boolean;
57
+ hasEdge(src: BaseNode, dst: BaseNode): boolean;
58
+ ifEdgeExisting(edge: BaseEdge): boolean;
59
+ getNodesIter(): IterableIterator<BaseNode>;
60
+ getGraphName(): string;
61
+ }
62
+ //# sourceMappingURL=BaseGraph.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"BaseGraph.d.ts","sourceRoot":"","sources":["../../../src/callgraph/model/BaseGraph.ts"],"names":[],"mappings":"AAeA,MAAM,MAAM,MAAM,GAAG,MAAM,CAAC;AAC5B,MAAM,MAAM,IAAI,GAAG,MAAM,CAAC;AAE1B,MAAM,WAAW,WAAW;IACxB,SAAS,IAAI,gBAAgB,CAAC,QAAQ,CAAC,CAAC;IACxC,YAAY,IAAI,MAAM,CAAC;IACvB,OAAO,CAAC,EAAE,EAAE,MAAM,GAAG,QAAQ,GAAG,SAAS,CAAC;CAC7C;AACD,8BAAsB,QAAQ;IAC1B,OAAO,CAAC,GAAG,CAAW;IACtB,OAAO,CAAC,GAAG,CAAW;IACtB,OAAO,CAAC,IAAI,CAAO;gBAEP,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,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,OAAO,CAAC,IAAI,CAAO;IACnB,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,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;IAIpB,WAAW,IAAI,MAAM;CAI/B;AAED,qBAAa,SAAU,YAAW,WAAW;IACzC,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;IAI1C,YAAY,IAAI,MAAM;CAGhC"}
@@ -0,0 +1,158 @@
1
+ "use strict";
2
+ /*
3
+ * Copyright (c) 2024 Huawei Device Co., Ltd.
4
+ * Licensed under the Apache License, Version 2.0 (the "License");
5
+ * you may not use this file except in compliance with the License.
6
+ * You may obtain a copy of the License at
7
+ *
8
+ * http://www.apache.org/licenses/LICENSE-2.0
9
+ *
10
+ * Unless required by applicable law or agreed to in writing, software
11
+ * distributed under the License is distributed on an "AS IS" BASIS,
12
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
13
+ * See the License for the specific language governing permissions and
14
+ * limitations under the License.
15
+ */
16
+ Object.defineProperty(exports, "__esModule", { value: true });
17
+ exports.BaseGraph = exports.BaseNode = exports.BaseEdge = void 0;
18
+ class BaseEdge {
19
+ constructor(s, d, k) {
20
+ this.src = s;
21
+ this.dst = d;
22
+ this.kind = k;
23
+ }
24
+ getSrcID() {
25
+ return this.src.getID();
26
+ }
27
+ getDstID() {
28
+ return this.dst.getID();
29
+ }
30
+ getSrcNode() {
31
+ return this.src;
32
+ }
33
+ getDstNode() {
34
+ return this.dst;
35
+ }
36
+ getKind() {
37
+ return this.kind;
38
+ }
39
+ getEndPoints() {
40
+ return {
41
+ src: this.src.getID(),
42
+ dst: this.dst.getID()
43
+ };
44
+ }
45
+ getDotAttr() {
46
+ return '';
47
+ }
48
+ }
49
+ exports.BaseEdge = BaseEdge;
50
+ class BaseNode {
51
+ constructor(id, k) {
52
+ this.inEdges = new Set();
53
+ this.outEdges = new Set();
54
+ this.id = id;
55
+ this.kind = k;
56
+ }
57
+ getID() {
58
+ return this.id;
59
+ }
60
+ getKind() {
61
+ return this.kind;
62
+ }
63
+ hasIncomingEdges() {
64
+ return (this.inEdges.size != 0);
65
+ }
66
+ hasOutgoingEdges() {
67
+ return (this.outEdges.size == 0);
68
+ }
69
+ hasIncomingEdge(e) {
70
+ return this.inEdges.has(e);
71
+ }
72
+ hasOutgoingEdge(e) {
73
+ return this.outEdges.has(e);
74
+ }
75
+ addIncomingEdge(e) {
76
+ this.inEdges.add(e);
77
+ }
78
+ addOutgoingEdge(e) {
79
+ this.outEdges.add(e);
80
+ }
81
+ removeIncomingEdge(e) {
82
+ return this.inEdges.delete(e);
83
+ }
84
+ removeOutgoingEdge(e) {
85
+ return this.outEdges.delete(e);
86
+ }
87
+ getIncomingEdge() {
88
+ return this.inEdges;
89
+ }
90
+ getOutgoingEdges() {
91
+ return this.outEdges;
92
+ }
93
+ getDotAttr() {
94
+ return 'shape=box';
95
+ }
96
+ getDotLabel() {
97
+ return '';
98
+ }
99
+ }
100
+ exports.BaseNode = BaseNode;
101
+ class BaseGraph {
102
+ constructor() {
103
+ this.edgeNum = 0;
104
+ this.nodeNum = 0;
105
+ this.idToNodeMap = new Map();
106
+ this.edgeMarkSet = new Set();
107
+ }
108
+ getNodeNum() {
109
+ return this.nodeNum;
110
+ }
111
+ nodesItor() {
112
+ return this.idToNodeMap.values();
113
+ }
114
+ addNode(n) {
115
+ this.idToNodeMap.set(n.getID(), n);
116
+ this.nodeNum++;
117
+ }
118
+ getNode(id) {
119
+ if (!this.idToNodeMap.has(id)) {
120
+ throw new Error(`Can find Node # ${id}`);
121
+ }
122
+ return this.idToNodeMap.get(id);
123
+ }
124
+ hasNode(id) {
125
+ return this.idToNodeMap.has(id);
126
+ }
127
+ removeNode(id) {
128
+ if (this.idToNodeMap.delete(id)) {
129
+ this.nodeNum--;
130
+ return true;
131
+ }
132
+ return false;
133
+ }
134
+ hasEdge(src, dst) {
135
+ for (let e of src.getOutgoingEdges()) {
136
+ if (e.getDstNode() === dst) {
137
+ return true;
138
+ }
139
+ }
140
+ return false;
141
+ }
142
+ ifEdgeExisting(edge) {
143
+ let edgeMark = `${edge.getSrcID()}-${edge.getDstID()}:${edge.getKind()}`;
144
+ if (this.edgeMarkSet.has(edgeMark)) {
145
+ return true;
146
+ }
147
+ this.edgeMarkSet.add(edgeMark);
148
+ return false;
149
+ }
150
+ getNodesIter() {
151
+ return this.idToNodeMap.values();
152
+ }
153
+ getGraphName() {
154
+ return '';
155
+ }
156
+ }
157
+ exports.BaseGraph = BaseGraph;
158
+ ;
@@ -0,0 +1,94 @@
1
+ import { MethodSignature } from '../../core/model/ArkSignature';
2
+ import { Stmt } from '../../core/base/Stmt';
3
+ import { Value } from '../../core/base/Value';
4
+ import { Scene } from '../../Scene';
5
+ import { ArkMethod } from '../../core/model/ArkMethod';
6
+ import { BaseEdge, BaseNode, BaseGraph, NodeID } from './BaseGraph';
7
+ import { ContextID } from '../pointerAnalysis/Context';
8
+ export type Method = MethodSignature;
9
+ export type CallSiteID = number;
10
+ export type FuncID = number;
11
+ export declare enum CallGraphNodeKind {
12
+ real = 0,
13
+ vitual = 1,
14
+ intrinsic = 2,
15
+ constructor = 3
16
+ }
17
+ export declare class CallSite {
18
+ callStmt: Stmt;
19
+ args: Value[] | undefined;
20
+ calleeFuncID: FuncID;
21
+ callerFuncID: FuncID;
22
+ constructor(s: Stmt, a: Value[] | undefined, ce: FuncID, cr: FuncID);
23
+ }
24
+ export declare class DynCallSite {
25
+ callerFuncID: FuncID;
26
+ callStmt: Stmt;
27
+ args: Value[] | undefined;
28
+ protentialCalleeFuncID: FuncID | undefined;
29
+ constructor(caller: FuncID, s: Stmt, a: Value[] | undefined, ptcCallee: FuncID | undefined);
30
+ }
31
+ export declare class CSCallSite extends CallSite {
32
+ cid: ContextID;
33
+ constructor(id: ContextID, cs: CallSite);
34
+ }
35
+ export declare class CallGraphEdge extends BaseEdge {
36
+ private directCalls;
37
+ private specialCalls;
38
+ private indirectCalls;
39
+ constructor(src: CallGraphNode, dst: CallGraphNode);
40
+ addDirectCallSite(stmt: Stmt): void;
41
+ addSpecialCallSite(stmt: Stmt): void;
42
+ addInDirectCallSite(stmt: Stmt): void;
43
+ getDotAttr(): string;
44
+ }
45
+ export declare class CallGraphNode extends BaseNode {
46
+ private method;
47
+ private isSdkMethod;
48
+ private isBlank;
49
+ constructor(id: number, m: Method, k?: CallGraphNodeKind);
50
+ getMethod(): Method;
51
+ setSdkMethod(v: boolean): void;
52
+ getIsSdkMethod(): boolean;
53
+ get isBlankMethod(): boolean;
54
+ set isBlankMethod(is: boolean);
55
+ getDotAttr(): string;
56
+ getDotLabel(): string;
57
+ }
58
+ export declare class CallGraph extends BaseGraph {
59
+ private scene;
60
+ private idToCallSiteMap;
61
+ private callSiteToIdMap;
62
+ private stmtToCallSitemap;
63
+ private stmtToDynCallSitemap;
64
+ private methodToCGNodeMap;
65
+ private callPairToEdgeMap;
66
+ private callSiteNum;
67
+ private entries;
68
+ private cgStat;
69
+ private dummyMainMethodID;
70
+ constructor(s: Scene);
71
+ private getCallPairString;
72
+ getCallEdgeByPair(srcID: NodeID, dstID: NodeID): CallGraphEdge | undefined;
73
+ addCallGraphNode(method: Method, kind?: CallGraphNodeKind): CallGraphNode;
74
+ removeCallGraphNode(nodeID: NodeID): void;
75
+ getCallGraphNodeByMethod(method: Method): CallGraphNode;
76
+ addDirectOrSpecialCallEdge(caller: Method, callee: Method, callStmt: Stmt, isDirectCall?: boolean): void;
77
+ removeCallGraphEdge(nodeID: NodeID): void;
78
+ addDynamicCallInfo(callStmt: Stmt, caller: Method, protentialCallee?: Method): void;
79
+ addDynamicCallEdge(callerID: NodeID, calleeID: NodeID, callStmt: Stmt): void;
80
+ getDynCallsiteByStmt(stmt: Stmt): DynCallSite | undefined;
81
+ addStmtToCallSiteMap(stmt: Stmt, cs: CallSite): boolean;
82
+ getCallSiteByStmt(stmt: Stmt): CallSite | undefined;
83
+ getDynEdges(): Map<Method, Set<Method>>;
84
+ getMethodByFuncID(id: FuncID): Method | null;
85
+ getArkMethodByFuncID(id: FuncID): ArkMethod | null;
86
+ getEntries(): FuncID[];
87
+ setEntries(n: NodeID[]): void;
88
+ dump(name: string, entry?: FuncID): void;
89
+ detectReachable(fromID: FuncID, dstID: FuncID): boolean;
90
+ printStat(): void;
91
+ setDummyMainFuncID(dummyMainMethodID: number): void;
92
+ getDummyMainFuncID(): FuncID | undefined;
93
+ }
94
+ //# sourceMappingURL=CallGraph.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"CallGraph.d.ts","sourceRoot":"","sources":["../../../src/callgraph/model/CallGraph.ts"],"names":[],"mappings":"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"}