arkanalyzer 1.0.36 → 1.0.38
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.js +5 -5
- package/lib/callgraph/algorithm/AbstractAnalysis.js +1 -1
- package/lib/callgraph/pointerAnalysis/PagBuilder.d.ts +1 -3
- package/lib/callgraph/pointerAnalysis/PagBuilder.d.ts.map +1 -1
- package/lib/callgraph/pointerAnalysis/PagBuilder.js +4 -37
- package/lib/core/base/Expr.d.ts.map +1 -1
- package/lib/core/base/Expr.js +9 -4
- package/lib/core/base/Local.d.ts.map +1 -1
- package/lib/core/base/Local.js +5 -0
- package/lib/core/common/ArkIRTransformer.d.ts.map +1 -1
- package/lib/core/common/ArkIRTransformer.js +0 -10
- package/lib/core/common/ArkValueTransformer.d.ts.map +1 -1
- package/lib/core/common/ArkValueTransformer.js +14 -18
- package/lib/core/common/IRInference.d.ts.map +1 -1
- package/lib/core/common/IRInference.js +10 -12
- package/lib/core/common/ModelUtils.d.ts.map +1 -1
- package/lib/core/common/ModelUtils.js +3 -4
- package/lib/core/common/SdkUtils.d.ts +1 -1
- package/lib/core/common/SdkUtils.d.ts.map +1 -1
- package/lib/core/common/SdkUtils.js +12 -12
- package/lib/core/common/TypeInference.d.ts +2 -1
- package/lib/core/common/TypeInference.d.ts.map +1 -1
- package/lib/core/common/TypeInference.js +23 -13
- package/lib/core/graph/builder/TrapBuilder.d.ts.map +1 -1
- package/lib/core/graph/builder/TrapBuilder.js +20 -15
- package/lib/core/graph/builder/ViewTreeBuilder.d.ts.map +1 -1
- package/lib/core/graph/builder/ViewTreeBuilder.js +9 -5
- package/lib/core/model/ArkImport.js +1 -1
- package/lib/core/model/ArkMethod.d.ts +2 -0
- package/lib/core/model/ArkMethod.d.ts.map +1 -1
- package/lib/core/model/ArkMethod.js +37 -28
- package/lib/core/model/builder/ArkClassBuilder.js +12 -3
- package/lib/core/model/builder/ArkFieldBuilder.js +2 -2
- package/lib/core/model/builder/ArkFileBuilder.js +2 -2
- package/lib/core/model/builder/ArkNamespaceBuilder.js +4 -4
- package/lib/save/JsonPrinter.d.ts.map +1 -1
- package/lib/save/JsonPrinter.js +50 -32
- package/lib/save/base/PrinterUtils.d.ts +1 -0
- package/lib/save/base/PrinterUtils.d.ts.map +1 -1
- package/lib/save/base/PrinterUtils.js +4 -0
- 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 +11 -2
- package/package.json +2 -2
package/lib/save/JsonPrinter.js
CHANGED
|
@@ -13,9 +13,6 @@
|
|
|
13
13
|
* See the License for the specific language governing permissions and
|
|
14
14
|
* limitations under the License.
|
|
15
15
|
*/
|
|
16
|
-
var __importDefault = (this && this.__importDefault) || function (mod) {
|
|
17
|
-
return (mod && mod.__esModule) ? mod : { "default": mod };
|
|
18
|
-
};
|
|
19
16
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
20
17
|
exports.JsonPrinter = void 0;
|
|
21
18
|
const Printer_1 = require("./Printer");
|
|
@@ -26,7 +23,6 @@ const Constant_1 = require("../core/base/Constant");
|
|
|
26
23
|
const ArkSignature_1 = require("../core/model/ArkSignature");
|
|
27
24
|
const Ref_1 = require("../core/base/Ref");
|
|
28
25
|
const Local_1 = require("../core/base/Local");
|
|
29
|
-
const util_1 = __importDefault(require("util"));
|
|
30
26
|
class JsonPrinter extends Printer_1.Printer {
|
|
31
27
|
constructor(arkFile) {
|
|
32
28
|
super();
|
|
@@ -57,8 +53,9 @@ class JsonPrinter extends Printer_1.Printer {
|
|
|
57
53
|
return {
|
|
58
54
|
signature: this.serializeClassSignature(clazz.getSignature()),
|
|
59
55
|
modifiers: clazz.getModifiers(),
|
|
60
|
-
decorators: clazz.getDecorators().map(decorator => this.serializeDecorator(decorator)),
|
|
61
|
-
typeParameters: (_a = clazz.getGenericsTypes()) === null || _a === void 0 ? void 0 : _a.map(type => this.serializeType(type)),
|
|
56
|
+
decorators: clazz.getDecorators().map((decorator) => this.serializeDecorator(decorator)),
|
|
57
|
+
typeParameters: (_a = clazz.getGenericsTypes()) === null || _a === void 0 ? void 0 : _a.map((type) => this.serializeType(type)),
|
|
58
|
+
category: clazz.getCategory(),
|
|
62
59
|
superClassName: clazz.getSuperClassName(),
|
|
63
60
|
implementedInterfaceNames: clazz.getImplementedInterfaceNames(),
|
|
64
61
|
fields: clazz.getFields().map(field => this.serializeField(field)),
|
|
@@ -96,6 +93,7 @@ class JsonPrinter extends Printer_1.Printer {
|
|
|
96
93
|
name: parameter.getName(),
|
|
97
94
|
type: this.serializeType(parameter.getType()),
|
|
98
95
|
isOptional: parameter.isOptional(),
|
|
96
|
+
isRest: parameter.hasDotDotDotToken(),
|
|
99
97
|
};
|
|
100
98
|
}
|
|
101
99
|
serializeImportInfo(importInfo) {
|
|
@@ -161,6 +159,12 @@ class JsonPrinter extends Printer_1.Printer {
|
|
|
161
159
|
types: type.getTypes().map(type => this.serializeType(type)),
|
|
162
160
|
};
|
|
163
161
|
}
|
|
162
|
+
else if (type instanceof Type_1.IntersectionType) {
|
|
163
|
+
return {
|
|
164
|
+
_: 'IntersectionType',
|
|
165
|
+
types: type.getTypes().map((type) => this.serializeType(type)),
|
|
166
|
+
};
|
|
167
|
+
}
|
|
164
168
|
else if (type instanceof Type_1.TupleType) {
|
|
165
169
|
return {
|
|
166
170
|
_: 'TupleType',
|
|
@@ -203,9 +207,6 @@ class JsonPrinter extends Printer_1.Printer {
|
|
|
203
207
|
literal: type.getLiteralName(),
|
|
204
208
|
};
|
|
205
209
|
}
|
|
206
|
-
else if (type instanceof Type_1.PrimitiveType) {
|
|
207
|
-
throw new Error('Unhandled PrimitiveType: ' + util_1.default.inspect(type, { showHidden: true, depth: null }));
|
|
208
|
-
}
|
|
209
210
|
else if (type instanceof Type_1.ClassType) {
|
|
210
211
|
return {
|
|
211
212
|
_: 'ClassType',
|
|
@@ -235,13 +236,13 @@ class JsonPrinter extends Printer_1.Printer {
|
|
|
235
236
|
};
|
|
236
237
|
}
|
|
237
238
|
else if (type instanceof Type_1.GenericType) {
|
|
238
|
-
let defaultType = type.getDefaultType();
|
|
239
239
|
let constraint = type.getConstraint();
|
|
240
|
+
let defaultType = type.getDefaultType();
|
|
240
241
|
return {
|
|
241
242
|
_: 'GenericType',
|
|
242
243
|
name: type.getName(),
|
|
243
|
-
defaultType: defaultType && this.serializeType(defaultType),
|
|
244
244
|
constraint: constraint && this.serializeType(constraint),
|
|
245
|
+
defaultType: defaultType && this.serializeType(defaultType),
|
|
245
246
|
};
|
|
246
247
|
}
|
|
247
248
|
else if (type instanceof Type_1.AliasType) {
|
|
@@ -265,11 +266,12 @@ class JsonPrinter extends Printer_1.Printer {
|
|
|
265
266
|
originType: type.getOriginType(),
|
|
266
267
|
};
|
|
267
268
|
}
|
|
268
|
-
else if (type instanceof Type_1.AnnotationType) {
|
|
269
|
-
throw new Error('Unhandled AnnotationType: ' + util_1.default.inspect(type, { showHidden: true, depth: null }));
|
|
270
|
-
}
|
|
271
269
|
else {
|
|
272
|
-
|
|
270
|
+
console.warn(`Unhandled Type: ${type.constructor.name} (${type.toString()})`);
|
|
271
|
+
return {
|
|
272
|
+
_: type.constructor.name,
|
|
273
|
+
text: type.toString(),
|
|
274
|
+
};
|
|
273
275
|
}
|
|
274
276
|
}
|
|
275
277
|
serializeFileSignature(file) {
|
|
@@ -457,9 +459,6 @@ class JsonPrinter extends Printer_1.Printer {
|
|
|
457
459
|
right: this.serializeValue(value.getOp2()),
|
|
458
460
|
};
|
|
459
461
|
}
|
|
460
|
-
else if (value instanceof Expr_1.AbstractBinopExpr) {
|
|
461
|
-
return new Error('Unhandled BinopExpr: ' + util_1.default.inspect(value, { showHidden: true, depth: null }));
|
|
462
|
-
}
|
|
463
462
|
else if (value instanceof Expr_1.ArkUnopExpr) {
|
|
464
463
|
return {
|
|
465
464
|
_: 'UnopExpr',
|
|
@@ -490,9 +489,6 @@ class JsonPrinter extends Printer_1.Printer {
|
|
|
490
489
|
args: value.getArgs().map(arg => this.serializeValue(arg)),
|
|
491
490
|
};
|
|
492
491
|
}
|
|
493
|
-
else if (value instanceof Expr_1.AbstractInvokeExpr) {
|
|
494
|
-
throw new Error('Unhandled CallExpr: ' + util_1.default.inspect(value, { showHidden: true, depth: null }));
|
|
495
|
-
}
|
|
496
492
|
else if (value instanceof Ref_1.ArkThisRef) {
|
|
497
493
|
return {
|
|
498
494
|
_: 'ThisRef',
|
|
@@ -514,6 +510,28 @@ class JsonPrinter extends Printer_1.Printer {
|
|
|
514
510
|
type: this.serializeType(value.getType()),
|
|
515
511
|
};
|
|
516
512
|
}
|
|
513
|
+
else if (value instanceof Ref_1.ArkCaughtExceptionRef) {
|
|
514
|
+
return {
|
|
515
|
+
_: 'CaughtExceptionRef',
|
|
516
|
+
type: this.serializeType(value.getType()),
|
|
517
|
+
};
|
|
518
|
+
}
|
|
519
|
+
else if (value instanceof Ref_1.GlobalRef) {
|
|
520
|
+
let ref = value.getRef();
|
|
521
|
+
return {
|
|
522
|
+
_: 'GlobalRef',
|
|
523
|
+
name: value.getName(),
|
|
524
|
+
ref: ref ? this.serializeValue(ref) : null,
|
|
525
|
+
};
|
|
526
|
+
}
|
|
527
|
+
else if (value instanceof Ref_1.ClosureFieldRef) {
|
|
528
|
+
return {
|
|
529
|
+
_: 'ClosureFieldRef',
|
|
530
|
+
base: this.serializeLocal(value.getBase()),
|
|
531
|
+
fieldName: value.getFieldName(),
|
|
532
|
+
type: this.serializeType(value.getType()),
|
|
533
|
+
};
|
|
534
|
+
}
|
|
517
535
|
else if (value instanceof Ref_1.ArkInstanceFieldRef) {
|
|
518
536
|
return {
|
|
519
537
|
_: 'InstanceFieldRef',
|
|
@@ -527,17 +545,13 @@ class JsonPrinter extends Printer_1.Printer {
|
|
|
527
545
|
field: this.serializeFieldSignature(value.getFieldSignature()),
|
|
528
546
|
};
|
|
529
547
|
}
|
|
530
|
-
else if (value instanceof Ref_1.AbstractFieldRef) {
|
|
531
|
-
throw new Error('Unhandled FieldRef: ' + util_1.default.inspect(value, { showHidden: true, depth: null }));
|
|
532
|
-
}
|
|
533
|
-
else if (value instanceof Ref_1.AbstractRef) {
|
|
534
|
-
throw new Error('Unhandled Ref: ' + util_1.default.inspect(value, { showHidden: true, depth: null }));
|
|
535
|
-
}
|
|
536
|
-
else if (value instanceof Expr_1.AbstractExpr) {
|
|
537
|
-
throw new Error('Unhandled Expr: ' + util_1.default.inspect(value, { showHidden: true, depth: null }));
|
|
538
|
-
}
|
|
539
548
|
else {
|
|
540
|
-
|
|
549
|
+
console.warn(`Unhandled Value: ${value.constructor.name} (${value.toString()})`);
|
|
550
|
+
return {
|
|
551
|
+
_: value.constructor.name,
|
|
552
|
+
text: value.toString(),
|
|
553
|
+
type: this.serializeType(value.getType()),
|
|
554
|
+
};
|
|
541
555
|
}
|
|
542
556
|
}
|
|
543
557
|
serializeStmt(stmt) {
|
|
@@ -578,7 +592,11 @@ class JsonPrinter extends Printer_1.Printer {
|
|
|
578
592
|
};
|
|
579
593
|
}
|
|
580
594
|
else {
|
|
581
|
-
|
|
595
|
+
console.warn(`Unhandled Stmt: ${stmt.constructor.name} (${stmt.toString()})`);
|
|
596
|
+
return {
|
|
597
|
+
_: stmt.constructor.name,
|
|
598
|
+
text: stmt.toString(),
|
|
599
|
+
};
|
|
582
600
|
}
|
|
583
601
|
}
|
|
584
602
|
}
|
|
@@ -15,6 +15,7 @@ export declare class PrinterUtils {
|
|
|
15
15
|
static getOriginType(cls: ArkClass): number;
|
|
16
16
|
static isComponentPop(invokeExpr: ArkStaticInvokeExpr): boolean;
|
|
17
17
|
static isComponentCreate(invokeExpr: ArkStaticInvokeExpr): boolean;
|
|
18
|
+
static isConstructorInvoke(invokeExpr: ArkInstanceInvokeExpr): boolean;
|
|
18
19
|
static isComponentAttributeInvoke(invokeExpr: ArkInstanceInvokeExpr, visitor?: Set<ArkInstanceInvokeExpr>): boolean;
|
|
19
20
|
static isComponentIfBranchInvoke(invokeExpr: ArkStaticInvokeExpr): boolean;
|
|
20
21
|
static isComponentIfElseInvoke(invokeExpr: ArkStaticInvokeExpr): boolean;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"PrinterUtils.d.ts","sourceRoot":"","sources":["../../../src/save/base/PrinterUtils.ts"],"names":[],"mappings":"AAgBA,OAAO,EAAE,qBAAqB,EAAsB,mBAAmB,EAAE,oBAAoB,EAAE,MAAM,sBAAsB,CAAC;AAE5H,OAAO,EAAiB,IAAI,EAAE,MAAM,sBAAsB,CAAC;AAS3D,OAAO,EAAE,QAAQ,EAAiB,MAAM,2BAA2B,CAAC;AAGpE,OAAO,EAAE,cAAc,EAAE,MAAM,+BAA+B,CAAC;AAC/D,OAAO,EAAE,YAAY,EAAE,MAAM,+BAA+B,CAAC;AAM7D,eAAO,MAAM,wBAAwB,MAAM,CAAC;AAE5C,qBAAa,YAAY;IACrB,OAAc,uBAAuB,sBAQlC;WAEW,gBAAgB,CAAC,IAAI,EAAE,MAAM,GAAG,OAAO;WAIvC,cAAc,CAAC,IAAI,EAAE,MAAM,GAAG,OAAO;WAIrC,iBAAiB,CAAC,IAAI,EAAE,MAAM,GAAG,OAAO;WAIxC,mBAAmB,CAAC,IAAI,EAAE,MAAM,GAAG,OAAO;WAI1C,iBAAiB,CAAC,IAAI,EAAE,IAAI,GAAG,IAAI,EAAE,EAAE,EAAE,oBAAoB,GAAG,OAAO;WAqBvE,MAAM,CAAC,IAAI,EAAE,MAAM,GAAG,OAAO;WAI7B,aAAa,CAAC,GAAG,EAAE,QAAQ,GAAG,MAAM;WAOpC,cAAc,CAAC,UAAU,EAAE,mBAAmB,GAAG,OAAO;WAWxD,iBAAiB,CAAC,UAAU,EAAE,mBAAmB,GAAG,OAAO;WAW3D,0BAA0B,CAAC,UAAU,EAAE,qBAAqB,EAAE,OAAO,GAAE,GAAG,CAAC,qBAAqB,CAAa,GAAG,OAAO;WA2BvH,yBAAyB,CAAC,UAAU,EAAE,mBAAmB,GAAG,OAAO;WAUnE,uBAAuB,CAAC,UAAU,EAAE,mBAAmB,GAAG,OAAO;WAajE,4BAA4B,CAAC,cAAc,EAAE,cAAc,EAAE,SAAS,CAAC,EAAE,YAAY,GAAG,MAAM;WAoB9F,gBAAgB,CAAC,IAAI,EAAE,MAAM,GAAG,OAAO;WAevC,MAAM,CAAC,IAAI,EAAE,MAAM,GAAG,MAAM;CAY7C"}
|
|
1
|
+
{"version":3,"file":"PrinterUtils.d.ts","sourceRoot":"","sources":["../../../src/save/base/PrinterUtils.ts"],"names":[],"mappings":"AAgBA,OAAO,EAAE,qBAAqB,EAAsB,mBAAmB,EAAE,oBAAoB,EAAE,MAAM,sBAAsB,CAAC;AAE5H,OAAO,EAAiB,IAAI,EAAE,MAAM,sBAAsB,CAAC;AAS3D,OAAO,EAAE,QAAQ,EAAiB,MAAM,2BAA2B,CAAC;AAGpE,OAAO,EAAE,cAAc,EAAE,MAAM,+BAA+B,CAAC;AAC/D,OAAO,EAAE,YAAY,EAAE,MAAM,+BAA+B,CAAC;AAM7D,eAAO,MAAM,wBAAwB,MAAM,CAAC;AAE5C,qBAAa,YAAY;IACrB,OAAc,uBAAuB,sBAQlC;WAEW,gBAAgB,CAAC,IAAI,EAAE,MAAM,GAAG,OAAO;WAIvC,cAAc,CAAC,IAAI,EAAE,MAAM,GAAG,OAAO;WAIrC,iBAAiB,CAAC,IAAI,EAAE,MAAM,GAAG,OAAO;WAIxC,mBAAmB,CAAC,IAAI,EAAE,MAAM,GAAG,OAAO;WAI1C,iBAAiB,CAAC,IAAI,EAAE,IAAI,GAAG,IAAI,EAAE,EAAE,EAAE,oBAAoB,GAAG,OAAO;WAqBvE,MAAM,CAAC,IAAI,EAAE,MAAM,GAAG,OAAO;WAI7B,aAAa,CAAC,GAAG,EAAE,QAAQ,GAAG,MAAM;WAOpC,cAAc,CAAC,UAAU,EAAE,mBAAmB,GAAG,OAAO;WAWxD,iBAAiB,CAAC,UAAU,EAAE,mBAAmB,GAAG,OAAO;WAW3D,mBAAmB,CAAC,UAAU,EAAE,qBAAqB,GAAG,OAAO;WAK/D,0BAA0B,CAAC,UAAU,EAAE,qBAAqB,EAAE,OAAO,GAAE,GAAG,CAAC,qBAAqB,CAAa,GAAG,OAAO;WA2BvH,yBAAyB,CAAC,UAAU,EAAE,mBAAmB,GAAG,OAAO;WAUnE,uBAAuB,CAAC,UAAU,EAAE,mBAAmB,GAAG,OAAO;WAajE,4BAA4B,CAAC,cAAc,EAAE,cAAc,EAAE,SAAS,CAAC,EAAE,YAAY,GAAG,MAAM;WAoB9F,gBAAgB,CAAC,IAAI,EAAE,MAAM,GAAG,OAAO;WAevC,MAAM,CAAC,IAAI,EAAE,MAAM,GAAG,MAAM;CAY7C"}
|
|
@@ -108,6 +108,10 @@ class PrinterUtils {
|
|
|
108
108
|
}
|
|
109
109
|
return false;
|
|
110
110
|
}
|
|
111
|
+
static isConstructorInvoke(invokeExpr) {
|
|
112
|
+
let methodName = invokeExpr.getMethodSignature().getMethodSubSignature().getMethodName();
|
|
113
|
+
return this.isConstructorMethod(methodName);
|
|
114
|
+
}
|
|
111
115
|
static isComponentAttributeInvoke(invokeExpr, visitor = new Set()) {
|
|
112
116
|
if (visitor.has(invokeExpr)) {
|
|
113
117
|
return false;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"SourceStmt.d.ts","sourceRoot":"","sources":["../../../src/save/source/SourceStmt.ts"],"names":[],"mappings":"AAgBA,OAAO,EAAyB,eAAe,EAAyD,MAAM,sBAAsB,CAAC;AACrI,OAAO,EAAE,KAAK,EAAE,MAAM,uBAAuB,CAAC;AAE9C,OAAO,EAA0B,aAAa,EAAE,SAAS,EAAE,aAAa,EAAE,aAAa,EAAE,iBAAiB,EAAE,YAAY,EAAE,IAAI,EAAE,MAAM,sBAAsB,CAAC;AAC7J,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,GAAG,IAAI;IAI3B,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;
|
|
1
|
+
{"version":3,"file":"SourceStmt.d.ts","sourceRoot":"","sources":["../../../src/save/source/SourceStmt.ts"],"names":[],"mappings":"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"}
|
|
@@ -148,6 +148,9 @@ class SourceAssignStmt extends SourceStmt {
|
|
|
148
148
|
else if (this.rightOp instanceof Expr_1.ArkStaticInvokeExpr && PrinterUtils_1.PrinterUtils.isComponentCreate(this.rightOp)) {
|
|
149
149
|
this.transferRightComponentCreate();
|
|
150
150
|
}
|
|
151
|
+
else if (this.rightOp instanceof Expr_1.ArkInstanceInvokeExpr && PrinterUtils_1.PrinterUtils.isConstructorInvoke(this.rightOp)) {
|
|
152
|
+
this.transferConstructorInvokeExpr(this.rightOp);
|
|
153
|
+
}
|
|
151
154
|
else if (this.rightOp instanceof Expr_1.ArkInstanceInvokeExpr && PrinterUtils_1.PrinterUtils.isComponentAttributeInvoke(this.rightOp)) {
|
|
152
155
|
this.transferRightComponentAttribute();
|
|
153
156
|
}
|
|
@@ -241,8 +244,8 @@ class SourceAssignStmt extends SourceStmt {
|
|
|
241
244
|
if (this.context.getStmtReader().hasNext()) {
|
|
242
245
|
let stmt = this.context.getStmtReader().next();
|
|
243
246
|
let rollback = true;
|
|
244
|
-
if (stmt instanceof Stmt_1.
|
|
245
|
-
let instanceInvokeExpr = stmt.
|
|
247
|
+
if (stmt instanceof Stmt_1.ArkAssignStmt && stmt.getRightOp() instanceof Expr_1.ArkInstanceInvokeExpr) {
|
|
248
|
+
let instanceInvokeExpr = stmt.getRightOp();
|
|
246
249
|
if ('constructor' === instanceInvokeExpr.getMethodSignature().getMethodSubSignature().getMethodName() &&
|
|
247
250
|
instanceInvokeExpr.getBase().getName() === this.leftOp.getName()) {
|
|
248
251
|
this.handleConstructorInvoke(instanceInvokeExpr, originType);
|
|
@@ -278,6 +281,12 @@ class SourceAssignStmt extends SourceStmt {
|
|
|
278
281
|
this.rightCode = `new ${this.transformer.typeToString(this.rightOp.getType())}(${args.join(', ')})`;
|
|
279
282
|
}
|
|
280
283
|
}
|
|
284
|
+
transferConstructorInvokeExpr(expr) {
|
|
285
|
+
let rightCode = this.transformer.valueToString(this.rightOp);
|
|
286
|
+
const pattern = /\([^)]*\)\.constructor/;
|
|
287
|
+
this.rightCode = rightCode.replace(pattern, '');
|
|
288
|
+
this.dumpType = AssignStmtDumpType.NORMAL;
|
|
289
|
+
}
|
|
281
290
|
/**
|
|
282
291
|
* $temp0 = newarray[4]
|
|
283
292
|
* $temp0[0] = 1
|