arkanalyzer 1.0.29 → 1.0.31
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/Scene.d.ts +7 -0
- package/lib/Scene.d.ts.map +1 -1
- package/lib/Scene.js +196 -173
- package/lib/VFG/builder/DVFGBuilder.d.ts.map +1 -1
- package/lib/VFG/builder/DVFGBuilder.js +11 -6
- package/lib/callgraph/algorithm/AbstractAnalysis.d.ts +3 -1
- package/lib/callgraph/algorithm/AbstractAnalysis.d.ts.map +1 -1
- package/lib/callgraph/algorithm/AbstractAnalysis.js +18 -10
- package/lib/callgraph/algorithm/RapidTypeAnalysis.d.ts.map +1 -1
- package/lib/callgraph/algorithm/RapidTypeAnalysis.js +8 -7
- package/lib/callgraph/common/Statistics.d.ts.map +1 -1
- package/lib/callgraph/common/Statistics.js +25 -24
- package/lib/callgraph/model/CallGraph.d.ts.map +1 -1
- package/lib/callgraph/model/CallGraph.js +0 -1
- package/lib/callgraph/pointerAnalysis/Context.d.ts.map +1 -1
- package/lib/callgraph/pointerAnalysis/Context.js +0 -1
- package/lib/callgraph/pointerAnalysis/PTAUtils.d.ts +9 -3
- package/lib/callgraph/pointerAnalysis/PTAUtils.d.ts.map +1 -1
- package/lib/callgraph/pointerAnalysis/PTAUtils.js +32 -18
- package/lib/callgraph/pointerAnalysis/Pag.d.ts +17 -1
- package/lib/callgraph/pointerAnalysis/Pag.d.ts.map +1 -1
- package/lib/callgraph/pointerAnalysis/Pag.js +74 -27
- package/lib/callgraph/pointerAnalysis/PagBuilder.d.ts +51 -18
- package/lib/callgraph/pointerAnalysis/PagBuilder.d.ts.map +1 -1
- package/lib/callgraph/pointerAnalysis/PagBuilder.js +533 -346
- package/lib/callgraph/pointerAnalysis/PointerAnalysis.d.ts.map +1 -1
- package/lib/callgraph/pointerAnalysis/PointerAnalysis.js +15 -14
- package/lib/core/base/Local.js +2 -2
- package/lib/core/base/Type.d.ts +10 -1
- package/lib/core/base/Type.d.ts.map +1 -1
- package/lib/core/base/Type.js +18 -1
- package/lib/core/common/ArkValueTransformer.d.ts.map +1 -1
- package/lib/core/common/ArkValueTransformer.js +3 -1
- package/lib/core/common/DummyMainCreater.d.ts.map +1 -1
- package/lib/core/common/DummyMainCreater.js +17 -20
- package/lib/core/common/IRInference.d.ts.map +1 -1
- package/lib/core/common/IRInference.js +21 -12
- package/lib/core/common/TypeInference.d.ts +1 -0
- package/lib/core/common/TypeInference.d.ts.map +1 -1
- package/lib/core/common/TypeInference.js +30 -4
- package/lib/core/dataflow/DataflowSolver.d.ts +1 -0
- package/lib/core/dataflow/DataflowSolver.d.ts.map +1 -1
- package/lib/core/dataflow/DataflowSolver.js +21 -17
- package/lib/core/dataflow/ReachingDef.d.ts.map +1 -1
- package/lib/core/dataflow/ReachingDef.js +6 -0
- package/lib/core/dataflow/UndefinedVariable.d.ts.map +1 -1
- package/lib/core/dataflow/UndefinedVariable.js +0 -25
- package/lib/core/graph/Cfg.d.ts +1 -0
- package/lib/core/graph/Cfg.d.ts.map +1 -1
- package/lib/core/graph/Cfg.js +49 -45
- package/lib/core/graph/DominanceFinder.js +19 -19
- package/lib/core/graph/builder/ViewTreeBuilder.d.ts +1 -0
- package/lib/core/graph/builder/ViewTreeBuilder.d.ts.map +1 -1
- package/lib/core/graph/builder/ViewTreeBuilder.js +34 -31
- package/lib/core/model/ArkMethod.d.ts.map +1 -1
- package/lib/core/model/ArkMethod.js +13 -6
- package/lib/core/model/builder/builderUtils.d.ts.map +1 -1
- package/lib/core/model/builder/builderUtils.js +72 -63
- package/lib/save/serializeArkIR.d.ts.map +1 -1
- package/lib/save/serializeArkIR.js +11 -24
- package/lib/save/source/SourceBody.js +10 -10
- package/lib/save/source/SourceFilePrinter.d.ts +1 -0
- package/lib/save/source/SourceFilePrinter.d.ts.map +1 -1
- package/lib/save/source/SourceFilePrinter.js +11 -8
- package/lib/save/source/SourceNamespace.d.ts +1 -0
- package/lib/save/source/SourceNamespace.d.ts.map +1 -1
- package/lib/save/source/SourceNamespace.js +11 -8
- package/lib/save/source/SourceStmt.d.ts +1 -0
- package/lib/save/source/SourceStmt.d.ts.map +1 -1
- package/lib/save/source/SourceStmt.js +37 -35
- package/lib/save/source/SourceTransformer.d.ts +2 -0
- package/lib/save/source/SourceTransformer.d.ts.map +1 -1
- package/lib/save/source/SourceTransformer.js +64 -54
- package/lib/transformer/StaticSingleAssignmentFormer.d.ts +5 -0
- package/lib/transformer/StaticSingleAssignmentFormer.d.ts.map +1 -1
- package/lib/transformer/StaticSingleAssignmentFormer.js +119 -101
- package/lib/utils/CfgStructualAnalysis.d.ts +1 -0
- package/lib/utils/CfgStructualAnalysis.d.ts.map +1 -1
- package/lib/utils/CfgStructualAnalysis.js +28 -24
- package/lib/utils/FileUtils.d.ts.map +1 -1
- package/lib/utils/FileUtils.js +14 -12
- package/lib/utils/callGraphUtils.d.ts.map +1 -1
- package/lib/utils/callGraphUtils.js +26 -23
- package/lib/utils/entryMethodUtils.d.ts.map +1 -1
- package/lib/utils/entryMethodUtils.js +11 -8
- package/package.json +2 -2
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"SourceFilePrinter.d.ts","sourceRoot":"","sources":["../../../src/save/source/SourceFilePrinter.ts"],"names":[],"mappings":"AAkCA,OAAO,EAAE,OAAO,EAAE,MAAM,0BAA0B,CAAC;AACnD,OAAO,EAAE,IAAI,EAAE,MAAM,qBAAqB,CAAC;AAO3C,OAAO,EAAE,OAAO,EAAE,MAAM,YAAY,CAAC;
|
|
1
|
+
{"version":3,"file":"SourceFilePrinter.d.ts","sourceRoot":"","sources":["../../../src/save/source/SourceFilePrinter.ts"],"names":[],"mappings":"AAkCA,OAAO,EAAE,OAAO,EAAE,MAAM,0BAA0B,CAAC;AACnD,OAAO,EAAE,IAAI,EAAE,MAAM,qBAAqB,CAAC;AAO3C,OAAO,EAAE,OAAO,EAAE,MAAM,YAAY,CAAC;AAGrC;;GAEG;AACH,qBAAa,iBAAkB,SAAQ,OAAO;IAC1C,OAAO,EAAE,OAAO,CAAC;IACjB,KAAK,EAAE,IAAI,EAAE,CAAM;gBAEP,OAAO,EAAE,OAAO;IAK5B,OAAO,CAAC,uBAAuB;IAYxB,IAAI,IAAI,MAAM;CA8BxB"}
|
|
@@ -31,6 +31,16 @@ class SourceFilePrinter extends Printer_1.Printer {
|
|
|
31
31
|
this.items = [];
|
|
32
32
|
this.arkFile = arkFile;
|
|
33
33
|
}
|
|
34
|
+
printDefaultClassInFile(cls) {
|
|
35
|
+
for (let method of cls.getMethods()) {
|
|
36
|
+
if (method.isDefaultArkMethod()) {
|
|
37
|
+
this.items.push(...new SourceMethod_1.SourceMethod(method, this.printer.getIndent()).dumpDefaultMethod());
|
|
38
|
+
}
|
|
39
|
+
else if (!PrinterUtils_1.PrinterUtils.isAnonymousMethod(method.getName())) {
|
|
40
|
+
this.items.push(new SourceMethod_1.SourceMethod(method));
|
|
41
|
+
}
|
|
42
|
+
}
|
|
43
|
+
}
|
|
34
44
|
dump() {
|
|
35
45
|
this.printer.clear();
|
|
36
46
|
// print imports
|
|
@@ -42,14 +52,7 @@ class SourceFilePrinter extends Printer_1.Printer {
|
|
|
42
52
|
// print class
|
|
43
53
|
for (let cls of this.arkFile.getClasses()) {
|
|
44
54
|
if (cls.isDefaultArkClass()) {
|
|
45
|
-
|
|
46
|
-
if (method.isDefaultArkMethod()) {
|
|
47
|
-
this.items.push(...new SourceMethod_1.SourceMethod(method, this.printer.getIndent()).dumpDefaultMethod());
|
|
48
|
-
}
|
|
49
|
-
else if (!PrinterUtils_1.PrinterUtils.isAnonymousMethod(method.getName())) {
|
|
50
|
-
this.items.push(new SourceMethod_1.SourceMethod(method));
|
|
51
|
-
}
|
|
52
|
-
}
|
|
55
|
+
this.printDefaultClassInFile(cls);
|
|
53
56
|
}
|
|
54
57
|
else if (!PrinterUtils_1.PrinterUtils.isAnonymousClass(cls.getName())) {
|
|
55
58
|
this.items.push(new SourceClass_1.SourceClass(cls));
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"SourceNamespace.d.ts","sourceRoot":"","sources":["../../../src/save/source/SourceNamespace.ts"],"names":[],"mappings":"AAgBA,OAAO,EAAE,YAAY,EAAE,MAAM,+BAA+B,CAAC;AAC7D,OAAO,EAAE,UAAU,EAAE,MAAM,cAAc,CAAC;
|
|
1
|
+
{"version":3,"file":"SourceNamespace.d.ts","sourceRoot":"","sources":["../../../src/save/source/SourceNamespace.ts"],"names":[],"mappings":"AAgBA,OAAO,EAAE,YAAY,EAAE,MAAM,+BAA+B,CAAC;AAC7D,OAAO,EAAE,UAAU,EAAE,MAAM,cAAc,CAAC;AAQ1C;;GAEG;AACH,qBAAa,eAAgB,SAAQ,UAAU;IAC3C,EAAE,EAAE,YAAY,CAAC;gBAEE,EAAE,EAAE,YAAY,EAAE,MAAM,GAAE,MAAW;IAKjD,OAAO,IAAI,MAAM;IAIxB,OAAO,CAAC,4BAA4B;IAU7B,IAAI,IAAI,MAAM;CA2CxB"}
|
|
@@ -32,6 +32,16 @@ class SourceNamespace extends SourceBase_1.SourceBase {
|
|
|
32
32
|
getLine() {
|
|
33
33
|
return this.ns.getLine();
|
|
34
34
|
}
|
|
35
|
+
printDefaultClassInNamespace(items, cls) {
|
|
36
|
+
for (let method of cls.getMethods()) {
|
|
37
|
+
if (method.isDefaultArkMethod()) {
|
|
38
|
+
items.push(...new SourceMethod_1.SourceMethod(method, this.printer.getIndent()).dumpDefaultMethod());
|
|
39
|
+
}
|
|
40
|
+
else if (!PrinterUtils_1.PrinterUtils.isAnonymousMethod(method.getName())) {
|
|
41
|
+
items.push(new SourceMethod_1.SourceMethod(method, this.printer.getIndent()));
|
|
42
|
+
}
|
|
43
|
+
}
|
|
44
|
+
}
|
|
35
45
|
dump() {
|
|
36
46
|
const commentsMetadata = this.ns.getMetadata(ArkMetadata_1.ArkMetadataKind.LEADING_COMMENTS);
|
|
37
47
|
if (commentsMetadata instanceof ArkMetadata_1.CommentsMetadata) {
|
|
@@ -50,14 +60,7 @@ class SourceNamespace extends SourceBase_1.SourceBase {
|
|
|
50
60
|
continue;
|
|
51
61
|
}
|
|
52
62
|
if (cls.isDefaultArkClass()) {
|
|
53
|
-
|
|
54
|
-
if (method.isDefaultArkMethod()) {
|
|
55
|
-
items.push(...new SourceMethod_1.SourceMethod(method, this.printer.getIndent()).dumpDefaultMethod());
|
|
56
|
-
}
|
|
57
|
-
else if (!PrinterUtils_1.PrinterUtils.isAnonymousMethod(method.getName())) {
|
|
58
|
-
items.push(new SourceMethod_1.SourceMethod(method, this.printer.getIndent()));
|
|
59
|
-
}
|
|
60
|
-
}
|
|
63
|
+
this.printDefaultClassInNamespace(items, cls);
|
|
61
64
|
}
|
|
62
65
|
else {
|
|
63
66
|
items.push(new SourceClass_1.SourceClass(cls, this.printer.getIndent()));
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"SourceStmt.d.ts","sourceRoot":"","sources":["../../../src/save/source/SourceStmt.ts"],"names":[],"mappings":"AAgBA,OAAO,EAEH,eAAe,EAIlB,MAAM,sBAAsB,CAAC;AAC9B,OAAO,EAAE,KAAK,EAAE,MAAM,uBAAuB,CAAC;AAE9C,OAAO,EAEH,aAAa,EACb,SAAS,EACT,aAAa,EACb,aAAa,EACb,iBAAiB,EACjB,YAAY,EACZ,IAAI,EACP,MAAM,sBAAsB,CAAC;AAC9B,OAAO,EAAE,SAAS,EAAmB,MAAM,sBAAsB,CAAC;AAClE,OAAO,EAAE,KAAK,EAAE,MAAM,uBAAuB,CAAC;AAC9C,OAAO,EAAE,UAAU,EAAE,MAAM,6BAA6B,CAAC;AAEzD,OAAO,EAAE,aAAa,EAAE,MAAM,cAAc,CAAC;AAC7C,OAAO,EAAE,UAAU,EAAE,MAAM,cAAc,CAAC;AAC1C,OAAO,EAAE,iBAAiB,EAAE,kBAAkB,EAAE,MAAM,qBAAqB,CAAC;AAQ5E,OAAO,EAAE,IAAI,EAAE,MAAM,qBAAqB,CAAC;AAK3C,MAAM,WAAW,kBAAmB,SAAQ,kBAAkB;IAC1D,aAAa,IAAI,UAAU,CAAC;IAE5B,WAAW,CAAC,IAAI,EAAE,MAAM,EAAE,IAAI,EAAE,MAAM,GAAG,IAAI,CAAC;IAE9C,YAAY,CAAC,IAAI,EAAE,MAAM,GAAG,OAAO,CAAC;IAEpC,YAAY,CAAC,IAAI,EAAE,MAAM,GAAG,IAAI,CAAC;IAEjC,WAAW,CAAC,IAAI,EAAE,IAAI,GAAG,IAAI,CAAC;IAE9B,SAAS,IAAI,GAAG,CAAC,MAAM,EAAE,KAAK,CAAC,CAAC;IAEhC,WAAW,CAAC,KAAK,EAAE,KAAK,GAAG,IAAI,CAAC;IAEhC,cAAc,CAAC,KAAK,EAAE,KAAK,GAAG,OAAO,CAAC;IAEtC,iBAAiB,IAAI,OAAO,CAAC;CAChC;AAED,8BAAsB,UAAW,YAAW,IAAI;IAC5C,QAAQ,EAAE,IAAI,CAAC;IACf,OAAO,EAAE,kBAAkB,CAAC;IAC5B,IAAI,EAAE,MAAM,CAAC;IACb,IAAI,EAAE,MAAM,CAAM;IAClB,WAAW,EAAE,iBAAiB,CAAC;gBAEnB,OAAO,EAAE,kBAAkB,EAAE,QAAQ,EAAE,IAAI;IAOhD,OAAO,IAAI,MAAM;IAIjB,OAAO,CAAC,IAAI,EAAE,MAAM;IAIpB,IAAI,IAAI,MAAM;IAOrB,SAAS,CAAC,UAAU,IAAI,IAAI;IAE5B,SAAS,CAAC,SAAS,IAAI,IAAI;IAE3B,SAAS,CAAC,MAAM,IAAI,MAAM;IAe1B,SAAS,KAAK,OAAO,IAAI,aAAa,CAErC;IAEM,QAAQ,IAAI,MAAM;IAIzB,SAAS,CAAC,OAAO,CAAC,IAAI,EAAE,MAAM,GAAG,IAAI;IAIrC,SAAS,CAAC,SAAS,IAAI,MAAM;aAIb,WAAW,IAAI,IAAI;IAEnC,SAAS,CAAC,gBAAgB,CAAC,KAAK,EAAE,KAAK,GAAG,OAAO;CAOpD;AAQD,qBAAa,gBAAiB,SAAQ,UAAU;IAC5C,OAAO,CAAC,MAAM,CAAwC;IACtD,OAAO,CAAC,OAAO,CAAwC;IACvD,OAAO,CAAC,QAAQ,CAAc;IAC9B,OAAO,CAAC,SAAS,CAAc;IAC/B,OAAO,CAAC,QAAQ,CAAC,CAAqB;IACtC,OAAO,CAAC,YAAY,CAAS;gBAEjB,OAAO,EAAE,kBAAkB,EAAE,QAAQ,EAAE,aAAa;IAKzD,WAAW,IAAI,IAAI;IA+D1B,SAAS,CAAC,UAAU,IAAI,IAAI;IAqC5B,SAAS,CAAC,SAAS,IAAI,IAAI;IAM3B,OAAO,CAAC,kBAAkB;IAa1B;;;OAGG;IACH,OAAO,CAAC,oBAAoB;
|
|
1
|
+
{"version":3,"file":"SourceStmt.d.ts","sourceRoot":"","sources":["../../../src/save/source/SourceStmt.ts"],"names":[],"mappings":"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"}
|
|
@@ -188,36 +188,35 @@ class SourceAssignStmt extends SourceStmt {
|
|
|
188
188
|
}
|
|
189
189
|
if (this.context.hasTempVisit(this.leftCode)) {
|
|
190
190
|
this.setText('');
|
|
191
|
+
return;
|
|
191
192
|
}
|
|
192
193
|
else if (PrinterUtils_1.PrinterUtils.isTemp(this.leftCode)) {
|
|
193
194
|
this.setText(`${this.rightCode};`);
|
|
195
|
+
return;
|
|
194
196
|
}
|
|
195
|
-
|
|
196
|
-
|
|
197
|
-
|
|
198
|
-
|
|
199
|
-
|
|
200
|
-
|
|
197
|
+
if (this.leftOp instanceof Local_1.Local &&
|
|
198
|
+
this.context.getLocals().has(this.leftOp.getName()) &&
|
|
199
|
+
!this.isLocalTempValue(this.leftOp)) {
|
|
200
|
+
if (this.context.isLocalDefined(this.leftOp)) {
|
|
201
|
+
this.setText(`${this.leftCode} = ${this.rightCode};`);
|
|
202
|
+
return;
|
|
203
|
+
}
|
|
204
|
+
let flag = this.leftOp.getConstFlag() ? 'const' : 'let';
|
|
205
|
+
if (this.context.getArkFile().getExportInfoBy(this.leftCode) && this.context.isInDefaultMethod()) {
|
|
206
|
+
this.setText(`export ${flag} ${this.leftCode} = ${this.rightCode};`);
|
|
207
|
+
}
|
|
208
|
+
else {
|
|
209
|
+
if (this.leftTypeCode.length > 0) {
|
|
210
|
+
this.setText(`${flag} ${this.leftCode}: ${this.leftTypeCode} = ${this.rightCode};`);
|
|
201
211
|
}
|
|
202
212
|
else {
|
|
203
|
-
|
|
204
|
-
if (this.context.getArkFile().getExportInfoBy(this.leftCode) && this.context.isInDefaultMethod()) {
|
|
205
|
-
this.setText(`export ${flag} ${this.leftCode} = ${this.rightCode};`);
|
|
206
|
-
}
|
|
207
|
-
else {
|
|
208
|
-
if (this.leftTypeCode.length > 0) {
|
|
209
|
-
this.setText(`${flag} ${this.leftCode}: ${this.leftTypeCode} = ${this.rightCode};`);
|
|
210
|
-
}
|
|
211
|
-
else {
|
|
212
|
-
this.setText(`${flag} ${this.leftCode} = ${this.rightCode};`);
|
|
213
|
-
}
|
|
214
|
-
}
|
|
215
|
-
this.context.defineLocal(this.leftOp);
|
|
213
|
+
this.setText(`${flag} ${this.leftCode} = ${this.rightCode};`);
|
|
216
214
|
}
|
|
217
215
|
}
|
|
218
|
-
|
|
219
|
-
|
|
220
|
-
|
|
216
|
+
this.context.defineLocal(this.leftOp);
|
|
217
|
+
}
|
|
218
|
+
else {
|
|
219
|
+
this.setText(`${this.leftCode} = ${this.rightCode};`);
|
|
221
220
|
}
|
|
222
221
|
}
|
|
223
222
|
afterDump() {
|
|
@@ -249,19 +248,7 @@ class SourceAssignStmt extends SourceStmt {
|
|
|
249
248
|
let instanceInvokeExpr = stmt.getInvokeExpr();
|
|
250
249
|
if ('constructor' === instanceInvokeExpr.getMethodSignature().getMethodSubSignature().getMethodName() &&
|
|
251
250
|
instanceInvokeExpr.getBase().getName() === this.leftOp.getName()) {
|
|
252
|
-
|
|
253
|
-
instanceInvokeExpr.getArgs().forEach((v) => {
|
|
254
|
-
args.push(this.transformer.valueToString(v));
|
|
255
|
-
});
|
|
256
|
-
if (originType === PrinterUtils_1.CLASS_CATEGORY_COMPONENT) {
|
|
257
|
-
this.rightCode = `${this.transformer.typeToString(this.rightOp.getType())}(${args.join(', ')})`;
|
|
258
|
-
}
|
|
259
|
-
else if (originType === ArkClass_1.ClassCategory.TYPE_LITERAL || originType === ArkClass_1.ClassCategory.OBJECT) {
|
|
260
|
-
this.rightCode = `${this.transformer.literalObjectToString(this.rightOp.getType())}`;
|
|
261
|
-
}
|
|
262
|
-
else {
|
|
263
|
-
this.rightCode = `new ${this.transformer.typeToString(this.rightOp.getType())}(${args.join(', ')})`;
|
|
264
|
-
}
|
|
251
|
+
this.handleConstructorInvoke(instanceInvokeExpr, originType);
|
|
265
252
|
return;
|
|
266
253
|
}
|
|
267
254
|
}
|
|
@@ -279,6 +266,21 @@ class SourceAssignStmt extends SourceStmt {
|
|
|
279
266
|
this.rightCode = `new ${this.transformer.typeToString(this.rightOp.getType())}()`;
|
|
280
267
|
}
|
|
281
268
|
}
|
|
269
|
+
handleConstructorInvoke(instanceInvokeExpr, originType) {
|
|
270
|
+
let args = [];
|
|
271
|
+
instanceInvokeExpr.getArgs().forEach((v) => {
|
|
272
|
+
args.push(this.transformer.valueToString(v));
|
|
273
|
+
});
|
|
274
|
+
if (originType === PrinterUtils_1.CLASS_CATEGORY_COMPONENT) {
|
|
275
|
+
this.rightCode = `${this.transformer.typeToString(this.rightOp.getType())}(${args.join(', ')})`;
|
|
276
|
+
}
|
|
277
|
+
else if (originType === ArkClass_1.ClassCategory.TYPE_LITERAL || originType === ArkClass_1.ClassCategory.OBJECT) {
|
|
278
|
+
this.rightCode = `${this.transformer.literalObjectToString(this.rightOp.getType())}`;
|
|
279
|
+
}
|
|
280
|
+
else {
|
|
281
|
+
this.rightCode = `new ${this.transformer.typeToString(this.rightOp.getType())}(${args.join(', ')})`;
|
|
282
|
+
}
|
|
283
|
+
}
|
|
282
284
|
/**
|
|
283
285
|
* $temp0 = newarray[4]
|
|
284
286
|
* $temp0[0] = 1
|
|
@@ -25,6 +25,7 @@ export declare class SourceTransformer {
|
|
|
25
25
|
private anonymousMethodToString;
|
|
26
26
|
private anonymousClassToString;
|
|
27
27
|
instanceInvokeExprToString(invokeExpr: ArkInstanceInvokeExpr): string;
|
|
28
|
+
private transBuilderMethod;
|
|
28
29
|
staticInvokeExprToString(invokeExpr: ArkStaticInvokeExpr): string;
|
|
29
30
|
private genericTypesToString;
|
|
30
31
|
typeArrayToString(types: Type[], split?: string): string;
|
|
@@ -32,6 +33,7 @@ export declare class SourceTransformer {
|
|
|
32
33
|
private exprToString;
|
|
33
34
|
refToString(value: AbstractRef): string;
|
|
34
35
|
valueToString(value: Value, operator?: string): string;
|
|
36
|
+
private localToString;
|
|
35
37
|
literalObjectToString(type: ClassType): string;
|
|
36
38
|
typeToString(type: Type): string;
|
|
37
39
|
private literalType2string;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"SourceTransformer.d.ts","sourceRoot":"","sources":["../../../src/save/source/SourceTransformer.ts"],"names":[],"mappings":"AAeA,OAAO,EAAE,QAAQ,EAAE,MAAM,0BAA0B,CAAC;AACpD,OAAO,EAMH,qBAAqB,EAKrB,mBAAmB,EAKtB,MAAM,sBAAsB,CAAC;AAC9B,OAAO,EAAE,KAAK,EAAE,MAAM,uBAAuB,CAAC;AAC9C,OAAO,EAAE,QAAQ,EAAiB,MAAM,2BAA2B,CAAC;AACpE,OAAO,EAAE,SAAS,EAAE,MAAM,4BAA4B,CAAC;AACvD,OAAO,EAAE,cAAc,EAAE,eAAe,EAAE,MAAM,+BAA+B,CAAC;AAChF,OAAO,EAAE,aAAa,EAAE,MAAM,cAAc,CAAC;AAI7C,OAAO,EAGH,SAAS,EAQT,IAAI,EAKP,MAAM,sBAAsB,CAAC;AAE9B,OAAO,EAAE,KAAK,EAAE,MAAM,uBAAuB,CAAC;AAC9C,OAAO,EAAE,WAAW,EAAmE,MAAM,qBAAqB,CAAC;AACnH,OAAO,EAAE,OAAO,EAAE,MAAM,0BAA0B,CAAC;AASnD,OAAO,EAAE,YAAY,EAAE,MAAM,+BAA+B,CAAC;AAU7D,MAAM,WAAW,kBAAkB;IAC/B,UAAU,IAAI,OAAO,CAAC;IAEtB,wBAAwB,IAAI,YAAY,GAAG,SAAS,CAAC;IAErD,SAAS,CAAC,SAAS,EAAE,eAAe,GAAG,SAAS,GAAG,IAAI,CAAC;IAExD,QAAQ,CAAC,SAAS,EAAE,cAAc,GAAG,QAAQ,GAAG,IAAI,CAAC;IAErD,UAAU,IAAI,aAAa,CAAC;IAE5B,cAAc,CAAC,IAAI,EAAE,KAAK,GAAG,MAAM,CAAC;IAEpC,iBAAiB,IAAI,OAAO,CAAC;CAChC;AAED,qBAAa,iBAAiB;IAC1B,SAAS,CAAC,OAAO,EAAE,kBAAkB,CAAC;gBAE1B,OAAO,EAAE,kBAAkB;IAIvC,OAAO,CAAC,uBAAuB;IAM/B,OAAO,CAAC,sBAAsB;IAKvB,0BAA0B,CAAC,UAAU,EAAE,qBAAqB,GAAG,MAAM;
|
|
1
|
+
{"version":3,"file":"SourceTransformer.d.ts","sourceRoot":"","sources":["../../../src/save/source/SourceTransformer.ts"],"names":[],"mappings":"AAeA,OAAO,EAAE,QAAQ,EAAE,MAAM,0BAA0B,CAAC;AACpD,OAAO,EAMH,qBAAqB,EAKrB,mBAAmB,EAKtB,MAAM,sBAAsB,CAAC;AAC9B,OAAO,EAAE,KAAK,EAAE,MAAM,uBAAuB,CAAC;AAC9C,OAAO,EAAE,QAAQ,EAAiB,MAAM,2BAA2B,CAAC;AACpE,OAAO,EAAE,SAAS,EAAE,MAAM,4BAA4B,CAAC;AACvD,OAAO,EAAE,cAAc,EAAE,eAAe,EAAE,MAAM,+BAA+B,CAAC;AAChF,OAAO,EAAE,aAAa,EAAE,MAAM,cAAc,CAAC;AAI7C,OAAO,EAGH,SAAS,EAQT,IAAI,EAKP,MAAM,sBAAsB,CAAC;AAE9B,OAAO,EAAE,KAAK,EAAE,MAAM,uBAAuB,CAAC;AAC9C,OAAO,EAAE,WAAW,EAAmE,MAAM,qBAAqB,CAAC;AACnH,OAAO,EAAE,OAAO,EAAE,MAAM,0BAA0B,CAAC;AASnD,OAAO,EAAE,YAAY,EAAE,MAAM,+BAA+B,CAAC;AAU7D,MAAM,WAAW,kBAAkB;IAC/B,UAAU,IAAI,OAAO,CAAC;IAEtB,wBAAwB,IAAI,YAAY,GAAG,SAAS,CAAC;IAErD,SAAS,CAAC,SAAS,EAAE,eAAe,GAAG,SAAS,GAAG,IAAI,CAAC;IAExD,QAAQ,CAAC,SAAS,EAAE,cAAc,GAAG,QAAQ,GAAG,IAAI,CAAC;IAErD,UAAU,IAAI,aAAa,CAAC;IAE5B,cAAc,CAAC,IAAI,EAAE,KAAK,GAAG,MAAM,CAAC;IAEpC,iBAAiB,IAAI,OAAO,CAAC;CAChC;AAED,qBAAa,iBAAiB;IAC1B,SAAS,CAAC,OAAO,EAAE,kBAAkB,CAAC;gBAE1B,OAAO,EAAE,kBAAkB;IAIvC,OAAO,CAAC,uBAAuB;IAM/B,OAAO,CAAC,sBAAsB;IAKvB,0BAA0B,CAAC,UAAU,EAAE,qBAAqB,GAAG,MAAM;IAkB5E,OAAO,CAAC,kBAAkB;IAwCnB,wBAAwB,CAAC,UAAU,EAAE,mBAAmB,GAAG,MAAM;IA8BxE,OAAO,CAAC,oBAAoB;IAYrB,iBAAiB,CAAC,KAAK,EAAE,IAAI,EAAE,EAAE,KAAK,GAAE,MAAa,GAAG,MAAM;WASvD,aAAa,CAAC,KAAK,EAAE,QAAQ,GAAG,MAAM;IAUpD,OAAO,CAAC,YAAY;IA2Db,WAAW,CAAC,KAAK,EAAE,WAAW,GAAG,MAAM;IA8BvC,aAAa,CAAC,KAAK,EAAE,KAAK,EAAE,QAAQ,CAAC,EAAE,MAAM,GAAG,MAAM;IAqB7D,OAAO,CAAC,aAAa;IAgCd,qBAAqB,CAAC,IAAI,EAAE,SAAS,GAAG,MAAM;IAW9C,YAAY,CAAC,IAAI,EAAE,IAAI,GAAG,MAAM;IA+DvC,OAAO,CAAC,kBAAkB;IAQ1B,OAAO,CAAC,mBAAmB;IAgB3B,OAAO,CAAC,gBAAgB;IAcxB,OAAO,CAAC,gBAAgB;IASxB,OAAO,CAAC,gBAAgB;IAcxB,OAAO,CAAC,oBAAoB;IAO5B,OAAO,CAAC,oBAAoB;IAmB5B,OAAO,CAAC,2BAA2B;IAQnC,OAAO,CAAC,gBAAgB;CAkB3B"}
|
|
@@ -88,6 +88,41 @@ class SourceTransformer {
|
|
|
88
88
|
}
|
|
89
89
|
return `${this.valueToString(invokeExpr.getBase())}.${methodName}${genericCode}(${args.join(', ')})`;
|
|
90
90
|
}
|
|
91
|
+
transBuilderMethod(className, methodName, args, invokeExpr, genericCode) {
|
|
92
|
+
if (className === EtsConst_1.COMPONENT_CUSTOMVIEW) {
|
|
93
|
+
if (methodName === EtsConst_1.COMPONENT_CREATE_FUNCTION) {
|
|
94
|
+
// Anonymous @Builder method
|
|
95
|
+
if (args.length > 1) {
|
|
96
|
+
// remove the substring '() =>' or '(x, y): type =>' at the beginning of args[1]
|
|
97
|
+
const pattern = /^\([^)]*\)\s*:\s*\w*\s*=>\s*/;
|
|
98
|
+
args[1] = args[1].replace(pattern, '');
|
|
99
|
+
}
|
|
100
|
+
return `${args.join(' ')}`;
|
|
101
|
+
}
|
|
102
|
+
if (methodName === EtsConst_1.COMPONENT_POP_FUNCTION) {
|
|
103
|
+
return '';
|
|
104
|
+
}
|
|
105
|
+
}
|
|
106
|
+
if (PrinterUtils_1.PrinterUtils.isComponentCreate(invokeExpr)) {
|
|
107
|
+
if (className === EtsConst_1.COMPONENT_IF) {
|
|
108
|
+
return `if (${args.join(', ')})`;
|
|
109
|
+
}
|
|
110
|
+
return `${className}${genericCode}(${args.join(', ')})`;
|
|
111
|
+
}
|
|
112
|
+
if (PrinterUtils_1.PrinterUtils.isComponentIfBranchInvoke(invokeExpr)) {
|
|
113
|
+
let arg0 = invokeExpr.getArg(0);
|
|
114
|
+
if (arg0.getValue() === '0') {
|
|
115
|
+
return ``;
|
|
116
|
+
}
|
|
117
|
+
else {
|
|
118
|
+
return '} else {';
|
|
119
|
+
}
|
|
120
|
+
}
|
|
121
|
+
if (PrinterUtils_1.PrinterUtils.isComponentPop(invokeExpr)) {
|
|
122
|
+
return '}';
|
|
123
|
+
}
|
|
124
|
+
return null;
|
|
125
|
+
}
|
|
91
126
|
staticInvokeExprToString(invokeExpr) {
|
|
92
127
|
let methodSignature = invokeExpr.getMethodSignature();
|
|
93
128
|
let method = this.context.getMethod(methodSignature);
|
|
@@ -103,37 +138,9 @@ class SourceTransformer {
|
|
|
103
138
|
});
|
|
104
139
|
let genericCode = this.genericTypesToString(invokeExpr.getRealGenericTypes());
|
|
105
140
|
if (this.context.isInBuilderMethod()) {
|
|
106
|
-
|
|
107
|
-
|
|
108
|
-
|
|
109
|
-
if (args.length > 1) {
|
|
110
|
-
// remove the substring '() =>' or '(x, y): type =>' at the beginning of args[1]
|
|
111
|
-
const pattern = /^\([^)]*\)\s*:\s*\w*\s*=>\s*/;
|
|
112
|
-
args[1] = args[1].replace(pattern, '');
|
|
113
|
-
}
|
|
114
|
-
return `${args.join(' ')}`;
|
|
115
|
-
}
|
|
116
|
-
if (methodName === EtsConst_1.COMPONENT_POP_FUNCTION) {
|
|
117
|
-
return '';
|
|
118
|
-
}
|
|
119
|
-
}
|
|
120
|
-
if (PrinterUtils_1.PrinterUtils.isComponentCreate(invokeExpr)) {
|
|
121
|
-
if (className === EtsConst_1.COMPONENT_IF) {
|
|
122
|
-
return `if (${args.join(', ')})`;
|
|
123
|
-
}
|
|
124
|
-
return `${className}${genericCode}(${args.join(', ')})`;
|
|
125
|
-
}
|
|
126
|
-
if (PrinterUtils_1.PrinterUtils.isComponentIfBranchInvoke(invokeExpr)) {
|
|
127
|
-
let arg0 = invokeExpr.getArg(0);
|
|
128
|
-
if (arg0.getValue() === '0') {
|
|
129
|
-
return ``;
|
|
130
|
-
}
|
|
131
|
-
else {
|
|
132
|
-
return '} else {';
|
|
133
|
-
}
|
|
134
|
-
}
|
|
135
|
-
if (PrinterUtils_1.PrinterUtils.isComponentPop(invokeExpr)) {
|
|
136
|
-
return '}';
|
|
141
|
+
const res = this.transBuilderMethod(className, methodName, args, invokeExpr, genericCode);
|
|
142
|
+
if (res !== null) {
|
|
143
|
+
return res;
|
|
137
144
|
}
|
|
138
145
|
}
|
|
139
146
|
if (className && className.length > 0 && methodName !== TSConst_1.SUPER_NAME) {
|
|
@@ -248,34 +255,37 @@ class SourceTransformer {
|
|
|
248
255
|
return SourceTransformer.constToString(value);
|
|
249
256
|
}
|
|
250
257
|
if (value instanceof Local_1.Local) {
|
|
251
|
-
|
|
252
|
-
|
|
253
|
-
|
|
254
|
-
|
|
255
|
-
|
|
256
|
-
|
|
258
|
+
return this.localToString(value, operator);
|
|
259
|
+
}
|
|
260
|
+
logger.info(`valueToString ${value.constructor} not support.`);
|
|
261
|
+
return `${value}`;
|
|
262
|
+
}
|
|
263
|
+
localToString(value, operator) {
|
|
264
|
+
if (PrinterUtils_1.PrinterUtils.isAnonymousMethod(value.getName())) {
|
|
265
|
+
let methodSignature = value.getType().getMethodSignature();
|
|
266
|
+
let anonymousMethod = this.context.getMethod(methodSignature);
|
|
267
|
+
if (anonymousMethod) {
|
|
268
|
+
return this.anonymousMethodToString(anonymousMethod, this.context.getPrinter().getIndent());
|
|
257
269
|
}
|
|
258
|
-
|
|
259
|
-
|
|
260
|
-
|
|
261
|
-
|
|
262
|
-
|
|
263
|
-
|
|
270
|
+
}
|
|
271
|
+
if (PrinterUtils_1.PrinterUtils.isAnonymousClass(value.getName())) {
|
|
272
|
+
let clsSignature = value.getType().getClassSignature();
|
|
273
|
+
let cls = this.context.getClass(clsSignature);
|
|
274
|
+
if (cls) {
|
|
275
|
+
return this.anonymousClassToString(cls, this.context.getPrinter().getIndent());
|
|
264
276
|
}
|
|
265
|
-
|
|
266
|
-
|
|
267
|
-
|
|
268
|
-
|
|
269
|
-
|
|
270
|
-
|
|
271
|
-
|
|
272
|
-
}
|
|
277
|
+
}
|
|
278
|
+
if (operator === Expr_1.NormalBinaryOperator.Division ||
|
|
279
|
+
operator === Expr_1.NormalBinaryOperator.Multiplication ||
|
|
280
|
+
operator === Expr_1.NormalBinaryOperator.Remainder) {
|
|
281
|
+
if (PrinterUtils_1.PrinterUtils.isTemp(value.getName())) {
|
|
282
|
+
let stmt = value.getDeclaringStmt();
|
|
283
|
+
if (stmt instanceof Stmt_1.ArkAssignStmt && stmt.getRightOp() instanceof Expr_1.ArkNormalBinopExpr) {
|
|
284
|
+
return `(${this.context.transTemp2Code(value)})`;
|
|
273
285
|
}
|
|
274
286
|
}
|
|
275
|
-
return this.context.transTemp2Code(value);
|
|
276
287
|
}
|
|
277
|
-
|
|
278
|
-
return `${value}`;
|
|
288
|
+
return this.context.transTemp2Code(value);
|
|
279
289
|
}
|
|
280
290
|
literalObjectToString(type) {
|
|
281
291
|
let name = type.getClassSignature().getClassName();
|
|
@@ -1,9 +1,14 @@
|
|
|
1
1
|
import { ArkBody } from '../core/model/ArkBody';
|
|
2
2
|
export declare class StaticSingleAssignmentFormer {
|
|
3
3
|
transformBody(body: ArkBody): void;
|
|
4
|
+
private transformStmt;
|
|
4
5
|
private decideBlockToPhiStmts;
|
|
6
|
+
private handleDf;
|
|
7
|
+
private handleBlockWithSucc;
|
|
5
8
|
private addPhiStmts;
|
|
9
|
+
private renameUseAndDef;
|
|
6
10
|
private renameLocals;
|
|
11
|
+
private removeVisitedTree;
|
|
7
12
|
private constainsPhiExpr;
|
|
8
13
|
private getOriginalLocal;
|
|
9
14
|
private addNewArgToPhi;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"StaticSingleAssignmentFormer.d.ts","sourceRoot":"","sources":["../../src/transformer/StaticSingleAssignmentFormer.ts"],"names":[],"mappings":"AAsBA,OAAO,EAAE,OAAO,EAAE,MAAM,uBAAuB,CAAC;AAEhD,qBAAa,4BAA4B;IAC9B,aAAa,CAAC,IAAI,EAAE,OAAO;
|
|
1
|
+
{"version":3,"file":"StaticSingleAssignmentFormer.d.ts","sourceRoot":"","sources":["../../src/transformer/StaticSingleAssignmentFormer.ts"],"names":[],"mappings":"AAsBA,OAAO,EAAE,OAAO,EAAE,MAAM,uBAAuB,CAAC;AAEhD,qBAAa,4BAA4B;IAC9B,aAAa,CAAC,IAAI,EAAE,OAAO,GAAG,IAAI;IAqBzC,OAAO,CAAC,aAAa;IAcrB,OAAO,CAAC,qBAAqB;IAuB7B,OAAO,CAAC,QAAQ;IA4BhB,OAAO,CAAC,mBAAmB;IAkB3B,OAAO,CAAC,WAAW;IA4BnB,OAAO,CAAC,eAAe;IA8BvB,OAAO,CAAC,YAAY;IA8CpB,OAAO,CAAC,iBAAiB;IAwBzB,OAAO,CAAC,gBAAgB;IAWxB,OAAO,CAAC,gBAAgB;IAcxB,OAAO,CAAC,cAAc;IAetB,OAAO,CAAC,mBAAmB;IAS3B,OAAO,CAAC,kBAAkB;CAI7B"}
|