arkanalyzer 1.0.93 → 2.0.0-beta1
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.
- package/lib/Config.d.ts +7 -0
- package/lib/Config.d.ts.map +1 -1
- package/lib/Scene.d.ts +134 -170
- package/lib/Scene.d.ts.map +1 -1
- package/lib/Scene.js +412 -976
- package/lib/callgraph/algorithm/AbstractAnalysis.js +3 -2
- package/lib/callgraph/algorithm/RapidTypeAnalysis.d.ts.map +1 -1
- package/lib/callgraph/algorithm/RapidTypeAnalysis.js +2 -3
- package/lib/callgraph/model/CallGraph.js +1 -1
- package/lib/callgraph/pointerAnalysis/PTAUtils.d.ts +1 -3
- package/lib/callgraph/pointerAnalysis/PTAUtils.d.ts.map +1 -1
- package/lib/callgraph/pointerAnalysis/PTAUtils.js +17 -7
- package/lib/callgraph/pointerAnalysis/Pag.d.ts.map +1 -1
- package/lib/callgraph/pointerAnalysis/Pag.js +4 -14
- package/lib/callgraph/pointerAnalysis/PagBuilder.d.ts.map +1 -1
- package/lib/callgraph/pointerAnalysis/PagBuilder.js +2 -1
- package/lib/callgraph/pointerAnalysis/PointerAnalysis.d.ts.map +1 -1
- package/lib/callgraph/pointerAnalysis/PointerAnalysis.js +1 -2
- package/lib/callgraph/pointerAnalysis/plugins/WorkerPlugin.d.ts.map +1 -1
- package/lib/callgraph/pointerAnalysis/plugins/WorkerPlugin.js +0 -1
- package/lib/cli/commands/cg.d.ts +1 -0
- package/lib/cli/commands/cg.d.ts.map +1 -1
- package/lib/cli/commands/cg.js +22 -18
- package/lib/cli/commands/ir.d.ts +1 -0
- package/lib/cli/commands/ir.d.ts.map +1 -1
- package/lib/cli/commands/ir.js +5 -2
- package/lib/core/base/Constant.d.ts +5 -5
- package/lib/core/base/Constant.d.ts.map +1 -1
- package/lib/core/base/Constant.js +12 -9
- package/lib/core/base/Expr.d.ts +36 -20
- package/lib/core/base/Expr.d.ts.map +1 -1
- package/lib/core/base/Expr.js +206 -94
- package/lib/core/base/Local.d.ts +10 -20
- package/lib/core/base/Local.d.ts.map +1 -1
- package/lib/core/base/Local.js +25 -28
- package/lib/core/base/Position.d.ts +6 -0
- package/lib/core/base/Position.d.ts.map +1 -1
- package/lib/core/base/Position.js +37 -11
- package/lib/core/base/Ref.d.ts +45 -33
- package/lib/core/base/Ref.d.ts.map +1 -1
- package/lib/core/base/Ref.js +225 -51
- package/lib/core/base/Stmt.d.ts +19 -9
- package/lib/core/base/Stmt.d.ts.map +1 -1
- package/lib/core/base/Stmt.js +135 -52
- package/lib/core/base/Type.d.ts +67 -4
- package/lib/core/base/Type.d.ts.map +1 -1
- package/lib/core/base/Type.js +391 -20
- package/lib/core/base/TypeExpr.d.ts +6 -4
- package/lib/core/base/TypeExpr.d.ts.map +1 -1
- package/lib/core/base/TypeExpr.js +34 -10
- package/lib/core/base/Value.d.ts +20 -2
- package/lib/core/base/Value.d.ts.map +1 -1
- package/lib/core/base/Value.js +12 -0
- package/lib/core/common/ArkIRTransformer.d.ts +18 -0
- package/lib/core/common/ArkIRTransformer.d.ts.map +1 -1
- package/lib/core/common/ArkIRTransformer.js +94 -75
- package/lib/core/common/ArkValueTransformer.d.ts +21 -3
- package/lib/core/common/ArkValueTransformer.d.ts.map +1 -1
- package/lib/core/common/ArkValueTransformer.js +458 -266
- package/lib/core/common/Builtin.d.ts +48 -24
- package/lib/core/common/Builtin.d.ts.map +1 -1
- package/lib/core/common/Builtin.js +90 -52
- package/lib/core/common/CanonicalizerValidator.d.ts +308 -0
- package/lib/core/common/CanonicalizerValidator.d.ts.map +1 -0
- package/lib/core/common/CanonicalizerValidator.js +888 -0
- package/lib/core/common/Const.d.ts +3 -3
- package/lib/core/common/Const.d.ts.map +1 -1
- package/lib/core/common/Const.js +3 -3
- package/lib/core/common/DummyMainCreater.d.ts +2 -21
- package/lib/core/common/DummyMainCreater.d.ts.map +1 -1
- package/lib/core/common/DummyMainCreater.js +8 -105
- package/lib/core/common/IRInference.d.ts +55 -3
- package/lib/core/common/IRInference.d.ts.map +1 -1
- package/lib/core/common/IRInference.js +407 -126
- package/lib/core/common/IRUtils.d.ts +1 -0
- package/lib/core/common/IRUtils.d.ts.map +1 -1
- package/lib/core/common/IRUtils.js +44 -13
- package/lib/core/common/ModelUtils.d.ts +44 -20
- package/lib/core/common/ModelUtils.d.ts.map +1 -1
- package/lib/core/common/ModelUtils.js +378 -208
- package/lib/core/common/SdkUtils.d.ts +35 -5
- package/lib/core/common/SdkUtils.d.ts.map +1 -1
- package/lib/core/common/SdkUtils.js +203 -59
- package/lib/core/common/SignatureCanonicalizer.d.ts +95 -0
- package/lib/core/common/SignatureCanonicalizer.d.ts.map +1 -0
- package/lib/core/common/SignatureCanonicalizer.js +116 -0
- package/lib/core/common/SignatureCanonicalizerRegistry.d.ts +176 -0
- package/lib/core/common/SignatureCanonicalizerRegistry.d.ts.map +1 -0
- package/lib/core/common/SignatureCanonicalizerRegistry.js +343 -0
- package/lib/core/common/SignatureModelCanonicalizer.d.ts +69 -0
- package/lib/core/common/SignatureModelCanonicalizer.d.ts.map +1 -0
- package/lib/core/common/SignatureModelCanonicalizer.js +109 -0
- package/lib/core/common/StmtUseReplacer.d.ts +1 -0
- package/lib/core/common/StmtUseReplacer.d.ts.map +1 -1
- package/lib/core/common/StmtUseReplacer.js +9 -0
- package/lib/core/common/StringUtils.d.ts +12 -1
- package/lib/core/common/StringUtils.d.ts.map +1 -1
- package/lib/core/common/StringUtils.js +36 -17
- package/lib/core/common/TempSignatureCanonicalizer.d.ts +82 -0
- package/lib/core/common/TempSignatureCanonicalizer.d.ts.map +1 -0
- package/lib/core/common/TempSignatureCanonicalizer.js +177 -0
- package/lib/core/common/TypeInference.d.ts +24 -6
- package/lib/core/common/TypeInference.d.ts.map +1 -1
- package/lib/core/common/TypeInference.js +243 -117
- package/lib/core/common/ValueUtil.d.ts +2 -1
- package/lib/core/common/ValueUtil.d.ts.map +1 -1
- package/lib/core/common/ValueUtil.js +4 -1
- package/lib/core/graph/Cfg.d.ts.map +1 -1
- package/lib/core/graph/Cfg.js +21 -6
- package/lib/core/graph/builder/CfgBuilder.d.ts.map +1 -1
- package/lib/core/graph/builder/CfgBuilder.js +46 -33
- package/lib/core/graph/builder/IfBuilder.d.ts.map +1 -1
- package/lib/core/graph/builder/IfBuilder.js +6 -2
- package/lib/core/graph/builder/ViewTreeBuilder.d.ts.map +1 -1
- package/lib/core/graph/builder/ViewTreeBuilder.js +6 -2
- package/lib/core/inference/ModelInference.d.ts +24 -4
- package/lib/core/inference/ModelInference.d.ts.map +1 -1
- package/lib/core/inference/ModelInference.js +273 -79
- package/lib/core/inference/ValueInference.d.ts +3 -2
- package/lib/core/inference/ValueInference.d.ts.map +1 -1
- package/lib/core/inference/ValueInference.js +90 -40
- package/lib/core/inference/abc/AbcInference.d.ts.map +1 -1
- package/lib/core/inference/abc/AbcInference.js +28 -15
- package/lib/core/inference/arkts/ArkTsInference.d.ts +9 -3
- package/lib/core/inference/arkts/ArkTsInference.d.ts.map +1 -1
- package/lib/core/inference/arkts/ArkTsInference.js +54 -16
- package/lib/core/model/ArkClass.d.ts +192 -18
- package/lib/core/model/ArkClass.d.ts.map +1 -1
- package/lib/core/model/ArkClass.js +852 -122
- package/lib/core/model/ArkExport.d.ts.map +1 -1
- package/lib/core/model/ArkExport.js +1 -2
- package/lib/core/model/ArkField.d.ts +34 -2
- package/lib/core/model/ArkField.d.ts.map +1 -1
- package/lib/core/model/ArkField.js +89 -14
- package/lib/core/model/ArkFile.d.ts +72 -12
- package/lib/core/model/ArkFile.d.ts.map +1 -1
- package/lib/core/model/ArkFile.js +275 -65
- package/lib/core/model/ArkImport.d.ts.map +1 -1
- package/lib/core/model/ArkImport.js +1 -2
- package/lib/core/model/ArkMethod.d.ts +101 -15
- package/lib/core/model/ArkMethod.d.ts.map +1 -1
- package/lib/core/model/ArkMethod.js +252 -39
- package/lib/core/model/ArkModule.d.ts +1 -1
- package/lib/core/model/ArkModule.js +1 -1
- package/lib/core/model/ArkNamespace.d.ts +80 -10
- package/lib/core/model/ArkNamespace.d.ts.map +1 -1
- package/lib/core/model/ArkNamespace.js +309 -76
- package/lib/core/model/ArkSignature.d.ts +242 -18
- package/lib/core/model/ArkSignature.d.ts.map +1 -1
- package/lib/core/model/ArkSignature.js +725 -95
- package/lib/core/model/builder/ArkClassBuilder.d.ts +6 -3
- package/lib/core/model/builder/ArkClassBuilder.d.ts.map +1 -1
- package/lib/core/model/builder/ArkClassBuilder.js +119 -73
- package/lib/core/model/builder/ArkExportBuilder.d.ts +1 -1
- package/lib/core/model/builder/ArkExportBuilder.d.ts.map +1 -1
- package/lib/core/model/builder/ArkExportBuilder.js +1 -1
- package/lib/core/model/builder/ArkFieldBuilder.d.ts +0 -2
- package/lib/core/model/builder/ArkFieldBuilder.d.ts.map +1 -1
- package/lib/core/model/builder/ArkFieldBuilder.js +9 -43
- package/lib/core/model/builder/ArkFileBuilder.d.ts.map +1 -1
- package/lib/core/model/builder/ArkFileBuilder.js +32 -33
- package/lib/core/model/builder/ArkMethodBuilder.d.ts +10 -3
- package/lib/core/model/builder/ArkMethodBuilder.d.ts.map +1 -1
- package/lib/core/model/builder/ArkMethodBuilder.js +40 -26
- package/lib/core/model/builder/ArkNamespaceBuilder.d.ts +3 -2
- package/lib/core/model/builder/ArkNamespaceBuilder.d.ts.map +1 -1
- package/lib/core/model/builder/ArkNamespaceBuilder.js +45 -77
- package/lib/core/model/builder/ArkSignatureBuilder.d.ts +9 -0
- package/lib/core/model/builder/ArkSignatureBuilder.d.ts.map +1 -1
- package/lib/core/model/builder/ArkSignatureBuilder.js +26 -3
- package/lib/core/model/builder/BodyBuilder.d.ts +1 -0
- package/lib/core/model/builder/BodyBuilder.d.ts.map +1 -1
- package/lib/core/model/builder/BodyBuilder.js +37 -11
- package/lib/core/model/builder/builderUtils.d.ts +11 -1
- package/lib/core/model/builder/builderUtils.d.ts.map +1 -1
- package/lib/core/model/builder/builderUtils.js +124 -90
- package/lib/frontend/FrontendBuilder.d.ts +10 -6
- package/lib/frontend/FrontendBuilder.d.ts.map +1 -1
- package/lib/frontend/FrontendBuilder.js +19 -45
- package/lib/frontend/ModuleScene.d.ts +43 -0
- package/lib/frontend/ModuleScene.d.ts.map +1 -0
- package/lib/frontend/ModuleScene.js +143 -0
- package/lib/frontend/SceneBuildStage.d.ts +15 -0
- package/lib/frontend/SceneBuildStage.d.ts.map +1 -0
- package/lib/frontend/SceneBuildStage.js +32 -0
- package/lib/frontend/SceneBuilder.d.ts +153 -0
- package/lib/frontend/SceneBuilder.d.ts.map +1 -0
- package/lib/frontend/SceneBuilder.js +859 -0
- package/lib/frontend/arktsFrontend/ArktsFrontend.d.ts +0 -2
- package/lib/frontend/arktsFrontend/ArktsFrontend.d.ts.map +1 -1
- package/lib/frontend/arktsFrontend/ArktsFrontend.js +0 -18
- package/lib/frontend/arktsFrontend/FileBodyRemount.d.ts +17 -0
- package/lib/frontend/arktsFrontend/FileBodyRemount.d.ts.map +1 -0
- package/lib/frontend/arktsFrontend/FileBodyRemount.js +187 -0
- package/lib/frontend/common/ModuleBuilder.d.ts +4 -2
- package/lib/frontend/common/ModuleBuilder.d.ts.map +1 -1
- package/lib/frontend/common/ModuleBuilder.js +19 -9
- package/lib/frontend/cppFrontend/CppFrontend.d.ts +0 -6
- package/lib/frontend/cppFrontend/CppFrontend.d.ts.map +1 -1
- package/lib/frontend/cppFrontend/CppFrontend.js +0 -56
- package/lib/frontend/cppFrontend/base/Type.d.ts +7 -0
- package/lib/frontend/cppFrontend/base/Type.d.ts.map +1 -1
- package/lib/frontend/cppFrontend/base/Type.js +29 -0
- package/lib/frontend/cppFrontend/common/ArkIRTransformer.d.ts.map +1 -1
- package/lib/frontend/cppFrontend/common/ArkIRTransformer.js +56 -56
- package/lib/frontend/cppFrontend/common/ArkValueTransformer.d.ts +1 -1
- package/lib/frontend/cppFrontend/common/ArkValueTransformer.d.ts.map +1 -1
- package/lib/frontend/cppFrontend/common/ArkValueTransformer.js +124 -113
- package/lib/frontend/cppFrontend/common/Builtin.d.ts +29 -19
- package/lib/frontend/cppFrontend/common/Builtin.d.ts.map +1 -1
- package/lib/frontend/cppFrontend/common/Builtin.js +56 -35
- package/lib/frontend/cppFrontend/common/IRInference.d.ts +7 -2
- package/lib/frontend/cppFrontend/common/IRInference.d.ts.map +1 -1
- package/lib/frontend/cppFrontend/common/IRInference.js +61 -28
- package/lib/frontend/cppFrontend/common/IRUtils.d.ts +1 -0
- package/lib/frontend/cppFrontend/common/IRUtils.d.ts.map +1 -1
- package/lib/frontend/cppFrontend/common/IRUtils.js +22 -10
- package/lib/frontend/cppFrontend/common/ModelUtils.d.ts +19 -0
- package/lib/frontend/cppFrontend/common/ModelUtils.d.ts.map +1 -1
- package/lib/frontend/cppFrontend/common/ModelUtils.js +84 -3
- package/lib/frontend/cppFrontend/common/TypeInference.d.ts.map +1 -1
- package/lib/frontend/cppFrontend/common/TypeInference.js +44 -54
- package/lib/frontend/cppFrontend/graph/builder/CfgBuilder.d.ts.map +1 -1
- package/lib/frontend/cppFrontend/graph/builder/CfgBuilder.js +2 -1
- package/lib/frontend/cppFrontend/inference/CxxModelInference.d.ts +1 -1
- package/lib/frontend/cppFrontend/inference/CxxModelInference.d.ts.map +1 -1
- package/lib/frontend/cppFrontend/inference/CxxValueInference.d.ts.map +1 -1
- package/lib/frontend/cppFrontend/inference/CxxValueInference.js +41 -5
- package/lib/frontend/cppFrontend/model/builder/ArkClassBuilder.d.ts.map +1 -1
- package/lib/frontend/cppFrontend/model/builder/ArkClassBuilder.js +18 -28
- package/lib/frontend/cppFrontend/model/builder/ArkFieldBuilder.d.ts.map +1 -1
- package/lib/frontend/cppFrontend/model/builder/ArkFieldBuilder.js +2 -3
- package/lib/frontend/cppFrontend/model/builder/ArkFileBuilder.d.ts +2 -2
- package/lib/frontend/cppFrontend/model/builder/ArkFileBuilder.d.ts.map +1 -1
- package/lib/frontend/cppFrontend/model/builder/ArkFileBuilder.js +31 -24
- package/lib/frontend/cppFrontend/model/builder/ArkMethodBuilder.d.ts.map +1 -1
- package/lib/frontend/cppFrontend/model/builder/ArkMethodBuilder.js +10 -16
- package/lib/frontend/cppFrontend/model/builder/ArkNamespaceBuilder.d.ts +0 -2
- package/lib/frontend/cppFrontend/model/builder/ArkNamespaceBuilder.d.ts.map +1 -1
- package/lib/frontend/cppFrontend/model/builder/ArkNamespaceBuilder.js +19 -37
- package/lib/frontend/cppFrontend/model/builder/BodyBuilder.d.ts +1 -0
- package/lib/frontend/cppFrontend/model/builder/BodyBuilder.d.ts.map +1 -1
- package/lib/frontend/cppFrontend/model/builder/BodyBuilder.js +30 -3
- package/lib/frontend/cppFrontend/model/builder/builderUtils.d.ts.map +1 -1
- package/lib/frontend/cppFrontend/model/builder/builderUtils.js +8 -4
- package/lib/index.d.ts +3 -0
- package/lib/index.d.ts.map +1 -1
- package/lib/index.js +10 -2
- package/lib/save/json/JsonSerialization.js +2 -2
- package/lib/save/source/SourceStmt.js +1 -1
- package/lib/save/source/SourceTransformer.d.ts.map +1 -1
- package/lib/save/source/SourceTransformer.js +0 -9
- package/lib/statistics/StageStatistics.d.ts +195 -0
- package/lib/statistics/StageStatistics.d.ts.map +1 -0
- package/lib/statistics/StageStatistics.js +346 -0
- package/lib/statistics/StageStatisticsReporter.d.ts +58 -0
- package/lib/statistics/StageStatisticsReporter.d.ts.map +1 -0
- package/lib/statistics/StageStatisticsReporter.js +255 -0
- package/lib/utils/Canonicalizer.d.ts +9 -2
- package/lib/utils/Canonicalizer.d.ts.map +1 -1
- package/lib/utils/Canonicalizer.js +19 -2
- package/lib/utils/CxxSceneUtils.d.ts +7 -0
- package/lib/utils/CxxSceneUtils.d.ts.map +1 -1
- package/lib/utils/CxxSceneUtils.js +10 -1
- package/lib/utils/FileUtils.d.ts +0 -1
- package/lib/utils/FileUtils.d.ts.map +1 -1
- package/lib/utils/FileUtils.js +1 -9
- package/lib/utils/HashUtils.d.ts +9 -0
- package/lib/utils/HashUtils.d.ts.map +1 -0
- package/lib/utils/HashUtils.js +65 -0
- package/lib/utils/ModuleUtils.d.ts.map +1 -1
- package/lib/utils/ModuleUtils.js +24 -5
- package/lib/utils/VisitedSegment.d.ts +23 -0
- package/lib/utils/VisitedSegment.d.ts.map +1 -0
- package/lib/utils/VisitedSegment.js +64 -0
- package/lib/utils/callGraphUtils.d.ts.map +1 -1
- package/lib/utils/callGraphUtils.js +7 -7
- package/lib/utils/getAllFiles.d.ts.map +1 -1
- package/lib/utils/getAllFiles.js +11 -8
- package/lib/utils/logger.d.ts +4 -0
- package/lib/utils/logger.d.ts.map +1 -1
- package/lib/utils/logger.js +16 -0
- package/lib/utils/parseArkSourceFile.d.ts +33 -0
- package/lib/utils/parseArkSourceFile.d.ts.map +1 -0
- package/lib/utils/parseArkSourceFile.js +131 -0
- package/package.json +1 -1
- package/lib/node_modules/ohos-typescript/README.OpenSource +0 -11
- package/lib/node_modules/ohos-typescript/README.md +0 -81
- package/lib/node_modules/ohos-typescript/SECURITY.md +0 -41
- package/lib/node_modules/ohos-typescript/ThirdPartyNoticeText.txt +0 -193
- package/lib/node_modules/ohos-typescript/bin/tsc +0 -2
- package/lib/node_modules/ohos-typescript/bin/tsserver +0 -2
- package/lib/node_modules/ohos-typescript/lib/README.md +0 -5
- package/lib/node_modules/ohos-typescript/lib/cancellationToken.js +0 -86
- package/lib/node_modules/ohos-typescript/lib/cs/diagnosticMessages.generated.json +0 -1880
- package/lib/node_modules/ohos-typescript/lib/de/diagnosticMessages.generated.json +0 -1880
- package/lib/node_modules/ohos-typescript/lib/es/diagnosticMessages.generated.json +0 -1880
- package/lib/node_modules/ohos-typescript/lib/fr/diagnosticMessages.generated.json +0 -1880
- package/lib/node_modules/ohos-typescript/lib/it/diagnosticMessages.generated.json +0 -1880
- package/lib/node_modules/ohos-typescript/lib/ja/diagnosticMessages.generated.json +0 -1880
- package/lib/node_modules/ohos-typescript/lib/ko/diagnosticMessages.generated.json +0 -1880
- package/lib/node_modules/ohos-typescript/lib/lib.dom.d.ts +0 -18505
- package/lib/node_modules/ohos-typescript/lib/lib.dom.iterable.d.ts +0 -341
- package/lib/node_modules/ohos-typescript/lib/lib.scripthost.d.ts +0 -327
- package/lib/node_modules/ohos-typescript/lib/lib.webworker.d.ts +0 -6192
- package/lib/node_modules/ohos-typescript/lib/lib.webworker.importscripts.d.ts +0 -26
- package/lib/node_modules/ohos-typescript/lib/lib.webworker.iterable.d.ts +0 -175
- package/lib/node_modules/ohos-typescript/lib/pl/diagnosticMessages.generated.json +0 -1880
- package/lib/node_modules/ohos-typescript/lib/pt-br/diagnosticMessages.generated.json +0 -1880
- package/lib/node_modules/ohos-typescript/lib/ru/diagnosticMessages.generated.json +0 -1880
- package/lib/node_modules/ohos-typescript/lib/tr/diagnosticMessages.generated.json +0 -1880
- package/lib/node_modules/ohos-typescript/lib/tsc.js +0 -114551
- package/lib/node_modules/ohos-typescript/lib/tsserver.js +0 -179691
- package/lib/node_modules/ohos-typescript/lib/tsserverlibrary.d.ts +0 -13648
- package/lib/node_modules/ohos-typescript/lib/tsserverlibrary.js +0 -178688
- package/lib/node_modules/ohos-typescript/lib/typesMap.json +0 -497
- package/lib/node_modules/ohos-typescript/lib/typingsInstaller.js +0 -39871
- package/lib/node_modules/ohos-typescript/lib/watchGuard.js +0 -49
- package/lib/node_modules/ohos-typescript/lib/zh-cn/diagnosticMessages.generated.json +0 -1880
- package/lib/node_modules/ohos-typescript/lib/zh-tw/diagnosticMessages.generated.json +0 -1880
- package/lib/utils/DependenciesSort.d.ts +0 -3
- package/lib/utils/DependenciesSort.d.ts.map +0 -1
- package/lib/utils/DependenciesSort.js +0 -72
- package/lib/utils/crypto_utils.d.ts +0 -6
- package/lib/utils/crypto_utils.d.ts.map +0 -1
- package/lib/utils/crypto_utils.js +0 -57
|
@@ -1,7 +1,8 @@
|
|
|
1
1
|
import { BigIntConstant, Constant, StringConstant } from '../base/Constant';
|
|
2
2
|
export declare const EMPTY_STRING = "";
|
|
3
3
|
export declare class ValueUtil {
|
|
4
|
-
static
|
|
4
|
+
private static EMPTY_STRING_CONSTANT_?;
|
|
5
|
+
static get EMPTY_STRING_CONSTANT(): StringConstant;
|
|
5
6
|
static dispose(): void;
|
|
6
7
|
static getOrCreateNumberConst(n: number | string): Constant;
|
|
7
8
|
static createBigIntConst(bigInt: bigint): BigIntConstant;
|
|
@@ -1 +1 @@
|
|
|
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;AAG9I,eAAO,MAAM,YAAY,KAAK,CAAC;AAG/B,qBAAa,SAAS;
|
|
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;AAG9I,eAAO,MAAM,YAAY,KAAK,CAAC;AAG/B,qBAAa,SAAS;IAIlB,OAAO,CAAC,MAAM,CAAC,sBAAsB,CAAC,CAAiB;IAEvD,WAAkB,qBAAqB,IAAI,cAAc,CAExD;WAOa,OAAO,IAAI,IAAI;WAUf,sBAAsB,CAAC,CAAC,EAAE,MAAM,GAAG,MAAM,GAAG,QAAQ;WAUpD,iBAAiB,CAAC,MAAM,EAAE,MAAM,GAAG,cAAc;IAK/D,OAAO,CAAC,MAAM,CAAC,sBAAsB;WAIvB,iBAAiB,CAAC,GAAG,EAAE,MAAM,GAAG,QAAQ;WAUxC,WAAW,CAAC,GAAG,EAAE,MAAM,GAAG,QAAQ;WAQlC,iBAAiB,IAAI,QAAQ;WAI7B,eAAe,IAAI,QAAQ;WAI3B,kBAAkB,CAAC,KAAK,EAAE,OAAO,GAAG,QAAQ;CAG7D"}
|
|
@@ -26,6 +26,10 @@ const LRUCacheDecorator_1 = require("../../utils/LRUCacheDecorator");
|
|
|
26
26
|
exports.EMPTY_STRING = '';
|
|
27
27
|
const STRING_CACHE_MAX_LENGTH = 32;
|
|
28
28
|
class ValueUtil {
|
|
29
|
+
static get EMPTY_STRING_CONSTANT() {
|
|
30
|
+
var _a;
|
|
31
|
+
return ((_a = this.EMPTY_STRING_CONSTANT_) !== null && _a !== void 0 ? _a : (this.EMPTY_STRING_CONSTANT_ = new Constant_1.StringConstant(exports.EMPTY_STRING)));
|
|
32
|
+
}
|
|
29
33
|
/*
|
|
30
34
|
* Clear LRU caches for number and string constants.
|
|
31
35
|
* These caches are used during IR construction and should be cleared after
|
|
@@ -81,7 +85,6 @@ class ValueUtil {
|
|
|
81
85
|
return Constant_1.BooleanConstant.getInstance(value);
|
|
82
86
|
}
|
|
83
87
|
}
|
|
84
|
-
ValueUtil.EMPTY_STRING_CONSTANT = new Constant_1.StringConstant(exports.EMPTY_STRING);
|
|
85
88
|
__decorate([
|
|
86
89
|
(0, LRUCacheDecorator_1.LRUCache)(128)
|
|
87
90
|
], ValueUtil, "getOrCreateNumberConst", null);
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"Cfg.d.ts","sourceRoot":"","sources":["../../../src/core/graph/Cfg.ts"],"names":[],"mappings":"AAeA,OAAO,EAAE,WAAW,EAAE,MAAM,qBAAqB,CAAC;AAClD,OAAO,EAAE,KAAK,EAAE,MAAM,eAAe,CAAC;AACtC,OAAO,EAAE,IAAI,EAAE,MAAM,cAAc,CAAC;AACpC,OAAO,EAAE,QAAQ,EAAgB,MAAM,oBAAoB,CAAC;AAC5D,OAAO,EAAE,SAAS,EAAE,MAAM,oBAAoB,CAAC;AAC/C,OAAO,EAAE,UAAU,EAAE,MAAM,cAAc,CAAC;AAK1C,OAAO,EAAoB,SAAS,EAAE,MAAM,aAAa,CAAC;
|
|
1
|
+
{"version":3,"file":"Cfg.d.ts","sourceRoot":"","sources":["../../../src/core/graph/Cfg.ts"],"names":[],"mappings":"AAeA,OAAO,EAAE,WAAW,EAAE,MAAM,qBAAqB,CAAC;AAClD,OAAO,EAAE,KAAK,EAAE,MAAM,eAAe,CAAC;AACtC,OAAO,EAAE,IAAI,EAAE,MAAM,cAAc,CAAC;AACpC,OAAO,EAAE,QAAQ,EAAgB,MAAM,oBAAoB,CAAC;AAC5D,OAAO,EAAE,SAAS,EAAE,MAAM,oBAAoB,CAAC;AAC/C,OAAO,EAAE,UAAU,EAAE,MAAM,cAAc,CAAC;AAK1C,OAAO,EAAoB,SAAS,EAAE,MAAM,aAAa,CAAC;AAM1D;;GAEG;AACH,qBAAa,GAAG;IACZ,OAAO,CAAC,MAAM,CAA8B;IAC5C,OAAO,CAAC,WAAW,CAAoC;IACvD,OAAO,CAAC,YAAY,CAAQ;IAE5B,OAAO,CAAC,YAAY,CAAqB;IACzC,OAAO,CAAC,eAAe,CAAa;;IAI7B,cAAc,IAAI,GAAG,CAAC,IAAI,EAAE,UAAU,CAAC;IAIvC,QAAQ,IAAI,IAAI,EAAE;IAWzB;;;;;OAKG;IACI,WAAW,CAAC,QAAQ,EAAE,IAAI,GAAG,IAAI,EAAE,EAAE,KAAK,EAAE,IAAI,GAAG,MAAM;IAUhE;;;;;OAKG;IACI,YAAY,CAAC,QAAQ,EAAE,IAAI,GAAG,IAAI,EAAE,EAAE,KAAK,EAAE,IAAI,GAAG,MAAM;IAUjE;;;;OAIG;IACI,MAAM,CAAC,IAAI,EAAE,IAAI,GAAG,IAAI;IAS/B;;;;OAIG;IACI,mBAAmB,CAAC,KAAK,EAAE,UAAU,EAAE,OAAO,CAAC,EAAE,IAAI,GAAG,IAAI,EAAE,GAAG,IAAI;IAerE,QAAQ,CAAC,KAAK,EAAE,UAAU,GAAG,IAAI;IAQjC,SAAS,CAAC,MAAM,EAAE,GAAG,CAAC,UAAU,CAAC,EAAE,gBAAgB,GAAE,OAAc,GAAG,IAAI;IAYjF;;;OAGG;IACI,SAAS,IAAI,GAAG,CAAC,UAAU,CAAC;IAI5B,gBAAgB,IAAI,UAAU,GAAG,SAAS;IAM1C,eAAe,IAAI,IAAI;IAIvB,eAAe,CAAC,eAAe,EAAE,IAAI,GAAG,IAAI;IAI5C,kBAAkB,IAAI,SAAS;IAI/B,kBAAkB,CAAC,MAAM,EAAE,SAAS,GAAG,IAAI;IAI3C,eAAe,IAAI,WAAW,EAAE;IAKhC,QAAQ,IAAI,MAAM;IAKlB,eAAe,CAAC,MAAM,EAAE,GAAG,CAAC,KAAK,CAAC,EAAE,OAAO,CAAC,EAAE,GAAG,CAAC,MAAM,EAAE,SAAS,CAAC,GAAG,IAAI;IAwBlF,OAAO,CAAC,YAAY;IAqBpB,OAAO,CAAC,oBAAoB;IAgDrB,gBAAgB,IAAI,IAAI;IAgBxB,oBAAoB,IAAI,GAAG,CAAC,UAAU,CAAC;IAevC,QAAQ,IAAI,QAAQ;IA0B3B,OAAO,CAAC,YAAY;CAWvB"}
|
package/lib/core/graph/Cfg.js
CHANGED
|
@@ -47,6 +47,8 @@ const Expr_1 = require("../base/Expr");
|
|
|
47
47
|
const ValueAsserts_1 = require("../../utils/ValueAsserts");
|
|
48
48
|
const Ref_1 = require("../base/Ref");
|
|
49
49
|
const logger = logger_1.default.getLogger(logger_1.LOG_MODULE_TYPE.ARKANALYZER, 'BasicBlock');
|
|
50
|
+
const defUseStmtUsesScratch = [null];
|
|
51
|
+
const defUseChainUsesScratch = [null];
|
|
50
52
|
/**
|
|
51
53
|
* @category core/graph
|
|
52
54
|
*/
|
|
@@ -60,9 +62,12 @@ class Cfg {
|
|
|
60
62
|
return this.stmtToBlock;
|
|
61
63
|
}
|
|
62
64
|
getStmts() {
|
|
63
|
-
|
|
65
|
+
const stmts = [];
|
|
64
66
|
for (const block of this.blocks) {
|
|
65
|
-
block.getStmts()
|
|
67
|
+
const blockStmts = block.getStmts();
|
|
68
|
+
for (let i = 0; i < blockStmts.length; i++) {
|
|
69
|
+
stmts.push(blockStmts[i]);
|
|
70
|
+
}
|
|
66
71
|
}
|
|
67
72
|
return stmts;
|
|
68
73
|
}
|
|
@@ -178,9 +183,14 @@ class Cfg {
|
|
|
178
183
|
}
|
|
179
184
|
// 若提供globals列表,则需要将locals中实际为global的部分排除,否则会在该method中将为global赋值的语句识别成global的赋值语句,出现错误
|
|
180
185
|
buildDefUseStmt(locals, globals) {
|
|
186
|
+
const uses = defUseStmtUsesScratch;
|
|
181
187
|
for (const stmt of this.getStmts()) {
|
|
182
|
-
|
|
183
|
-
|
|
188
|
+
while (uses.length > 1) {
|
|
189
|
+
uses.pop();
|
|
190
|
+
}
|
|
191
|
+
stmt.getUses(uses);
|
|
192
|
+
for (let i = 1; i < uses.length; i++) {
|
|
193
|
+
this.buildUseStmt(uses[i], locals, stmt);
|
|
184
194
|
}
|
|
185
195
|
const defValue = stmt.getDef();
|
|
186
196
|
if (!(defValue instanceof Local_1.Local)) {
|
|
@@ -266,11 +276,16 @@ class Cfg {
|
|
|
266
276
|
}
|
|
267
277
|
}
|
|
268
278
|
buildDefUseChain() {
|
|
279
|
+
const uses = defUseChainUsesScratch;
|
|
269
280
|
for (const block of this.blocks) {
|
|
270
281
|
for (let stmtIndex = 0; stmtIndex < block.getStmts().length; stmtIndex++) {
|
|
271
282
|
const stmt = block.getStmts()[stmtIndex];
|
|
272
|
-
|
|
273
|
-
|
|
283
|
+
while (uses.length > 1) {
|
|
284
|
+
uses.pop();
|
|
285
|
+
}
|
|
286
|
+
stmt.getUses(uses);
|
|
287
|
+
for (let i = 1; i < uses.length; i++) {
|
|
288
|
+
this.handleDefUseForValue(uses[i], block, stmt, stmtIndex);
|
|
274
289
|
}
|
|
275
290
|
}
|
|
276
291
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"CfgBuilder.d.ts","sourceRoot":"","sources":["../../../../src/core/graph/builder/CfgBuilder.ts"],"names":[],"mappings":"AAeA,OAAO,KAAK,EAAE,MAAM,iBAAiB,CAAC;
|
|
1
|
+
{"version":3,"file":"CfgBuilder.d.ts","sourceRoot":"","sources":["../../../../src/core/graph/builder/CfgBuilder.ts"],"names":[],"mappings":"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"}
|
|
@@ -39,6 +39,7 @@ var __importStar = (this && this.__importStar) || function (mod) {
|
|
|
39
39
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
40
40
|
exports.CfgBuilder = exports.TextError = exports.Catch = exports.BlockBuilder = exports.Scope = exports.Variable = exports.DefUseChain = exports.Case = exports.TryStatementBuilder = exports.SwitchStatementBuilder = exports.ConditionStatementBuilder = exports.StatementBuilder = void 0;
|
|
41
41
|
const ts = __importStar(require("ohos-typescript"));
|
|
42
|
+
const SdkUtils_1 = require("../../common/SdkUtils");
|
|
42
43
|
const Stmt_1 = require("../../base/Stmt");
|
|
43
44
|
const BasicBlock_1 = require("../BasicBlock");
|
|
44
45
|
const Cfg_1 = require("../Cfg");
|
|
@@ -335,7 +336,11 @@ class CfgBuilder {
|
|
|
335
336
|
loopstm.code = 'for (';
|
|
336
337
|
if (ts.isForStatement(c)) {
|
|
337
338
|
loopstm.code +=
|
|
338
|
-
(0, StringUtils_1.cloneText)((_b = (_a = c.initializer) === null || _a === void 0 ? void 0 : _a.getText(this.sourceFile)) !== null && _b !== void 0 ? _b : '') +
|
|
339
|
+
(0, StringUtils_1.cloneText)((_b = (_a = c.initializer) === null || _a === void 0 ? void 0 : _a.getText(this.sourceFile)) !== null && _b !== void 0 ? _b : '') +
|
|
340
|
+
'; ' +
|
|
341
|
+
(0, StringUtils_1.cloneText)((_d = (_c = c.condition) === null || _c === void 0 ? void 0 : _c.getText(this.sourceFile)) !== null && _d !== void 0 ? _d : '') +
|
|
342
|
+
'; ' +
|
|
343
|
+
(0, StringUtils_1.cloneText)((_f = (_e = c.incrementor) === null || _e === void 0 ? void 0 : _e.getText(this.sourceFile)) !== null && _f !== void 0 ? _f : '');
|
|
339
344
|
}
|
|
340
345
|
else if (ts.isForOfStatement(c)) {
|
|
341
346
|
loopstm.code += (0, StringUtils_1.cloneText)((_h = (_g = c.initializer) === null || _g === void 0 ? void 0 : _g.getText(this.sourceFile)) !== null && _h !== void 0 ? _h : '') + ' of ' + (0, StringUtils_1.cloneText)(c.expression.getText(this.sourceFile));
|
|
@@ -732,8 +737,7 @@ class CfgBuilder {
|
|
|
732
737
|
const block = new BlockBuilder(this.blocks.length, []);
|
|
733
738
|
this.blocks.push(block);
|
|
734
739
|
while (stmt && !handledStmts.has(stmt)) {
|
|
735
|
-
if (stmt.type === 'loopStatement' && block.stmts.length > 0 &&
|
|
736
|
-
(!stmt.isDoWhile || (stmt.isDoWhile && !stmt.hasDoWhileBody))) {
|
|
740
|
+
if (stmt.type === 'loopStatement' && block.stmts.length > 0 && (!stmt.isDoWhile || (stmt.isDoWhile && !stmt.hasDoWhileBody))) {
|
|
737
741
|
stmtQueue.push(stmt);
|
|
738
742
|
break;
|
|
739
743
|
}
|
|
@@ -1200,43 +1204,46 @@ class CfgBuilder {
|
|
|
1200
1204
|
return { blockBuilderToCfgBlock, basicBlockSet, arkIRTransformer };
|
|
1201
1205
|
}
|
|
1202
1206
|
processBlocks(blockBuilderToCfgBlock, basicBlockSet, arkIRTransformer) {
|
|
1203
|
-
|
|
1207
|
+
let blocksContainLoopCondition;
|
|
1204
1208
|
const blockBuildersBeforeTry = new Set();
|
|
1205
|
-
|
|
1206
|
-
|
|
1209
|
+
let blockBuildersContainSwitch;
|
|
1210
|
+
let valueAndStmtsOfSwitchAndCasesAll;
|
|
1207
1211
|
for (let i = 0; i < this.blocks.length; i++) {
|
|
1208
|
-
const
|
|
1212
|
+
const block = this.blocks[i];
|
|
1213
|
+
const blockInCfg = new BasicBlock_1.BasicBlock();
|
|
1214
|
+
blockInCfg.setId(block.id);
|
|
1209
1215
|
if (i === 0) {
|
|
1210
|
-
|
|
1216
|
+
for (const stmt of arkIRTransformer.prebuildStmts()) {
|
|
1217
|
+
blockInCfg.addStmt(stmt);
|
|
1218
|
+
}
|
|
1211
1219
|
}
|
|
1212
|
-
const
|
|
1213
|
-
if (
|
|
1214
|
-
blockBuildersBeforeTry.add(
|
|
1220
|
+
const blockStmts = block.stmts;
|
|
1221
|
+
if (blockStmts[blockStmts.length - 1].type === 'tryStatement') {
|
|
1222
|
+
blockBuildersBeforeTry.add(block);
|
|
1215
1223
|
}
|
|
1216
|
-
for (const statementBuilder of
|
|
1224
|
+
for (const statementBuilder of blockStmts) {
|
|
1217
1225
|
if (statementBuilder.type === 'loopStatement') {
|
|
1218
|
-
blocksContainLoopCondition.add(
|
|
1226
|
+
(blocksContainLoopCondition !== null && blocksContainLoopCondition !== void 0 ? blocksContainLoopCondition : (blocksContainLoopCondition = new Set())).add(block);
|
|
1219
1227
|
}
|
|
1220
|
-
|
|
1221
|
-
blockBuildersContainSwitch
|
|
1228
|
+
if (statementBuilder instanceof SwitchStatementBuilder) {
|
|
1229
|
+
(blockBuildersContainSwitch !== null && blockBuildersContainSwitch !== void 0 ? blockBuildersContainSwitch : (blockBuildersContainSwitch = [])).push(block);
|
|
1222
1230
|
const valueAndStmtsOfSwitchAndCases = arkIRTransformer.switchStatementToValueAndStmts(statementBuilder.astNode);
|
|
1223
|
-
valueAndStmtsOfSwitchAndCasesAll.push(valueAndStmtsOfSwitchAndCases);
|
|
1231
|
+
(valueAndStmtsOfSwitchAndCasesAll !== null && valueAndStmtsOfSwitchAndCasesAll !== void 0 ? valueAndStmtsOfSwitchAndCasesAll : (valueAndStmtsOfSwitchAndCasesAll = [])).push(valueAndStmtsOfSwitchAndCases);
|
|
1224
1232
|
continue;
|
|
1225
1233
|
}
|
|
1226
|
-
|
|
1227
|
-
|
|
1234
|
+
const astNode = statementBuilder.code !== '' ? statementBuilder.astNode : null;
|
|
1235
|
+
if (!astNode && statementBuilder.code.startsWith('return')) {
|
|
1236
|
+
blockInCfg.addStmt(this.generateReturnStmt(arkIRTransformer));
|
|
1237
|
+
}
|
|
1238
|
+
if (!astNode) {
|
|
1239
|
+
continue;
|
|
1228
1240
|
}
|
|
1229
|
-
|
|
1230
|
-
|
|
1241
|
+
for (const stmt of arkIRTransformer.tsNodeToStmts(astNode)) {
|
|
1242
|
+
blockInCfg.addStmt(stmt);
|
|
1231
1243
|
}
|
|
1232
1244
|
}
|
|
1233
|
-
const blockInCfg = new BasicBlock_1.BasicBlock();
|
|
1234
|
-
blockInCfg.setId(this.blocks[i].id);
|
|
1235
|
-
for (const stmt of stmtsInBlock) {
|
|
1236
|
-
blockInCfg.addStmt(stmt);
|
|
1237
|
-
}
|
|
1238
1245
|
basicBlockSet.add(blockInCfg);
|
|
1239
|
-
blockBuilderToCfgBlock.set(
|
|
1246
|
+
blockBuilderToCfgBlock.set(block, blockInCfg);
|
|
1240
1247
|
}
|
|
1241
1248
|
return {
|
|
1242
1249
|
blocksContainLoopCondition,
|
|
@@ -1252,7 +1259,7 @@ class CfgBuilder {
|
|
|
1252
1259
|
}
|
|
1253
1260
|
if (this.declaringMethod.getSubSignature().getReturnType() instanceof Type_1.UnknownType && !this.declaringMethod.getAsteriskToken()) {
|
|
1254
1261
|
if (this.declaringMethod.containsModifier(ArkBaseModel_1.ModifierType.ASYNC)) {
|
|
1255
|
-
const promise =
|
|
1262
|
+
const promise = SdkUtils_1.SdkUtils.getSdkGlobal(TSConst_1.PROMISE);
|
|
1256
1263
|
if (promise instanceof ArkClass_1.ArkClass) {
|
|
1257
1264
|
this.declaringMethod.getSubSignature().setReturnType(new Type_1.ClassType(promise.getSignature()));
|
|
1258
1265
|
}
|
|
@@ -1267,10 +1274,14 @@ class CfgBuilder {
|
|
|
1267
1274
|
return new Stmt_1.ArkReturnVoidStmt();
|
|
1268
1275
|
}
|
|
1269
1276
|
adjustBlocks(blockBuilderToCfgBlock, blocksContainLoopCondition, basicBlockSet, blockBuildersContainSwitch, valueAndStmtsOfSwitchAndCasesAll, arkIRTransformer) {
|
|
1270
|
-
|
|
1271
|
-
|
|
1272
|
-
|
|
1273
|
-
|
|
1277
|
+
if (blocksContainLoopCondition !== undefined) {
|
|
1278
|
+
const loopBuilder = new LoopBuilder_1.LoopBuilder();
|
|
1279
|
+
loopBuilder.rebuildBlocksInLoop(blockBuilderToCfgBlock, blocksContainLoopCondition, basicBlockSet, this.blocks);
|
|
1280
|
+
}
|
|
1281
|
+
if (blockBuildersContainSwitch !== undefined) {
|
|
1282
|
+
const switchBuilder = new SwitchBuilder_1.SwitchBuilder();
|
|
1283
|
+
switchBuilder.buildSwitch(blockBuilderToCfgBlock, blockBuildersContainSwitch, valueAndStmtsOfSwitchAndCasesAll, arkIRTransformer, basicBlockSet);
|
|
1284
|
+
}
|
|
1274
1285
|
const conditionalBuilder = new ConditionBuilder_1.ConditionBuilder();
|
|
1275
1286
|
conditionalBuilder.rebuildBlocksContainConditionalOperator(blockBuilderToCfgBlock, basicBlockSet, ModelUtils_1.ModelUtils.isArkUIBuilderMethod(this.declaringMethod));
|
|
1276
1287
|
const ifBuilder = new IfBuilder_1.IfBuilder();
|
|
@@ -1285,8 +1296,10 @@ class CfgBuilder {
|
|
|
1285
1296
|
basicBlock.setId(currBlockId++);
|
|
1286
1297
|
cfg.addBlock(basicBlock);
|
|
1287
1298
|
}
|
|
1288
|
-
for (const
|
|
1289
|
-
stmt.
|
|
1299
|
+
for (const basicBlock of basicBlockSet) {
|
|
1300
|
+
for (const stmt of basicBlock.getStmts()) {
|
|
1301
|
+
stmt.setCfg(cfg);
|
|
1302
|
+
}
|
|
1290
1303
|
}
|
|
1291
1304
|
this.topologicalSortBlock(cfg);
|
|
1292
1305
|
return cfg;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"IfBuilder.d.ts","sourceRoot":"","sources":["../../../../src/core/graph/builder/IfBuilder.ts"],"names":[],"mappings":"AAeA,OAAO,EAAE,UAAU,EAAE,MAAM,eAAe,CAAC;AAI3C,OAAO,EAAE,YAAY,EAAyC,MAAM,cAAc,CAAC;AAInF;;GAEG;AACH,qBAAa,SAAS;IAClB,OAAO,CAAC,sBAAsB,CAA4C;IAEnE,SAAS,CAAC,aAAa,EAAE,GAAG,CAAC,UAAU,CAAC,EAAE,sBAAsB,EAAE,GAAG,CAAC,YAAY,EAAE,UAAU,CAAC,GAAG,IAAI;IAe7G,OAAO,CAAC,mCAAmC;IAkB3C;;OAEG;IACH,OAAO,CAAC,uBAAuB;
|
|
1
|
+
{"version":3,"file":"IfBuilder.d.ts","sourceRoot":"","sources":["../../../../src/core/graph/builder/IfBuilder.ts"],"names":[],"mappings":"AAeA,OAAO,EAAE,UAAU,EAAE,MAAM,eAAe,CAAC;AAI3C,OAAO,EAAE,YAAY,EAAyC,MAAM,cAAc,CAAC;AAInF;;GAEG;AACH,qBAAa,SAAS;IAClB,OAAO,CAAC,sBAAsB,CAA4C;IAEnE,SAAS,CAAC,aAAa,EAAE,GAAG,CAAC,UAAU,CAAC,EAAE,sBAAsB,EAAE,GAAG,CAAC,YAAY,EAAE,UAAU,CAAC,GAAG,IAAI;IAe7G,OAAO,CAAC,mCAAmC;IAkB3C;;OAEG;IACH,OAAO,CAAC,uBAAuB;IA2B/B;;OAEG;IACH,OAAO,CAAC,wBAAwB;IAkChC,OAAO,CAAC,cAAc;IAqBtB,OAAO,CAAC,eAAe;IAqBvB,OAAO,CAAC,aAAa;IAMrB;;;;OAIG;IACH,OAAO,CAAC,QAAQ;IAQhB,OAAO,CAAC,oBAAoB;CAU/B"}
|
|
@@ -92,7 +92,9 @@ class IfBuilder {
|
|
|
92
92
|
const successors = block.getSuccessors();
|
|
93
93
|
const trueBlock = successors[0];
|
|
94
94
|
const falseBlock = successors.length >= 2 ? successors[1] : successors[0];
|
|
95
|
-
|
|
95
|
+
while (successors.length > 0) {
|
|
96
|
+
successors.pop();
|
|
97
|
+
}
|
|
96
98
|
falseBlock.removePredecessorBlock(block);
|
|
97
99
|
if (trueBlock !== falseBlock) {
|
|
98
100
|
trueBlock.removePredecessorBlock(block);
|
|
@@ -115,7 +117,9 @@ class IfBuilder {
|
|
|
115
117
|
const successors = block.getSuccessors();
|
|
116
118
|
const trueBlock = successors[0];
|
|
117
119
|
const falseBlock = successors.length >= 2 ? successors[1] : successors[0];
|
|
118
|
-
|
|
120
|
+
while (successors.length > 0) {
|
|
121
|
+
successors.pop();
|
|
122
|
+
}
|
|
119
123
|
trueBlock.removePredecessorBlock(block);
|
|
120
124
|
if (trueBlock !== falseBlock) {
|
|
121
125
|
falseBlock.removePredecessorBlock(block);
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"ViewTreeBuilder.d.ts","sourceRoot":"","sources":["../../../../src/core/graph/builder/ViewTreeBuilder.ts"],"names":[],"mappings":"AAeA,OAAO,EAAE,QAAQ,EAAE,MAAM,qBAAqB,CAAC;AAC/C,OAAO,EAAE,SAAS,EAAE,MAAM,sBAAsB,CAAC;AACjD,OAAO,EAGH,qBAAqB,EAKxB,MAAM,iBAAiB,CAAC;AACzB,OAAO,EAAE,KAAK,EAAE,MAAM,kBAAkB,CAAC;AACzC,OAAO,EAAe,mBAAmB,EAAc,MAAM,gBAAgB,CAAC;AAC9E,OAAO,EAAgC,IAAI,EAAE,MAAM,iBAAiB,CAAC;AACrE,OAAO,EAAwC,IAAI,EAAE,MAAM,iBAAiB,CAAC;AAkB7E,OAAO,EAAE,QAAQ,EAAiB,MAAM,sBAAsB,CAAC;AAC/D,OAAO,EAAE,QAAQ,EAAE,MAAM,sBAAsB,CAAC;AAChD,OAAO,EAAE,SAAS,EAAE,MAAM,uBAAuB,CAAC;AAClD,OAAO,EAAE,cAAc,EAAE,eAAe,EAAE,MAAM,0BAA0B,CAAC;AAG3E,OAAO,EAAE,QAAQ,EAAE,YAAY,EAAE,MAAM,aAAa,CAAC;AAoTrD,cAAM,gBAAiB,YAAW,YAAY;IAC1C,IAAI,EAAE,MAAM,CAAC;IACb,KAAK,EAAE,GAAG,CAAC,MAAM,EAAE,CAAC,IAAI,EAAE,CAAC,eAAe,GAAG,mBAAmB,GAAG,QAAQ,CAAC,EAAE,CAAC,CAAC,CAAC;IACjF,UAAU,EAAE,GAAG,CAAC,MAAM,EAAE,CAAC,IAAI,EAAE,CAAC,eAAe,GAAG,mBAAmB,GAAG,QAAQ,CAAC,EAAE,CAAC,CAAC,CAAC;IACtF,WAAW,EAAE,GAAG,CAAC,QAAQ,CAAC,CAAC;IAC3B,MAAM,EAAE,YAAY,GAAG,IAAI,CAAC;IAC5B,QAAQ,EAAE,gBAAgB,EAAE,CAAC;IAC7B,cAAc,CAAC,EAAE,eAAe,GAAG,cAAc,GAAG,SAAS,CAAC;IAC9D,SAAS,CAAC,EAAE,eAAe,GAAG,cAAc,GAAG,SAAS,CAAC;IACzD,mBAAmB,CAAC,EAAE,GAAG,CAAC,QAAQ,EAAE,SAAS,GAAG,QAAQ,CAAC,GAAG,SAAS,CAAC;IACtE,YAAY,CAAC,EAAE,QAAQ,GAAG,SAAS,CAAC;IACpC,OAAO,CAAC,EAAE,eAAe,GAAG,SAAS,CAAC;IACtC,OAAO,CAAC,IAAI,CAAmB;gBAEnB,IAAI,EAAE,MAAM;IAUxB;;;OAGG;IACI,SAAS,IAAI,OAAO;IAI3B;;OAEG;IACI,cAAc,IAAI,OAAO;IAIhC;;;OAGG;IACI,iBAAiB,IAAI,OAAO;IAInC;;;;;;OAMG;IACI,IAAI,CAAC,QAAQ,EAAE,CAAC,IAAI,EAAE,YAAY,KAAK,OAAO,EAAE,OAAO,GAAE,GAAG,CAAC,YAAY,CAAa,GAAG,OAAO;WAiBzF,qBAAqB,IAAI,gBAAgB;WAMzC,iBAAiB,IAAI,gBAAgB;WAMrC,sBAAsB,IAAI,gBAAgB;WAK1C,kBAAkB,IAAI,gBAAgB;IAK7C,8BAA8B,CAAC,OAAO,EAAE,SAAS,GAAG,IAAI;IAkBxD,eAAe,IAAI,OAAO;IAM1B,KAAK,CAAC,MAAM,EAAE,gBAAgB,EAAE,GAAG,GAAE,GAAG,CAAC,gBAAgB,EAAE,gBAAgB,CAAa,GAAG,gBAAgB;IAwB3G,OAAO,CAAC,UAAU,EAAE,GAAG,CAAC,KAAK,EAAE,gBAAgB,CAAC,EAAE,IAAI,EAAE,YAAY,EAAE,IAAI,EAAE,IAAI,GAAG,IAAI;IAO9F,OAAO,CAAC,eAAe;IAiDvB,OAAO,CAAC,aAAa;
|
|
1
|
+
{"version":3,"file":"ViewTreeBuilder.d.ts","sourceRoot":"","sources":["../../../../src/core/graph/builder/ViewTreeBuilder.ts"],"names":[],"mappings":"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"}
|
|
@@ -520,7 +520,9 @@ class ViewTreeNodeImpl {
|
|
|
520
520
|
}
|
|
521
521
|
return;
|
|
522
522
|
}
|
|
523
|
-
|
|
523
|
+
const stmtUses = stmt.getUses();
|
|
524
|
+
for (let i = 0; i < stmtUses.length; i++) {
|
|
525
|
+
const v = stmtUses[i];
|
|
524
526
|
if (v instanceof Constant_1.Constant) {
|
|
525
527
|
relationValues.push(v);
|
|
526
528
|
}
|
|
@@ -1031,7 +1033,9 @@ class ViewTreeImpl extends TreeNodeStack {
|
|
|
1031
1033
|
viewComponentCreationParser(name, stmt, expr) {
|
|
1032
1034
|
let temp = expr.getArg(0);
|
|
1033
1035
|
let arg;
|
|
1034
|
-
|
|
1036
|
+
const tempUsedStmts = temp.getUsedStmts();
|
|
1037
|
+
for (let i = 0; i < tempUsedStmts.length; i++) {
|
|
1038
|
+
const usedStmt = tempUsedStmts[i];
|
|
1035
1039
|
if (usedStmt instanceof Stmt_1.ArkAssignStmt && usedStmt.getRightOp() instanceof Expr_1.ArkInstanceInvokeExpr) {
|
|
1036
1040
|
const rightOp = usedStmt.getRightOp();
|
|
1037
1041
|
const methodName = rightOp.getMethodSignature().getMethodSubSignature().getMethodName();
|
|
@@ -99,7 +99,7 @@ export declare class ClassInference extends ArkModelInference {
|
|
|
99
99
|
interface InferStmtResult {
|
|
100
100
|
oldStmt: Stmt;
|
|
101
101
|
replacedStmts?: Stmt[];
|
|
102
|
-
impactedStmts
|
|
102
|
+
impactedStmts: Stmt[];
|
|
103
103
|
}
|
|
104
104
|
export declare class MethodInference extends ArkModelInference {
|
|
105
105
|
private stmtInference;
|
|
@@ -122,6 +122,12 @@ export declare class MethodInference extends ArkModelInference {
|
|
|
122
122
|
* @returns {InferStmtResult[]} Array of modified or impacted statements during inference
|
|
123
123
|
*/
|
|
124
124
|
infer(method: ArkMethod): InferStmtResult[];
|
|
125
|
+
/**
|
|
126
|
+
* Resolves the body's still-unresolved global references before statement inference: when a
|
|
127
|
+
* global name resolves to a local of an outer scope, that local takes over the global's
|
|
128
|
+
* used-statement list and becomes the global's target.
|
|
129
|
+
*/
|
|
130
|
+
private resolveUsedGlobals;
|
|
125
131
|
/**
|
|
126
132
|
* Post-inference phase - updates CFG and infers return type
|
|
127
133
|
* @param {ArkMethod} method - The method that was analyzed
|
|
@@ -130,7 +136,10 @@ export declare class MethodInference extends ArkModelInference {
|
|
|
130
136
|
postInfer(method: ArkMethod, modifiedStmts: InferStmtResult[]): void;
|
|
131
137
|
}
|
|
132
138
|
export declare class StmtInference extends ArkModelInference {
|
|
139
|
+
private readonly defAndUsesScratch;
|
|
140
|
+
private readonly usesPool;
|
|
133
141
|
private valueInferences;
|
|
142
|
+
private valueInferencesByCtor;
|
|
134
143
|
constructor(valueInferences: ValueInference<Value>[]);
|
|
135
144
|
/**
|
|
136
145
|
* Main inference phase - processes a statement and its associated values
|
|
@@ -152,18 +161,29 @@ export declare class StmtInference extends ArkModelInference {
|
|
|
152
161
|
* @param {Set<Value>} visited - Set of already visited values for cycle prevention
|
|
153
162
|
*/
|
|
154
163
|
private inferValue;
|
|
164
|
+
private inferSubValues;
|
|
165
|
+
/**
|
|
166
|
+
* Per-depth pooled acc for the no-arg getUses default parameter: the default `acc = []`
|
|
167
|
+
* allocated (and push-grew) a fresh array on every inferValue visit. A plain shared
|
|
168
|
+
* scratch would be reset by nested inferValue calls while inferSubValues is still
|
|
169
|
+
* iterating it, so each recursion depth owns a slot. The slot keeps a sentinel at index 0
|
|
170
|
+
* and resets by pop (truncating to 0 would drop the V8 backing store); iteration skips
|
|
171
|
+
* the sentinel via the identity check in inferSubValues.
|
|
172
|
+
*/
|
|
173
|
+
private acquireUses;
|
|
155
174
|
/**
|
|
156
175
|
* Propagates types through statements and handles special cases
|
|
157
176
|
* @param {Stmt} stmt - The statement to process
|
|
158
177
|
* @param {ArkMethod} method - The containing method
|
|
159
|
-
* @returns {
|
|
178
|
+
* @returns {Stmt[] | undefined} Statements impacted by type propagation, if any
|
|
160
179
|
*/
|
|
161
|
-
typeSpread(stmt: Stmt, method: ArkMethod):
|
|
180
|
+
typeSpread(stmt: Stmt, method: ArkMethod): Stmt[] | undefined;
|
|
181
|
+
private mergeImpactedStmts;
|
|
162
182
|
/**
|
|
163
183
|
* Transfers types bidirectionally in assignment statements
|
|
164
184
|
* @param {ArkAssignStmt} stmt - The assignment statement
|
|
165
185
|
* @param {ArkMethod} method - The containing method
|
|
166
|
-
* @param {
|
|
186
|
+
* @param {Stmt[] | undefined} impactedStmts - Statements collected so far, if any
|
|
167
187
|
*/
|
|
168
188
|
private transferTypeBidirectional;
|
|
169
189
|
transferLeft2Right(rightOp: Value, leftType: Type, method: ArkMethod): Stmt[] | undefined;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"ModelInference.d.ts","sourceRoot":"","sources":["../../../src/core/inference/ModelInference.ts"],"names":[],"mappings":"AAiBA,OAAO,EAAE,OAAO,EAAE,MAAM,kBAAkB,CAAC;AAC3C,OAAO,EAA+C,IAAI,EAAE,MAAM,cAAc,CAAC;AACjF,OAAO,EAAE,KAAK,EAAE,MAAM,eAAe,CAAC;AACtC,OAAO,EAAE,QAAQ,EAAE,SAAS,EAAE,aAAa,EAAoB,MAAM,aAAa,CAAC;AAEnF,OAAO,EAAE,UAAU,EAAE,MAAM,oBAAoB,CAAC;AAChD,OAAO,EAAE,UAAU,EAAE,MAAM,oBAAoB,CAAC;AAGhD,OAAO,EAAE,SAAS,EAAE,MAAM,oBAAoB,CAAC;AAC/C,OAAO,
|
|
1
|
+
{"version":3,"file":"ModelInference.d.ts","sourceRoot":"","sources":["../../../src/core/inference/ModelInference.ts"],"names":[],"mappings":"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"}
|