arkanalyzer 1.0.42 → 1.0.44

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.
Files changed (78) hide show
  1. package/lib/Scene.d.ts +1 -2
  2. package/lib/Scene.d.ts.map +1 -1
  3. package/lib/Scene.js +59 -47
  4. package/lib/callgraph/pointerAnalysis/PTAUtils.d.ts +11 -5
  5. package/lib/callgraph/pointerAnalysis/PTAUtils.d.ts.map +1 -1
  6. package/lib/callgraph/pointerAnalysis/PTAUtils.js +42 -24
  7. package/lib/callgraph/pointerAnalysis/Pag.d.ts +6 -11
  8. package/lib/callgraph/pointerAnalysis/Pag.d.ts.map +1 -1
  9. package/lib/callgraph/pointerAnalysis/Pag.js +26 -23
  10. package/lib/callgraph/pointerAnalysis/PagBuilder.d.ts +11 -63
  11. package/lib/callgraph/pointerAnalysis/PagBuilder.d.ts.map +1 -1
  12. package/lib/callgraph/pointerAnalysis/PagBuilder.js +62 -495
  13. package/lib/callgraph/pointerAnalysis/PointerAnalysis.d.ts.map +1 -1
  14. package/lib/callgraph/pointerAnalysis/PointerAnalysis.js +4 -2
  15. package/lib/callgraph/pointerAnalysis/plugins/ContainerPlugin.d.ts +24 -0
  16. package/lib/callgraph/pointerAnalysis/plugins/ContainerPlugin.d.ts.map +1 -0
  17. package/lib/callgraph/pointerAnalysis/plugins/ContainerPlugin.js +167 -0
  18. package/lib/callgraph/pointerAnalysis/plugins/FunctionPlugin.d.ts +26 -0
  19. package/lib/callgraph/pointerAnalysis/plugins/FunctionPlugin.d.ts.map +1 -0
  20. package/lib/callgraph/pointerAnalysis/plugins/FunctionPlugin.js +151 -0
  21. package/lib/callgraph/pointerAnalysis/plugins/IPagPlugin.d.ts +15 -0
  22. package/lib/callgraph/pointerAnalysis/plugins/IPagPlugin.d.ts.map +1 -0
  23. package/lib/callgraph/pointerAnalysis/plugins/IPagPlugin.js +16 -0
  24. package/lib/callgraph/pointerAnalysis/plugins/PluginManager.d.ts +25 -0
  25. package/lib/callgraph/pointerAnalysis/plugins/PluginManager.d.ts.map +1 -0
  26. package/lib/callgraph/pointerAnalysis/plugins/PluginManager.js +66 -0
  27. package/lib/callgraph/pointerAnalysis/plugins/SdkPlugin.d.ts +37 -0
  28. package/lib/callgraph/pointerAnalysis/plugins/SdkPlugin.d.ts.map +1 -0
  29. package/lib/callgraph/pointerAnalysis/plugins/SdkPlugin.js +160 -0
  30. package/lib/callgraph/pointerAnalysis/plugins/StoragePlugin.d.ts +68 -0
  31. package/lib/callgraph/pointerAnalysis/plugins/StoragePlugin.d.ts.map +1 -0
  32. package/lib/callgraph/pointerAnalysis/plugins/StoragePlugin.js +288 -0
  33. package/lib/core/common/DummyMainCreater.js +1 -1
  34. package/lib/core/common/IRInference.d.ts.map +1 -1
  35. package/lib/core/common/IRInference.js +4 -0
  36. package/lib/core/common/SdkUtils.d.ts +1 -1
  37. package/lib/core/common/SdkUtils.d.ts.map +1 -1
  38. package/lib/core/common/SdkUtils.js +18 -18
  39. package/lib/core/common/TypeInference.d.ts.map +1 -1
  40. package/lib/core/common/TypeInference.js +11 -2
  41. package/lib/core/graph/builder/CfgBuilder.js +1 -1
  42. package/lib/core/graph/builder/ConditionBuilder.js +1 -1
  43. package/lib/core/model/ArkClass.d.ts.map +1 -1
  44. package/lib/core/model/ArkClass.js +2 -1
  45. package/lib/core/model/builder/ArkMethodBuilder.d.ts +1 -0
  46. package/lib/core/model/builder/ArkMethodBuilder.d.ts.map +1 -1
  47. package/lib/core/model/builder/ArkMethodBuilder.js +40 -5
  48. package/lib/core/model/builder/BodyBuilder.js +1 -1
  49. package/lib/pass/Dispatcher.d.ts +2 -2
  50. package/lib/pass/Dispatcher.d.ts.map +1 -1
  51. package/lib/pass/Pass.d.ts +3 -3
  52. package/lib/pass/Pass.d.ts.map +1 -1
  53. package/lib/pass/ScenePassMgr.d.ts +4 -4
  54. package/lib/pass/ScenePassMgr.d.ts.map +1 -1
  55. package/lib/pass/validators/Exprs.d.ts +9 -0
  56. package/lib/pass/validators/Exprs.d.ts.map +1 -0
  57. package/lib/pass/validators/Exprs.js +40 -0
  58. package/lib/pass/validators/Models.d.ts +14 -0
  59. package/lib/pass/validators/Models.d.ts.map +1 -0
  60. package/lib/pass/validators/Models.js +42 -0
  61. package/lib/pass/validators/SceneValidator.d.ts +19 -0
  62. package/lib/pass/validators/SceneValidator.d.ts.map +1 -0
  63. package/lib/pass/validators/SceneValidator.js +77 -0
  64. package/lib/pass/validators/Stmts.d.ts +7 -0
  65. package/lib/pass/validators/Stmts.d.ts.map +1 -0
  66. package/lib/pass/validators/Stmts.js +36 -0
  67. package/lib/pass/{SceneValidator.d.ts → validators/Validator.d.ts} +100 -108
  68. package/lib/pass/validators/Validator.d.ts.map +1 -0
  69. package/lib/pass/{SceneValidator.js → validators/Validator.js} +147 -143
  70. package/lib/pass/validators/Values.d.ts +7 -0
  71. package/lib/pass/validators/Values.d.ts.map +1 -0
  72. package/lib/pass/validators/Values.js +34 -0
  73. package/lib/save/source/SourceStmt.js +1 -1
  74. package/lib/save/source/SourceTransformer.d.ts.map +1 -1
  75. package/lib/save/source/SourceTransformer.js +16 -1
  76. package/lib/utils/FileUtils.js +1 -1
  77. package/package.json +2 -2
  78. package/lib/pass/SceneValidator.d.ts.map +0 -1
package/lib/Scene.d.ts CHANGED
@@ -46,7 +46,6 @@ export declare class Scene {
46
46
  private buildStage;
47
47
  private fileLanguages;
48
48
  private options;
49
- private indexPathArray;
50
49
  private unhandledFilePaths;
51
50
  private unhandledSdkFilePaths;
52
51
  constructor();
@@ -87,7 +86,7 @@ export declare class Scene {
87
86
  private parseOhPackage;
88
87
  private findTsConfigInfoDeeply;
89
88
  private addTsConfigInfo;
90
- private addDefaultConstructors;
89
+ private updateOrAddDefaultConstructors;
91
90
  private buildAllMethodBody;
92
91
  private genArkFiles;
93
92
  private getFilesOrderByDependency;
@@ -1 +1 @@
1
- {"version":3,"file":"Scene.d.ts","sourceRoot":"","sources":["../src/Scene.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"Scene.d.ts","sourceRoot":"","sources":["../src/Scene.ts"],"names":[],"mappings":"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"}
package/lib/Scene.js CHANGED
@@ -106,8 +106,7 @@ class Scene {
106
106
  this.overRideDependencyMap = new Map();
107
107
  this.buildStage = SceneBuildStage.BUILD_INIT;
108
108
  this.fileLanguages = new Map();
109
- this.indexPathArray = ['Index.ets', 'Index.ts', 'Index.d.ets', 'Index.d.ts', 'index.ets', 'index.ts', 'index.d.ets', 'index.d.ts'];
110
- this.unhandledFilePaths = [];
109
+ this.unhandledFilePaths = new Set();
111
110
  this.unhandledSdkFilePaths = [];
112
111
  }
113
112
  /*
@@ -205,7 +204,7 @@ class Scene {
205
204
  }
206
205
  // handle sdks
207
206
  if (this.options.enableBuiltIn && !sceneConfig.getSdksObj().find(sdk => sdk.name === SdkUtils_1.SdkUtils.BUILT_IN_NAME)) {
208
- sceneConfig.getSdksObj().unshift(SdkUtils_1.SdkUtils.BUILT_IN_SDK);
207
+ sceneConfig.getSdksObj().unshift(SdkUtils_1.SdkUtils.getBuiltInSdk());
209
208
  }
210
209
  (_a = sceneConfig.getSdksObj()) === null || _a === void 0 ? void 0 : _a.forEach(sdk => {
211
210
  if (!sdk.moduleName) {
@@ -305,12 +304,13 @@ class Scene {
305
304
  this.baseUrl = tsConfigObj.compilerOptions.baseUrl;
306
305
  }
307
306
  }
308
- addDefaultConstructors() {
307
+ updateOrAddDefaultConstructors() {
309
308
  for (const file of this.getFiles()) {
310
309
  for (const cls of ModelUtils_1.ModelUtils.getAllClassesInFile(file)) {
311
310
  (0, ArkMethodBuilder_1.buildDefaultConstructor)(cls);
312
311
  const constructor = cls.getMethodWithName(TSConst_1.CONSTRUCTOR_NAME);
313
312
  if (constructor !== null) {
313
+ (0, ArkMethodBuilder_1.replaceSuper2Constructor)(constructor);
314
314
  (0, ArkMethodBuilder_1.addInitInConstructor)(constructor);
315
315
  }
316
316
  }
@@ -354,32 +354,34 @@ class Scene {
354
354
  const arkFile = new ArkFile_1.ArkFile(FileUtils_1.FileUtils.getFileLanguage(file, this.fileLanguages));
355
355
  arkFile.setScene(this);
356
356
  (0, ArkFileBuilder_1.buildArkFileFromFile)(file, this.realProjectDir, arkFile, this.projectName);
357
- this.filesMap.set(arkFile.getFileSignature().toMapKey(), arkFile);
357
+ this.setFile(arkFile);
358
358
  }
359
359
  catch (error) {
360
360
  logger.error('Error parsing file:', file, error);
361
- this.unhandledFilePaths.push(file);
361
+ this.unhandledFilePaths.add(file);
362
362
  return;
363
363
  }
364
364
  });
365
365
  this.buildAllMethodBody();
366
- this.addDefaultConstructors();
366
+ this.updateOrAddDefaultConstructors();
367
367
  }
368
368
  getFilesOrderByDependency() {
369
369
  for (const projectFile of this.projectFiles) {
370
370
  this.getDependencyFilesDeeply(projectFile);
371
371
  }
372
372
  this.buildAllMethodBody();
373
- this.addDefaultConstructors();
373
+ this.updateOrAddDefaultConstructors();
374
374
  }
375
375
  getDependencyFilesDeeply(projectFile) {
376
376
  if (!this.options.supportFileExts.includes(path_1.default.extname(projectFile))) {
377
377
  return;
378
378
  }
379
379
  const fileSignature = new ArkSignature_1.FileSignature(this.getProjectName(), path_1.default.relative(this.getRealProjectDir(), projectFile));
380
- if (this.filesMap.has(fileSignature.toMapKey()) || this.isRepeatBuildFile(projectFile)) {
380
+ if (this.filesMap.has(fileSignature.toMapKey()) || this.isRepeatBuildFile(projectFile) || this.unhandledFilePaths.has(projectFile)) {
381
381
  return;
382
382
  }
383
+ // Here use unhandledFilePaths to temporarily store current file until add it to fileMaps to avoid recursively import issue.
384
+ this.unhandledFilePaths.add(projectFile);
383
385
  try {
384
386
  const arkFile = new ArkFile_1.ArkFile(FileUtils_1.FileUtils.getFileLanguage(projectFile, this.fileLanguages));
385
387
  arkFile.setScene(this);
@@ -390,16 +392,17 @@ class Scene {
390
392
  break;
391
393
  }
392
394
  }
393
- this.filesMap.set(arkFile.getFileSignature().toMapKey(), arkFile);
394
395
  const importInfos = arkFile.getImportInfos();
395
396
  const repeatFroms = [];
396
397
  this.findDependencyFiles(importInfos, arkFile, repeatFroms);
397
398
  const exportInfos = arkFile.getExportInfos();
398
399
  this.findDependencyFiles(exportInfos, arkFile, repeatFroms);
400
+ // add currently file to files map after adding all its dependencies, and remove it from unhandledFilePaths
401
+ this.setFile(arkFile);
402
+ this.unhandledFilePaths.delete(projectFile);
399
403
  }
400
404
  catch (error) {
401
405
  logger.error('Error parsing file:', projectFile, error);
402
- this.unhandledFilePaths.push(projectFile);
403
406
  return;
404
407
  }
405
408
  }
@@ -437,28 +440,31 @@ class Scene {
437
440
  }
438
441
  }
439
442
  parseFrom(from, arkFile) {
440
- if (/^@[a-z|\-]+?\/?/.test(from)) {
443
+ if (/^@[a-z|\-]+?\/?/.test(from) || /^[a-z][a-z0-9._-]*[a-z0-9]$/.test(from)) {
444
+ // TODO: if there are more than one modules with the same name e.g. @lib1, here may got the wrong dependency
445
+ // It is better to loop all oh pkg with priority rather than the map key order. But it should be very complicated.
446
+ // Currently it is ok because it's with low probability and order error only affects type accuracy but has no other impact.
441
447
  for (const [ohPkgContentPath, ohPkgContent] of this.ohPkgContentMap) {
442
- this.findDependenciesByOhPkg(ohPkgContentPath, ohPkgContent, from, arkFile);
448
+ this.findDependenciesByOhPkg(ohPkgContentPath, ohPkgContent, from);
443
449
  }
444
450
  }
445
451
  else if (/^([^@]*\/)([^\/]*)$/.test(from) || /^[\.\./|\.\.]+$/.test(from)) {
446
452
  this.findRelativeDependenciesByOhPkg(from, arkFile);
447
453
  }
448
454
  else if (/^[@a-zA-Z0-9]+(\/[a-zA-Z0-9]+)*$/.test(from)) {
449
- this.findDependenciesByTsConfig(from, arkFile);
455
+ this.findDependenciesByTsConfig(from);
450
456
  }
451
457
  }
452
- findDependenciesByTsConfig(from, arkFile) {
458
+ findDependenciesByTsConfig(from) {
453
459
  if (this.globalModule2PathMapping) {
454
460
  const paths = this.globalModule2PathMapping;
455
- Object.keys(paths).forEach(key => this.parseTsConfigParms(paths, key, from, arkFile));
461
+ Object.keys(paths).forEach(key => this.parseTsConfigParms(paths, key, from));
456
462
  }
457
463
  }
458
- parseTsConfigParms(paths, key, from, arkFile) {
464
+ parseTsConfigParms(paths, key, from) {
459
465
  const module2pathMapping = paths[key];
460
466
  if (key.includes(TSConst_1.ALL)) {
461
- this.processFuzzyMapping(key, from, module2pathMapping, arkFile);
467
+ this.processFuzzyMapping(key, from, module2pathMapping);
462
468
  }
463
469
  else if (from.startsWith(key)) {
464
470
  let tail = from.substring(key.length, from.length);
@@ -467,11 +473,11 @@ class Scene {
467
473
  if (this.baseUrl) {
468
474
  originPath = path_1.default.resolve(this.baseUrl, originPath);
469
475
  }
470
- this.findDependenciesByRule(originPath, arkFile);
476
+ this.findDependenciesByRule(originPath);
471
477
  });
472
478
  }
473
479
  }
474
- processFuzzyMapping(key, from, module2pathMapping, arkFile) {
480
+ processFuzzyMapping(key, from, module2pathMapping) {
475
481
  key = key.substring(0, key.indexOf(TSConst_1.ALL) - 1);
476
482
  if (from.substring(0, key.indexOf(TSConst_1.ALL) - 1) === key) {
477
483
  let tail = from.substring(key.indexOf(TSConst_1.ALL) - 1, from.length);
@@ -481,31 +487,36 @@ class Scene {
481
487
  if (this.baseUrl) {
482
488
  originPath = path_1.default.join(this.baseUrl, originPath);
483
489
  }
484
- this.findDependenciesByRule(originPath, arkFile);
490
+ this.findDependenciesByRule(originPath);
485
491
  });
486
492
  }
487
493
  }
488
- findDependenciesByRule(originPath, arkFile) {
489
- if (!this.findFilesByPathArray(originPath, this.indexPathArray, arkFile) &&
490
- !this.findFilesByExtNameArray(originPath, this.options.supportFileExts, arkFile)) {
494
+ findDependenciesByRule(originPath) {
495
+ if (!this.findFilesByPathArray(originPath) &&
496
+ !this.findFilesByExtNameArray(originPath, this.options.supportFileExts)) {
491
497
  logger.trace(originPath + 'module mapperInfo is not found!');
492
498
  }
493
499
  }
494
- findFilesByPathArray(originPath, pathArray, arkFile) {
495
- for (const pathInfo of pathArray) {
496
- const curPath = path_1.default.join(originPath, pathInfo);
497
- if (fs_1.default.existsSync(curPath) && !this.isRepeatBuildFile(curPath)) {
498
- this.addFileNode2DependencyGrap(curPath, arkFile);
499
- return true;
500
- }
500
+ findFilesByPathArray(originPath) {
501
+ if (!fs_1.default.existsSync(originPath)) {
502
+ return false;
503
+ }
504
+ const indexFileName = FileUtils_1.FileUtils.getIndexFileName(originPath);
505
+ if (!indexFileName) {
506
+ return false;
507
+ }
508
+ const curPath = path_1.default.join(originPath, indexFileName);
509
+ if (!this.isRepeatBuildFile(curPath)) {
510
+ this.addFileNode2DependencyGrap(curPath);
511
+ return true;
501
512
  }
502
513
  return false;
503
514
  }
504
- findFilesByExtNameArray(originPath, pathArray, arkFile) {
515
+ findFilesByExtNameArray(originPath, pathArray) {
505
516
  for (const pathInfo of pathArray) {
506
517
  const curPath = originPath + pathInfo;
507
518
  if (fs_1.default.existsSync(curPath) && !this.isRepeatBuildFile(curPath)) {
508
- this.addFileNode2DependencyGrap(curPath, arkFile);
519
+ this.addFileNode2DependencyGrap(curPath);
509
520
  return true;
510
521
  }
511
522
  }
@@ -525,12 +536,12 @@ class Scene {
525
536
  let originPath = this.getOriginPath(from, arkFile);
526
537
  if (fs_1.default.existsSync(path_1.default.join(originPath, EtsConst_1.OH_PACKAGE_JSON5))) {
527
538
  for (const [ohPkgContentPath, ohPkgContent] of this.ohPkgContentMap) {
528
- this.findDependenciesByOhPkg(ohPkgContentPath, ohPkgContent, from, arkFile);
539
+ this.findDependenciesByOhPkg(ohPkgContentPath, ohPkgContent, from);
529
540
  }
530
541
  }
531
- this.findDependenciesByRule(originPath, arkFile);
542
+ this.findDependenciesByRule(originPath);
532
543
  }
533
- findDependenciesByOhPkg(ohPkgContentPath, ohPkgContentInfo, from, arkFile) {
544
+ findDependenciesByOhPkg(ohPkgContentPath, ohPkgContentInfo, from) {
534
545
  //module name @ohos/from
535
546
  const ohPkgContent = ohPkgContentInfo;
536
547
  //module main name is must be
@@ -539,22 +550,22 @@ class Scene {
539
550
  if (ohPkgContent.main) {
540
551
  originPath = path_1.default.join(ohPkgContentPath.toString().replace(EtsConst_1.OH_PACKAGE_JSON5, ''), ohPkgContent.main.toString());
541
552
  if (ohPkgContent.dependencies) {
542
- this.getDependenciesMapping(ohPkgContent.dependencies, ohPkgContentPath, from, arkFile);
553
+ this.getDependenciesMapping(ohPkgContent.dependencies, ohPkgContentPath, from);
543
554
  }
544
555
  else if (ohPkgContent.devDependencies) {
545
- this.getDependenciesMapping(ohPkgContent.devDependencies, ohPkgContentPath, from, arkFile);
556
+ this.getDependenciesMapping(ohPkgContent.devDependencies, ohPkgContentPath, from);
546
557
  }
547
558
  else if (ohPkgContent.dynamicDependencies) {
548
559
  // dynamicDependencies not support
549
560
  }
550
- this.addFileNode2DependencyGrap(originPath, arkFile);
561
+ this.addFileNode2DependencyGrap(originPath);
551
562
  }
552
- if (!this.findFilesByPathArray(originPath, this.indexPathArray, arkFile)) {
563
+ if (!this.findFilesByPathArray(originPath)) {
553
564
  logger.trace(originPath + 'module mapperInfo is not found!');
554
565
  }
555
566
  }
556
567
  }
557
- getDependenciesMapping(dependencies, ohPkgContentPath, from, arkFile) {
568
+ getDependenciesMapping(dependencies, ohPkgContentPath, from) {
558
569
  for (let [moduleName, modulePath] of Object.entries(dependencies)) {
559
570
  logger.debug('dependencies:' + moduleName);
560
571
  if (modulePath.startsWith('file:')) {
@@ -563,7 +574,7 @@ class Scene {
563
574
  const innerOhpackagePath = path_1.default.join(ohPkgContentPath.replace(EtsConst_1.OH_PACKAGE_JSON5, ''), modulePath.toString(), EtsConst_1.OH_PACKAGE_JSON5);
564
575
  if (!this.ohPkgContentMap.has(innerOhpackagePath)) {
565
576
  const innerModuleOhPkgContent = (0, json5parser_1.fetchDependenciesFromFile)(innerOhpackagePath);
566
- this.findDependenciesByOhPkg(innerOhpackagePath, innerModuleOhPkgContent, from, arkFile);
577
+ this.findDependenciesByOhPkg(innerOhpackagePath, innerModuleOhPkgContent, from);
567
578
  }
568
579
  }
569
580
  }
@@ -571,16 +582,17 @@ class Scene {
571
582
  const parentPath = /^\.{1,2}\//.test(from) ? path_1.default.dirname(arkFile.getFilePath()) : arkFile.getProjectDir();
572
583
  return path_1.default.resolve(parentPath, from);
573
584
  }
574
- addFileNode2DependencyGrap(filePath, arkFile) {
585
+ addFileNode2DependencyGrap(filePath) {
575
586
  this.getDependencyFilesDeeply(filePath);
576
- this.filesMap.set(arkFile.getFileSignature().toMapKey(), arkFile);
577
587
  }
578
588
  buildSdk(sdkName, sdkPath) {
579
589
  var _a;
580
590
  let allFiles;
581
591
  if (sdkName === SdkUtils_1.SdkUtils.BUILT_IN_NAME) {
582
592
  allFiles = SdkUtils_1.SdkUtils.fetchBuiltInFiles(sdkPath);
583
- (_a = this.getOptions().sdkGlobalFolders) === null || _a === void 0 ? void 0 : _a.push(sdkPath || SdkUtils_1.SdkUtils.BUILT_IN_SDK.path);
593
+ if (allFiles.length > 0) {
594
+ (_a = this.getOptions().sdkGlobalFolders) === null || _a === void 0 ? void 0 : _a.push(sdkPath);
595
+ }
584
596
  }
585
597
  else {
586
598
  allFiles = (0, getAllFiles_1.getAllFiles)(sdkPath, this.options.supportFileExts, this.options.ignoreFileNames);
@@ -622,7 +634,7 @@ class Scene {
622
634
  });
623
635
  (0, ModelUtils_1.initModulePathMap)(this.ohPkgContentMap);
624
636
  this.buildAllMethodBody();
625
- this.addDefaultConstructors();
637
+ this.updateOrAddDefaultConstructors();
626
638
  }
627
639
  buildOhPkgContentMap() {
628
640
  this.modulePath2NameMap.forEach((value, key) => {
@@ -734,7 +746,7 @@ class Scene {
734
746
  * Returns the absolute file paths that cannot be handled currently.
735
747
  */
736
748
  getUnhandledFilePaths() {
737
- return this.unhandledFilePaths;
749
+ return Array.from(this.unhandledFilePaths);
738
750
  }
739
751
  /*
740
752
  * Returns the absolute sdk file paths that cannot be handled currently.
@@ -1,12 +1,18 @@
1
- import { ClassSignature, MethodSignature } from '../../core/model/ArkSignature';
1
+ import { ClassSignature, FieldSignature, MethodSignature } from '../../core/model/ArkSignature';
2
2
  export declare function IsCollectionClass(classSignature: ClassSignature): boolean;
3
3
  export declare enum BuiltApiType {
4
4
  SetAdd = 0,
5
5
  MapSet = 1,
6
- FunctionCall = 2,
7
- FunctionApply = 3,
8
- FunctionBind = 4,
9
- NotBuiltIn = 5
6
+ MapGet = 2,
7
+ ArrayPush = 3,
8
+ Foreach = 4,
9
+ FunctionCall = 5,
10
+ FunctionApply = 6,
11
+ FunctionBind = 7,
12
+ NotBuiltIn = 8
10
13
  }
14
+ export declare const ARRAY_FIELD_SIGNATURE: FieldSignature;
15
+ export declare const SET_FIELD_SIGNATURE: FieldSignature;
16
+ export declare const MAP_FIELD_SIGNATURE: FieldSignature;
11
17
  export declare function getBuiltInApiType(method: MethodSignature): BuiltApiType;
12
18
  //# sourceMappingURL=PTAUtils.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"PTAUtils.d.ts","sourceRoot":"","sources":["../../../src/callgraph/pointerAnalysis/PTAUtils.ts"],"names":[],"mappings":"AAeA,OAAO,EAAE,cAAc,EAAE,eAAe,EAAE,MAAM,+BAA+B,CAAC;AAEhF,wBAAgB,iBAAiB,CAAC,cAAc,EAAE,cAAc,GAAG,OAAO,CAKzE;AAED,oBAAY,YAAY;IACpB,MAAM,IAAA;IACN,MAAM,IAAA;IACN,YAAY,IAAA;IACZ,aAAa,IAAA;IACb,YAAY,IAAA;IACZ,UAAU,IAAA;CACb;AAED,wBAAgB,iBAAiB,CAAC,MAAM,EAAE,eAAe,GAAG,YAAY,CA0BvE"}
1
+ {"version":3,"file":"PTAUtils.d.ts","sourceRoot":"","sources":["../../../src/callgraph/pointerAnalysis/PTAUtils.ts"],"names":[],"mappings":"AAgBA,OAAO,EAAE,cAAc,EAAE,cAAc,EAAiB,eAAe,EAAE,MAAM,+BAA+B,CAAC;AAE/G,wBAAgB,iBAAiB,CAAC,cAAc,EAAE,cAAc,GAAG,OAAO,CAKzE;AAED,oBAAY,YAAY;IACpB,MAAM,IAAA;IACN,MAAM,IAAA;IACN,MAAM,IAAA;IACN,SAAS,IAAA;IACT,OAAO,IAAA;IACP,YAAY,IAAA;IACZ,aAAa,IAAA;IACb,YAAY,IAAA;IACZ,UAAU,IAAA;CACb;AAED,eAAO,MAAM,qBAAqB,gBAIjC,CAAC;AAEF,eAAO,MAAM,mBAAmB,gBAI/B,CAAC;AAEF,eAAO,MAAM,mBAAmB,gBAI/B,CAAC;AAsBF,wBAAgB,iBAAiB,CAAC,MAAM,EAAE,eAAe,GAAG,YAAY,CAoBvE"}
@@ -14,7 +14,9 @@
14
14
  * limitations under the License.
15
15
  */
16
16
  Object.defineProperty(exports, "__esModule", { value: true });
17
- exports.getBuiltInApiType = exports.BuiltApiType = exports.IsCollectionClass = void 0;
17
+ exports.getBuiltInApiType = exports.MAP_FIELD_SIGNATURE = exports.SET_FIELD_SIGNATURE = exports.ARRAY_FIELD_SIGNATURE = exports.BuiltApiType = exports.IsCollectionClass = void 0;
18
+ const Type_1 = require("../../core/base/Type");
19
+ const ArkSignature_1 = require("../../core/model/ArkSignature");
18
20
  function IsCollectionClass(classSignature) {
19
21
  if (classSignature.toString().endsWith('lib.es2015.collection.d.ts: Set') || classSignature.toString().endsWith('lib.es2015.collection.d.ts: Map')) {
20
22
  return true;
@@ -26,33 +28,49 @@ var BuiltApiType;
26
28
  (function (BuiltApiType) {
27
29
  BuiltApiType[BuiltApiType["SetAdd"] = 0] = "SetAdd";
28
30
  BuiltApiType[BuiltApiType["MapSet"] = 1] = "MapSet";
29
- BuiltApiType[BuiltApiType["FunctionCall"] = 2] = "FunctionCall";
30
- BuiltApiType[BuiltApiType["FunctionApply"] = 3] = "FunctionApply";
31
- BuiltApiType[BuiltApiType["FunctionBind"] = 4] = "FunctionBind";
32
- BuiltApiType[BuiltApiType["NotBuiltIn"] = 5] = "NotBuiltIn";
31
+ BuiltApiType[BuiltApiType["MapGet"] = 2] = "MapGet";
32
+ BuiltApiType[BuiltApiType["ArrayPush"] = 3] = "ArrayPush";
33
+ BuiltApiType[BuiltApiType["Foreach"] = 4] = "Foreach";
34
+ BuiltApiType[BuiltApiType["FunctionCall"] = 5] = "FunctionCall";
35
+ BuiltApiType[BuiltApiType["FunctionApply"] = 6] = "FunctionApply";
36
+ BuiltApiType[BuiltApiType["FunctionBind"] = 7] = "FunctionBind";
37
+ BuiltApiType[BuiltApiType["NotBuiltIn"] = 8] = "NotBuiltIn";
33
38
  })(BuiltApiType = exports.BuiltApiType || (exports.BuiltApiType = {}));
39
+ exports.ARRAY_FIELD_SIGNATURE = new ArkSignature_1.FieldSignature('field', new ArkSignature_1.ClassSignature('Array', new ArkSignature_1.FileSignature('container', 'lib.es5.d.ts')), new Type_1.UnclearReferenceType(''));
40
+ exports.SET_FIELD_SIGNATURE = new ArkSignature_1.FieldSignature('field', new ArkSignature_1.ClassSignature('Set', new ArkSignature_1.FileSignature('container', 'lib.es2015.collection.d.ts')), new Type_1.UnclearReferenceType(''));
41
+ exports.MAP_FIELD_SIGNATURE = new ArkSignature_1.FieldSignature('field', new ArkSignature_1.ClassSignature('Map', new ArkSignature_1.FileSignature('container', 'lib.es2015.collection.d.ts')), new Type_1.UnclearReferenceType(''));
42
+ const BUILTIN_API_PATTERNS = new Map([
43
+ // set
44
+ ['lib.es2015.collection.d.ts: Set.add(T)', BuiltApiType.SetAdd],
45
+ ['lib.es2015.collection.d.ts: Set.forEach(', BuiltApiType.Foreach],
46
+ // map
47
+ ['lib.es2015.collection.d.ts: Map.set(K, V)', BuiltApiType.MapSet],
48
+ ['lib.es2015.collection.d.ts: Map.get(K)', BuiltApiType.MapGet],
49
+ ['lib.es2015.collection.d.ts: Map.forEach(', BuiltApiType.Foreach],
50
+ // array
51
+ ['lib.es5.d.ts: Array.push(T[])', BuiltApiType.ArrayPush],
52
+ ['lib.es5.d.ts: Array.forEach(', BuiltApiType.Foreach],
53
+ ]);
54
+ const FUNCTION_METHOD_REGEX = /lib\.es5\.d\.ts: Function\.(call|apply|bind)\(/;
55
+ const FUNCTION_METHOD_MAP = {
56
+ 'call': BuiltApiType.FunctionCall,
57
+ 'apply': BuiltApiType.FunctionApply,
58
+ 'bind': BuiltApiType.FunctionBind
59
+ };
34
60
  function getBuiltInApiType(method) {
35
61
  let methodSigStr = method.toString();
36
- const regex = /lib\.es5\.d\.ts: Function\.(call|apply|bind)\(/;
37
- if (methodSigStr.endsWith('lib.es2015.collection.d.ts: Set.add(T)')) {
38
- return BuiltApiType.SetAdd;
39
- }
40
- else if (methodSigStr.endsWith('lib.es2015.collection.d.ts: Map.set(K, V)')) {
41
- return BuiltApiType.MapSet;
62
+ for (const [pattern, apiType] of BUILTIN_API_PATTERNS.entries()) {
63
+ const escapedPattern = pattern.replace(/[.*+?^${}()|[\]\\]/g, '\\$&');
64
+ const regex = new RegExp(escapedPattern);
65
+ if (regex.test(methodSigStr)) {
66
+ return apiType;
67
+ }
42
68
  }
43
- else {
44
- const match = methodSigStr.match(regex);
45
- if (match) {
46
- const functionName = match[1];
47
- switch (functionName) {
48
- case 'call':
49
- return BuiltApiType.FunctionCall;
50
- case 'apply':
51
- return BuiltApiType.FunctionApply;
52
- case 'bind':
53
- return BuiltApiType.FunctionBind;
54
- default:
55
- }
69
+ const match = methodSigStr.match(FUNCTION_METHOD_REGEX);
70
+ if (match) {
71
+ const functionName = match[1];
72
+ if (functionName in FUNCTION_METHOD_MAP) {
73
+ return FUNCTION_METHOD_MAP[functionName];
56
74
  }
57
75
  }
58
76
  return BuiltApiType.NotBuiltIn;
@@ -5,11 +5,13 @@ import { ArkAssignStmt, Stmt } from '../../core/base/Stmt';
5
5
  import { AbstractExpr } from '../../core/base/Expr';
6
6
  import { AbstractFieldRef, ArkArrayRef, ArkInstanceFieldRef, ArkParameterRef, ArkStaticFieldRef, ArkThisRef } from '../../core/base/Ref';
7
7
  import { Local } from '../../core/base/Local';
8
+ import { Constant } from '../../core/base/Constant';
8
9
  import { MethodSignature } from '../../core/model/ArkSignature';
9
10
  import { ExportInfo } from '../../core/model/ArkExport';
10
11
  import { BuiltApiType } from './PTAUtils';
11
12
  import { IPtsCollection } from './PtsDS';
12
13
  import { ContextID } from './context/Context';
14
+ import { StorageType } from './plugins/StoragePlugin';
13
15
  export type PagNodeType = Value;
14
16
  export declare enum PagEdgeKind {
15
17
  Address = 0,
@@ -20,16 +22,6 @@ export declare enum PagEdgeKind {
20
22
  Unknown = 5,
21
23
  InterProceduralCopy = 6
22
24
  }
23
- export declare enum StorageType {
24
- APP_STORAGE = 0,
25
- LOCAL_STORAGE = 1,
26
- Undefined = 2
27
- }
28
- export declare enum StorageLinkEdgeType {
29
- Property2Local = 0,
30
- Local2Property = 1,
31
- TwoWay = 2
32
- }
33
25
  export declare class PagEdge extends BaseEdge {
34
26
  private stmt;
35
27
  constructor(n: PagNode, d: PagNode, k: PagEdgeKind, s?: Stmt);
@@ -155,6 +147,9 @@ export declare class PagArrayNode extends PagNode {
155
147
  base: Value;
156
148
  constructor(id: NodeID, cid: number | undefined, expr: ArkArrayRef, stmt?: Stmt);
157
149
  }
150
+ export declare class PagConstantNode extends PagNode {
151
+ constructor(id: NodeID, cid: number | undefined, constant: Constant, stmt?: Stmt);
152
+ }
158
153
  /**
159
154
  * below is heapObj like Node
160
155
  */
@@ -215,7 +210,7 @@ export declare class Pag extends BaseExplicitGraph {
215
210
  getCG(): CallGraph;
216
211
  getOrClonePagNode(src: PagNode, basePt: NodeID): PagNode;
217
212
  getOrClonePagFieldNode(src: PagInstanceFieldNode, basePt: NodeID): PagInstanceFieldNode | undefined;
218
- getOrClonePagContainerFieldNode(basePt: NodeID, src?: PagArrayNode, base?: Local): PagInstanceFieldNode | undefined;
213
+ getOrClonePagContainerFieldNode(basePt: NodeID, base: Local, className: string): PagInstanceFieldNode | undefined;
219
214
  getOrClonePagFuncNode(basePt: NodeID): PagFuncNode | undefined;
220
215
  addPagNode(cid: ContextID, value: PagNodeType, stmt?: Stmt, refresh?: boolean): PagNode;
221
216
  private handleLocalNode;
@@ -1 +1 @@
1
- {"version":3,"file":"Pag.d.ts","sourceRoot":"","sources":["../../../src/callgraph/pointerAnalysis/Pag.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"Pag.d.ts","sourceRoot":"","sources":["../../../src/callgraph/pointerAnalysis/Pag.ts"],"names":[],"mappings":"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"}
@@ -37,7 +37,7 @@ var __importStar = (this && this.__importStar) || function (mod) {
37
37
  return result;
38
38
  };
39
39
  Object.defineProperty(exports, "__esModule", { value: true });
40
- exports.InterFuncPag = exports.FuncPag = exports.Pag = exports.PagGlobalThisNode = exports.PagFuncNode = exports.PagParamNode = exports.PagNewContainerExprNode = exports.PagNewExprNode = exports.PagArrayNode = exports.PagThisRefNode = exports.PagStaticFieldNode = exports.PagInstanceFieldNode = exports.PagLocalNode = exports.PagNode = exports.PagNodeKind = exports.ThisPagEdge = exports.WritePagEdge = exports.LoadPagEdge = exports.CopyPagEdge = exports.AddrPagEdge = exports.PagEdge = exports.StorageLinkEdgeType = exports.StorageType = exports.PagEdgeKind = void 0;
40
+ exports.InterFuncPag = exports.FuncPag = exports.Pag = exports.PagGlobalThisNode = exports.PagFuncNode = exports.PagParamNode = exports.PagNewContainerExprNode = exports.PagNewExprNode = exports.PagConstantNode = exports.PagArrayNode = exports.PagThisRefNode = exports.PagStaticFieldNode = exports.PagInstanceFieldNode = exports.PagLocalNode = exports.PagNode = exports.PagNodeKind = exports.ThisPagEdge = exports.WritePagEdge = exports.LoadPagEdge = exports.CopyPagEdge = exports.AddrPagEdge = exports.PagEdge = exports.PagEdgeKind = void 0;
41
41
  const BaseExplicitGraph_1 = require("../../core/graph/BaseExplicitGraph");
42
42
  const Stmt_1 = require("../../core/base/Stmt");
43
43
  const Expr_1 = require("../../core/base/Expr");
@@ -47,7 +47,6 @@ const GraphPrinter_1 = require("../../save/GraphPrinter");
47
47
  const PrinterBuilder_1 = require("../../save/PrinterBuilder");
48
48
  const Constant_1 = require("../../core/base/Constant");
49
49
  const Type_1 = require("../../core/base/Type");
50
- const ArkSignature_1 = require("../../core/model/ArkSignature");
51
50
  const logger_1 = __importStar(require("../../utils/logger"));
52
51
  const TSConst_1 = require("../../core/common/TSConst");
53
52
  const ArkExport_1 = require("../../core/model/ArkExport");
@@ -67,18 +66,6 @@ var PagEdgeKind;
67
66
  PagEdgeKind[PagEdgeKind["Unknown"] = 5] = "Unknown";
68
67
  PagEdgeKind[PagEdgeKind["InterProceduralCopy"] = 6] = "InterProceduralCopy";
69
68
  })(PagEdgeKind = exports.PagEdgeKind || (exports.PagEdgeKind = {}));
70
- var StorageType;
71
- (function (StorageType) {
72
- StorageType[StorageType["APP_STORAGE"] = 0] = "APP_STORAGE";
73
- StorageType[StorageType["LOCAL_STORAGE"] = 1] = "LOCAL_STORAGE";
74
- StorageType[StorageType["Undefined"] = 2] = "Undefined";
75
- })(StorageType = exports.StorageType || (exports.StorageType = {}));
76
- var StorageLinkEdgeType;
77
- (function (StorageLinkEdgeType) {
78
- StorageLinkEdgeType[StorageLinkEdgeType["Property2Local"] = 0] = "Property2Local";
79
- StorageLinkEdgeType[StorageLinkEdgeType["Local2Property"] = 1] = "Local2Property";
80
- StorageLinkEdgeType[StorageLinkEdgeType["TwoWay"] = 2] = "TwoWay";
81
- })(StorageLinkEdgeType = exports.StorageLinkEdgeType || (exports.StorageLinkEdgeType = {}));
82
69
  class PagEdge extends BaseExplicitGraph_1.BaseEdge {
83
70
  constructor(n, d, k, s) {
84
71
  super(n, d, k);
@@ -416,6 +403,12 @@ class PagArrayNode extends PagNode {
416
403
  }
417
404
  }
418
405
  exports.PagArrayNode = PagArrayNode;
406
+ class PagConstantNode extends PagNode {
407
+ constructor(id, cid = undefined, constant, stmt) {
408
+ super(id, cid, constant, PagNodeKind.LocalVar, stmt);
409
+ }
410
+ }
411
+ exports.PagConstantNode = PagConstantNode;
419
412
  /**
420
413
  * below is heapObj like Node
421
414
  */
@@ -601,24 +594,31 @@ class Pag extends BaseExplicitGraph_1.BaseExplicitGraph {
601
594
  return undefined;
602
595
  }
603
596
  }
604
- getOrClonePagContainerFieldNode(basePt, src, base) {
597
+ getOrClonePagContainerFieldNode(basePt, base, className) {
605
598
  let baseNode = this.getNode(basePt);
606
599
  if (baseNode instanceof PagNewContainerExprNode) {
607
600
  // check if Array Ref real node has been created or not, if not: create a real Array Ref node
608
601
  let existedNode = baseNode.getElementNode();
609
602
  let fieldNode;
603
+ let fieldRef;
610
604
  if (existedNode) {
611
605
  return this.getNode(existedNode);
612
606
  }
613
- if (src) {
614
- fieldNode = this.getOrClonePagNode(src, basePt);
615
- }
616
- else if (base) {
617
- const containerFieldSignature = new ArkSignature_1.FieldSignature('field', new ArkSignature_1.ClassSignature('container', new ArkSignature_1.FileSignature('container', 'lib.es2015.collection.d.ts')), new Type_1.UnclearReferenceType(''));
618
- fieldNode = this.getOrClonePagNode(
619
- // TODO: cid check
620
- this.addPagNode(0, new Ref_1.ArkInstanceFieldRef(base, containerFieldSignature)), basePt);
607
+ switch (className) {
608
+ case 'Array':
609
+ fieldRef = new Ref_1.ArkInstanceFieldRef(base, PTAUtils_1.ARRAY_FIELD_SIGNATURE);
610
+ break;
611
+ case 'Set':
612
+ fieldRef = new Ref_1.ArkInstanceFieldRef(base, PTAUtils_1.SET_FIELD_SIGNATURE);
613
+ break;
614
+ case 'Map':
615
+ fieldRef = new Ref_1.ArkInstanceFieldRef(base, PTAUtils_1.MAP_FIELD_SIGNATURE);
616
+ break;
617
+ default:
618
+ logger.error(`Error clone array field node ${className}`);
619
+ return undefined;
621
620
  }
621
+ fieldNode = this.addPagNode(0, fieldRef);
622
622
  baseNode.addElementNode(fieldNode.getID());
623
623
  fieldNode.setBasePt(basePt);
624
624
  return fieldNode;
@@ -674,6 +674,9 @@ class Pag extends BaseExplicitGraph_1.BaseExplicitGraph {
674
674
  else if (value instanceof Ref_1.ArkThisRef) {
675
675
  pagNode = new PagThisRefNode(id, cid, value);
676
676
  }
677
+ else if (value instanceof Constant_1.Constant) {
678
+ pagNode = new PagConstantNode(id, cid, value, stmt);
679
+ }
677
680
  else {
678
681
  throw new Error('unsupported Value type ' + value.getType().toString());
679
682
  }