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
@@ -27,21 +27,28 @@ const ArkSignature_1 = require("../model/ArkSignature");
27
27
  const ModelUtils_1 = require("./ModelUtils");
28
28
  const Local_1 = require("../base/Local");
29
29
  const path_1 = __importDefault(require("path"));
30
- const IRInference_1 = require("./IRInference");
31
30
  const Type_1 = require("../base/Type");
32
31
  const ArkNamespace_1 = require("../model/ArkNamespace");
32
+ const TypeInference_1 = require("./TypeInference");
33
33
  class SdkUtils {
34
- static buildGlobalMap(file, globalMap) {
35
- var _a, _b, _c, _d;
34
+ static buildSdkImportMap(file) {
36
35
  const fileName = path_1.default.basename(file.getName());
37
36
  if (fileName.startsWith('@')) {
38
- ModelUtils_1.sdkImportMap.set(fileName.replace(/\.d\.e?ts$/, ''), file);
37
+ this.sdkImportMap.set(fileName.replace(/\.d\.e?ts$/, ''), file);
39
38
  }
40
- const isGlobalPath = (_a = file.getScene().getOptions().sdkGlobalFolders) === null || _a === void 0 ? void 0 : _a.find(x => file.getFilePath().includes(path_1.default.sep + x + path_1.default.sep));
39
+ }
40
+ static getImportSdkFile(from) {
41
+ return this.sdkImportMap.get(from);
42
+ }
43
+ static buildGlobalMap(file, globalMap) {
44
+ var _a, _b, _c, _d;
45
+ const isGlobalPath = (_a = file
46
+ .getScene()
47
+ .getOptions()
48
+ .sdkGlobalFolders) === null || _a === void 0 ? void 0 : _a.find(x => file.getFilePath().includes(path_1.default.sep + x + path_1.default.sep));
41
49
  if (!isGlobalPath) {
42
50
  return;
43
51
  }
44
- IRInference_1.IRInference.inferFile(file);
45
52
  ModelUtils_1.ModelUtils.getAllClassesInFile(file).forEach(cls => {
46
53
  if (!cls.isAnonymousClass() && !cls.isDefaultArkClass()) {
47
54
  SdkUtils.loadClass(globalMap, cls);
@@ -53,6 +60,9 @@ class SdkUtils {
53
60
  }
54
61
  });
55
62
  const defaultArkMethod = file.getDefaultClass().getDefaultArkMethod();
63
+ if (defaultArkMethod) {
64
+ TypeInference_1.TypeInference.inferTypeInMethod(defaultArkMethod);
65
+ }
56
66
  (_b = defaultArkMethod === null || defaultArkMethod === void 0 ? void 0 : defaultArkMethod.getBody()) === null || _b === void 0 ? void 0 : _b.getLocals().forEach(local => {
57
67
  const name = local.getName();
58
68
  if (name !== TSConst_1.THIS_NAME && !name.startsWith(Const_1.TEMP_LOCAL_PREFIX)) {
@@ -86,7 +96,10 @@ class SdkUtils {
86
96
  const instance = globalMap.get(name + 'Interface');
87
97
  const attr = globalMap.get(name + EtsConst_1.COMPONENT_ATTRIBUTE);
88
98
  if (attr instanceof ArkClass_1.ArkClass && instance instanceof ArkClass_1.ArkClass) {
89
- instance.getMethods().filter(m => !attr.getMethodWithName(m.getName())).forEach(m => attr.addMethod(m));
99
+ instance
100
+ .getMethods()
101
+ .filter(m => !attr.getMethodWithName(m.getName()))
102
+ .forEach(m => attr.addMethod(m));
90
103
  globalMap.set(name, attr);
91
104
  return;
92
105
  }
@@ -98,7 +111,10 @@ class SdkUtils {
98
111
  else if (old instanceof ArkClass_1.ArkClass && local.getType() instanceof Type_1.ClassType) {
99
112
  const localConstructor = scene.getClass(local.getType().getClassSignature());
100
113
  if (localConstructor) {
101
- localConstructor.getMethods().filter(m => !old.getMethodWithName(m.getName())).forEach(m => old.addMethod(m));
114
+ localConstructor
115
+ .getMethods()
116
+ .filter(m => !old.getMethodWithName(m.getName()))
117
+ .forEach(m => old.addMethod(m));
102
118
  }
103
119
  }
104
120
  }
@@ -118,10 +134,13 @@ class SdkUtils {
118
134
  static computeGlobalThis(leftOp, arkMethod) {
119
135
  const globalThis = arkMethod.getDeclaringArkFile().getScene().getSdkGlobal(TSConst_1.GLOBAL_THIS_NAME);
120
136
  if (globalThis instanceof ArkNamespace_1.ArkNamespace) {
121
- const exportInfo = new ArkExport_1.ExportInfo.Builder().exportClauseName(leftOp.getFieldName())
122
- .arkExport(new Local_1.Local(leftOp.getFieldName(), leftOp.getType())).build();
137
+ const exportInfo = new ArkExport_1.ExportInfo.Builder()
138
+ .exportClauseName(leftOp.getFieldName())
139
+ .arkExport(new Local_1.Local(leftOp.getFieldName(), leftOp.getType()))
140
+ .build();
123
141
  globalThis.addExportInfo(exportInfo);
124
142
  }
125
143
  }
126
144
  }
127
145
  exports.SdkUtils = SdkUtils;
146
+ SdkUtils.sdkImportMap = new Map();
@@ -1 +1 @@
1
- {"version":3,"file":"StmtDefReplacer.d.ts","sourceRoot":"","sources":["../../../src/core/common/StmtDefReplacer.ts"],"names":[],"mappings":"AAeA,OAAO,EAAE,KAAK,EAAE,MAAM,eAAe,CAAC;AACtC,OAAO,EAAiB,IAAI,EAAE,MAAM,cAAc,CAAC;AAGnD;;GAEG;AACH,qBAAa,eAAe;IACxB,OAAO,CAAC,MAAM,CAAQ;IACtB,OAAO,CAAC,MAAM,CAAQ;gBAEV,MAAM,EAAE,KAAK,EAAE,MAAM,EAAE,KAAK;IAKjC,QAAQ,CAAC,IAAI,EAAE,IAAI,GAAG,IAAI;IAMjC,OAAO,CAAC,cAAc;CAQzB"}
1
+ {"version":3,"file":"StmtDefReplacer.d.ts","sourceRoot":"","sources":["../../../src/core/common/StmtDefReplacer.ts"],"names":[],"mappings":"AAeA,OAAO,EAAE,KAAK,EAAE,MAAM,eAAe,CAAC;AACtC,OAAO,EAAiB,IAAI,EAAE,MAAM,cAAc,CAAC;AAGnD;;GAEG;AACH,qBAAa,eAAe;IACxB,OAAO,CAAC,MAAM,CAAQ;IACtB,OAAO,CAAC,MAAM,CAAQ;gBAEV,MAAM,EAAE,KAAK,EAAE,MAAM,EAAE,KAAK;IAKjC,QAAQ,CAAC,IAAI,EAAE,IAAI,GAAG,IAAI;IAMjC,OAAO,CAAC,cAAc;CAOzB"}
@@ -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":"StmtUseReplacer.d.ts","sourceRoot":"","sources":["../../../src/core/common/StmtUseReplacer.ts"],"names":[],"mappings":"AAiBA,OAAO,EAAwE,IAAI,EAAE,MAAM,cAAc,CAAC;AAC1G,OAAO,EAAE,KAAK,EAAE,MAAM,eAAe,CAAC;AAKtC;;GAEG;AACH,qBAAa,eAAe;IACxB,OAAO,CAAC,MAAM,CAAQ;IACtB,OAAO,CAAC,MAAM,CAAQ;gBAEV,MAAM,EAAE,KAAK,EAAE,MAAM,EAAE,KAAK;IAKjC,QAAQ,CAAC,IAAI,EAAE,IAAI,GAAG,IAAI;IAcjC,OAAO,CAAC,cAAc;IAoBtB,OAAO,CAAC,cAAc;IAatB,OAAO,CAAC,cAAc;IAOtB,OAAO,CAAC,UAAU;IAalB,OAAO,CAAC,aAAa;CAQxB"}
1
+ {"version":3,"file":"StmtUseReplacer.d.ts","sourceRoot":"","sources":["../../../src/core/common/StmtUseReplacer.ts"],"names":[],"mappings":"AAiBA,OAAO,EAAwE,IAAI,EAAE,MAAM,cAAc,CAAC;AAC1G,OAAO,EAAE,KAAK,EAAE,MAAM,eAAe,CAAC;AAKtC;;GAEG;AACH,qBAAa,eAAe;IACxB,OAAO,CAAC,MAAM,CAAQ;IACtB,OAAO,CAAC,MAAM,CAAQ;gBAEV,MAAM,EAAE,KAAK,EAAE,MAAM,EAAE,KAAK;IAKjC,QAAQ,CAAC,IAAI,EAAE,IAAI,GAAG,IAAI;IAcjC,OAAO,CAAC,cAAc;IAoBtB,OAAO,CAAC,cAAc;IAatB,OAAO,CAAC,cAAc;IAOtB,OAAO,CAAC,UAAU;IAalB,OAAO,CAAC,aAAa;CAMxB"}
@@ -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":"TSConst.d.ts","sourceRoot":"","sources":["../../../src/core/common/TSConst.ts"],"names":[],"mappings":"AAeA,eAAO,MAAM,gBAAgB,gBAAgB,CAAC;AAC9C,eAAO,MAAM,UAAU,UAAU,CAAC;AAClC,eAAO,MAAM,SAAS,SAAS,CAAC;AAChC,eAAO,MAAM,gBAAgB,EAAE,MAAqB,CAAA;AAEpD,eAAO,MAAM,OAAO,YAAY,CAAC;AAEjC,eAAO,MAAM,GAAG,MAAM,CAAC;AAEvB,eAAO,MAAM,MAAM,WAAW,CAAC;AAC/B,eAAO,MAAM,OAAO,YAAY,CAAC;AACjC,eAAO,MAAM,QAAQ,aAAa,CAAC;AAGnC,eAAO,MAAM,eAAe,mBAAmB,CAAC;AAChD,eAAO,MAAM,YAAY,SAAS,CAAC;AACnC,eAAO,MAAM,iBAAiB,cAAc,CAAC;AAC7C,eAAO,MAAM,WAAW,QAAQ,CAAC;AACjC,eAAO,MAAM,eAAe,YAAY,CAAC;AACzC,eAAO,MAAM,eAAe,YAAY,CAAC;AACzC,eAAO,MAAM,cAAc,WAAW,CAAC;AACvC,eAAO,MAAM,cAAc,WAAW,CAAC;AACvC,eAAO,MAAM,YAAY,SAAS,CAAC;AACnC,eAAO,MAAM,aAAa,UAAU,CAAC;AACrC,eAAO,MAAM,cAAc,WAAW,CAAC;AACvC,eAAO,MAAM,aAAa,kBAAkB,CAAC"}
1
+ {"version":3,"file":"TSConst.d.ts","sourceRoot":"","sources":["../../../src/core/common/TSConst.ts"],"names":[],"mappings":"AAeA,eAAO,MAAM,gBAAgB,gBAAgB,CAAC;AAC9C,eAAO,MAAM,UAAU,UAAU,CAAC;AAClC,eAAO,MAAM,SAAS,SAAS,CAAC;AAChC,eAAO,MAAM,gBAAgB,EAAE,MAAqB,CAAC;AAErD,eAAO,MAAM,OAAO,YAAY,CAAC;AAEjC,eAAO,MAAM,GAAG,MAAM,CAAC;AAEvB,eAAO,MAAM,MAAM,WAAW,CAAC;AAC/B,eAAO,MAAM,OAAO,YAAY,CAAC;AACjC,eAAO,MAAM,QAAQ,aAAa,CAAC;AAGnC,eAAO,MAAM,eAAe,mBAAmB,CAAC;AAChD,eAAO,MAAM,YAAY,SAAS,CAAC;AACnC,eAAO,MAAM,iBAAiB,cAAc,CAAC;AAC7C,eAAO,MAAM,WAAW,QAAQ,CAAC;AACjC,eAAO,MAAM,eAAe,YAAY,CAAC;AACzC,eAAO,MAAM,eAAe,YAAY,CAAC;AACzC,eAAO,MAAM,cAAc,WAAW,CAAC;AACvC,eAAO,MAAM,cAAc,WAAW,CAAC;AACvC,eAAO,MAAM,YAAY,SAAS,CAAC;AACnC,eAAO,MAAM,aAAa,UAAU,CAAC;AACrC,eAAO,MAAM,cAAc,WAAW,CAAC;AACvC,eAAO,MAAM,aAAa,kBAAkB,CAAC"}
@@ -1 +1 @@
1
- {"version":3,"file":"TypeInference.d.ts","sourceRoot":"","sources":["../../../src/core/common/TypeInference.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"TypeInference.d.ts","sourceRoot":"","sources":["../../../src/core/common/TypeInference.ts"],"names":[],"mappings":"AAmBA,OAAO,EAAwD,IAAI,EAAE,MAAM,cAAc,CAAC;AAC1F,OAAO,EASH,YAAY,EACZ,WAAW,EAOX,IAAI,EACJ,oBAAoB,EAKvB,MAAM,cAAc,CAAC;AACtB,OAAO,EAAE,SAAS,EAAE,MAAM,oBAAoB,CAAC;AAC/C,OAAO,EAAE,SAAS,EAAE,MAAM,oBAAoB,CAAC;AAC/C,OAAO,EAAE,QAAQ,EAAiB,MAAM,mBAAmB,CAAC;AAC5D,OAAO,EAAE,QAAQ,EAAE,MAAM,mBAAmB,CAAC;AAC7C,OAAO,EAAE,KAAK,EAAE,MAAM,eAAe,CAAC;AAsBtC,OAAO,EAAE,eAAe,EAAE,kBAAkB,EAAsB,MAAM,uBAAuB,CAAC;AAYhG,qBAAa,aAAa;WACR,mBAAmB,CAAC,QAAQ,EAAE,QAAQ,GAAG,IAAI;IAmC3D;;;;;;;;;OASG;WACW,kBAAkB,CAAC,UAAU,EAAE,IAAI,EAAE,iBAAiB,EAAE,QAAQ,EAAE,OAAO,GAAE,GAAG,CAAC,IAAI,CAAa,GAAG,IAAI,GAAG,IAAI,GAAG,SAAS;WAsC1H,iBAAiB,CAAC,SAAS,EAAE,SAAS,GAAG,IAAI;IA8B3D,OAAO,CAAC,MAAM,CAAC,WAAW;IAY1B;;;OAGG;WACW,uBAAuB,CAAC,SAAS,EAAE,SAAS,GAAG,IAAI;IAcjE;;;OAGG;IACH,OAAO,CAAC,MAAM,CAAC,kBAAkB;IAejC;;OAEG;IACH,OAAO,CAAC,MAAM,CAAC,sBAAsB;IAMrC;;OAEG;IACH,OAAO,CAAC,MAAM,CAAC,sBAAsB;IAsBrC,OAAO,CAAC,MAAM,CAAC,UAAU;WAgBX,mBAAmB,CAAC,SAAS,EAAE,SAAS,GAAG,SAAS,GAAG,IAAI,GAAG,IAAI,GAAG,IAAI;IAsBvF;;;;OAIG;WACW,oBAAoB,CAAC,IAAI,EAAE,IAAI,EAAE,SAAS,EAAE,SAAS,GAAG,IAAI;IAmB1E,OAAO,CAAC,MAAM,CAAC,aAAa;IAsC5B,OAAO,CAAC,MAAM,CAAC,YAAY;WAQb,aAAa,CAAC,IAAI,EAAE,IAAI,GAAG,IAAI,GAAG,SAAS,GAAG,OAAO;IA4BnE,OAAO,CAAC,MAAM,CAAC,uBAAuB;WAsBxB,qBAAqB,CAAC,IAAI,EAAE,IAAI,GAAG,IAAI;WAcvC,gBAAgB,CAAC,OAAO,EAAE,MAAM,GAAG,IAAI;WA6BvC,cAAc,CAAC,KAAK,EAAE,KAAK,EAAE,SAAS,EAAE,SAAS,GAAG,IAAI,GAAG,IAAI;IAU7E,OAAO,CAAC,MAAM,CAAC,kBAAkB;WAgBnB,wBAAwB,CAAC,YAAY,EAAE,eAAe,EAAE,SAAS,EAAE,SAAS,GAAG,IAAI;IAgCjG,OAAO,CAAC,MAAM,CAAC,eAAe;WA0BhB,gBAAgB,CAAC,KAAK,EAAE,WAAW,EAAE,GAAG,SAAS,EAAE,QAAQ,EAAE,QAAQ,GAAG,IAAI;IAmB1F;;;;;;;OAOG;WACW,mBAAmB,CAAC,MAAM,EAAE,oBAAoB,EAAE,QAAQ,EAAE,QAAQ,GAAG,IAAI,GAAG,IAAI;IAUhG;;;;;;;OAOG;WACW,mBAAmB,CAAC,OAAO,EAAE,MAAM,EAAE,QAAQ,EAAE,QAAQ,GAAG,IAAI,GAAG,IAAI;IAoCnF;;;;;;;;;OASG;WACW,cAAc,CAAC,QAAQ,EAAE,IAAI,EAAE,SAAS,EAAE,MAAM,EAAE,YAAY,EAAE,QAAQ,GAAG,CAAC,GAAG,EAAE,IAAI,CAAC,GAAG,IAAI;IAkC3G,OAAO,CAAC,MAAM,CAAC,mBAAmB;IA8BlC;;;;;;;OAOG;WACW,aAAa,CAAC,QAAQ,EAAE,MAAM,EAAE,QAAQ,EAAE,QAAQ,GAAG,IAAI,GAAG,IAAI;WAoBhE,eAAe,CAAC,QAAQ,EAAE,MAAM,EAAE,QAAQ,EAAE,QAAQ,GAAG,IAAI,GAAG,IAAI;WAiBlE,qBAAqB,CAAC,SAAS,EAAE,IAAI,EAAE,GAAG,SAAS,EAAE,QAAQ,EAAE,QAAQ,GAAG,IAAI;WAe9E,sBAAsB,CAAC,IAAI,EAAE,MAAM,EAAE,QAAQ,EAAE,QAAQ,GAAG,IAAI,GAAG,IAAI;WASrE,mBAAmB,CAAC,IAAI,EAAE,IAAI,EAAE,SAAS,CAAC,EAAE,IAAI,EAAE,EAAE,OAAO,GAAE,GAAG,CAAC,IAAI,CAAa,GAAG,IAAI;WAgBzF,oBAAoB,CAAC,IAAI,EAAE,IAAI,EAAE,OAAO,EAAE,GAAG,CAAC,IAAI,CAAC,EAAE,SAAS,CAAC,EAAE,IAAI,EAAE,GAAG,IAAI;WAkC9E,gBAAgB,CAAC,IAAI,EAAE,IAAI,GAAG,IAAI;WAQlC,iBAAiB,CAAC,OAAO,EAAE,YAAY,EAAE,iBAAiB,EAAE,kBAAkB,GAAG,SAAS,EAAE,SAAS,EAAE,IAAI,EAAE,GAAG,SAAS,GAAG,IAAI;IA0B9I,OAAO,CAAC,MAAM,CAAC,oBAAoB;CAYtC"}
@@ -116,8 +116,7 @@ class TypeInference {
116
116
  visited.add(leftOpType);
117
117
  }
118
118
  let type;
119
- if (leftOpType instanceof Type_1.ClassType &&
120
- leftOpType.getClassSignature().getDeclaringFileSignature().getFileName() === Const_1.UNKNOWN_FILE_NAME) {
119
+ if (leftOpType instanceof Type_1.ClassType && leftOpType.getClassSignature().getDeclaringFileSignature().getFileName() === Const_1.UNKNOWN_FILE_NAME) {
121
120
  type = TypeInference.inferUnclearRefName(leftOpType.getClassSignature().getClassName(), declaringArkClass);
122
121
  }
123
122
  else if (leftOpType instanceof Type_1.UnionType || leftOpType instanceof Type_1.IntersectionType || leftOpType instanceof Type_1.TupleType) {
@@ -163,7 +162,9 @@ class TypeInference {
163
162
  signatures.push(impl);
164
163
  }
165
164
  signatures.forEach(s => {
166
- s.getMethodSubSignature().getParameters().forEach(p => {
165
+ s.getMethodSubSignature()
166
+ .getParameters()
167
+ .forEach(p => {
167
168
  this.inferParameterType(p, arkMethod);
168
169
  });
169
170
  });
@@ -216,8 +217,8 @@ class TypeInference {
216
217
  static resolveExprsInStmt(stmt, arkMethod) {
217
218
  for (const expr of stmt.getExprs()) {
218
219
  const newExpr = expr.inferType(arkMethod);
219
- if (stmt.containsInvokeExpr() && ((expr instanceof Expr_1.ArkInstanceInvokeExpr && newExpr instanceof Expr_1.ArkStaticInvokeExpr) ||
220
- newExpr instanceof Expr_1.ArkPtrInvokeExpr)) {
220
+ if (stmt.containsInvokeExpr() &&
221
+ ((expr instanceof Expr_1.ArkInstanceInvokeExpr && newExpr instanceof Expr_1.ArkStaticInvokeExpr) || newExpr instanceof Expr_1.ArkPtrInvokeExpr)) {
221
222
  stmt.replaceUse(expr, newExpr);
222
223
  }
223
224
  }
@@ -244,8 +245,10 @@ class TypeInference {
244
245
  }
245
246
  const stmtDef = stmt.getDef();
246
247
  if (stmtDef && stmtDef instanceof Ref_1.AbstractRef) {
247
- if (arkMethod.getName() === Const_1.INSTANCE_INIT_METHOD_NAME && stmtDef instanceof Ref_1.ArkInstanceFieldRef &&
248
- stmtDef.getBase().getName() === TSConst_1.THIS_NAME && arkMethod.getDeclaringArkClass().isAnonymousClass() &&
248
+ if (arkMethod.getName() === Const_1.INSTANCE_INIT_METHOD_NAME &&
249
+ stmtDef instanceof Ref_1.ArkInstanceFieldRef &&
250
+ stmtDef.getBase().getName() === TSConst_1.THIS_NAME &&
251
+ arkMethod.getDeclaringArkClass().isAnonymousClass() &&
249
252
  stmtDef.getFieldName().indexOf('.') === -1) {
250
253
  return;
251
254
  }
@@ -371,14 +374,14 @@ class TypeInference {
371
374
  static isUnclearType(type) {
372
375
  var _a;
373
376
  // TODO: For UnionType, IntersectionType and TupleType, it should recurse check every item of them.
374
- if (!type || type instanceof Type_1.UnknownType || type instanceof Type_1.UnclearReferenceType
375
- || type instanceof Type_1.NullType || type instanceof Type_1.UndefinedType) {
377
+ if (!type || type instanceof Type_1.UnknownType || type instanceof Type_1.UnclearReferenceType || type instanceof Type_1.NullType || type instanceof Type_1.UndefinedType) {
376
378
  return true;
377
379
  }
378
- else if (type instanceof Type_1.ClassType && (type.getClassSignature().getDeclaringFileSignature().getFileName() === Const_1.UNKNOWN_FILE_NAME ||
379
- (type.getClassSignature().getClassName() === TSConst_1.PROMISE && !type.getRealGenericTypes()) ||
380
- (type.getClassSignature().getDeclaringFileSignature().getFileName() === Builtin_1.Builtin.DUMMY_FILE_NAME &&
381
- ((_a = type.getRealGenericTypes()) === null || _a === void 0 ? void 0 : _a.find(t => t instanceof Type_1.GenericType))))) {
380
+ else if (type instanceof Type_1.ClassType &&
381
+ (type.getClassSignature().getDeclaringFileSignature().getFileName() === Const_1.UNKNOWN_FILE_NAME ||
382
+ (type.getClassSignature().getClassName() === TSConst_1.PROMISE && !type.getRealGenericTypes()) ||
383
+ (type.getClassSignature().getDeclaringFileSignature().getFileName() === Builtin_1.Builtin.DUMMY_FILE_NAME &&
384
+ ((_a = type.getRealGenericTypes()) === null || _a === void 0 ? void 0 : _a.find(t => t instanceof Type_1.GenericType))))) {
382
385
  return true;
383
386
  }
384
387
  else if (type instanceof Type_1.UnionType || type instanceof Type_1.IntersectionType || type instanceof Type_1.TupleType) {
@@ -528,7 +531,9 @@ class TypeInference {
528
531
  for (let returnValue of arkMethod.getReturnValues()) {
529
532
  const type = returnValue.getType();
530
533
  if (type instanceof Type_1.UnionType) {
531
- type.flatType().filter(t => !TypeInference.isUnclearType(t)).forEach(t => typeMap.set(t.toString(), t));
534
+ type.flatType()
535
+ .filter(t => !TypeInference.isUnclearType(t))
536
+ .forEach(t => typeMap.set(t.toString(), t));
532
537
  }
533
538
  else if (!TypeInference.isUnclearType(type)) {
534
539
  typeMap.set(type.toString(), type);
@@ -648,8 +653,8 @@ class TypeInference {
648
653
  }
649
654
  let propertyAndType = null;
650
655
  if (baseType instanceof Type_1.ClassType) {
651
- if (fieldName === Builtin_1.Builtin.ITERATOR_RESULT_VALUE && baseType.getClassSignature()
652
- .getDeclaringFileSignature().getProjectName() === Builtin_1.Builtin.DUMMY_PROJECT_NAME) {
656
+ if (fieldName === Builtin_1.Builtin.ITERATOR_RESULT_VALUE &&
657
+ baseType.getClassSignature().getDeclaringFileSignature().getProjectName() === Builtin_1.Builtin.DUMMY_PROJECT_NAME) {
653
658
  const types = baseType.getRealGenericTypes();
654
659
  if (types && types.length > 0) {
655
660
  return [null, types[0]];
@@ -840,7 +845,10 @@ class TypeInference {
840
845
  if (!params) {
841
846
  return;
842
847
  }
843
- argType.getMethodSignature().getMethodSubSignature().getParameters()
848
+ argType
849
+ .getMethodSignature()
850
+ .getMethodSubSignature()
851
+ .getParameters()
844
852
  .filter(p => !p.getName().startsWith(Const_1.LEXICAL_ENV_NAME_PREFIX))
845
853
  .forEach((p, i) => {
846
854
  var _a;
@@ -1 +1 @@
1
- {"version":3,"file":"ValueUtil.d.ts","sourceRoot":"","sources":["../../../src/core/common/ValueUtil.ts"],"names":[],"mappings":"AAeA,OAAO,EACH,cAAc,EAEd,QAAQ,EAGR,cAAc,EAEjB,MAAM,kBAAkB,CAAC;AAE1B,eAAO,MAAM,YAAY,KAAK,CAAC;AAE/B,qBAAa,SAAS;IAClB,OAAO,CAAC,MAAM,CAAC,QAAQ,CAAC,mBAAmB,CAAoC;IAC/E,gBAAuB,qBAAqB,iBAAoC;WAElE,sBAAsB,CAAC,CAAC,EAAE,MAAM,GAAG,QAAQ;WAS3C,iBAAiB,CAAC,MAAM,EAAE,MAAM,GAAG,cAAc;WAIjD,iBAAiB,CAAC,GAAG,EAAE,MAAM,GAAG,QAAQ;WAOxC,WAAW,CAAC,GAAG,EAAE,MAAM,GAAG,QAAQ;WAQlC,iBAAiB,IAAI,QAAQ;WAI7B,eAAe,IAAI,QAAQ;WAI3B,kBAAkB,CAAC,KAAK,EAAE,OAAO,GAAG,QAAQ;CAG7D"}
1
+ {"version":3,"file":"ValueUtil.d.ts","sourceRoot":"","sources":["../../../src/core/common/ValueUtil.ts"],"names":[],"mappings":"AAeA,OAAO,EAAE,cAAc,EAAmB,QAAQ,EAAgC,cAAc,EAAqB,MAAM,kBAAkB,CAAC;AAE9I,eAAO,MAAM,YAAY,KAAK,CAAC;AAE/B,qBAAa,SAAS;IAClB,OAAO,CAAC,MAAM,CAAC,QAAQ,CAAC,mBAAmB,CAAoC;IAC/E,gBAAuB,qBAAqB,iBAAoC;WAElE,sBAAsB,CAAC,CAAC,EAAE,MAAM,GAAG,QAAQ;WAS3C,iBAAiB,CAAC,MAAM,EAAE,MAAM,GAAG,cAAc;WAIjD,iBAAiB,CAAC,GAAG,EAAE,MAAM,GAAG,QAAQ;WAOxC,WAAW,CAAC,GAAG,EAAE,MAAM,GAAG,QAAQ;WAQlC,iBAAiB,IAAI,QAAQ;WAI7B,eAAe,IAAI,QAAQ;WAI3B,kBAAkB,CAAC,KAAK,EAAE,OAAO,GAAG,QAAQ;CAG7D"}
@@ -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":"VisibleValue.d.ts","sourceRoot":"","sources":["../../../src/core/common/VisibleValue.ts"],"names":[],"mappings":"AAoBA,OAAO,EAAE,KAAK,EAAE,MAAM,eAAe,CAAC;AACtC,OAAO,EAAE,UAAU,EAAE,MAAM,qBAAqB,CAAC;AACjD,OAAO,EAAE,QAAQ,EAAE,MAAM,mBAAmB,CAAC;AAC7C,OAAO,EAAE,OAAO,EAAE,MAAM,kBAAkB,CAAC;AAC3C,OAAO,EAAE,SAAS,EAAE,MAAM,oBAAoB,CAAC;AAC/C,OAAO,EAAE,YAAY,EAAE,MAAM,uBAAuB,CAAC;AAIrD,qBAAa,YAAY;IACrB,OAAO,CAAC,UAAU,CAAU;IAC5B,OAAO,CAAC,SAAS,CAAQ;IACzB,OAAO,CAAC,iBAAiB,CAAU;;IASnC,+CAA+C;IACxC,oBAAoB,IAAI,KAAK,EAAE;IAI/B,aAAa,IAAI,KAAK,EAAE;IAI/B,6EAA6E;IACtE,eAAe,CAAC,KAAK,EAAE,QAAQ,GAAG,IAAI;IA2B7C,0EAA0E;IACnE,cAAc,IAAI,IAAI;IAuB7B,8BAA8B;IAC9B,OAAO,CAAC,WAAW;IAsBnB,8DAA8D;IAC9D,OAAO,CAAC,QAAQ;IAQhB,OAAO,CAAC,cAAc;IAuBtB,OAAO,CAAC,mCAAmC;IAM3C,OAAO,CAAC,yBAAyB;IAgBjC,OAAO,CAAC,0BAA0B;IAKlC,OAAO,CAAC,8BAA8B;CASzC;AAGD,KAAK,QAAQ,GAAG,OAAO,GAAG,YAAY,GAAG,QAAQ,GAAG,SAAS,GAAG,UAAU,CAAC;AAE3E,qBAAa,KAAK;IACP,MAAM,EAAE,KAAK,EAAE,CAAC;IAChB,KAAK,EAAE,MAAM,CAAC;IACd,QAAQ,EAAE,QAAQ,GAAG,IAAI,CAAC;gBACrB,MAAM,EAAE,KAAK,EAAE,EAAE,KAAK,GAAE,MAAW,EAAE,QAAQ,GAAE,QAAQ,GAAG,IAAW;CAKpF"}
1
+ {"version":3,"file":"VisibleValue.d.ts","sourceRoot":"","sources":["../../../src/core/common/VisibleValue.ts"],"names":[],"mappings":"AAoBA,OAAO,EAAE,KAAK,EAAE,MAAM,eAAe,CAAC;AACtC,OAAO,EAAE,UAAU,EAAE,MAAM,qBAAqB,CAAC;AACjD,OAAO,EAAE,QAAQ,EAAE,MAAM,mBAAmB,CAAC;AAC7C,OAAO,EAAE,OAAO,EAAE,MAAM,kBAAkB,CAAC;AAC3C,OAAO,EAAE,SAAS,EAAE,MAAM,oBAAoB,CAAC;AAC/C,OAAO,EAAE,YAAY,EAAE,MAAM,uBAAuB,CAAC;AAIrD,qBAAa,YAAY;IACrB,OAAO,CAAC,UAAU,CAAU;IAC5B,OAAO,CAAC,SAAS,CAAQ;IACzB,OAAO,CAAC,iBAAiB,CAAU;;IASnC,+CAA+C;IACxC,oBAAoB,IAAI,KAAK,EAAE;IAI/B,aAAa,IAAI,KAAK,EAAE;IAI/B,6EAA6E;IACtE,eAAe,CAAC,KAAK,EAAE,QAAQ,GAAG,IAAI;IA0B7C,0EAA0E;IACnE,cAAc,IAAI,IAAI;IAsB7B,8BAA8B;IAC9B,OAAO,CAAC,WAAW;IAsBnB,8DAA8D;IAC9D,OAAO,CAAC,QAAQ;IAQhB,OAAO,CAAC,cAAc;IAuBtB,OAAO,CAAC,mCAAmC;IAK3C,OAAO,CAAC,yBAAyB;IAgBjC,OAAO,CAAC,0BAA0B;IAKlC,OAAO,CAAC,8BAA8B;CASzC;AAED,KAAK,QAAQ,GAAG,OAAO,GAAG,YAAY,GAAG,QAAQ,GAAG,SAAS,GAAG,UAAU,CAAC;AAE3E,qBAAa,KAAK;IACP,MAAM,EAAE,KAAK,EAAE,CAAC;IAChB,KAAK,EAAE,MAAM,CAAC;IACd,QAAQ,EAAE,QAAQ,GAAG,IAAI,CAAC;gBACrB,MAAM,EAAE,KAAK,EAAE,EAAE,KAAK,GAAE,MAAW,EAAE,QAAQ,GAAE,QAAQ,GAAG,IAAW;CAKpF"}
@@ -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
@@ -153,16 +153,16 @@ class VisibleValue {
153
153
  targetDepth = prevDepth;
154
154
  }
155
155
  }
156
- else if ((model instanceof ArkFile_1.ArkFile) && (prevModel instanceof ArkFile_1.ArkFile)) {
156
+ else if (model instanceof ArkFile_1.ArkFile && prevModel instanceof ArkFile_1.ArkFile) {
157
157
  targetDepth = prevDepth;
158
158
  }
159
- else if ((model instanceof ArkNamespace_1.ArkNamespace) && (prevModel instanceof ArkNamespace_1.ArkNamespace)) {
159
+ else if (model instanceof ArkNamespace_1.ArkNamespace && prevModel instanceof ArkNamespace_1.ArkNamespace) {
160
160
  targetDepth = prevDepth;
161
161
  }
162
- else if ((model instanceof ArkClass_1.ArkClass) && (prevModel instanceof ArkClass_1.ArkClass)) {
162
+ else if (model instanceof ArkClass_1.ArkClass && prevModel instanceof ArkClass_1.ArkClass) {
163
163
  targetDepth = prevDepth;
164
164
  }
165
- else if ((model instanceof ArkMethod_1.ArkMethod) && (prevModel instanceof ArkMethod_1.ArkMethod)) {
165
+ else if (model instanceof ArkMethod_1.ArkMethod && prevModel instanceof ArkMethod_1.ArkMethod) {
166
166
  targetDepth = prevDepth;
167
167
  }
168
168
  return targetDepth;
@@ -1 +1 @@
1
- {"version":3,"file":"DataflowProblem.d.ts","sourceRoot":"","sources":["../../../src/core/dataflow/DataflowProblem.ts"],"names":[],"mappings":"AAeA,OAAO,EAAE,IAAI,EAAE,MAAM,cAAc,CAAC;AACpC,OAAO,EAAE,SAAS,EAAE,MAAM,oBAAoB,CAAC;AAE/C,8BAAsB,eAAe,CAAC,CAAC;IAEnC;;;;OAIG;IAWH,QAAQ,CAAC,qBAAqB,CAAC,OAAO,EAAC,IAAI,EAAE,OAAO,EAAC,IAAI,GAAI,YAAY,CAAC,CAAC,CAAC;IAE5E,QAAQ,CAAC,mBAAmB,CAAC,OAAO,EAAC,IAAI,EAAE,MAAM,EAAC,SAAS,GAAI,YAAY,CAAC,CAAC,CAAC;IAE9E,QAAQ,CAAC,2BAA2B,CAAC,OAAO,EAAC,IAAI,EAAE,OAAO,EAAC,IAAI,EAAE,QAAQ,EAAC,IAAI,GAAI,YAAY,CAAC,CAAC,CAAC;IAEjG,QAAQ,CAAC,2BAA2B,CAAC,OAAO,EAAC,IAAI,EAAE,OAAO,EAAC,IAAI,GAAI,YAAY,CAAC,CAAC,CAAC;IAElF,QAAQ,CAAC,eAAe,IAAK,CAAC;IAE9B,QAAQ,CAAC,aAAa,IAAK,IAAI;IAE/B,QAAQ,CAAC,cAAc,IAAK,SAAS;IAErC,QAAQ,CAAC,SAAS,CAAC,EAAE,EAAE,CAAC,EAAE,EAAE,EAAE,CAAC,GAAG,OAAO;CAC5C;AAED,MAAM,WAAW,YAAY,CAAC,CAAC;IAC3B,YAAY,CAAC,CAAC,EAAC,CAAC,GAAI,GAAG,CAAC,CAAC,CAAC,CAAC;CAC9B"}
1
+ {"version":3,"file":"DataflowProblem.d.ts","sourceRoot":"","sources":["../../../src/core/dataflow/DataflowProblem.ts"],"names":[],"mappings":"AAeA,OAAO,EAAE,IAAI,EAAE,MAAM,cAAc,CAAC;AACpC,OAAO,EAAE,SAAS,EAAE,MAAM,oBAAoB,CAAC;AAE/C,8BAAsB,eAAe,CAAC,CAAC;IACnC;;;;OAIG;IAWH,QAAQ,CAAC,qBAAqB,CAAC,OAAO,EAAE,IAAI,EAAE,OAAO,EAAE,IAAI,GAAG,YAAY,CAAC,CAAC,CAAC;IAE7E,QAAQ,CAAC,mBAAmB,CAAC,OAAO,EAAE,IAAI,EAAE,MAAM,EAAE,SAAS,GAAG,YAAY,CAAC,CAAC,CAAC;IAE/E,QAAQ,CAAC,2BAA2B,CAAC,OAAO,EAAE,IAAI,EAAE,OAAO,EAAE,IAAI,EAAE,QAAQ,EAAE,IAAI,GAAG,YAAY,CAAC,CAAC,CAAC;IAEnG,QAAQ,CAAC,2BAA2B,CAAC,OAAO,EAAE,IAAI,EAAE,OAAO,EAAE,IAAI,GAAG,YAAY,CAAC,CAAC,CAAC;IAEnF,QAAQ,CAAC,eAAe,IAAI,CAAC;IAE7B,QAAQ,CAAC,aAAa,IAAI,IAAI;IAE9B,QAAQ,CAAC,cAAc,IAAI,SAAS;IAEpC,QAAQ,CAAC,SAAS,CAAC,EAAE,EAAE,CAAC,EAAE,EAAE,EAAE,CAAC,GAAG,OAAO;CAC5C;AAED,MAAM,WAAW,YAAY,CAAC,CAAC;IAC3B,YAAY,CAAC,CAAC,EAAE,CAAC,GAAG,GAAG,CAAC,CAAC,CAAC,CAAC;CAC9B"}
@@ -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 +1 @@
1
- {"version":3,"file":"DataflowSolver.d.ts","sourceRoot":"","sources":["../../../src/core/dataflow/DataflowSolver.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"DataflowSolver.d.ts","sourceRoot":"","sources":["../../../src/core/dataflow/DataflowSolver.ts"],"names":[],"mappings":"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"}
@@ -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
@@ -122,8 +122,10 @@ class DataflowSolver {
122
122
  pathEdgeSetHasEdge(edge) {
123
123
  for (const path of this.pathEdgeSet) {
124
124
  this.problem.factEqual(path.edgeEnd.fact, edge.edgeEnd.fact);
125
- if (path.edgeEnd.node === edge.edgeEnd.node && this.problem.factEqual(path.edgeEnd.fact, edge.edgeEnd.fact) &&
126
- path.edgeStart.node === edge.edgeStart.node && this.problem.factEqual(path.edgeStart.fact, edge.edgeStart.fact)) {
125
+ if (path.edgeEnd.node === edge.edgeEnd.node &&
126
+ this.problem.factEqual(path.edgeEnd.fact, edge.edgeEnd.fact) &&
127
+ path.edgeStart.node === edge.edgeStart.node &&
128
+ this.problem.factEqual(path.edgeStart.fact, edge.edgeStart.fact)) {
127
129
  return true;
128
130
  }
129
131
  }
@@ -1 +1 @@
1
- {"version":3,"file":"Edge.d.ts","sourceRoot":"","sources":["../../../src/core/dataflow/Edge.ts"],"names":[],"mappings":"AAeA,OAAO,EAAE,IAAI,EAAE,MAAM,cAAc,CAAC;AAEpC,qBAAa,aAAa,CAAC,CAAC;IACjB,IAAI,EAAC,IAAI,CAAC;IACV,IAAI,EAAC,CAAC,CAAC;gBAEF,IAAI,EAAC,IAAI,EAAE,IAAI,EAAC,CAAC;CAIhC;AAED,qBAAa,QAAQ,CAAC,CAAC;IACZ,SAAS,EAAC,aAAa,CAAC,CAAC,CAAC,CAAC;IAC3B,OAAO,EAAC,aAAa,CAAC,CAAC,CAAC,CAAC;gBAEpB,KAAK,EAAC,aAAa,CAAC,CAAC,CAAC,EAAE,GAAG,EAAC,aAAa,CAAC,CAAC,CAAC;CAI3D"}
1
+ {"version":3,"file":"Edge.d.ts","sourceRoot":"","sources":["../../../src/core/dataflow/Edge.ts"],"names":[],"mappings":"AAeA,OAAO,EAAE,IAAI,EAAE,MAAM,cAAc,CAAC;AAEpC,qBAAa,aAAa,CAAC,CAAC;IACjB,IAAI,EAAE,IAAI,CAAC;IACX,IAAI,EAAE,CAAC,CAAC;gBAEH,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,CAAC;CAIlC;AAED,qBAAa,QAAQ,CAAC,CAAC;IACZ,SAAS,EAAE,aAAa,CAAC,CAAC,CAAC,CAAC;IAC5B,OAAO,EAAE,aAAa,CAAC,CAAC,CAAC,CAAC;gBAErB,KAAK,EAAE,aAAa,CAAC,CAAC,CAAC,EAAE,GAAG,EAAE,aAAa,CAAC,CAAC,CAAC;CAI7D"}
@@ -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
@@ -52,11 +52,11 @@ class MFPDataFlowSolver {
52
52
  let newEntries = new Set();
53
53
  while (workList.length > 0) {
54
54
  newEntries.clear();
55
- workList.forEach((n) => {
55
+ workList.forEach(n => {
56
56
  let inSet;
57
57
  const predecessors = problem.flowGraph.pred(n);
58
58
  if (predecessors && predecessors.length > 0) {
59
- const predecessorOuts = predecessors.map((pred) => _out.get(pred));
59
+ const predecessorOuts = predecessors.map(pred => _out.get(pred));
60
60
  inSet = predecessorOuts.reduce((acc, cur) => problem.meet(acc, cur), problem.empty);
61
61
  }
62
62
  else {
@@ -67,7 +67,7 @@ class MFPDataFlowSolver {
67
67
  let newSet = problem.transferFunction.apply(n, inSet);
68
68
  if (!old || old.count() === 0 || !old.equals(newSet)) {
69
69
  _out.set(n, newSet);
70
- problem.flowGraph.succ(n).forEach((succ) => newEntries.add(succ));
70
+ problem.flowGraph.succ(n).forEach(succ => newEntries.add(succ));
71
71
  }
72
72
  });
73
73
  workList = [...newEntries];
@@ -89,7 +89,7 @@ class MFPDataFlowSolver {
89
89
  let newEntries = new Set();
90
90
  while (workList.length > 0) {
91
91
  newEntries.clear();
92
- workList.forEach((n) => {
92
+ workList.forEach(n => {
93
93
  let outSet = problem.flowGraph.succ(n).reduce((acc, curr) => {
94
94
  return problem.meet(acc, _in.get(curr));
95
95
  }, problem.empty);
@@ -98,7 +98,7 @@ class MFPDataFlowSolver {
98
98
  let newSet = problem.transferFunction.apply(n, outSet);
99
99
  if (!old || !old.equals(newSet)) {
100
100
  _in.set(n, newSet);
101
- problem.flowGraph.pred(n).forEach((pred) => newEntries.add(pred));
101
+ problem.flowGraph.pred(n).forEach(pred => newEntries.add(pred));
102
102
  }
103
103
  });
104
104
  workList = [...newEntries];
@@ -52,8 +52,8 @@ class ReachingDefProblem {
52
52
  r.unionWith(y);
53
53
  return r;
54
54
  };
55
- this.initIn = new Map(this.flowGraph.nodesInPostOrder.map((i) => [i, new coCtor(BV_SIZE)]));
56
- this.initOut = new Map(this.flowGraph.nodesInPostOrder.map((i) => [i, new coCtor(BV_SIZE)]));
55
+ this.initIn = new Map(this.flowGraph.nodesInPostOrder.map(i => [i, new coCtor(BV_SIZE)]));
56
+ this.initOut = new Map(this.flowGraph.nodesInPostOrder.map(i => [i, new coCtor(BV_SIZE)]));
57
57
  this.forward = forward;
58
58
  }
59
59
  }
@@ -86,7 +86,7 @@ class ReachingDefFlowGraph extends BaseImplicitGraph_1.BaseImplicitGraph {
86
86
  initSuccPred(nodes, cfg) {
87
87
  this.succMap = new Map();
88
88
  this.predMap = new Map();
89
- cfg.getBlocks().forEach((bb) => {
89
+ cfg.getBlocks().forEach(bb => {
90
90
  let stmts = bb.getStmts();
91
91
  if (stmts.length === 0) {
92
92
  return;
@@ -104,7 +104,7 @@ class ReachingDefFlowGraph extends BaseImplicitGraph_1.BaseImplicitGraph {
104
104
  if (!terminate) {
105
105
  throw new Error('cfg has no terminal');
106
106
  }
107
- bb.getSuccessors().forEach((succBB) => {
107
+ bb.getSuccessors().forEach(succBB => {
108
108
  var _a, _b, _c, _d;
109
109
  let head = succBB.getHead();
110
110
  if (!head) {
@@ -1 +1 @@
1
- {"version":3,"file":"UndefinedVariable.d.ts","sourceRoot":"","sources":["../../../src/core/dataflow/UndefinedVariable.ts"],"names":[],"mappings":"AAeA,OAAO,EAAE,KAAK,EAAE,MAAM,aAAa,CAAC;AACpC,OAAO,EAAE,eAAe,EAAE,YAAY,EAAE,MAAM,mBAAmB,CAAC;AAClE,OAAO,EAAE,KAAK,EAAE,MAAM,eAAe,CAAC;AACtC,OAAO,EAAE,KAAK,EAAE,MAAM,eAAe,CAAC;AAEtC,OAAO,EAAE,aAAa,EAAiB,IAAI,EAAE,MAAM,cAAc,CAAC;AAClE,OAAO,EAAE,SAAS,EAAE,MAAM,oBAAoB,CAAC;AAC/C,OAAO,EAAE,QAAQ,EAAE,MAAM,kBAAkB,CAAC;AAE5C,OAAO,EAAE,cAAc,EAAE,MAAM,kBAAkB,CAAC;AAElD,OAAO,EAAE,aAAa,EAAE,kBAAkB,EAAE,MAAM,uBAAuB,CAAC;AAC1E,OAAO,EAAE,QAAQ,EAAE,MAAM,mBAAmB,CAAC;AAG7C,OAAO,EAAE,QAAQ,EAAE,MAAM,mBAAmB,CAAC;AAK7C,qBAAa,wBAAyB,SAAQ,eAAe,CAAC,KAAK,CAAC;IAChE,SAAS,EAAE,QAAQ,CAA0D;IAC7E,UAAU,EAAE,IAAI,CAAC;IACjB,WAAW,EAAE,SAAS,CAAC;IACvB,KAAK,EAAE,KAAK,CAAC;IACb,QAAQ,EAAE,GAAG,CAAC,aAAa,GAAG,kBAAkB,EAAE,QAAQ,EAAE,CAAC,CAAC;IAC9D,iBAAiB,EAAE,GAAG,CAAC,aAAa,GAAG,kBAAkB,EAAE,KAAK,EAAE,CAAC,CAAC;IACpE,QAAQ,EAAE,OAAO,EAAE,CAAM;gBACb,IAAI,EAAE,IAAI,EAAE,MAAM,EAAE,SAAS;IASzC,aAAa,IAAI,IAAI;IAIrB,cAAc,IAAI,SAAS;IAI3B,OAAO,CAAC,WAAW;IAUnB,qBAAqB,CAAC,OAAO,EAAC,IAAI,EAAE,OAAO,EAAC,IAAI,GAAG,YAAY,CAAC,KAAK,CAAC;IAiBtE,wBAAwB,CAAC,GAAG,EAAE,GAAG,CAAC,KAAK,CAAC,EAAE,OAAO,EAAE,aAAa,EAAE,QAAQ,EAAE,KAAK,GAAG,IAAI;IA6BxF,mBAAmB,CAAC,OAAO,EAAC,IAAI,EAAE,MAAM,EAAC,SAAS,GAAG,YAAY,CAAC,KAAK,CAAC;IAuBxE,sBAAsB,CAAC,GAAG,EAAE,GAAG,CAAC,KAAK,CAAC,EAAE,MAAM,EAAE,SAAS,GAAG,IAAI;IAmBhE,iBAAiB,CAAC,KAAK,EAAE,QAAQ,EAAE,MAAM,EAAE,SAAS,EAAE,GAAG,EAAE,GAAG,CAAC,KAAK,CAAC,GAAG,IAAI;IAe5E,aAAa,CAAC,OAAO,EAAE,IAAI,EAAE,QAAQ,EAAE,KAAK,EAAE,MAAM,EAAE,SAAS,EAAE,GAAG,EAAE,GAAG,CAAC,KAAK,CAAC,GAAG,IAAI;IAmBvF,2BAA2B,CAAC,OAAO,EAAC,IAAI,EAAE,OAAO,EAAC,IAAI,EAAE,QAAQ,EAAC,IAAI,GAAG,YAAY,CAAC,KAAK,CAAC;IAc3F,2BAA2B,CAAC,OAAO,EAAC,IAAI,EAAE,OAAO,EAAC,IAAI,GAAG,YAAY,CAAC,KAAK,CAAC;IAkB5E,eAAe,IAAI,KAAK;IAIxB,YAAY,IAAI,KAAK;IAIrB,SAAS,CAAC,EAAE,EAAE,KAAK,EAAE,EAAE,EAAE,KAAK,GAAG,OAAO;IAWjC,WAAW,IAAI,OAAO,EAAE;CAGlC;AAED,qBAAa,uBAAwB,SAAQ,cAAc,CAAC,KAAK,CAAC;gBAClD,OAAO,EAAE,wBAAwB,EAAE,KAAK,EAAE,KAAK;CAG9D;AAGD,cAAM,OAAO;IACT,KAAK,EAAE,KAAK,CAAC;IACb,IAAI,EAAE,IAAI,CAAC;gBACC,CAAC,EAAE,KAAK,EAAE,CAAC,EAAE,IAAI;CAIhC"}
1
+ {"version":3,"file":"UndefinedVariable.d.ts","sourceRoot":"","sources":["../../../src/core/dataflow/UndefinedVariable.ts"],"names":[],"mappings":"AAeA,OAAO,EAAE,KAAK,EAAE,MAAM,aAAa,CAAC;AACpC,OAAO,EAAE,eAAe,EAAE,YAAY,EAAE,MAAM,mBAAmB,CAAC;AAClE,OAAO,EAAE,KAAK,EAAE,MAAM,eAAe,CAAC;AACtC,OAAO,EAAE,KAAK,EAAE,MAAM,eAAe,CAAC;AAEtC,OAAO,EAAE,aAAa,EAAiB,IAAI,EAAE,MAAM,cAAc,CAAC;AAClE,OAAO,EAAE,SAAS,EAAE,MAAM,oBAAoB,CAAC;AAC/C,OAAO,EAAE,QAAQ,EAAE,MAAM,kBAAkB,CAAC;AAE5C,OAAO,EAAE,cAAc,EAAE,MAAM,kBAAkB,CAAC;AAElD,OAAO,EAAE,aAAa,EAAE,kBAAkB,EAAE,MAAM,uBAAuB,CAAC;AAC1E,OAAO,EAAE,QAAQ,EAAE,MAAM,mBAAmB,CAAC;AAG7C,OAAO,EAAE,QAAQ,EAAE,MAAM,mBAAmB,CAAC;AAK7C,qBAAa,wBAAyB,SAAQ,eAAe,CAAC,KAAK,CAAC;IAChE,SAAS,EAAE,QAAQ,CAA0D;IAC7E,UAAU,EAAE,IAAI,CAAC;IACjB,WAAW,EAAE,SAAS,CAAC;IACvB,KAAK,EAAE,KAAK,CAAC;IACb,QAAQ,EAAE,GAAG,CAAC,aAAa,GAAG,kBAAkB,EAAE,QAAQ,EAAE,CAAC,CAAC;IAC9D,iBAAiB,EAAE,GAAG,CAAC,aAAa,GAAG,kBAAkB,EAAE,KAAK,EAAE,CAAC,CAAC;IACpE,QAAQ,EAAE,OAAO,EAAE,CAAM;gBACb,IAAI,EAAE,IAAI,EAAE,MAAM,EAAE,SAAS;IASzC,aAAa,IAAI,IAAI;IAIrB,cAAc,IAAI,SAAS;IAI3B,OAAO,CAAC,WAAW;IAUnB,qBAAqB,CAAC,OAAO,EAAE,IAAI,EAAE,OAAO,EAAE,IAAI,GAAG,YAAY,CAAC,KAAK,CAAC;IAiBxE,wBAAwB,CAAC,GAAG,EAAE,GAAG,CAAC,KAAK,CAAC,EAAE,OAAO,EAAE,aAAa,EAAE,QAAQ,EAAE,KAAK,GAAG,IAAI;IA6BxF,mBAAmB,CAAC,OAAO,EAAE,IAAI,EAAE,MAAM,EAAE,SAAS,GAAG,YAAY,CAAC,KAAK,CAAC;IAkC1E,sBAAsB,CAAC,GAAG,EAAE,GAAG,CAAC,KAAK,CAAC,EAAE,MAAM,EAAE,SAAS,GAAG,IAAI;IAmBhE,iBAAiB,CAAC,KAAK,EAAE,QAAQ,EAAE,MAAM,EAAE,SAAS,EAAE,GAAG,EAAE,GAAG,CAAC,KAAK,CAAC,GAAG,IAAI;IAe5E,aAAa,CAAC,OAAO,EAAE,IAAI,EAAE,QAAQ,EAAE,KAAK,EAAE,MAAM,EAAE,SAAS,EAAE,GAAG,EAAE,GAAG,CAAC,KAAK,CAAC,GAAG,IAAI;IAmBvF,2BAA2B,CAAC,OAAO,EAAE,IAAI,EAAE,OAAO,EAAE,IAAI,EAAE,QAAQ,EAAE,IAAI,GAAG,YAAY,CAAC,KAAK,CAAC;IAa9F,2BAA2B,CAAC,OAAO,EAAE,IAAI,EAAE,OAAO,EAAE,IAAI,GAAG,YAAY,CAAC,KAAK,CAAC;IAiB9E,eAAe,IAAI,KAAK;IAIxB,YAAY,IAAI,KAAK;IAIrB,SAAS,CAAC,EAAE,EAAE,KAAK,EAAE,EAAE,EAAE,KAAK,GAAG,OAAO;IAWjC,WAAW,IAAI,OAAO,EAAE;CAGlC;AAED,qBAAa,uBAAwB,SAAQ,cAAc,CAAC,KAAK,CAAC;gBAClD,OAAO,EAAE,wBAAwB,EAAE,KAAK,EAAE,KAAK;CAG9D;AAED,cAAM,OAAO;IACT,KAAK,EAAE,KAAK,CAAC;IACb,IAAI,EAAE,IAAI,CAAC;gBACC,CAAC,EAAE,KAAK,EAAE,CAAC,EAAE,IAAI;CAIhC"}
@@ -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
@@ -78,7 +78,7 @@ class UndefinedVariableChecker extends DataflowProblem_1.DataflowProblem {
78
78
  }
79
79
  getNormalFlowFunction(srcStmt, tgtStmt) {
80
80
  let checkerInstance = this;
81
- return new class {
81
+ return new (class {
82
82
  getDataFacts(dataFact) {
83
83
  let ret = new Set();
84
84
  if (checkerInstance.getEntryPoint() === srcStmt && checkerInstance.getZeroValue() === dataFact) {
@@ -90,7 +90,7 @@ class UndefinedVariableChecker extends DataflowProblem_1.DataflowProblem {
90
90
  }
91
91
  return ret;
92
92
  }
93
- };
93
+ })();
94
94
  }
95
95
  insideNormalFlowFunction(ret, srcStmt, dataFact) {
96
96
  if (!this.factEqual(srcStmt.getDef(), dataFact)) {
@@ -111,7 +111,7 @@ class UndefinedVariableChecker extends DataflowProblem_1.DataflowProblem {
111
111
  }
112
112
  else if (rightOp instanceof Ref_1.ArkInstanceFieldRef) {
113
113
  const base = rightOp.getBase();
114
- if (base === dataFact || !base.getDeclaringStmt() && base.getName() === dataFact.toString()) {
114
+ if (base === dataFact || (!base.getDeclaringStmt() && base.getName() === dataFact.toString())) {
115
115
  this.outcomes.push(new Outcome(rightOp, ass));
116
116
  logger.info('undefined base');
117
117
  logger.info(srcStmt.toString());
@@ -125,7 +125,7 @@ class UndefinedVariableChecker extends DataflowProblem_1.DataflowProblem {
125
125
  }
126
126
  getCallFlowFunction(srcStmt, method) {
127
127
  let checkerInstance = this;
128
- return new class {
128
+ return new (class {
129
129
  getDataFacts(dataFact) {
130
130
  const ret = new Set();
131
131
  if (checkerInstance.getZeroValue() === dataFact) {
@@ -133,19 +133,23 @@ class UndefinedVariableChecker extends DataflowProblem_1.DataflowProblem {
133
133
  }
134
134
  else {
135
135
  const callExpr = srcStmt.getExprs()[0];
136
- if (callExpr instanceof Expr_1.ArkInstanceInvokeExpr && dataFact instanceof Ref_1.ArkInstanceFieldRef && callExpr.getBase().getName() === dataFact.getBase().getName()) {
136
+ if (callExpr instanceof Expr_1.ArkInstanceInvokeExpr &&
137
+ dataFact instanceof Ref_1.ArkInstanceFieldRef &&
138
+ callExpr.getBase().getName() === dataFact.getBase().getName()) {
137
139
  // todo:base转this
138
140
  const thisRef = new Ref_1.ArkInstanceFieldRef(new Local_1.Local('this', new Type_1.ClassType(method.getDeclaringArkClass().getSignature())), dataFact.getFieldSignature());
139
141
  ret.add(thisRef);
140
142
  }
141
- else if (callExpr instanceof Expr_1.ArkStaticInvokeExpr && dataFact instanceof Ref_1.ArkStaticFieldRef && callExpr.getMethodSignature().getDeclaringClassSignature() === dataFact.getFieldSignature().getDeclaringSignature()) {
143
+ else if (callExpr instanceof Expr_1.ArkStaticInvokeExpr &&
144
+ dataFact instanceof Ref_1.ArkStaticFieldRef &&
145
+ callExpr.getMethodSignature().getDeclaringClassSignature() === dataFact.getFieldSignature().getDeclaringSignature()) {
142
146
  ret.add(dataFact);
143
147
  }
144
148
  }
145
149
  checkerInstance.addParameters(srcStmt, dataFact, method, ret);
146
150
  return ret;
147
151
  }
148
- };
152
+ })();
149
153
  }
150
154
  insideCallFlowFunction(ret, method) {
151
155
  ret.add(this.getZeroValue());
@@ -183,7 +187,7 @@ class UndefinedVariableChecker extends DataflowProblem_1.DataflowProblem {
183
187
  const callStmt = srcStmt;
184
188
  const args = callStmt.getInvokeExpr().getArgs();
185
189
  for (let i = 0; i < args.length; i++) {
186
- if (args[i] === dataFact || this.isUndefined(args[i]) && this.getZeroValue() === dataFact) {
190
+ if (args[i] === dataFact || (this.isUndefined(args[i]) && this.getZeroValue() === dataFact)) {
187
191
  const realParameter = [...method.getCfg().getBlocks()][0].getStmts()[i].getDef();
188
192
  if (realParameter) {
189
193
  ret.add(realParameter);
@@ -200,7 +204,7 @@ class UndefinedVariableChecker extends DataflowProblem_1.DataflowProblem {
200
204
  }
201
205
  getExitToReturnFlowFunction(srcStmt, tgtStmt, callStmt) {
202
206
  let checkerInstance = this;
203
- return new class {
207
+ return new (class {
204
208
  getDataFacts(dataFact) {
205
209
  let ret = new Set();
206
210
  if (dataFact === checkerInstance.getZeroValue()) {
@@ -208,11 +212,11 @@ class UndefinedVariableChecker extends DataflowProblem_1.DataflowProblem {
208
212
  }
209
213
  return ret;
210
214
  }
211
- };
215
+ })();
212
216
  }
213
217
  getCallToReturnFlowFunction(srcStmt, tgtStmt) {
214
218
  let checkerInstance = this;
215
- return new class {
219
+ return new (class {
216
220
  getDataFacts(dataFact) {
217
221
  const ret = new Set();
218
222
  if (checkerInstance.getZeroValue() === dataFact) {
@@ -224,7 +228,7 @@ class UndefinedVariableChecker extends DataflowProblem_1.DataflowProblem {
224
228
  }
225
229
  return ret;
226
230
  }
227
- };
231
+ })();
228
232
  }
229
233
  createZeroValue() {
230
234
  return this.zeroValue;
@@ -1,7 +1,7 @@
1
- import { ArkInvokeStmt } from "../base/Stmt";
2
- import { ArkMethod } from "../model/ArkMethod";
3
- import { Local } from "../base/Local";
4
- import { AbstractRef } from "../base/Ref";
1
+ import { ArkInvokeStmt } from '../base/Stmt';
2
+ import { ArkMethod } from '../model/ArkMethod';
3
+ import { Local } from '../base/Local';
4
+ import { AbstractRef } from '../base/Ref';
5
5
  export declare const INTERNAL_PARAMETER_SOURCE: string[];
6
6
  export declare const INTERNAL_SINK_METHOD: string[];
7
7
  export declare function getRecallMethodInParam(stmt: ArkInvokeStmt): ArkMethod | null;
@@ -1 +1 @@
1
- {"version":3,"file":"Util.d.ts","sourceRoot":"","sources":["../../../src/core/dataflow/Util.ts"],"names":[],"mappings":"AAeA,OAAO,EAAE,aAAa,EAAE,MAAM,cAAc,CAAC;AAE7C,OAAO,EAAE,SAAS,EAAE,MAAM,oBAAoB,CAAC;AAC/C,OAAO,EAAE,KAAK,EAAE,MAAM,eAAe,CAAC;AACtC,OAAO,EAAE,WAAW,EAA0C,MAAM,aAAa,CAAC;AAGlF,eAAO,MAAM,yBAAyB,EAAE,MAAM,EAE7C,CAAA;AAED,eAAO,MAAM,oBAAoB,EAAE,MAAM,EAMxC,CAAA;AAED,wBAAgB,sBAAsB,CAAC,IAAI,EAAE,aAAa,GAAG,SAAS,GAAG,IAAI,CAW5E;AAGD,wBAAgB,UAAU,CAAC,MAAM,EAAE,KAAK,EAAE,MAAM,EAAE,KAAK,GAAG,OAAO,CAQhE;AAED,wBAAgB,QAAQ,CAAC,IAAI,EAAE,WAAW,EAAE,IAAI,EAAE,WAAW,GAAG,OAAO,CAOtE"}
1
+ {"version":3,"file":"Util.d.ts","sourceRoot":"","sources":["../../../src/core/dataflow/Util.ts"],"names":[],"mappings":"AAeA,OAAO,EAAE,aAAa,EAAE,MAAM,cAAc,CAAC;AAE7C,OAAO,EAAE,SAAS,EAAE,MAAM,oBAAoB,CAAC;AAC/C,OAAO,EAAE,KAAK,EAAE,MAAM,eAAe,CAAC;AACtC,OAAO,EAAE,WAAW,EAA0C,MAAM,aAAa,CAAC;AAElF,eAAO,MAAM,yBAAyB,EAAE,MAAM,EAA0C,CAAC;AAEzF,eAAO,MAAM,oBAAoB,EAAE,MAAM,EAMxC,CAAC;AAEF,wBAAgB,sBAAsB,CAAC,IAAI,EAAE,aAAa,GAAG,SAAS,GAAG,IAAI,CAW5E;AAED,wBAAgB,UAAU,CAAC,MAAM,EAAE,KAAK,EAAE,MAAM,EAAE,KAAK,GAAG,OAAO,CAQhE;AAED,wBAAgB,QAAQ,CAAC,IAAI,EAAE,WAAW,EAAE,IAAI,EAAE,WAAW,GAAG,OAAO,CAOtE"}
@@ -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
@@ -17,15 +17,13 @@ Object.defineProperty(exports, "__esModule", { value: true });
17
17
  exports.RefEqual = exports.LocalEqual = exports.getRecallMethodInParam = exports.INTERNAL_SINK_METHOD = exports.INTERNAL_PARAMETER_SOURCE = void 0;
18
18
  const Type_1 = require("../base/Type");
19
19
  const Ref_1 = require("../base/Ref");
20
- exports.INTERNAL_PARAMETER_SOURCE = [
21
- '@ohos.app.ability.Want.d.ts: Want'
22
- ];
20
+ exports.INTERNAL_PARAMETER_SOURCE = ['@ohos.app.ability.Want.d.ts: Want'];
23
21
  exports.INTERNAL_SINK_METHOD = [
24
22
  'console.<@%unk/%unk: .log()>',
25
23
  'console.<@%unk/%unk: .error()>',
26
24
  'console.<@%unk/%unk: .info()>',
27
25
  'console.<@%unk/%unk: .warn()>',
28
- 'console.<@%unk/%unk: .assert()>'
26
+ 'console.<@%unk/%unk: .assert()>',
29
27
  ];
30
28
  function getRecallMethodInParam(stmt) {
31
29
  var _a;