arkanalyzer 1.0.90 → 1.0.92

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 (126) hide show
  1. package/config/arkanalyzer.json +0 -1
  2. package/lib/Config.d.ts +3 -0
  3. package/lib/Config.d.ts.map +1 -1
  4. package/lib/Scene.d.ts +114 -0
  5. package/lib/Scene.d.ts.map +1 -1
  6. package/lib/Scene.js +268 -13
  7. package/lib/callgraph/common/Statistics.js +2 -2
  8. package/lib/callgraph/model/CallGraph.d.ts +2 -2
  9. package/lib/callgraph/model/CallGraph.d.ts.map +1 -1
  10. package/lib/callgraph/model/CallGraph.js +6 -6
  11. package/lib/callgraph/model/CallSite.d.ts +1 -1
  12. package/lib/callgraph/model/CallSite.d.ts.map +1 -1
  13. package/lib/callgraph/model/CallSite.js +2 -2
  14. package/lib/core/base/Ref.d.ts.map +1 -1
  15. package/lib/core/base/Ref.js +6 -1
  16. package/lib/core/common/ArkIRTransformer.d.ts.map +1 -1
  17. package/lib/core/common/ArkIRTransformer.js +5 -0
  18. package/lib/core/common/ArkValueTransformer.d.ts.map +1 -1
  19. package/lib/core/common/ArkValueTransformer.js +2 -1
  20. package/lib/core/common/Const.d.ts +3 -0
  21. package/lib/core/common/Const.d.ts.map +1 -1
  22. package/lib/core/common/Const.js +5 -1
  23. package/lib/core/common/DummyMainCreater.d.ts +25 -12
  24. package/lib/core/common/DummyMainCreater.d.ts.map +1 -1
  25. package/lib/core/common/DummyMainCreater.js +90 -76
  26. package/lib/core/common/EtsConst.d.ts +2 -0
  27. package/lib/core/common/EtsConst.d.ts.map +1 -1
  28. package/lib/core/common/EtsConst.js +133 -125
  29. package/lib/core/common/SdkUtils.d.ts +1 -0
  30. package/lib/core/common/SdkUtils.d.ts.map +1 -1
  31. package/lib/core/common/SdkUtils.js +29 -0
  32. package/lib/core/graph/BaseExplicitGraph.d.ts +2 -0
  33. package/lib/core/graph/BaseExplicitGraph.d.ts.map +1 -1
  34. package/lib/core/graph/BaseExplicitGraph.js +12 -1
  35. package/lib/core/graph/BaseImplicitGraph.d.ts +16 -0
  36. package/lib/core/graph/BaseImplicitGraph.d.ts.map +1 -1
  37. package/lib/core/graph/BaseImplicitGraph.js +21 -0
  38. package/lib/core/graph/FileDepGraph.d.ts +75 -0
  39. package/lib/core/graph/FileDepGraph.d.ts.map +1 -0
  40. package/lib/core/graph/FileDepGraph.js +170 -0
  41. package/lib/core/graph/GraphTraits.d.ts +2 -0
  42. package/lib/core/graph/GraphTraits.d.ts.map +1 -1
  43. package/lib/core/graph/GraphTraits.js +1 -1
  44. package/lib/core/graph/ModuleDepGraph.d.ts +175 -0
  45. package/lib/core/graph/ModuleDepGraph.d.ts.map +1 -0
  46. package/lib/core/graph/ModuleDepGraph.js +421 -0
  47. package/lib/core/graph/Scc.d.ts +1 -3
  48. package/lib/core/graph/Scc.d.ts.map +1 -1
  49. package/lib/core/graph/Scc.js +6 -19
  50. package/lib/core/graph/builder/CfgBuilder.d.ts.map +1 -1
  51. package/lib/core/graph/builder/CfgBuilder.js +7 -1
  52. package/lib/core/graph/builder/TrapBuilder.d.ts +1 -0
  53. package/lib/core/graph/builder/TrapBuilder.d.ts.map +1 -1
  54. package/lib/core/graph/builder/TrapBuilder.js +27 -7
  55. package/lib/core/graph/builder/ViewTreeBuilder.d.ts +13 -3
  56. package/lib/core/graph/builder/ViewTreeBuilder.d.ts.map +1 -1
  57. package/lib/core/graph/builder/ViewTreeBuilder.js +271 -86
  58. package/lib/core/model/ArkBody.d.ts +1 -0
  59. package/lib/core/model/ArkBody.d.ts.map +1 -1
  60. package/lib/core/model/ArkBody.js +7 -0
  61. package/lib/core/model/ArkClass.d.ts +1 -0
  62. package/lib/core/model/ArkClass.d.ts.map +1 -1
  63. package/lib/core/model/ArkClass.js +37 -0
  64. package/lib/core/model/ArkExport.d.ts +1 -0
  65. package/lib/core/model/ArkExport.d.ts.map +1 -1
  66. package/lib/core/model/ArkExport.js +6 -0
  67. package/lib/core/model/ArkField.d.ts +1 -0
  68. package/lib/core/model/ArkField.d.ts.map +1 -1
  69. package/lib/core/model/ArkField.js +5 -0
  70. package/lib/core/model/ArkFile.d.ts +5 -0
  71. package/lib/core/model/ArkFile.d.ts.map +1 -1
  72. package/lib/core/model/ArkFile.js +30 -0
  73. package/lib/core/model/ArkImport.d.ts +1 -0
  74. package/lib/core/model/ArkImport.d.ts.map +1 -1
  75. package/lib/core/model/ArkImport.js +5 -0
  76. package/lib/core/model/ArkMethod.d.ts +8 -0
  77. package/lib/core/model/ArkMethod.d.ts.map +1 -1
  78. package/lib/core/model/ArkMethod.js +22 -0
  79. package/lib/core/model/ArkModule.d.ts +133 -0
  80. package/lib/core/model/ArkModule.d.ts.map +1 -0
  81. package/lib/core/model/ArkModule.js +247 -0
  82. package/lib/core/model/ArkNamespace.d.ts +1 -0
  83. package/lib/core/model/ArkNamespace.d.ts.map +1 -1
  84. package/lib/core/model/ArkNamespace.js +18 -0
  85. package/lib/core/model/builder/ArkClassBuilder.js +6 -0
  86. package/lib/core/model/builder/ArkFileBuilder.d.ts +19 -0
  87. package/lib/core/model/builder/ArkFileBuilder.d.ts.map +1 -1
  88. package/lib/core/model/builder/ArkFileBuilder.js +155 -51
  89. package/lib/frontend/FrontendBuilder.d.ts +114 -0
  90. package/lib/frontend/FrontendBuilder.d.ts.map +1 -1
  91. package/lib/frontend/FrontendBuilder.js +248 -0
  92. package/lib/frontend/arktsFrontend/ArktsFrontend.d.ts +11 -0
  93. package/lib/frontend/arktsFrontend/ArktsFrontend.d.ts.map +1 -1
  94. package/lib/frontend/arktsFrontend/ArktsFrontend.js +15 -0
  95. package/lib/frontend/common/MemoryMonitor.d.ts +62 -0
  96. package/lib/frontend/common/MemoryMonitor.d.ts.map +1 -0
  97. package/lib/frontend/common/MemoryMonitor.js +108 -0
  98. package/lib/frontend/common/ModuleAnalysisConfig.d.ts +99 -0
  99. package/lib/frontend/common/ModuleAnalysisConfig.d.ts.map +1 -0
  100. package/lib/frontend/common/ModuleAnalysisConfig.js +153 -0
  101. package/lib/frontend/common/ModuleBuilder.d.ts +508 -0
  102. package/lib/frontend/common/ModuleBuilder.d.ts.map +1 -0
  103. package/lib/frontend/common/ModuleBuilder.js +1587 -0
  104. package/lib/frontend/common/ModuleCache.d.ts +120 -0
  105. package/lib/frontend/common/ModuleCache.d.ts.map +1 -0
  106. package/lib/frontend/common/ModuleCache.js +198 -0
  107. package/lib/frontend/common/ModuleDepth.d.ts +33 -0
  108. package/lib/frontend/common/ModuleDepth.d.ts.map +1 -0
  109. package/lib/frontend/common/ModuleDepth.js +55 -0
  110. package/lib/frontend/cppFrontend/CppFrontend.d.ts +5 -0
  111. package/lib/frontend/cppFrontend/CppFrontend.d.ts.map +1 -1
  112. package/lib/frontend/cppFrontend/CppFrontend.js +11 -1
  113. package/lib/frontend/cppFrontend/model/builder/ArkFileBuilder.d.ts +8 -0
  114. package/lib/frontend/cppFrontend/model/builder/ArkFileBuilder.d.ts.map +1 -1
  115. package/lib/frontend/cppFrontend/model/builder/ArkFileBuilder.js +105 -2
  116. package/lib/index.d.ts +9 -1
  117. package/lib/index.d.ts.map +1 -1
  118. package/lib/index.js +22 -3
  119. package/lib/utils/Canonicalizer.d.ts +105 -0
  120. package/lib/utils/Canonicalizer.d.ts.map +1 -0
  121. package/lib/utils/Canonicalizer.js +520 -0
  122. package/lib/utils/ModuleUtils.js +4 -2
  123. package/lib/utils/entryMethodUtils.d.ts +23 -0
  124. package/lib/utils/entryMethodUtils.d.ts.map +1 -1
  125. package/lib/utils/entryMethodUtils.js +53 -1
  126. package/package.json +1 -1
package/lib/Scene.js CHANGED
@@ -49,6 +49,8 @@ const VisibleValue_1 = require("./core/common/VisibleValue");
49
49
  const ArkFile_1 = require("./core/model/ArkFile");
50
50
  const ArkNamespace_1 = require("./core/model/ArkNamespace");
51
51
  const ArkSignature_1 = require("./core/model/ArkSignature");
52
+ const ModuleAnalysisConfig_1 = require("./frontend/common/ModuleAnalysisConfig");
53
+ const ModuleBuilder_1 = require("./frontend/common/ModuleBuilder");
52
54
  const logger_1 = __importStar(require("./utils/logger"));
53
55
  const json5parser_1 = require("./utils/json5parser");
54
56
  const getAllFiles_1 = require("./utils/getAllFiles");
@@ -72,6 +74,8 @@ const Inference_1 = require("./core/inference/Inference");
72
74
  const IRInference_2 = require("./core/common/IRInference");
73
75
  const ModuleUtils_1 = require("./utils/ModuleUtils");
74
76
  const DependenciesSort_1 = require("./utils/DependenciesSort");
77
+ const Canonicalizer_1 = require("./utils/Canonicalizer");
78
+ const ModuleDepGraph_1 = require("./core/graph/ModuleDepGraph");
75
79
  const logger = logger_1.default.getLogger(logger_1.LOG_MODULE_TYPE.ARKANALYZER, 'Scene');
76
80
  var SceneBuildStage;
77
81
  (function (SceneBuildStage) {
@@ -106,6 +110,8 @@ class Scene {
106
110
  this.namespacesMap = new Map();
107
111
  this.classesMap = new Map();
108
112
  this.methodsMap = new Map();
113
+ /** Custom @Component name → ClassSignature; written at ArkClass build, kept after module unload for ViewTree stubs. */
114
+ this.customComponentMap = new Map();
109
115
  // TODO: type of key should be signature object
110
116
  this.sdkArkFilesMap = new Map();
111
117
  this.sdkGlobalMap = new Map();
@@ -116,6 +122,10 @@ class Scene {
116
122
  this.overRideDependencyMap = new Map();
117
123
  this.buildStage = SceneBuildStage.BUILD_INIT;
118
124
  this.fileLanguages = new Map();
125
+ /** Maps ArkModule objects to dense integer ModuleIDs via the objectIdentity strategy. */
126
+ this.moduleCanonicalizer = new Canonicalizer_1.Canonicalizer();
127
+ /** Whether module preparation has completed (prepareModules + analyzeModuleDependencies, idempotent). */
128
+ this.modulesRegistered = false;
119
129
  this.unhandledFilePaths = new Set();
120
130
  this.unhandledSdkFilePaths = [];
121
131
  }
@@ -129,6 +139,8 @@ class Scene {
129
139
  ValueUtil_1.ValueUtil.dispose();
130
140
  ModelUtils_1.ModelUtils.dispose();
131
141
  (0, builderUtils_1.clearCxxTypeStringCache)();
142
+ this.moduleCache = undefined;
143
+ this.memoryMonitor = undefined;
132
144
  }
133
145
  getOptions() {
134
146
  return this.options;
@@ -143,6 +155,7 @@ class Scene {
143
155
  return this.overRideDependencyMap;
144
156
  }
145
157
  clear() {
158
+ var _a;
146
159
  this.projectFiles = [];
147
160
  this.moduleScenesMap.clear();
148
161
  this.modulePath2NameMap.clear();
@@ -152,14 +165,25 @@ class Scene {
152
165
  this.namespacesMap.clear();
153
166
  this.classesMap.clear();
154
167
  this.methodsMap.clear();
168
+ this.customComponentMap.clear();
155
169
  this.sdkArkFilesMap.clear();
156
170
  this.sdkGlobalMap.clear();
157
171
  this.ohPkgContentMap.clear();
158
172
  this.ohPkgContent = {};
173
+ (_a = this.moduleCache) === null || _a === void 0 ? void 0 : _a.clear();
159
174
  }
160
175
  getStage() {
161
176
  return this.buildStage;
162
177
  }
178
+ /**
179
+ * Set the current {@link SceneBuildStage}. Used by module-level builders (e.g.
180
+ * {@link FrontendBuilder.buildModuleMethodBody}) to temporarily open the
181
+ * {@link buildClassDone} gate so that nested/anonymous method bodies are built
182
+ * immediately during body construction, then restore the previous stage.
183
+ */
184
+ setBuildStage(stage) {
185
+ this.buildStage = stage;
186
+ }
163
187
  /**
164
188
  * Build scene object according to the {@link SceneConfig}. This API implements 3 functions.
165
189
  * First is to build scene object from {@link SceneConfig}, second is to generate {@link ArkFile}s,
@@ -194,6 +218,7 @@ class Scene {
194
218
  */
195
219
  buildBasicInfo(sceneConfig) {
196
220
  var _a;
221
+ this.sceneConfig = sceneConfig;
197
222
  this.options = sceneConfig.getOptions();
198
223
  this.projectName = sceneConfig.getTargetProjectName();
199
224
  this.realProjectDir = fs_1.default.realpathSync(sceneConfig.getTargetProjectDirectory());
@@ -305,8 +330,9 @@ class Scene {
305
330
  }
306
331
  findTsConfigInfoDeeply(tsConfigObj, tsConfigFilePath) {
307
332
  if (tsConfigObj.extends) {
308
- const extTsConfigObj = (0, json5parser_1.fetchDependenciesFromFile)(path_1.default.join(path_1.default.dirname(tsConfigFilePath), tsConfigObj.extends));
309
- this.findTsConfigInfoDeeply(extTsConfigObj, tsConfigFilePath);
333
+ const extTsConfigFilePath = path_1.default.join(path_1.default.dirname(tsConfigFilePath), tsConfigObj.extends);
334
+ const extTsConfigObj = (0, json5parser_1.fetchDependenciesFromFile)(extTsConfigFilePath);
335
+ this.findTsConfigInfoDeeply(extTsConfigObj, extTsConfigFilePath);
310
336
  if (!this.baseUrl && !this.globalModule2PathMapping) {
311
337
  this.addTsConfigInfo(extTsConfigObj);
312
338
  }
@@ -566,8 +592,7 @@ class Scene {
566
592
  }
567
593
  }
568
594
  findDependenciesByRule(originPath) {
569
- if (!this.findFilesByPathArray(originPath) &&
570
- !this.findFilesByExtNameArray(originPath, this.options.supportFileExts)) {
595
+ if (!this.findFilesByPathArray(originPath) && !this.findFilesByExtNameArray(originPath, this.options.supportFileExts)) {
571
596
  logger.trace(originPath + 'module mapperInfo is not found!');
572
597
  }
573
598
  }
@@ -666,7 +691,7 @@ class Scene {
666
691
  */
667
692
  buildSdk(sdkName, sdkPath) {
668
693
  const allFiles = this.collectSdkFiles(sdkName, sdkPath);
669
- allFiles.forEach((file) => {
694
+ allFiles.forEach(file => {
670
695
  if (FileUtils_1.FileUtils.getFileLanguage(file, this.fileLanguages) === ArkFile_1.Language.CXX) {
671
696
  return;
672
697
  }
@@ -682,6 +707,7 @@ class Scene {
682
707
  }
683
708
  return builtInFiles;
684
709
  }
710
+ SdkUtils_1.SdkUtils.loadSystemComponentsFromSdk(sdkPath);
685
711
  return (0, getAllFiles_1.getAllFiles)(sdkPath, this.options.supportFileExts, this.options.ignoreFileNames);
686
712
  }
687
713
  parseAndRegisterSdkFile(file, sdkPath, sdkName) {
@@ -811,6 +837,154 @@ class Scene {
811
837
  getRealProjectDir() {
812
838
  return this.realProjectDir;
813
839
  }
840
+ /**
841
+ * Returns the {@link SceneConfig} used to build this scene, or undefined before
842
+ * {@link buildBasicInfo} has been called.
843
+ */
844
+ getSceneConfig() {
845
+ return this.sceneConfig;
846
+ }
847
+ /**
848
+ * Save the {@link SceneConfig} into the scene for later module-level analysis.
849
+ * Unlike {@link buildBasicInfo}, this method only stores the config (and derives
850
+ * the real project directory) without building ArkFiles or performing type inference.
851
+ * This is the lightweight entry point for {@link analyseByModule}.
852
+ */
853
+ config(sceneConfig) {
854
+ this.sceneConfig = sceneConfig;
855
+ this.options = sceneConfig.getOptions();
856
+ this.projectName = sceneConfig.getTargetProjectName();
857
+ const dir = sceneConfig.getTargetProjectDirectory();
858
+ if (dir) {
859
+ this.realProjectDir = fs_1.default.realpathSync(dir);
860
+ }
861
+ this.fileLanguages = sceneConfig.getFileLanguages();
862
+ }
863
+ /**
864
+ * Returns all registered {@link ArkModule} objects.
865
+ */
866
+ getModules() {
867
+ const result = [];
868
+ for (let i = 0; i < this.moduleCanonicalizer.size(); i++) {
869
+ const m = this.moduleCanonicalizer.get(i);
870
+ if (m) {
871
+ result.push(m);
872
+ }
873
+ }
874
+ return result;
875
+ }
876
+ // --- Module query methods (Scene is a lightweight result container) ---
877
+ /** The module dependency graph, or undefined before dependency analysis. */
878
+ getModuleDepGraph() {
879
+ return this.moduleDepGraph;
880
+ }
881
+ /** Whether module preparation has completed. */
882
+ isModulesRegistered() {
883
+ return this.modulesRegistered;
884
+ }
885
+ // --- Module cache management (persistent across analyseByModule calls) ---
886
+ getModuleCache() {
887
+ return this.moduleCache;
888
+ }
889
+ setModuleCache(cache) {
890
+ this.moduleCache = cache;
891
+ }
892
+ getMemoryMonitor() {
893
+ return this.memoryMonitor;
894
+ }
895
+ setMemoryMonitor(monitor) {
896
+ this.memoryMonitor = monitor;
897
+ }
898
+ // --- Internal accessors used by ModuleBuilder to read/write persistent state ---
899
+ /** Get a registered module by its ModuleID. Returns undefined when the id is out of bounds. */
900
+ getModule(id) {
901
+ return this.moduleCanonicalizer.get(id);
902
+ }
903
+ /** Get the ModuleID assigned to a registered ArkModule. */
904
+ getModuleId(module) {
905
+ return this.moduleCanonicalizer.getId(module);
906
+ }
907
+ /** Total number of registered modules. */
908
+ getModuleCount() {
909
+ return this.moduleCanonicalizer.size();
910
+ }
911
+ /** Create a {@link ModuleDepGraph} sharing the internal module canonicalizer. */
912
+ createModuleDepGraph() {
913
+ return new ModuleDepGraph_1.ModuleDepGraph(this.moduleCanonicalizer);
914
+ }
915
+ setModuleDepGraph(graph) {
916
+ this.moduleDepGraph = graph;
917
+ }
918
+ setModulesRegistered(value) {
919
+ this.modulesRegistered = value;
920
+ }
921
+ /**
922
+ * Perform module-level analysis by iterating modules in topological order and invoking
923
+ * the callback for each module.
924
+ *
925
+ * Flow: prepareModules → analyzeModuleDependencies → buildSdkModules (SDK files parsed +
926
+ * inferred first) → resolveTargetModuleIds → computeModuleClosureByIds → iterate topoOrder
927
+ * → loadModule → callback.
928
+ * Each step is idempotent; repeated calls do not repeat preprocessing.
929
+ *
930
+ * - SDK modules are registered and built in one fused step by {@link ModuleBuilder.buildSdkModules}
931
+ * before the topoOrder loop, so that global APIs are available when project/oh_modules modules
932
+ * are loaded. SDK modules are not in the module dependency graph and thus never appear in the
933
+ * topoOrder or callback.
934
+ * - Target modules are resolved from the config's type filter, explicit include IDs, and
935
+ * explicit exclude IDs. The transitive closure (targets + dependencies) determines which
936
+ * modules are loaded. The callback is invoked only for target modules, not their dependencies.
937
+ * - By default (no explicit selection), all PROJECT and OH_MODULES modules are targets.
938
+ *
939
+ * @param callback - Invoked for each target module with the module and the scene.
940
+ * @param config - Optional configuration for target module selection and load levels.
941
+ */
942
+ analyseByModule(callback, config) {
943
+ const builder = new ModuleBuilder_1.ModuleBuilder(this);
944
+ // 1. Prepare modules + analyze dependencies (merged, guarded by modulesRegistered)
945
+ if (!this.isModulesRegistered()) {
946
+ builder.prepareModules();
947
+ builder.analyzeModuleDependencies();
948
+ this.setModulesRegistered(true);
949
+ }
950
+ // 2. Build SDK modules — fused registration + building (idempotent). SDK loaded FIRST so
951
+ // that global APIs are available when project/oh_modules modules are loaded.
952
+ builder.buildSdkModules();
953
+ // 3. Resolve target modules and compute closure (unified flow, no branching)
954
+ const effectiveConfig = config !== null && config !== void 0 ? config : new ModuleAnalysisConfig_1.ModuleAnalysisConfig();
955
+ const targetIds = builder.resolveTargetModuleIds(effectiveConfig);
956
+ const closure = builder.computeModuleClosureByIds(targetIds);
957
+ const topoOrder = builder.getFilteredTopoOrder(closure);
958
+ // 4. Initialize / update cache management (persistent ModuleCache + MemoryMonitor in Scene)
959
+ builder.initCacheManagement(this.getOptions(), topoOrder, effectiveConfig.getDependencyLoadLevel());
960
+ // 5. Pre-call cleanup: unload cached modules not in current topoOrder
961
+ const cache = this.getModuleCache();
962
+ if (cache) {
963
+ const currentTopoSet = new Set(topoOrder);
964
+ for (const moduleId of cache.getLoadedModules()) {
965
+ if (!currentTopoSet.has(moduleId)) {
966
+ builder.unload(moduleId);
967
+ cache.unregister(moduleId);
968
+ }
969
+ }
970
+ }
971
+ // 6. Iterate topoOrder: loadModule internally handles cache eviction and registration
972
+ const targetLevel = effectiveConfig.getLoadLevel();
973
+ const depLevel = effectiveConfig.getDependencyLoadLevel();
974
+ for (const moduleId of topoOrder) {
975
+ const isTarget = targetIds.test(moduleId);
976
+ builder.loadModule(moduleId, isTarget ? targetLevel : depLevel);
977
+ if (!isTarget) {
978
+ continue;
979
+ }
980
+ const module = builder.getModule(moduleId);
981
+ if (!module) {
982
+ continue;
983
+ }
984
+ callback(module, this);
985
+ }
986
+ // 7. No unload, no dispose — modules persist in cache for cross-call reuse
987
+ }
814
988
  /**
815
989
  * Returns the **string** name of the project.
816
990
  * @returns The name of the project.
@@ -872,6 +1046,13 @@ class Scene {
872
1046
  setFile(file) {
873
1047
  this.filesMap.set(file.getFileSignature().toMapKey(), file);
874
1048
  }
1049
+ /**
1050
+ * Add an SDK ArkFile to the scene's `sdkArkFilesMap`, keyed by its file signature.
1051
+ * Used by {@link ModuleBuilder.parseAndRegisterSdkFile} during SDK file registration.
1052
+ */
1053
+ addSdkArkFile(arkFile) {
1054
+ this.sdkArkFilesMap.set(arkFile.getFileSignature().toMapKey(), arkFile);
1055
+ }
875
1056
  hasSdkFile(fileSignature) {
876
1057
  return this.sdkArkFilesMap.has(fileSignature.toMapKey());
877
1058
  }
@@ -985,6 +1166,41 @@ class Scene {
985
1166
  }
986
1167
  return arkClass || null;
987
1168
  }
1169
+ /**
1170
+ * Register a custom {@code @Component} into {@link customComponentMap}.
1171
+ * Called from ArkClass builders (full Scene build and module load share the same path).
1172
+ * Entries intentionally survive module unload so ViewTree can still resolve signatures.
1173
+ */
1174
+ registerCustomComponent(cls) {
1175
+ if (!cls.hasComponentDecorator()) {
1176
+ return;
1177
+ }
1178
+ const name = cls.getName();
1179
+ if (!name || name.startsWith('%')) {
1180
+ return;
1181
+ }
1182
+ this.customComponentMap.set(name, cls.getSignature());
1183
+ }
1184
+ /**
1185
+ * Remove a custom component entry. Not called on module unload — the map must outlive IR.
1186
+ * Used when an ArkClass is explicitly removed from a live Scene, or via {@link clear}.
1187
+ */
1188
+ unregisterCustomComponent(cls) {
1189
+ const name = cls.getName();
1190
+ if (!name || !cls.hasComponentDecorator()) {
1191
+ return;
1192
+ }
1193
+ const existing = this.customComponentMap.get(name);
1194
+ if (existing && existing.toMapKey() === cls.getSignature().toMapKey()) {
1195
+ this.customComponentMap.delete(name);
1196
+ }
1197
+ }
1198
+ getCustomComponent(name) {
1199
+ return name ? this.customComponentMap.get(name) : undefined;
1200
+ }
1201
+ getCustomComponentMap() {
1202
+ return this.customComponentMap;
1203
+ }
988
1204
  getClassesMap(refresh) {
989
1205
  if (refresh || this.buildStage === SceneBuildStage.METHOD_DONE) {
990
1206
  this.classesMap.clear();
@@ -1072,6 +1288,7 @@ class Scene {
1072
1288
  return this.methodsMap.delete(method.getSignature().toMapKey());
1073
1289
  }
1074
1290
  removeClass(arkClass) {
1291
+ this.unregisterCustomComponent(arkClass);
1075
1292
  return this.classesMap.delete(arkClass.getSignature().toMapKey());
1076
1293
  }
1077
1294
  removeNamespace(namespace) {
@@ -1080,6 +1297,48 @@ class Scene {
1080
1297
  removeFile(file) {
1081
1298
  return this.filesMap.delete(file.getFileSignature().toMapKey());
1082
1299
  }
1300
+ /**
1301
+ * Dispose a module's data from all global indices.
1302
+ *
1303
+ * Removes the module's ArkFiles, ArkClasses, ArkMethods, and ArkNamespaces from the Scene's
1304
+ * global maps (filesMap, sdkArkFilesMap, classesMap, methodsMap, namespacesMap) and clears
1305
+ * the oh-package.json5 content cache. After this call, the module's heavy data is no longer
1306
+ * reachable via Scene's global indices and can be garbage-collected.
1307
+ *
1308
+ * The global sdkGlobalMap is NOT cleaned (its keys are flat global names that cannot be
1309
+ * reverse-mapped to a module). SDK modules should not be disposed.
1310
+ *
1311
+ * @param module - The module whose data should be removed from global indices.
1312
+ */
1313
+ disposeModule(module) {
1314
+ for (const arkFile of module.getFilesMap().values()) {
1315
+ const key = arkFile.getFileSignature().toMapKey();
1316
+ this.filesMap.delete(key);
1317
+ this.sdkArkFilesMap.delete(key);
1318
+ for (const ns of ModelUtils_1.ModelUtils.getAllNamespacesInFile(arkFile)) {
1319
+ this.namespacesMap.delete(ns.getNamespaceSignature().toMapKey());
1320
+ }
1321
+ for (const cls of ModelUtils_1.ModelUtils.getAllClassesInFile(arkFile)) {
1322
+ this.classesMap.delete(cls.getSignature().toMapKey());
1323
+ for (const mtd of cls.getMethods()) {
1324
+ this.methodsMap.delete(mtd.getSignature().toMapKey());
1325
+ // Release heavy per-method IR (ArkBody/CFG/Stmt/Locals + ViewTree) so it can
1326
+ // be GC'd on eviction, even if the ArkMethod/ArkFile skeleton is still referenced
1327
+ // by residual back-edges. Bodies/viewTrees are rebuilt on reload.
1328
+ mtd.clearBodyAndSupplementary();
1329
+ }
1330
+ // Sever back-references: remove this class from its base classes' extendedClasses,
1331
+ // otherwise base classes (e.g. SDK) keep evicted project classes alive (memory leak).
1332
+ for (const base of cls.getAllHeritageClasses()) {
1333
+ base.getExtendedClasses().delete(cls.getName());
1334
+ }
1335
+ }
1336
+ // Release the TS AST (SourceFile) and cached source text; getCode() re-reads from disk.
1337
+ arkFile.setAST(null);
1338
+ arkFile.clearSourceCode();
1339
+ }
1340
+ this.ohPkgContentMap.delete(module.getOhPkgPath());
1341
+ }
1083
1342
  hasMainMethod() {
1084
1343
  return false;
1085
1344
  }
@@ -1276,8 +1535,7 @@ class Scene {
1276
1535
  const importNameSpaceClasses = classMap.get(importNameSpace.getNamespaceSignature());
1277
1536
  importClasses.push(...importNameSpaceClasses.filter(c => !importClasses.includes(c) && c.getName() !== Const_1.DEFAULT_ARK_CLASS_NAME));
1278
1537
  }
1279
- catch (_a) {
1280
- }
1538
+ catch (_a) { }
1281
1539
  }
1282
1540
  }
1283
1541
  const fileClasses = classMap.get(file.getFileSignature());
@@ -1329,8 +1587,7 @@ class Scene {
1329
1587
  while (namespaceStack.length > 0) {
1330
1588
  const ns = namespaceStack.shift();
1331
1589
  const nsGlobalLocals = [];
1332
- (_a = ns
1333
- .getDefaultClass()
1590
+ (_a = ns.getDefaultClass()
1334
1591
  .getDefaultArkMethod()
1335
1592
  .getBody()) === null || _a === void 0 ? void 0 : _a.getLocals().forEach(local => {
1336
1593
  if (local.getDeclaringStmt() && local.getName() !== 'this' && local.getName()[0] !== '$') {
@@ -1398,8 +1655,7 @@ class Scene {
1398
1655
  const importNameSpaceClasses = globalVariableMap.get(importNameSpace.getNamespaceSignature());
1399
1656
  importLocals.push(...importNameSpaceClasses.filter(c => !importLocals.includes(c) && c.getName() !== Const_1.DEFAULT_ARK_CLASS_NAME));
1400
1657
  }
1401
- catch (_a) {
1402
- }
1658
+ catch (_a) { }
1403
1659
  }
1404
1660
  }
1405
1661
  const fileLocals = globalVariableMap.get(file.getFileSignature());
@@ -1441,8 +1697,7 @@ class Scene {
1441
1697
  const parentMap = new Map();
1442
1698
  const finalNamespaces = [];
1443
1699
  const globalLocals = [];
1444
- (_b = (_a = file
1445
- .getDefaultClass()) === null || _a === void 0 ? void 0 : _a.getDefaultArkMethod().getBody()) === null || _b === void 0 ? void 0 : _b.getLocals().forEach(local => {
1700
+ (_b = (_a = file.getDefaultClass()) === null || _a === void 0 ? void 0 : _a.getDefaultArkMethod().getBody()) === null || _b === void 0 ? void 0 : _b.getLocals().forEach(local => {
1446
1701
  if (local.getDeclaringStmt() && local.getName() !== 'this' && local.getName()[0] !== '$') {
1447
1702
  globalLocals.push(local);
1448
1703
  }
@@ -218,7 +218,7 @@ exports.PAGStat = PAGStat;
218
218
  class CGStat extends StatTraits {
219
219
  constructor() {
220
220
  super(...arguments);
221
- //real, vitual, intrinsic, constructor
221
+ //real, virtual, intrinsic, constructor
222
222
  this.numTotalNode = 0;
223
223
  this.numReal = 0;
224
224
  this.numVirtual = 0;
@@ -249,7 +249,7 @@ class CGStat extends StatTraits {
249
249
  case CallGraph_1.CallGraphNodeKind.real:
250
250
  this.numReal++;
251
251
  break;
252
- case CallGraph_1.CallGraphNodeKind.vitual:
252
+ case CallGraph_1.CallGraphNodeKind.virtual:
253
253
  this.numVirtual++;
254
254
  break;
255
255
  case CallGraph_1.CallGraphNodeKind.constructor:
@@ -9,7 +9,7 @@ export type FuncID = number;
9
9
  export { CallSite, DynCallSite, ICallSite };
10
10
  export declare enum CallGraphNodeKind {
11
11
  real = 0,
12
- vitual = 1,
12
+ virtual = 1,
13
13
  intrinsic = 2,
14
14
  constructor = 3,
15
15
  blank = 4
@@ -56,7 +56,7 @@ export declare class CallGraph extends BaseExplicitGraph {
56
56
  getCallGraphNodeByMethod(method: Method): CallGraphNode;
57
57
  addDirectOrSpecialCallEdge(caller: Method, callee: Method, callStmt: Stmt, isDirectCall?: boolean): void;
58
58
  removeCallGraphEdge(nodeID: NodeID): void;
59
- addDynamicCallInfo(callStmt: Stmt, caller: Method, protentialCallee?: Method): void;
59
+ addDynamicCallInfo(callStmt: Stmt, caller: Method, potentialCallee?: Method): void;
60
60
  addDynamicCallEdge(callerID: NodeID, calleeID: NodeID, callStmt: Stmt): void;
61
61
  getDynCallSiteByStmt(stmt: Stmt): DynCallSite | undefined;
62
62
  addStmtToCallSiteMap(stmt: Stmt, cs: CallSite): boolean;
@@ -1 +1 @@
1
- {"version":3,"file":"CallGraph.d.ts","sourceRoot":"","sources":["../../../src/callgraph/model/CallGraph.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"CallGraph.d.ts","sourceRoot":"","sources":["../../../src/callgraph/model/CallGraph.ts"],"names":[],"mappings":"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"}
@@ -28,7 +28,7 @@ const CGJsonPrinter_1 = require("../../save/CGJsonPrinter");
28
28
  var CallGraphNodeKind;
29
29
  (function (CallGraphNodeKind) {
30
30
  CallGraphNodeKind[CallGraphNodeKind["real"] = 0] = "real";
31
- CallGraphNodeKind[CallGraphNodeKind["vitual"] = 1] = "vitual";
31
+ CallGraphNodeKind[CallGraphNodeKind["virtual"] = 1] = "virtual";
32
32
  CallGraphNodeKind[CallGraphNodeKind["intrinsic"] = 2] = "intrinsic";
33
33
  CallGraphNodeKind[CallGraphNodeKind["constructor"] = 3] = "constructor";
34
34
  CallGraphNodeKind[CallGraphNodeKind["blank"] = 4] = "blank";
@@ -156,7 +156,7 @@ class CallGraph extends BaseExplicitGraph_1.BaseExplicitGraph {
156
156
  // means the method has no implementation, or base type is unclear to find it
157
157
  // Create a virtual CG Node
158
158
  // TODO: this virtual CG Node need be remove once the base type is clear
159
- return this.addCallGraphNode(method, CallGraphNodeKind.vitual);
159
+ return this.addCallGraphNode(method, CallGraphNodeKind.virtual);
160
160
  }
161
161
  return this.getNode(n);
162
162
  }
@@ -192,15 +192,15 @@ class CallGraph extends BaseExplicitGraph_1.BaseExplicitGraph {
192
192
  node.removeIncomingEdge(inEdge);
193
193
  }
194
194
  for (const outEdge of (_b = node.getOutgoingEdges()) !== null && _b !== void 0 ? _b : []) {
195
- node.removeIncomingEdge(outEdge);
195
+ node.removeOutgoingEdge(outEdge);
196
196
  }
197
197
  }
198
- addDynamicCallInfo(callStmt, caller, protentialCallee) {
198
+ addDynamicCallInfo(callStmt, caller, potentialCallee) {
199
199
  var _a;
200
200
  let callerNode = this.getCallGraphNodeByMethod(caller);
201
201
  let calleeNode;
202
- if (protentialCallee) {
203
- calleeNode = this.getCallGraphNodeByMethod(protentialCallee);
202
+ if (potentialCallee) {
203
+ calleeNode = this.getCallGraphNodeByMethod(potentialCallee);
204
204
  }
205
205
  let args = (_a = callStmt.getInvokeExpr()) === null || _a === void 0 ? void 0 : _a.getArgs();
206
206
  let cs = this.csManager.newDynCallSite(callStmt, args, calleeNode === null || calleeNode === void 0 ? void 0 : calleeNode.getID(), callerNode.getID());
@@ -22,7 +22,7 @@ export declare class DynCallSite implements ICallSite {
22
22
  id: CallSiteID;
23
23
  callStmt: Stmt;
24
24
  args: Value[] | undefined;
25
- protentialCalleeFuncID: FuncID | undefined;
25
+ potentialCalleeFuncID: FuncID | undefined;
26
26
  callerFuncID: FuncID;
27
27
  constructor(id: CallSiteID, s: Stmt, a: Value[] | undefined, ptcCallee: FuncID | undefined, caller: FuncID);
28
28
  getCalleeFuncID(): FuncID | undefined;
@@ -1 +1 @@
1
- {"version":3,"file":"CallSite.d.ts","sourceRoot":"","sources":["../../../src/callgraph/model/CallSite.ts"],"names":[],"mappings":"AAeA,OAAO,EAAE,IAAI,EAAE,MAAM,sBAAsB,CAAC;AAC5C,OAAO,EAAE,KAAK,EAAE,MAAM,uBAAuB,CAAC;AAC9C,OAAO,EAAE,MAAM,EAAE,MAAM,aAAa,CAAC;AAErC,MAAM,MAAM,UAAU,GAAG,MAAM,CAAC;AAEhC,MAAM,WAAW,SAAS;IACtB,EAAE,EAAE,UAAU,CAAC;IACf,QAAQ,EAAE,IAAI,CAAC;IACf,IAAI,EAAE,KAAK,EAAE,GAAG,SAAS,CAAC;IAC1B,YAAY,EAAE,MAAM,CAAC;IACrB,eAAe,IAAI,MAAM,GAAG,SAAS,CAAC;CACzC;AAED,qBAAa,QAAS,YAAW,SAAS;IAC/B,EAAE,EAAE,UAAU,CAAC;IACf,QAAQ,EAAE,IAAI,CAAC;IACf,IAAI,EAAE,KAAK,EAAE,GAAG,SAAS,CAAC;IAC1B,YAAY,EAAE,MAAM,CAAC;IACrB,YAAY,EAAE,MAAM,CAAC;gBAEhB,EAAE,EAAE,UAAU,EAAE,CAAC,EAAE,IAAI,EAAE,CAAC,EAAE,KAAK,EAAE,GAAG,SAAS,EAAE,EAAE,EAAE,MAAM,EAAE,EAAE,EAAE,MAAM;IAQ5E,eAAe,IAAI,MAAM,GAAG,SAAS;CAG/C;AAED,qBAAa,WAAY,YAAW,SAAS;IAClC,EAAE,EAAE,UAAU,CAAC;IACf,QAAQ,EAAE,IAAI,CAAC;IACf,IAAI,EAAE,KAAK,EAAE,GAAG,SAAS,CAAC;IAC1B,sBAAsB,EAAE,MAAM,GAAG,SAAS,CAAC;IAC3C,YAAY,EAAE,MAAM,CAAC;gBAEhB,EAAE,EAAE,UAAU,EAAE,CAAC,EAAE,IAAI,EAAE,CAAC,EAAE,KAAK,EAAE,GAAG,SAAS,EAAE,SAAS,EAAE,MAAM,GAAG,SAAS,EAAE,MAAM,EAAE,MAAM;IAQnG,eAAe,IAAI,MAAM,GAAG,SAAS;CAG/C;AAED,qBAAa,eAAe;IACxB,OAAO,CAAC,eAAe,CAAyC;IAChE,OAAO,CAAC,eAAe,CAAyC;IAChE,OAAO,CAAC,cAAc,CAA4C;IAE3D,WAAW,CAAC,CAAC,EAAE,IAAI,EAAE,CAAC,EAAE,KAAK,EAAE,GAAG,SAAS,EAAE,EAAE,EAAE,MAAM,EAAE,EAAE,EAAE,MAAM,GAAG,QAAQ;IAQ9E,cAAc,CAAC,CAAC,EAAE,IAAI,EAAE,CAAC,EAAE,KAAK,EAAE,GAAG,SAAS,EAAE,SAAS,EAAE,MAAM,GAAG,SAAS,EAAE,MAAM,EAAE,MAAM,GAAG,WAAW;IAQ3G,oBAAoB,CAAC,WAAW,EAAE,WAAW,EAAE,YAAY,EAAE,MAAM,GAAG,QAAQ;IAkB9E,eAAe,CAAC,EAAE,EAAE,UAAU,GAAG,SAAS,GAAG,SAAS;CAGhE"}
1
+ {"version":3,"file":"CallSite.d.ts","sourceRoot":"","sources":["../../../src/callgraph/model/CallSite.ts"],"names":[],"mappings":"AAeA,OAAO,EAAE,IAAI,EAAE,MAAM,sBAAsB,CAAC;AAC5C,OAAO,EAAE,KAAK,EAAE,MAAM,uBAAuB,CAAC;AAC9C,OAAO,EAAE,MAAM,EAAE,MAAM,aAAa,CAAC;AAErC,MAAM,MAAM,UAAU,GAAG,MAAM,CAAC;AAEhC,MAAM,WAAW,SAAS;IACtB,EAAE,EAAE,UAAU,CAAC;IACf,QAAQ,EAAE,IAAI,CAAC;IACf,IAAI,EAAE,KAAK,EAAE,GAAG,SAAS,CAAC;IAC1B,YAAY,EAAE,MAAM,CAAC;IACrB,eAAe,IAAI,MAAM,GAAG,SAAS,CAAC;CACzC;AAED,qBAAa,QAAS,YAAW,SAAS;IAC/B,EAAE,EAAE,UAAU,CAAC;IACf,QAAQ,EAAE,IAAI,CAAC;IACf,IAAI,EAAE,KAAK,EAAE,GAAG,SAAS,CAAC;IAC1B,YAAY,EAAE,MAAM,CAAC;IACrB,YAAY,EAAE,MAAM,CAAC;gBAEhB,EAAE,EAAE,UAAU,EAAE,CAAC,EAAE,IAAI,EAAE,CAAC,EAAE,KAAK,EAAE,GAAG,SAAS,EAAE,EAAE,EAAE,MAAM,EAAE,EAAE,EAAE,MAAM;IAQ5E,eAAe,IAAI,MAAM,GAAG,SAAS;CAG/C;AAED,qBAAa,WAAY,YAAW,SAAS;IAClC,EAAE,EAAE,UAAU,CAAC;IACf,QAAQ,EAAE,IAAI,CAAC;IACf,IAAI,EAAE,KAAK,EAAE,GAAG,SAAS,CAAC;IAC1B,qBAAqB,EAAE,MAAM,GAAG,SAAS,CAAC;IAC1C,YAAY,EAAE,MAAM,CAAC;gBAEhB,EAAE,EAAE,UAAU,EAAE,CAAC,EAAE,IAAI,EAAE,CAAC,EAAE,KAAK,EAAE,GAAG,SAAS,EAAE,SAAS,EAAE,MAAM,GAAG,SAAS,EAAE,MAAM,EAAE,MAAM;IAQnG,eAAe,IAAI,MAAM,GAAG,SAAS;CAG/C;AAED,qBAAa,eAAe;IACxB,OAAO,CAAC,eAAe,CAAyC;IAChE,OAAO,CAAC,eAAe,CAAyC;IAChE,OAAO,CAAC,cAAc,CAA4C;IAE3D,WAAW,CAAC,CAAC,EAAE,IAAI,EAAE,CAAC,EAAE,KAAK,EAAE,GAAG,SAAS,EAAE,EAAE,EAAE,MAAM,EAAE,EAAE,EAAE,MAAM,GAAG,QAAQ;IAQ9E,cAAc,CAAC,CAAC,EAAE,IAAI,EAAE,CAAC,EAAE,KAAK,EAAE,GAAG,SAAS,EAAE,SAAS,EAAE,MAAM,GAAG,SAAS,EAAE,MAAM,EAAE,MAAM,GAAG,WAAW;IAQ3G,oBAAoB,CAAC,WAAW,EAAE,WAAW,EAAE,YAAY,EAAE,MAAM,GAAG,QAAQ;IAkB9E,eAAe,CAAC,EAAE,EAAE,UAAU,GAAG,SAAS,GAAG,SAAS;CAGhE"}
@@ -34,10 +34,10 @@ class DynCallSite {
34
34
  this.callerFuncID = caller;
35
35
  this.callStmt = s;
36
36
  this.args = a;
37
- this.protentialCalleeFuncID = ptcCallee;
37
+ this.potentialCalleeFuncID = ptcCallee;
38
38
  }
39
39
  getCalleeFuncID() {
40
- return this.protentialCalleeFuncID;
40
+ return this.potentialCalleeFuncID;
41
41
  }
42
42
  }
43
43
  exports.DynCallSite = DynCallSite;
@@ -1 +1 @@
1
- {"version":3,"file":"Ref.d.ts","sourceRoot":"","sources":["../../../src/core/base/Ref.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"Ref.d.ts","sourceRoot":"","sources":["../../../src/core/base/Ref.ts"],"names":[],"mappings":"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"}
@@ -103,7 +103,12 @@ class ArkArrayRef extends AbstractRef {
103
103
  this.index = newIndex;
104
104
  }
105
105
  getType() {
106
- let baseType = TypeInference_1.TypeInference.replaceTypeWithReal(this.base.getType());
106
+ const rawType = this.base.getType();
107
+ // StringType is primitive, never generic — skip replaceTypeWithReal to avoid wasted Set allocation
108
+ if (rawType instanceof Type_1.StringType) {
109
+ return Type_1.StringType.getInstance();
110
+ }
111
+ const baseType = TypeInference_1.TypeInference.replaceTypeWithReal(rawType);
107
112
  if (baseType instanceof Type_1.ArrayType) {
108
113
  return baseType.getBaseType();
109
114
  }
@@ -1 +1 @@
1
- {"version":3,"file":"ArkIRTransformer.d.ts","sourceRoot":"","sources":["../../../src/core/common/ArkIRTransformer.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"ArkIRTransformer.d.ts","sourceRoot":"","sources":["../../../src/core/common/ArkIRTransformer.ts"],"names":[],"mappings":"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"}
@@ -819,6 +819,7 @@ class ArkIRTransformer {
819
819
  };
820
820
  }
821
821
  generateIfStmtForValues(leftValue, leftOpOriginalPositions, rightValue, rightOpOriginalPositions) {
822
+ var _a;
822
823
  const stmts = [];
823
824
  if (IRUtils_1.IRUtils.moreThanOneAddress(leftValue)) {
824
825
  const { value: tempLeftValue, valueOriginalPositions: tempLeftPositions, stmts: leftStmts, } = this.generateAssignStmtForValue(leftValue, leftOpOriginalPositions);
@@ -836,6 +837,10 @@ class ArkIRTransformer {
836
837
  const conditionPositions = [...leftOpOriginalPositions, ...rightOpOriginalPositions];
837
838
  const ifStmt = new Stmt_1.ArkIfStmt(conditionExpr);
838
839
  ifStmt.setOperandOriginalPositions([...conditionPositions]);
840
+ const originPos = (_a = rightOpOriginalPositions.find(p => p !== Position_1.FullPosition.DEFAULT)) !== null && _a !== void 0 ? _a : leftOpOriginalPositions.find(p => p !== Position_1.FullPosition.DEFAULT);
841
+ if (originPos) {
842
+ ifStmt.setOriginFullPosition(originPos);
843
+ }
839
844
  stmts.push(ifStmt);
840
845
  return stmts;
841
846
  }
@@ -1 +1 @@
1
- {"version":3,"file":"ArkValueTransformer.d.ts","sourceRoot":"","sources":["../../../src/core/common/ArkValueTransformer.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"ArkValueTransformer.d.ts","sourceRoot":"","sources":["../../../src/core/common/ArkValueTransformer.ts"],"names":[],"mappings":"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"}