arkanalyzer 1.0.20 → 1.0.21
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 +70 -70
- package/lib/Config.js +198 -198
- package/lib/Scene.d.ts +316 -316
- package/lib/Scene.js +1316 -1316
- package/lib/callgraph/algorithm/AbstractAnalysis.d.ts +28 -28
- package/lib/callgraph/algorithm/AbstractAnalysis.js +144 -144
- package/lib/callgraph/algorithm/ClassHierarchyAnalysis.d.ts +10 -10
- package/lib/callgraph/algorithm/ClassHierarchyAnalysis.js +69 -69
- package/lib/callgraph/algorithm/RapidTypeAnalysis.d.ts +15 -15
- package/lib/callgraph/algorithm/RapidTypeAnalysis.js +146 -146
- package/lib/callgraph/common/Statistics.d.ts +57 -57
- package/lib/callgraph/common/Statistics.js +228 -228
- package/lib/callgraph/model/CallGraph.d.ts +96 -96
- package/lib/callgraph/model/CallGraph.js +354 -354
- package/lib/callgraph/model/builder/CallGraphBuilder.d.ts +15 -15
- package/lib/callgraph/model/builder/CallGraphBuilder.js +106 -106
- package/lib/callgraph/pointerAnalysis/Context.d.ts +37 -37
- package/lib/callgraph/pointerAnalysis/Context.js +155 -155
- package/lib/callgraph/pointerAnalysis/DummyCallCreator.d.ts +22 -22
- package/lib/callgraph/pointerAnalysis/DummyCallCreator.js +104 -104
- package/lib/callgraph/pointerAnalysis/PTAUtils.d.ts +5 -5
- package/lib/callgraph/pointerAnalysis/PTAUtils.js +46 -46
- package/lib/callgraph/pointerAnalysis/Pag.d.ts +261 -261
- package/lib/callgraph/pointerAnalysis/Pag.js +930 -930
- package/lib/callgraph/pointerAnalysis/PagBuilder.d.ts +157 -157
- package/lib/callgraph/pointerAnalysis/PagBuilder.js +1399 -1399
- package/lib/callgraph/pointerAnalysis/PointerAnalysis.d.ts +72 -72
- package/lib/callgraph/pointerAnalysis/PointerAnalysis.js +573 -573
- package/lib/callgraph/pointerAnalysis/PointerAnalysisConfig.d.ts +15 -15
- package/lib/callgraph/pointerAnalysis/PointerAnalysisConfig.js +81 -81
- package/lib/callgraph/pointerAnalysis/PtsDS.d.ts +80 -80
- package/lib/callgraph/pointerAnalysis/PtsDS.js +308 -308
- package/lib/core/base/Constant.d.ts +48 -48
- package/lib/core/base/Constant.js +103 -103
- package/lib/core/base/Decorator.d.ts +15 -15
- package/lib/core/base/Decorator.js +46 -46
- package/lib/core/base/DefUseChain.d.ts +8 -8
- package/lib/core/base/DefUseChain.js +25 -25
- package/lib/core/base/Expr.d.ts +340 -340
- package/lib/core/base/Expr.js +917 -917
- package/lib/core/base/Local.d.ts +104 -104
- package/lib/core/base/Local.js +176 -176
- package/lib/core/base/Position.d.ts +30 -30
- package/lib/core/base/Position.js +147 -147
- package/lib/core/base/Ref.d.ts +173 -173
- package/lib/core/base/Ref.js +374 -374
- package/lib/core/base/Stmt.d.ts +237 -237
- package/lib/core/base/Stmt.js +525 -525
- package/lib/core/base/Trap.d.ts +8 -8
- package/lib/core/base/Trap.js +30 -30
- package/lib/core/base/Type.d.ts +308 -308
- package/lib/core/base/Type.js +639 -639
- package/lib/core/base/TypeExpr.d.ts +71 -71
- package/lib/core/base/TypeExpr.js +155 -155
- package/lib/core/base/Value.d.ts +32 -32
- package/lib/core/base/Value.js +16 -16
- package/lib/core/common/ArkError.d.ts +14 -14
- package/lib/core/common/ArkError.js +28 -28
- package/lib/core/common/ArkIRTransformer.d.ts +67 -67
- package/lib/core/common/ArkIRTransformer.js +690 -690
- package/lib/core/common/ArkValueTransformer.d.ts +89 -89
- package/lib/core/common/ArkValueTransformer.js +1478 -1478
- package/lib/core/common/Builtin.d.ts +36 -36
- package/lib/core/common/Builtin.js +81 -81
- package/lib/core/common/Const.d.ts +21 -21
- package/lib/core/common/Const.js +43 -43
- package/lib/core/common/DummyMainCreater.d.ts +46 -46
- package/lib/core/common/DummyMainCreater.js +319 -319
- package/lib/core/common/EtsConst.d.ts +73 -73
- package/lib/core/common/EtsConst.js +1021 -1021
- package/lib/core/common/ExprUseReplacer.d.ts +21 -21
- package/lib/core/common/ExprUseReplacer.js +124 -124
- package/lib/core/common/IRInference.d.ts +36 -36
- package/lib/core/common/IRInference.d.ts.map +1 -1
- package/lib/core/common/IRInference.js +651 -648
- package/lib/core/common/IRUtils.d.ts +18 -18
- package/lib/core/common/IRUtils.js +141 -141
- package/lib/core/common/ModelUtils.d.ts +70 -70
- package/lib/core/common/ModelUtils.js +712 -712
- package/lib/core/common/RefUseReplacer.d.ts +13 -13
- package/lib/core/common/RefUseReplacer.js +52 -52
- package/lib/core/common/SdkUtils.d.ts +8 -8
- package/lib/core/common/SdkUtils.js +105 -105
- package/lib/core/common/StmtDefReplacer.d.ts +12 -12
- package/lib/core/common/StmtDefReplacer.js +41 -41
- package/lib/core/common/StmtUseReplacer.d.ts +16 -16
- package/lib/core/common/StmtUseReplacer.js +108 -108
- package/lib/core/common/TSConst.d.ts +18 -18
- package/lib/core/common/TSConst.js +36 -36
- package/lib/core/common/TypeInference.d.ts +102 -102
- package/lib/core/common/TypeInference.js +748 -748
- package/lib/core/common/ValueUtil.d.ts +12 -12
- package/lib/core/common/ValueUtil.js +54 -54
- package/lib/core/common/VisibleValue.d.ts +36 -36
- package/lib/core/common/VisibleValue.js +212 -212
- package/lib/core/dataflow/DataflowProblem.d.ts +20 -20
- package/lib/core/dataflow/DataflowProblem.js +20 -20
- package/lib/core/dataflow/DataflowResult.d.ts +7 -7
- package/lib/core/dataflow/DataflowResult.js +26 -26
- package/lib/core/dataflow/DataflowSolver.d.ts +43 -43
- package/lib/core/dataflow/DataflowSolver.js +307 -307
- package/lib/core/dataflow/Edge.d.ts +11 -11
- package/lib/core/dataflow/Edge.js +31 -31
- package/lib/core/dataflow/Fact.d.ts +6 -6
- package/lib/core/dataflow/Fact.js +24 -24
- package/lib/core/dataflow/GenericDataFlow.d.ts +142 -142
- package/lib/core/dataflow/GenericDataFlow.js +109 -109
- package/lib/core/dataflow/ReachingDef.d.ts +62 -62
- package/lib/core/dataflow/ReachingDef.js +168 -168
- package/lib/core/dataflow/UndefinedVariable.d.ts +45 -45
- package/lib/core/dataflow/UndefinedVariable.js +288 -288
- package/lib/core/dataflow/Util.d.ts +9 -9
- package/lib/core/dataflow/Util.js +64 -64
- package/lib/core/graph/BaseExplicitGraph.d.ts +58 -58
- package/lib/core/graph/BaseExplicitGraph.js +157 -157
- package/lib/core/graph/BaseImplicitGraph.d.ts +77 -77
- package/lib/core/graph/BaseImplicitGraph.js +78 -78
- package/lib/core/graph/BasicBlock.d.ts +104 -104
- package/lib/core/graph/BasicBlock.js +280 -280
- package/lib/core/graph/Cfg.d.ts +59 -59
- package/lib/core/graph/Cfg.js +282 -282
- package/lib/core/graph/DependsGraph.d.ts +35 -35
- package/lib/core/graph/DependsGraph.js +87 -87
- package/lib/core/graph/DominanceFinder.d.ts +15 -15
- package/lib/core/graph/DominanceFinder.js +121 -121
- package/lib/core/graph/DominanceTree.d.ts +12 -12
- package/lib/core/graph/DominanceTree.js +70 -70
- package/lib/core/graph/GraphTraits.d.ts +7 -7
- package/lib/core/graph/GraphTraits.js +16 -16
- package/lib/core/graph/Scc.d.ts +61 -61
- package/lib/core/graph/Scc.js +222 -222
- package/lib/core/graph/ViewTree.d.ts +114 -114
- package/lib/core/graph/ViewTree.js +16 -16
- package/lib/core/graph/builder/CfgBuilder.d.ts +176 -176
- package/lib/core/graph/builder/CfgBuilder.js +1139 -1139
- package/lib/core/graph/builder/ConditionBuilder.d.ts +15 -15
- package/lib/core/graph/builder/ConditionBuilder.js +252 -252
- package/lib/core/graph/builder/LoopBuilder.d.ts +20 -20
- package/lib/core/graph/builder/LoopBuilder.js +251 -251
- package/lib/core/graph/builder/SwitchBuilder.d.ts +11 -11
- package/lib/core/graph/builder/SwitchBuilder.js +152 -152
- package/lib/core/graph/builder/TrapBuilder.d.ts +16 -16
- package/lib/core/graph/builder/TrapBuilder.js +272 -272
- package/lib/core/graph/builder/ViewTreeBuilder.d.ts +203 -203
- package/lib/core/graph/builder/ViewTreeBuilder.js +1055 -1055
- package/lib/core/model/ArkBaseModel.d.ts +59 -59
- package/lib/core/model/ArkBaseModel.js +274 -274
- package/lib/core/model/ArkBody.d.ts +24 -24
- package/lib/core/model/ArkBody.js +65 -65
- package/lib/core/model/ArkClass.d.ts +206 -206
- package/lib/core/model/ArkClass.js +439 -439
- package/lib/core/model/ArkExport.d.ts +72 -72
- package/lib/core/model/ArkExport.js +147 -147
- package/lib/core/model/ArkField.d.ts +62 -62
- package/lib/core/model/ArkField.js +113 -113
- package/lib/core/model/ArkFile.d.ts +131 -131
- package/lib/core/model/ArkFile.js +267 -267
- package/lib/core/model/ArkImport.d.ts +44 -44
- package/lib/core/model/ArkImport.js +108 -108
- package/lib/core/model/ArkMetadata.d.ts +31 -31
- package/lib/core/model/ArkMetadata.js +55 -55
- package/lib/core/model/ArkMethod.d.ts +261 -261
- package/lib/core/model/ArkMethod.js +592 -592
- package/lib/core/model/ArkNamespace.d.ts +66 -66
- package/lib/core/model/ArkNamespace.js +209 -209
- package/lib/core/model/ArkSignature.d.ts +162 -162
- package/lib/core/model/ArkSignature.js +379 -379
- package/lib/core/model/builder/ArkClassBuilder.d.ts +12 -12
- package/lib/core/model/builder/ArkClassBuilder.js +454 -454
- package/lib/core/model/builder/ArkExportBuilder.d.ts +24 -24
- package/lib/core/model/builder/ArkExportBuilder.js +210 -210
- package/lib/core/model/builder/ArkFieldBuilder.d.ts +8 -8
- package/lib/core/model/builder/ArkFieldBuilder.js +193 -193
- package/lib/core/model/builder/ArkFileBuilder.d.ts +9 -9
- package/lib/core/model/builder/ArkFileBuilder.js +165 -165
- package/lib/core/model/builder/ArkImportBuilder.d.ts +4 -4
- package/lib/core/model/builder/ArkImportBuilder.js +128 -128
- package/lib/core/model/builder/ArkMethodBuilder.d.ts +63 -63
- package/lib/core/model/builder/ArkMethodBuilder.js +486 -486
- package/lib/core/model/builder/ArkNamespaceBuilder.d.ts +5 -5
- package/lib/core/model/builder/ArkNamespaceBuilder.js +205 -205
- package/lib/core/model/builder/ArkSignatureBuilder.d.ts +8 -8
- package/lib/core/model/builder/ArkSignatureBuilder.js +40 -40
- package/lib/core/model/builder/BodyBuilder.d.ts +55 -30
- package/lib/core/model/builder/BodyBuilder.d.ts.map +1 -1
- package/lib/core/model/builder/BodyBuilder.js +542 -371
- package/lib/core/model/builder/builderUtils.d.ts +18 -18
- package/lib/core/model/builder/builderUtils.js +558 -558
- package/lib/index.d.ts +82 -80
- package/lib/index.d.ts.map +1 -1
- package/lib/index.js +201 -196
- package/lib/save/ArkStream.d.ts +23 -23
- package/lib/save/ArkStream.js +83 -83
- package/lib/save/DotPrinter.d.ts +43 -43
- package/lib/save/DotPrinter.js +170 -170
- package/lib/save/GraphPrinter.d.ts +16 -16
- package/lib/save/GraphPrinter.js +134 -134
- package/lib/save/JsonPrinter.d.ts +30 -30
- package/lib/save/JsonPrinter.js +580 -580
- package/lib/save/Printer.d.ts +12 -12
- package/lib/save/Printer.js +27 -27
- package/lib/save/PrinterBuilder.d.ts +53 -53
- package/lib/save/PrinterBuilder.js +145 -145
- package/lib/save/ViewTreePrinter.d.ts +14 -14
- package/lib/save/ViewTreePrinter.js +123 -123
- package/lib/save/arkir/ArkIRClassPrinter.d.ts +13 -13
- package/lib/save/arkir/ArkIRClassPrinter.js +92 -92
- package/lib/save/arkir/ArkIRFieldPrinter.d.ts +11 -11
- package/lib/save/arkir/ArkIRFieldPrinter.js +64 -64
- package/lib/save/arkir/ArkIRFilePrinter.d.ts +12 -12
- package/lib/save/arkir/ArkIRFilePrinter.js +54 -54
- package/lib/save/arkir/ArkIRMethodPrinter.d.ts +16 -16
- package/lib/save/arkir/ArkIRMethodPrinter.js +159 -159
- package/lib/save/arkir/ArkIRNamespacePrinter.d.ts +11 -11
- package/lib/save/arkir/ArkIRNamespacePrinter.js +66 -66
- package/lib/save/base/BasePrinter.d.ts +23 -23
- package/lib/save/base/BasePrinter.js +70 -70
- package/lib/save/base/ExportPrinter.d.ts +8 -8
- package/lib/save/base/ExportPrinter.js +67 -67
- package/lib/save/base/ImportPrinter.d.ts +9 -9
- package/lib/save/base/ImportPrinter.js +92 -92
- package/lib/save/base/PrinterUtils.d.ts +24 -24
- package/lib/save/base/PrinterUtils.js +208 -208
- package/lib/save/serializeArkIR.d.ts +8 -8
- package/lib/save/serializeArkIR.js +294 -294
- package/lib/save/source/SourceBase.d.ts +22 -22
- package/lib/save/source/SourceBase.js +64 -64
- package/lib/save/source/SourceBody.d.ts +58 -58
- package/lib/save/source/SourceBody.js +296 -296
- package/lib/save/source/SourceClass.d.ts +25 -25
- package/lib/save/source/SourceClass.js +187 -187
- package/lib/save/source/SourceField.d.ts +13 -13
- package/lib/save/source/SourceField.js +73 -73
- package/lib/save/source/SourceFilePrinter.d.ts +12 -12
- package/lib/save/source/SourceFilePrinter.js +69 -69
- package/lib/save/source/SourceMethod.d.ts +22 -22
- package/lib/save/source/SourceMethod.d.ts.map +1 -1
- package/lib/save/source/SourceMethod.js +196 -193
- package/lib/save/source/SourceNamespace.d.ts +11 -11
- package/lib/save/source/SourceNamespace.js +83 -83
- package/lib/save/source/SourceStmt.d.ts +178 -178
- package/lib/save/source/SourceStmt.js +838 -838
- package/lib/save/source/SourceTransformer.d.ts +46 -46
- package/lib/save/source/SourceTransformer.js +446 -446
- package/lib/transformer/FunctionTransformer.d.ts +2 -2
- package/lib/transformer/FunctionTransformer.js +17 -17
- package/lib/transformer/SceneTransformer.d.ts +2 -2
- package/lib/transformer/SceneTransformer.js +17 -17
- package/lib/transformer/StaticSingleAssignmentFormer.d.ts +12 -12
- package/lib/transformer/StaticSingleAssignmentFormer.js +259 -259
- package/lib/transformer/Transformer.d.ts +6 -6
- package/lib/transformer/Transformer.js +22 -22
- package/lib/utils/AstTreeUtils.d.ts +4 -4
- package/lib/utils/AstTreeUtils.js +26 -26
- package/lib/utils/CfgStructualAnalysis.d.ts +110 -110
- package/lib/utils/CfgStructualAnalysis.js +1277 -1277
- package/lib/utils/FileUtils.d.ts +18 -18
- package/lib/utils/FileUtils.js +135 -135
- package/lib/utils/SparseBitVector.d.ts +100 -100
- package/lib/utils/SparseBitVector.js +445 -445
- package/lib/utils/callGraphUtils.d.ts +30 -30
- package/lib/utils/callGraphUtils.js +205 -205
- package/lib/utils/crypto_utils.d.ts +5 -5
- package/lib/utils/crypto_utils.js +57 -57
- package/lib/utils/entryMethodUtils.d.ts +13 -13
- package/lib/utils/entryMethodUtils.js +110 -110
- package/lib/utils/getAllFiles.d.ts +9 -9
- package/lib/utils/getAllFiles.js +90 -90
- package/lib/utils/json5parser.d.ts +6 -6
- package/lib/utils/json5parser.js +146 -146
- package/lib/utils/logger.d.ts +18 -18
- package/lib/utils/logger.d.ts.map +1 -1
- package/lib/utils/logger.js +97 -90
- package/lib/utils/pathTransfer.d.ts +1 -1
- package/lib/utils/pathTransfer.js +25 -25
- package/node_modules/json5/lib/cli.js +0 -0
- package/node_modules/ohos-typescript/bin/tsc +0 -0
- package/node_modules/ohos-typescript/bin/tsserver +0 -0
- package/package.json +3 -3
|
@@ -1,22 +1,22 @@
|
|
|
1
|
-
import { AbstractExpr } from '../base/Expr';
|
|
2
|
-
import { Value } from '../base/Value';
|
|
3
|
-
/**
|
|
4
|
-
* Replace old use of a Expr inplace
|
|
5
|
-
*/
|
|
6
|
-
export declare class ExprUseReplacer {
|
|
7
|
-
private oldUse;
|
|
8
|
-
private newUse;
|
|
9
|
-
constructor(oldUse: Value, newUse: Value);
|
|
10
|
-
caseExpr(expr: AbstractExpr): void;
|
|
11
|
-
private caseBinopExpr;
|
|
12
|
-
private caseInvokeExpr;
|
|
13
|
-
private caseNewArrayExpr;
|
|
14
|
-
private caseTypeOfExpr;
|
|
15
|
-
private caseInstanceOfExpr;
|
|
16
|
-
private caseCastExpr;
|
|
17
|
-
private caseAwaitExpr;
|
|
18
|
-
private caseDeleteExpr;
|
|
19
|
-
private caseYieldExpr;
|
|
20
|
-
private caseUnopExpr;
|
|
21
|
-
}
|
|
1
|
+
import { AbstractExpr } from '../base/Expr';
|
|
2
|
+
import { Value } from '../base/Value';
|
|
3
|
+
/**
|
|
4
|
+
* Replace old use of a Expr inplace
|
|
5
|
+
*/
|
|
6
|
+
export declare class ExprUseReplacer {
|
|
7
|
+
private oldUse;
|
|
8
|
+
private newUse;
|
|
9
|
+
constructor(oldUse: Value, newUse: Value);
|
|
10
|
+
caseExpr(expr: AbstractExpr): void;
|
|
11
|
+
private caseBinopExpr;
|
|
12
|
+
private caseInvokeExpr;
|
|
13
|
+
private caseNewArrayExpr;
|
|
14
|
+
private caseTypeOfExpr;
|
|
15
|
+
private caseInstanceOfExpr;
|
|
16
|
+
private caseCastExpr;
|
|
17
|
+
private caseAwaitExpr;
|
|
18
|
+
private caseDeleteExpr;
|
|
19
|
+
private caseYieldExpr;
|
|
20
|
+
private caseUnopExpr;
|
|
21
|
+
}
|
|
22
22
|
//# sourceMappingURL=ExprUseReplacer.d.ts.map
|
|
@@ -1,124 +1,124 @@
|
|
|
1
|
-
"use strict";
|
|
2
|
-
/*
|
|
3
|
-
* Copyright (c) 2024 Huawei Device Co., Ltd.
|
|
4
|
-
* Licensed under the Apache License, Version 2.0 (the "License");
|
|
5
|
-
* you may not use this file except in compliance with the License.
|
|
6
|
-
* You may obtain a copy of the License at
|
|
7
|
-
*
|
|
8
|
-
* http://www.apache.org/licenses/LICENSE-2.0
|
|
9
|
-
*
|
|
10
|
-
* Unless required by applicable law or agreed to in writing, software
|
|
11
|
-
* distributed under the License is distributed on an "AS IS" BASIS,
|
|
12
|
-
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
|
13
|
-
* See the License for the specific language governing permissions and
|
|
14
|
-
* limitations under the License.
|
|
15
|
-
*/
|
|
16
|
-
Object.defineProperty(exports, "__esModule", { value: true });
|
|
17
|
-
exports.ExprUseReplacer = void 0;
|
|
18
|
-
const Expr_1 = require("../base/Expr");
|
|
19
|
-
const Local_1 = require("../base/Local");
|
|
20
|
-
const Ref_1 = require("../base/Ref");
|
|
21
|
-
/**
|
|
22
|
-
* Replace old use of a Expr inplace
|
|
23
|
-
*/
|
|
24
|
-
class ExprUseReplacer {
|
|
25
|
-
constructor(oldUse, newUse) {
|
|
26
|
-
this.oldUse = oldUse;
|
|
27
|
-
this.newUse = newUse;
|
|
28
|
-
}
|
|
29
|
-
caseExpr(expr) {
|
|
30
|
-
if (expr instanceof Expr_1.AbstractBinopExpr) {
|
|
31
|
-
this.caseBinopExpr(expr);
|
|
32
|
-
}
|
|
33
|
-
else if (expr instanceof Expr_1.AbstractInvokeExpr) {
|
|
34
|
-
this.caseInvokeExpr(expr);
|
|
35
|
-
}
|
|
36
|
-
else if (expr instanceof Expr_1.ArkNewArrayExpr) {
|
|
37
|
-
this.caseNewArrayExpr(expr);
|
|
38
|
-
}
|
|
39
|
-
else if (expr instanceof Expr_1.ArkTypeOfExpr) {
|
|
40
|
-
this.caseTypeOfExpr(expr);
|
|
41
|
-
}
|
|
42
|
-
else if (expr instanceof Expr_1.ArkInstanceOfExpr) {
|
|
43
|
-
this.caseInstanceOfExpr(expr);
|
|
44
|
-
}
|
|
45
|
-
else if (expr instanceof Expr_1.ArkCastExpr) {
|
|
46
|
-
this.caseCastExpr(expr);
|
|
47
|
-
}
|
|
48
|
-
else if (expr instanceof Expr_1.ArkAwaitExpr) {
|
|
49
|
-
this.caseAwaitExpr(expr);
|
|
50
|
-
}
|
|
51
|
-
else if (expr instanceof Expr_1.ArkYieldExpr) {
|
|
52
|
-
this.caseYieldExpr(expr);
|
|
53
|
-
}
|
|
54
|
-
else if (expr instanceof Expr_1.ArkDeleteExpr) {
|
|
55
|
-
this.caseDeleteExpr(expr);
|
|
56
|
-
}
|
|
57
|
-
else if (expr instanceof Expr_1.ArkUnopExpr) {
|
|
58
|
-
this.caseUnopExpr(expr);
|
|
59
|
-
}
|
|
60
|
-
}
|
|
61
|
-
caseBinopExpr(expr) {
|
|
62
|
-
if (expr.getOp1() === this.oldUse) {
|
|
63
|
-
expr.setOp1(this.newUse);
|
|
64
|
-
}
|
|
65
|
-
if (expr.getOp2() === this.oldUse) {
|
|
66
|
-
expr.setOp2(this.newUse);
|
|
67
|
-
}
|
|
68
|
-
}
|
|
69
|
-
caseInvokeExpr(expr) {
|
|
70
|
-
let args = expr.getArgs();
|
|
71
|
-
for (let i = 0; i < args.length; i++) {
|
|
72
|
-
if (args[i] === this.oldUse) {
|
|
73
|
-
args[i] = this.newUse;
|
|
74
|
-
}
|
|
75
|
-
}
|
|
76
|
-
if (expr instanceof Expr_1.ArkInstanceInvokeExpr && expr.getBase() === this.oldUse) {
|
|
77
|
-
expr.setBase(this.newUse);
|
|
78
|
-
}
|
|
79
|
-
else if (expr instanceof Expr_1.ArkPtrInvokeExpr && expr.getFuncPtrLocal() === this.oldUse && this.newUse instanceof Local_1.Local) {
|
|
80
|
-
expr.setFunPtrLocal(this.newUse);
|
|
81
|
-
}
|
|
82
|
-
}
|
|
83
|
-
caseNewArrayExpr(expr) {
|
|
84
|
-
if (expr.getSize() === this.oldUse) {
|
|
85
|
-
expr.setSize(this.newUse);
|
|
86
|
-
}
|
|
87
|
-
}
|
|
88
|
-
caseTypeOfExpr(expr) {
|
|
89
|
-
if (expr.getOp() === this.oldUse) {
|
|
90
|
-
expr.setOp(this.newUse);
|
|
91
|
-
}
|
|
92
|
-
}
|
|
93
|
-
caseInstanceOfExpr(expr) {
|
|
94
|
-
if (expr.getOp() === this.oldUse) {
|
|
95
|
-
expr.setOp(this.newUse);
|
|
96
|
-
}
|
|
97
|
-
}
|
|
98
|
-
caseCastExpr(expr) {
|
|
99
|
-
if (expr.getOp() === this.oldUse) {
|
|
100
|
-
expr.setOp(this.newUse);
|
|
101
|
-
}
|
|
102
|
-
}
|
|
103
|
-
caseAwaitExpr(expr) {
|
|
104
|
-
if (expr.getPromise() === this.oldUse) {
|
|
105
|
-
expr.setPromise(this.newUse);
|
|
106
|
-
}
|
|
107
|
-
}
|
|
108
|
-
caseDeleteExpr(expr) {
|
|
109
|
-
if (expr.getField() === this.oldUse && this.newUse instanceof Ref_1.AbstractFieldRef) {
|
|
110
|
-
expr.setField(this.newUse);
|
|
111
|
-
}
|
|
112
|
-
}
|
|
113
|
-
caseYieldExpr(expr) {
|
|
114
|
-
if (expr.getYieldValue() === this.oldUse) {
|
|
115
|
-
expr.setYieldValue(this.newUse);
|
|
116
|
-
}
|
|
117
|
-
}
|
|
118
|
-
caseUnopExpr(expr) {
|
|
119
|
-
if (expr.getOp() === this.oldUse) {
|
|
120
|
-
expr.setOp(this.newUse);
|
|
121
|
-
}
|
|
122
|
-
}
|
|
123
|
-
}
|
|
124
|
-
exports.ExprUseReplacer = ExprUseReplacer;
|
|
1
|
+
"use strict";
|
|
2
|
+
/*
|
|
3
|
+
* Copyright (c) 2024 Huawei Device Co., Ltd.
|
|
4
|
+
* Licensed under the Apache License, Version 2.0 (the "License");
|
|
5
|
+
* you may not use this file except in compliance with the License.
|
|
6
|
+
* You may obtain a copy of the License at
|
|
7
|
+
*
|
|
8
|
+
* http://www.apache.org/licenses/LICENSE-2.0
|
|
9
|
+
*
|
|
10
|
+
* Unless required by applicable law or agreed to in writing, software
|
|
11
|
+
* distributed under the License is distributed on an "AS IS" BASIS,
|
|
12
|
+
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
|
13
|
+
* See the License for the specific language governing permissions and
|
|
14
|
+
* limitations under the License.
|
|
15
|
+
*/
|
|
16
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
17
|
+
exports.ExprUseReplacer = void 0;
|
|
18
|
+
const Expr_1 = require("../base/Expr");
|
|
19
|
+
const Local_1 = require("../base/Local");
|
|
20
|
+
const Ref_1 = require("../base/Ref");
|
|
21
|
+
/**
|
|
22
|
+
* Replace old use of a Expr inplace
|
|
23
|
+
*/
|
|
24
|
+
class ExprUseReplacer {
|
|
25
|
+
constructor(oldUse, newUse) {
|
|
26
|
+
this.oldUse = oldUse;
|
|
27
|
+
this.newUse = newUse;
|
|
28
|
+
}
|
|
29
|
+
caseExpr(expr) {
|
|
30
|
+
if (expr instanceof Expr_1.AbstractBinopExpr) {
|
|
31
|
+
this.caseBinopExpr(expr);
|
|
32
|
+
}
|
|
33
|
+
else if (expr instanceof Expr_1.AbstractInvokeExpr) {
|
|
34
|
+
this.caseInvokeExpr(expr);
|
|
35
|
+
}
|
|
36
|
+
else if (expr instanceof Expr_1.ArkNewArrayExpr) {
|
|
37
|
+
this.caseNewArrayExpr(expr);
|
|
38
|
+
}
|
|
39
|
+
else if (expr instanceof Expr_1.ArkTypeOfExpr) {
|
|
40
|
+
this.caseTypeOfExpr(expr);
|
|
41
|
+
}
|
|
42
|
+
else if (expr instanceof Expr_1.ArkInstanceOfExpr) {
|
|
43
|
+
this.caseInstanceOfExpr(expr);
|
|
44
|
+
}
|
|
45
|
+
else if (expr instanceof Expr_1.ArkCastExpr) {
|
|
46
|
+
this.caseCastExpr(expr);
|
|
47
|
+
}
|
|
48
|
+
else if (expr instanceof Expr_1.ArkAwaitExpr) {
|
|
49
|
+
this.caseAwaitExpr(expr);
|
|
50
|
+
}
|
|
51
|
+
else if (expr instanceof Expr_1.ArkYieldExpr) {
|
|
52
|
+
this.caseYieldExpr(expr);
|
|
53
|
+
}
|
|
54
|
+
else if (expr instanceof Expr_1.ArkDeleteExpr) {
|
|
55
|
+
this.caseDeleteExpr(expr);
|
|
56
|
+
}
|
|
57
|
+
else if (expr instanceof Expr_1.ArkUnopExpr) {
|
|
58
|
+
this.caseUnopExpr(expr);
|
|
59
|
+
}
|
|
60
|
+
}
|
|
61
|
+
caseBinopExpr(expr) {
|
|
62
|
+
if (expr.getOp1() === this.oldUse) {
|
|
63
|
+
expr.setOp1(this.newUse);
|
|
64
|
+
}
|
|
65
|
+
if (expr.getOp2() === this.oldUse) {
|
|
66
|
+
expr.setOp2(this.newUse);
|
|
67
|
+
}
|
|
68
|
+
}
|
|
69
|
+
caseInvokeExpr(expr) {
|
|
70
|
+
let args = expr.getArgs();
|
|
71
|
+
for (let i = 0; i < args.length; i++) {
|
|
72
|
+
if (args[i] === this.oldUse) {
|
|
73
|
+
args[i] = this.newUse;
|
|
74
|
+
}
|
|
75
|
+
}
|
|
76
|
+
if (expr instanceof Expr_1.ArkInstanceInvokeExpr && expr.getBase() === this.oldUse) {
|
|
77
|
+
expr.setBase(this.newUse);
|
|
78
|
+
}
|
|
79
|
+
else if (expr instanceof Expr_1.ArkPtrInvokeExpr && expr.getFuncPtrLocal() === this.oldUse && this.newUse instanceof Local_1.Local) {
|
|
80
|
+
expr.setFunPtrLocal(this.newUse);
|
|
81
|
+
}
|
|
82
|
+
}
|
|
83
|
+
caseNewArrayExpr(expr) {
|
|
84
|
+
if (expr.getSize() === this.oldUse) {
|
|
85
|
+
expr.setSize(this.newUse);
|
|
86
|
+
}
|
|
87
|
+
}
|
|
88
|
+
caseTypeOfExpr(expr) {
|
|
89
|
+
if (expr.getOp() === this.oldUse) {
|
|
90
|
+
expr.setOp(this.newUse);
|
|
91
|
+
}
|
|
92
|
+
}
|
|
93
|
+
caseInstanceOfExpr(expr) {
|
|
94
|
+
if (expr.getOp() === this.oldUse) {
|
|
95
|
+
expr.setOp(this.newUse);
|
|
96
|
+
}
|
|
97
|
+
}
|
|
98
|
+
caseCastExpr(expr) {
|
|
99
|
+
if (expr.getOp() === this.oldUse) {
|
|
100
|
+
expr.setOp(this.newUse);
|
|
101
|
+
}
|
|
102
|
+
}
|
|
103
|
+
caseAwaitExpr(expr) {
|
|
104
|
+
if (expr.getPromise() === this.oldUse) {
|
|
105
|
+
expr.setPromise(this.newUse);
|
|
106
|
+
}
|
|
107
|
+
}
|
|
108
|
+
caseDeleteExpr(expr) {
|
|
109
|
+
if (expr.getField() === this.oldUse && this.newUse instanceof Ref_1.AbstractFieldRef) {
|
|
110
|
+
expr.setField(this.newUse);
|
|
111
|
+
}
|
|
112
|
+
}
|
|
113
|
+
caseYieldExpr(expr) {
|
|
114
|
+
if (expr.getYieldValue() === this.oldUse) {
|
|
115
|
+
expr.setYieldValue(this.newUse);
|
|
116
|
+
}
|
|
117
|
+
}
|
|
118
|
+
caseUnopExpr(expr) {
|
|
119
|
+
if (expr.getOp() === this.oldUse) {
|
|
120
|
+
expr.setOp(this.newUse);
|
|
121
|
+
}
|
|
122
|
+
}
|
|
123
|
+
}
|
|
124
|
+
exports.ExprUseReplacer = ExprUseReplacer;
|
|
@@ -1,37 +1,37 @@
|
|
|
1
|
-
import { ArkMethod } from '../model/ArkMethod';
|
|
2
|
-
import { ClassType, Type } from '../base/Type';
|
|
3
|
-
import { Local } from '../base/Local';
|
|
4
|
-
import { AbstractExpr, AbstractInvokeExpr, AliasTypeExpr, ArkInstanceInvokeExpr, ArkStaticInvokeExpr } from '../base/Expr';
|
|
5
|
-
import { Scene } from '../../Scene';
|
|
6
|
-
import { ArkClass } from '../model/ArkClass';
|
|
7
|
-
import { ClassSignature, MethodSignature } from '../model/ArkSignature';
|
|
8
|
-
import { AbstractRef, ArkInstanceFieldRef } from '../base/Ref';
|
|
9
|
-
import { ArkFile } from '../model/ArkFile';
|
|
10
|
-
import { KeyofTypeExpr, TypeQueryExpr } from '../base/TypeExpr';
|
|
11
|
-
export declare class IRInference {
|
|
12
|
-
private static inferExportInfos;
|
|
13
|
-
private static inferImportInfos;
|
|
14
|
-
static inferFile(file: ArkFile): void;
|
|
15
|
-
static inferStaticInvokeExpr(expr: ArkStaticInvokeExpr, arkMethod: ArkMethod): AbstractInvokeExpr;
|
|
16
|
-
private static inferStaticInvokeExprByMethodName;
|
|
17
|
-
private static generateNewMethodSignature;
|
|
18
|
-
static inferInstanceInvokeExpr(expr: ArkInstanceInvokeExpr, arkMethod: ArkMethod): AbstractInvokeExpr;
|
|
19
|
-
static inferFieldRef(ref: ArkInstanceFieldRef, arkMethod: ArkMethod): AbstractRef;
|
|
20
|
-
private static inferArgs;
|
|
21
|
-
private static inferArg;
|
|
22
|
-
static inferRightWithSdkType(leftType: Type, rightType: Type, ackClass: ArkClass): void;
|
|
23
|
-
static inferArgTypeWithSdk(sdkType: ClassType, scene: Scene, argType: Type): void;
|
|
24
|
-
private static inferInvokeExpr;
|
|
25
|
-
private static inferInvokeExprWithDeclaredClass;
|
|
26
|
-
private static getRealTypes;
|
|
27
|
-
static replaceMethodSignature(init: MethodSignature, declared: MethodSignature): MethodSignature;
|
|
28
|
-
private static processForEach;
|
|
29
|
-
static inferLocal(base: Local, arkMethod: ArkMethod): void;
|
|
30
|
-
private static generateNewFieldSignature;
|
|
31
|
-
static inferAnonymousClass(anon: ArkClass | null, declaredSignature: ClassSignature, set?: Set<string>): void;
|
|
32
|
-
private static assignAnonField;
|
|
33
|
-
static inferAliasTypeExpr(expr: AliasTypeExpr, arkMethod: ArkMethod): AbstractExpr;
|
|
34
|
-
static inferTypeQueryExpr(expr: TypeQueryExpr, arkMethod: ArkMethod): void;
|
|
35
|
-
static inferKeyofTypeExpr(expr: KeyofTypeExpr, arkMethod: ArkMethod): void;
|
|
36
|
-
}
|
|
1
|
+
import { ArkMethod } from '../model/ArkMethod';
|
|
2
|
+
import { ClassType, Type } from '../base/Type';
|
|
3
|
+
import { Local } from '../base/Local';
|
|
4
|
+
import { AbstractExpr, AbstractInvokeExpr, AliasTypeExpr, ArkInstanceInvokeExpr, ArkStaticInvokeExpr } from '../base/Expr';
|
|
5
|
+
import { Scene } from '../../Scene';
|
|
6
|
+
import { ArkClass } from '../model/ArkClass';
|
|
7
|
+
import { ClassSignature, MethodSignature } from '../model/ArkSignature';
|
|
8
|
+
import { AbstractRef, ArkInstanceFieldRef } from '../base/Ref';
|
|
9
|
+
import { ArkFile } from '../model/ArkFile';
|
|
10
|
+
import { KeyofTypeExpr, TypeQueryExpr } from '../base/TypeExpr';
|
|
11
|
+
export declare class IRInference {
|
|
12
|
+
private static inferExportInfos;
|
|
13
|
+
private static inferImportInfos;
|
|
14
|
+
static inferFile(file: ArkFile): void;
|
|
15
|
+
static inferStaticInvokeExpr(expr: ArkStaticInvokeExpr, arkMethod: ArkMethod): AbstractInvokeExpr;
|
|
16
|
+
private static inferStaticInvokeExprByMethodName;
|
|
17
|
+
private static generateNewMethodSignature;
|
|
18
|
+
static inferInstanceInvokeExpr(expr: ArkInstanceInvokeExpr, arkMethod: ArkMethod): AbstractInvokeExpr;
|
|
19
|
+
static inferFieldRef(ref: ArkInstanceFieldRef, arkMethod: ArkMethod): AbstractRef;
|
|
20
|
+
private static inferArgs;
|
|
21
|
+
private static inferArg;
|
|
22
|
+
static inferRightWithSdkType(leftType: Type, rightType: Type, ackClass: ArkClass): void;
|
|
23
|
+
static inferArgTypeWithSdk(sdkType: ClassType, scene: Scene, argType: Type): void;
|
|
24
|
+
private static inferInvokeExpr;
|
|
25
|
+
private static inferInvokeExprWithDeclaredClass;
|
|
26
|
+
private static getRealTypes;
|
|
27
|
+
static replaceMethodSignature(init: MethodSignature, declared: MethodSignature): MethodSignature;
|
|
28
|
+
private static processForEach;
|
|
29
|
+
static inferLocal(base: Local, arkMethod: ArkMethod): void;
|
|
30
|
+
private static generateNewFieldSignature;
|
|
31
|
+
static inferAnonymousClass(anon: ArkClass | null, declaredSignature: ClassSignature, set?: Set<string>): void;
|
|
32
|
+
private static assignAnonField;
|
|
33
|
+
static inferAliasTypeExpr(expr: AliasTypeExpr, arkMethod: ArkMethod): AbstractExpr;
|
|
34
|
+
static inferTypeQueryExpr(expr: TypeQueryExpr, arkMethod: ArkMethod): void;
|
|
35
|
+
static inferKeyofTypeExpr(expr: KeyofTypeExpr, arkMethod: ArkMethod): void;
|
|
36
|
+
}
|
|
37
37
|
//# sourceMappingURL=IRInference.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"IRInference.d.ts","sourceRoot":"","sources":["../../../src/core/common/IRInference.ts"],"names":[],"mappings":"AAcA,OAAO,EAAE,SAAS,EAAE,MAAM,oBAAoB,CAAC;AAC/C,OAAO,EAKH,SAAS,EAIT,IAAI,EAIP,MAAM,cAAc,CAAC;AACtB,OAAO,EAAE,KAAK,EAAE,MAAM,eAAe,CAAC;AAEtC,OAAO,EACH,YAAY,EACZ,kBAAkB,EAClB,aAAa,EACb,qBAAqB,EACrB,mBAAmB,EACtB,MAAM,cAAc,CAAC;AAEtB,OAAO,EAAE,KAAK,EAAE,MAAM,aAAa,CAAC;AACpC,OAAO,EAAE,QAAQ,EAAE,MAAM,mBAAmB,CAAC;AAI7C,OAAO,EAGH,cAAc,EAEd,eAAe,EAElB,MAAM,uBAAuB,CAAC;AAK/B,OAAO,EAEH,WAAW,EAEX,mBAAmB,EAGtB,MAAM,aAAa,CAAC;AAYrB,OAAO,EAAE,OAAO,EAAE,MAAM,kBAAkB,CAAC;AAC3C,OAAO,EAAoB,aAAa,EAAE,aAAa,EAAE,MAAM,kBAAkB,CAAC;AAKlF,qBAAa,WAAW;IAEpB,OAAO,CAAC,MAAM,CAAC,gBAAgB;IAY/B,OAAO,CAAC,MAAM,CAAC,gBAAgB;WAMjB,SAAS,CAAC,IAAI,EAAE,OAAO,GAAG,IAAI;WAwB9B,qBAAqB,CAAC,IAAI,EAAE,mBAAmB,EAAE,SAAS,EAAE,SAAS,GAAG,kBAAkB;IA8BxG,OAAO,CAAC,MAAM,CAAC,iCAAiC;IAmChD,OAAO,CAAC,MAAM,CAAC,0BAA0B;WAU3B,uBAAuB,CAAC,IAAI,EAAE,qBAAqB,EAAE,SAAS,EAAE,SAAS,GAAG,kBAAkB;WAsB9F,aAAa,CAAC,GAAG,EAAE,mBAAmB,EAAE,SAAS,EAAE,SAAS,GAAG,WAAW;IAiBxF,OAAO,CAAC,MAAM,CAAC,SAAS;IAoBxB,OAAO,CAAC,MAAM,CAAC,QAAQ;WAqBT,qBAAqB,CAAC,QAAQ,EAAE,IAAI,EAAE,SAAS,EAAE,IAAI,EAAE,QAAQ,EAAE,QAAQ,GAAG,IAAI;WAehF,mBAAmB,CAAC,OAAO,EAAE,SAAS,EAAE,KAAK,EAAE,KAAK,EAAE,OAAO,EAAE,IAAI,GAAG,IAAI;IAgBxF,OAAO,CAAC,MAAM,CAAC,eAAe;IA0C9B,OAAO,CAAC,MAAM,CAAC,gCAAgC;IAgD/C,OAAO,CAAC,MAAM,CAAC,YAAY;WAYb,sBAAsB,CAAC,IAAI,EAAE,eAAe,EAAE,QAAQ,EAAE,eAAe,GAAG,eAAe;IAcvG,OAAO,CAAC,MAAM,CAAC,cAAc;
|
|
1
|
+
{"version":3,"file":"IRInference.d.ts","sourceRoot":"","sources":["../../../src/core/common/IRInference.ts"],"names":[],"mappings":"AAcA,OAAO,EAAE,SAAS,EAAE,MAAM,oBAAoB,CAAC;AAC/C,OAAO,EAKH,SAAS,EAIT,IAAI,EAIP,MAAM,cAAc,CAAC;AACtB,OAAO,EAAE,KAAK,EAAE,MAAM,eAAe,CAAC;AAEtC,OAAO,EACH,YAAY,EACZ,kBAAkB,EAClB,aAAa,EACb,qBAAqB,EACrB,mBAAmB,EACtB,MAAM,cAAc,CAAC;AAEtB,OAAO,EAAE,KAAK,EAAE,MAAM,aAAa,CAAC;AACpC,OAAO,EAAE,QAAQ,EAAE,MAAM,mBAAmB,CAAC;AAI7C,OAAO,EAGH,cAAc,EAEd,eAAe,EAElB,MAAM,uBAAuB,CAAC;AAK/B,OAAO,EAEH,WAAW,EAEX,mBAAmB,EAGtB,MAAM,aAAa,CAAC;AAYrB,OAAO,EAAE,OAAO,EAAE,MAAM,kBAAkB,CAAC;AAC3C,OAAO,EAAoB,aAAa,EAAE,aAAa,EAAE,MAAM,kBAAkB,CAAC;AAKlF,qBAAa,WAAW;IAEpB,OAAO,CAAC,MAAM,CAAC,gBAAgB;IAY/B,OAAO,CAAC,MAAM,CAAC,gBAAgB;WAMjB,SAAS,CAAC,IAAI,EAAE,OAAO,GAAG,IAAI;WAwB9B,qBAAqB,CAAC,IAAI,EAAE,mBAAmB,EAAE,SAAS,EAAE,SAAS,GAAG,kBAAkB;IA8BxG,OAAO,CAAC,MAAM,CAAC,iCAAiC;IAmChD,OAAO,CAAC,MAAM,CAAC,0BAA0B;WAU3B,uBAAuB,CAAC,IAAI,EAAE,qBAAqB,EAAE,SAAS,EAAE,SAAS,GAAG,kBAAkB;WAsB9F,aAAa,CAAC,GAAG,EAAE,mBAAmB,EAAE,SAAS,EAAE,SAAS,GAAG,WAAW;IAiBxF,OAAO,CAAC,MAAM,CAAC,SAAS;IAoBxB,OAAO,CAAC,MAAM,CAAC,QAAQ;WAqBT,qBAAqB,CAAC,QAAQ,EAAE,IAAI,EAAE,SAAS,EAAE,IAAI,EAAE,QAAQ,EAAE,QAAQ,GAAG,IAAI;WAehF,mBAAmB,CAAC,OAAO,EAAE,SAAS,EAAE,KAAK,EAAE,KAAK,EAAE,OAAO,EAAE,IAAI,GAAG,IAAI;IAgBxF,OAAO,CAAC,MAAM,CAAC,eAAe;IA0C9B,OAAO,CAAC,MAAM,CAAC,gCAAgC;IAgD/C,OAAO,CAAC,MAAM,CAAC,YAAY;WAYb,sBAAsB,CAAC,IAAI,EAAE,eAAe,EAAE,QAAQ,EAAE,eAAe,GAAG,eAAe;IAcvG,OAAO,CAAC,MAAM,CAAC,cAAc;WAsBf,UAAU,CAAC,IAAI,EAAE,KAAK,EAAE,SAAS,EAAE,SAAS,GAAG,IAAI;IAsBjE,OAAO,CAAC,MAAM,CAAC,yBAAyB;WA4C1B,mBAAmB,CAAC,IAAI,EAAE,QAAQ,GAAG,IAAI,EAAE,iBAAiB,EAAE,cAAc,EAAE,GAAG,GAAE,GAAG,CAAC,MAAM,CAAa,GAAG,IAAI;IA+B/H,OAAO,CAAC,MAAM,CAAC,eAAe;WA+BhB,kBAAkB,CAAC,IAAI,EAAE,aAAa,EAAE,SAAS,EAAE,SAAS,GAAG,YAAY;WAiC3E,kBAAkB,CAAC,IAAI,EAAE,aAAa,EAAE,SAAS,EAAE,SAAS,GAAG,IAAI;WA2CnE,kBAAkB,CAAC,IAAI,EAAE,aAAa,EAAE,SAAS,EAAE,SAAS,GAAG,IAAI;CAapF"}
|