arkanalyzer 1.0.12 → 1.0.13

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.
@@ -114,7 +114,7 @@ class AbstractAnalysis {
114
114
  }
115
115
  cfg.getStmts().forEach((stmt) => {
116
116
  if (stmt.containsInvokeExpr()) {
117
- calleeMethods.push(...this.resolveCall(cgNode.getID(), stmt));
117
+ this.resolveCall(cgNode.getID(), stmt).forEach(stmt => calleeMethods.push(stmt));
118
118
  }
119
119
  });
120
120
  return calleeMethods;
@@ -781,7 +781,7 @@ class Pag extends BaseExplicitGraph_1.BaseExplicitGraph {
781
781
  return ndId;
782
782
  }
783
783
  getOrNewNode(cid, v, s) {
784
- let nodeId = undefined;
784
+ let nodeId;
785
785
  // Value
786
786
  if (!(v instanceof ArkExport_1.ExportInfo)) {
787
787
  nodeId = this.hasCtxNode(cid, v);
@@ -340,7 +340,7 @@ class GlobalRef extends AbstractRef {
340
340
  this.usedStmts.push(usedStmts);
341
341
  }
342
342
  else {
343
- this.usedStmts.push(...usedStmts);
343
+ usedStmts.forEach(stmt => this.usedStmts.push(stmt));
344
344
  }
345
345
  }
346
346
  toString() {
@@ -40,7 +40,8 @@ export declare class ArkIRTransformer {
40
40
  private returnStatementToStmts;
41
41
  private blockToStmts;
42
42
  private expressionStatementToStmts;
43
- expressionToStmts(expression: ts.Expression): Stmt[];
43
+ private addInvokeStmts;
44
+ private shouldGenerateExtraAssignStmt;
44
45
  private typeAliasDeclarationToStmts;
45
46
  private resolveImportTypeNode;
46
47
  switchStatementToValueAndStmts(switchStatement: ts.SwitchStatement): ValueAndStmts[];
@@ -1 +1 @@
1
- {"version":3,"file":"ArkIRTransformer.d.ts","sourceRoot":"","sources":["../../../src/core/common/ArkIRTransformer.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"ArkIRTransformer.d.ts","sourceRoot":"","sources":["../../../src/core/common/ArkIRTransformer.ts"],"names":[],"mappings":"AAeA,OAAO,EAOH,cAAc,EAGd,aAAa,EAChB,MAAM,cAAc,CAAC;AACtB,OAAO,EAA2E,SAAS,EAAE,MAAM,aAAa,CAAC;AACjH,OAAO,EAAE,KAAK,EAAE,MAAM,eAAe,CAAC;AACtC,OAAO,KAAK,EAAE,MAAM,iBAAiB,CAAC;AACtC,OAAO,EAAE,KAAK,EAAE,MAAM,eAAe,CAAC;AACtC,OAAO,EACH,sBAAsB,EAOtB,IAAI,EACP,MAAM,cAAc,CAAC;AACtB,OAAO,EAAE,SAAS,EAA6D,MAAM,cAAc,CAAC;AAWpG,OAAO,EAAE,SAAS,EAAE,MAAM,oBAAoB,CAAC;AAU/C,OAAO,EAAE,YAAY,EAAmB,MAAM,kBAAkB,CAAC;AASjE,MAAM,MAAM,aAAa,GAAG;IACxB,KAAK,EAAE,KAAK,CAAC;IACb,sBAAsB,EAAE,YAAY,EAAE,CAAC;IACvC,KAAK,EAAE,IAAI,EAAE,CAAA;CAChB,CAAC;AAEF,qBAAa,SAAU,SAAQ,IAAI;gBACnB,IAAI,EAAE,MAAM;IAKjB,QAAQ,IAAI,MAAM;CAG5B;AAED,qBAAa,gBAAgB;IACzB,gBAAuB,2BAA2B,qBAAqB;IACvE,gBAAuB,0BAA0B,yBAAyB;IAC1E,gBAAuB,uCAAuC,SAA0D;IACxH,gBAAuB,wCAAwC,SAA2D;IAC1H,gBAAuB,mCAAmC,SAAuD;IAEjH,OAAO,CAAC,UAAU,CAAgB;IAClC,OAAO,CAAC,eAAe,CAAY;IACnC,OAAO,CAAC,eAAe,CAAS;IAChC,OAAO,CAAC,wBAAwB,CAAS;IACzC,OAAO,CAAC,qBAAqB,CAAwB;IACrD,OAAO,CAAC,mBAAmB,CAAsB;gBAErC,UAAU,EAAE,EAAE,CAAC,UAAU,EAAE,eAAe,EAAE,SAAS;IAO1D,SAAS,IAAI,GAAG,CAAC,KAAK,CAAC;IAIvB,UAAU,IAAI,GAAG,CAAC,MAAM,EAAE,SAAS,CAAC,GAAG,IAAI;IAI3C,YAAY,IAAI,KAAK;IAIrB,eAAe,IAAI,GAAG,CAAC,MAAM,EAAE,CAAC,SAAS,EAAE,sBAAsB,CAAC,CAAC;IAInE,aAAa,IAAI,IAAI,EAAE;IAgBvB,aAAa,CAAC,IAAI,EAAE,EAAE,CAAC,IAAI,GAAG,IAAI,EAAE;IA2CpC,qBAAqB,CAAC,IAAI,EAAE,EAAE,CAAC,IAAI,GAAG,aAAa;IAI1D,OAAO,CAAC,0BAA0B;IAUlC,OAAO,CAAC,sBAAsB;IA0B9B,OAAO,CAAC,YAAY;IAQpB,OAAO,CAAC,0BAA0B;IAgBlC,OAAO,CAAC,cAAc;IA0BtB,OAAO,CAAC,6BAA6B;IAoBrC,OAAO,CAAC,2BAA2B;IAyCnC,OAAO,CAAC,qBAAqB;IAyBtB,8BAA8B,CAAC,eAAe,EAAE,EAAE,CAAC,eAAe,GAAG,aAAa,EAAE;IAyC3F,OAAO,CAAC,mBAAmB;IAsB3B,OAAO,CAAC,wBAAwB;IA4FhC,OAAO,CAAC,qBAAqB;IAc7B,OAAO,CAAC,kBAAkB;IAW1B,OAAO,CAAC,wBAAwB;IAIhC,OAAO,CAAC,8BAA8B;IAItC,OAAO,CAAC,kBAAkB;IAyD1B,OAAO,CAAC,oBAAoB;IAI5B,OAAO,CAAC,qBAAqB;IAc7B,OAAO,CAAC,kBAAkB;IAgB1B,OAAO,CAAC,yBAAyB;IAOjC,OAAO,CAAC,uBAAuB;IAgBxB,gBAAgB,CAAC,KAAK,EAAE,IAAI,EAAE,EAAE,IAAI,EAAE,EAAE,CAAC,IAAI,GAAG,IAAI;WAU7C,oBAAoB,CAAC,KAAK,EAAE,EAAE,CAAC,UAAU,GAAG,aAAa,GAAG,IAAI;WAchE,qBAAqB,CAAC,KAAK,EAAE,EAAE,CAAC,UAAU,GAAG,cAAc,GAAG,IAAI;IAsDzE,0BAA0B,CAAC,KAAK,EAAE,KAAK,EAAE,sBAAsB,EAAE,YAAY,EAAE,GAAG,aAAa;IAQ/F,uBAAuB,CAAC,SAAS,EAAE,KAAK,EAAE,uBAAuB,EAAE,YAAY,EAAE,EAAE,UAAU,EAAE,KAAK,EAC5E,wBAAwB,EAAE,YAAY,EAAE,GAAG,IAAI,EAAE;IA+BzE,2BAA2B,CAAC,wBAAwB,EAAE,OAAO,GAAG,IAAI;CAG9E"}
@@ -175,14 +175,14 @@ class ArkIRTransformer {
175
175
  const stmts = [];
176
176
  if (returnStatement.expression) {
177
177
  let { value: exprValue, valueOriginalPositions: exprPositions, stmts: exprStmts, } = this.tsNodeToValueAndStmts(returnStatement.expression);
178
- stmts.push(...exprStmts);
178
+ exprStmts.forEach(stmt => stmts.push(stmt));
179
179
  if (IRUtils_1.IRUtils.moreThanOneAddress(exprValue)) {
180
180
  ({
181
181
  value: exprValue,
182
182
  valueOriginalPositions: exprPositions,
183
183
  stmts: exprStmts,
184
184
  } = this.generateAssignStmtForValue(exprValue, exprPositions));
185
- stmts.push(...exprStmts);
185
+ exprStmts.forEach(stmt => stmts.push(stmt));
186
186
  }
187
187
  const returnStmt = new Stmt_1.ArkReturnStmt(exprValue);
188
188
  returnStmt.setOperandOriginalPositions(exprPositions);
@@ -196,44 +196,63 @@ class ArkIRTransformer {
196
196
  blockToStmts(block) {
197
197
  const stmts = [];
198
198
  for (const statement of block.statements) {
199
- stmts.push(...this.tsNodeToStmts(statement));
199
+ this.tsNodeToStmts(statement).forEach(stmt => stmts.push(stmt));
200
200
  }
201
201
  return stmts;
202
202
  }
203
203
  expressionStatementToStmts(expressionStatement) {
204
- return this.expressionToStmts(expressionStatement.expression);
205
- }
206
- expressionToStmts(expression) {
207
- const { value: exprValue, valueOriginalPositions: exprPositions, stmts: stmts, } = this.tsNodeToValueAndStmts(expression);
204
+ const exprNode = expressionStatement.expression;
205
+ const { value: exprValue, valueOriginalPositions: exprPositions, stmts: stmts, } = this.tsNodeToValueAndStmts(exprNode);
208
206
  if (exprValue instanceof Expr_1.AbstractInvokeExpr) {
209
- const invokeStmt = new Stmt_1.ArkInvokeStmt(exprValue);
210
- invokeStmt.setOperandOriginalPositions(exprPositions);
211
- stmts.push(invokeStmt);
212
- let hasRepeat = false;
213
- for (const stmt of stmts) {
214
- if ((stmt instanceof Stmt_1.ArkAssignStmt) && (stmt.getRightOp() instanceof Expr_1.ArkStaticInvokeExpr)) {
215
- const rightOp = stmt.getRightOp();
216
- if (rightOp.getMethodSignature().getMethodSubSignature().getMethodName() === EtsConst_1.COMPONENT_REPEAT) {
217
- const createMethodSignature = ArkSignatureBuilder_1.ArkSignatureBuilder.buildMethodSignatureFromClassNameAndMethodName(EtsConst_1.COMPONENT_REPEAT, EtsConst_1.COMPONENT_CREATE_FUNCTION);
218
- const createInvokeExpr = new Expr_1.ArkStaticInvokeExpr(createMethodSignature, rightOp.getArgs());
219
- stmt.setRightOp(createInvokeExpr);
220
- hasRepeat = true;
221
- }
222
- }
223
- }
224
- if (hasRepeat) {
225
- const popMethodSignature = ArkSignatureBuilder_1.ArkSignatureBuilder.buildMethodSignatureFromClassNameAndMethodName(EtsConst_1.COMPONENT_REPEAT, EtsConst_1.COMPONENT_POP_FUNCTION);
226
- const popInvokeExpr = new Expr_1.ArkStaticInvokeExpr(popMethodSignature, []);
227
- const popInvokeStmt = new Stmt_1.ArkInvokeStmt(popInvokeExpr);
228
- stmts.push(popInvokeStmt);
229
- }
207
+ this.addInvokeStmts(exprValue, exprPositions, stmts);
230
208
  }
231
- else if (exprValue instanceof Expr_1.AbstractExpr) {
209
+ else if (this.shouldGenerateExtraAssignStmt(exprNode)) {
232
210
  const { stmts: exprStmts } = this.generateAssignStmtForValue(exprValue, exprPositions);
233
- stmts.push(...exprStmts);
211
+ exprStmts.forEach(stmt => stmts.push(stmt));
234
212
  }
235
213
  return stmts;
236
214
  }
215
+ addInvokeStmts(invokeExpr, exprPositions, stmts) {
216
+ const invokeStmt = new Stmt_1.ArkInvokeStmt(invokeExpr);
217
+ invokeStmt.setOperandOriginalPositions(exprPositions);
218
+ stmts.push(invokeStmt);
219
+ let hasRepeat = false;
220
+ for (const stmt of stmts) {
221
+ if ((stmt instanceof Stmt_1.ArkAssignStmt) && (stmt.getRightOp() instanceof Expr_1.ArkStaticInvokeExpr)) {
222
+ const rightOp = stmt.getRightOp();
223
+ if (rightOp.getMethodSignature().getMethodSubSignature().getMethodName() === EtsConst_1.COMPONENT_REPEAT) {
224
+ const createMethodSignature = ArkSignatureBuilder_1.ArkSignatureBuilder.buildMethodSignatureFromClassNameAndMethodName(EtsConst_1.COMPONENT_REPEAT, EtsConst_1.COMPONENT_CREATE_FUNCTION);
225
+ const createInvokeExpr = new Expr_1.ArkStaticInvokeExpr(createMethodSignature, rightOp.getArgs());
226
+ stmt.setRightOp(createInvokeExpr);
227
+ hasRepeat = true;
228
+ }
229
+ }
230
+ }
231
+ if (hasRepeat) {
232
+ const popMethodSignature = ArkSignatureBuilder_1.ArkSignatureBuilder.buildMethodSignatureFromClassNameAndMethodName(EtsConst_1.COMPONENT_REPEAT, EtsConst_1.COMPONENT_POP_FUNCTION);
233
+ const popInvokeExpr = new Expr_1.ArkStaticInvokeExpr(popMethodSignature, []);
234
+ const popInvokeStmt = new Stmt_1.ArkInvokeStmt(popInvokeExpr);
235
+ stmts.push(popInvokeStmt);
236
+ }
237
+ }
238
+ shouldGenerateExtraAssignStmt(expression) {
239
+ if (ts.isParenthesizedExpression(expression)) {
240
+ return this.shouldGenerateExtraAssignStmt(expression.expression);
241
+ }
242
+ if ((ts.isBinaryExpression(expression) && (expression.operatorToken.kind === ts.SyntaxKind.FirstAssignment ||
243
+ ArkValueTransformer_1.ArkValueTransformer.isCompoundAssignmentOperator(expression.operatorToken.kind))) ||
244
+ ts.isEtsComponentExpression(expression) || ts.isVoidExpression(expression) ||
245
+ ts.isNewExpression(expression) || ts.isCallExpression(expression) ||
246
+ (ts.isPrefixUnaryExpression(expression) &&
247
+ (expression.operator === ts.SyntaxKind.PlusPlusToken ||
248
+ expression.operator === ts.SyntaxKind.MinusMinusToken)) ||
249
+ (ts.isPostfixUnaryExpression(expression) &&
250
+ (expression.operator === ts.SyntaxKind.PlusPlusToken ||
251
+ expression.operator === ts.SyntaxKind.MinusMinusToken))) {
252
+ return false;
253
+ }
254
+ return true;
255
+ }
237
256
  typeAliasDeclarationToStmts(typeAliasDeclaration) {
238
257
  var _a;
239
258
  const aliasName = typeAliasDeclaration.name.text;
@@ -296,25 +315,25 @@ class ArkIRTransformer {
296
315
  const valueAndStmtsOfSwitchAndCases = [];
297
316
  const exprStmts = [];
298
317
  let { value: exprValue, valueOriginalPositions: exprPositions, stmts: exprTempStmts, } = this.tsNodeToValueAndStmts(switchStatement.expression);
299
- exprStmts.push(...exprTempStmts);
318
+ exprTempStmts.forEach(stmt => exprStmts.push(stmt));
300
319
  if (IRUtils_1.IRUtils.moreThanOneAddress(exprValue)) {
301
320
  ({ value: exprValue, valueOriginalPositions: exprPositions, stmts: exprTempStmts } =
302
321
  this.generateAssignStmtForValue(exprValue, exprPositions));
303
- exprStmts.push(...exprTempStmts);
322
+ exprTempStmts.forEach(stmt => exprStmts.push(stmt));
304
323
  }
305
324
  valueAndStmtsOfSwitchAndCases.push({ value: exprValue, valueOriginalPositions: exprPositions, stmts: exprStmts });
306
325
  for (const clause of switchStatement.caseBlock.clauses) {
307
326
  if (ts.isCaseClause(clause)) {
308
327
  const clauseStmts = [];
309
328
  let { value: clauseValue, valueOriginalPositions: clausePositions, stmts: clauseTempStmts, } = this.tsNodeToValueAndStmts(clause.expression);
310
- clauseStmts.push(...clauseTempStmts);
329
+ clauseTempStmts.forEach(stmt => clauseStmts.push(stmt));
311
330
  if (IRUtils_1.IRUtils.moreThanOneAddress(clauseValue)) {
312
331
  ({
313
332
  value: clauseValue,
314
333
  valueOriginalPositions: clausePositions,
315
334
  stmts: clauseTempStmts,
316
335
  } = this.generateAssignStmtForValue(clauseValue, clausePositions));
317
- clauseStmts.push(...clauseTempStmts);
336
+ clauseTempStmts.forEach(stmt => clauseStmts.push(stmt));
318
337
  }
319
338
  valueAndStmtsOfSwitchAndCases.push({ value: clauseValue, valueOriginalPositions: clausePositions, stmts: clauseStmts });
320
339
  }
@@ -324,48 +343,48 @@ class ArkIRTransformer {
324
343
  forStatementToStmts(forStatement) {
325
344
  const stmts = [];
326
345
  if (forStatement.initializer) {
327
- stmts.push(...this.tsNodeToValueAndStmts(forStatement.initializer).stmts);
346
+ this.tsNodeToValueAndStmts(forStatement.initializer).stmts.forEach(stmt => stmts.push(stmt));
328
347
  }
329
348
  const dummyInitializerStmt = new DummyStmt(ArkIRTransformer.DUMMY_LOOP_INITIALIZER_STMT);
330
349
  stmts.push(dummyInitializerStmt);
331
350
  if (forStatement.condition) {
332
351
  const { value: conditionValue, stmts: conditionStmts, } = this.arkValueTransformer.conditionToValueAndStmts(forStatement.condition);
333
- stmts.push(...conditionStmts);
352
+ conditionStmts.forEach(stmt => stmts.push(stmt));
334
353
  stmts.push(new Stmt_1.ArkIfStmt(conditionValue));
335
354
  }
336
355
  if (forStatement.incrementor) {
337
- stmts.push(...this.tsNodeToValueAndStmts(forStatement.incrementor).stmts);
356
+ this.tsNodeToValueAndStmts(forStatement.incrementor).stmts.forEach(stmt => stmts.push(stmt));
338
357
  }
339
358
  return stmts;
340
359
  }
341
360
  rangeForStatementToStmts(forOfStatement) {
342
361
  const stmts = [];
343
362
  let { value: iterableValue, valueOriginalPositions: iterablePositions, stmts: iterableStmts, } = this.tsNodeToValueAndStmts(forOfStatement.expression);
344
- stmts.push(...iterableStmts);
363
+ iterableStmts.forEach(stmt => stmts.push(stmt));
345
364
  if (!(iterableValue instanceof Local_1.Local)) {
346
365
  ({ value: iterableValue, valueOriginalPositions: iterablePositions, stmts: iterableStmts } =
347
366
  this.generateAssignStmtForValue(iterableValue, iterablePositions));
348
- stmts.push(...iterableStmts);
367
+ iterableStmts.forEach(stmt => stmts.push(stmt));
349
368
  }
350
369
  const iteratorMethodSubSignature = new ArkSignature_1.MethodSubSignature(Builtin_1.Builtin.ITERATOR_FUNCTION, [], Builtin_1.Builtin.ITERATOR_CLASS_TYPE);
351
370
  const iteratorMethodSignature = new ArkSignature_1.MethodSignature(ArkSignature_1.ClassSignature.DEFAULT, iteratorMethodSubSignature);
352
371
  const iteratorInvokeExpr = new Expr_1.ArkInstanceInvokeExpr(iterableValue, iteratorMethodSignature, []);
353
372
  const iteratorInvokeExprPositions = [iterablePositions[0], ...iterablePositions];
354
373
  const { value: iterator, valueOriginalPositions: iteratorPositions, stmts: iteratorStmts, } = this.generateAssignStmtForValue(iteratorInvokeExpr, iteratorInvokeExprPositions);
355
- stmts.push(...iteratorStmts);
374
+ iteratorStmts.forEach(stmt => stmts.push(stmt));
356
375
  iterator.setType(Builtin_1.Builtin.ITERATOR_CLASS_TYPE);
357
376
  const nextMethodSubSignature = new ArkSignature_1.MethodSubSignature(Builtin_1.Builtin.ITERATOR_NEXT, [], Builtin_1.Builtin.ITERATOR_RESULT_CLASS_TYPE);
358
377
  const nextMethodSignature = new ArkSignature_1.MethodSignature(ArkSignature_1.ClassSignature.DEFAULT, nextMethodSubSignature);
359
378
  const iteratorNextInvokeExpr = new Expr_1.ArkInstanceInvokeExpr(iterator, nextMethodSignature, []);
360
379
  const iteratorNextInvokeExprPositions = [iteratorPositions[0], ...iteratorPositions];
361
380
  const { value: iteratorResult, valueOriginalPositions: iteratorResultPositions, stmts: iteratorResultStmts, } = this.generateAssignStmtForValue(iteratorNextInvokeExpr, iteratorNextInvokeExprPositions);
362
- stmts.push(...iteratorResultStmts);
381
+ iteratorResultStmts.forEach(stmt => stmts.push(stmt));
363
382
  iteratorResult.setType(Builtin_1.Builtin.ITERATOR_RESULT_CLASS_TYPE);
364
383
  const doneFieldSignature = new ArkSignature_1.FieldSignature(Builtin_1.Builtin.ITERATOR_RESULT_DONE, Builtin_1.Builtin.ITERATOR_RESULT_CLASS_SIGNATURE, Type_1.BooleanType.getInstance(), false);
365
384
  const doneFieldRef = new Ref_1.ArkInstanceFieldRef(iteratorResult, doneFieldSignature);
366
385
  const doneFieldRefPositions = [iteratorResultPositions[0], ...iteratorResultPositions];
367
386
  const { value: doneFlag, valueOriginalPositions: doneFlagPositions, stmts: doneFlagStmts, } = this.generateAssignStmtForValue(doneFieldRef, doneFieldRefPositions);
368
- stmts.push(...doneFlagStmts);
387
+ doneFlagStmts.forEach(stmt => stmts.push(stmt));
369
388
  doneFlag.setType(Type_1.BooleanType.getInstance());
370
389
  const conditionExpr = new Expr_1.ArkConditionExpr(doneFlag, ValueUtil_1.ValueUtil.getBooleanConstant(true), Expr_1.RelationalBinaryOperator.Equality);
371
390
  const conditionExprPositions = [doneFlagPositions[0], ...doneFlagPositions, Position_1.FullPosition.DEFAULT];
@@ -376,7 +395,7 @@ class ArkIRTransformer {
376
395
  const valueFieldRef = new Ref_1.ArkInstanceFieldRef(iteratorResult, valueFieldSignature);
377
396
  const valueFieldRefPositions = [iteratorResultPositions[0], ...iteratorResultPositions];
378
397
  const { value: yieldValue, valueOriginalPositions: yieldValuePositions, stmts: yieldValueStmts, } = this.generateAssignStmtForValue(valueFieldRef, valueFieldRefPositions);
379
- stmts.push(...yieldValueStmts);
398
+ yieldValueStmts.forEach(stmt => stmts.push(stmt));
380
399
  const castExpr = new Expr_1.ArkCastExpr(yieldValue, Type_1.UnknownType.getInstance());
381
400
  const castExprPositions = [yieldValuePositions[0], ...yieldValuePositions];
382
401
  const initializerNode = forOfStatement.initializer;
@@ -385,13 +404,15 @@ class ArkIRTransformer {
385
404
  const { value: initValue, valueOriginalPositions: initOriPos, stmts: initStmts, } = this.arkValueTransformer.variableDeclarationToValueAndStmts(initializerNode.declarations[0], isConst, false);
386
405
  const assignStmt = new Stmt_1.ArkAssignStmt(initValue, castExpr);
387
406
  assignStmt.setOperandOriginalPositions([...initOriPos, ...castExprPositions]);
388
- stmts.push(assignStmt, ...initStmts);
407
+ stmts.push(assignStmt);
408
+ initStmts.forEach(stmt => stmts.push(stmt));
389
409
  }
390
410
  else { // initializer maybe an expression
391
411
  const { value: initValue, valueOriginalPositions: initOriPos, stmts: initStmts, } = this.tsNodeToValueAndStmts(initializerNode);
392
412
  const assignStmt = new Stmt_1.ArkAssignStmt(initValue, castExpr);
393
413
  assignStmt.setOperandOriginalPositions([...initOriPos, ...castExprPositions]);
394
- stmts.push(...initStmts, assignStmt);
414
+ initStmts.forEach(stmt => stmts.push(stmt));
415
+ stmts.push(assignStmt);
395
416
  }
396
417
  return stmts;
397
418
  }
@@ -400,14 +421,14 @@ class ArkIRTransformer {
400
421
  const dummyInitializerStmt = new DummyStmt(ArkIRTransformer.DUMMY_LOOP_INITIALIZER_STMT);
401
422
  stmts.push(dummyInitializerStmt);
402
423
  const { value: conditionExpr, stmts: conditionStmts, } = this.arkValueTransformer.conditionToValueAndStmts(whileStatement.expression);
403
- stmts.push(...conditionStmts);
424
+ conditionStmts.forEach(stmt => stmts.push(stmt));
404
425
  stmts.push(new Stmt_1.ArkIfStmt(conditionExpr));
405
426
  return stmts;
406
427
  }
407
428
  doStatementToStmts(doStatement) {
408
429
  const stmts = [];
409
430
  const { value: conditionExpr, stmts: conditionStmts, } = this.arkValueTransformer.conditionToValueAndStmts(doStatement.expression);
410
- stmts.push(...conditionStmts);
431
+ conditionStmts.forEach(stmt => stmts.push(stmt));
411
432
  stmts.push(new Stmt_1.ArkIfStmt(conditionExpr));
412
433
  return stmts;
413
434
  }
@@ -421,21 +442,21 @@ class ArkIRTransformer {
421
442
  const stmts = [];
422
443
  if (this.inBuilderMethod) {
423
444
  const { value: conditionExpr, valueOriginalPositions: conditionExprPositions, stmts: conditionStmts, } = this.arkValueTransformer.conditionToValueAndStmts(ifStatement.expression);
424
- stmts.push(...conditionStmts);
445
+ conditionStmts.forEach(stmt => stmts.push(stmt));
425
446
  const createMethodSignature = ArkSignatureBuilder_1.ArkSignatureBuilder.buildMethodSignatureFromClassNameAndMethodName(EtsConst_1.COMPONENT_IF, EtsConst_1.COMPONENT_CREATE_FUNCTION);
426
447
  const { value: conditionLocal, valueOriginalPositions: conditionLocalPositions, stmts: assignConditionStmts } = this.generateAssignStmtForValue(conditionExpr, conditionExprPositions);
427
- stmts.push(...assignConditionStmts);
448
+ assignConditionStmts.forEach(stmt => stmts.push(stmt));
428
449
  const createInvokeExpr = new Expr_1.ArkStaticInvokeExpr(createMethodSignature, [conditionLocal]);
429
450
  const createInvokeExprPositions = [conditionLocalPositions[0], ...conditionLocalPositions];
430
451
  const { stmts: createStmts } = this.generateAssignStmtForValue(createInvokeExpr, createInvokeExprPositions);
431
- stmts.push(...createStmts);
452
+ createStmts.forEach(stmt => stmts.push(stmt));
432
453
  const branchMethodSignature = ArkSignatureBuilder_1.ArkSignatureBuilder.buildMethodSignatureFromClassNameAndMethodName(EtsConst_1.COMPONENT_IF, EtsConst_1.COMPONENT_BRANCH_FUNCTION);
433
454
  const branchInvokeExpr = new Expr_1.ArkStaticInvokeExpr(branchMethodSignature, [ValueUtil_1.ValueUtil.getOrCreateNumberConst(0)]);
434
455
  const branchInvokeExprPositions = [conditionLocalPositions[0], Position_1.FullPosition.DEFAULT];
435
456
  const branchInvokeStmt = new Stmt_1.ArkInvokeStmt(branchInvokeExpr);
436
457
  branchInvokeStmt.setOperandOriginalPositions(branchInvokeExprPositions);
437
458
  stmts.push(branchInvokeStmt);
438
- stmts.push(...this.tsNodeToStmts(ifStatement.thenStatement));
459
+ this.tsNodeToStmts(ifStatement.thenStatement).forEach(stmt => stmts.push(stmt));
439
460
  if (ifStatement.elseStatement) {
440
461
  const branchElseMethodSignature = ArkSignatureBuilder_1.ArkSignatureBuilder.buildMethodSignatureFromClassNameAndMethodName(EtsConst_1.COMPONENT_IF, EtsConst_1.COMPONENT_BRANCH_FUNCTION);
441
462
  const branchElseInvokeExpr = new Expr_1.ArkStaticInvokeExpr(branchElseMethodSignature, [ValueUtil_1.ValueUtil.getOrCreateNumberConst(1)]);
@@ -443,7 +464,7 @@ class ArkIRTransformer {
443
464
  const branchElseInvokeStmt = new Stmt_1.ArkInvokeStmt(branchElseInvokeExpr);
444
465
  branchElseInvokeStmt.setOperandOriginalPositions(branchElseInvokeExprPositions);
445
466
  stmts.push(branchElseInvokeStmt);
446
- stmts.push(...this.tsNodeToStmts(ifStatement.elseStatement));
467
+ this.tsNodeToStmts(ifStatement.elseStatement).forEach(stmt => stmts.push(stmt));
447
468
  }
448
469
  const popMethodSignature = ArkSignatureBuilder_1.ArkSignatureBuilder.buildMethodSignatureFromClassNameAndMethodName(EtsConst_1.COMPONENT_IF, EtsConst_1.COMPONENT_POP_FUNCTION);
449
470
  const popInvokeExpr = new Expr_1.ArkStaticInvokeExpr(popMethodSignature, []);
@@ -452,7 +473,7 @@ class ArkIRTransformer {
452
473
  }
453
474
  else {
454
475
  const { value: conditionExpr, valueOriginalPositions: conditionExprPositions, stmts: conditionStmts, } = this.arkValueTransformer.conditionToValueAndStmts(ifStatement.expression);
455
- stmts.push(...conditionStmts);
476
+ conditionStmts.forEach(stmt => stmts.push(stmt));
456
477
  const ifStmt = new Stmt_1.ArkIfStmt(conditionExpr);
457
478
  ifStmt.setOperandOriginalPositions(conditionExprPositions);
458
479
  stmts.push(ifStmt);
@@ -465,7 +486,7 @@ class ArkIRTransformer {
465
486
  throwStatementToStmts(throwStatement) {
466
487
  const stmts = [];
467
488
  const { value: throwValue, valueOriginalPositions: throwValuePositions, stmts: throwStmts, } = this.tsNodeToValueAndStmts(throwStatement.expression);
468
- stmts.push(...throwStmts);
489
+ throwStmts.forEach(stmt => stmts.push(stmt));
469
490
  const throwStmt = new Stmt_1.ArkThrowStmt(throwValue);
470
491
  throwStmt.setOperandOriginalPositions(throwValuePositions);
471
492
  stmts.push(throwStmt);
@@ -478,7 +499,8 @@ class ArkIRTransformer {
478
499
  const caughtExceptionRef = new Ref_1.ArkCaughtExceptionRef(Type_1.UnknownType.getInstance());
479
500
  const assignStmt = new Stmt_1.ArkAssignStmt(catchValue, caughtExceptionRef);
480
501
  assignStmt.setOperandOriginalPositions(catchOriPos);
481
- stmts.push(assignStmt, ...catchStmts);
502
+ stmts.push(assignStmt);
503
+ catchStmts.forEach(stmt => stmts.push(stmt));
482
504
  }
483
505
  return stmts;
484
506
  }
@@ -491,7 +513,7 @@ class ArkIRTransformer {
491
513
  newClassInExportToStmts(expression) {
492
514
  let stmts = [];
493
515
  let { value: rightValue, valueOriginalPositions: rightPositions, stmts: rightStmts, } = this.tsNodeToValueAndStmts(expression);
494
- stmts.push(...rightStmts);
516
+ rightStmts.forEach(stmt => stmts.push(stmt));
495
517
  let leftValue = this.arkValueTransformer.addNewLocal(TSConst_1.DEFAULT);
496
518
  let leftPositions = rightPositions;
497
519
  const assignStmt = new Stmt_1.ArkAssignStmt(leftValue, rightValue);
@@ -569,6 +591,8 @@ class ArkIRTransformer {
569
591
  return Expr_1.RelationalBinaryOperator.StrictEquality;
570
592
  case ts.SyntaxKind.ExclamationEqualsEqualsToken:
571
593
  return Expr_1.RelationalBinaryOperator.StrictInequality;
594
+ default:
595
+ ;
572
596
  }
573
597
  return null;
574
598
  }
@@ -583,13 +607,13 @@ class ArkIRTransformer {
583
607
  const stmts = [];
584
608
  if (IRUtils_1.IRUtils.moreThanOneAddress(leftValue)) {
585
609
  const { value: tempLeftValue, valueOriginalPositions: tempLeftPositions, stmts: leftStmts, } = this.generateAssignStmtForValue(leftValue, leftOpOriginalPositions);
586
- stmts.push(...leftStmts);
610
+ leftStmts.forEach(stmt => stmts.push(stmt));
587
611
  leftValue = tempLeftValue;
588
612
  leftOpOriginalPositions = tempLeftPositions;
589
613
  }
590
614
  if (IRUtils_1.IRUtils.moreThanOneAddress(rightValue)) {
591
615
  const { value: tempRightValue, valueOriginalPositions: tempRightPositions, stmts: rightStmts, } = this.generateAssignStmtForValue(rightValue, rightOpOriginalPositions);
592
- stmts.push(...rightStmts);
616
+ rightStmts.forEach(stmt => stmts.push(stmt));
593
617
  rightValue = tempRightValue;
594
618
  rightOpOriginalPositions = tempRightPositions;
595
619
  }
@@ -16,7 +16,6 @@ export declare class ArkValueTransformer {
16
16
  private arkIRTransformer;
17
17
  private aliasTypeMap;
18
18
  private builderMethodContextFlag;
19
- private static compoundAssignmentOperators;
20
19
  constructor(arkIRTransformer: ArkIRTransformer, sourceFile: ts.SourceFile, declaringMethod: ArkMethod);
21
20
  getLocals(): Set<Local>;
22
21
  getThisLocal(): Local;
@@ -36,17 +35,22 @@ export declare class ArkValueTransformer {
36
35
  private etsComponentExpressionToValueAndStmts;
37
36
  private classExpressionToValueAndStmts;
38
37
  private templateExpressionToValueAndStmts;
38
+ private processTemplatePlaceholders;
39
+ private combineTemplateParts;
40
+ private taggedTemplateExpressionToValueAndStmts;
39
41
  private collectTemplateValues;
40
42
  private identifierToValueAndStmts;
41
43
  private propertyAccessExpressionToValue;
42
44
  private elementAccessExpressionToValueAndStmts;
43
45
  private callExpressionToValueAndStmts;
46
+ private generateInvokeValueAndStmts;
44
47
  private parseArgumentsOfCallExpression;
45
48
  private parseArguments;
46
49
  private callableNodeToValueAndStmts;
47
50
  private newExpressionToValueAndStmts;
48
51
  private newArrayExpressionToValueAndStmts;
49
52
  private arrayLiteralExpressionToValueAndStmts;
53
+ private generateArrayExprAndStmts;
50
54
  private prefixUnaryExpressionToValueAndStmts;
51
55
  private postfixUnaryExpressionToValueAndStmts;
52
56
  private awaitExpressionToValueAndStmts;
@@ -80,5 +84,6 @@ export declare class ArkValueTransformer {
80
84
  private resolveTypeReferenceNode;
81
85
  private resolveTypeLiteralNode;
82
86
  private resolveFunctionTypeNode;
87
+ static isCompoundAssignmentOperator(operator: ts.SyntaxKind): boolean;
83
88
  }
84
89
  //# sourceMappingURL=ArkValueTransformer.d.ts.map
@@ -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":"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"}