arkanalyzer 1.0.23 → 1.0.25
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.map +1 -1
- package/lib/Scene.js +4 -1
- package/lib/core/base/Constant.d.ts +3 -0
- package/lib/core/base/Constant.d.ts.map +1 -1
- package/lib/core/base/Constant.js +7 -1
- package/lib/core/base/Expr.d.ts.map +1 -1
- package/lib/core/base/Expr.js +9 -0
- package/lib/core/base/Type.d.ts +9 -0
- package/lib/core/base/Type.d.ts.map +1 -1
- package/lib/core/base/Type.js +15 -1
- package/lib/core/common/ArkIRTransformer.d.ts.map +1 -1
- package/lib/core/common/ArkIRTransformer.js +20 -3
- package/lib/core/common/ArkValueTransformer.d.ts.map +1 -1
- package/lib/core/common/ArkValueTransformer.js +3 -1
- package/lib/core/common/IRInference.d.ts.map +1 -1
- package/lib/core/common/IRInference.js +8 -0
- package/lib/core/common/TSConst.d.ts +1 -0
- package/lib/core/common/TSConst.d.ts.map +1 -1
- package/lib/core/common/TSConst.js +2 -1
- package/lib/core/common/TypeInference.d.ts.map +1 -1
- package/lib/core/common/TypeInference.js +11 -9
- package/lib/core/common/ValueUtil.d.ts +2 -1
- package/lib/core/common/ValueUtil.d.ts.map +1 -1
- package/lib/core/common/ValueUtil.js +3 -0
- package/lib/core/graph/builder/CfgBuilder.d.ts +1 -0
- package/lib/core/graph/builder/CfgBuilder.d.ts.map +1 -1
- package/lib/core/graph/builder/CfgBuilder.js +26 -1
- package/lib/core/model/ArkField.d.ts +3 -1
- package/lib/core/model/ArkField.d.ts.map +1 -1
- package/lib/core/model/ArkField.js +12 -0
- package/lib/core/model/ArkMethod.d.ts +1 -0
- package/lib/core/model/ArkMethod.d.ts.map +1 -1
- package/lib/core/model/ArkMethod.js +15 -0
- package/lib/core/model/builder/ArkClassBuilder.d.ts.map +1 -1
- package/lib/core/model/builder/ArkClassBuilder.js +37 -0
- package/lib/core/model/builder/ArkFieldBuilder.d.ts.map +1 -1
- package/lib/core/model/builder/ArkFieldBuilder.js +11 -12
- package/lib/core/model/builder/ArkMethodBuilder.d.ts +1 -1
- package/lib/core/model/builder/ArkMethodBuilder.d.ts.map +1 -1
- package/lib/core/model/builder/ArkMethodBuilder.js +61 -77
- package/lib/core/model/builder/builderUtils.d.ts.map +1 -1
- package/lib/core/model/builder/builderUtils.js +16 -13
- package/lib/save/JsonPrinter.d.ts.map +1 -1
- package/lib/save/JsonPrinter.js +5 -0
- package/lib/save/arkir/ArkIRClassPrinter.d.ts.map +1 -1
- package/lib/save/arkir/ArkIRClassPrinter.js +20 -12
- package/lib/save/arkir/ArkIRFieldPrinter.js +1 -1
- package/lib/save/arkir/ArkIRMethodPrinter.d.ts.map +1 -1
- package/lib/save/arkir/ArkIRMethodPrinter.js +11 -15
- package/lib/save/source/SourceTransformer.d.ts.map +1 -1
- package/lib/save/source/SourceTransformer.js +8 -2
- package/package.json +2 -2
|
@@ -15,7 +15,6 @@
|
|
|
15
15
|
*/
|
|
16
16
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
17
17
|
exports.ArkIRMethodPrinter = void 0;
|
|
18
|
-
const Type_1 = require("../../core/base/Type");
|
|
19
18
|
const ArkStream_1 = require("../ArkStream");
|
|
20
19
|
const Stmt_1 = require("../../core/base/Stmt");
|
|
21
20
|
const ArkMetadata_1 = require("../../core/model/ArkMetadata");
|
|
@@ -64,7 +63,7 @@ class ArkIRMethodPrinter extends BasePrinter_1.BasePrinter {
|
|
|
64
63
|
this.printer.writeIndent().write(this.methodProtoToString(method));
|
|
65
64
|
// abstract function no body
|
|
66
65
|
if (!method.getBody()) {
|
|
67
|
-
this.printer.writeLine('
|
|
66
|
+
this.printer.writeLine('');
|
|
68
67
|
return;
|
|
69
68
|
}
|
|
70
69
|
this.printer.writeLine(' {');
|
|
@@ -72,7 +71,6 @@ class ArkIRMethodPrinter extends BasePrinter_1.BasePrinter {
|
|
|
72
71
|
this.printBody(method);
|
|
73
72
|
this.printer.decIndent();
|
|
74
73
|
this.printer.writeIndent().writeLine('}');
|
|
75
|
-
this.printer.writeLine('');
|
|
76
74
|
}
|
|
77
75
|
printBody(method) {
|
|
78
76
|
if (method.getCfg()) {
|
|
@@ -110,21 +108,19 @@ class ArkIRMethodPrinter extends BasePrinter_1.BasePrinter {
|
|
|
110
108
|
});
|
|
111
109
|
code.write(`(${parameters.join(', ')})`);
|
|
112
110
|
const returnType = method.getReturnType();
|
|
113
|
-
|
|
114
|
-
code.write(`: ${returnType.toString()}`);
|
|
115
|
-
}
|
|
111
|
+
code.write(`: ${returnType.toString()}`);
|
|
116
112
|
return code.toString();
|
|
117
113
|
}
|
|
118
114
|
printCfg(cfg) {
|
|
119
115
|
let blocks = cfg.getBlocks();
|
|
120
|
-
|
|
121
|
-
|
|
122
|
-
|
|
123
|
-
|
|
124
|
-
|
|
125
|
-
|
|
126
|
-
|
|
127
|
-
|
|
116
|
+
let firstBB = true;
|
|
117
|
+
for (const block of blocks) {
|
|
118
|
+
if (!firstBB) {
|
|
119
|
+
this.printer.writeLine('');
|
|
120
|
+
}
|
|
121
|
+
this.printBasicBlock(block);
|
|
122
|
+
if (firstBB) {
|
|
123
|
+
firstBB = false;
|
|
128
124
|
}
|
|
129
125
|
}
|
|
130
126
|
}
|
|
@@ -153,7 +149,7 @@ class ArkIRMethodPrinter extends BasePrinter_1.BasePrinter {
|
|
|
153
149
|
this.printer.writeIndent().writeLine(stmt.toString());
|
|
154
150
|
});
|
|
155
151
|
}
|
|
156
|
-
this.printer.decIndent()
|
|
152
|
+
this.printer.decIndent();
|
|
157
153
|
}
|
|
158
154
|
}
|
|
159
155
|
exports.ArkIRMethodPrinter = ArkIRMethodPrinter;
|
|
@@ -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;
|
|
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;IAkBrE,wBAAwB,CAAC,UAAU,EAAE,mBAAmB,GAAG,MAAM;IA4DxE,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;IAiDtD,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"}
|
|
@@ -58,6 +58,7 @@ const ArkBaseModel_1 = require("../../core/model/ArkBaseModel");
|
|
|
58
58
|
const ArkField_1 = require("../../core/model/ArkField");
|
|
59
59
|
const ArkExport_1 = require("../../core/model/ArkExport");
|
|
60
60
|
const ArkImport_1 = require("../../core/model/ArkImport");
|
|
61
|
+
const TSConst_1 = require("../../core/common/TSConst");
|
|
61
62
|
const logger = logger_1.default.getLogger(logger_1.LOG_MODULE_TYPE.ARKANALYZER, 'SourceTransformer');
|
|
62
63
|
class SourceTransformer {
|
|
63
64
|
constructor(context) {
|
|
@@ -106,7 +107,9 @@ class SourceTransformer {
|
|
|
106
107
|
if (methodName === EtsConst_1.COMPONENT_CREATE_FUNCTION) {
|
|
107
108
|
// Anonymous @Builder method
|
|
108
109
|
if (args.length > 1) {
|
|
109
|
-
|
|
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, '');
|
|
110
113
|
}
|
|
111
114
|
return `${args.join(' ')}`;
|
|
112
115
|
}
|
|
@@ -133,7 +136,7 @@ class SourceTransformer {
|
|
|
133
136
|
return '}';
|
|
134
137
|
}
|
|
135
138
|
}
|
|
136
|
-
if (className && className.length > 0) {
|
|
139
|
+
if (className && className.length > 0 && methodName !== TSConst_1.SUPER_NAME) {
|
|
137
140
|
return `${className}.${methodName}${genericCode}(${args.join(', ')})`;
|
|
138
141
|
}
|
|
139
142
|
return `${methodName}${genericCode}(${args.join(', ')})`;
|
|
@@ -159,6 +162,9 @@ class SourceTransformer {
|
|
|
159
162
|
if (value.getType().toString() === 'string') {
|
|
160
163
|
return `'${PrinterUtils_1.PrinterUtils.escape(value.getValue())}'`;
|
|
161
164
|
}
|
|
165
|
+
else if (value.getType().toString() === TSConst_1.BIGINT_KEYWORD) {
|
|
166
|
+
return `${value.getValue()}n`;
|
|
167
|
+
}
|
|
162
168
|
else {
|
|
163
169
|
return value.getValue();
|
|
164
170
|
}
|