arkanalyzer 1.0.7 → 1.0.9
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/config/arkanalyzer.json +8 -0
- package/lib/Config.d.ts +9 -1
- package/lib/Config.d.ts.map +1 -1
- package/lib/Config.js +24 -11
- package/lib/Scene.d.ts +49 -42
- package/lib/Scene.d.ts.map +1 -1
- package/lib/Scene.js +124 -93
- package/lib/callgraph/algorithm/AbstractAnalysis.js +1 -1
- package/lib/callgraph/common/Statistics.js +1 -1
- package/lib/callgraph/model/CallGraph.d.ts +3 -2
- package/lib/callgraph/model/CallGraph.d.ts.map +1 -1
- package/lib/callgraph/model/CallGraph.js +15 -5
- package/lib/callgraph/model/builder/CallGraphBuilder.js +1 -1
- package/lib/callgraph/pointerAnalysis/Pag.d.ts +35 -8
- package/lib/callgraph/pointerAnalysis/Pag.d.ts.map +1 -1
- package/lib/callgraph/pointerAnalysis/Pag.js +89 -8
- package/lib/callgraph/pointerAnalysis/PagBuilder.d.ts +32 -5
- package/lib/callgraph/pointerAnalysis/PagBuilder.d.ts.map +1 -1
- package/lib/callgraph/pointerAnalysis/PagBuilder.js +378 -83
- package/lib/callgraph/pointerAnalysis/PointerAnalysis.d.ts +3 -0
- package/lib/callgraph/pointerAnalysis/PointerAnalysis.d.ts.map +1 -1
- package/lib/callgraph/pointerAnalysis/PointerAnalysis.js +71 -18
- package/lib/core/base/Constant.d.ts +25 -5
- package/lib/core/base/Constant.d.ts.map +1 -1
- package/lib/core/base/Constant.js +46 -8
- package/lib/core/base/Expr.d.ts +45 -40
- package/lib/core/base/Expr.d.ts.map +1 -1
- package/lib/core/base/Expr.js +236 -150
- package/lib/core/base/Local.d.ts +2 -2
- package/lib/core/base/Local.d.ts.map +1 -1
- package/lib/core/base/Local.js +2 -2
- package/lib/core/base/Ref.d.ts +38 -37
- package/lib/core/base/Ref.d.ts.map +1 -1
- package/lib/core/base/Ref.js +102 -70
- package/lib/core/base/Stmt.d.ts +4 -0
- package/lib/core/base/Stmt.d.ts.map +1 -1
- package/lib/core/base/Stmt.js +12 -1
- package/lib/core/base/Type.d.ts +4 -0
- package/lib/core/base/Type.d.ts.map +1 -1
- package/lib/core/base/Type.js +41 -17
- package/lib/core/common/ArkError.d.ts +15 -0
- package/lib/core/common/ArkError.d.ts.map +1 -0
- package/lib/core/common/ArkError.js +28 -0
- package/lib/core/common/ArkIRTransformer.d.ts +1 -1
- package/lib/core/common/ArkIRTransformer.d.ts.map +1 -1
- package/lib/core/common/ArkIRTransformer.js +24 -8
- package/lib/core/common/CfgBuilder.d.ts.map +1 -1
- package/lib/core/common/CfgBuilder.js +5 -0
- package/lib/core/common/Const.d.ts +15 -10
- package/lib/core/common/Const.d.ts.map +1 -1
- package/lib/core/common/Const.js +18 -11
- package/lib/core/common/DummyMainCreater.d.ts +2 -1
- package/lib/core/common/DummyMainCreater.d.ts.map +1 -1
- package/lib/core/common/DummyMainCreater.js +28 -15
- package/lib/core/common/EtsConst.d.ts +1 -0
- package/lib/core/common/EtsConst.d.ts.map +1 -1
- package/lib/core/common/EtsConst.js +2 -1
- package/lib/core/common/IRUtils.d.ts +6 -0
- package/lib/core/common/IRUtils.d.ts.map +1 -1
- package/lib/core/common/IRUtils.js +29 -2
- package/lib/core/common/ModelUtils.d.ts +1 -0
- package/lib/core/common/ModelUtils.d.ts.map +1 -1
- package/lib/core/common/ModelUtils.js +32 -32
- package/lib/core/common/TSConst.d.ts +10 -3
- package/lib/core/common/TSConst.d.ts.map +1 -1
- package/lib/core/common/TSConst.js +11 -4
- package/lib/core/common/TypeInference.d.ts +8 -2
- package/lib/core/common/TypeInference.d.ts.map +1 -1
- package/lib/core/common/TypeInference.js +218 -87
- package/lib/core/common/ValueUtil.d.ts +0 -4
- package/lib/core/common/ValueUtil.d.ts.map +1 -1
- package/lib/core/common/ValueUtil.js +8 -25
- package/lib/core/dataflow/DataflowSolver.d.ts.map +1 -1
- package/lib/core/dataflow/DataflowSolver.js +2 -4
- package/lib/core/dataflow/TiantAnalysis.js +2 -1
- package/lib/core/dataflow/Util.d.ts +1 -1
- package/lib/core/dataflow/Util.d.ts.map +1 -1
- package/lib/core/dataflow/Util.js +8 -7
- package/lib/core/graph/BasicBlock.d.ts +41 -0
- package/lib/core/graph/BasicBlock.d.ts.map +1 -1
- package/lib/core/graph/BasicBlock.js +132 -1
- package/lib/core/graph/Cfg.d.ts +30 -1
- package/lib/core/graph/Cfg.d.ts.map +1 -1
- package/lib/core/graph/Cfg.js +129 -6
- package/lib/core/graph/builder/ViewTreeBuilder.d.ts.map +1 -1
- package/lib/core/graph/builder/ViewTreeBuilder.js +3 -2
- package/lib/core/model/ArkBaseModel.d.ts +8 -0
- package/lib/core/model/ArkBaseModel.d.ts.map +1 -1
- package/lib/core/model/ArkBaseModel.js +55 -3
- package/lib/core/model/ArkClass.d.ts +36 -30
- package/lib/core/model/ArkClass.d.ts.map +1 -1
- package/lib/core/model/ArkClass.js +78 -39
- package/lib/core/model/ArkExport.d.ts +3 -0
- package/lib/core/model/ArkExport.d.ts.map +1 -1
- package/lib/core/model/ArkExport.js +10 -0
- package/lib/core/model/ArkField.d.ts +2 -0
- package/lib/core/model/ArkField.d.ts.map +1 -1
- package/lib/core/model/ArkField.js +3 -0
- package/lib/core/model/ArkFile.d.ts +4 -0
- package/lib/core/model/ArkFile.d.ts.map +1 -1
- package/lib/core/model/ArkFile.js +20 -0
- package/lib/core/model/ArkImport.d.ts +2 -0
- package/lib/core/model/ArkImport.d.ts.map +1 -1
- package/lib/core/model/ArkImport.js +3 -0
- package/lib/core/model/ArkMetadata.d.ts +20 -0
- package/lib/core/model/ArkMetadata.d.ts.map +1 -0
- package/lib/core/model/ArkMetadata.js +44 -0
- package/lib/core/model/ArkMethod.d.ts +156 -53
- package/lib/core/model/ArkMethod.d.ts.map +1 -1
- package/lib/core/model/ArkMethod.js +309 -54
- package/lib/core/model/ArkNamespace.d.ts +4 -0
- package/lib/core/model/ArkNamespace.d.ts.map +1 -1
- package/lib/core/model/ArkNamespace.js +13 -0
- package/lib/core/model/ArkSignature.d.ts +11 -5
- package/lib/core/model/ArkSignature.d.ts.map +1 -1
- package/lib/core/model/ArkSignature.js +38 -18
- package/lib/core/model/builder/ArkClassBuilder.d.ts +0 -1
- package/lib/core/model/builder/ArkClassBuilder.d.ts.map +1 -1
- package/lib/core/model/builder/ArkClassBuilder.js +9 -34
- package/lib/core/model/builder/ArkExportBuilder.d.ts.map +1 -1
- package/lib/core/model/builder/ArkExportBuilder.js +6 -1
- package/lib/core/model/builder/ArkFieldBuilder.d.ts.map +1 -1
- package/lib/core/model/builder/ArkFieldBuilder.js +3 -0
- package/lib/core/model/builder/ArkFileBuilder.js +1 -1
- package/lib/core/model/builder/ArkImportBuilder.d.ts +2 -1
- package/lib/core/model/builder/ArkImportBuilder.d.ts.map +1 -1
- package/lib/core/model/builder/ArkImportBuilder.js +12 -5
- package/lib/core/model/builder/ArkMethodBuilder.d.ts +2 -1
- package/lib/core/model/builder/ArkMethodBuilder.d.ts.map +1 -1
- package/lib/core/model/builder/ArkMethodBuilder.js +87 -47
- package/lib/core/model/builder/ArkNamespaceBuilder.d.ts.map +1 -1
- package/lib/core/model/builder/ArkNamespaceBuilder.js +2 -0
- package/lib/core/model/builder/builderUtils.d.ts.map +1 -1
- package/lib/core/model/builder/builderUtils.js +25 -2
- package/lib/save/source/SourceClass.d.ts.map +1 -1
- package/lib/save/source/SourceClass.js +4 -0
- package/lib/save/source/SourceField.d.ts.map +1 -1
- package/lib/save/source/SourceField.js +4 -0
- package/lib/save/source/SourceMethod.d.ts.map +1 -1
- package/lib/save/source/SourceMethod.js +7 -0
- package/lib/save/source/SourceModule.d.ts.map +1 -1
- package/lib/save/source/SourceModule.js +14 -9
- package/lib/save/source/SourceNamespace.d.ts.map +1 -1
- package/lib/save/source/SourceNamespace.js +4 -0
- package/lib/save/source/SourceStmt.d.ts.map +1 -1
- package/lib/save/source/SourceStmt.js +15 -3
- package/lib/save/source/SourceTransformer.d.ts +6 -0
- package/lib/save/source/SourceTransformer.d.ts.map +1 -1
- package/lib/save/source/SourceTransformer.js +72 -41
- package/lib/save/source/SourceUtils.d.ts.map +1 -1
- package/lib/save/source/SourceUtils.js +3 -2
- package/lib/transformer/StaticSingleAssignmentFormer.js +1 -1
- package/lib/utils/CfgStructualAnalysis.d.ts +1 -0
- package/lib/utils/CfgStructualAnalysis.d.ts.map +1 -1
- package/lib/utils/CfgStructualAnalysis.js +41 -7
- package/lib/utils/callGraphUtils.d.ts.map +1 -1
- package/lib/utils/callGraphUtils.js +7 -10
- package/lib/utils/crypto_utils.d.ts +6 -0
- package/lib/utils/crypto_utils.d.ts.map +1 -0
- package/lib/utils/crypto_utils.js +57 -0
- package/lib/utils/getAllFiles.d.ts +1 -1
- package/lib/utils/getAllFiles.d.ts.map +1 -1
- package/lib/utils/getAllFiles.js +4 -5
- package/package.json +3 -2
package/lib/core/base/Type.js
CHANGED
|
@@ -17,6 +17,8 @@ Object.defineProperty(exports, "__esModule", { value: true });
|
|
|
17
17
|
exports.AnnotationTypeQueryType = exports.AnnotationNamespaceType = exports.AnnotationType = exports.AliasTypeDeclaration = exports.GenericType = exports.AliasType = exports.TupleType = exports.ArrayType = exports.ClassType = exports.FunctionType = exports.NeverType = exports.VoidType = exports.UnionType = exports.LiteralType = exports.UndefinedType = exports.NullType = exports.StringType = exports.NumberType = exports.BooleanType = exports.PrimitiveType = exports.UnclearReferenceType = exports.UnknownType = exports.AnyType = exports.Type = void 0;
|
|
18
18
|
const ArkSignature_1 = require("../model/ArkSignature");
|
|
19
19
|
const ArkExport_1 = require("../model/ArkExport");
|
|
20
|
+
const ArkBaseModel_1 = require("../model/ArkBaseModel");
|
|
21
|
+
const TSConst_1 = require("../common/TSConst");
|
|
20
22
|
/**
|
|
21
23
|
* @category core/base/type
|
|
22
24
|
*/
|
|
@@ -35,7 +37,7 @@ class AnyType extends Type {
|
|
|
35
37
|
super();
|
|
36
38
|
}
|
|
37
39
|
toString() {
|
|
38
|
-
return
|
|
40
|
+
return TSConst_1.ANY_KEYWORD;
|
|
39
41
|
}
|
|
40
42
|
}
|
|
41
43
|
exports.AnyType = AnyType;
|
|
@@ -52,7 +54,7 @@ class UnknownType extends Type {
|
|
|
52
54
|
super();
|
|
53
55
|
}
|
|
54
56
|
toString() {
|
|
55
|
-
return
|
|
57
|
+
return TSConst_1.UNKNOWN_KEYWORD;
|
|
56
58
|
}
|
|
57
59
|
}
|
|
58
60
|
exports.UnknownType = UnknownType;
|
|
@@ -101,7 +103,7 @@ class PrimitiveType extends Type {
|
|
|
101
103
|
exports.PrimitiveType = PrimitiveType;
|
|
102
104
|
class BooleanType extends PrimitiveType {
|
|
103
105
|
constructor() {
|
|
104
|
-
super(
|
|
106
|
+
super(TSConst_1.BOOLEAN_KEYWORD);
|
|
105
107
|
}
|
|
106
108
|
static getInstance() {
|
|
107
109
|
return this.INSTANCE;
|
|
@@ -111,7 +113,7 @@ exports.BooleanType = BooleanType;
|
|
|
111
113
|
BooleanType.INSTANCE = new BooleanType();
|
|
112
114
|
class NumberType extends PrimitiveType {
|
|
113
115
|
constructor() {
|
|
114
|
-
super(
|
|
116
|
+
super(TSConst_1.NUMBER_KEYWORD);
|
|
115
117
|
}
|
|
116
118
|
static getInstance() {
|
|
117
119
|
return this.INSTANCE;
|
|
@@ -121,7 +123,7 @@ exports.NumberType = NumberType;
|
|
|
121
123
|
NumberType.INSTANCE = new NumberType();
|
|
122
124
|
class StringType extends PrimitiveType {
|
|
123
125
|
constructor() {
|
|
124
|
-
super(
|
|
126
|
+
super(TSConst_1.STRING_KEYWORD);
|
|
125
127
|
}
|
|
126
128
|
static getInstance() {
|
|
127
129
|
return this.INSTANCE;
|
|
@@ -138,7 +140,7 @@ class NullType extends PrimitiveType {
|
|
|
138
140
|
return this.INSTANCE;
|
|
139
141
|
}
|
|
140
142
|
constructor() {
|
|
141
|
-
super(
|
|
143
|
+
super(TSConst_1.NULL_KEYWORD);
|
|
142
144
|
}
|
|
143
145
|
}
|
|
144
146
|
exports.NullType = NullType;
|
|
@@ -152,7 +154,7 @@ class UndefinedType extends PrimitiveType {
|
|
|
152
154
|
return this.INSTANCE;
|
|
153
155
|
}
|
|
154
156
|
constructor() {
|
|
155
|
-
super(
|
|
157
|
+
super(TSConst_1.UNDEFINED_KEYWORD);
|
|
156
158
|
}
|
|
157
159
|
}
|
|
158
160
|
exports.UndefinedType = UndefinedType;
|
|
@@ -196,11 +198,7 @@ class UnionType extends Type {
|
|
|
196
198
|
this.currType = newType;
|
|
197
199
|
}
|
|
198
200
|
toString() {
|
|
199
|
-
|
|
200
|
-
if (!(this.currType instanceof UnknownType) && this.currType !== this) {
|
|
201
|
-
typeStr += '-' + this.currType;
|
|
202
|
-
}
|
|
203
|
-
return typeStr;
|
|
201
|
+
return this.types.join('|');
|
|
204
202
|
}
|
|
205
203
|
}
|
|
206
204
|
exports.UnionType = UnionType;
|
|
@@ -216,7 +214,7 @@ class VoidType extends Type {
|
|
|
216
214
|
super();
|
|
217
215
|
}
|
|
218
216
|
toString() {
|
|
219
|
-
return
|
|
217
|
+
return TSConst_1.VOID_KEYWORD;
|
|
220
218
|
}
|
|
221
219
|
}
|
|
222
220
|
exports.VoidType = VoidType;
|
|
@@ -229,7 +227,7 @@ class NeverType extends Type {
|
|
|
229
227
|
super();
|
|
230
228
|
}
|
|
231
229
|
toString() {
|
|
232
|
-
return
|
|
230
|
+
return TSConst_1.NEVER_KEYWORD;
|
|
233
231
|
}
|
|
234
232
|
}
|
|
235
233
|
exports.NeverType = NeverType;
|
|
@@ -278,7 +276,13 @@ class ClassType extends Type {
|
|
|
278
276
|
this.realGenericTypes = types;
|
|
279
277
|
}
|
|
280
278
|
toString() {
|
|
281
|
-
|
|
279
|
+
var _a;
|
|
280
|
+
let temp = this.classSignature.toString();
|
|
281
|
+
let generic = (_a = this.realGenericTypes) === null || _a === void 0 ? void 0 : _a.join(',');
|
|
282
|
+
if (generic) {
|
|
283
|
+
temp += `<${generic}>`;
|
|
284
|
+
}
|
|
285
|
+
return temp;
|
|
282
286
|
}
|
|
283
287
|
}
|
|
284
288
|
exports.ClassType = ClassType;
|
|
@@ -352,10 +356,30 @@ class AliasType extends Type {
|
|
|
352
356
|
return ArkExport_1.ExportType.TYPE;
|
|
353
357
|
}
|
|
354
358
|
getModifiers() {
|
|
355
|
-
|
|
359
|
+
if (!this.modifiers) {
|
|
360
|
+
return 0;
|
|
361
|
+
}
|
|
362
|
+
return this.modifiers;
|
|
356
363
|
}
|
|
357
364
|
containsModifier(modifierType) {
|
|
358
|
-
|
|
365
|
+
if (!this.modifiers) {
|
|
366
|
+
return false;
|
|
367
|
+
}
|
|
368
|
+
return (this.modifiers & modifierType) === modifierType;
|
|
369
|
+
}
|
|
370
|
+
setModifiers(modifiers) {
|
|
371
|
+
if (modifiers !== 0) {
|
|
372
|
+
this.modifiers = modifiers;
|
|
373
|
+
}
|
|
374
|
+
}
|
|
375
|
+
addModifier(modifier) {
|
|
376
|
+
this.modifiers = this.getModifiers() | modifier;
|
|
377
|
+
}
|
|
378
|
+
removeModifier(modifier) {
|
|
379
|
+
if (!this.modifiers) {
|
|
380
|
+
return;
|
|
381
|
+
}
|
|
382
|
+
this.modifiers &= ArkBaseModel_1.MODIFIER_TYPE_MASK ^ modifier;
|
|
359
383
|
}
|
|
360
384
|
getSignature() {
|
|
361
385
|
return this.signature;
|
|
@@ -0,0 +1,15 @@
|
|
|
1
|
+
export declare enum ArkErrorCode {
|
|
2
|
+
OK = 0,
|
|
3
|
+
CLASS_INSTANCE_FIELD_UNDEFINDED = -1,
|
|
4
|
+
BB_MORE_THAN_ONE_BRANCH_RET_STMT = -2,
|
|
5
|
+
BB_BRANCH_RET_STMT_NOT_AT_END = -3,
|
|
6
|
+
CFG_NOT_FOUND_START_BLOCK = -4,
|
|
7
|
+
CFG_HAS_UNREACHABLE_BLOCK = -5,
|
|
8
|
+
METHOD_SIGNATURE_UNDEFINED = -6,
|
|
9
|
+
METHOD_SIGNATURE_LINE_UNMATCHED = -7
|
|
10
|
+
}
|
|
11
|
+
export interface ArkError {
|
|
12
|
+
errCode: ArkErrorCode;
|
|
13
|
+
errMsg?: string;
|
|
14
|
+
}
|
|
15
|
+
//# sourceMappingURL=ArkError.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"ArkError.d.ts","sourceRoot":"","sources":["../../../src/core/common/ArkError.ts"],"names":[],"mappings":"AAeA,oBAAY,YAAY;IACpB,EAAE,IAAI;IACN,+BAA+B,KAAK;IACpC,gCAAgC,KAAK;IACrC,6BAA6B,KAAK;IAClC,yBAAyB,KAAK;IAC9B,yBAAyB,KAAK;IAC9B,0BAA0B,KAAK;IAC/B,+BAA+B,KAAK;CACvC;AAED,MAAM,WAAW,QAAQ;IACrB,OAAO,EAAE,YAAY,CAAC;IACtB,MAAM,CAAC,EAAE,MAAM,CAAC;CACnB"}
|
|
@@ -0,0 +1,28 @@
|
|
|
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.ArkErrorCode = void 0;
|
|
18
|
+
var ArkErrorCode;
|
|
19
|
+
(function (ArkErrorCode) {
|
|
20
|
+
ArkErrorCode[ArkErrorCode["OK"] = 0] = "OK";
|
|
21
|
+
ArkErrorCode[ArkErrorCode["CLASS_INSTANCE_FIELD_UNDEFINDED"] = -1] = "CLASS_INSTANCE_FIELD_UNDEFINDED";
|
|
22
|
+
ArkErrorCode[ArkErrorCode["BB_MORE_THAN_ONE_BRANCH_RET_STMT"] = -2] = "BB_MORE_THAN_ONE_BRANCH_RET_STMT";
|
|
23
|
+
ArkErrorCode[ArkErrorCode["BB_BRANCH_RET_STMT_NOT_AT_END"] = -3] = "BB_BRANCH_RET_STMT_NOT_AT_END";
|
|
24
|
+
ArkErrorCode[ArkErrorCode["CFG_NOT_FOUND_START_BLOCK"] = -4] = "CFG_NOT_FOUND_START_BLOCK";
|
|
25
|
+
ArkErrorCode[ArkErrorCode["CFG_HAS_UNREACHABLE_BLOCK"] = -5] = "CFG_HAS_UNREACHABLE_BLOCK";
|
|
26
|
+
ArkErrorCode[ArkErrorCode["METHOD_SIGNATURE_UNDEFINED"] = -6] = "METHOD_SIGNATURE_UNDEFINED";
|
|
27
|
+
ArkErrorCode[ArkErrorCode["METHOD_SIGNATURE_LINE_UNMATCHED"] = -7] = "METHOD_SIGNATURE_LINE_UNMATCHED";
|
|
28
|
+
})(ArkErrorCode || (exports.ArkErrorCode = ArkErrorCode = {}));
|
|
@@ -17,7 +17,6 @@ export declare class DummyStmt extends Stmt {
|
|
|
17
17
|
toString(): string;
|
|
18
18
|
}
|
|
19
19
|
export declare class ArkIRTransformer {
|
|
20
|
-
private readonly tempLocalPrefix;
|
|
21
20
|
private tempLocalIndex;
|
|
22
21
|
private locals;
|
|
23
22
|
private sourceFile;
|
|
@@ -33,6 +32,7 @@ export declare class ArkIRTransformer {
|
|
|
33
32
|
getAliasTypeMap(): Map<string, [AliasType, AliasTypeDeclaration]>;
|
|
34
33
|
prebuildStmts(): Stmt[];
|
|
35
34
|
tsNodeToStmts(node: ts.Node): Stmt[];
|
|
35
|
+
private functionDeclarationToStmts;
|
|
36
36
|
private returnStatementToStmts;
|
|
37
37
|
private blockToStmts;
|
|
38
38
|
private expressionStatementToStmts;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"ArkIRTransformer.d.ts","sourceRoot":"","sources":["../../../src/core/common/ArkIRTransformer.ts"],"names":[],"mappings":"AAeA,OAAO,EAkBH,cAAc,EAGd,aAAa,EAChB,MAAM,cAAc,CAAC;AAUtB,OAAO,EAAE,KAAK,EAAE,MAAM,eAAe,CAAC;AACtC,OAAO,KAAK,EAAE,MAAM,iBAAiB,CAAC;AACtC,OAAO,EAAE,KAAK,EAAE,MAAM,eAAe,CAAC;AACtC,OAAO,EAOH,IAAI,EACP,MAAM,cAAc,CAAC;AACtB,OAAO,EACH,SAAS,EACT,oBAAoB,EAkBvB,MAAM,cAAc,CAAC;AAYtB,OAAO,EAAE,SAAS,EAAE,MAAM,oBAAoB,CAAC;AAc/C,OAAO,EAAE,YAAY,EAAmB,MAAM,kBAAkB,CAAC;
|
|
1
|
+
{"version":3,"file":"ArkIRTransformer.d.ts","sourceRoot":"","sources":["../../../src/core/common/ArkIRTransformer.ts"],"names":[],"mappings":"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"}
|
|
@@ -59,6 +59,8 @@ const Position_1 = require("../base/Position");
|
|
|
59
59
|
const ModelUtils_1 = require("./ModelUtils");
|
|
60
60
|
const Builtin_1 = require("./Builtin");
|
|
61
61
|
const TSConst_1 = require("./TSConst");
|
|
62
|
+
const builderUtils_1 = require("../model/builder/builderUtils");
|
|
63
|
+
const Const_1 = require("./Const");
|
|
62
64
|
const logger = logger_1.default.getLogger(logger_1.LOG_MODULE_TYPE.ARKANALYZER, 'ArkIRTransformer');
|
|
63
65
|
exports.DUMMY_INITIALIZER_STMT = 'dummyInitializerStmt';
|
|
64
66
|
class DummyStmt extends Stmt_1.Stmt {
|
|
@@ -73,7 +75,6 @@ class DummyStmt extends Stmt_1.Stmt {
|
|
|
73
75
|
exports.DummyStmt = DummyStmt;
|
|
74
76
|
class ArkIRTransformer {
|
|
75
77
|
constructor(sourceFile, declaringMethod) {
|
|
76
|
-
this.tempLocalPrefix = '$temp';
|
|
77
78
|
this.tempLocalIndex = 0;
|
|
78
79
|
this.locals = new Map();
|
|
79
80
|
this.inBuilderMethod = false;
|
|
@@ -154,9 +155,24 @@ class ArkIRTransformer {
|
|
|
154
155
|
else if (ts.isReturnStatement(node)) {
|
|
155
156
|
stmts = this.returnStatementToStmts(node);
|
|
156
157
|
}
|
|
158
|
+
else if (ts.isFunctionDeclaration(node)) {
|
|
159
|
+
stmts = this.functionDeclarationToStmts(node);
|
|
160
|
+
}
|
|
157
161
|
this.mapStmtsToTsStmt(stmts, node);
|
|
162
|
+
if (stmts.length > 0) {
|
|
163
|
+
IRUtils_1.IRUtils.setLeadingComments(stmts[0], node, this.sourceFile, this.declaringMethod.getDeclaringArkFile().getScene().getOptions());
|
|
164
|
+
}
|
|
158
165
|
return stmts;
|
|
159
166
|
}
|
|
167
|
+
functionDeclarationToStmts(functionDeclarationNode) {
|
|
168
|
+
const declaringClass = this.declaringMethod.getDeclaringArkClass();
|
|
169
|
+
const arkMethod = new ArkMethod_1.ArkMethod();
|
|
170
|
+
if (this.builderMethodContextFlag) {
|
|
171
|
+
ModelUtils_1.ModelUtils.implicitArkUIBuilderMethods.add(arkMethod);
|
|
172
|
+
}
|
|
173
|
+
(0, ArkMethodBuilder_1.buildArkMethodFromArkClass)(functionDeclarationNode, declaringClass, arkMethod, this.sourceFile, this.declaringMethod);
|
|
174
|
+
return [];
|
|
175
|
+
}
|
|
160
176
|
returnStatementToStmts(returnStatement) {
|
|
161
177
|
const stmts = [];
|
|
162
178
|
if (returnStatement.expression) {
|
|
@@ -224,6 +240,8 @@ class ArkIRTransformer {
|
|
|
224
240
|
const aliasName = typeAliasDeclaration.name.text;
|
|
225
241
|
const originalType = this.resolveTypeNode(typeAliasDeclaration.type);
|
|
226
242
|
const aliasType = new Type_1.AliasType(aliasName, originalType, new ArkSignature_1.LocalSignature(aliasName, this.declaringMethod.getSignature()));
|
|
243
|
+
const modifiers = typeAliasDeclaration.modifiers ? (0, builderUtils_1.buildModifiers)(typeAliasDeclaration) : 0;
|
|
244
|
+
aliasType.setModifiers(modifiers);
|
|
227
245
|
const sourceCode = typeAliasDeclaration.getText(this.sourceFile);
|
|
228
246
|
const aliasTypePosition = Position_1.LineColPosition.buildFromNode(typeAliasDeclaration, this.sourceFile);
|
|
229
247
|
const aliasTypeDeclaration = new Type_1.AliasTypeDeclaration(sourceCode, aliasTypePosition);
|
|
@@ -324,7 +342,7 @@ class ArkIRTransformer {
|
|
|
324
342
|
const elements = variableDeclaration.name.elements;
|
|
325
343
|
let index = 0;
|
|
326
344
|
for (const element of elements) {
|
|
327
|
-
const arrayRef = new Ref_1.ArkArrayRef(arrayItem,
|
|
345
|
+
const arrayRef = new Ref_1.ArkArrayRef(arrayItem, ValueUtil_1.ValueUtil.getOrCreateNumberConst(index));
|
|
328
346
|
const arrayRefPositions = [arrayItemPositions[0], ...arrayItemPositions, Position_1.FullPosition.DEFAULT];
|
|
329
347
|
const item = new Local_1.Local(element.getText(this.sourceFile));
|
|
330
348
|
const itemPosition = Position_1.FullPosition.buildFromNode(element, this.sourceFile);
|
|
@@ -618,9 +636,9 @@ class ArkIRTransformer {
|
|
|
618
636
|
const createViewArgPositionsAll = [newExprPositions];
|
|
619
637
|
if (ts.isEtsComponentExpression(componentExpression) && componentExpression.body) {
|
|
620
638
|
const anonymous = ts.factory.createArrowFunction([], [], [], undefined, undefined, componentExpression.body);
|
|
621
|
-
// @ts-
|
|
639
|
+
// @ts-expect-error: add pos info for the created ArrowFunction
|
|
622
640
|
anonymous.pos = componentExpression.body.pos;
|
|
623
|
-
// @ts-
|
|
641
|
+
// @ts-expect-error: add end info for the created ArrowFunction
|
|
624
642
|
anonymous.end = componentExpression.body.end;
|
|
625
643
|
const { value: builderMethod, valueOriginalPositions: builderMethodPositions, } = this.callableNodeToValueAndStmts(anonymous);
|
|
626
644
|
createViewArgs.push(builderMethod);
|
|
@@ -798,7 +816,6 @@ class ArkIRTransformer {
|
|
|
798
816
|
if (callExpression.typeArguments) {
|
|
799
817
|
realGenericTypes = [];
|
|
800
818
|
callExpression.typeArguments.forEach(typeArgument => {
|
|
801
|
-
// @ts-ignore
|
|
802
819
|
realGenericTypes.push(this.resolveTypeNode(typeArgument));
|
|
803
820
|
});
|
|
804
821
|
}
|
|
@@ -894,7 +911,6 @@ class ArkIRTransformer {
|
|
|
894
911
|
if (newExpression.typeArguments) {
|
|
895
912
|
realGenericTypes = [];
|
|
896
913
|
newExpression.typeArguments.forEach(typeArgument => {
|
|
897
|
-
// @ts-ignore
|
|
898
914
|
realGenericTypes.push(this.resolveTypeNode(typeArgument));
|
|
899
915
|
});
|
|
900
916
|
}
|
|
@@ -1172,7 +1188,7 @@ class ArkIRTransformer {
|
|
|
1172
1188
|
const elements = leftOpNode.elements;
|
|
1173
1189
|
let index = 0;
|
|
1174
1190
|
for (const element of elements) {
|
|
1175
|
-
const arrayRef = new Ref_1.ArkArrayRef(leftValue,
|
|
1191
|
+
const arrayRef = new Ref_1.ArkArrayRef(leftValue, ValueUtil_1.ValueUtil.getOrCreateNumberConst(index));
|
|
1176
1192
|
const arrayRefPositions = [leftPositions[0], ...leftPositions, Position_1.FullPosition.DEFAULT];
|
|
1177
1193
|
const item = new Local_1.Local(element.getText(this.sourceFile));
|
|
1178
1194
|
const itemPosition = Position_1.FullPosition.buildFromNode(element, this.sourceFile);
|
|
@@ -1432,7 +1448,7 @@ class ArkIRTransformer {
|
|
|
1432
1448
|
return local;
|
|
1433
1449
|
}
|
|
1434
1450
|
generateTempLocal(localType = Type_1.UnknownType.getInstance()) {
|
|
1435
|
-
const tempLocalName =
|
|
1451
|
+
const tempLocalName = Const_1.TEMP_LOCAL_PREFIX + this.tempLocalIndex;
|
|
1436
1452
|
this.tempLocalIndex++;
|
|
1437
1453
|
const tempLocal = new Local_1.Local(tempLocalName, localType);
|
|
1438
1454
|
this.locals.set(tempLocalName, tempLocal);
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"CfgBuilder.d.ts","sourceRoot":"","sources":["../../../src/core/common/CfgBuilder.ts"],"names":[],"mappings":"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
|
|
1
|
+
{"version":3,"file":"CfgBuilder.d.ts","sourceRoot":"","sources":["../../../src/core/common/CfgBuilder.ts"],"names":[],"mappings":"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"}
|
|
@@ -222,6 +222,11 @@ class CfgBuilder {
|
|
|
222
222
|
judgeLastType(s);
|
|
223
223
|
lastStatement = s;
|
|
224
224
|
}
|
|
225
|
+
else if (!this.declaringMethod.isDefaultArkMethod() && ts.isFunctionDeclaration(c)) {
|
|
226
|
+
let s = new StatementBuilder('functionDeclarationStatement', c.getText(this.sourceFile), c, scope.id);
|
|
227
|
+
judgeLastType(s);
|
|
228
|
+
lastStatement = s;
|
|
229
|
+
}
|
|
225
230
|
else if (ts.isReturnStatement(c)) {
|
|
226
231
|
let s = new StatementBuilder('returnStatement', c.getText(this.sourceFile), c, scope.id);
|
|
227
232
|
judgeLastType(s);
|
|
@@ -1,15 +1,20 @@
|
|
|
1
|
-
export declare const
|
|
2
|
-
export declare const
|
|
3
|
-
export declare const
|
|
4
|
-
export declare const
|
|
5
|
-
export declare const
|
|
6
|
-
export declare const
|
|
7
|
-
export declare const
|
|
1
|
+
export declare const NAME_DELIMITER = "$";
|
|
2
|
+
export declare const NAME_PREFIX = "%";
|
|
3
|
+
export declare const UNKNOWN_NAME = "unk";
|
|
4
|
+
export declare const DEFAULT_NAME = "dflt";
|
|
5
|
+
export declare const DEFAULT_ARK_CLASS_NAME: string;
|
|
6
|
+
export declare const DEFAULT_ARK_METHOD_NAME: string;
|
|
7
|
+
export declare const ANONYMOUS_CLASS_PREFIX: string;
|
|
8
|
+
export declare const ANONYMOUS_CLASS_DELIMITER = "$";
|
|
9
|
+
export declare const INSTANCE_INIT_METHOD_NAME: string;
|
|
10
|
+
export declare const STATIC_INIT_METHOD_NAME: string;
|
|
11
|
+
export declare const ANONYMOUS_METHOD_PREFIX: string;
|
|
8
12
|
export declare const CALL_SIGNATURE_NAME = "create";
|
|
9
|
-
export declare const UNKNOWN_PROJECT_NAME
|
|
10
|
-
export declare const UNKNOWN_FILE_NAME
|
|
11
|
-
export declare const UNKNOWN_NAMESPACE_NAME
|
|
13
|
+
export declare const UNKNOWN_PROJECT_NAME: string;
|
|
14
|
+
export declare const UNKNOWN_FILE_NAME: string;
|
|
15
|
+
export declare const UNKNOWN_NAMESPACE_NAME: string;
|
|
12
16
|
export declare const UNKNOWN_CLASS_NAME = "";
|
|
13
17
|
export declare const UNKNOWN_FIELD_NAME = "";
|
|
14
18
|
export declare const UNKNOWN_METHOD_NAME = "";
|
|
19
|
+
export declare const TEMP_LOCAL_PREFIX = "%";
|
|
15
20
|
//# sourceMappingURL=Const.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"Const.d.ts","sourceRoot":"","sources":["../../../src/core/common/Const.ts"],"names":[],"mappings":"AAgBA,eAAO,MAAM,sBAAsB,
|
|
1
|
+
{"version":3,"file":"Const.d.ts","sourceRoot":"","sources":["../../../src/core/common/Const.ts"],"names":[],"mappings":"AAgBA,eAAO,MAAM,cAAc,MAAM,CAAC;AAClC,eAAO,MAAM,WAAW,MAAM,CAAC;AAC/B,eAAO,MAAM,YAAY,QAAQ,CAAC;AAClC,eAAO,MAAM,YAAY,SAAS,CAAC;AAGnC,eAAO,MAAM,sBAAsB,QAA6B,CAAC;AACjE,eAAO,MAAM,uBAAuB,QAA6B,CAAC;AAClE,eAAO,MAAM,sBAAsB,QAAqB,CAAC;AACzD,eAAO,MAAM,yBAAyB,MAAiB,CAAC;AAGxD,eAAO,MAAM,yBAAyB,QAA2B,CAAC;AAClE,eAAO,MAAM,uBAAuB,QAA2B,CAAC;AAChE,eAAO,MAAM,uBAAuB,QAAqB,CAAC;AAC1D,eAAO,MAAM,mBAAmB,WAAW,CAAC;AAG5C,eAAO,MAAM,oBAAoB,QAA6B,CAAC;AAC/D,eAAO,MAAM,iBAAiB,QAA6B,CAAC;AAC5D,eAAO,MAAM,sBAAsB,QAA6B,CAAC;AACjE,eAAO,MAAM,kBAAkB,KAAK,CAAC;AACrC,eAAO,MAAM,kBAAkB,KAAK,CAAC;AACrC,eAAO,MAAM,mBAAmB,KAAK,CAAC;AAGtC,eAAO,MAAM,iBAAiB,MAAc,CAAC"}
|
package/lib/core/common/Const.js
CHANGED
|
@@ -14,21 +14,28 @@
|
|
|
14
14
|
* limitations under the License.
|
|
15
15
|
*/
|
|
16
16
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
17
|
-
exports.UNKNOWN_METHOD_NAME = exports.UNKNOWN_FIELD_NAME = exports.UNKNOWN_CLASS_NAME = exports.UNKNOWN_NAMESPACE_NAME = exports.UNKNOWN_FILE_NAME = exports.UNKNOWN_PROJECT_NAME = exports.CALL_SIGNATURE_NAME = exports.ANONYMOUS_METHOD_PREFIX = exports.STATIC_INIT_METHOD_NAME = exports.INSTANCE_INIT_METHOD_NAME = exports.ANONYMOUS_CLASS_DELIMITER = exports.ANONYMOUS_CLASS_PREFIX = exports.DEFAULT_ARK_METHOD_NAME = exports.DEFAULT_ARK_CLASS_NAME = void 0;
|
|
17
|
+
exports.TEMP_LOCAL_PREFIX = exports.UNKNOWN_METHOD_NAME = exports.UNKNOWN_FIELD_NAME = exports.UNKNOWN_CLASS_NAME = exports.UNKNOWN_NAMESPACE_NAME = exports.UNKNOWN_FILE_NAME = exports.UNKNOWN_PROJECT_NAME = exports.CALL_SIGNATURE_NAME = exports.ANONYMOUS_METHOD_PREFIX = exports.STATIC_INIT_METHOD_NAME = exports.INSTANCE_INIT_METHOD_NAME = exports.ANONYMOUS_CLASS_DELIMITER = exports.ANONYMOUS_CLASS_PREFIX = exports.DEFAULT_ARK_METHOD_NAME = exports.DEFAULT_ARK_CLASS_NAME = exports.DEFAULT_NAME = exports.UNKNOWN_NAME = exports.NAME_PREFIX = exports.NAME_DELIMITER = void 0;
|
|
18
|
+
// names
|
|
19
|
+
exports.NAME_DELIMITER = '$';
|
|
20
|
+
exports.NAME_PREFIX = '%';
|
|
21
|
+
exports.UNKNOWN_NAME = 'unk';
|
|
22
|
+
exports.DEFAULT_NAME = 'dflt';
|
|
18
23
|
// ArkClass const
|
|
19
|
-
exports.DEFAULT_ARK_CLASS_NAME =
|
|
20
|
-
exports.DEFAULT_ARK_METHOD_NAME =
|
|
21
|
-
exports.ANONYMOUS_CLASS_PREFIX = '
|
|
22
|
-
exports.ANONYMOUS_CLASS_DELIMITER =
|
|
24
|
+
exports.DEFAULT_ARK_CLASS_NAME = exports.NAME_PREFIX + exports.DEFAULT_NAME;
|
|
25
|
+
exports.DEFAULT_ARK_METHOD_NAME = exports.NAME_PREFIX + exports.DEFAULT_NAME;
|
|
26
|
+
exports.ANONYMOUS_CLASS_PREFIX = exports.NAME_PREFIX + 'AC';
|
|
27
|
+
exports.ANONYMOUS_CLASS_DELIMITER = exports.NAME_DELIMITER;
|
|
23
28
|
// ArkMethod const
|
|
24
|
-
exports.INSTANCE_INIT_METHOD_NAME = '
|
|
25
|
-
exports.STATIC_INIT_METHOD_NAME = '
|
|
26
|
-
exports.ANONYMOUS_METHOD_PREFIX = '
|
|
29
|
+
exports.INSTANCE_INIT_METHOD_NAME = exports.NAME_PREFIX + 'instInit';
|
|
30
|
+
exports.STATIC_INIT_METHOD_NAME = exports.NAME_PREFIX + 'statInit';
|
|
31
|
+
exports.ANONYMOUS_METHOD_PREFIX = exports.NAME_PREFIX + 'AM';
|
|
27
32
|
exports.CALL_SIGNATURE_NAME = 'create';
|
|
28
33
|
// ArkSignature const
|
|
29
|
-
exports.UNKNOWN_PROJECT_NAME =
|
|
30
|
-
exports.UNKNOWN_FILE_NAME =
|
|
31
|
-
exports.UNKNOWN_NAMESPACE_NAME =
|
|
34
|
+
exports.UNKNOWN_PROJECT_NAME = exports.NAME_PREFIX + exports.UNKNOWN_NAME;
|
|
35
|
+
exports.UNKNOWN_FILE_NAME = exports.NAME_PREFIX + exports.UNKNOWN_NAME;
|
|
36
|
+
exports.UNKNOWN_NAMESPACE_NAME = exports.NAME_PREFIX + exports.UNKNOWN_NAME;
|
|
32
37
|
exports.UNKNOWN_CLASS_NAME = ''; // temp for being compatible with existing type inference
|
|
33
38
|
exports.UNKNOWN_FIELD_NAME = ''; // temp for being compatible with existing type inference
|
|
34
39
|
exports.UNKNOWN_METHOD_NAME = ''; // temp for being compatible with existing type inference
|
|
40
|
+
// IR const
|
|
41
|
+
exports.TEMP_LOCAL_PREFIX = exports.NAME_PREFIX;
|
|
@@ -3,7 +3,7 @@ import { ArkClass } from '../model/ArkClass';
|
|
|
3
3
|
import { ArkMethod } from '../model/ArkMethod';
|
|
4
4
|
/**
|
|
5
5
|
收集所有的onCreate,onStart等函数,构造一个虚拟函数,具体为:
|
|
6
|
-
|
|
6
|
+
%statInit()
|
|
7
7
|
...
|
|
8
8
|
count = 0
|
|
9
9
|
while (true) {
|
|
@@ -40,6 +40,7 @@ export declare class DummyMainCreater {
|
|
|
40
40
|
private addCfg2Stmt;
|
|
41
41
|
getDummyMain(): ArkMethod;
|
|
42
42
|
private getEntryMethodsFromComponents;
|
|
43
|
+
private classInheritsAbility;
|
|
43
44
|
getMethodsFromAllAbilities(): ArkMethod[];
|
|
44
45
|
getEntryMethodsFromModuleJson5(): ArkMethod[];
|
|
45
46
|
getAbilitiesByParseModuleJson(modulePath: string): ArkClass[];
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"DummyMainCreater.d.ts","sourceRoot":"","sources":["../../../src/core/common/DummyMainCreater.ts"],"names":[],"mappings":"AAiBA,OAAO,EAAE,KAAK,EAAE,MAAM,aAAa,CAAC;
|
|
1
|
+
{"version":3,"file":"DummyMainCreater.d.ts","sourceRoot":"","sources":["../../../src/core/common/DummyMainCreater.ts"],"names":[],"mappings":"AAiBA,OAAO,EAAE,KAAK,EAAE,MAAM,aAAa,CAAC;AAsBpC,OAAO,EAAE,QAAQ,EAAE,MAAM,mBAAmB,CAAC;AAE7C,OAAO,EAAE,SAAS,EAAE,MAAM,oBAAoB,CAAC;AAY/C;;;;;;;;;;;;;;;;;;;;;;GAsBG;AAEH,qBAAa,gBAAgB;IAEzB,OAAO,CAAC,YAAY,CAAmB;IACvC,OAAO,CAAC,aAAa,CAA2C;IAChE,OAAO,CAAC,SAAS,CAA8B;IAC/C,OAAO,CAAC,KAAK,CAAQ;IACrB,OAAO,CAAC,cAAc,CAAa;IACnC,OAAO,CAAC,YAAY,CAAkC;gBAE1C,KAAK,EAAE,KAAK;IAUxB,OAAO,CAAC,iBAAiB;IASlB,eAAe,CAAC,OAAO,EAAE,SAAS,EAAE,GAAG,IAAI;IAI3C,eAAe,IAAI,IAAI;IAiD9B,OAAO,CAAC,kBAAkB;IAkI1B,OAAO,CAAC,wBAAwB;IAsBhC,OAAO,CAAC,WAAW;IAYZ,YAAY,IAAI,SAAS;IAIhC,OAAO,CAAC,6BAA6B;IAmBrC,OAAO,CAAC,oBAAoB;IAYrB,0BAA0B,IAAI,SAAS,EAAE;IAUzC,8BAA8B,IAAI,SAAS,EAAE;IAkD7C,6BAA6B,CAAC,UAAU,EAAE,MAAM,GAAG,QAAQ,EAAE;IA2B7D,kBAAkB,IAAI,SAAS,EAAE;CAiB3C"}
|
|
@@ -61,11 +61,12 @@ const ArkSignatureBuilder_1 = require("../model/builder/ArkSignatureBuilder");
|
|
|
61
61
|
const TSConst_1 = require("./TSConst");
|
|
62
62
|
const json5parser_1 = require("../../utils/json5parser");
|
|
63
63
|
const logger_1 = __importStar(require("../../utils/logger"));
|
|
64
|
-
const
|
|
64
|
+
const ArkMethodBuilder_1 = require("../model/builder/ArkMethodBuilder");
|
|
65
|
+
const ValueUtil_1 = require("./ValueUtil");
|
|
65
66
|
const logger = logger_1.default.getLogger(logger_1.LOG_MODULE_TYPE.ARKANALYZER, 'Scene');
|
|
66
67
|
/**
|
|
67
68
|
收集所有的onCreate,onStart等函数,构造一个虚拟函数,具体为:
|
|
68
|
-
|
|
69
|
+
%statInit()
|
|
69
70
|
...
|
|
70
71
|
count = 0
|
|
71
72
|
while (true) {
|
|
@@ -102,7 +103,7 @@ class DummyMainCreater {
|
|
|
102
103
|
this.buildBuiltInClass();
|
|
103
104
|
}
|
|
104
105
|
buildBuiltInClass() {
|
|
105
|
-
for (const sdkFile of this.scene.
|
|
106
|
+
for (const sdkFile of this.scene.getSdkArkFiles()) {
|
|
106
107
|
if (sdkFile.getName() === 'api\\@ohos.app.ability.Want.d.ts') {
|
|
107
108
|
const arkClass = sdkFile.getClassWithName('Want');
|
|
108
109
|
this.builtInClass.set('Want', arkClass);
|
|
@@ -118,7 +119,7 @@ class DummyMainCreater {
|
|
|
118
119
|
dummyMainFile.setScene(this.scene);
|
|
119
120
|
const dummyMainFileSignature = new ArkSignature_1.FileSignature(this.scene.getProjectName(), '@dummyFile');
|
|
120
121
|
dummyMainFile.setFileSignature(dummyMainFileSignature);
|
|
121
|
-
this.scene.
|
|
122
|
+
this.scene.setFile(dummyMainFile);
|
|
122
123
|
const dummyMainClass = new ArkClass_1.ArkClass();
|
|
123
124
|
dummyMainClass.setDeclaringArkFile(dummyMainFile);
|
|
124
125
|
const dummyMainClassSignature = new ArkSignature_1.ClassSignature('@dummyClass', dummyMainClass.getDeclaringArkFile().getFileSignature(), ((_a = dummyMainClass.getDeclaringArkNamespace()) === null || _a === void 0 ? void 0 : _a.getSignature()) || null);
|
|
@@ -128,8 +129,9 @@ class DummyMainCreater {
|
|
|
128
129
|
this.dummyMain.setDeclaringArkClass(dummyMainClass);
|
|
129
130
|
const methodSubSignature = ArkSignatureBuilder_1.ArkSignatureBuilder.buildMethodSubSignatureFromMethodName('@dummyMain');
|
|
130
131
|
const methodSignature = new ArkSignature_1.MethodSignature(this.dummyMain.getDeclaringArkClass().getSignature(), methodSubSignature);
|
|
131
|
-
this.dummyMain.
|
|
132
|
-
|
|
132
|
+
this.dummyMain.setImplementationSignature(methodSignature);
|
|
133
|
+
this.dummyMain.setLineCol(0);
|
|
134
|
+
(0, ArkMethodBuilder_1.checkAndUpdateMethod)(this.dummyMain, dummyMainClass);
|
|
133
135
|
dummyMainClass.addMethod(this.dummyMain);
|
|
134
136
|
for (const method of this.entryMethods) {
|
|
135
137
|
if (method.getDeclaringArkClass().isDefaultArkClass()) {
|
|
@@ -162,7 +164,6 @@ class DummyMainCreater {
|
|
|
162
164
|
const dummyCfg = new Cfg_1.Cfg();
|
|
163
165
|
dummyCfg.setDeclaringMethod(this.dummyMain);
|
|
164
166
|
const firstBlock = new BasicBlock_1.BasicBlock();
|
|
165
|
-
dummyCfg.addBlock(firstBlock);
|
|
166
167
|
let isStartingStmt = true;
|
|
167
168
|
for (const method of this.scene.getStaticInitMethods()) {
|
|
168
169
|
const staticInvokeExpr = new Expr_1.ArkStaticInvokeExpr(method.getSignature(), []);
|
|
@@ -193,15 +194,17 @@ class DummyMainCreater {
|
|
|
193
194
|
}
|
|
194
195
|
}
|
|
195
196
|
const countLocal = new Local_1.Local('count', Type_1.NumberType.getInstance());
|
|
196
|
-
const zero =
|
|
197
|
+
const zero = ValueUtil_1.ValueUtil.getOrCreateNumberConst(0);
|
|
197
198
|
const countAssignStmt = new Stmt_1.ArkAssignStmt(countLocal, zero);
|
|
198
|
-
const truE =
|
|
199
|
+
const truE = ValueUtil_1.ValueUtil.getBooleanConstant(true);
|
|
199
200
|
const conditionTrue = new Expr_1.ArkConditionExpr(truE, zero, Expr_1.RelationalBinaryOperator.Equality);
|
|
200
201
|
const whileStmt = new Stmt_1.ArkIfStmt(conditionTrue);
|
|
201
202
|
firstBlock.addStmt(countAssignStmt);
|
|
203
|
+
dummyCfg.addBlock(firstBlock);
|
|
204
|
+
dummyCfg.setStartingStmt(firstBlock.getStmts()[0]);
|
|
202
205
|
const whileBlock = new BasicBlock_1.BasicBlock();
|
|
203
|
-
dummyCfg.addBlock(whileBlock);
|
|
204
206
|
whileBlock.addStmt(whileStmt);
|
|
207
|
+
dummyCfg.addBlock(whileBlock);
|
|
205
208
|
firstBlock.addSuccessorBlock(whileBlock);
|
|
206
209
|
whileBlock.addPredecessorBlock(firstBlock);
|
|
207
210
|
let lastBlocks = [whileBlock];
|
|
@@ -211,8 +214,8 @@ class DummyMainCreater {
|
|
|
211
214
|
const condition = new Expr_1.ArkConditionExpr(countLocal, new Constant_1.Constant(count.toString(), Type_1.NumberType.getInstance()), Expr_1.RelationalBinaryOperator.Equality);
|
|
212
215
|
const ifStmt = new Stmt_1.ArkIfStmt(condition);
|
|
213
216
|
const ifBlock = new BasicBlock_1.BasicBlock();
|
|
214
|
-
dummyCfg.addBlock(ifBlock);
|
|
215
217
|
ifBlock.addStmt(ifStmt);
|
|
218
|
+
dummyCfg.addBlock(ifBlock);
|
|
216
219
|
for (const block of lastBlocks) {
|
|
217
220
|
ifBlock.addPredecessorBlock(block);
|
|
218
221
|
block.addSuccessorBlock(ifBlock);
|
|
@@ -260,8 +263,8 @@ class DummyMainCreater {
|
|
|
260
263
|
invokeExpr = new Expr_1.ArkStaticInvokeExpr(method.getSignature(), paramLocals);
|
|
261
264
|
}
|
|
262
265
|
const invokeStmt = new Stmt_1.ArkInvokeStmt(invokeExpr);
|
|
263
|
-
dummyCfg.addBlock(invokeBlock);
|
|
264
266
|
invokeBlock.addStmt(invokeStmt);
|
|
267
|
+
dummyCfg.addBlock(invokeBlock);
|
|
265
268
|
ifBlock.addSuccessorBlock(invokeBlock);
|
|
266
269
|
invokeBlock.addPredecessorBlock(ifBlock);
|
|
267
270
|
lastBlocks = [ifBlock, invokeBlock];
|
|
@@ -272,8 +275,8 @@ class DummyMainCreater {
|
|
|
272
275
|
}
|
|
273
276
|
const returnStmt = new Stmt_1.ArkReturnVoidStmt();
|
|
274
277
|
const returnBlock = new BasicBlock_1.BasicBlock();
|
|
275
|
-
dummyCfg.addBlock(returnBlock);
|
|
276
278
|
returnBlock.addStmt(returnStmt);
|
|
279
|
+
dummyCfg.addBlock(returnBlock);
|
|
277
280
|
whileBlock.addSuccessorBlock(returnBlock);
|
|
278
281
|
returnBlock.addPredecessorBlock(whileBlock);
|
|
279
282
|
return dummyCfg;
|
|
@@ -333,11 +336,21 @@ class DummyMainCreater {
|
|
|
333
336
|
});
|
|
334
337
|
return methods;
|
|
335
338
|
}
|
|
336
|
-
|
|
339
|
+
classInheritsAbility(arkClass) {
|
|
337
340
|
const ABILITY_BASE_CLASSES = ['UIExtensionAbility', 'Ability', 'FormExtensionAbility', 'UIAbility', 'BackupExtensionAbility'];
|
|
341
|
+
let superClass = arkClass.getSuperClass();
|
|
342
|
+
while (superClass) {
|
|
343
|
+
if (ABILITY_BASE_CLASSES.includes(superClass.getName())) {
|
|
344
|
+
return true;
|
|
345
|
+
}
|
|
346
|
+
superClass = superClass.getSuperClass();
|
|
347
|
+
}
|
|
348
|
+
return false;
|
|
349
|
+
}
|
|
350
|
+
getMethodsFromAllAbilities() {
|
|
338
351
|
let methods = [];
|
|
339
352
|
this.scene.getClasses()
|
|
340
|
-
.filter(cls =>
|
|
353
|
+
.filter(cls => this.classInheritsAbility(cls))
|
|
341
354
|
.forEach(cls => {
|
|
342
355
|
methods.push(...cls.getMethods().filter(mtd => entryMethodUtils_1.LIFECYCLE_METHOD_NAME.includes(mtd.getName())));
|
|
343
356
|
});
|
|
@@ -62,4 +62,5 @@ export declare const COMPONENT_COMMON: string;
|
|
|
62
62
|
export declare const COMPONENT_INSTANCE: string;
|
|
63
63
|
export declare const API_INTERNAL: string;
|
|
64
64
|
export declare const COMPONENT_ATTRIBUTE: string;
|
|
65
|
+
export declare const CALL_BACK: string;
|
|
65
66
|
//# sourceMappingURL=EtsConst.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"EtsConst.d.ts","sourceRoot":"","sources":["../../../src/core/common/EtsConst.ts"],"names":[],"mappings":"AAiBA,eAAO,MAAM,oBAAoB;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;CAoyBhC,CAAC;AAEF,eAAO,MAAM,wBAAwB,EAAE,GAAG,CAAC,MAAM,CAAgD,CAAC;AAElG,eAAO,MAAM,wBAAwB,EAAE,GAAG,CAAC,MAAM,CAqD/C,CAAC;AAEH,eAAO,MAAM,mBAAmB,EAAE,GAAG,CAAC,MAAM,CAAqE,CAAC;AAClH,eAAO,MAAM,eAAe,EAAE,MAAgB,CAAC;AAC/C,eAAO,MAAM,iBAAiB,EAAE,MAAkB,CAAC;AACnD,eAAO,MAAM,uBAAuB,EAAE,MAAuB,CAAC;AAE9D,wBAAgB,oBAAoB,CAAC,IAAI,EAAE,MAAM,GAAG,OAAO,CAE1D;AAED,wBAAgB,oBAAoB,CAAC,IAAI,EAAE,MAAM,GAAG,OAAO,CAE1D;AAED,wBAAgB,uBAAuB,CAAC,IAAI,EAAE,MAAM,GAAG,OAAO,CAE7D;AAED,eAAO,MAAM,yBAAyB,EAAE,MAAiB,CAAC;AAC1D,eAAO,MAAM,sBAAsB,EAAE,MAAc,CAAC;AACpD,eAAO,MAAM,oBAAoB,EAAE,MAAe,CAAC;AACnD,eAAO,MAAM,gBAAgB,EAAE,MAAiB,CAAC;AACjD,eAAO,MAAM,kBAAkB,EAAE,MAAkB,CAAC;AACpD,eAAO,MAAM,uBAAuB,EAAE,MAAsB,CAAC;AAE7D,eAAO,MAAM,YAAY,EAAE,MAAa,CAAC;AACzC,eAAO,MAAM,mBAAmB,EAAE,MAAmB,CAAC;AACtD,eAAO,MAAM,yBAAyB,EAAE,MAAiB,CAAC;AAC1D,eAAO,MAAM,wBAAwB,EAAE,MAAgB,CAAC;AAExD,eAAO,MAAM,2BAA2B,EAAE,GAAG,CAAC,MAAM,CAKlD,CAAC;AAEH,eAAO,MAAM,cAAc,EAAE,MAA0C,CAAC;AACxE,eAAO,MAAM,gBAAgB,EAAE,MAAiB,CAAC;AACjD,eAAO,MAAM,kBAAkB,EAAE,MAAmB,CAAC;AACrD,eAAO,MAAM,YAAY,EAAE,MAA0C,CAAC;AAEtE,eAAO,MAAM,mBAAmB,EAAE,MAAoB,CAAC"}
|
|
1
|
+
{"version":3,"file":"EtsConst.d.ts","sourceRoot":"","sources":["../../../src/core/common/EtsConst.ts"],"names":[],"mappings":"AAiBA,eAAO,MAAM,oBAAoB;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;CAoyBhC,CAAC;AAEF,eAAO,MAAM,wBAAwB,EAAE,GAAG,CAAC,MAAM,CAAgD,CAAC;AAElG,eAAO,MAAM,wBAAwB,EAAE,GAAG,CAAC,MAAM,CAqD/C,CAAC;AAEH,eAAO,MAAM,mBAAmB,EAAE,GAAG,CAAC,MAAM,CAAqE,CAAC;AAClH,eAAO,MAAM,eAAe,EAAE,MAAgB,CAAC;AAC/C,eAAO,MAAM,iBAAiB,EAAE,MAAkB,CAAC;AACnD,eAAO,MAAM,uBAAuB,EAAE,MAAuB,CAAC;AAE9D,wBAAgB,oBAAoB,CAAC,IAAI,EAAE,MAAM,GAAG,OAAO,CAE1D;AAED,wBAAgB,oBAAoB,CAAC,IAAI,EAAE,MAAM,GAAG,OAAO,CAE1D;AAED,wBAAgB,uBAAuB,CAAC,IAAI,EAAE,MAAM,GAAG,OAAO,CAE7D;AAED,eAAO,MAAM,yBAAyB,EAAE,MAAiB,CAAC;AAC1D,eAAO,MAAM,sBAAsB,EAAE,MAAc,CAAC;AACpD,eAAO,MAAM,oBAAoB,EAAE,MAAe,CAAC;AACnD,eAAO,MAAM,gBAAgB,EAAE,MAAiB,CAAC;AACjD,eAAO,MAAM,kBAAkB,EAAE,MAAkB,CAAC;AACpD,eAAO,MAAM,uBAAuB,EAAE,MAAsB,CAAC;AAE7D,eAAO,MAAM,YAAY,EAAE,MAAa,CAAC;AACzC,eAAO,MAAM,mBAAmB,EAAE,MAAmB,CAAC;AACtD,eAAO,MAAM,yBAAyB,EAAE,MAAiB,CAAC;AAC1D,eAAO,MAAM,wBAAwB,EAAE,MAAgB,CAAC;AAExD,eAAO,MAAM,2BAA2B,EAAE,GAAG,CAAC,MAAM,CAKlD,CAAC;AAEH,eAAO,MAAM,cAAc,EAAE,MAA0C,CAAC;AACxE,eAAO,MAAM,gBAAgB,EAAE,MAAiB,CAAC;AACjD,eAAO,MAAM,kBAAkB,EAAE,MAAmB,CAAC;AACrD,eAAO,MAAM,YAAY,EAAE,MAA0C,CAAC;AAEtE,eAAO,MAAM,mBAAmB,EAAE,MAAoB,CAAC;AACvD,eAAO,MAAM,SAAS,EAAE,MAAmB,CAAC"}
|
|
@@ -17,7 +17,7 @@ var __importDefault = (this && this.__importDefault) || function (mod) {
|
|
|
17
17
|
return (mod && mod.__esModule) ? mod : { "default": mod };
|
|
18
18
|
};
|
|
19
19
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
20
|
-
exports.COMPONENT_ATTRIBUTE = exports.API_INTERNAL = exports.COMPONENT_INSTANCE = exports.COMPONENT_COMMON = exports.COMPONENT_PATH = exports.SPECIAL_CONTAINER_COMPONENT = exports.COMPONENT_BUILD_FUNCTION = exports.COMPONENT_BRANCH_FUNCTION = exports.COMPONENT_IF_BRANCH = exports.COMPONENT_IF = exports.COMPONENT_LAZY_FOR_EACH = exports.COMPONENT_FOR_EACH = exports.COMPONENT_REPEAT = exports.COMPONENT_CUSTOMVIEW = exports.COMPONENT_POP_FUNCTION = exports.COMPONENT_CREATE_FUNCTION = exports.isEtsContainerComponent = exports.isEtsSystemComponent = exports.isEtsAtomicComponent = exports.BUILDER_PARAM_DECORATOR = exports.BUILDER_DECORATOR = exports.ENTRY_DECORATOR = exports.COMPONENT_DECORATOR = exports.BUILDIN_ATOMIC_COMPONENT = exports.BUILDIN_SYSTEM_COMPONENT = exports.ETS_COMPILER_OPTIONS = void 0;
|
|
20
|
+
exports.CALL_BACK = exports.COMPONENT_ATTRIBUTE = exports.API_INTERNAL = exports.COMPONENT_INSTANCE = exports.COMPONENT_COMMON = exports.COMPONENT_PATH = exports.SPECIAL_CONTAINER_COMPONENT = exports.COMPONENT_BUILD_FUNCTION = exports.COMPONENT_BRANCH_FUNCTION = exports.COMPONENT_IF_BRANCH = exports.COMPONENT_IF = exports.COMPONENT_LAZY_FOR_EACH = exports.COMPONENT_FOR_EACH = exports.COMPONENT_REPEAT = exports.COMPONENT_CUSTOMVIEW = exports.COMPONENT_POP_FUNCTION = exports.COMPONENT_CREATE_FUNCTION = exports.isEtsContainerComponent = exports.isEtsSystemComponent = exports.isEtsAtomicComponent = exports.BUILDER_PARAM_DECORATOR = exports.BUILDER_DECORATOR = exports.ENTRY_DECORATOR = exports.COMPONENT_DECORATOR = exports.BUILDIN_ATOMIC_COMPONENT = exports.BUILDIN_SYSTEM_COMPONENT = exports.ETS_COMPILER_OPTIONS = void 0;
|
|
21
21
|
const path_1 = __importDefault(require("path"));
|
|
22
22
|
exports.ETS_COMPILER_OPTIONS = {
|
|
23
23
|
ets: {
|
|
@@ -916,3 +916,4 @@ exports.COMPONENT_COMMON = 'Common';
|
|
|
916
916
|
exports.COMPONENT_INSTANCE = 'Instance';
|
|
917
917
|
exports.API_INTERNAL = path_1.default.sep + '@internal' + path_1.default.sep;
|
|
918
918
|
exports.COMPONENT_ATTRIBUTE = 'Attribute';
|
|
919
|
+
exports.CALL_BACK = 'Callback';
|