arkanalyzer 1.0.52 → 1.0.53

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.
@@ -21,7 +21,8 @@ export declare abstract class AbstractInvokeExpr extends AbstractExpr {
21
21
  private methodSignature;
22
22
  private args;
23
23
  private realGenericTypes?;
24
- constructor(methodSignature: MethodSignature, args: Value[], realGenericTypes?: Type[]);
24
+ private spreadFlags?;
25
+ constructor(methodSignature: MethodSignature, args: Value[], realGenericTypes?: Type[], spreadFlags?: boolean[]);
25
26
  /**
26
27
  * Get method Signature. The method signature is consist of ClassSignature and MethodSubSignature.
27
28
  * It is the unique flag of a method. It is usually used to compose a expression string in ArkIRTransformer.
@@ -71,11 +72,13 @@ export declare abstract class AbstractInvokeExpr extends AbstractExpr {
71
72
  getType(): Type;
72
73
  getRealGenericTypes(): Type[] | undefined;
73
74
  setRealGenericTypes(realTypes: Type[] | undefined): void;
75
+ getSpreadFlags(): boolean[] | undefined;
74
76
  getUses(): Value[];
77
+ protected argsToString(): string;
75
78
  }
76
79
  export declare class ArkInstanceInvokeExpr extends AbstractInvokeExpr {
77
80
  private base;
78
- constructor(base: Local, methodSignature: MethodSignature, args: Value[], realGenericTypes?: Type[]);
81
+ constructor(base: Local, methodSignature: MethodSignature, args: Value[], realGenericTypes?: Type[], spreadFlags?: boolean[]);
79
82
  /**
80
83
  * Returns the local of the instance of invoke expression.
81
84
  * @returns The local of the invoke expression's instance..
@@ -93,7 +96,7 @@ export declare class ArkInstanceInvokeExpr extends AbstractInvokeExpr {
93
96
  inferType(arkMethod: ArkMethod): AbstractInvokeExpr;
94
97
  }
95
98
  export declare class ArkStaticInvokeExpr extends AbstractInvokeExpr {
96
- constructor(methodSignature: MethodSignature, args: Value[], realGenericTypes?: Type[]);
99
+ constructor(methodSignature: MethodSignature, args: Value[], realGenericTypes?: Type[], spreadFlags?: boolean[]);
97
100
  toString(): string;
98
101
  inferType(arkMethod: ArkMethod): AbstractInvokeExpr;
99
102
  }
@@ -117,7 +120,7 @@ export declare class ArkStaticInvokeExpr extends AbstractInvokeExpr {
117
120
  */
118
121
  export declare class ArkPtrInvokeExpr extends AbstractInvokeExpr {
119
122
  private funPtr;
120
- constructor(methodSignature: MethodSignature, ptr: Local | AbstractFieldRef, args: Value[], realGenericTypes?: Type[]);
123
+ constructor(methodSignature: MethodSignature, ptr: Local | AbstractFieldRef, args: Value[], realGenericTypes?: Type[], spreadFlags?: boolean[]);
121
124
  setFunPtrLocal(ptr: Local | AbstractFieldRef): void;
122
125
  getFuncPtrLocal(): Local | AbstractFieldRef;
123
126
  inferType(arkMethod: ArkMethod): AbstractInvokeExpr;
@@ -1 +1 @@
1
- {"version":3,"file":"Expr.d.ts","sourceRoot":"","sources":["../../../src/core/base/Expr.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"Expr.d.ts","sourceRoot":"","sources":["../../../src/core/base/Expr.ts"],"names":[],"mappings":"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"}
@@ -37,11 +37,12 @@ class AbstractExpr {
37
37
  }
38
38
  exports.AbstractExpr = AbstractExpr;
39
39
  class AbstractInvokeExpr extends AbstractExpr {
40
- constructor(methodSignature, args, realGenericTypes) {
40
+ constructor(methodSignature, args, realGenericTypes, spreadFlags) {
41
41
  super();
42
42
  this.methodSignature = methodSignature;
43
43
  this.args = args;
44
44
  this.realGenericTypes = realGenericTypes;
45
+ this.spreadFlags = spreadFlags;
45
46
  }
46
47
  /**
47
48
  * Get method Signature. The method signature is consist of ClassSignature and MethodSubSignature.
@@ -115,6 +116,9 @@ class AbstractInvokeExpr extends AbstractExpr {
115
116
  this.realGenericTypes = realTypes;
116
117
  }
117
118
  }
119
+ getSpreadFlags() {
120
+ return this.spreadFlags;
121
+ }
118
122
  getUses() {
119
123
  let uses = [];
120
124
  uses.push(...this.args);
@@ -123,11 +127,27 @@ class AbstractInvokeExpr extends AbstractExpr {
123
127
  }
124
128
  return uses;
125
129
  }
130
+ argsToString() {
131
+ const strs = [];
132
+ strs.push('(');
133
+ if (this.getArgs().length > 0) {
134
+ for (let i = 0; i < this.getArgs().length; i++) {
135
+ if (this.spreadFlags && this.spreadFlags[i]) {
136
+ strs.push('...');
137
+ }
138
+ strs.push(this.getArgs()[i].toString());
139
+ strs.push(', ');
140
+ }
141
+ strs.pop();
142
+ }
143
+ strs.push(')');
144
+ return strs.join('');
145
+ }
126
146
  }
127
147
  exports.AbstractInvokeExpr = AbstractInvokeExpr;
128
148
  class ArkInstanceInvokeExpr extends AbstractInvokeExpr {
129
- constructor(base, methodSignature, args, realGenericTypes) {
130
- super(methodSignature, args, realGenericTypes);
149
+ constructor(base, methodSignature, args, realGenericTypes, spreadFlags) {
150
+ super(methodSignature, args, realGenericTypes, spreadFlags);
131
151
  this.base = base;
132
152
  }
133
153
  /**
@@ -162,15 +182,8 @@ class ArkInstanceInvokeExpr extends AbstractInvokeExpr {
162
182
  strs.push(this.base.toString());
163
183
  strs.push('.<');
164
184
  strs.push(this.getMethodSignature().toString());
165
- strs.push('>(');
166
- if (this.getArgs().length > 0) {
167
- for (const arg of this.getArgs()) {
168
- strs.push(arg.toString());
169
- strs.push(', ');
170
- }
171
- strs.pop();
172
- }
173
- strs.push(')');
185
+ strs.push('>');
186
+ strs.push(super.argsToString());
174
187
  return strs.join('');
175
188
  }
176
189
  inferType(arkMethod) {
@@ -179,22 +192,15 @@ class ArkInstanceInvokeExpr extends AbstractInvokeExpr {
179
192
  }
180
193
  exports.ArkInstanceInvokeExpr = ArkInstanceInvokeExpr;
181
194
  class ArkStaticInvokeExpr extends AbstractInvokeExpr {
182
- constructor(methodSignature, args, realGenericTypes) {
183
- super(methodSignature, args, realGenericTypes);
195
+ constructor(methodSignature, args, realGenericTypes, spreadFlags) {
196
+ super(methodSignature, args, realGenericTypes, spreadFlags);
184
197
  }
185
198
  toString() {
186
199
  let strs = [];
187
200
  strs.push('staticinvoke <');
188
201
  strs.push(this.getMethodSignature().toString());
189
- strs.push('>(');
190
- if (this.getArgs().length > 0) {
191
- for (const arg of this.getArgs()) {
192
- strs.push(arg.toString());
193
- strs.push(', ');
194
- }
195
- strs.pop();
196
- }
197
- strs.push(')');
202
+ strs.push('>');
203
+ strs.push(super.argsToString());
198
204
  return strs.join('');
199
205
  }
200
206
  inferType(arkMethod) {
@@ -221,8 +227,8 @@ exports.ArkStaticInvokeExpr = ArkStaticInvokeExpr;
221
227
  * ```
222
228
  */
223
229
  class ArkPtrInvokeExpr extends AbstractInvokeExpr {
224
- constructor(methodSignature, ptr, args, realGenericTypes) {
225
- super(methodSignature, args, realGenericTypes);
230
+ constructor(methodSignature, ptr, args, realGenericTypes, spreadFlags) {
231
+ super(methodSignature, args, realGenericTypes, spreadFlags);
226
232
  this.funPtr = ptr;
227
233
  }
228
234
  setFunPtrLocal(ptr) {
@@ -254,15 +260,8 @@ class ArkPtrInvokeExpr extends AbstractInvokeExpr {
254
260
  ptrName = this.funPtr.getFieldName();
255
261
  }
256
262
  strs.push(this.getMethodSignature().toString(ptrName));
257
- strs.push('>(');
258
- if (this.getArgs().length > 0) {
259
- for (const arg of this.getArgs()) {
260
- strs.push(arg.toString());
261
- strs.push(', ');
262
- }
263
- strs.pop();
264
- }
265
- strs.push(')');
263
+ strs.push('>');
264
+ strs.push(super.argsToString());
266
265
  return strs.join('');
267
266
  }
268
267
  getUses() {
@@ -57,6 +57,7 @@ export declare class ArkValueTransformer {
57
57
  private newExpressionToValueAndStmts;
58
58
  private newArrayExpressionToValueAndStmts;
59
59
  private arrayLiteralExpressionToValueAndStmts;
60
+ private generateArrayExprFromLiteral;
60
61
  private generateArrayExprAndStmts;
61
62
  private prefixUnaryExpressionToValueAndStmts;
62
63
  private postfixUnaryExpressionToValueAndStmts;
@@ -1 +1 @@
1
- {"version":3,"file":"ArkValueTransformer.d.ts","sourceRoot":"","sources":["../../../src/core/common/ArkValueTransformer.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"ArkValueTransformer.d.ts","sourceRoot":"","sources":["../../../src/core/common/ArkValueTransformer.ts"],"names":[],"mappings":"AAeA,OAAO,KAAK,EAAE,MAAM,iBAAiB,CAAC;AACtC,OAAO,EAAE,KAAK,EAAE,MAAM,eAAe,CAAC;AAEtC,OAAO,EAAE,sBAAsB,EAAiD,MAAM,cAAc,CAAC;AAuBrG,OAAO,EACH,SAAS,EAcT,IAAI,EAMP,MAAM,cAAc,CAAC;AAetB,OAAO,EAAyE,SAAS,EAAE,MAAM,aAAa,CAAC;AAE/G,OAAO,EAAE,SAAS,EAAE,MAAM,oBAAoB,CAAC;AAK/C,OAAO,EAAE,gBAAgB,EAAa,aAAa,EAAE,MAAM,oBAAoB,CAAC;AAOhF,qBAAa,mBAAmB;IACrB,qBAAqB,EAAE,MAAM,CAAK;IACzC,OAAO,CAAC,WAAW,CAAa;IAChC,OAAO,CAAC,UAAU,CAAgB;IAClC,OAAO,CAAC,MAAM,CAAiC;IAC/C,OAAO,CAAC,OAAO,CAAC,CAAyB;IACzC,OAAO,CAAC,SAAS,CAAQ;IACzB,OAAO,CAAC,eAAe,CAAY;IACnC,OAAO,CAAC,gBAAgB,CAAmB;IAC3C,OAAO,CAAC,YAAY,CAA+D;IACnF,OAAO,CAAC,wBAAwB,CAAS;gBAE7B,gBAAgB,EAAE,gBAAgB,EAAE,UAAU,EAAE,EAAE,CAAC,UAAU,EAAE,eAAe,EAAE,SAAS;IAQ9F,SAAS,IAAI,GAAG,CAAC,KAAK,CAAC;IAIvB,YAAY,IAAI,KAAK;IAIrB,eAAe,IAAI,GAAG,CAAC,MAAM,EAAE,CAAC,SAAS,EAAE,sBAAsB,CAAC,CAAC;IAInE,WAAW,CAAC,SAAS,EAAE,MAAM,EAAE,SAAS,GAAE,IAAgC,GAAG,KAAK;IAMlF,UAAU,IAAI,GAAG,CAAC,MAAM,EAAE,SAAS,CAAC,GAAG,IAAI;IAIlD,OAAO,CAAC,YAAY;IAOb,qBAAqB,CAAC,IAAI,EAAE,EAAE,CAAC,IAAI,GAAG,aAAa;IAsE1D,OAAO,CAAC,kCAAkC;IAe1C,OAAO,CAAC,6BAA6B;IAQrC,OAAO,CAAC,8BAA8B;IAQtC,OAAO,CAAC,oCAAoC;IA4C5C,OAAO,CAAC,qCAAqC;IAoC7C,OAAO,CAAC,2BAA2B;IAwBnC,OAAO,CAAC,sBAAsB;IAiD9B,OAAO,CAAC,8BAA8B;IAqBtC,OAAO,CAAC,yBAAyB;IASjC,OAAO,CAAC,qCAAqC;IAa7C,OAAO,CAAC,8BAA8B;IAoBtC,OAAO,CAAC,iCAAiC;IAkBzC,OAAO,CAAC,2BAA2B;IA8CnC,OAAO,CAAC,oBAAoB;IAqD5B,OAAO,CAAC,uCAAuC;IA+B/C,OAAO,CAAC,qBAAqB;IAoD7B,OAAO,CAAC,yBAAyB;IAmBjC,OAAO,CAAC,+BAA+B;IA+DvC,OAAO,CAAC,sCAAsC;IAgD9C,OAAO,CAAC,6BAA6B;IAMrC,OAAO,CAAC,2BAA2B;IAkCnC,OAAO,CAAC,oBAAoB;IAsC5B,OAAO,CAAC,iBAAiB;IA4CzB,OAAO,CAAC,gBAAgB;IAYxB,OAAO,CAAC,qBAAqB;IAQ7B,OAAO,CAAC,oBAAoB;IA4B5B,OAAO,CAAC,mBAAmB;IA4B3B,OAAO,CAAC,8BAA8B;IA+BtC,OAAO,CAAC,cAAc;IAyCtB,OAAO,CAAC,2BAA2B;IAiBnC,OAAO,CAAC,4BAA4B;IAmDpC,OAAO,CAAC,iCAAiC;IA0CzC,OAAO,CAAC,qCAAqC;IAqD7C,OAAO,CAAC,4BAA4B;IAyBpC,OAAO,CAAC,yBAAyB;IA2BjC,OAAO,CAAC,oCAAoC;IAqD5C,OAAO,CAAC,qCAAqC;IAgD7C,OAAO,CAAC,8BAA8B;IAyBtC,OAAO,CAAC,8BAA8B;IAqBtC,OAAO,CAAC,+BAA+B;IAevC,OAAO,CAAC,6BAA6B;IAerC,OAAO,CAAC,gCAAgC;IAIxC,OAAO,CAAC,sCAAsC;IAI9C,OAAO,CAAC,+BAA+B;IAevC,OAAO,CAAC,2BAA2B;IAyBnC,OAAO,CAAC,4BAA4B;IAe7B,sCAAsC,CAAC,uBAAuB,EAAE,EAAE,CAAC,uBAAuB,GAAG,aAAa;IAc1G,kCAAkC,CAAC,mBAAmB,EAAE,EAAE,CAAC,mBAAmB,EAAE,OAAO,EAAE,OAAO,EACnG,WAAW,GAAE,OAAc,GAAG,aAAa;IAO/C,OAAO,CAAC,yBAAyB;IAsDjC,OAAO,CAAC,gCAAgC;IAgCxC,OAAO,CAAC,iCAAiC;IA+CzC,OAAO,CAAC,kCAAkC;IA0C1C,OAAO,CAAC,+BAA+B;IAkEvC,OAAO,CAAC,iCAAiC;IA+CzC,OAAO,CAAC,uCAAuC;IAqCxC,wBAAwB,CAAC,SAAS,EAAE,EAAE,CAAC,UAAU,GAAG,aAAa;IA+BxE,OAAO,CAAC,0BAA0B;IA6ClC,OAAO,CAAC,gBAAgB;IAUjB,iBAAiB,CAAC,SAAS,GAAE,IAAgC,GAAG,KAAK;IAQ5E,OAAO,CAAC,oBAAoB;IAa5B,OAAO,CAAC,aAAa;IAiBd,eAAe,CAAC,IAAI,EAAE,EAAE,CAAC,QAAQ,GAAG,IAAI;IA+D/C,OAAO,CAAC,oBAAoB;IA+B5B,OAAO,CAAC,uBAAuB;WAqBjB,sBAAsB,CAAC,eAAe,EAAE,EAAE,CAAC,eAAe,EAAE,UAAU,EAAE,EAAE,CAAC,UAAU,GAAG,IAAI;IAmB1G,OAAO,CAAC,8BAA8B;IA6CtC,OAAO,CAAC,wBAAwB;IAqChC,OAAO,CAAC,sBAAsB;IAY9B,OAAO,CAAC,uBAAuB;WAOjB,4BAA4B,CAAC,QAAQ,EAAE,EAAE,CAAC,UAAU,GAAG,OAAO;CAoB/E"}
@@ -190,6 +190,9 @@ class ArkValueTransformer {
190
190
  else if (ts.isConditionalExpression(node)) {
191
191
  return this.conditionalExpressionToValueAndStmts(node);
192
192
  }
193
+ else if (ts.isSpreadElement(node)) {
194
+ return this.tsNodeToValueAndStmts(node.expression);
195
+ }
193
196
  return {
194
197
  value: new Local_1.Local(node.getText(this.sourceFile)),
195
198
  valueOriginalPositions: [Position_1.FullPosition.buildFromNode(node, this.sourceFile)],
@@ -201,7 +204,11 @@ class ArkValueTransformer {
201
204
  let { value, valueOriginalPositions, stmts } = this.tsNodeToValueAndStmts(node);
202
205
  stmts.forEach(stmt => allStmts.push(stmt));
203
206
  if (IRUtils_1.IRUtils.moreThanOneAddress(value)) {
204
- ({ value, valueOriginalPositions, stmts } = this.arkIRTransformer.generateAssignStmtForValue(value, valueOriginalPositions));
207
+ ({
208
+ value,
209
+ valueOriginalPositions,
210
+ stmts,
211
+ } = this.arkIRTransformer.generateAssignStmtForValue(value, valueOriginalPositions));
205
212
  stmts.forEach(stmt => allStmts.push(stmt));
206
213
  }
207
214
  return { value, valueOriginalPositions, stmts: allStmts };
@@ -276,11 +283,7 @@ class ArkValueTransformer {
276
283
  const assignStmtPositions = [newExprLocalPositions[0], newExprLocalPositions[0], ...newExprLocalPositions];
277
284
  assignStmt.setOperandOriginalPositions(assignStmtPositions);
278
285
  stmts.push(assignStmt);
279
- return {
280
- value: newExprLocal,
281
- valueOriginalPositions: assignStmtPositions,
282
- stmts: stmts,
283
- };
286
+ return { value: newExprLocal, valueOriginalPositions: assignStmtPositions, stmts: stmts };
284
287
  }
285
288
  generateSystemComponentStmt(componentName, args, argPositionsAllFlat, componentExpression, currStmts) {
286
289
  const stmts = [...currStmts];
@@ -322,7 +325,7 @@ class ArkValueTransformer {
322
325
  anonymous.pos = componentExpression.body.pos;
323
326
  // @ts-expect-error: add end info for the created ArrowFunction
324
327
  anonymous.end = componentExpression.body.end;
325
- const { value: builderMethod, valueOriginalPositions: builderMethodPositions } = this.callableNodeToValueAndStmts(anonymous);
328
+ const { value: builderMethod, valueOriginalPositions: builderMethodPositions, } = this.callableNodeToValueAndStmts(anonymous);
326
329
  createViewArgs.push(builderMethod);
327
330
  createViewArgPositionsAll.push(builderMethodPositions);
328
331
  }
@@ -357,11 +360,11 @@ class ArkValueTransformer {
357
360
  etsComponentExpressionToValueAndStmts(etsComponentExpression) {
358
361
  const stmts = [];
359
362
  const componentName = etsComponentExpression.expression.text;
360
- const { args: args, argPositions: argPositions } = this.parseArguments(stmts, etsComponentExpression.arguments);
363
+ const { argValues: argValues, argPositions: argPositions, } = this.parseArguments(stmts, etsComponentExpression.arguments);
361
364
  if ((0, EtsConst_1.isEtsSystemComponent)(componentName)) {
362
- return this.generateSystemComponentStmt(componentName, args, argPositions, etsComponentExpression, stmts);
365
+ return this.generateSystemComponentStmt(componentName, argValues, argPositions, etsComponentExpression, stmts);
363
366
  }
364
- return this.generateCustomViewStmt(componentName, args, argPositions, etsComponentExpression, stmts);
367
+ return this.generateCustomViewStmt(componentName, argValues, argPositions, etsComponentExpression, stmts);
365
368
  }
366
369
  classExpressionToValueAndStmts(classExpression) {
367
370
  const declaringArkClass = this.declaringMethod.getDeclaringArkClass();
@@ -384,7 +387,7 @@ class ArkValueTransformer {
384
387
  };
385
388
  }
386
389
  templateExpressionToValueAndStmts(templateExpression) {
387
- const { stmts, stringTextValues, placeholderValues, stringTextPositions, placeholderPositions } = this.collectTemplateValues(templateExpression);
390
+ const { stmts, stringTextValues, placeholderValues, stringTextPositions, placeholderPositions, } = this.collectTemplateValues(templateExpression);
388
391
  const { placeholderStringLocals, placeholderStringLocalPositions, newStmts } = this.processTemplatePlaceholders(placeholderValues, placeholderPositions, stmts);
389
392
  return this.combineTemplateParts(stringTextValues, stringTextPositions, placeholderStringLocals, placeholderStringLocalPositions, newStmts);
390
393
  }
@@ -455,7 +458,7 @@ class ArkValueTransformer {
455
458
  };
456
459
  }
457
460
  taggedTemplateExpressionToValueAndStmts(taggedTemplateExpression) {
458
- const { stmts, stringTextValues, placeholderValues, stringTextPositions, placeholderPositions } = this.collectTemplateValues(taggedTemplateExpression.template);
461
+ const { stmts, stringTextValues, placeholderValues, stringTextPositions, placeholderPositions, } = this.collectTemplateValues(taggedTemplateExpression.template);
459
462
  const stringTextBaseType = Type_1.StringType.getInstance();
460
463
  const stringTextArrayLen = stringTextValues.length;
461
464
  const stringTextArrayLenValue = ValueUtil_1.ValueUtil.getOrCreateNumberConst(stringTextArrayLen);
@@ -467,8 +470,7 @@ class ArkValueTransformer {
467
470
  const placeholdersArrayLenPosition = Position_1.FullPosition.DEFAULT;
468
471
  const { value: placeholdersLocal, valueOriginalPositions: placeholdersLocalPositions, stmts: placeholdersStmts, } = this.generateArrayExprAndStmts(placeholderBaseType, placeholdersArrayLenValue, placeholdersArrayLenPosition, placeholdersArrayLen, placeholderValues, placeholderPositions, templateObjectStmts, Position_1.FullPosition.DEFAULT, true);
469
472
  const taggedFuncArgus = {
470
- realGenericTypes: undefined,
471
- argValues: [templateObjectLocal, placeholdersLocal],
473
+ realGenericTypes: undefined, argValues: [templateObjectLocal, placeholdersLocal],
472
474
  argPositions: [templateObjectLocalPositions[0], placeholdersLocalPositions[0]],
473
475
  };
474
476
  return this.generateInvokeValueAndStmts(taggedTemplateExpression.tag, taggedFuncArgus, placeholdersStmts, taggedTemplateExpression);
@@ -491,7 +493,7 @@ class ArkValueTransformer {
491
493
  const stringTextPositions = [Position_1.FullPosition.buildFromNode(head, this.sourceFile)];
492
494
  const placeholderPositions = [];
493
495
  for (const templateSpan of templateLiteral.templateSpans) {
494
- let { value: exprValue, valueOriginalPositions: exprPositions, stmts: exprStmts } = this.tsNodeToValueAndStmts(templateSpan.expression);
496
+ let { value: exprValue, valueOriginalPositions: exprPositions, stmts: exprStmts, } = this.tsNodeToValueAndStmts(templateSpan.expression);
495
497
  exprStmts.forEach(stmt => stmts.push(stmt));
496
498
  if (IRUtils_1.IRUtils.moreThanOneAddress(exprValue)) {
497
499
  ({
@@ -536,7 +538,7 @@ class ArkValueTransformer {
536
538
  }
537
539
  propertyAccessExpressionToValue(propertyAccessExpression) {
538
540
  const stmts = [];
539
- let { value: baseValue, valueOriginalPositions: basePositions, stmts: baseStmts } = this.tsNodeToValueAndStmts(propertyAccessExpression.expression);
541
+ let { value: baseValue, valueOriginalPositions: basePositions, stmts: baseStmts, } = this.tsNodeToValueAndStmts(propertyAccessExpression.expression);
540
542
  baseStmts.forEach(stmt => stmts.push(stmt));
541
543
  if (IRUtils_1.IRUtils.moreThanOneAddress(baseValue)) {
542
544
  ({
@@ -582,7 +584,7 @@ class ArkValueTransformer {
582
584
  }
583
585
  elementAccessExpressionToValueAndStmts(elementAccessExpression) {
584
586
  const stmts = [];
585
- let { value: baseValue, valueOriginalPositions: basePositions, stmts: baseStmts } = this.tsNodeToValueAndStmts(elementAccessExpression.expression);
587
+ let { value: baseValue, valueOriginalPositions: basePositions, stmts: baseStmts, } = this.tsNodeToValueAndStmts(elementAccessExpression.expression);
586
588
  baseStmts.forEach(stmt => stmts.push(stmt));
587
589
  if (!(baseValue instanceof Local_1.Local)) {
588
590
  ({
@@ -654,11 +656,11 @@ class ArkValueTransformer {
654
656
  const invokeExprPositions = [invokeExprPosition];
655
657
  if (calleeValue instanceof Ref_1.ArkInstanceFieldRef) {
656
658
  invokeExpr =
657
- new Expr_1.ArkInstanceInvokeExpr(calleeValue.getBase(), methodSignature, args.argValues, args.realGenericTypes);
659
+ new Expr_1.ArkInstanceInvokeExpr(calleeValue.getBase(), methodSignature, args.argValues, args.realGenericTypes, args.spreadFlags);
658
660
  invokeExprPositions.push(...calleePositions.slice(1));
659
661
  }
660
662
  else {
661
- invokeExpr = new Expr_1.ArkStaticInvokeExpr(methodSignature, args.argValues, args.realGenericTypes);
663
+ invokeExpr = new Expr_1.ArkStaticInvokeExpr(methodSignature, args.argValues, args.realGenericTypes, args.spreadFlags);
662
664
  }
663
665
  invokeExprPositions.push(...args.argPositions);
664
666
  return {
@@ -681,11 +683,11 @@ class ArkValueTransformer {
681
683
  const methodSignature = ArkSignatureBuilder_1.ArkSignatureBuilder.buildMethodSignatureFromMethodName(calleeName);
682
684
  if (!((_a = this.getGlobals()) === null || _a === void 0 ? void 0 : _a.has(calleeName)) || calleeValue.getType() instanceof Type_1.FunctionType) {
683
685
  // the call to the left value or a value of function type should be ptr invoke expr.
684
- invokeExpr = new Expr_1.ArkPtrInvokeExpr(methodSignature, calleeValue, args.argValues, args.realGenericTypes);
686
+ invokeExpr = new Expr_1.ArkPtrInvokeExpr(methodSignature, calleeValue, args.argValues, args.realGenericTypes, args.spreadFlags);
685
687
  invokeExprPositions.push(...calleePositions.slice(1));
686
688
  }
687
689
  else {
688
- invokeExpr = new Expr_1.ArkStaticInvokeExpr(methodSignature, args.argValues, args.realGenericTypes);
690
+ invokeExpr = new Expr_1.ArkStaticInvokeExpr(methodSignature, args.argValues, args.realGenericTypes, args.spreadFlags);
689
691
  }
690
692
  invokeExprPositions.push(...args.argPositions);
691
693
  return {
@@ -711,7 +713,7 @@ class ArkValueTransformer {
711
713
  const stmts = [...currStmts];
712
714
  const methodSignature = ArkSignatureBuilder_1.ArkSignatureBuilder.buildMethodSignatureFromMethodName(functionNameNode.argumentExpression.getText());
713
715
  stmts.pop();
714
- const invokeExpr = new Expr_1.ArkInstanceInvokeExpr(calleeValue.getBase(), methodSignature, args.argValues, args.realGenericTypes);
716
+ const invokeExpr = new Expr_1.ArkInstanceInvokeExpr(calleeValue.getBase(), methodSignature, args.argValues, args.realGenericTypes, args.spreadFlags);
715
717
  const invokeExprPositions = [invokeExprPosition, calleePositions.slice(1)[0],
716
718
  ...args.argPositions];
717
719
  return {
@@ -724,7 +726,7 @@ class ArkValueTransformer {
724
726
  const stmts = [...currStmts];
725
727
  const { value: newCalleeValue, stmts: newStmts } = this.arkIRTransformer.generateAssignStmtForValue(calleeValue, calleePositions);
726
728
  stmts.push(...newStmts);
727
- const invokeExpr = new Expr_1.ArkPtrInvokeExpr(ArkSignatureBuilder_1.ArkSignatureBuilder.buildMethodSignatureFromMethodName(newCalleeValue.getName()), newCalleeValue, args.argValues, args.realGenericTypes);
729
+ const invokeExpr = new Expr_1.ArkPtrInvokeExpr(ArkSignatureBuilder_1.ArkSignatureBuilder.buildMethodSignatureFromMethodName(newCalleeValue.getName()), newCalleeValue, args.argValues, args.realGenericTypes, args.spreadFlags);
728
730
  const invokeExprPositions = [invokeExprPosition, calleePositions.slice(1)[0],
729
731
  ...args.argPositions];
730
732
  return {
@@ -748,41 +750,36 @@ class ArkValueTransformer {
748
750
  builderMethodIndexes = new Set([1]);
749
751
  }
750
752
  }
751
- const { args: args, argPositions: argPositions } = this.parseArguments(currStmts, callExpression.arguments, builderMethodIndexes);
752
- return {
753
- realGenericTypes: realGenericTypes,
754
- argValues: args,
755
- argPositions: argPositions,
756
- };
753
+ const { argValues, argPositions, spreadFlags, } = this.parseArguments(currStmts, callExpression.arguments, builderMethodIndexes);
754
+ return { realGenericTypes, argValues, argPositions, spreadFlags };
757
755
  }
758
756
  parseArguments(currStmts, argumentNodes, builderMethodIndexes) {
759
- const args = [];
757
+ const argValues = [];
760
758
  const argPositions = [];
759
+ let spreadFlags = [];
761
760
  if (argumentNodes) {
761
+ spreadFlags = new Array(argumentNodes.length).fill(false);
762
762
  for (let i = 0; i < argumentNodes.length; i++) {
763
+ spreadFlags[i] = ts.isSpreadElement(argumentNodes[i]);
763
764
  const argument = argumentNodes[i];
764
765
  const prevBuilderMethodContextFlag = this.builderMethodContextFlag;
765
766
  if (builderMethodIndexes === null || builderMethodIndexes === void 0 ? void 0 : builderMethodIndexes.has(i)) {
766
767
  this.builderMethodContextFlag = true;
767
768
  this.arkIRTransformer.setBuilderMethodContextFlag(true);
768
769
  }
769
- let { value: argValue, valueOriginalPositions: argPositionsSingle, stmts: argStmts } = this.tsNodeToValueAndStmts(argument);
770
+ let { value: argValue, valueOriginalPositions: argPositionsSingle, stmts: argStmts, } = this.tsNodeToSingleAddressValueAndStmts(argument);
770
771
  this.builderMethodContextFlag = prevBuilderMethodContextFlag;
771
772
  this.arkIRTransformer.setBuilderMethodContextFlag(prevBuilderMethodContextFlag);
772
773
  argStmts.forEach(s => currStmts.push(s));
773
- if (IRUtils_1.IRUtils.moreThanOneAddress(argValue)) {
774
- ({
775
- value: argValue,
776
- valueOriginalPositions: argPositionsSingle,
777
- stmts: argStmts,
778
- } = this.arkIRTransformer.generateAssignStmtForValue(argValue, argPositionsSingle));
779
- argStmts.forEach(s => currStmts.push(s));
780
- }
781
- args.push(argValue);
774
+ argValues.push(argValue);
782
775
  argPositions.push(argPositionsSingle[0]);
783
776
  }
784
777
  }
785
- return { args: args, argPositions: argPositions };
778
+ return {
779
+ argValues,
780
+ argPositions,
781
+ spreadFlags: spreadFlags.every((f) => f === false) ? undefined : spreadFlags,
782
+ };
786
783
  }
787
784
  callableNodeToValueAndStmts(callableNode) {
788
785
  const declaringClass = this.declaringMethod.getDeclaringArkClass();
@@ -829,7 +826,7 @@ class ArkValueTransformer {
829
826
  newExprStmts.forEach(stmt => stmts.push(stmt));
830
827
  const constructorMethodSubSignature = ArkSignatureBuilder_1.ArkSignatureBuilder.buildMethodSubSignatureFromMethodName(TSConst_1.CONSTRUCTOR_NAME);
831
828
  const constructorMethodSignature = new ArkSignature_1.MethodSignature(classSignature, constructorMethodSubSignature);
832
- const { args: argValues, argPositions: argPositions } = this.parseArguments(stmts, newExpression.arguments);
829
+ const { argValues: argValues, argPositions: argPositions, } = this.parseArguments(stmts, newExpression.arguments);
833
830
  const instanceInvokeExpr = new Expr_1.ArkInstanceInvokeExpr(newLocal, constructorMethodSignature, argValues);
834
831
  const assignStmt = new Stmt_1.ArkAssignStmt(newLocal, instanceInvokeExpr);
835
832
  const assignStmtPositions = [newLocalPositions[0], newLocalPositions[0], ...newLocalPositions, ...argPositions];
@@ -846,13 +843,13 @@ class ArkValueTransformer {
846
843
  }
847
844
  }
848
845
  const stmts = [];
849
- const { args: argumentValues, argPositions: argPositions } = this.parseArguments(stmts, newArrayExpression.arguments);
846
+ const { argValues, argPositions } = this.parseArguments(stmts, newArrayExpression.arguments);
850
847
  let argumentsLength = newArrayExpression.arguments ? newArrayExpression.arguments.length : 0;
851
848
  let arrayLengthValue;
852
849
  let arrayLength = -1;
853
850
  let arrayLengthPosition = Position_1.FullPosition.DEFAULT;
854
- if (argumentsLength === 1 && (argumentValues[0].getType() instanceof Type_1.NumberType || argumentValues[0].getType() instanceof Type_1.UnknownType)) {
855
- arrayLengthValue = argumentValues[0];
851
+ if (argumentsLength === 1 && (argValues[0].getType() instanceof Type_1.NumberType || argValues[0].getType() instanceof Type_1.UnknownType)) {
852
+ arrayLengthValue = argValues[0];
856
853
  arrayLengthPosition = argPositions[0];
857
854
  }
858
855
  else {
@@ -860,46 +857,75 @@ class ArkValueTransformer {
860
857
  arrayLength = argumentsLength;
861
858
  }
862
859
  if (baseType instanceof Type_1.UnknownType) {
863
- if (argumentsLength > 1 && !(argumentValues[0].getType() instanceof Type_1.UnknownType)) {
864
- baseType = argumentValues[0].getType();
860
+ if (argumentsLength > 1 && !(argValues[0].getType() instanceof Type_1.UnknownType)) {
861
+ baseType = argValues[0].getType();
865
862
  }
866
863
  else {
867
864
  baseType = Type_1.AnyType.getInstance();
868
865
  }
869
866
  }
870
867
  const newArrayExprPosition = Position_1.FullPosition.buildFromNode(newArrayExpression, this.sourceFile);
871
- return this.generateArrayExprAndStmts(baseType, arrayLengthValue, arrayLengthPosition, arrayLength, argumentValues, argPositions, stmts, newArrayExprPosition, false);
868
+ return this.generateArrayExprAndStmts(baseType, arrayLengthValue, arrayLengthPosition, arrayLength, argValues, argPositions, stmts, newArrayExprPosition, false);
872
869
  }
873
870
  arrayLiteralExpressionToValueAndStmts(arrayLiteralExpression) {
874
871
  const stmts = [];
875
- const elementTypes = new Set();
872
+ const elementTypes = [];
876
873
  const elementValues = [];
877
874
  const elementPositions = [];
878
875
  const arrayLength = arrayLiteralExpression.elements.length;
879
- for (const element of arrayLiteralExpression.elements) {
880
- let { value: elementValue, valueOriginalPositions: elementPosition, stmts: elementStmts } = this.tsNodeToValueAndStmts(element);
881
- elementStmts.forEach(stmt => stmts.push(stmt));
882
- if (IRUtils_1.IRUtils.moreThanOneAddress(elementValue)) {
883
- ({
884
- value: elementValue,
885
- valueOriginalPositions: elementPosition,
886
- stmts: elementStmts,
887
- } = this.arkIRTransformer.generateAssignStmtForValue(elementValue, elementPosition));
888
- elementStmts.forEach(stmt => stmts.push(stmt));
876
+ let firstSpreadIdx = -1;
877
+ for (let i = 0; i < arrayLength; i++) {
878
+ if (ts.isSpreadElement(arrayLiteralExpression.elements[i]) && firstSpreadIdx === -1) {
879
+ firstSpreadIdx = i;
889
880
  }
881
+ const { value: elementValue, valueOriginalPositions: elementPosition, stmts: elementStmts } = this.tsNodeToSingleAddressValueAndStmts(arrayLiteralExpression.elements[i]);
882
+ elementStmts.forEach(stmt => stmts.push(stmt));
890
883
  elementValues.push(elementValue);
891
- elementTypes.add(elementValue.getType());
884
+ elementTypes.push(elementValue.getType());
892
885
  elementPositions.push(elementPosition[0]);
893
886
  }
887
+ const wholePosition = Position_1.FullPosition.buildFromNode(arrayLiteralExpression, this.sourceFile);
888
+ if (firstSpreadIdx === -1) { // only literal elements
889
+ return this.generateArrayExprFromLiteral(elementValues, elementTypes, elementPositions, wholePosition, 0, arrayLength, stmts);
890
+ }
891
+ else if (firstSpreadIdx === 0) {
892
+ if (arrayLength === 1) { // only spread element
893
+ const sliceMethodSubSignature = ArkSignatureBuilder_1.ArkSignatureBuilder.buildMethodSubSignatureFromMethodName(Builtin_1.Builtin.SLICE);
894
+ const sliceMethodSignature = new ArkSignature_1.MethodSignature(Builtin_1.Builtin.ARRAY_CLASS_SIGNATURE, sliceMethodSubSignature);
895
+ const sliceInvokeExpr = new Expr_1.ArkInstanceInvokeExpr(elementValues[0], sliceMethodSignature, []);
896
+ const sliceInvokeExprPositions = [wholePosition, elementPositions[0]];
897
+ return { value: sliceInvokeExpr, valueOriginalPositions: sliceInvokeExprPositions, stmts: stmts };
898
+ }
899
+ else { // spread element start
900
+ const concatMethodSubSignature = ArkSignatureBuilder_1.ArkSignatureBuilder.buildMethodSubSignatureFromMethodName(Builtin_1.Builtin.CONCAT);
901
+ const concatMethodSignature = new ArkSignature_1.MethodSignature(Builtin_1.Builtin.ARRAY_CLASS_SIGNATURE, concatMethodSubSignature);
902
+ const concatInvokeExpr = new Expr_1.ArkInstanceInvokeExpr(elementValues[0], concatMethodSignature, elementValues.slice(1));
903
+ const concatInvokeExprPositions = [wholePosition, ...elementPositions];
904
+ return { value: concatInvokeExpr, valueOriginalPositions: concatInvokeExprPositions, stmts: stmts };
905
+ }
906
+ }
907
+ else { // contains spread elements and begins with literal elements.
908
+ const beginLiteralValueAndStmts = this.generateArrayExprFromLiteral(elementValues, elementTypes, elementPositions, wholePosition, 0, firstSpreadIdx, stmts);
909
+ const concatMethodSubSignature = ArkSignatureBuilder_1.ArkSignatureBuilder.buildMethodSubSignatureFromMethodName(Builtin_1.Builtin.CONCAT);
910
+ const concatMethodSignature = new ArkSignature_1.MethodSignature(Builtin_1.Builtin.ARRAY_CLASS_SIGNATURE, concatMethodSubSignature);
911
+ const concatInvokeExpr = new Expr_1.ArkInstanceInvokeExpr(beginLiteralValueAndStmts.value, concatMethodSignature, elementValues.slice(firstSpreadIdx));
912
+ const concatInvokeExprPositions = [wholePosition, beginLiteralValueAndStmts.valueOriginalPositions[0],
913
+ ...elementPositions.slice(firstSpreadIdx)];
914
+ return { value: concatInvokeExpr, valueOriginalPositions: concatInvokeExprPositions, stmts: beginLiteralValueAndStmts.stmts };
915
+ }
916
+ }
917
+ generateArrayExprFromLiteral(elementValues, elementTypes, elementPositions, wholePosition, start, end, currStmts) {
918
+ const elementTypesSet = new Set(elementTypes.slice(start, end));
894
919
  let baseType = Type_1.AnyType.getInstance();
895
- if (elementTypes.size === 1) {
896
- baseType = elementTypes.keys().next().value;
920
+ if (elementTypesSet.size === 1) {
921
+ baseType = elementTypes[0];
897
922
  }
898
- else if (elementTypes.size > 1) {
899
- baseType = new Type_1.UnionType(Array.from(elementTypes));
923
+ else if (elementTypesSet.size > 1) {
924
+ baseType = new Type_1.UnionType(Array.from(elementTypesSet));
900
925
  }
901
- const newArrayExprPosition = Position_1.FullPosition.buildFromNode(arrayLiteralExpression, this.sourceFile);
902
- return this.generateArrayExprAndStmts(baseType, ValueUtil_1.ValueUtil.getOrCreateNumberConst(arrayLength), Position_1.FullPosition.DEFAULT, arrayLength, elementValues, elementPositions, stmts, newArrayExprPosition, true);
926
+ const newArrayExprPosition = (start === end || (end - start) === elementPositions.length)
927
+ ? wholePosition : Position_1.FullPosition.merge(elementPositions[0], elementPositions[end - 1]);
928
+ return this.generateArrayExprAndStmts(baseType, ValueUtil_1.ValueUtil.getOrCreateNumberConst(end - start), Position_1.FullPosition.DEFAULT, end - start, elementValues.slice(start, end), elementPositions.slice(start, end), currStmts, newArrayExprPosition, true);
903
929
  }
904
930
  generateArrayExprAndStmts(baseType, arrayLengthValue, arrayLengthPosition, arrayLength, initializerValues, initializerPositions, currStmts, newArrayExprPosition, fromLiteral) {
905
931
  const stmts = [...currStmts];
@@ -1018,7 +1044,7 @@ class ArkValueTransformer {
1018
1044
  }
1019
1045
  awaitExpressionToValueAndStmts(awaitExpression) {
1020
1046
  const stmts = [];
1021
- let { value: promiseValue, valueOriginalPositions: promisePositions, stmts: promiseStmts } = this.tsNodeToValueAndStmts(awaitExpression.expression);
1047
+ let { value: promiseValue, valueOriginalPositions: promisePositions, stmts: promiseStmts, } = this.tsNodeToValueAndStmts(awaitExpression.expression);
1022
1048
  promiseStmts.forEach(stmt => stmts.push(stmt));
1023
1049
  if (IRUtils_1.IRUtils.moreThanOneAddress(promiseValue)) {
1024
1050
  ({
@@ -1041,7 +1067,11 @@ class ArkValueTransformer {
1041
1067
  let yieldPositions = [Position_1.FullPosition.DEFAULT];
1042
1068
  let stmts = [];
1043
1069
  if (yieldExpression.expression) {
1044
- ({ value: yieldValue, valueOriginalPositions: yieldPositions, stmts: stmts } = this.tsNodeToValueAndStmts(yieldExpression.expression));
1070
+ ({
1071
+ value: yieldValue,
1072
+ valueOriginalPositions: yieldPositions,
1073
+ stmts: stmts,
1074
+ } = this.tsNodeToValueAndStmts(yieldExpression.expression));
1045
1075
  }
1046
1076
  const yieldExpr = new Expr_1.ArkYieldExpr(yieldValue);
1047
1077
  const yieldExprPositions = [Position_1.FullPosition.buildFromNode(yieldExpression, this.sourceFile), ...yieldPositions];
@@ -1052,7 +1082,7 @@ class ArkValueTransformer {
1052
1082
  };
1053
1083
  }
1054
1084
  deleteExpressionToValueAndStmts(deleteExpression) {
1055
- const { value: exprValue, valueOriginalPositions: exprPositions, stmts: stmts } = this.tsNodeToValueAndStmts(deleteExpression.expression);
1085
+ const { value: exprValue, valueOriginalPositions: exprPositions, stmts: stmts, } = this.tsNodeToValueAndStmts(deleteExpression.expression);
1056
1086
  const deleteExpr = new Expr_1.ArkDeleteExpr(exprValue);
1057
1087
  const deleteExprPositions = [Position_1.FullPosition.buildFromNode(deleteExpression, this.sourceFile), ...exprPositions];
1058
1088
  return {
@@ -1062,7 +1092,7 @@ class ArkValueTransformer {
1062
1092
  };
1063
1093
  }
1064
1094
  voidExpressionToValueAndStmts(voidExpression) {
1065
- const { value: exprValue, valueOriginalPositions: exprPositions, stmts: stmts } = this.tsNodeToValueAndStmts(voidExpression.expression);
1095
+ const { value: exprValue, valueOriginalPositions: exprPositions, stmts: stmts, } = this.tsNodeToValueAndStmts(voidExpression.expression);
1066
1096
  const { stmts: exprStmts } = this.arkIRTransformer.generateAssignStmtForValue(exprValue, exprPositions);
1067
1097
  exprStmts.forEach(stmt => stmts.push(stmt));
1068
1098
  return {
@@ -1078,7 +1108,7 @@ class ArkValueTransformer {
1078
1108
  return this.tsNodeToValueAndStmts(parenthesizedExpression.expression);
1079
1109
  }
1080
1110
  typeOfExpressionToValueAndStmts(typeOfExpression) {
1081
- const { value: exprValue, valueOriginalPositions: exprPositions, stmts: exprStmts } = this.tsNodeToValueAndStmts(typeOfExpression.expression);
1111
+ const { value: exprValue, valueOriginalPositions: exprPositions, stmts: exprStmts, } = this.tsNodeToValueAndStmts(typeOfExpression.expression);
1082
1112
  const typeOfExpr = new Expr_1.ArkTypeOfExpr(exprValue);
1083
1113
  const typeOfExprPositions = [Position_1.FullPosition.buildFromNode(typeOfExpression, this.sourceFile), ...exprPositions];
1084
1114
  return {
@@ -1089,7 +1119,7 @@ class ArkValueTransformer {
1089
1119
  }
1090
1120
  asExpressionToValueAndStmts(asExpression) {
1091
1121
  const stmts = [];
1092
- let { value: exprValue, valueOriginalPositions: exprPositions, stmts: exprStmts } = this.tsNodeToValueAndStmts(asExpression.expression);
1122
+ let { value: exprValue, valueOriginalPositions: exprPositions, stmts: exprStmts, } = this.tsNodeToValueAndStmts(asExpression.expression);
1093
1123
  exprStmts.forEach(stmt => stmts.push(stmt));
1094
1124
  if (IRUtils_1.IRUtils.moreThanOneAddress(exprValue)) {
1095
1125
  ({
@@ -1108,7 +1138,7 @@ class ArkValueTransformer {
1108
1138
  };
1109
1139
  }
1110
1140
  typeAssertionToValueAndStmts(typeAssertion) {
1111
- const { value: exprValue, valueOriginalPositions: exprPositions, stmts: exprStmts } = this.tsNodeToValueAndStmts(typeAssertion.expression);
1141
+ const { value: exprValue, valueOriginalPositions: exprPositions, stmts: exprStmts, } = this.tsNodeToValueAndStmts(typeAssertion.expression);
1112
1142
  const castExpr = new Expr_1.ArkCastExpr(exprValue, this.resolveTypeNode(typeAssertion.type));
1113
1143
  const castExprPositions = [Position_1.FullPosition.buildFromNode(typeAssertion, this.sourceFile), ...exprPositions];
1114
1144
  return {
@@ -1142,9 +1172,11 @@ class ArkValueTransformer {
1142
1172
  leftValueAndStmts = this.identifierToValueAndStmts(leftOpNode, variableDefFlag);
1143
1173
  }
1144
1174
  else if (ts.isArrayBindingPattern(leftOpNode) || ts.isArrayLiteralExpression(leftOpNode)) {
1175
+ // In declaration, it is ArrayBindingPattern. And in assignment, it is ArrayLiteralExpression.
1145
1176
  leftValueAndStmts = this.arrayDestructuringToValueAndStmts(leftOpNode, isConst);
1146
1177
  }
1147
1178
  else if (ts.isObjectBindingPattern(leftOpNode) || ts.isObjectLiteralExpression(leftOpNode)) {
1179
+ // In declaration, it is ObjectBindingPattern. And in assignment, it is ObjectLiteralExpression.
1148
1180
  leftValueAndStmts = this.objectDestructuringToValueAndStmts(leftOpNode, isConst);
1149
1181
  }
1150
1182
  else {
@@ -1159,18 +1191,15 @@ class ArkValueTransformer {
1159
1191
  leftValue.setConstFlag(isConst);
1160
1192
  leftValue.setType(declarationType);
1161
1193
  }
1162
- if (leftValue.getType() instanceof Type_1.UnknownType &&
1163
- !(rightValue.getType() instanceof Type_1.UnknownType) &&
1194
+ if (leftValue.getType() instanceof Type_1.UnknownType && !(rightValue.getType() instanceof Type_1.UnknownType) &&
1164
1195
  !(rightValue.getType() instanceof Type_1.UndefinedType)) {
1165
1196
  leftValue.setType(rightValue.getType());
1166
1197
  }
1167
1198
  }
1168
1199
  const assignStmt = new Stmt_1.ArkAssignStmt(leftValue, rightValue);
1169
1200
  assignStmt.setOperandOriginalPositions([...leftPositions, ...rightPositions]);
1170
- if (ts.isArrayBindingPattern(leftOpNode) ||
1171
- ts.isArrayLiteralExpression(leftOpNode) ||
1172
- ts.isObjectBindingPattern(leftOpNode) ||
1173
- ts.isObjectLiteralExpression(leftOpNode)) {
1201
+ if (ts.isArrayBindingPattern(leftOpNode) || ts.isArrayLiteralExpression(leftOpNode) ||
1202
+ ts.isObjectBindingPattern(leftOpNode) || ts.isObjectLiteralExpression(leftOpNode)) {
1174
1203
  rightStmts.forEach(stmt => stmts.push(stmt));
1175
1204
  stmts.push(assignStmt);
1176
1205
  leftStmts.forEach(stmt => stmts.push(stmt));
@@ -1196,7 +1225,11 @@ class ArkValueTransformer {
1196
1225
  let tempRightStmts = [];
1197
1226
  const rightStmts = [];
1198
1227
  if (rightOpNode) {
1199
- ({ value: rightValue, valueOriginalPositions: rightPositions, stmts: tempRightStmts } = this.tsNodeToValueAndStmts(rightOpNode));
1228
+ ({
1229
+ value: rightValue,
1230
+ valueOriginalPositions: rightPositions,
1231
+ stmts: tempRightStmts,
1232
+ } = this.tsNodeToValueAndStmts(rightOpNode));
1200
1233
  tempRightStmts.forEach(stmt => rightStmts.push(stmt));
1201
1234
  }
1202
1235
  else {
@@ -1221,25 +1254,44 @@ class ArkValueTransformer {
1221
1254
  arrayDestructuringToValueAndStmts(arrayDestructuring, isConst = false) {
1222
1255
  const stmts = [];
1223
1256
  const arrayTempLocal = this.generateTempLocal();
1224
- const leftOriginalPosition = Position_1.FullPosition.buildFromNode(arrayDestructuring, this.sourceFile);
1257
+ const wholePosition = Position_1.FullPosition.buildFromNode(arrayDestructuring, this.sourceFile);
1225
1258
  const elements = arrayDestructuring.elements;
1226
1259
  const isArrayBindingPattern = ts.isArrayBindingPattern(arrayDestructuring);
1227
- let index = 0;
1228
- for (const element of elements) {
1229
- const arrayRef = new Ref_1.ArkArrayRef(arrayTempLocal, ValueUtil_1.ValueUtil.getOrCreateNumberConst(index));
1230
- const arrayRefPositions = [leftOriginalPosition, leftOriginalPosition, Position_1.FullPosition.DEFAULT];
1231
- const itemName = element.getText(this.sourceFile);
1260
+ for (let i = 0; i < elements.length; i++) {
1261
+ const element = elements[i];
1262
+ let itemName;
1263
+ if (ts.isSpreadElement(element)) {
1264
+ itemName = element.expression.getText(this.sourceFile);
1265
+ }
1266
+ else if (ts.isBindingElement(element) && element.dotDotDotToken) {
1267
+ itemName = element.name.getText(this.sourceFile);
1268
+ }
1269
+ else {
1270
+ itemName = element.getText(this.sourceFile);
1271
+ }
1232
1272
  const targetLocal = isArrayBindingPattern ? this.addNewLocal(itemName) : this.getOrCreateLocal(itemName);
1233
1273
  const targetLocalPosition = Position_1.FullPosition.buildFromNode(element, this.sourceFile);
1234
- isArrayBindingPattern && targetLocal.setConstFlag(isConst);
1235
- const assignStmt = new Stmt_1.ArkAssignStmt(targetLocal, arrayRef);
1236
- assignStmt.setOperandOriginalPositions([targetLocalPosition, ...arrayRefPositions]);
1237
- stmts.push(assignStmt);
1238
- index++;
1274
+ if (ts.isSpreadElement(element) || (ts.isBindingElement(element) && element.dotDotDotToken)) {
1275
+ const sliceMethodSubSignature = ArkSignatureBuilder_1.ArkSignatureBuilder.buildMethodSubSignatureFromMethodName(Builtin_1.Builtin.SLICE);
1276
+ const sliceMethodSignature = new ArkSignature_1.MethodSignature(Builtin_1.Builtin.ARRAY_CLASS_SIGNATURE, sliceMethodSubSignature);
1277
+ const sliceInvokeExpr = new Expr_1.ArkInstanceInvokeExpr(arrayTempLocal, sliceMethodSignature, [ValueUtil_1.ValueUtil.getOrCreateNumberConst(i)]);
1278
+ const sliceInvokeExprPositions = [wholePosition, targetLocalPosition];
1279
+ const assignStmt = new Stmt_1.ArkAssignStmt(targetLocal, sliceInvokeExpr);
1280
+ assignStmt.setOperandOriginalPositions([targetLocalPosition, ...sliceInvokeExprPositions]);
1281
+ stmts.push(assignStmt);
1282
+ }
1283
+ else {
1284
+ const arrayRef = new Ref_1.ArkArrayRef(arrayTempLocal, ValueUtil_1.ValueUtil.getOrCreateNumberConst(i));
1285
+ const arrayRefPositions = [wholePosition, wholePosition, Position_1.FullPosition.DEFAULT];
1286
+ isArrayBindingPattern && targetLocal.setConstFlag(isConst);
1287
+ const assignStmt = new Stmt_1.ArkAssignStmt(targetLocal, arrayRef);
1288
+ assignStmt.setOperandOriginalPositions([targetLocalPosition, ...arrayRefPositions]);
1289
+ stmts.push(assignStmt);
1290
+ }
1239
1291
  }
1240
1292
  return {
1241
1293
  value: arrayTempLocal,
1242
- valueOriginalPositions: [leftOriginalPosition],
1294
+ valueOriginalPositions: [wholePosition],
1243
1295
  stmts: stmts,
1244
1296
  };
1245
1297
  }
@@ -1297,7 +1349,7 @@ class ArkValueTransformer {
1297
1349
  }
1298
1350
  const stmts = [];
1299
1351
  const binaryExpressionPosition = Position_1.FullPosition.buildFromNode(binaryExpression, this.sourceFile);
1300
- const { value: opValue1, valueOriginalPositions: opPositions1, stmts: opStmts1 } = this.tsNodeToSingleAddressValueAndStmts(binaryExpression.left);
1352
+ const { value: opValue1, valueOriginalPositions: opPositions1, stmts: opStmts1, } = this.tsNodeToSingleAddressValueAndStmts(binaryExpression.left);
1301
1353
  opStmts1.forEach(stmt => stmts.push(stmt));
1302
1354
  if (operatorToken.kind === ts.SyntaxKind.InstanceOfKeyword) {
1303
1355
  const instanceOfExpr = new Expr_1.ArkInstanceOfExpr(opValue1, new Type_1.UnclearReferenceType(binaryExpression.right.getText(this.sourceFile)));
@@ -1310,7 +1362,7 @@ class ArkValueTransformer {
1310
1362
  stmts: stmts,
1311
1363
  };
1312
1364
  }
1313
- const { value: opValue2, valueOriginalPositions: opPositions2, stmts: opStmts2 } = this.tsNodeToSingleAddressValueAndStmts(binaryExpression.right);
1365
+ const { value: opValue2, valueOriginalPositions: opPositions2, stmts: opStmts2, } = this.tsNodeToSingleAddressValueAndStmts(binaryExpression.right);
1314
1366
  opStmts2.forEach(stmt => stmts.push(stmt));
1315
1367
  let exprValue;
1316
1368
  let exprValuePositions = [binaryExpressionPosition];
@@ -1341,9 +1393,9 @@ class ArkValueTransformer {
1341
1393
  }
1342
1394
  compoundAssignmentToValueAndStmts(binaryExpression) {
1343
1395
  const stmts = [];
1344
- let { value: leftValue, valueOriginalPositions: leftPositions, stmts: leftStmts } = this.tsNodeToValueAndStmts(binaryExpression.left);
1396
+ let { value: leftValue, valueOriginalPositions: leftPositions, stmts: leftStmts, } = this.tsNodeToValueAndStmts(binaryExpression.left);
1345
1397
  leftStmts.forEach(stmt => stmts.push(stmt));
1346
- let { value: rightValue, valueOriginalPositions: rightPositions, stmts: rightStmts } = this.tsNodeToValueAndStmts(binaryExpression.right);
1398
+ let { value: rightValue, valueOriginalPositions: rightPositions, stmts: rightStmts, } = this.tsNodeToValueAndStmts(binaryExpression.right);
1347
1399
  rightStmts.forEach(stmt => stmts.push(stmt));
1348
1400
  if (IRUtils_1.IRUtils.moreThanOneAddress(leftValue) && IRUtils_1.IRUtils.moreThanOneAddress(rightValue)) {
1349
1401
  const { value: newRightValue, valueOriginalPositions: newRightPositions, stmts: rightStmts, } = this.arkIRTransformer.generateAssignStmtForValue(rightValue, rightPositions);
@@ -1411,7 +1463,7 @@ class ArkValueTransformer {
1411
1463
  }
1412
1464
  conditionToValueAndStmts(condition) {
1413
1465
  const stmts = [];
1414
- let { value: conditionValue, valueOriginalPositions: conditionPositions, stmts: conditionStmts } = this.tsNodeToValueAndStmts(condition);
1466
+ let { value: conditionValue, valueOriginalPositions: conditionPositions, stmts: conditionStmts, } = this.tsNodeToValueAndStmts(condition);
1415
1467
  conditionStmts.forEach(stmt => stmts.push(stmt));
1416
1468
  let conditionExpr;
1417
1469
  if (conditionValue instanceof Expr_1.AbstractBinopExpr && this.isRelationalOperator(conditionValue.getOperator())) {
@@ -30,6 +30,8 @@ export declare class Builtin {
30
30
  static ITERATOR_RESULT_CLASS_TYPE: ClassType;
31
31
  static TO_STRING: string;
32
32
  static TO_STRING_METHOD_SIGNATURE: MethodSignature;
33
+ static SLICE: string;
34
+ static CONCAT: string;
33
35
  private static buildBuiltInClasses;
34
36
  private static buildBuiltInClassesFileSignature;
35
37
  static buildBuiltInClassSignature(className: string): ClassSignature;
@@ -1 +1 @@
1
- {"version":3,"file":"Builtin.d.ts","sourceRoot":"","sources":["../../../src/core/common/Builtin.ts"],"names":[],"mappings":"AAeA,OAAO,EAAE,cAAc,EAAE,aAAa,EAAE,eAAe,EAAsB,MAAM,uBAAuB,CAAC;AAC3G,OAAO,EAAE,SAAS,EAA2B,MAAM,cAAc,CAAC;AAElE,qBAAa,OAAO;IAGhB,OAAc,MAAM,SAAY;IAChC,OAAc,KAAK,SAAW;IAC9B,OAAc,GAAG,SAAS;IAC1B,OAAc,GAAG,SAAS;IAC1B,OAAc,MAAM,SAAY;IAEhC,OAAc,gBAAgB,cAA8B;IAG5D,OAAc,kBAAkB,SAAY;IAC5C,OAAc,eAAe,SAAkB;IAE/C,OAAc,+BAA+B,gBAA8C;IAC3F,OAAc,sBAAsB,iBAAgD;IACpF,OAAc,iBAAiB,YAA8C;IAC7E,OAAc,qBAAqB,iBAA+C;IAClF,OAAc,mBAAmB,iBAA6C;IAC9E,OAAc,mBAAmB,iBAA6C;IAC9E,OAAc,sBAAsB,iBAAgD;IACpF,OAAc,iBAAiB,YAA8C;IAC7E,OAAc,4BAA4B,8BAAwC;IAGlF,OAAc,iBAAiB,SAAqB;IACpD,OAAc,QAAQ,SAAsB;IAC5C,OAAc,aAAa,SAAU;IACrC,OAAc,eAAe,SAAoB;IACjD,OAAc,oBAAoB,SAAU;IAC5C,OAAc,qBAAqB,SAAW;IAE9C,OAAc,wBAAwB,iBAAkD;IACxF,OAAc,+BAA+B,iBAAyD;IACtG,OAAc,mBAAmB,YAAwE;IACzG,OAAc,0BAA0B,YAA+E;IAGvH,OAAc,SAAS,SAAc;IACrC,OAAc,0BAA0B,kBAGtC;IAEF,OAAO,CAAC,MAAM,CAAC,mBAAmB;IAUlC,OAAO,CAAC,MAAM,CAAC,gCAAgC;WAIjC,0BAA0B,CAAC,SAAS,EAAE,MAAM,GAAG,cAAc;IAI3E,OAAO,CAAC,MAAM,CAAC,6BAA6B;WAU9B,cAAc,CAAC,SAAS,EAAE,MAAM,GAAG,OAAO;CAG3D"}
1
+ {"version":3,"file":"Builtin.d.ts","sourceRoot":"","sources":["../../../src/core/common/Builtin.ts"],"names":[],"mappings":"AAeA,OAAO,EAAE,cAAc,EAAE,aAAa,EAAE,eAAe,EAAsB,MAAM,uBAAuB,CAAC;AAC3G,OAAO,EAAE,SAAS,EAA2B,MAAM,cAAc,CAAC;AAElE,qBAAa,OAAO;IAGhB,OAAc,MAAM,SAAY;IAChC,OAAc,KAAK,SAAW;IAC9B,OAAc,GAAG,SAAS;IAC1B,OAAc,GAAG,SAAS;IAC1B,OAAc,MAAM,SAAY;IAEhC,OAAc,gBAAgB,cAA8B;IAG5D,OAAc,kBAAkB,SAAY;IAC5C,OAAc,eAAe,SAAkB;IAE/C,OAAc,+BAA+B,gBAA8C;IAC3F,OAAc,sBAAsB,iBAAgD;IACpF,OAAc,iBAAiB,YAA8C;IAC7E,OAAc,qBAAqB,iBAA+C;IAClF,OAAc,mBAAmB,iBAA6C;IAC9E,OAAc,mBAAmB,iBAA6C;IAC9E,OAAc,sBAAsB,iBAAgD;IACpF,OAAc,iBAAiB,YAA8C;IAC7E,OAAc,4BAA4B,8BAAwC;IAGlF,OAAc,iBAAiB,SAAqB;IACpD,OAAc,QAAQ,SAAsB;IAC5C,OAAc,aAAa,SAAU;IACrC,OAAc,eAAe,SAAoB;IACjD,OAAc,oBAAoB,SAAU;IAC5C,OAAc,qBAAqB,SAAW;IAE9C,OAAc,wBAAwB,iBAAkD;IACxF,OAAc,+BAA+B,iBAAyD;IACtG,OAAc,mBAAmB,YAAwE;IACzG,OAAc,0BAA0B,YAA+E;IAGvH,OAAc,SAAS,SAAc;IACrC,OAAc,0BAA0B,kBAGtC;IAGF,OAAc,KAAK,SAAW;IAC9B,OAAc,MAAM,SAAY;IAEhC,OAAO,CAAC,MAAM,CAAC,mBAAmB;IAUlC,OAAO,CAAC,MAAM,CAAC,gCAAgC;WAIjC,0BAA0B,CAAC,SAAS,EAAE,MAAM,GAAG,cAAc;IAI3E,OAAO,CAAC,MAAM,CAAC,6BAA6B;WAU9B,cAAc,CAAC,SAAS,EAAE,MAAM,GAAG,OAAO;CAG3D"}
@@ -83,3 +83,6 @@ Builtin.ITERATOR_RESULT_CLASS_TYPE = new Type_1.ClassType(_a.ITERATOR_RESULT_CLA
83
83
  // constants for string
84
84
  Builtin.TO_STRING = 'toString';
85
85
  Builtin.TO_STRING_METHOD_SIGNATURE = new ArkSignature_1.MethodSignature(ArkSignature_1.ClassSignature.DEFAULT, new ArkSignature_1.MethodSubSignature(_a.TO_STRING, [], Type_1.StringType.getInstance(), false));
86
+ // constants for array
87
+ Builtin.SLICE = 'slice';
88
+ Builtin.CONCAT = 'concat';
@@ -36,7 +36,7 @@ export declare class MethodParameter implements Value {
36
36
  private name;
37
37
  private type;
38
38
  private optional;
39
- private dotDotDotToken;
39
+ private restFlag;
40
40
  private objElements;
41
41
  private arrayElements;
42
42
  constructor();
@@ -46,8 +46,8 @@ export declare class MethodParameter implements Value {
46
46
  setType(type: Type): void;
47
47
  isOptional(): boolean;
48
48
  setOptional(optional: boolean): void;
49
- hasDotDotDotToken(): boolean;
50
- setDotDotDotToken(dotDotDotToken: boolean): void;
49
+ isRest(): boolean;
50
+ setRestFlag(restFlag: boolean): void;
51
51
  addObjElement(element: ObjectBindingPatternParameter): void;
52
52
  getObjElements(): ObjectBindingPatternParameter[];
53
53
  setObjElements(objElements: ObjectBindingPatternParameter[]): void;
@@ -1 +1 @@
1
- {"version":3,"file":"ArkMethodBuilder.d.ts","sourceRoot":"","sources":["../../../../src/core/model/builder/ArkMethodBuilder.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"ArkMethodBuilder.d.ts","sourceRoot":"","sources":["../../../../src/core/model/builder/ArkMethodBuilder.ts"],"names":[],"mappings":"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"}
@@ -239,7 +239,7 @@ class MethodParameter {
239
239
  constructor() {
240
240
  this.name = '';
241
241
  this.optional = false;
242
- this.dotDotDotToken = false;
242
+ this.restFlag = false;
243
243
  this.objElements = [];
244
244
  this.arrayElements = [];
245
245
  }
@@ -261,11 +261,11 @@ class MethodParameter {
261
261
  setOptional(optional) {
262
262
  this.optional = optional;
263
263
  }
264
- hasDotDotDotToken() {
265
- return this.dotDotDotToken;
264
+ isRest() {
265
+ return this.restFlag;
266
266
  }
267
- setDotDotDotToken(dotDotDotToken) {
268
- this.dotDotDotToken = dotDotDotToken;
267
+ setRestFlag(restFlag) {
268
+ this.restFlag = restFlag;
269
269
  }
270
270
  addObjElement(element) {
271
271
  this.objElements.push(element);
@@ -1 +1 @@
1
- {"version":3,"file":"builderUtils.d.ts","sourceRoot":"","sources":["../../../../src/core/model/builder/builderUtils.ts"],"names":[],"mappings":"AAeA,OAAO,EAAE,EAAE,EAAE,cAAc,EAAE,oBAAoB,EAAE,QAAQ,EAAE,wBAAwB,EAAE,MAAM,iBAAiB,CAAC;AAC/G,OAAO,EACH,SAAS,EAIT,WAAW,EAGX,IAAI,EAIP,MAAM,iBAAiB,CAAC;AAEzB,OAAO,EAAE,QAAQ,EAAE,MAAM,aAAa,CAAC;AAEvC,OAAO,EAAE,QAAQ,EAAE,MAAM,aAAa,CAAC;AACvC,OAAO,EAAE,SAAS,EAAE,MAAM,cAAc,CAAC;AACzC,OAAO,EAAE,SAAS,EAAE,MAAM,sBAAsB,CAAC;AACjD,OAAO,EAA4D,eAAe,EAAiC,MAAM,oBAAoB,CAAC;AAyB9I,wBAAgB,mBAAmB,CAAC,IAAI,EAAE,EAAE,CAAC,aAAa,GAAG,MAAM,CAUlE;AAED,wBAAgB,8BAA8B,CAAC,IAAI,EAAE,EAAE,CAAC,wBAAwB,GAAG,MAAM,CAYxF;AAED,wBAAgB,eAAe,CAAC,IAAI,EAAE,EAAE,CAAC,IAAI,EAAE,UAAU,EAAE,EAAE,CAAC,UAAU,GAAG,GAAG,CAAC,SAAS,CAAC,CAUxF;AA2BD,wBAAgB,cAAc,CAAC,IAAI,EAAE,EAAE,CAAC,IAAI,GAAG,MAAM,CAUpD;AAED,wBAAgB,oBAAoB,CAAC,eAAe,CAAC,EAAE,EAAE,CAAC,SAAS,CAAC,cAAc,CAAC,GAAG,GAAG,CAAC,MAAM,EAAE,MAAM,CAAC,CAkBxG;AAED,wBAAgB,mBAAmB,CAC/B,cAAc,EAAE,EAAE,CAAC,SAAS,CAAC,wBAAwB,CAAC,EACtD,UAAU,EAAE,EAAE,CAAC,UAAU,EACzB,WAAW,EAAE,SAAS,GAAG,QAAQ,GAClC,WAAW,EAAE,CAyBf;AA4ED,wBAAgB,eAAe,CAAC,MAAM,EAAE,EAAE,CAAC,SAAS,CAAC,oBAAoB,CAAC,EAAE,WAAW,EAAE,SAAS,GAAG,QAAQ,EAAE,UAAU,EAAE,EAAE,CAAC,UAAU,GAAG,eAAe,EAAE,CA+C3J;AAED,wBAAgB,gBAAgB,CAAC,IAAI,EAAE,IAAI,EAAE,WAAW,EAAE,SAAS,GAAG,QAAQ,GAAG,SAAS,GAAG,IAAI,CAsDhG;AAED,wBAAgB,eAAe,CAAC,IAAI,EAAE,QAAQ,EAAE,UAAU,EAAE,EAAE,CAAC,UAAU,EAAE,MAAM,EAAE,SAAS,GAAG,IAAI,CAMlG;AAED,wBAAgB,WAAW,CACvB,QAAQ,EAAE,EAAE,CAAC,QAAQ,GAAG,EAAE,CAAC,wBAAwB,EACnD,UAAU,EAAE,EAAE,CAAC,UAAU,EACzB,WAAW,EAAE,SAAS,GAAG,QAAQ,GAAG,QAAQ,GAC7C,IAAI,CA8FN;AAED,wBAAgB,mBAAmB,CAAC,MAAM,EAAE,MAAM,GAAG,IAAI,CAiDxD"}
1
+ {"version":3,"file":"builderUtils.d.ts","sourceRoot":"","sources":["../../../../src/core/model/builder/builderUtils.ts"],"names":[],"mappings":"AAeA,OAAO,EAAE,EAAE,EAAE,cAAc,EAAE,oBAAoB,EAAE,QAAQ,EAAE,wBAAwB,EAAE,MAAM,iBAAiB,CAAC;AAC/G,OAAO,EACH,SAAS,EAIT,WAAW,EAGX,IAAI,EAIP,MAAM,iBAAiB,CAAC;AAEzB,OAAO,EAAE,QAAQ,EAAE,MAAM,aAAa,CAAC;AAEvC,OAAO,EAAE,QAAQ,EAAE,MAAM,aAAa,CAAC;AACvC,OAAO,EAAE,SAAS,EAAE,MAAM,cAAc,CAAC;AACzC,OAAO,EAAE,SAAS,EAAE,MAAM,sBAAsB,CAAC;AACjD,OAAO,EAGH,eAAe,EAElB,MAAM,oBAAoB,CAAC;AAyB5B,wBAAgB,mBAAmB,CAAC,IAAI,EAAE,EAAE,CAAC,aAAa,GAAG,MAAM,CAUlE;AAED,wBAAgB,8BAA8B,CAAC,IAAI,EAAE,EAAE,CAAC,wBAAwB,GAAG,MAAM,CAYxF;AAED,wBAAgB,eAAe,CAAC,IAAI,EAAE,EAAE,CAAC,IAAI,EAAE,UAAU,EAAE,EAAE,CAAC,UAAU,GAAG,GAAG,CAAC,SAAS,CAAC,CAUxF;AA2BD,wBAAgB,cAAc,CAAC,IAAI,EAAE,EAAE,CAAC,IAAI,GAAG,MAAM,CAUpD;AAED,wBAAgB,oBAAoB,CAAC,eAAe,CAAC,EAAE,EAAE,CAAC,SAAS,CAAC,cAAc,CAAC,GAAG,GAAG,CAAC,MAAM,EAAE,MAAM,CAAC,CAkBxG;AAED,wBAAgB,mBAAmB,CAC/B,cAAc,EAAE,EAAE,CAAC,SAAS,CAAC,wBAAwB,CAAC,EACtD,UAAU,EAAE,EAAE,CAAC,UAAU,EACzB,WAAW,EAAE,SAAS,GAAG,QAAQ,GAClC,WAAW,EAAE,CAyBf;AA4ED,wBAAgB,eAAe,CAAC,MAAM,EAAE,EAAE,CAAC,SAAS,CAAC,oBAAoB,CAAC,EAAE,WAAW,EAAE,SAAS,GAAG,QAAQ,EAAE,UAAU,EAAE,EAAE,CAAC,UAAU,GAAG,eAAe,EAAE,CA+C3J;AAED,wBAAgB,gBAAgB,CAAC,IAAI,EAAE,IAAI,EAAE,WAAW,EAAE,SAAS,GAAG,QAAQ,GAAG,SAAS,GAAG,IAAI,CAsDhG;AAED,wBAAgB,eAAe,CAAC,IAAI,EAAE,QAAQ,EAAE,UAAU,EAAE,EAAE,CAAC,UAAU,EAAE,MAAM,EAAE,SAAS,GAAG,IAAI,CAMlG;AAED,wBAAgB,WAAW,CACvB,QAAQ,EAAE,EAAE,CAAC,QAAQ,GAAG,EAAE,CAAC,wBAAwB,EACnD,UAAU,EAAE,EAAE,CAAC,UAAU,EACzB,WAAW,EAAE,SAAS,GAAG,QAAQ,GAAG,QAAQ,GAC7C,IAAI,CA8FN;AAED,wBAAgB,mBAAmB,CAAC,MAAM,EAAE,MAAM,GAAG,IAAI,CAiDxD"}
@@ -286,7 +286,7 @@ function buildParameters(params, arkInstance, sourceFile) {
286
286
  }
287
287
  // dotDotDotToken
288
288
  if (parameter.dotDotDotToken) {
289
- methodParameter.setDotDotDotToken(true);
289
+ methodParameter.setRestFlag(true);
290
290
  }
291
291
  // modifiers
292
292
  if (parameter.modifiers) {
@@ -1 +1 @@
1
- {"version":3,"file":"JsonPrinter.d.ts","sourceRoot":"","sources":["../../src/save/JsonPrinter.ts"],"names":[],"mappings":"AAeA,OAAO,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;AACpC,OAAO,EAAE,OAAO,EAAE,MAAM,uBAAuB,CAAC;AAuEhD,qBAAa,WAAY,SAAQ,OAAO;IACxB,OAAO,CAAC,OAAO;gBAAP,OAAO,EAAE,OAAO;IAI7B,IAAI,IAAI,MAAM;IAKrB,OAAO,CAAC,gBAAgB;IAUxB,OAAO,CAAC,kBAAkB;IAQ1B,OAAO,CAAC,cAAc;IActB,OAAO,CAAC,cAAc;IAUtB,OAAO,CAAC,eAAe;IAWvB,OAAO,CAAC,mBAAmB;IAO3B,OAAO,CAAC,wBAAwB;IAShC,OAAO,CAAC,mBAAmB;IAW3B,OAAO,CAAC,mBAAmB;IAY3B,OAAO,CAAC,kBAAkB;IAM1B,OAAO,CAAC,wBAAwB;IAOhC,OAAO,CAAC,aAAa;IAgHrB,OAAO,CAAC,sBAAsB;IAO9B,OAAO,CAAC,2BAA2B;IASnC,OAAO,CAAC,uBAAuB;IAS/B,OAAO,CAAC,uBAAuB;IAe/B,OAAO,CAAC,wBAAwB;IAYhC,OAAO,CAAC,2BAA2B;IAOnC,OAAO,CAAC,YAAY;IAsBpB,OAAO,CAAC,mBAAmB;IAa3B,OAAO,CAAC,cAAc;IAOtB,OAAO,CAAC,iBAAiB;IAOzB,OAAO,CAAC,cAAc;IAwGtB,OAAO,CAAC,aAAa;CAuCxB"}
1
+ {"version":3,"file":"JsonPrinter.d.ts","sourceRoot":"","sources":["../../src/save/JsonPrinter.ts"],"names":[],"mappings":"AAeA,OAAO,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;AACpC,OAAO,EAAE,OAAO,EAAE,MAAM,uBAAuB,CAAC;AAuFhD,qBAAa,WAAY,SAAQ,OAAO;IACxB,OAAO,CAAC,OAAO;gBAAP,OAAO,EAAE,OAAO;IAI7B,IAAI,IAAI,MAAM;IAKrB,OAAO,CAAC,gBAAgB;IAUxB,OAAO,CAAC,kBAAkB;IAQ1B,OAAO,CAAC,cAAc;IActB,OAAO,CAAC,cAAc;IAUtB,OAAO,CAAC,eAAe;IAWvB,OAAO,CAAC,mBAAmB;IAO3B,OAAO,CAAC,wBAAwB;IAShC,OAAO,CAAC,mBAAmB;IAW3B,OAAO,CAAC,mBAAmB;IAY3B,OAAO,CAAC,kBAAkB;IAM1B,OAAO,CAAC,wBAAwB;IAOhC,OAAO,CAAC,aAAa;IAgHrB,OAAO,CAAC,sBAAsB;IAO9B,OAAO,CAAC,2BAA2B;IASnC,OAAO,CAAC,uBAAuB;IAS/B,OAAO,CAAC,uBAAuB;IAe/B,OAAO,CAAC,wBAAwB;IAYhC,OAAO,CAAC,2BAA2B;IAOnC,OAAO,CAAC,YAAY;IAsBpB,OAAO,CAAC,mBAAmB;IAa3B,OAAO,CAAC,cAAc;IAOtB,OAAO,CAAC,iBAAiB;IAOzB,OAAO,CAAC,cAAc;IAwGtB,OAAO,CAAC,aAAa;CAuCxB"}
@@ -93,7 +93,7 @@ class JsonPrinter extends Printer_1.Printer {
93
93
  name: parameter.getName(),
94
94
  type: this.serializeType(parameter.getType()),
95
95
  isOptional: parameter.isOptional(),
96
- isRest: parameter.hasDotDotDotToken(),
96
+ isRest: parameter.isRest(),
97
97
  };
98
98
  }
99
99
  serializeImportInfo(importInfo) {
@@ -95,7 +95,7 @@ class ArkIRMethodPrinter extends BasePrinter_1.BasePrinter {
95
95
  let parameters = [];
96
96
  method.getParameters().forEach(parameter => {
97
97
  let str = parameter.getName();
98
- if (parameter.hasDotDotDotToken()) {
98
+ if (parameter.isRest()) {
99
99
  str = `...${parameter.getName()}`;
100
100
  }
101
101
  if (parameter.isOptional()) {
@@ -142,7 +142,7 @@ class SourceMethod extends SourceBase_1.SourceBase {
142
142
  .getParameters()
143
143
  .forEach(parameter => {
144
144
  let str = parameter.getName();
145
- if (parameter.hasDotDotDotToken()) {
145
+ if (parameter.isRest()) {
146
146
  str = `...${parameter.getName()}`;
147
147
  }
148
148
  if (parameter.isOptional()) {
package/package.json CHANGED
@@ -1,7 +1,7 @@
1
1
  {
2
2
  "name": "arkanalyzer",
3
- "version": "1.0.52",
4
- "commit_id": "4db5b08e",
3
+ "version": "1.0.53",
4
+ "commit_id": "e032f493",
5
5
  "files": [
6
6
  "docs",
7
7
  "lib",