arkanalyzer 1.0.17 → 1.0.19

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 (134) hide show
  1. package/lib/callgraph/pointerAnalysis/Pag.d.ts +3 -2
  2. package/lib/callgraph/pointerAnalysis/Pag.d.ts.map +1 -1
  3. package/lib/callgraph/pointerAnalysis/Pag.js +5 -3
  4. package/lib/callgraph/pointerAnalysis/PagBuilder.d.ts +4 -4
  5. package/lib/callgraph/pointerAnalysis/PagBuilder.d.ts.map +1 -1
  6. package/lib/callgraph/pointerAnalysis/PagBuilder.js +5 -4
  7. package/lib/callgraph/pointerAnalysis/PointerAnalysis.d.ts +2 -0
  8. package/lib/callgraph/pointerAnalysis/PointerAnalysis.d.ts.map +1 -1
  9. package/lib/callgraph/pointerAnalysis/PointerAnalysis.js +11 -9
  10. package/lib/callgraph/pointerAnalysis/PointerAnalysisConfig.d.ts +8 -1
  11. package/lib/callgraph/pointerAnalysis/PointerAnalysisConfig.d.ts.map +1 -1
  12. package/lib/callgraph/pointerAnalysis/PointerAnalysisConfig.js +27 -3
  13. package/lib/callgraph/pointerAnalysis/PtsDS.d.ts +30 -6
  14. package/lib/callgraph/pointerAnalysis/PtsDS.d.ts.map +1 -1
  15. package/lib/callgraph/pointerAnalysis/PtsDS.js +86 -5
  16. package/lib/core/base/Decorator.d.ts +1 -0
  17. package/lib/core/base/Decorator.d.ts.map +1 -1
  18. package/lib/core/base/Decorator.js +4 -1
  19. package/lib/core/base/Stmt.d.ts +3 -0
  20. package/lib/core/base/Stmt.d.ts.map +1 -1
  21. package/lib/core/base/Stmt.js +34 -0
  22. package/lib/core/base/Type.d.ts +45 -3
  23. package/lib/core/base/Type.d.ts.map +1 -1
  24. package/lib/core/base/Type.js +84 -4
  25. package/lib/core/base/TypeExpr.d.ts +72 -0
  26. package/lib/core/base/TypeExpr.d.ts.map +1 -0
  27. package/lib/core/base/TypeExpr.js +155 -0
  28. package/lib/core/common/ArkIRTransformer.d.ts +1 -0
  29. package/lib/core/common/ArkIRTransformer.d.ts.map +1 -1
  30. package/lib/core/common/ArkIRTransformer.js +46 -23
  31. package/lib/core/common/ArkValueTransformer.d.ts +1 -0
  32. package/lib/core/common/ArkValueTransformer.d.ts.map +1 -1
  33. package/lib/core/common/ArkValueTransformer.js +66 -16
  34. package/lib/core/common/IRInference.d.ts +5 -1
  35. package/lib/core/common/IRInference.d.ts.map +1 -1
  36. package/lib/core/common/IRInference.js +71 -0
  37. package/lib/core/common/ModelUtils.d.ts +3 -1
  38. package/lib/core/common/ModelUtils.d.ts.map +1 -1
  39. package/lib/core/common/ModelUtils.js +23 -1
  40. package/lib/core/common/TypeInference.d.ts +6 -0
  41. package/lib/core/common/TypeInference.d.ts.map +1 -1
  42. package/lib/core/common/TypeInference.js +82 -14
  43. package/lib/core/{common → graph/builder}/CfgBuilder.d.ts +34 -46
  44. package/lib/core/graph/builder/CfgBuilder.d.ts.map +1 -0
  45. package/lib/core/graph/builder/CfgBuilder.js +1139 -0
  46. package/lib/core/graph/builder/ConditionBuilder.d.ts +16 -0
  47. package/lib/core/graph/builder/ConditionBuilder.d.ts.map +1 -0
  48. package/lib/core/graph/builder/ConditionBuilder.js +252 -0
  49. package/lib/core/graph/builder/LoopBuilder.d.ts +21 -0
  50. package/lib/core/graph/builder/LoopBuilder.d.ts.map +1 -0
  51. package/lib/core/graph/builder/LoopBuilder.js +251 -0
  52. package/lib/core/graph/builder/SwitchBuilder.d.ts +12 -0
  53. package/lib/core/graph/builder/SwitchBuilder.d.ts.map +1 -0
  54. package/lib/core/graph/builder/SwitchBuilder.js +152 -0
  55. package/lib/core/graph/builder/TrapBuilder.d.ts +17 -0
  56. package/lib/core/graph/builder/TrapBuilder.d.ts.map +1 -0
  57. package/lib/core/graph/builder/TrapBuilder.js +272 -0
  58. package/lib/core/model/ArkMethod.d.ts +1 -1
  59. package/lib/core/model/ArkMethod.js +1 -1
  60. package/lib/core/model/ArkSignature.d.ts +9 -1
  61. package/lib/core/model/ArkSignature.d.ts.map +1 -1
  62. package/lib/core/model/ArkSignature.js +17 -1
  63. package/lib/core/model/builder/ArkClassBuilder.d.ts.map +1 -1
  64. package/lib/core/model/builder/ArkClassBuilder.js +2 -1
  65. package/lib/core/model/builder/ArkMethodBuilder.js +1 -1
  66. package/lib/core/{common → model/builder}/BodyBuilder.d.ts +5 -5
  67. package/lib/core/model/builder/BodyBuilder.d.ts.map +1 -0
  68. package/lib/core/{common → model/builder}/BodyBuilder.js +12 -12
  69. package/lib/core/model/builder/builderUtils.d.ts.map +1 -1
  70. package/lib/core/model/builder/builderUtils.js +79 -5
  71. package/lib/save/JsonPrinter.d.ts +1 -1
  72. package/lib/save/JsonPrinter.d.ts.map +1 -1
  73. package/lib/save/JsonPrinter.js +2 -2
  74. package/lib/save/PrinterBuilder.d.ts +22 -0
  75. package/lib/save/PrinterBuilder.d.ts.map +1 -1
  76. package/lib/save/PrinterBuilder.js +54 -1
  77. package/lib/save/arkir/ArkIRClassPrinter.d.ts +14 -0
  78. package/lib/save/arkir/ArkIRClassPrinter.d.ts.map +1 -0
  79. package/lib/save/arkir/ArkIRClassPrinter.js +92 -0
  80. package/lib/save/arkir/ArkIRFieldPrinter.d.ts +12 -0
  81. package/lib/save/arkir/ArkIRFieldPrinter.d.ts.map +1 -0
  82. package/lib/save/arkir/ArkIRFieldPrinter.js +64 -0
  83. package/lib/save/arkir/ArkIRFilePrinter.d.ts +13 -0
  84. package/lib/save/arkir/ArkIRFilePrinter.d.ts.map +1 -0
  85. package/lib/save/arkir/ArkIRFilePrinter.js +54 -0
  86. package/lib/save/arkir/ArkIRMethodPrinter.d.ts +17 -0
  87. package/lib/save/arkir/ArkIRMethodPrinter.d.ts.map +1 -0
  88. package/lib/save/arkir/ArkIRMethodPrinter.js +159 -0
  89. package/lib/save/arkir/ArkIRNamespacePrinter.d.ts +12 -0
  90. package/lib/save/arkir/ArkIRNamespacePrinter.d.ts.map +1 -0
  91. package/lib/save/arkir/ArkIRNamespacePrinter.js +66 -0
  92. package/lib/save/base/BasePrinter.d.ts +24 -0
  93. package/lib/save/base/BasePrinter.d.ts.map +1 -0
  94. package/lib/save/base/BasePrinter.js +70 -0
  95. package/lib/save/base/ExportPrinter.d.ts +9 -0
  96. package/lib/save/base/ExportPrinter.d.ts.map +1 -0
  97. package/lib/save/base/ExportPrinter.js +67 -0
  98. package/lib/save/base/ImportPrinter.d.ts +10 -0
  99. package/lib/save/base/ImportPrinter.d.ts.map +1 -0
  100. package/lib/save/base/ImportPrinter.js +92 -0
  101. package/lib/save/{source/SourceUtils.d.ts → base/PrinterUtils.d.ts} +2 -2
  102. package/lib/save/{source/SourceUtils.d.ts.map → base/PrinterUtils.d.ts.map} +1 -1
  103. package/lib/save/{source/SourceUtils.js → base/PrinterUtils.js} +10 -10
  104. package/lib/save/source/SourceBase.d.ts +2 -11
  105. package/lib/save/source/SourceBase.d.ts.map +1 -1
  106. package/lib/save/source/SourceBase.js +3 -25
  107. package/lib/save/source/SourceBody.js +3 -3
  108. package/lib/save/source/SourceClass.d.ts +2 -1
  109. package/lib/save/source/SourceClass.d.ts.map +1 -1
  110. package/lib/save/source/SourceClass.js +18 -17
  111. package/lib/save/source/SourceFilePrinter.d.ts +1 -1
  112. package/lib/save/source/SourceFilePrinter.d.ts.map +1 -1
  113. package/lib/save/source/SourceFilePrinter.js +9 -10
  114. package/lib/save/source/SourceMethod.d.ts +1 -1
  115. package/lib/save/source/SourceMethod.d.ts.map +1 -1
  116. package/lib/save/source/SourceMethod.js +37 -22
  117. package/lib/save/source/SourceNamespace.d.ts.map +1 -1
  118. package/lib/save/source/SourceNamespace.js +6 -6
  119. package/lib/save/source/SourceStmt.d.ts +1 -1
  120. package/lib/save/source/SourceStmt.d.ts.map +1 -1
  121. package/lib/save/source/SourceStmt.js +29 -42
  122. package/lib/save/source/SourceTransformer.d.ts +5 -1
  123. package/lib/save/source/SourceTransformer.d.ts.map +1 -1
  124. package/lib/save/source/SourceTransformer.js +107 -33
  125. package/lib/utils/SparseBitVector.d.ts +11 -2
  126. package/lib/utils/SparseBitVector.d.ts.map +1 -1
  127. package/lib/utils/SparseBitVector.js +70 -3
  128. package/package.json +1 -1
  129. package/lib/core/common/BodyBuilder.d.ts.map +0 -1
  130. package/lib/core/common/CfgBuilder.d.ts.map +0 -1
  131. package/lib/core/common/CfgBuilder.js +0 -1886
  132. package/lib/save/source/SourceModule.d.ts +0 -16
  133. package/lib/save/source/SourceModule.d.ts.map +0 -1
  134. package/lib/save/source/SourceModule.js +0 -125
@@ -25,9 +25,15 @@ class SparseBitVectorElement {
25
25
  word(idx) {
26
26
  return this.bits[idx];
27
27
  }
28
+ clone() {
29
+ return new Uint32Array(this.bits);
30
+ }
28
31
  get elementSize() {
29
32
  return this.ELEMENT_SIZE;
30
33
  }
34
+ get bitWordNum() {
35
+ return this.BITWORDS_NUM;
36
+ }
31
37
  // Check if the element is empty (all bits are zero)
32
38
  isEmpty() {
33
39
  return this.isZero();
@@ -38,6 +44,9 @@ class SparseBitVectorElement {
38
44
  const bitOffset = bitIdx % BITWORD_SIZE;
39
45
  this.bits[wordIndex] |= (1 << bitOffset);
40
46
  }
47
+ setWord(word) {
48
+ this.bits = word;
49
+ }
41
50
  // Reset a bit at the given index
42
51
  reset(bitIdx) {
43
52
  const wordIndex = Math.floor(bitIdx / BITWORD_SIZE);
@@ -128,6 +137,20 @@ class SparseBitVectorElement {
128
137
  }
129
138
  return changed;
130
139
  }
140
+ // Subtract another SparseBitVectorElement from this one.
141
+ subtractWith(rhs) {
142
+ let changed = false;
143
+ // Perform subtraction: this = this & ~rhs
144
+ for (let i = 0; i < this.bits.length; i++) {
145
+ const oldWord = this.bits[i];
146
+ this.bits[i] &= ~rhs.bits[i];
147
+ // If any bit was changed, mark as changed
148
+ if (this.bits[i] !== oldWord) {
149
+ changed = true;
150
+ }
151
+ }
152
+ return changed;
153
+ }
131
154
  // Count the number of set bits in a word
132
155
  countBitsV2(word) {
133
156
  let count = 0;
@@ -230,6 +253,20 @@ class SparseBitVector {
230
253
  }
231
254
  }
232
255
  }
256
+ // Clear all elements
257
+ clear() {
258
+ this.elements.clear();
259
+ }
260
+ // Clone, return a deep copied object
261
+ clone() {
262
+ const newVector = new SparseBitVector(this.elementSize);
263
+ for (const [idx, element] of this.elements) {
264
+ const newElement = new SparseBitVectorElement(this.elementSize);
265
+ newElement.setWord(element.clone());
266
+ newVector.elems.set(idx, newElement);
267
+ }
268
+ return newVector;
269
+ }
233
270
  // Find the first set bit in the vector
234
271
  findFirst() {
235
272
  if (this.elements.size === 0)
@@ -264,7 +301,10 @@ class SparseBitVector {
264
301
  return {
265
302
  next() {
266
303
  return { value: undefined, done: true };
267
- }
304
+ },
305
+ [Symbol.iterator]() {
306
+ return this; // Make the iterator itself iterable
307
+ },
268
308
  };
269
309
  }
270
310
  let bitIndex = element[1].findFirst();
@@ -283,7 +323,10 @@ class SparseBitVector {
283
323
  return { value: v, done: false };
284
324
  }
285
325
  return { value: undefined, done: true };
286
- }
326
+ },
327
+ [Symbol.iterator]() {
328
+ return this; // Make the iterator itself iterable
329
+ },
287
330
  };
288
331
  }
289
332
  /**
@@ -367,8 +410,32 @@ class SparseBitVector {
367
410
  return changed;
368
411
  }
369
412
  /**
370
- * Dump as string.
413
+ * Subtract another SparseBitVector from this one.
414
+ * This operation modifies the current SparseBitVector in place.
415
+ * Return True if the current SparseBitVector was modified, false otherwise.
371
416
  */
417
+ subtractWith(rhs) {
418
+ if (this.elementSize !== rhs.elementSize || this.isEmpty() || rhs.isEmpty()) {
419
+ return false;
420
+ }
421
+ let needDeleteIdx = new Set();
422
+ let changed = false;
423
+ for (const [elementIndex, element] of this.elements) {
424
+ const rhsElement = rhs.elements.get(elementIndex);
425
+ if (rhsElement) {
426
+ changed = element.subtractWith(rhsElement) || changed;
427
+ if (element.isEmpty()) {
428
+ needDeleteIdx.add(elementIndex);
429
+ }
430
+ }
431
+ }
432
+ if (needDeleteIdx.size > 0) {
433
+ needDeleteIdx.forEach(idx => this.elements.delete(idx));
434
+ changed = true;
435
+ }
436
+ return changed;
437
+ }
438
+ // Dump as string
372
439
  toString() {
373
440
  let ar = [...this];
374
441
  return ar.toString();
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "arkanalyzer",
3
- "version": "1.0.17",
3
+ "version": "1.0.19",
4
4
  "files": [
5
5
  "docs",
6
6
  "lib",
@@ -1 +0,0 @@
1
- {"version":3,"file":"BodyBuilder.d.ts","sourceRoot":"","sources":["../../../src/core/common/BodyBuilder.ts"],"names":[],"mappings":"AAeA,OAAO,EAAE,OAAO,EAAE,MAAM,kBAAkB,CAAC;AAC3C,OAAO,EAAE,SAAS,EAAE,MAAM,oBAAoB,CAAC;AAC/C,OAAO,EAAkB,eAAe,EAAsB,MAAM,uBAAuB,CAAC;AAC5F,OAAO,EAAE,UAAU,EAAE,MAAM,cAAc,CAAC;AAC1C,OAAO,KAAK,EAAE,MAAM,iBAAiB,CAAC;AAItC,OAAO,EAAuD,SAAS,EAAE,MAAM,aAAa,CAAC;AAc7F,qBAAa,WAAW;IACpB,OAAO,CAAC,UAAU,CAAa;IAC/B,OAAO,CAAC,OAAO,CAAC,CAAyB;gBAE7B,eAAe,EAAE,eAAe,EAAE,aAAa,EAAE,EAAE,CAAC,IAAI,EAAE,eAAe,EAAE,SAAS,EAAE,UAAU,EAAE,EAAE,CAAC,UAAU;IAIpH,KAAK,IAAI,OAAO,GAAG,IAAI;IAcvB,aAAa,IAAI,UAAU;IAI3B,UAAU,IAAI,GAAG,CAAC,MAAM,EAAE,SAAS,CAAC,GAAG,SAAS;IAIhD,UAAU,CAAC,OAAO,EAAE,GAAG,CAAC,MAAM,EAAE,SAAS,CAAC,GAAG,IAAI;IAIjD,sBAAsB,IAAI,IAAI;IAsDrC,OAAO,CAAC,6BAA6B;IASrC,OAAO,CAAC,sCAAsC;IA4B9C,OAAO,CAAC,gBAAgB;IAmBxB,OAAO,CAAC,iBAAiB;IAUzB,OAAO,CAAC,sBAAsB;IAU9B,OAAO,CAAC,8BAA8B;IAkBtC,OAAO,CAAC,6BAA6B;IA2BrC,OAAO,CAAC,2BAA2B;IAUnC,OAAO,CAAC,4BAA4B;IAoBpC,OAAO,CAAC,2BAA2B;IAwBnC,OAAO,CAAC,oCAAoC;IA2B5C,OAAO,CAAC,8BAA8B;IAgBtC,OAAO,CAAC,qCAAqC;IA8B7C,OAAO,CAAC,2BAA2B;CAyCtC"}
@@ -1 +0,0 @@
1
- {"version":3,"file":"CfgBuilder.d.ts","sourceRoot":"","sources":["../../../src/core/common/CfgBuilder.ts"],"names":[],"mappings":"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"}