arkanalyzer 1.0.93 → 1.0.95
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/lib/callgraph/algorithm/RapidTypeAnalysis.d.ts.map +1 -1
- package/lib/callgraph/algorithm/RapidTypeAnalysis.js +1 -2
- package/lib/core/base/Expr.d.ts +9 -0
- package/lib/core/base/Expr.d.ts.map +1 -1
- package/lib/core/base/Expr.js +10 -0
- package/lib/core/base/Stmt.d.ts +8 -0
- package/lib/core/base/Stmt.d.ts.map +1 -1
- package/lib/core/base/Stmt.js +25 -2
- package/lib/core/common/ArkIRTransformer.d.ts.map +1 -1
- package/lib/core/common/ArkIRTransformer.js +10 -9
- package/lib/core/common/ArkValueTransformer.d.ts +2 -0
- package/lib/core/common/ArkValueTransformer.d.ts.map +1 -1
- package/lib/core/common/ArkValueTransformer.js +40 -7
- package/lib/core/common/SdkUtils.d.ts.map +1 -1
- package/lib/core/common/SdkUtils.js +22 -6
- package/lib/core/common/StmtUseReplacer.d.ts +1 -0
- package/lib/core/common/StmtUseReplacer.d.ts.map +1 -1
- package/lib/core/common/StmtUseReplacer.js +9 -0
- package/lib/core/common/StringUtils.d.ts +10 -1
- package/lib/core/common/StringUtils.d.ts.map +1 -1
- package/lib/core/common/StringUtils.js +29 -16
- package/lib/core/graph/builder/CfgBuilder.d.ts +1 -0
- package/lib/core/graph/builder/CfgBuilder.d.ts.map +1 -1
- package/lib/core/graph/builder/CfgBuilder.js +16 -7
- package/lib/core/graph/builder/TrapBuilder.d.ts +27 -0
- package/lib/core/graph/builder/TrapBuilder.d.ts.map +1 -1
- package/lib/core/graph/builder/TrapBuilder.js +417 -62
- package/lib/core/model/ArkClass.d.ts.map +1 -1
- package/lib/core/model/ArkClass.js +1 -2
- package/lib/core/model/ArkExport.d.ts.map +1 -1
- package/lib/core/model/ArkExport.js +1 -2
- package/lib/core/model/ArkField.d.ts.map +1 -1
- package/lib/core/model/ArkField.js +1 -2
- package/lib/core/model/ArkFile.d.ts +12 -0
- package/lib/core/model/ArkFile.d.ts.map +1 -1
- package/lib/core/model/ArkFile.js +20 -0
- package/lib/core/model/ArkImport.d.ts.map +1 -1
- package/lib/core/model/ArkImport.js +1 -2
- package/lib/core/model/ArkMethod.d.ts.map +1 -1
- package/lib/core/model/ArkMethod.js +2 -3
- package/lib/core/model/ArkNamespace.d.ts.map +1 -1
- package/lib/core/model/ArkNamespace.js +2 -3
- package/lib/core/model/builder/ArkClassBuilder.js +3 -2
- package/package.json +1 -1
- package/lib/node_modules/ohos-typescript/README.OpenSource +0 -11
- package/lib/node_modules/ohos-typescript/README.md +0 -81
- package/lib/node_modules/ohos-typescript/SECURITY.md +0 -41
- package/lib/node_modules/ohos-typescript/ThirdPartyNoticeText.txt +0 -193
- package/lib/node_modules/ohos-typescript/bin/tsc +0 -2
- package/lib/node_modules/ohos-typescript/bin/tsserver +0 -2
- package/lib/node_modules/ohos-typescript/lib/README.md +0 -5
- package/lib/node_modules/ohos-typescript/lib/cancellationToken.js +0 -86
- package/lib/node_modules/ohos-typescript/lib/cs/diagnosticMessages.generated.json +0 -1880
- package/lib/node_modules/ohos-typescript/lib/de/diagnosticMessages.generated.json +0 -1880
- package/lib/node_modules/ohos-typescript/lib/es/diagnosticMessages.generated.json +0 -1880
- package/lib/node_modules/ohos-typescript/lib/fr/diagnosticMessages.generated.json +0 -1880
- package/lib/node_modules/ohos-typescript/lib/it/diagnosticMessages.generated.json +0 -1880
- package/lib/node_modules/ohos-typescript/lib/ja/diagnosticMessages.generated.json +0 -1880
- package/lib/node_modules/ohos-typescript/lib/ko/diagnosticMessages.generated.json +0 -1880
- package/lib/node_modules/ohos-typescript/lib/lib.dom.d.ts +0 -18505
- package/lib/node_modules/ohos-typescript/lib/lib.dom.iterable.d.ts +0 -341
- package/lib/node_modules/ohos-typescript/lib/lib.scripthost.d.ts +0 -327
- package/lib/node_modules/ohos-typescript/lib/lib.webworker.d.ts +0 -6192
- package/lib/node_modules/ohos-typescript/lib/lib.webworker.importscripts.d.ts +0 -26
- package/lib/node_modules/ohos-typescript/lib/lib.webworker.iterable.d.ts +0 -175
- package/lib/node_modules/ohos-typescript/lib/pl/diagnosticMessages.generated.json +0 -1880
- package/lib/node_modules/ohos-typescript/lib/pt-br/diagnosticMessages.generated.json +0 -1880
- package/lib/node_modules/ohos-typescript/lib/ru/diagnosticMessages.generated.json +0 -1880
- package/lib/node_modules/ohos-typescript/lib/tr/diagnosticMessages.generated.json +0 -1880
- package/lib/node_modules/ohos-typescript/lib/tsc.js +0 -114551
- package/lib/node_modules/ohos-typescript/lib/tsserver.js +0 -179691
- package/lib/node_modules/ohos-typescript/lib/tsserverlibrary.d.ts +0 -13648
- package/lib/node_modules/ohos-typescript/lib/tsserverlibrary.js +0 -178688
- package/lib/node_modules/ohos-typescript/lib/typesMap.json +0 -497
- package/lib/node_modules/ohos-typescript/lib/typingsInstaller.js +0 -39871
- package/lib/node_modules/ohos-typescript/lib/watchGuard.js +0 -49
- package/lib/node_modules/ohos-typescript/lib/zh-cn/diagnosticMessages.generated.json +0 -1880
- package/lib/node_modules/ohos-typescript/lib/zh-tw/diagnosticMessages.generated.json +0 -1880
|
@@ -249,19 +249,28 @@ class CfgBuilder {
|
|
|
249
249
|
while (p && p !== this.astRoot) {
|
|
250
250
|
if (ts.isWhileStatement(p) || ts.isDoStatement(p) || ts.isForStatement(p) || ts.isForInStatement(p) || ts.isForOfStatement(p)) {
|
|
251
251
|
const lastLoopNextF = this.loopStack[this.loopStack.length - 1].nextF;
|
|
252
|
-
this.
|
|
253
|
-
lastLoopNextF.lasts.add(lastStatement);
|
|
252
|
+
this.linkAbruptCompletion(lastStatement, lastLoopNextF, 'breakStatement', c);
|
|
254
253
|
return;
|
|
255
254
|
}
|
|
256
255
|
if (ts.isCaseClause(p) || ts.isDefaultClause(p)) {
|
|
257
256
|
const lastSwitchExit = this.switchExitStack[this.switchExitStack.length - 1];
|
|
258
|
-
this.
|
|
259
|
-
lastSwitchExit.lasts.add(lastStatement);
|
|
257
|
+
this.linkAbruptCompletion(lastStatement, lastSwitchExit, 'breakStatement', c);
|
|
260
258
|
return;
|
|
261
259
|
}
|
|
262
260
|
p = p.parent;
|
|
263
261
|
}
|
|
264
262
|
}
|
|
263
|
+
linkAbruptCompletion(lastStatement, target, kind, node) {
|
|
264
|
+
if (!(lastStatement instanceof TryStatementBuilder) && lastStatement.type !== 'catchOrNot') {
|
|
265
|
+
this.judgeLastType(target, lastStatement);
|
|
266
|
+
target.lasts.add(lastStatement);
|
|
267
|
+
return;
|
|
268
|
+
}
|
|
269
|
+
const abrupt = new StatementBuilder(kind, kind === 'breakStatement' ? 'break' : 'continue', node, lastStatement.scopeID);
|
|
270
|
+
this.judgeLastType(abrupt, lastStatement);
|
|
271
|
+
abrupt.next = target;
|
|
272
|
+
target.lasts.add(abrupt);
|
|
273
|
+
}
|
|
265
274
|
ASTNodeIfStatement(c, lastStatement, scopeID) {
|
|
266
275
|
let ifstm = new ConditionStatementBuilder('ifStatement', '', c, scopeID);
|
|
267
276
|
this.judgeLastType(ifstm, lastStatement);
|
|
@@ -535,8 +544,7 @@ class CfgBuilder {
|
|
|
535
544
|
}
|
|
536
545
|
else if (ts.isContinueStatement(c)) {
|
|
537
546
|
const lastLoop = this.loopStack[this.loopStack.length - 1];
|
|
538
|
-
this.
|
|
539
|
-
lastLoop.lasts.add(lastStatement);
|
|
547
|
+
this.linkAbruptCompletion(lastStatement, lastLoop, 'continueStatement', c);
|
|
540
548
|
return;
|
|
541
549
|
}
|
|
542
550
|
else if (ts.isIfStatement(c)) {
|
|
@@ -1108,9 +1116,10 @@ class CfgBuilder {
|
|
|
1108
1116
|
this.linkBasicBlocks(blockBuilderToCfgBlock);
|
|
1109
1117
|
this.adjustBlocks(blockBuilderToCfgBlock, blocksContainLoopCondition, basicBlockSet, blockBuildersContainSwitch, valueAndStmtsOfSwitchAndCasesAll, arkIRTransformer);
|
|
1110
1118
|
const trapBuilder = new TrapBuilder_1.TrapBuilder(blockBuildersBeforeTry, blockBuilderToCfgBlock, arkIRTransformer, basicBlockSet);
|
|
1111
|
-
const
|
|
1119
|
+
const builtTraps = trapBuilder.buildTraps();
|
|
1112
1120
|
this.mergeLoopInitialBlocks(basicBlockSet);
|
|
1113
1121
|
this.removeEmptyBlocks(basicBlockSet);
|
|
1122
|
+
const traps = trapBuilder.retainLiveTraps(builtTraps);
|
|
1114
1123
|
const cfg = this.createCfg(blockBuilderToCfgBlock, basicBlockSet);
|
|
1115
1124
|
return {
|
|
1116
1125
|
cfg,
|
|
@@ -11,8 +11,10 @@ export declare class TrapBuilder {
|
|
|
11
11
|
private basicBlockSet;
|
|
12
12
|
private blockBuilderToCfgBlock;
|
|
13
13
|
private blockBuildersBeforeTry;
|
|
14
|
+
private pendingFinallyPrunes;
|
|
14
15
|
constructor(blockBuildersBeforeTry: Set<BlockBuilder>, blockBuilderToCfgBlock: Map<BlockBuilder, BasicBlock>, arkIRTransformer: ArkIRTransformer, basicBlockSet: Set<BasicBlock>);
|
|
15
16
|
buildTraps(): Trap[];
|
|
17
|
+
retainLiveTraps(traps: Trap[]): Trap[];
|
|
16
18
|
private buildTrapGroup;
|
|
17
19
|
private shouldSkipProcessing;
|
|
18
20
|
private handleEmptyTryBody;
|
|
@@ -27,8 +29,33 @@ export declare class TrapBuilder {
|
|
|
27
29
|
private removeEmptyBlockBeforeTry;
|
|
28
30
|
private shouldRemoveEmptyBlockBeforeTry;
|
|
29
31
|
private buildTrapsIfNoFinally;
|
|
32
|
+
private findUniqueCatchTailTarget;
|
|
30
33
|
private buildTrapsIfFinallyExist;
|
|
34
|
+
private connectExits;
|
|
31
35
|
private getAllBlocksBFS;
|
|
36
|
+
private linkUnprotectedTails;
|
|
37
|
+
private collectRegionBasicBlocks;
|
|
38
|
+
private successorLeavesTryRegion;
|
|
39
|
+
private liveBlocks;
|
|
40
|
+
private hasPredecessorOutside;
|
|
41
|
+
private unlinkTryThrowFallThrough;
|
|
42
|
+
private spliceFinallyAfterAbort;
|
|
43
|
+
private isAbortTail;
|
|
44
|
+
private isReturnTerminator;
|
|
45
|
+
private endsWithThrow;
|
|
46
|
+
private linkFinallyCopyAfter;
|
|
47
|
+
private attachFinallyCopy;
|
|
48
|
+
private retargetBlock;
|
|
49
|
+
private takeReturnStmt;
|
|
50
|
+
private returnValueSlot;
|
|
51
|
+
private assignReturnSlot;
|
|
52
|
+
private duplicateFinally;
|
|
53
|
+
private fallThroughCopies;
|
|
54
|
+
private linkFallThrough;
|
|
55
|
+
private placeReturnAfterFinally;
|
|
56
|
+
private returnPositions;
|
|
57
|
+
private getCopiedTails;
|
|
58
|
+
private pruneOriginalFinallyIfUnreachable;
|
|
32
59
|
private copyFinallyBlocks;
|
|
33
60
|
private copyBlocks;
|
|
34
61
|
private copyStmt;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"TrapBuilder.d.ts","sourceRoot":"","sources":["../../../../src/core/graph/builder/TrapBuilder.ts"],"names":[],"mappings":"AAeA,OAAO,EAAE,UAAU,EAAE,MAAM,eAAe,CAAC;AAC3C,OAAO,EAAE,gBAAgB,EAAE,MAAM,+BAA+B,CAAC;AACjE,OAAO,EAAE,IAAI,EAAE,MAAM,iBAAiB,CAAC;
|
|
1
|
+
{"version":3,"file":"TrapBuilder.d.ts","sourceRoot":"","sources":["../../../../src/core/graph/builder/TrapBuilder.ts"],"names":[],"mappings":"AAeA,OAAO,EAAE,UAAU,EAAE,MAAM,eAAe,CAAC;AAC3C,OAAO,EAAE,gBAAgB,EAAE,MAAM,+BAA+B,CAAC;AACjE,OAAO,EAAE,IAAI,EAAE,MAAM,iBAAiB,CAAC;AAkBvC,OAAO,EAAE,YAAY,EAAmC,MAAM,cAAc,CAAC;AAK7E;;GAEG;AACH,qBAAa,WAAW;IACpB,OAAO,CAAC,+BAA+B,CAAoB;IAC3D,OAAO,CAAC,gBAAgB,CAAmB;IAC3C,OAAO,CAAC,aAAa,CAAkB;IACvC,OAAO,CAAC,sBAAsB,CAAgC;IAC9D,OAAO,CAAC,sBAAsB,CAAoB;IAClD,OAAO,CAAC,oBAAoB,CAAsB;gBAEtC,sBAAsB,EAAE,GAAG,CAAC,YAAY,CAAC,EAAE,sBAAsB,EAAE,GAAG,CAAC,YAAY,EAAE,UAAU,CAAC,EACxG,gBAAgB,EAAE,gBAAgB,EAClC,aAAa,EAAE,GAAG,CAAC,UAAU,CAAC;IAQ3B,UAAU,IAAI,IAAI,EAAE;IAapB,eAAe,CAAC,KAAK,EAAE,IAAI,EAAE,GAAG,IAAI,EAAE;IAgC7C,OAAO,CAAC,cAAc;IA8CtB,OAAO,CAAC,oBAAoB;IAa5B,OAAO,CAAC,kBAAkB;IAY1B,OAAO,CAAC,sBAAsB;IAM9B,OAAO,CAAC,eAAe;IASvB,OAAO,CAAC,gBAAgB;IAMxB,OAAO,CAAC,eAAe;IAiBvB,OAAO,CAAC,iBAAiB;IAkBzB,OAAO,CAAC,oBAAoB;IAQ5B,OAAO,CAAC,gBAAgB;IA6BxB,OAAO,CAAC,qBAAqB;IAkC7B,OAAO,CAAC,yBAAyB;IAYjC,OAAO,CAAC,+BAA+B;IAMvC,OAAO,CAAC,qBAAqB;IA8C7B,OAAO,CAAC,yBAAyB;IAgBjC,OAAO,CAAC,wBAAwB;IA8ChC,OAAO,CAAC,YAAY;IA8CpB,OAAO,CAAC,eAAe;IAoDvB,OAAO,CAAC,oBAAoB;IAS5B,OAAO,CAAC,wBAAwB;IA6BhC,OAAO,CAAC,wBAAwB;IAehC,OAAO,CAAC,UAAU;IAUlB,OAAO,CAAC,qBAAqB;IAS7B,OAAO,CAAC,yBAAyB;IASjC,OAAO,CAAC,uBAAuB;IAoB/B,OAAO,CAAC,WAAW;IAgBnB,OAAO,CAAC,kBAAkB;IAS1B,OAAO,CAAC,aAAa;IAKrB,OAAO,CAAC,oBAAoB;IAmB5B,OAAO,CAAC,iBAAiB;IAUzB,OAAO,CAAC,aAAa;IAQrB,OAAO,CAAC,cAAc;IAStB,OAAO,CAAC,eAAe;IAWvB,OAAO,CAAC,gBAAgB;IASxB,OAAO,CAAC,gBAAgB;IAYxB,OAAO,CAAC,iBAAiB;IAsBzB,OAAO,CAAC,eAAe;IAMvB,OAAO,CAAC,uBAAuB;IAiB/B,OAAO,CAAC,eAAe;IAYvB,OAAO,CAAC,cAAc;IAYtB,OAAO,CAAC,iCAAiC;IA2BzC,OAAO,CAAC,iBAAiB;IAqBzB,OAAO,CAAC,UAAU;IAqClB,OAAO,CAAC,QAAQ;IAmChB,OAAO,CAAC,kBAAkB;CAM7B"}
|