arkanalyzer 1.0.32 → 1.0.34

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 (259) hide show
  1. package/config/arkanalyzer.json +1 -0
  2. package/lib/Config.d.ts +1 -0
  3. package/lib/Config.d.ts.map +1 -1
  4. package/lib/Config.js +26 -18
  5. package/lib/Scene.d.ts +5 -5
  6. package/lib/Scene.d.ts.map +1 -1
  7. package/lib/Scene.js +21 -19
  8. package/lib/VFG/DVFG.d.ts.map +1 -1
  9. package/lib/VFG/builder/DVFGBuilder.d.ts +2 -2
  10. package/lib/VFG/builder/DVFGBuilder.d.ts.map +1 -1
  11. package/lib/VFG/builder/DVFGBuilder.js +15 -7
  12. package/lib/callgraph/algorithm/AbstractAnalysis.d.ts +1 -0
  13. package/lib/callgraph/algorithm/AbstractAnalysis.d.ts.map +1 -1
  14. package/lib/callgraph/algorithm/AbstractAnalysis.js +24 -8
  15. package/lib/callgraph/algorithm/ClassHierarchyAnalysis.d.ts.map +1 -1
  16. package/lib/callgraph/algorithm/ClassHierarchyAnalysis.js +3 -2
  17. package/lib/callgraph/algorithm/RapidTypeAnalysis.d.ts.map +1 -1
  18. package/lib/callgraph/algorithm/RapidTypeAnalysis.js +4 -3
  19. package/lib/callgraph/common/Statistics.d.ts +9 -7
  20. package/lib/callgraph/common/Statistics.d.ts.map +1 -1
  21. package/lib/callgraph/common/Statistics.js +18 -6
  22. package/lib/callgraph/model/CallGraph.d.ts +2 -0
  23. package/lib/callgraph/model/CallGraph.d.ts.map +1 -1
  24. package/lib/callgraph/model/CallGraph.js +14 -8
  25. package/lib/callgraph/model/builder/CallGraphBuilder.d.ts +1 -0
  26. package/lib/callgraph/model/builder/CallGraphBuilder.d.ts.map +1 -1
  27. package/lib/callgraph/model/builder/CallGraphBuilder.js +9 -4
  28. package/lib/callgraph/pointerAnalysis/Context.d.ts.map +1 -1
  29. package/lib/callgraph/pointerAnalysis/Context.js +2 -2
  30. package/lib/callgraph/pointerAnalysis/DummyCallCreator.d.ts.map +1 -1
  31. package/lib/callgraph/pointerAnalysis/DummyCallCreator.js +4 -2
  32. package/lib/callgraph/pointerAnalysis/PTAUtils.d.ts.map +1 -1
  33. package/lib/callgraph/pointerAnalysis/PTAUtils.js +2 -3
  34. package/lib/callgraph/pointerAnalysis/Pag.d.ts.map +1 -1
  35. package/lib/callgraph/pointerAnalysis/Pag.js +27 -35
  36. package/lib/callgraph/pointerAnalysis/PagBuilder.d.ts.map +1 -1
  37. package/lib/callgraph/pointerAnalysis/PagBuilder.js +63 -46
  38. package/lib/callgraph/pointerAnalysis/PointerAnalysis.d.ts.map +1 -1
  39. package/lib/callgraph/pointerAnalysis/PointerAnalysis.js +12 -12
  40. package/lib/callgraph/pointerAnalysis/PointerAnalysisConfig.d.ts.map +1 -1
  41. package/lib/callgraph/pointerAnalysis/PtsDS.d.ts +1 -1
  42. package/lib/callgraph/pointerAnalysis/PtsDS.d.ts.map +1 -1
  43. package/lib/callgraph/pointerAnalysis/PtsDS.js +10 -6
  44. package/lib/core/base/Constant.js +2 -2
  45. package/lib/core/base/DefUseChain.d.ts.map +1 -1
  46. package/lib/core/base/DefUseChain.js +1 -1
  47. package/lib/core/base/Expr.d.ts.map +1 -1
  48. package/lib/core/base/Expr.js +3 -5
  49. package/lib/core/base/Local.d.ts.map +1 -1
  50. package/lib/core/base/Local.js +7 -2
  51. package/lib/core/base/Position.d.ts.map +1 -1
  52. package/lib/core/base/Position.js +1 -1
  53. package/lib/core/base/Ref.d.ts.map +1 -1
  54. package/lib/core/base/Ref.js +3 -1
  55. package/lib/core/base/Stmt.d.ts.map +1 -1
  56. package/lib/core/base/Stmt.js +1 -4
  57. package/lib/core/base/Trap.js +1 -1
  58. package/lib/core/base/Type.d.ts.map +1 -1
  59. package/lib/core/base/Type.js +2 -2
  60. package/lib/core/base/Value.d.ts +1 -1
  61. package/lib/core/base/Value.d.ts.map +1 -1
  62. package/lib/core/base/Value.js +1 -1
  63. package/lib/core/common/ArkError.js +1 -1
  64. package/lib/core/common/ArkIRTransformer.d.ts.map +1 -1
  65. package/lib/core/common/ArkIRTransformer.js +46 -36
  66. package/lib/core/common/ArkValueTransformer.d.ts.map +1 -1
  67. package/lib/core/common/ArkValueTransformer.js +295 -109
  68. package/lib/core/common/Builtin.d.ts.map +1 -1
  69. package/lib/core/common/DummyMainCreater.d.ts.map +1 -1
  70. package/lib/core/common/DummyMainCreater.js +10 -4
  71. package/lib/core/common/EtsConst.d.ts.map +1 -1
  72. package/lib/core/common/EtsConst.js +3 -12
  73. package/lib/core/common/ExprUseReplacer.js +1 -1
  74. package/lib/core/common/IRInference.d.ts.map +1 -1
  75. package/lib/core/common/IRInference.js +40 -20
  76. package/lib/core/common/IRUtils.d.ts.map +1 -1
  77. package/lib/core/common/IRUtils.js +5 -4
  78. package/lib/core/common/ModelUtils.d.ts +1 -1
  79. package/lib/core/common/ModelUtils.d.ts.map +1 -1
  80. package/lib/core/common/ModelUtils.js +40 -29
  81. package/lib/core/common/RefUseReplacer.js +1 -1
  82. package/lib/core/common/SdkUtils.d.ts +3 -0
  83. package/lib/core/common/SdkUtils.d.ts.map +1 -1
  84. package/lib/core/common/SdkUtils.js +29 -10
  85. package/lib/core/common/StmtDefReplacer.d.ts.map +1 -1
  86. package/lib/core/common/StmtDefReplacer.js +1 -1
  87. package/lib/core/common/StmtUseReplacer.d.ts.map +1 -1
  88. package/lib/core/common/StmtUseReplacer.js +1 -1
  89. package/lib/core/common/TSConst.d.ts.map +1 -1
  90. package/lib/core/common/TypeInference.d.ts.map +1 -1
  91. package/lib/core/common/TypeInference.js +25 -17
  92. package/lib/core/common/ValueUtil.d.ts.map +1 -1
  93. package/lib/core/common/ValueUtil.js +1 -1
  94. package/lib/core/common/VisibleValue.d.ts.map +1 -1
  95. package/lib/core/common/VisibleValue.js +5 -5
  96. package/lib/core/dataflow/DataflowProblem.d.ts.map +1 -1
  97. package/lib/core/dataflow/DataflowProblem.js +1 -1
  98. package/lib/core/dataflow/DataflowResult.js +1 -1
  99. package/lib/core/dataflow/DataflowSolver.d.ts.map +1 -1
  100. package/lib/core/dataflow/DataflowSolver.js +5 -3
  101. package/lib/core/dataflow/Edge.d.ts.map +1 -1
  102. package/lib/core/dataflow/Edge.js +1 -1
  103. package/lib/core/dataflow/Fact.js +1 -1
  104. package/lib/core/dataflow/GenericDataFlow.js +5 -5
  105. package/lib/core/dataflow/ReachingDef.js +4 -4
  106. package/lib/core/dataflow/UndefinedVariable.d.ts.map +1 -1
  107. package/lib/core/dataflow/UndefinedVariable.js +17 -13
  108. package/lib/core/dataflow/Util.d.ts +4 -4
  109. package/lib/core/dataflow/Util.d.ts.map +1 -1
  110. package/lib/core/dataflow/Util.js +3 -5
  111. package/lib/core/graph/BaseExplicitGraph.d.ts.map +1 -1
  112. package/lib/core/graph/BaseExplicitGraph.js +1 -1
  113. package/lib/core/graph/BaseImplicitGraph.d.ts.map +1 -1
  114. package/lib/core/graph/BasicBlock.d.ts.map +1 -1
  115. package/lib/core/graph/BasicBlock.js +11 -7
  116. package/lib/core/graph/Cfg.d.ts.map +1 -1
  117. package/lib/core/graph/Cfg.js +10 -4
  118. package/lib/core/graph/DependsGraph.d.ts.map +1 -1
  119. package/lib/core/graph/DependsGraph.js +1 -1
  120. package/lib/core/graph/DominanceFinder.d.ts.map +1 -1
  121. package/lib/core/graph/DominanceFinder.js +4 -4
  122. package/lib/core/graph/DominanceTree.js +1 -1
  123. package/lib/core/graph/GraphTraits.js +1 -1
  124. package/lib/core/graph/Scc.js +2 -2
  125. package/lib/core/graph/ViewTree.js +1 -1
  126. package/lib/core/graph/builder/CfgBuilder.d.ts.map +1 -1
  127. package/lib/core/graph/builder/CfgBuilder.js +22 -13
  128. package/lib/core/graph/builder/ConditionBuilder.d.ts.map +1 -1
  129. package/lib/core/graph/builder/ConditionBuilder.js +21 -22
  130. package/lib/core/graph/builder/LoopBuilder.d.ts.map +1 -1
  131. package/lib/core/graph/builder/LoopBuilder.js +13 -10
  132. package/lib/core/graph/builder/SwitchBuilder.d.ts.map +1 -1
  133. package/lib/core/graph/builder/SwitchBuilder.js +7 -4
  134. package/lib/core/graph/builder/TrapBuilder.d.ts.map +1 -1
  135. package/lib/core/graph/builder/TrapBuilder.js +4 -3
  136. package/lib/core/graph/builder/ViewTreeBuilder.d.ts.map +1 -1
  137. package/lib/core/graph/builder/ViewTreeBuilder.js +18 -19
  138. package/lib/core/model/ArkBaseModel.d.ts.map +1 -1
  139. package/lib/core/model/ArkBaseModel.js +8 -5
  140. package/lib/core/model/ArkBody.d.ts +1 -0
  141. package/lib/core/model/ArkBody.d.ts.map +1 -1
  142. package/lib/core/model/ArkBody.js +11 -1
  143. package/lib/core/model/ArkClass.d.ts.map +1 -1
  144. package/lib/core/model/ArkClass.js +3 -5
  145. package/lib/core/model/ArkExport.d.ts +4 -0
  146. package/lib/core/model/ArkExport.d.ts.map +1 -1
  147. package/lib/core/model/ArkExport.js +8 -1
  148. package/lib/core/model/ArkField.d.ts.map +1 -1
  149. package/lib/core/model/ArkField.js +2 -2
  150. package/lib/core/model/ArkFile.d.ts +1 -0
  151. package/lib/core/model/ArkFile.d.ts.map +1 -1
  152. package/lib/core/model/ArkFile.js +21 -6
  153. package/lib/core/model/ArkImport.d.ts.map +1 -1
  154. package/lib/core/model/ArkImport.js +1 -1
  155. package/lib/core/model/ArkMetadata.d.ts.map +1 -1
  156. package/lib/core/model/ArkMetadata.js +1 -1
  157. package/lib/core/model/ArkMethod.d.ts +6 -5
  158. package/lib/core/model/ArkMethod.d.ts.map +1 -1
  159. package/lib/core/model/ArkMethod.js +27 -13
  160. package/lib/core/model/ArkNamespace.d.ts +1 -1
  161. package/lib/core/model/ArkNamespace.d.ts.map +1 -1
  162. package/lib/core/model/ArkNamespace.js +5 -6
  163. package/lib/core/model/ArkSignature.d.ts +4 -2
  164. package/lib/core/model/ArkSignature.d.ts.map +1 -1
  165. package/lib/core/model/ArkSignature.js +17 -17
  166. package/lib/core/model/builder/ArkClassBuilder.d.ts.map +1 -1
  167. package/lib/core/model/builder/ArkClassBuilder.js +15 -16
  168. package/lib/core/model/builder/ArkExportBuilder.d.ts +2 -1
  169. package/lib/core/model/builder/ArkExportBuilder.d.ts.map +1 -1
  170. package/lib/core/model/builder/ArkExportBuilder.js +17 -11
  171. package/lib/core/model/builder/ArkFieldBuilder.d.ts.map +1 -1
  172. package/lib/core/model/builder/ArkFieldBuilder.js +6 -7
  173. package/lib/core/model/builder/ArkFileBuilder.d.ts.map +1 -1
  174. package/lib/core/model/builder/ArkFileBuilder.js +22 -11
  175. package/lib/core/model/builder/ArkImportBuilder.d.ts.map +1 -1
  176. package/lib/core/model/builder/ArkImportBuilder.js +13 -8
  177. package/lib/core/model/builder/ArkMethodBuilder.d.ts.map +1 -1
  178. package/lib/core/model/builder/ArkMethodBuilder.js +3 -3
  179. package/lib/core/model/builder/ArkNamespaceBuilder.d.ts.map +1 -1
  180. package/lib/core/model/builder/ArkNamespaceBuilder.js +7 -9
  181. package/lib/core/model/builder/ArkSignatureBuilder.d.ts.map +1 -1
  182. package/lib/core/model/builder/ArkSignatureBuilder.js +1 -1
  183. package/lib/core/model/builder/BodyBuilder.d.ts.map +1 -1
  184. package/lib/core/model/builder/BodyBuilder.js +8 -5
  185. package/lib/core/model/builder/builderUtils.d.ts.map +1 -1
  186. package/lib/core/model/builder/builderUtils.js +15 -13
  187. package/lib/index.d.ts.map +1 -1
  188. package/lib/save/ArkStream.d.ts.map +1 -1
  189. package/lib/save/ArkStream.js +1 -1
  190. package/lib/save/DotPrinter.d.ts.map +1 -1
  191. package/lib/save/DotPrinter.js +2 -4
  192. package/lib/save/GraphPrinter.d.ts.map +1 -1
  193. package/lib/save/GraphPrinter.js +2 -3
  194. package/lib/save/JsonPrinter.d.ts.map +1 -1
  195. package/lib/save/JsonPrinter.js +29 -29
  196. package/lib/save/Printer.js +1 -1
  197. package/lib/save/PrinterBuilder.d.ts.map +1 -1
  198. package/lib/save/PrinterBuilder.js +1 -1
  199. package/lib/save/ViewTreePrinter.d.ts.map +1 -1
  200. package/lib/save/ViewTreePrinter.js +3 -3
  201. package/lib/save/arkir/ArkIRClassPrinter.js +1 -1
  202. package/lib/save/arkir/ArkIRMethodPrinter.js +5 -5
  203. package/lib/save/arkir/ArkIRNamespacePrinter.d.ts.map +1 -1
  204. package/lib/save/arkir/ArkIRNamespacePrinter.js +2 -3
  205. package/lib/save/base/BasePrinter.js +2 -2
  206. package/lib/save/base/ExportPrinter.d.ts.map +1 -1
  207. package/lib/save/base/ExportPrinter.js +3 -6
  208. package/lib/save/base/ImportPrinter.d.ts.map +1 -1
  209. package/lib/save/base/ImportPrinter.js +2 -6
  210. package/lib/save/base/PrinterUtils.d.ts.map +1 -1
  211. package/lib/save/base/PrinterUtils.js +2 -4
  212. package/lib/save/serializeArkIR.d.ts.map +1 -1
  213. package/lib/save/serializeArkIR.js +2 -2
  214. package/lib/save/source/SourceBase.d.ts.map +1 -1
  215. package/lib/save/source/SourceBase.js +1 -3
  216. package/lib/save/source/SourceBody.d.ts.map +1 -1
  217. package/lib/save/source/SourceBody.js +1 -5
  218. package/lib/save/source/SourceClass.d.ts.map +1 -1
  219. package/lib/save/source/SourceClass.js +2 -3
  220. package/lib/save/source/SourceField.js +2 -2
  221. package/lib/save/source/SourceFilePrinter.d.ts.map +1 -1
  222. package/lib/save/source/SourceMethod.d.ts.map +1 -1
  223. package/lib/save/source/SourceMethod.js +5 -6
  224. package/lib/save/source/SourceNamespace.d.ts.map +1 -1
  225. package/lib/save/source/SourceNamespace.js +2 -3
  226. package/lib/save/source/SourceStmt.d.ts.map +1 -1
  227. package/lib/save/source/SourceStmt.js +9 -14
  228. package/lib/save/source/SourceTransformer.d.ts.map +1 -1
  229. package/lib/save/source/SourceTransformer.js +6 -10
  230. package/lib/transformer/FunctionTransformer.d.ts.map +1 -1
  231. package/lib/transformer/FunctionTransformer.js +1 -1
  232. package/lib/transformer/SceneTransformer.d.ts.map +1 -1
  233. package/lib/transformer/SceneTransformer.js +1 -1
  234. package/lib/transformer/StaticSingleAssignmentFormer.d.ts.map +1 -1
  235. package/lib/transformer/StaticSingleAssignmentFormer.js +1 -1
  236. package/lib/transformer/Transformer.d.ts.map +1 -1
  237. package/lib/transformer/Transformer.js +2 -3
  238. package/lib/utils/AstTreeUtils.d.ts.map +1 -1
  239. package/lib/utils/AstTreeUtils.js +1 -1
  240. package/lib/utils/CfgStructualAnalysis.d.ts.map +1 -1
  241. package/lib/utils/CfgStructualAnalysis.js +6 -18
  242. package/lib/utils/FileUtils.d.ts.map +1 -1
  243. package/lib/utils/FileUtils.js +7 -7
  244. package/lib/utils/SparseBitVector.d.ts.map +1 -1
  245. package/lib/utils/SparseBitVector.js +6 -5
  246. package/lib/utils/callGraphUtils.d.ts.map +1 -1
  247. package/lib/utils/callGraphUtils.js +9 -7
  248. package/lib/utils/crypto_utils.d.ts.map +1 -1
  249. package/lib/utils/crypto_utils.js +2 -2
  250. package/lib/utils/entryMethodUtils.d.ts.map +1 -1
  251. package/lib/utils/entryMethodUtils.js +18 -18
  252. package/lib/utils/getAllFiles.d.ts.map +1 -1
  253. package/lib/utils/json5parser.d.ts.map +1 -1
  254. package/lib/utils/json5parser.js +1 -1
  255. package/lib/utils/logger.d.ts.map +1 -1
  256. package/lib/utils/pathTransfer.d.ts +0 -1
  257. package/lib/utils/pathTransfer.d.ts.map +1 -1
  258. package/lib/utils/pathTransfer.js +2 -11
  259. package/package.json +2 -2
@@ -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,EAAC,IAAI,EAAE,MAAM,EAAC,CAAC;AACtB,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,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,6 +1,6 @@
1
1
  "use strict";
2
2
  /*
3
- * Copyright (c) 2024 Huawei Device Co., Ltd.
3
+ * Copyright (c) 2024-2025 Huawei Device Co., Ltd.
4
4
  * Licensed under the Apache License, Version 2.0 (the "License");
5
5
  * you may not use this file except in compliance with the License.
6
6
  * You may obtain a copy of the License at
@@ -1 +1 @@
1
- {"version":3,"file":"BaseImplicitGraph.d.ts","sourceRoot":"","sources":["../../../src/core/graph/BaseImplicitGraph.ts"],"names":[],"mappings":"AAcA,OAAO,EAAE,MAAM,EAAE,WAAW,EAAE,MAAM,eAAe,CAAC;AAEpD,OAAO,EAAE,MAAM,EAAE,CAAC;AAElB;;;;GAIG;AACH,8BAAsB,iBAAiB,CAAC,IAAI,CAAE,YAAW,WAAW,CAAC,IAAI,CAAC;IACtE;;;OAGG;IACH,SAAS,CAAC,WAAW,CAAC,EAAE,GAAG,CAAC,MAAM,EAAE,IAAI,CAAC,CAAC;IAE1C;;;OAGG;IACH,SAAS,CAAC,WAAW,EAAG,GAAG,CAAC,IAAI,EAAE,MAAM,CAAC,CAAC;IAE1C;;;OAGG;IACH,OAAO,EAAG,GAAG,CAAC,MAAM,EAAE,MAAM,EAAE,CAAC,CAAC;IAEhC;;;OAGG;IACH,OAAO,EAAG,GAAG,CAAC,MAAM,EAAE,MAAM,EAAE,CAAC,CAAC;;IAIhC;;;OAGG;IACI,UAAU,IAAI,MAAM;IAI3B;;;OAGG;IACI,SAAS,IAAI,gBAAgB,CAAC,IAAI,CAAC;IAI1C;;;;;OAKG;IACI,OAAO,CAAC,EAAE,EAAE,MAAM,GAAG,IAAI;IAYzB,SAAS,CAAC,CAAC,EAAE,IAAI,GAAG,MAAM;IASjC;;;;;OAKG;IACI,OAAO,CAAC,EAAE,EAAE,MAAM,GAAG,OAAO;IAQnC;;;;OAIG;IACI,IAAI,CAAC,EAAE,EAAE,MAAM,GAAG,MAAM,EAAE;IAIjC;;;;OAIG;IACI,IAAI,CAAC,EAAE,EAAE,MAAM,GAAG,MAAM,EAAE;IAIjC;;;OAGG;IACI,cAAc,IAAI,GAAG,CAAC,IAAI,EAAE,MAAM,CAAC;IAI1C;;;;OAIG;aACa,YAAY,IAAI,MAAM;CACzC"}
1
+ {"version":3,"file":"BaseImplicitGraph.d.ts","sourceRoot":"","sources":["../../../src/core/graph/BaseImplicitGraph.ts"],"names":[],"mappings":"AAcA,OAAO,EAAE,MAAM,EAAE,WAAW,EAAE,MAAM,eAAe,CAAC;AAEpD,OAAO,EAAE,MAAM,EAAE,CAAC;AAElB;;;;GAIG;AACH,8BAAsB,iBAAiB,CAAC,IAAI,CAAE,YAAW,WAAW,CAAC,IAAI,CAAC;IACtE;;;OAGG;IACH,SAAS,CAAC,WAAW,CAAC,EAAE,GAAG,CAAC,MAAM,EAAE,IAAI,CAAC,CAAC;IAE1C;;;OAGG;IACH,SAAS,CAAC,WAAW,EAAG,GAAG,CAAC,IAAI,EAAE,MAAM,CAAC,CAAC;IAE1C;;;OAGG;IACH,OAAO,EAAG,GAAG,CAAC,MAAM,EAAE,MAAM,EAAE,CAAC,CAAC;IAEhC;;;OAGG;IACH,OAAO,EAAG,GAAG,CAAC,MAAM,EAAE,MAAM,EAAE,CAAC,CAAC;;IAIhC;;;OAGG;IACI,UAAU,IAAI,MAAM;IAI3B;;;OAGG;IACI,SAAS,IAAI,gBAAgB,CAAC,IAAI,CAAC;IAI1C;;;;;OAKG;IACI,OAAO,CAAC,EAAE,EAAE,MAAM,GAAG,IAAI;IAYzB,SAAS,CAAC,CAAC,EAAE,IAAI,GAAG,MAAM;IAQjC;;;;;OAKG;IACI,OAAO,CAAC,EAAE,EAAE,MAAM,GAAG,OAAO;IAQnC;;;;OAIG;IACI,IAAI,CAAC,EAAE,EAAE,MAAM,GAAG,MAAM,EAAE;IAIjC;;;;OAIG;IACI,IAAI,CAAC,EAAE,EAAE,MAAM,GAAG,MAAM,EAAE;IAIjC;;;OAGG;IACI,cAAc,IAAI,GAAG,CAAC,IAAI,EAAE,MAAM,CAAC;IAI1C;;;;OAIG;aACa,YAAY,IAAI,MAAM;CACzC"}
@@ -1 +1 @@
1
- {"version":3,"file":"BasicBlock.d.ts","sourceRoot":"","sources":["../../../src/core/graph/BasicBlock.ts"],"names":[],"mappings":"AAeA,OAAO,EAA+C,IAAI,EAAE,MAAM,cAAc,CAAC;AACjF,OAAO,EAAE,QAAQ,EAAgB,MAAM,oBAAoB,CAAC;AAI5D;;;;;;;;;GASG;AACH,qBAAa,UAAU;IACnB,OAAO,CAAC,EAAE,CAAc;IACxB,OAAO,CAAC,KAAK,CAAc;IAC3B,OAAO,CAAC,iBAAiB,CAAoB;IAC7C,OAAO,CAAC,eAAe,CAAoB;IAC3C,OAAO,CAAC,0BAA0B,CAAC,CAAe;;IAI3C,KAAK,IAAI,MAAM;IAIf,KAAK,CAAC,EAAE,EAAE,MAAM,GAAG,IAAI;IAI9B;;;OAGG;IACI,QAAQ,IAAI,IAAI,EAAE;IAIlB,OAAO,CAAC,IAAI,EAAE,IAAI,GAAG,IAAI;IAIhC;;;OAGG;IACI,OAAO,CAAC,IAAI,EAAE,IAAI,GAAG,IAAI,EAAE,GAAG,IAAI;IAQzC;;;OAGG;IACI,OAAO,CAAC,IAAI,EAAE,IAAI,GAAG,IAAI,EAAE,GAAG,IAAI;IAQzC;;;;;OAKG;IACI,WAAW,CAAC,QAAQ,EAAE,IAAI,GAAG,IAAI,EAAE,EAAE,KAAK,EAAE,IAAI,GAAG,MAAM;IAQhE;;;;;OAKG;IACI,YAAY,CAAC,QAAQ,EAAE,IAAI,GAAG,IAAI,EAAE,EAAE,KAAK,EAAE,IAAI,GAAG,MAAM;IAQjE;;;;OAIG;IACI,MAAM,CAAC,IAAI,EAAE,IAAI,GAAG,IAAI;IAQ/B;;OAEG;IACI,UAAU,IAAI,IAAI;IAIzB;;OAEG;IACI,UAAU,IAAI,IAAI;IAIlB,OAAO,IAAI,IAAI,GAAG,IAAI;IAOtB,OAAO,IAAI,IAAI,GAAG,IAAI;IAQ7B;;;;;;;;;;;;;;;;;OAiBG;IACI,aAAa,IAAI,UAAU,EAAE;IAIpC;;;OAGG;IACI,eAAe,IAAI,UAAU,EAAE;IAI/B,mBAAmB,CAAC,KAAK,EAAE,UAAU,GAAG,IAAI;IAI5C,mBAAmB,CAAC,GAAG,EAAE,MAAM,EAAE,KAAK,EAAE,UAAU,GAAG,OAAO;IAQ5D,iBAAiB,CAAC,GAAG,EAAE,MAAM,EAAE,KAAK,EAAE,UAAU,GAAG,OAAO;IAS1D,cAAc,CAAC,IAAI,EAAE,IAAI;IAKzB,iBAAiB,CAAC,KAAK,EAAE,UAAU,GAAG,IAAI;IAI1C,sBAAsB,CAAC,KAAK,EAAE,UAAU,GAAG,OAAO;IASlD,oBAAoB,CAAC,KAAK,EAAE,UAAU,GAAG,OAAO;IAShD,QAAQ,IAAI,MAAM;IAQlB,QAAQ,IAAI,QAAQ;IA2B3B,OAAO,CAAC,SAAS;IASV,6BAA6B,IAAI,UAAU,EAAE,GAAG,SAAS;IAIzD,4BAA4B,CAAC,KAAK,EAAE,UAAU,GAAG,IAAI;CAM/D"}
1
+ {"version":3,"file":"BasicBlock.d.ts","sourceRoot":"","sources":["../../../src/core/graph/BasicBlock.ts"],"names":[],"mappings":"AAeA,OAAO,EAA+C,IAAI,EAAE,MAAM,cAAc,CAAC;AACjF,OAAO,EAAE,QAAQ,EAAgB,MAAM,oBAAoB,CAAC;AAI5D;;;;;;;;;GASG;AACH,qBAAa,UAAU;IACnB,OAAO,CAAC,EAAE,CAAc;IACxB,OAAO,CAAC,KAAK,CAAc;IAC3B,OAAO,CAAC,iBAAiB,CAAoB;IAC7C,OAAO,CAAC,eAAe,CAAoB;IAC3C,OAAO,CAAC,0BAA0B,CAAC,CAAe;;IAI3C,KAAK,IAAI,MAAM;IAIf,KAAK,CAAC,EAAE,EAAE,MAAM,GAAG,IAAI;IAI9B;;;OAGG;IACI,QAAQ,IAAI,IAAI,EAAE;IAIlB,OAAO,CAAC,IAAI,EAAE,IAAI,GAAG,IAAI;IAIhC;;;OAGG;IACI,OAAO,CAAC,IAAI,EAAE,IAAI,GAAG,IAAI,EAAE,GAAG,IAAI;IAQzC;;;OAGG;IACI,OAAO,CAAC,IAAI,EAAE,IAAI,GAAG,IAAI,EAAE,GAAG,IAAI;IAQzC;;;;;OAKG;IACI,WAAW,CAAC,QAAQ,EAAE,IAAI,GAAG,IAAI,EAAE,EAAE,KAAK,EAAE,IAAI,GAAG,MAAM;IAQhE;;;;;OAKG;IACI,YAAY,CAAC,QAAQ,EAAE,IAAI,GAAG,IAAI,EAAE,EAAE,KAAK,EAAE,IAAI,GAAG,MAAM;IAQjE;;;;OAIG;IACI,MAAM,CAAC,IAAI,EAAE,IAAI,GAAG,IAAI;IAQ/B;;OAEG;IACI,UAAU,IAAI,IAAI;IAIzB;;OAEG;IACI,UAAU,IAAI,IAAI;IAIlB,OAAO,IAAI,IAAI,GAAG,IAAI;IAOtB,OAAO,IAAI,IAAI,GAAG,IAAI;IAQ7B;;;;;;;;;;;;;;;;;OAiBG;IACI,aAAa,IAAI,UAAU,EAAE;IAIpC;;;OAGG;IACI,eAAe,IAAI,UAAU,EAAE;IAI/B,mBAAmB,CAAC,KAAK,EAAE,UAAU,GAAG,IAAI;IAI5C,mBAAmB,CAAC,GAAG,EAAE,MAAM,EAAE,KAAK,EAAE,UAAU,GAAG,OAAO;IAQ5D,iBAAiB,CAAC,GAAG,EAAE,MAAM,EAAE,KAAK,EAAE,UAAU,GAAG,OAAO;IAS1D,cAAc,CAAC,IAAI,EAAE,IAAI,GAAG,IAAI;IAKhC,iBAAiB,CAAC,KAAK,EAAE,UAAU,GAAG,IAAI;IAI1C,sBAAsB,CAAC,KAAK,EAAE,UAAU,GAAG,OAAO;IASlD,oBAAoB,CAAC,KAAK,EAAE,UAAU,GAAG,OAAO;IAShD,QAAQ,IAAI,MAAM;IAQlB,QAAQ,IAAI,QAAQ;IA6B3B,OAAO,CAAC,SAAS;IASV,6BAA6B,IAAI,UAAU,EAAE,GAAG,SAAS;IAIzD,4BAA4B,CAAC,KAAK,EAAE,UAAU,GAAG,IAAI;CAM/D"}
@@ -1,6 +1,6 @@
1
1
  "use strict";
2
2
  /*
3
- * Copyright (c) 2024 Huawei Device Co., Ltd.
3
+ * Copyright (c) 2024-2025 Huawei Device Co., Ltd.
4
4
  * Licensed under the Apache License, Version 2.0 (the "License");
5
5
  * you may not use this file except in compliance with the License.
6
6
  * You may obtain a copy of the License at
@@ -241,21 +241,25 @@ class BasicBlock {
241
241
  validate() {
242
242
  let branchStmts = [];
243
243
  for (const stmt of this.stmts) {
244
- if (stmt instanceof Stmt_1.ArkIfStmt ||
245
- stmt instanceof Stmt_1.ArkReturnStmt ||
246
- stmt instanceof Stmt_1.ArkReturnVoidStmt) {
244
+ if (stmt instanceof Stmt_1.ArkIfStmt || stmt instanceof Stmt_1.ArkReturnStmt || stmt instanceof Stmt_1.ArkReturnVoidStmt) {
247
245
  branchStmts.push(stmt);
248
246
  }
249
247
  }
250
248
  if (branchStmts.length > 1) {
251
- let errMsg = `More than one branch or return stmts in the block: ${branchStmts.map((value) => value.toString()).join('\n')}`;
249
+ let errMsg = `More than one branch or return stmts in the block: ${branchStmts.map(value => value.toString()).join('\n')}`;
252
250
  logger.error(errMsg);
253
- return { errCode: ArkError_1.ArkErrorCode.BB_MORE_THAN_ONE_BRANCH_RET_STMT, errMsg: errMsg };
251
+ return {
252
+ errCode: ArkError_1.ArkErrorCode.BB_MORE_THAN_ONE_BRANCH_RET_STMT,
253
+ errMsg: errMsg,
254
+ };
254
255
  }
255
256
  if (branchStmts.length === 1 && branchStmts[0] !== this.stmts[this.stmts.length - 1]) {
256
257
  let errMsg = `${branchStmts[0].toString()} not at the end of block.`;
257
258
  logger.error(errMsg);
258
- return { errCode: ArkError_1.ArkErrorCode.BB_BRANCH_RET_STMT_NOT_AT_END, errMsg: errMsg };
259
+ return {
260
+ errCode: ArkError_1.ArkErrorCode.BB_BRANCH_RET_STMT_NOT_AT_END,
261
+ errMsg: errMsg,
262
+ };
259
263
  }
260
264
  return { errCode: ArkError_1.ArkErrorCode.OK };
261
265
  }
@@ -1 +1 @@
1
- {"version":3,"file":"Cfg.d.ts","sourceRoot":"","sources":["../../../src/core/graph/Cfg.ts"],"names":[],"mappings":"AAeA,OAAO,EAAE,WAAW,EAAE,MAAM,qBAAqB,CAAC;AAClD,OAAO,EAAE,KAAK,EAAE,MAAM,eAAe,CAAC;AACtC,OAAO,EAAE,IAAI,EAAE,MAAM,cAAc,CAAC;AACpC,OAAO,EAAE,QAAQ,EAAgB,MAAM,oBAAoB,CAAC;AAC5D,OAAO,EAAE,SAAS,EAAE,MAAM,oBAAoB,CAAC;AAC/C,OAAO,EAAE,UAAU,EAAE,MAAM,cAAc,CAAC;AAM1C;;GAEG;AACH,qBAAa,GAAG;IACZ,OAAO,CAAC,MAAM,CAA8B;IAC5C,OAAO,CAAC,WAAW,CAAoC;IACvD,OAAO,CAAC,YAAY,CAAQ;IAE5B,OAAO,CAAC,YAAY,CAAqB;IACzC,OAAO,CAAC,eAAe,CAA8B;;IAI9C,QAAQ,IAAI,IAAI,EAAE;IAQzB;;;;;OAKG;IACI,WAAW,CAAC,QAAQ,EAAE,IAAI,GAAG,IAAI,EAAE,EAAE,KAAK,EAAE,IAAI,GAAG,MAAM;IAUhE;;;;;OAKG;IACI,YAAY,CAAC,QAAQ,EAAE,IAAI,GAAG,IAAI,EAAE,EAAE,KAAK,EAAE,IAAI,GAAG,MAAM;IAUjE;;;;OAIG;IACI,MAAM,CAAC,IAAI,EAAE,IAAI,GAAG,IAAI;IAS/B;;;;OAIG;IACI,mBAAmB,CAAC,KAAK,EAAE,UAAU,EAAE,OAAO,CAAC,EAAE,IAAI,GAAG,IAAI,EAAE,GAAG,IAAI;IAerE,QAAQ,CAAC,KAAK,EAAE,UAAU,GAAG,IAAI;IAQjC,SAAS,IAAI,GAAG,CAAC,UAAU,CAAC;IAI5B,gBAAgB,IAAI,UAAU,GAAG,SAAS;IAI1C,eAAe,IAAI,IAAI;IAIvB,eAAe,CAAC,eAAe,EAAE,IAAI,GAAG,IAAI;IAI5C,kBAAkB,IAAI,SAAS;IAI/B,kBAAkB,CAAC,MAAM,EAAE,SAAS;IAIpC,eAAe,IAAI,WAAW,EAAE;IAKhC,QAAQ,IAAI,MAAM;IAIlB,eAAe,CAAC,MAAM,EAAE,GAAG,CAAC,KAAK,CAAC,GAAG,IAAI;IAchD,OAAO,CAAC,YAAY;IAapB,OAAO,CAAC,oBAAoB;IAgDrB,gBAAgB,IAAI,IAAI;IAWxB,oBAAoB,IAAI,GAAG,CAAC,UAAU,CAAC;IAevC,QAAQ,IAAI,QAAQ;IAoB3B,OAAO,CAAC,YAAY;CAevB"}
1
+ {"version":3,"file":"Cfg.d.ts","sourceRoot":"","sources":["../../../src/core/graph/Cfg.ts"],"names":[],"mappings":"AAeA,OAAO,EAAE,WAAW,EAAE,MAAM,qBAAqB,CAAC;AAClD,OAAO,EAAE,KAAK,EAAE,MAAM,eAAe,CAAC;AACtC,OAAO,EAAE,IAAI,EAAE,MAAM,cAAc,CAAC;AACpC,OAAO,EAAE,QAAQ,EAAgB,MAAM,oBAAoB,CAAC;AAC5D,OAAO,EAAE,SAAS,EAAE,MAAM,oBAAoB,CAAC;AAC/C,OAAO,EAAE,UAAU,EAAE,MAAM,cAAc,CAAC;AAM1C;;GAEG;AACH,qBAAa,GAAG;IACZ,OAAO,CAAC,MAAM,CAA8B;IAC5C,OAAO,CAAC,WAAW,CAAoC;IACvD,OAAO,CAAC,YAAY,CAAQ;IAE5B,OAAO,CAAC,YAAY,CAAqB;IACzC,OAAO,CAAC,eAAe,CAA8B;;IAI9C,QAAQ,IAAI,IAAI,EAAE;IAQzB;;;;;OAKG;IACI,WAAW,CAAC,QAAQ,EAAE,IAAI,GAAG,IAAI,EAAE,EAAE,KAAK,EAAE,IAAI,GAAG,MAAM;IAUhE;;;;;OAKG;IACI,YAAY,CAAC,QAAQ,EAAE,IAAI,GAAG,IAAI,EAAE,EAAE,KAAK,EAAE,IAAI,GAAG,MAAM;IAUjE;;;;OAIG;IACI,MAAM,CAAC,IAAI,EAAE,IAAI,GAAG,IAAI;IAS/B;;;;OAIG;IACI,mBAAmB,CAAC,KAAK,EAAE,UAAU,EAAE,OAAO,CAAC,EAAE,IAAI,GAAG,IAAI,EAAE,GAAG,IAAI;IAerE,QAAQ,CAAC,KAAK,EAAE,UAAU,GAAG,IAAI;IAQjC,SAAS,IAAI,GAAG,CAAC,UAAU,CAAC;IAI5B,gBAAgB,IAAI,UAAU,GAAG,SAAS;IAI1C,eAAe,IAAI,IAAI;IAIvB,eAAe,CAAC,eAAe,EAAE,IAAI,GAAG,IAAI;IAI5C,kBAAkB,IAAI,SAAS;IAI/B,kBAAkB,CAAC,MAAM,EAAE,SAAS,GAAG,IAAI;IAI3C,eAAe,IAAI,WAAW,EAAE;IAKhC,QAAQ,IAAI,MAAM;IAIlB,eAAe,CAAC,MAAM,EAAE,GAAG,CAAC,KAAK,CAAC,GAAG,IAAI;IAchD,OAAO,CAAC,YAAY;IAapB,OAAO,CAAC,oBAAoB;IAgDrB,gBAAgB,IAAI,IAAI;IAWxB,oBAAoB,IAAI,GAAG,CAAC,UAAU,CAAC;IAevC,QAAQ,IAAI,QAAQ;IA0B3B,OAAO,CAAC,YAAY;CAWvB"}
@@ -1,6 +1,6 @@
1
1
  "use strict";
2
2
  /*
3
- * Copyright (c) 2024 Huawei Device Co., Ltd.
3
+ * Copyright (c) 2024-2025 Huawei Device Co., Ltd.
4
4
  * Licensed under the Apache License, Version 2.0 (the "License");
5
5
  * you may not use this file except in compliance with the License.
6
6
  * You may obtain a copy of the License at
@@ -259,15 +259,21 @@ class Cfg {
259
259
  if (!startBB) {
260
260
  let errMsg = `Not found starting block}`;
261
261
  logger.error(errMsg);
262
- return { errCode: ArkError_1.ArkErrorCode.CFG_NOT_FOUND_START_BLOCK, errMsg: errMsg };
262
+ return {
263
+ errCode: ArkError_1.ArkErrorCode.CFG_NOT_FOUND_START_BLOCK,
264
+ errMsg: errMsg,
265
+ };
263
266
  }
264
267
  let unreachable = this.getUnreachableBlocks();
265
268
  if (unreachable.size !== 0) {
266
269
  let errMsg = `Unreachable blocks: ${Array.from(unreachable)
267
- .map((value) => value.toString())
270
+ .map(value => value.toString())
268
271
  .join('\n')}`;
269
272
  logger.error(errMsg);
270
- return { errCode: ArkError_1.ArkErrorCode.CFG_HAS_UNREACHABLE_BLOCK, errMsg: errMsg };
273
+ return {
274
+ errCode: ArkError_1.ArkErrorCode.CFG_HAS_UNREACHABLE_BLOCK,
275
+ errMsg: errMsg,
276
+ };
271
277
  }
272
278
  return { errCode: ArkError_1.ArkErrorCode.OK };
273
279
  }
@@ -1 +1 @@
1
- {"version":3,"file":"DependsGraph.d.ts","sourceRoot":"","sources":["../../../src/core/graph/DependsGraph.ts"],"names":[],"mappings":"AAeA,OAAO,EAAE,QAAQ,EAAE,iBAAiB,EAAE,QAAQ,EAAE,IAAI,EAAE,MAAM,EAAE,MAAM,qBAAqB,CAAC;AAC1F,UAAU,UAAU;IAChB,CAAC,IAAI,EAAE,MAAM,GAAG,GAAG,CAAC;CACvB;AAED,UAAU,cAAe,SAAQ,UAAU;IACvC,IAAI,EAAE,MAAM,CAAC;IACb,IAAI,EAAE,IAAI,CAAC;CACd;AAED,UAAU,cAAe,SAAQ,UAAU;IACvC,IAAI,EAAE,IAAI,CAAC;CACd;AAED,qBAAa,WAAW,CAAC,QAAQ,SAAS,cAAc,CAAE,SAAQ,QAAQ;IACtE,OAAO,CAAC,IAAI,CAAW;gBAEJ,EAAE,EAAE,MAAM,EAAE,IAAI,EAAE,QAAQ;IAKtC,WAAW,IAAI,QAAQ;IAIvB,WAAW,CAAC,IAAI,EAAE,QAAQ,GAAG,IAAI;IAIjC,WAAW,IAAI,MAAM;CAG/B;AAED,qBAAa,WAAW,CAAC,QAAQ,SAAS,cAAc,EAAE,QAAQ,SAAS,cAAc,CAAE,SAAQ,QAAQ;IACvG,OAAO,CAAC,IAAI,CAAW;gBAEJ,CAAC,EAAE,WAAW,CAAC,QAAQ,CAAC,EAAE,CAAC,EAAE,WAAW,CAAC,QAAQ,CAAC,EAAE,IAAI,EAAE,QAAQ;IAK9E,WAAW,IAAI,QAAQ;IAIvB,WAAW,CAAC,IAAI,EAAE,QAAQ,GAAG,IAAI;IAIjC,MAAM,IAAI,MAAM;CAG1B;AAED,qBAAa,YAAY,CAAC,QAAQ,SAAS,cAAc,EAAE,QAAQ,SAAS,cAAc,CAAE,SAAQ,iBAAiB;IACjH,SAAS,CAAC,OAAO,EAAE,GAAG,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;IACvC,SAAS,CAAC,QAAQ,EAAE,GAAG,CAAC,MAAM,EAAE,WAAW,CAAC,QAAQ,EAAE,QAAQ,CAAC,CAAC,CAAC;;IAQ1D,WAAW,CAAC,GAAG,EAAE,MAAM,GAAG,OAAO;IAIjC,WAAW,CAAC,GAAG,EAAE,MAAM,EAAE,IAAI,EAAE,QAAQ,GAAG,WAAW,CAAC,QAAQ,CAAC;IAc/D,OAAO,CACV,GAAG,EAAE,WAAW,CAAC,QAAQ,CAAC,EAC1B,GAAG,EAAE,WAAW,CAAC,QAAQ,CAAC,EAC1B,IAAI,EAAE,QAAQ,GACf,WAAW,CAAC,QAAQ,EAAE,QAAQ,CAAC;IAY3B,YAAY,IAAI,MAAM;CAGhC"}
1
+ {"version":3,"file":"DependsGraph.d.ts","sourceRoot":"","sources":["../../../src/core/graph/DependsGraph.ts"],"names":[],"mappings":"AAeA,OAAO,EAAE,QAAQ,EAAE,iBAAiB,EAAE,QAAQ,EAAE,IAAI,EAAE,MAAM,EAAE,MAAM,qBAAqB,CAAC;AAC1F,UAAU,UAAU;IAChB,CAAC,IAAI,EAAE,MAAM,GAAG,GAAG,CAAC;CACvB;AAED,UAAU,cAAe,SAAQ,UAAU;IACvC,IAAI,EAAE,MAAM,CAAC;IACb,IAAI,EAAE,IAAI,CAAC;CACd;AAED,UAAU,cAAe,SAAQ,UAAU;IACvC,IAAI,EAAE,IAAI,CAAC;CACd;AAED,qBAAa,WAAW,CAAC,QAAQ,SAAS,cAAc,CAAE,SAAQ,QAAQ;IACtE,OAAO,CAAC,IAAI,CAAW;gBAEJ,EAAE,EAAE,MAAM,EAAE,IAAI,EAAE,QAAQ;IAKtC,WAAW,IAAI,QAAQ;IAIvB,WAAW,CAAC,IAAI,EAAE,QAAQ,GAAG,IAAI;IAIjC,WAAW,IAAI,MAAM;CAG/B;AAED,qBAAa,WAAW,CAAC,QAAQ,SAAS,cAAc,EAAE,QAAQ,SAAS,cAAc,CAAE,SAAQ,QAAQ;IACvG,OAAO,CAAC,IAAI,CAAW;gBAEJ,CAAC,EAAE,WAAW,CAAC,QAAQ,CAAC,EAAE,CAAC,EAAE,WAAW,CAAC,QAAQ,CAAC,EAAE,IAAI,EAAE,QAAQ;IAK9E,WAAW,IAAI,QAAQ;IAIvB,WAAW,CAAC,IAAI,EAAE,QAAQ,GAAG,IAAI;IAIjC,MAAM,IAAI,MAAM;CAG1B;AAED,qBAAa,YAAY,CAAC,QAAQ,SAAS,cAAc,EAAE,QAAQ,SAAS,cAAc,CAAE,SAAQ,iBAAiB;IACjH,SAAS,CAAC,OAAO,EAAE,GAAG,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;IACvC,SAAS,CAAC,QAAQ,EAAE,GAAG,CAAC,MAAM,EAAE,WAAW,CAAC,QAAQ,EAAE,QAAQ,CAAC,CAAC,CAAC;;IAQ1D,WAAW,CAAC,GAAG,EAAE,MAAM,GAAG,OAAO;IAIjC,WAAW,CAAC,GAAG,EAAE,MAAM,EAAE,IAAI,EAAE,QAAQ,GAAG,WAAW,CAAC,QAAQ,CAAC;IAc/D,OAAO,CAAC,GAAG,EAAE,WAAW,CAAC,QAAQ,CAAC,EAAE,GAAG,EAAE,WAAW,CAAC,QAAQ,CAAC,EAAE,IAAI,EAAE,QAAQ,GAAG,WAAW,CAAC,QAAQ,EAAE,QAAQ,CAAC;IAYhH,YAAY,IAAI,MAAM;CAGhC"}
@@ -1,6 +1,6 @@
1
1
  "use strict";
2
2
  /*
3
- * Copyright (c) 2024 Huawei Device Co., Ltd.
3
+ * Copyright (c) 2024-2025 Huawei Device Co., Ltd.
4
4
  * Licensed under the Apache License, Version 2.0 (the "License");
5
5
  * you may not use this file except in compliance with the License.
6
6
  * You may obtain a copy of the License at
@@ -1 +1 @@
1
- {"version":3,"file":"DominanceFinder.d.ts","sourceRoot":"","sources":["../../../src/core/graph/DominanceFinder.ts"],"names":[],"mappings":"AAeA,OAAO,EAAE,UAAU,EAAE,MAAM,cAAc,CAAC;AAC1C,OAAO,EAAE,GAAG,EAAE,MAAM,OAAO,CAAC;AAE5B,qBAAa,eAAe;IACxB,OAAO,CAAC,MAAM,CAAoB;IAClC,OAAO,CAAC,UAAU,CAA+B;IACjD,OAAO,CAAC,KAAK,CAAgB;IAC7B,OAAO,CAAC,YAAY,CAAkB;gBAE1B,GAAG,EAAE,GAAG;IA2Db,qBAAqB,CAAC,KAAK,EAAE,UAAU,GAAG,GAAG,CAAC,UAAU,CAAC;IAazD,SAAS,IAAI,UAAU,EAAE;IAIzB,aAAa,IAAI,GAAG,CAAC,UAAU,EAAE,MAAM,CAAC;IAIxC,sBAAsB,IAAI,MAAM,EAAE;IAKzC,OAAO,CAAC,2BAA2B;IAUnC,OAAO,CAAC,SAAS;CAUpB"}
1
+ {"version":3,"file":"DominanceFinder.d.ts","sourceRoot":"","sources":["../../../src/core/graph/DominanceFinder.ts"],"names":[],"mappings":"AAeA,OAAO,EAAE,UAAU,EAAE,MAAM,cAAc,CAAC;AAC1C,OAAO,EAAE,GAAG,EAAE,MAAM,OAAO,CAAC;AAE5B,qBAAa,eAAe;IACxB,OAAO,CAAC,MAAM,CAAoB;IAClC,OAAO,CAAC,UAAU,CAAiC;IACnD,OAAO,CAAC,KAAK,CAAgB;IAC7B,OAAO,CAAC,YAAY,CAAkB;gBAE1B,GAAG,EAAE,GAAG;IA2Db,qBAAqB,CAAC,KAAK,EAAE,UAAU,GAAG,GAAG,CAAC,UAAU,CAAC;IAazD,SAAS,IAAI,UAAU,EAAE;IAIzB,aAAa,IAAI,GAAG,CAAC,UAAU,EAAE,MAAM,CAAC;IAIxC,sBAAsB,IAAI,MAAM,EAAE;IAIzC,OAAO,CAAC,2BAA2B;IAUnC,OAAO,CAAC,SAAS;CAUpB"}
@@ -1,6 +1,6 @@
1
1
  "use strict";
2
2
  /*
3
- * Copyright (c) 2024 Huawei Device Co., Ltd.
3
+ * Copyright (c) 2024-2025 Huawei Device Co., Ltd.
4
4
  * Licensed under the Apache License, Version 2.0 (the "License");
5
5
  * you may not use this file except in compliance with the License.
6
6
  * You may obtain a copy of the License at
@@ -18,7 +18,7 @@ exports.DominanceFinder = void 0;
18
18
  class DominanceFinder {
19
19
  constructor(cfg) {
20
20
  this.blocks = [];
21
- this.blockToIdx = new Map;
21
+ this.blockToIdx = new Map();
22
22
  this.idoms = [];
23
23
  this.domFrontiers = [];
24
24
  this.blocks = Array.from(cfg.getBlocks());
@@ -48,7 +48,7 @@ class DominanceFinder {
48
48
  }
49
49
  for (const pred of preds) {
50
50
  let predIdx = this.blockToIdx.get(pred);
51
- this.idoms[predIdx] !== -1 ? newIdom = this.intersect(newIdom, predIdx) : null;
51
+ this.idoms[predIdx] !== -1 ? (newIdom = this.intersect(newIdom, predIdx)) : null;
52
52
  }
53
53
  if (this.idoms[blockIdx] !== newIdom) {
54
54
  this.idoms[blockIdx] = newIdom;
@@ -78,7 +78,7 @@ class DominanceFinder {
78
78
  }
79
79
  getDominanceFrontiers(block) {
80
80
  if (!this.blockToIdx.has(block)) {
81
- throw new Error("The given block: " + block + " is not in Cfg!");
81
+ throw new Error('The given block: ' + block + ' is not in Cfg!');
82
82
  }
83
83
  let idx = this.blockToIdx.get(block);
84
84
  let dfs = new Set();
@@ -1,6 +1,6 @@
1
1
  "use strict";
2
2
  /*
3
- * Copyright (c) 2024 Huawei Device Co., Ltd.
3
+ * Copyright (c) 2024-2025 Huawei Device Co., Ltd.
4
4
  * Licensed under the Apache License, Version 2.0 (the "License");
5
5
  * you may not use this file except in compliance with the License.
6
6
  * You may obtain a copy of the License at
@@ -1,6 +1,6 @@
1
1
  "use strict";
2
2
  /*
3
- * Copyright (c) 2024 Huawei Device Co., Ltd.
3
+ * Copyright (c) 2024-2025 Huawei Device Co., Ltd.
4
4
  * Licensed under the Apache License, Version 2.0 (the "License");
5
5
  * you may not use this file except in compliance with the License.
6
6
  * You may obtain a copy of the License at
@@ -1,6 +1,6 @@
1
1
  "use strict";
2
2
  /*
3
- * Copyright (c) 2024 Huawei Device Co., Ltd.
3
+ * Copyright (c) 2024-2025 Huawei Device Co., Ltd.
4
4
  * Licensed under the Apache License, Version 2.0 (the "License");
5
5
  * you may not use this file except in compliance with the License.
6
6
  * You may obtain a copy of the License at
@@ -106,7 +106,7 @@ class SCCDetection {
106
106
  this.setRep(v, v);
107
107
  this.setVisited(v);
108
108
  let node = this.getNode(v);
109
- node.getOutgoingEdges().forEach((e) => {
109
+ node.getOutgoingEdges().forEach(e => {
110
110
  let w = e.getDstID();
111
111
  if (!this.isVisited(w)) {
112
112
  this.visit(w);
@@ -1,6 +1,6 @@
1
1
  "use strict";
2
2
  /*
3
- * Copyright (c) 2024 Huawei Device Co., Ltd.
3
+ * Copyright (c) 2024-2025 Huawei Device Co., Ltd.
4
4
  * Licensed under the Apache License, Version 2.0 (the "License");
5
5
  * you may not use this file except in compliance with the License.
6
6
  * You may obtain a copy of the License at
@@ -1 +1 @@
1
- {"version":3,"file":"CfgBuilder.d.ts","sourceRoot":"","sources":["../../../../src/core/graph/builder/CfgBuilder.ts"],"names":[],"mappings":"AAeA,OAAO,KAAK,EAAE,MAAM,iBAAiB,CAAC;AACtC,OAAO,EAAE,KAAK,EAAE,MAAM,kBAAkB,CAAC;AACzC,OAAO,EAAE,sBAAsB,EAA0C,MAAM,iBAAiB,CAAC;AAEjG,OAAO,EAAE,GAAG,EAAE,MAAM,QAAQ,CAAC;AAC7B,OAAO,EAAE,QAAQ,EAAE,MAAM,sBAAsB,CAAC;AAChD,OAAO,EAAE,SAAS,EAAE,MAAM,uBAAuB,CAAC;AAIlD,OAAO,EAAE,SAAS,EAA0D,MAAM,iBAAiB,CAAC;AACpG,OAAO,EAAE,IAAI,EAAE,MAAM,iBAAiB,CAAC;AACvC,OAAO,EAAE,SAAS,EAAE,MAAM,gBAAgB,CAAC;AAQ3C,cAAM,gBAAgB;IAClB,IAAI,EAAE,MAAM,CAAC;IAEb,IAAI,EAAE,MAAM,CAAC;IACb,IAAI,EAAE,gBAAgB,GAAG,IAAI,CAAC;IAC9B,KAAK,EAAE,GAAG,CAAC,gBAAgB,CAAC,CAAC;IAC7B,MAAM,EAAE,OAAO,CAAC;IAChB,KAAK,EAAE,MAAM,CAAC;IAEd,IAAI,EAAE,MAAM,CAAC;IACb,MAAM,EAAE,MAAM,CAAC;IACf,OAAO,EAAE,EAAE,CAAC,IAAI,GAAG,IAAI,CAAC;IACxB,OAAO,EAAE,MAAM,CAAC;IAChB,YAAY,EAAE,MAAM,EAAE,CAAM;IAC5B,KAAK,EAAE,YAAY,GAAG,IAAI,CAAC;IAC3B,UAAU,EAAE,OAAO,CAAC;IACpB,SAAS,EAAE,MAAM,CAAK;IACtB,eAAe,EAAE,MAAM,CAAK;IAC5B,SAAS,EAAE,OAAO,CAAS;gBAEf,IAAI,EAAE,MAAM,EAAE,IAAI,EAAE,MAAM,EAAE,OAAO,EAAE,EAAE,CAAC,IAAI,GAAG,IAAI,EAAE,OAAO,EAAE,MAAM;CAcnF;AAED,cAAM,yBAA0B,SAAQ,gBAAgB;IACpD,KAAK,EAAE,gBAAgB,GAAG,IAAI,CAAC;IAC/B,KAAK,EAAE,gBAAgB,GAAG,IAAI,CAAC;IAC/B,SAAS,EAAE,YAAY,GAAG,IAAI,CAAC;IAC/B,SAAS,EAAE,MAAM,CAAC;IAClB,WAAW,EAAE,gBAAgB,GAAG,IAAI,CAAQ;gBAEhC,IAAI,EAAE,MAAM,EAAE,IAAI,EAAE,MAAM,EAAE,OAAO,EAAE,EAAE,CAAC,IAAI,EAAE,OAAO,EAAE,MAAM;CAO5E;AAED,qBAAa,sBAAuB,SAAQ,gBAAgB;IACxD,KAAK,EAAE,gBAAgB,EAAE,CAAC;IAC1B,KAAK,EAAE,IAAI,EAAE,CAAM;IACnB,OAAO,EAAE,gBAAgB,GAAG,IAAI,CAAQ;IACxC,WAAW,EAAE,gBAAgB,GAAG,IAAI,CAAQ;gBAEhC,IAAI,EAAE,MAAM,EAAE,IAAI,EAAE,MAAM,EAAE,OAAO,EAAE,EAAE,CAAC,IAAI,EAAE,OAAO,EAAE,MAAM;CAI5E;AAED,qBAAa,mBAAoB,SAAQ,gBAAgB;IACrD,QAAQ,EAAE,gBAAgB,GAAG,IAAI,CAAQ;IACzC,OAAO,EAAE,gBAAgB,GAAG,IAAI,CAAQ;IACxC,cAAc,EAAE,gBAAgB,GAAG,IAAI,CAAQ;IAC/C,UAAU,EAAE,MAAM,CAAM;IACxB,gBAAgB,EAAE,gBAAgB,GAAG,IAAI,CAAQ;IACjD,UAAU,EAAE,gBAAgB,GAAG,IAAI,CAAQ;gBAE/B,IAAI,EAAE,MAAM,EAAE,IAAI,EAAE,MAAM,EAAE,OAAO,EAAE,EAAE,CAAC,IAAI,EAAE,OAAO,EAAE,MAAM;CAG5E;AAED,cAAM,IAAI;IACN,KAAK,EAAE,MAAM,CAAC;IACd,IAAI,EAAE,gBAAgB,CAAC;IACvB,SAAS,EAAG,EAAE,CAAC,IAAI,CAAC;gBAER,KAAK,EAAE,MAAM,EAAE,IAAI,EAAE,gBAAgB;CAIpD;AAED,cAAM,WAAW;IACb,GAAG,EAAE,gBAAgB,CAAC;IACtB,GAAG,EAAE,gBAAgB,CAAC;gBAEV,GAAG,EAAE,gBAAgB,EAAE,GAAG,EAAE,gBAAgB;CAI3D;AAED,cAAM,QAAQ;IACV,IAAI,EAAE,MAAM,CAAC;IACb,OAAO,EAAE,gBAAgB,CAAC;IAC1B,MAAM,EAAE,WAAW,EAAE,CAAC;IACtB,UAAU,EAAE,QAAQ,EAAE,CAAM;IAC5B,MAAM,EAAE,QAAQ,GAAG,IAAI,CAAQ;gBAEnB,IAAI,EAAE,MAAM,EAAE,OAAO,EAAE,gBAAgB;CAKtD;AAED,cAAM,KAAK;IACP,EAAE,EAAE,MAAM,CAAC;gBAEC,EAAE,EAAE,MAAM;CAGzB;AAED,qBAAa,YAAY;IACrB,EAAE,EAAE,MAAM,CAAC;IACX,KAAK,EAAE,gBAAgB,EAAE,CAAC;IAC1B,KAAK,EAAE,YAAY,EAAE,CAAM;IAC3B,KAAK,EAAE,YAAY,EAAE,CAAM;IAC3B,MAAM,EAAE,OAAO,CAAS;gBAEZ,EAAE,EAAE,MAAM,EAAE,KAAK,EAAE,gBAAgB,EAAE;CAIpD;AAED,cAAM,KAAK;IACP,SAAS,EAAE,MAAM,CAAC;IAClB,IAAI,EAAE,MAAM,CAAC;IACb,EAAE,EAAE,MAAM,CAAC;IACX,SAAS,EAAE,MAAM,CAAC;gBAEN,SAAS,EAAE,MAAM,EAAE,IAAI,EAAE,MAAM,EAAE,EAAE,EAAE,MAAM,EAAE,SAAS,EAAE,MAAM;CAM7E;AAYD,qBAAa,UAAU;IACnB,IAAI,EAAE,MAAM,CAAC;IACb,OAAO,EAAE,EAAE,CAAC,IAAI,CAAC;IACjB,KAAK,EAAE,gBAAgB,CAAC;IACxB,IAAI,EAAE,gBAAgB,CAAC;IACvB,SAAS,EAAE,yBAAyB,EAAE,CAAC;IACvC,eAAe,EAAE,gBAAgB,EAAE,CAAC;IACpC,SAAS,EAAE,UAAU,EAAE,CAAC;IACxB,OAAO,EAAE,MAAM,CAAC;IAChB,cAAc,EAAE,gBAAgB,EAAE,CAAC;IACnC,QAAQ,EAAE,MAAM,EAAE,EAAE,CAAC;IACrB,MAAM,EAAE,KAAK,EAAE,CAAC;IAChB,eAAe,EAAE,MAAM,CAAC;IACxB,aAAa,EAAE,gBAAgB,CAAC;IAChC,MAAM,EAAE,YAAY,EAAE,CAAC;IACvB,yBAAyB,EAAE,MAAM,CAAC;IAClC,SAAS,EAAE,QAAQ,EAAE,CAAC;IACtB,cAAc,EAAE,QAAQ,CAAC;IACzB,cAAc,EAAE,MAAM,EAAE,CAAC;IACzB,OAAO,EAAE,KAAK,EAAE,CAAC;IACjB,KAAK,EAAE,gBAAgB,EAAE,CAAM;IAC/B,SAAS,EAAE,OAAO,CAAS;IAC3B,yBAAyB,EAAE,OAAO,CAAS;IAE3C,OAAO,CAAC,UAAU,CAAgB;IAClC,OAAO,CAAC,eAAe,CAAY;gBAEvB,GAAG,EAAE,EAAE,CAAC,IAAI,EAAE,IAAI,EAAE,MAAM,EAAE,eAAe,EAAE,SAAS,EAAE,UAAU,EAAE,EAAE,CAAC,UAAU;IAyBtF,kBAAkB,IAAI,SAAS;IAItC,aAAa,CAAC,CAAC,EAAE,gBAAgB,EAAE,aAAa,EAAE,gBAAgB,GAAG,IAAI;IAyBzE,qBAAqB,CAAC,CAAC,EAAE,EAAE,CAAC,IAAI,EAAE,aAAa,EAAE,gBAAgB,GAAG,IAAI;IAmBxE,kBAAkB,CAAC,CAAC,EAAE,EAAE,CAAC,WAAW,EAAE,aAAa,EAAE,gBAAgB,EAAE,OAAO,EAAE,MAAM,GAAG,gBAAgB;IA8BzG,qBAAqB,CAAC,CAAC,EAAE,EAAE,CAAC,cAAc,EAAE,aAAa,EAAE,gBAAgB,EAAE,OAAO,EAAE,MAAM,GAAG,gBAAgB;IA4B/G,mBAAmB,CAAC,CAAC,EAAE,EAAE,CAAC,kBAAkB,GAAG,EAAE,CAAC,YAAY,EAAE,aAAa,EAAE,gBAAgB,EAAE,OAAO,EAAE,MAAM,GAAG,gBAAgB;IAmCnI,kBAAkB,CAAC,CAAC,EAAE,EAAE,CAAC,WAAW,EAAE,aAAa,EAAE,gBAAgB,EAAE,OAAO,EAAE,MAAM,GAAG,gBAAgB;IAiCzG,sBAAsB,CAAC,CAAC,EAAE,EAAE,CAAC,eAAe,EAAE,aAAa,EAAE,gBAAgB,EAAE,OAAO,EAAE,MAAM,GAAG,gBAAgB;IAiDjH,mBAAmB,CAAC,CAAC,EAAE,EAAE,CAAC,YAAY,EAAE,aAAa,EAAE,gBAAgB,EAAE,OAAO,EAAE,MAAM,GAAG,gBAAgB;IAuD3G,OAAO,CAAC,aAAa,EAAE,gBAAgB,EAAE,aAAa,EAAE,gBAAgB,EAAE,KAAK,EAAE,EAAE,CAAC,IAAI,EAAE,GAAG,IAAI;IA8DjG,sBAAsB,IAAI,IAAI;IAU9B,wBAAwB,CAAC,IAAI,EAAE,yBAAyB,EAAE,IAAI,EAAE,gBAAgB,GAAG,IAAI;IAcvF,qBAAqB,CAAC,IAAI,EAAE,sBAAsB,EAAE,IAAI,EAAE,gBAAgB,GAAG,IAAI;IAYjF,UAAU,IAAI,IAAI;IA4BlB,mCAAmC,CAAC,IAAI,EAAE,gBAAgB,EAAE,SAAS,EAAE,gBAAgB,EAAE,GAAG,gBAAgB,GAAG,IAAI;IAkBnH,sBAAsB,CAAC,IAAI,EAAE,gBAAgB,EAAE,SAAS,EAAE,gBAAgB,EAAE,GAAG,gBAAgB,GAAG,IAAI;IA2BtG,WAAW,IAAI,IAAI;IAkCnB,wBAAwB,CAAC,eAAe,EAAE,yBAAyB,EAAE,KAAK,EAAE,YAAY,EAC/D,eAAe,EAAE,OAAO,GAAG,IAAI;IAaxD,qBAAqB,CAAC,eAAe,EAAE,sBAAsB,EAAE,KAAK,EAAE,YAAY,EAC5D,eAAe,EAAE,OAAO,GAAG,IAAI;IAiBrD,qBAAqB,CAAC,eAAe,EAAE,gBAAgB,EAAE,KAAK,EAAE,YAAY,EAAE,eAAe,EAAE,OAAO,GAAG,IAAI;IAQ7G,mBAAmB,IAAI,IAAI;IAe3B,cAAc,CAAC,eAAe,EAAE,gBAAgB,EAAE,cAAc,EAAE,gBAAgB,EAAE,GAAG,IAAI;IA2B3F,aAAa,IAAI,IAAI;IAqCrB,WAAW,IAAI,IAAI;IAMnB,sBAAsB,IAAI,IAAI;IAa9B,gBAAgB,CAAC,IAAI,EAAE,gBAAgB,GAAG,IAAI;IA4C9C,WAAW,CAAC,IAAI,EAAE,gBAAgB,GAAG,IAAI;IAoCzC,SAAS,CAAC,IAAI,EAAE,gBAAgB,GAAG,IAAI;IASvC,mCAAmC,CAAC,IAAI,EAAE,EAAE,CAAC,IAAI,GAAG,IAAI;IAQxD,eAAe,IAAI,IAAI;IAyCvB,OAAO,CAAC,aAAa;IAYd,WAAW,IAAI,OAAO;IAItB,QAAQ,IAAI;QACf,GAAG,EAAE,GAAG,CAAC;QACT,MAAM,EAAE,GAAG,CAAC,KAAK,CAAC,CAAC;QACnB,OAAO,EAAE,GAAG,CAAC,MAAM,EAAE,SAAS,CAAC,GAAG,IAAI,CAAC;QACvC,YAAY,EAAE,GAAG,CAAC,MAAM,EAAE,CAAC,SAAS,EAAE,sBAAsB,CAAC,CAAC,CAAC;QAC/D,KAAK,EAAE,IAAI,EAAE,CAAC;KACjB;IAQM,8BAA8B,IAAI;QACrC,GAAG,EAAE,GAAG,CAAC;QACT,MAAM,EAAE,GAAG,CAAC,KAAK,CAAC,CAAC;QACnB,OAAO,EAAE,GAAG,CAAC,MAAM,EAAE,SAAS,CAAC,GAAG,IAAI,CAAC;QACvC,YAAY,EAAE,GAAG,CAAC,MAAM,EAAE,CAAC,SAAS,EAAE,sBAAsB,CAAC,CAAC,CAAC;QAC/D,KAAK,EAAE,IAAI,EAAE,CAAC;KACjB;IA2CM,cAAc,IAAI;QACrB,GAAG,EAAE,GAAG,CAAC;QACT,MAAM,EAAE,GAAG,CAAC,KAAK,CAAC,CAAC;QACnB,OAAO,EAAE,GAAG,CAAC,MAAM,EAAE,SAAS,CAAC,GAAG,IAAI,CAAC;QACvC,YAAY,EAAE,GAAG,CAAC,MAAM,EAAE,CAAC,SAAS,EAAE,sBAAsB,CAAC,CAAC,CAAC;QAC/D,KAAK,EAAE,IAAI,EAAE,CAAC;KACjB;IAyBD,OAAO,CAAC,eAAe;IAWvB,OAAO,CAAC,aAAa;IAqDrB,OAAO,CAAC,kBAAkB;IAoB1B,OAAO,CAAC,YAAY;IAiBpB,OAAO,CAAC,SAAS;IA2BjB,OAAO,CAAC,eAAe;CAkB1B"}
1
+ {"version":3,"file":"CfgBuilder.d.ts","sourceRoot":"","sources":["../../../../src/core/graph/builder/CfgBuilder.ts"],"names":[],"mappings":"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"}
@@ -304,7 +304,8 @@ class CfgBuilder {
304
304
  loopExit.lasts.add(loopstm);
305
305
  loopstm.code = 'for (';
306
306
  if (ts.isForStatement(c)) {
307
- loopstm.code += ((_a = c.initializer) === null || _a === void 0 ? void 0 : _a.getText(this.sourceFile)) + '; ' + ((_b = c.condition) === null || _b === void 0 ? void 0 : _b.getText(this.sourceFile)) + '; ' + ((_c = c.incrementor) === null || _c === void 0 ? void 0 : _c.getText(this.sourceFile));
307
+ loopstm.code +=
308
+ ((_a = c.initializer) === null || _a === void 0 ? void 0 : _a.getText(this.sourceFile)) + '; ' + ((_b = c.condition) === null || _b === void 0 ? void 0 : _b.getText(this.sourceFile)) + '; ' + ((_c = c.incrementor) === null || _c === void 0 ? void 0 : _c.getText(this.sourceFile));
308
309
  }
309
310
  else if (ts.isForOfStatement(c)) {
310
311
  loopstm.code += ((_d = c.initializer) === null || _d === void 0 ? void 0 : _d.getText(this.sourceFile)) + ' of ' + c.expression.getText(this.sourceFile);
@@ -457,7 +458,7 @@ class CfgBuilder {
457
458
  this.walkAST(final, finalExit, [...c.finallyBlock.statements]);
458
459
  }
459
460
  else {
460
- let dummyFinally = new StatementBuilder('statement', 'dummyFinally', c, (new Scope(this.scopes.length)).id);
461
+ let dummyFinally = new StatementBuilder('statement', 'dummyFinally', c, new Scope(this.scopes.length).id);
461
462
  final.next = dummyFinally;
462
463
  dummyFinally.lasts.add(final);
463
464
  dummyFinally.next = finalExit;
@@ -610,12 +611,13 @@ class CfgBuilder {
610
611
  }
611
612
  addStmt2BlockStmtQueueInSpecialCase(stmt, stmtQueue) {
612
613
  if (stmt.next) {
613
- if ((stmt.type === 'continueStatement' || stmt.next.type === 'loopStatement') && stmt.next.block || stmt.next.type.includes('exit')) {
614
+ if (((stmt.type === 'continueStatement' || stmt.next.type === 'loopStatement') && stmt.next.block) || stmt.next.type.includes('exit')) {
614
615
  return null;
615
616
  }
616
617
  stmt.next.passTmies++;
617
618
  if (stmt.next.passTmies === stmt.next.lasts.size || stmt.next.type === 'loopStatement' || stmt.next.isDoWhile) {
618
- if (stmt.next.scopeID !== stmt.scopeID && !(stmt.next instanceof ConditionStatementBuilder && stmt.next.doStatement) &&
619
+ if (stmt.next.scopeID !== stmt.scopeID &&
620
+ !(stmt.next instanceof ConditionStatementBuilder && stmt.next.doStatement) &&
619
621
  !(ts.isCaseClause(stmt.astNode) || ts.isDefaultClause(stmt.astNode))) {
620
622
  stmtQueue.push(stmt.next);
621
623
  return null;
@@ -728,7 +730,7 @@ class CfgBuilder {
728
730
  buildBlocksNextLast() {
729
731
  for (let block of this.blocks) {
730
732
  for (let originStatement of block.stmts) {
731
- let isLastStatement = (block.stmts.indexOf(originStatement) === block.stmts.length - 1);
733
+ let isLastStatement = block.stmts.indexOf(originStatement) === block.stmts.length - 1;
732
734
  if (originStatement instanceof ConditionStatementBuilder) {
733
735
  this.buildConditionNextBlocks(originStatement, block, isLastStatement);
734
736
  }
@@ -925,9 +927,12 @@ class CfgBuilder {
925
927
  if (ts.isSourceFile(this.astRoot)) {
926
928
  stmts = [...this.astRoot.statements];
927
929
  }
928
- else if (ts.isFunctionDeclaration(this.astRoot) || ts.isMethodDeclaration(this.astRoot) ||
929
- ts.isConstructorDeclaration(this.astRoot) || ts.isGetAccessorDeclaration(this.astRoot) ||
930
- ts.isSetAccessorDeclaration(this.astRoot) || ts.isFunctionExpression(this.astRoot) ||
930
+ else if (ts.isFunctionDeclaration(this.astRoot) ||
931
+ ts.isMethodDeclaration(this.astRoot) ||
932
+ ts.isConstructorDeclaration(this.astRoot) ||
933
+ ts.isGetAccessorDeclaration(this.astRoot) ||
934
+ ts.isSetAccessorDeclaration(this.astRoot) ||
935
+ ts.isFunctionExpression(this.astRoot) ||
931
936
  ts.isClassStaticBlockDeclaration(this.astRoot)) {
932
937
  if (this.astRoot.body) {
933
938
  stmts = [...this.astRoot.body.statements];
@@ -941,8 +946,10 @@ class CfgBuilder {
941
946
  stmts = [...this.astRoot.body.statements];
942
947
  }
943
948
  }
944
- else if (ts.isMethodSignature(this.astRoot) || ts.isConstructSignatureDeclaration(this.astRoot) ||
945
- ts.isCallSignatureDeclaration(this.astRoot) || ts.isFunctionTypeNode(this.astRoot)) {
949
+ else if (ts.isMethodSignature(this.astRoot) ||
950
+ ts.isConstructSignatureDeclaration(this.astRoot) ||
951
+ ts.isCallSignatureDeclaration(this.astRoot) ||
952
+ ts.isFunctionTypeNode(this.astRoot)) {
946
953
  this.emptyBody = true;
947
954
  }
948
955
  else if (ts.isModuleDeclaration(this.astRoot) && ts.isModuleBlock(this.astRoot.body)) {
@@ -962,7 +969,7 @@ class CfgBuilder {
962
969
  this.CfgBuilder2Array(this.entry);
963
970
  this.addStmtBuilderPosition();
964
971
  this.buildBlocks();
965
- this.blocks = this.blocks.filter((b) => b.stmts.length !== 0);
972
+ this.blocks = this.blocks.filter(b => b.stmts.length !== 0);
966
973
  this.buildBlocksNextLast();
967
974
  this.addReturnStmt();
968
975
  }
@@ -1026,7 +1033,7 @@ class CfgBuilder {
1026
1033
  }
1027
1034
  buildNormalCfg() {
1028
1035
  const { blockBuilderToCfgBlock, basicBlockSet, arkIRTransformer } = this.initializeBuild();
1029
- const { blocksContainLoopCondition, blockBuildersBeforeTry, blockBuildersContainSwitch, valueAndStmtsOfSwitchAndCasesAll, } = this.processBlocks(blockBuilderToCfgBlock, basicBlockSet, arkIRTransformer);
1036
+ const { blocksContainLoopCondition, blockBuildersBeforeTry, blockBuildersContainSwitch, valueAndStmtsOfSwitchAndCasesAll } = this.processBlocks(blockBuilderToCfgBlock, basicBlockSet, arkIRTransformer);
1030
1037
  const currBlockId = this.blocks.length;
1031
1038
  this.linkBasicBlocks(blockBuilderToCfgBlock);
1032
1039
  this.adjustBlocks(blockBuilderToCfgBlock, blocksContainLoopCondition, basicBlockSet, blockBuildersContainSwitch, valueAndStmtsOfSwitchAndCasesAll, arkIRTransformer);
@@ -1087,7 +1094,9 @@ class CfgBuilder {
1087
1094
  blockBuilderToCfgBlock.set(this.blocks[i], blockInCfg);
1088
1095
  }
1089
1096
  return {
1090
- blocksContainLoopCondition, blockBuildersBeforeTry, blockBuildersContainSwitch,
1097
+ blocksContainLoopCondition,
1098
+ blockBuildersBeforeTry,
1099
+ blockBuildersContainSwitch,
1091
1100
  valueAndStmtsOfSwitchAndCasesAll,
1092
1101
  };
1093
1102
  }
@@ -1 +1 @@
1
- {"version":3,"file":"ConditionBuilder.d.ts","sourceRoot":"","sources":["../../../../src/core/graph/builder/ConditionBuilder.ts"],"names":[],"mappings":"AAeA,OAAO,EAAE,UAAU,EAAE,MAAM,eAAe,CAAC;AAM3C;;GAEG;AACH,qBAAa,gBAAgB;IAClB,uCAAuC,CAAC,aAAa,EAAE,GAAG,CAAC,UAAU,CAAC,EAAE,cAAc,EAAE,OAAO,GAAG,IAAI;IA8C7G,OAAO,CAAC,kDAAkD;IAqB1D,OAAO,CAAC,6CAA6C;IAkCrD,OAAO,CAAC,8CAA8C;IAoDtD,OAAO,CAAC,uCAAuC;IAc/C,OAAO,CAAC,kCAAkC;IAY1C,OAAO,CAAC,4BAA4B;IA4BpC,OAAO,CAAC,4CAA4C;IAqCpD,OAAO,CAAC,sBAAsB;CA4CjC"}
1
+ {"version":3,"file":"ConditionBuilder.d.ts","sourceRoot":"","sources":["../../../../src/core/graph/builder/ConditionBuilder.ts"],"names":[],"mappings":"AAeA,OAAO,EAAE,UAAU,EAAE,MAAM,eAAe,CAAC;AAM3C;;GAEG;AACH,qBAAa,gBAAgB;IAClB,uCAAuC,CAAC,aAAa,EAAE,GAAG,CAAC,UAAU,CAAC,EAAE,cAAc,EAAE,OAAO,GAAG,IAAI;IA4C7G,OAAO,CAAC,kDAAkD;IAuB1D,OAAO,CAAC,6CAA6C;IAmCrD,OAAO,CAAC,8CAA8C;IA8CtD,OAAO,CAAC,uCAAuC;IAc/C,OAAO,CAAC,kCAAkC;IAW1C,OAAO,CAAC,4BAA4B;IAyBpC,OAAO,CAAC,4CAA4C;IAmCpD,OAAO,CAAC,sBAAsB;CA0CjC"}
@@ -45,9 +45,10 @@ class ConditionBuilder {
45
45
  if (conditionalOperatorEndPos === -1) {
46
46
  continue;
47
47
  }
48
- let { generatedTopBlock: generatedTopBlock, generatedBottomBlocks: generatedBottomBlocks, } = this.generateBlocksContainConditionalOperatorGroup(stmtsInCurrBasicBlock.slice(0, conditionalOperatorEndPos + 1), basicBlockSet);
49
- if (conditionalOperatorEndPos !== stmtsCnt - 1) { // need create a new basic block for rest statements
50
- const { generatedTopBlock: extraBlock, } = this.generateBlockWithoutConditionalOperator(stmtsInCurrBasicBlock.slice(conditionalOperatorEndPos + 1));
48
+ let { generatedTopBlock: generatedTopBlock, generatedBottomBlocks: generatedBottomBlocks } = this.generateBlocksContainConditionalOperatorGroup(stmtsInCurrBasicBlock.slice(0, conditionalOperatorEndPos + 1), basicBlockSet);
49
+ if (conditionalOperatorEndPos !== stmtsCnt - 1) {
50
+ // need create a new basic block for rest statements
51
+ const { generatedTopBlock: extraBlock } = this.generateBlockWithoutConditionalOperator(stmtsInCurrBasicBlock.slice(conditionalOperatorEndPos + 1));
51
52
  generatedBottomBlocks.forEach(generatedBottomBlock => {
52
53
  generatedBottomBlock.addSuccessorBlock(extraBlock);
53
54
  extraBlock.addPredecessorBlock(generatedBottomBlock);
@@ -87,8 +88,9 @@ class ConditionBuilder {
87
88
  let generatedBottomBlocks = firstGeneratedBottomBlocks;
88
89
  firstGeneratedAllBlocks.forEach(block => basicBlockSet.add(block));
89
90
  const stmtsCnt = sourceStmts.length;
90
- if (firstEndPos !== stmtsCnt - 1) { // need handle other conditional operators
91
- const { generatedTopBlock: restGeneratedTopBlock, generatedBottomBlocks: restGeneratedBottomBlocks, } = this.generateBlocksContainConditionalOperatorGroup(sourceStmts.slice(firstEndPos + 1, stmtsCnt), basicBlockSet);
91
+ if (firstEndPos !== stmtsCnt - 1) {
92
+ // need handle other conditional operators
93
+ const { generatedTopBlock: restGeneratedTopBlock, generatedBottomBlocks: restGeneratedBottomBlocks } = this.generateBlocksContainConditionalOperatorGroup(sourceStmts.slice(firstEndPos + 1, stmtsCnt), basicBlockSet);
92
94
  firstGeneratedBottomBlocks.forEach(firstGeneratedBottomBlock => {
93
95
  firstGeneratedBottomBlock.addSuccessorBlock(restGeneratedTopBlock);
94
96
  restGeneratedTopBlock.addPredecessorBlock(firstGeneratedBottomBlock);
@@ -100,11 +102,11 @@ class ConditionBuilder {
100
102
  return { generatedTopBlock, generatedBottomBlocks };
101
103
  }
102
104
  generateBlocksContainSingleConditionalOperator(sourceStmts) {
103
- const { firstIfTruePos: ifTruePos, firstIfFalsePos: ifFalsePos, firstEndPos: endPos, } = this.findFirstConditionalOperator(sourceStmts);
105
+ const { firstIfTruePos: ifTruePos, firstIfFalsePos: ifFalsePos, firstEndPos: endPos } = this.findFirstConditionalOperator(sourceStmts);
104
106
  if (endPos === -1) {
105
107
  return this.generateBlockWithoutConditionalOperator(sourceStmts);
106
108
  }
107
- const { generatedTopBlock: generatedTopBlock, generatedAllBlocks: generatedAllBlocks, } = this.generateBlockWithoutConditionalOperator(sourceStmts.slice(0, ifTruePos));
109
+ const { generatedTopBlock: generatedTopBlock, generatedAllBlocks: generatedAllBlocks } = this.generateBlockWithoutConditionalOperator(sourceStmts.slice(0, ifTruePos));
108
110
  let generatedBottomBlocks = [];
109
111
  const { generatedTopBlock: generatedTopBlockOfTrueBranch, generatedBottomBlocks: generatedBottomBlocksOfTrueBranch, generatedAllBlocks: generatedAllBlocksOfTrueBranch, } = this.generateBlocksContainSingleConditionalOperator(sourceStmts.slice(ifTruePos + 1, ifFalsePos));
110
112
  generatedBottomBlocks.push(...generatedBottomBlocksOfTrueBranch);
@@ -117,8 +119,9 @@ class ConditionBuilder {
117
119
  generatedTopBlock.addSuccessorBlock(generatedTopBlockOfFalseBranch);
118
120
  generatedTopBlockOfFalseBranch.addPredecessorBlock(generatedTopBlock);
119
121
  const stmtsCnt = sourceStmts.length;
120
- if (endPos !== stmtsCnt - 1) { // need create a new basic block for rest statements
121
- const { generatedTopBlock: extraBlock, } = this.generateBlockWithoutConditionalOperator(sourceStmts.slice(endPos + 1));
122
+ if (endPos !== stmtsCnt - 1) {
123
+ // need create a new basic block for rest statements
124
+ const { generatedTopBlock: extraBlock } = this.generateBlockWithoutConditionalOperator(sourceStmts.slice(endPos + 1));
122
125
  generatedBottomBlocks.forEach(generatedBottomBlock => {
123
126
  generatedBottomBlock.addSuccessorBlock(extraBlock);
124
127
  extraBlock.addPredecessorBlock(generatedBottomBlock);
@@ -156,19 +159,14 @@ class ConditionBuilder {
156
159
  for (let i = 0; i < stmts.length; i++) {
157
160
  const stmt = stmts[i];
158
161
  if (stmt instanceof ArkIRTransformer_1.DummyStmt) {
159
- if (stmt.toString()
160
- .startsWith(ArkIRTransformer_1.ArkIRTransformer.DUMMY_CONDITIONAL_OPERATOR_IF_TRUE_STMT) && firstIfTruePos ===
161
- -1) {
162
+ if (stmt.toString().startsWith(ArkIRTransformer_1.ArkIRTransformer.DUMMY_CONDITIONAL_OPERATOR_IF_TRUE_STMT) && firstIfTruePos === -1) {
162
163
  firstIfTruePos = i;
163
- firstConditionalOperatorNo =
164
- stmt.toString().replace(ArkIRTransformer_1.ArkIRTransformer.DUMMY_CONDITIONAL_OPERATOR_IF_TRUE_STMT, '');
164
+ firstConditionalOperatorNo = stmt.toString().replace(ArkIRTransformer_1.ArkIRTransformer.DUMMY_CONDITIONAL_OPERATOR_IF_TRUE_STMT, '');
165
165
  }
166
- else if (stmt.toString() === ArkIRTransformer_1.ArkIRTransformer.DUMMY_CONDITIONAL_OPERATOR_IF_FALSE_STMT +
167
- firstConditionalOperatorNo) {
166
+ else if (stmt.toString() === ArkIRTransformer_1.ArkIRTransformer.DUMMY_CONDITIONAL_OPERATOR_IF_FALSE_STMT + firstConditionalOperatorNo) {
168
167
  firstIfFalsePos = i;
169
168
  }
170
- else if (stmt.toString() === ArkIRTransformer_1.ArkIRTransformer.DUMMY_CONDITIONAL_OPERATOR_END_STMT +
171
- firstConditionalOperatorNo) {
169
+ else if (stmt.toString() === ArkIRTransformer_1.ArkIRTransformer.DUMMY_CONDITIONAL_OPERATOR_END_STMT + firstConditionalOperatorNo) {
172
170
  firstEndPos = i;
173
171
  }
174
172
  }
@@ -192,14 +190,15 @@ class ConditionBuilder {
192
190
  newPredecessors.push(...this.replaceTempRecursively(predecessor, targetValue, tempResultValue, allBlocks));
193
191
  }
194
192
  bottomBlock.remove(firstStmtInBottom);
195
- if (bottomBlock.getStmts().length === 0) { // must be a new block without successors
193
+ if (bottomBlock.getStmts().length === 0) {
194
+ // must be a new block without successors
196
195
  allBlocks.delete(bottomBlock);
197
196
  return newPredecessors;
198
197
  }
199
- oldPredecessors.forEach((oldPredecessor) => {
198
+ oldPredecessors.forEach(oldPredecessor => {
200
199
  bottomBlock.removePredecessorBlock(oldPredecessor);
201
200
  });
202
- newPredecessors.forEach((newPredecessor) => {
201
+ newPredecessors.forEach(newPredecessor => {
203
202
  bottomBlock.addPredecessorBlock(newPredecessor);
204
203
  newPredecessor.addSuccessorBlock(bottomBlock);
205
204
  });
@@ -237,7 +236,7 @@ class ConditionBuilder {
237
236
  }
238
237
  else {
239
238
  currBottomBlock.getPredecessors().splice(0, oldPredecessors.length, ...newPredecessors);
240
- newPredecessors.forEach((newPredecessor) => {
239
+ newPredecessors.forEach(newPredecessor => {
241
240
  newPredecessor.addSuccessorBlock(currBottomBlock);
242
241
  });
243
242
  newBottomBlocks = [currBottomBlock];
@@ -1 +1 @@
1
- {"version":3,"file":"LoopBuilder.d.ts","sourceRoot":"","sources":["../../../../src/core/graph/builder/LoopBuilder.ts"],"names":[],"mappings":"AAeA,OAAO,EAAE,UAAU,EAAE,MAAM,eAAe,CAAC;AAK3C,OAAO,EAAE,YAAY,EAAE,MAAM,cAAc,CAAC;AAE5C;;GAEG;AACH,qBAAa,WAAW;IACb,mBAAmB,CAAC,sBAAsB,EAAE,GAAG,CAAC,YAAY,EAAE,UAAU,CAAC,EACrD,0BAA0B,EAAE,GAAG,CAAC,YAAY,CAAC,EAC7C,aAAa,EAAE,GAAG,CAAC,UAAU,CAAC,EAAE,aAAa,EAAE,YAAY,EAAE,GAAG,IAAI;IAwD/F,OAAO,CAAC,+BAA+B;IAYvC,OAAO,CAAC,iCAAiC;IAqCzC,OAAO,CAAC,eAAe;IAKvB,OAAO,CAAC,6BAA6B;IA2BrC,OAAO,CAAC,kBAAkB;IAmB1B,OAAO,CAAC,mBAAmB;IAiB3B,OAAO,CAAC,kBAAkB;IAmB1B,OAAO,CAAC,gBAAgB;IAqBxB,OAAO,CAAC,2BAA2B;IAWnC,OAAO,CAAC,iBAAiB;IAYzB,OAAO,CAAC,eAAe;IAiCvB,OAAO,CAAC,sBAAsB;CA4CjC"}
1
+ {"version":3,"file":"LoopBuilder.d.ts","sourceRoot":"","sources":["../../../../src/core/graph/builder/LoopBuilder.ts"],"names":[],"mappings":"AAeA,OAAO,EAAE,UAAU,EAAE,MAAM,eAAe,CAAC;AAK3C,OAAO,EAAE,YAAY,EAAE,MAAM,cAAc,CAAC;AAE5C;;GAEG;AACH,qBAAa,WAAW;IACb,mBAAmB,CACtB,sBAAsB,EAAE,GAAG,CAAC,YAAY,EAAE,UAAU,CAAC,EACrD,0BAA0B,EAAE,GAAG,CAAC,YAAY,CAAC,EAC7C,aAAa,EAAE,GAAG,CAAC,UAAU,CAAC,EAC9B,aAAa,EAAE,YAAY,EAAE,GAC9B,IAAI;IAoEP,OAAO,CAAC,+BAA+B;IAWvC,OAAO,CAAC,iCAAiC;IAuDzC,OAAO,CAAC,eAAe;IAIvB,OAAO,CAAC,6BAA6B;IAgCrC,OAAO,CAAC,kBAAkB;IAmB1B,OAAO,CAAC,mBAAmB;IAoB3B,OAAO,CAAC,kBAAkB;IAmB1B,OAAO,CAAC,gBAAgB;IA2BxB,OAAO,CAAC,2BAA2B;IAWnC,OAAO,CAAC,iBAAiB;IAYzB,OAAO,CAAC,eAAe;IAkCvB,OAAO,CAAC,sBAAsB;CAgDjC"}
@@ -36,8 +36,7 @@ class LoopBuilder {
36
36
  const stmtsCnt = stmts.length;
37
37
  const { ifStmtIdx, iteratorNextStmtIdx, dummyInitializerStmtIdx } = this.findIteratorIdx(stmts);
38
38
  if (iteratorNextStmtIdx !== -1 || dummyInitializerStmtIdx !== -1) {
39
- const lastStmtIdxBeforeCondition = iteratorNextStmtIdx !==
40
- -1 ? iteratorNextStmtIdx : dummyInitializerStmtIdx;
39
+ const lastStmtIdxBeforeCondition = iteratorNextStmtIdx !== -1 ? iteratorNextStmtIdx : dummyInitializerStmtIdx;
41
40
  const stmtsInsertBeforeCondition = stmts.slice(0, lastStmtIdxBeforeCondition);
42
41
  // If the loop body is empty, the loop conditional block should contain its own
43
42
  const emptyLoopBody = blockBuilder.nexts.length === 1;
@@ -69,8 +68,7 @@ class LoopBuilder {
69
68
  blockAfterCondition === null || blockAfterCondition === void 0 ? void 0 : blockAfterCondition.getStmts().splice(0, 0, ...stmtsAfterCondition);
70
69
  }
71
70
  // remove statements which should not in condition
72
- const firstStmtIdxInCondition = iteratorNextStmtIdx !==
73
- -1 ? iteratorNextStmtIdx : dummyInitializerStmtIdx + 1;
71
+ const firstStmtIdxInCondition = iteratorNextStmtIdx !== -1 ? iteratorNextStmtIdx : dummyInitializerStmtIdx + 1;
74
72
  stmts.splice(0, firstStmtIdxInCondition);
75
73
  stmts.splice(ifStmtIdx - firstStmtIdxInCondition + 1);
76
74
  }
@@ -92,8 +90,8 @@ class LoopBuilder {
92
90
  }
93
91
  const blockId = conditionBlockBuilder.id;
94
92
  const block = this.getBlockFromMap(blockBuilderToCfgBlock, conditionBlockBuilder);
95
- const { blockBuildersBeforeCondition, blocksBeforeCondition, blockBuildersReenterCondition, blocksReenterCondition, } = this.collectBlocksBeforeAndReenter(blockBuilderToCfgBlock, conditionBlockBuilder, blockId);
96
- const { collectedBlockBuilders, collectedBlocks, } = this.getCollectedBlocks(collectReenter, blockBuildersBeforeCondition, blocksBeforeCondition, blockBuildersReenterCondition, blocksReenterCondition);
93
+ const { blockBuildersBeforeCondition, blocksBeforeCondition, blockBuildersReenterCondition, blocksReenterCondition } = this.collectBlocksBeforeAndReenter(blockBuilderToCfgBlock, conditionBlockBuilder, blockId);
94
+ const { collectedBlockBuilders, collectedBlocks } = this.getCollectedBlocks(collectReenter, blockBuildersBeforeCondition, blocksBeforeCondition, blockBuildersReenterCondition, blocksReenterCondition);
97
95
  const { blockBuilderInsertBeforeCondition, blockInsertBeforeCondition } = this.createAndLinkBlocks(collectedBlockBuilders, collectedBlocks, conditionBlockBuilder, stmtsInsertBeforeCondition, block);
98
96
  this.updatePredecessors(collectedBlockBuilders, blockBuilderToCfgBlock, conditionBlockBuilder, blockBuilderInsertBeforeCondition, blockInsertBeforeCondition);
99
97
  const { newPrevBlockBuildersBeforeCondition, newPrevBlocksBeforeCondition } = this.getNewPrevBlocks(collectReenter, blockBuildersBeforeCondition, blocksBeforeCondition, blockBuilderInsertBeforeCondition, blockInsertBeforeCondition, blockBuildersReenterCondition, blocksReenterCondition);
@@ -120,7 +118,10 @@ class LoopBuilder {
120
118
  }
121
119
  }
122
120
  return {
123
- blockBuildersBeforeCondition, blocksBeforeCondition, blockBuildersReenterCondition, blocksReenterCondition,
121
+ blockBuildersBeforeCondition,
122
+ blocksBeforeCondition,
123
+ blockBuildersReenterCondition,
124
+ blocksReenterCondition,
124
125
  };
125
126
  }
126
127
  getCollectedBlocks(collectReenter, blockBuildersBeforeCondition, blocksBeforeCondition, blockBuildersReenterCondition, blocksReenterCondition) {
@@ -169,7 +170,10 @@ class LoopBuilder {
169
170
  newPrevBlockBuildersBeforeCondition = [blockBuilderInsertBeforeCondition, ...blockBuildersReenterCondition];
170
171
  newPrevBlocksBeforeCondition = [blockInsertBeforeCondition, ...blocksReenterCondition];
171
172
  }
172
- return { newPrevBlockBuildersBeforeCondition, newPrevBlocksBeforeCondition };
173
+ return {
174
+ newPrevBlockBuildersBeforeCondition,
175
+ newPrevBlocksBeforeCondition,
176
+ };
173
177
  }
174
178
  updateConditionBlockBuilder(conditionBlockBuilder, newPrevBlockBuildersBeforeCondition, block, newPrevBlocksBeforeCondition) {
175
179
  conditionBlockBuilder.lasts = newPrevBlockBuildersBeforeCondition;
@@ -190,8 +194,7 @@ class LoopBuilder {
190
194
  const stmt = stmts[i];
191
195
  if (stmt instanceof Stmt_1.ArkAssignStmt && stmt.getRightOp() instanceof Expr_1.AbstractInvokeExpr) {
192
196
  const invokeExpr = stmt.getRightOp();
193
- if (invokeExpr.getMethodSignature().getMethodSubSignature()
194
- .getMethodName() === Builtin_1.Builtin.ITERATOR_NEXT) {
197
+ if (invokeExpr.getMethodSignature().getMethodSubSignature().getMethodName() === Builtin_1.Builtin.ITERATOR_NEXT) {
195
198
  iteratorNextStmtIdx = i;
196
199
  continue;
197
200
  }
@@ -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,EAA0B,MAAM,cAAc,CAAC;AAKpE;;GAEG;AACH,qBAAa,aAAa;IACf,WAAW,CAAC,sBAAsB,EAAE,GAAG,CAAC,YAAY,EAAE,UAAU,CAAC,EACrD,0BAA0B,EAAE,YAAY,EAAE,EAC1C,gCAAgC,EAAE,aAAa,EAAE,EAAE,EAAE,gBAAgB,EAAE,gBAAgB,EACvF,aAAa,EAAE,GAAG,CAAC,UAAU,CAAC,GAAG,IAAI;IAsCxD,OAAO,CAAC,wBAAwB;IAiChC,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,EAA0B,MAAM,cAAc,CAAC;AAKpE;;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;CAmDlC"}
@@ -63,7 +63,8 @@ class SwitchBuilder {
63
63
  const cases = switchStmtBuilder.cases;
64
64
  let nonEmptyCaseCnt = 0;
65
65
  for (const currCase of cases) {
66
- if (currCase.stmt.block) { // there are stmts after this case
66
+ if (currCase.stmt.block) {
67
+ // there are stmts after this case
67
68
  nonEmptyCaseCnt++;
68
69
  }
69
70
  }
@@ -124,12 +125,13 @@ class SwitchBuilder {
124
125
  if (currCase.stmt.block) {
125
126
  expectedSuccessorsOfCaseIfBlock.push(...successorsOfBlockContainSwitch.splice(-1, 1));
126
127
  }
127
- else { // if there are no stmts after this case, reuse the successor of the next case
128
+ else {
129
+ // if there are no stmts after this case, reuse the successor of the next case
128
130
  expectedSuccessorsOfCaseIfBlock.push(...expectedSuccessorsOfCaseIfBlock.slice(-1));
129
131
  }
130
132
  }
131
133
  expectedSuccessorsOfCaseIfBlock.reverse();
132
- blockContainSwitch.getSuccessors().forEach((successor) => {
134
+ blockContainSwitch.getSuccessors().forEach(successor => {
133
135
  successor.getPredecessors().splice(0, 1);
134
136
  });
135
137
  blockContainSwitch.getSuccessors().splice(0);
@@ -137,7 +139,8 @@ class SwitchBuilder {
137
139
  const caseIfBlock = caseIfBlocks[j];
138
140
  caseIfBlock.addSuccessorBlock(expectedSuccessorsOfCaseIfBlock[j]);
139
141
  expectedSuccessorsOfCaseIfBlock[j].addPredecessorBlock(caseIfBlock);
140
- if (j === caseCnt - 1) { // the false branch of last case should be default or block after switch statement
142
+ if (j === caseCnt - 1) {
143
+ // the false branch of last case should be default or block after switch statement
141
144
  caseIfBlock.addSuccessorBlock(expectedSuccessorsOfCaseIfBlock[j + 1]);
142
145
  expectedSuccessorsOfCaseIfBlock[j + 1].addPredecessorBlock(caseIfBlock);
143
146
  }
@@ -1 +1 @@
1
- {"version":3,"file":"TrapBuilder.d.ts","sourceRoot":"","sources":["../../../../src/core/graph/builder/TrapBuilder.ts"],"names":[],"mappings":"AAeA,OAAO,EAAE,UAAU,EAAE,MAAM,eAAe,CAAC;AAC3C,OAAO,EAAE,gBAAgB,EAAE,MAAM,+BAA+B,CAAC;AACjE,OAAO,EAAE,IAAI,EAAE,MAAM,iBAAiB,CAAC;AAavC,OAAO,EAAE,YAAY,EAAuB,MAAM,cAAc,CAAC;AAKjE;;GAEG;AACH,qBAAa,WAAW;IACb,UAAU,CAAC,sBAAsB,EAAE,GAAG,CAAC,YAAY,EAAE,UAAU,CAAC,EAAE,sBAAsB,EAAE,GAAG,CAAC,YAAY,CAAC,EAChG,gBAAgB,EAAE,gBAAgB,EAAE,aAAa,EAAE,GAAG,CAAC,UAAU,CAAC,GAAG,IAAI,EAAE;IA+C7F,OAAO,CAAC,qBAAqB;IA6C7B,OAAO,CAAC,wBAAwB;IAoChC,OAAO,CAAC,eAAe;IAoCvB,OAAO,CAAC,iBAAiB;IAmCzB,OAAO,CAAC,UAAU;IAyBlB,OAAO,CAAC,QAAQ;CAgBnB"}
1
+ {"version":3,"file":"TrapBuilder.d.ts","sourceRoot":"","sources":["../../../../src/core/graph/builder/TrapBuilder.ts"],"names":[],"mappings":"AAeA,OAAO,EAAE,UAAU,EAAE,MAAM,eAAe,CAAC;AAC3C,OAAO,EAAE,gBAAgB,EAAE,MAAM,+BAA+B,CAAC;AACjE,OAAO,EAAE,IAAI,EAAE,MAAM,iBAAiB,CAAC;AAKvC,OAAO,EAAE,YAAY,EAAuB,MAAM,cAAc,CAAC;AAKjE;;GAEG;AACH,qBAAa,WAAW;IACb,UAAU,CACb,sBAAsB,EAAE,GAAG,CAAC,YAAY,EAAE,UAAU,CAAC,EACrD,sBAAsB,EAAE,GAAG,CAAC,YAAY,CAAC,EACzC,gBAAgB,EAAE,gBAAgB,EAClC,aAAa,EAAE,GAAG,CAAC,UAAU,CAAC,GAC/B,IAAI,EAAE;IAiET,OAAO,CAAC,qBAAqB;IAmD7B,OAAO,CAAC,wBAAwB;IA2ChC,OAAO,CAAC,eAAe;IAuCvB,OAAO,CAAC,iBAAiB;IAmCzB,OAAO,CAAC,UAAU;IAyBlB,OAAO,CAAC,QAAQ;CAgBnB"}