arkanalyzer 1.0.92 → 1.0.94
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/AbstractAnalysis.d.ts +6 -0
- package/lib/callgraph/algorithm/AbstractAnalysis.d.ts.map +1 -1
- package/lib/callgraph/algorithm/AbstractAnalysis.js +17 -8
- package/lib/callgraph/algorithm/ClassHierarchyAnalysis.d.ts +1 -0
- package/lib/callgraph/algorithm/ClassHierarchyAnalysis.d.ts.map +1 -1
- package/lib/callgraph/algorithm/ClassHierarchyAnalysis.js +9 -3
- package/lib/callgraph/algorithm/RapidTypeAnalysis.d.ts +147 -0
- package/lib/callgraph/algorithm/RapidTypeAnalysis.d.ts.map +1 -1
- package/lib/callgraph/algorithm/RapidTypeAnalysis.js +802 -76
- package/lib/callgraph/model/CallGraph.d.ts +1 -0
- package/lib/callgraph/model/CallGraph.d.ts.map +1 -1
- package/lib/callgraph/model/CallGraph.js +4 -0
- package/lib/callgraph/model/CallSite.d.ts +88 -1
- package/lib/callgraph/model/CallSite.d.ts.map +1 -1
- package/lib/callgraph/model/CallSite.js +58 -4
- package/lib/core/common/ArkIRTransformer.d.ts.map +1 -1
- package/lib/core/common/ArkIRTransformer.js +1 -1
- package/lib/core/common/ArkValueTransformer.d.ts.map +1 -1
- package/lib/core/common/ArkValueTransformer.js +3 -1
- package/lib/core/common/IRInference.js +2 -2
- package/lib/core/common/SdkUtils.d.ts.map +1 -1
- package/lib/core/common/SdkUtils.js +22 -6
- package/lib/core/common/TypeInference.d.ts.map +1 -1
- package/lib/core/common/TypeInference.js +3 -0
- package/lib/core/graph/builder/SwitchBuilder.d.ts.map +1 -1
- package/lib/core/graph/builder/SwitchBuilder.js +11 -1
- package/lib/core/model/builder/ArkClassBuilder.js +7 -6
- package/lib/core/model/builder/ArkMethodBuilder.d.ts +2 -1
- package/lib/core/model/builder/ArkMethodBuilder.d.ts.map +1 -1
- package/lib/core/model/builder/ArkMethodBuilder.js +5 -1
- package/lib/frontend/cppFrontend/graph/builder/SwitchBuilder.d.ts.map +1 -1
- package/lib/frontend/cppFrontend/graph/builder/SwitchBuilder.js +11 -1
- 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
|
@@ -59,6 +59,7 @@ export declare class CallGraph extends BaseExplicitGraph {
|
|
|
59
59
|
addDynamicCallInfo(callStmt: Stmt, caller: Method, potentialCallee?: Method): void;
|
|
60
60
|
addDynamicCallEdge(callerID: NodeID, calleeID: NodeID, callStmt: Stmt): void;
|
|
61
61
|
getDynCallSiteByStmt(stmt: Stmt): DynCallSite | undefined;
|
|
62
|
+
recordCallSite(stmt: Stmt, cs: CallSite): void;
|
|
62
63
|
addStmtToCallSiteMap(stmt: Stmt, cs: CallSite): boolean;
|
|
63
64
|
getCallSiteByStmt(stmt: Stmt): CallSite[];
|
|
64
65
|
addMethodToCallSiteMap(funcID: FuncID, cs: CallSite): void;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"CallGraph.d.ts","sourceRoot":"","sources":["../../../src/callgraph/model/CallGraph.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"CallGraph.d.ts","sourceRoot":"","sources":["../../../src/callgraph/model/CallGraph.ts"],"names":[],"mappings":"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"}
|
|
@@ -225,6 +225,10 @@ class CallGraph extends BaseExplicitGraph_1.BaseExplicitGraph {
|
|
|
225
225
|
getDynCallSiteByStmt(stmt) {
|
|
226
226
|
return this.stmtToDynCallSitemap.get(stmt);
|
|
227
227
|
}
|
|
228
|
+
recordCallSite(stmt, cs) {
|
|
229
|
+
this.addStmtToCallSiteMap(stmt, cs);
|
|
230
|
+
this.addMethodToCallSiteMap(cs.calleeFuncID, cs);
|
|
231
|
+
}
|
|
228
232
|
addStmtToCallSiteMap(stmt, cs) {
|
|
229
233
|
if (this.stmtToCallSitemap.has(stmt)) {
|
|
230
234
|
this.stmtToCallSitemap.get(stmt).push(cs);
|
|
@@ -1,39 +1,126 @@
|
|
|
1
1
|
import { Stmt } from '../../core/base/Stmt';
|
|
2
2
|
import { Value } from '../../core/base/Value';
|
|
3
3
|
import { FuncID } from './CallGraph';
|
|
4
|
+
/**
|
|
5
|
+
* 调用点 ID 的类型别名,全局唯一递增分配。
|
|
6
|
+
*/
|
|
4
7
|
export type CallSiteID = number;
|
|
8
|
+
/**
|
|
9
|
+
* 调用点统一接口。
|
|
10
|
+
* 一个调用点表示调用图中一条 `caller → callee` 边在 caller 侧的来源语句信息。
|
|
11
|
+
*/
|
|
5
12
|
export interface ICallSite {
|
|
13
|
+
/** 全局唯一标识 */
|
|
6
14
|
id: CallSiteID;
|
|
15
|
+
/** 触发该调用的语句(通常是 ArkInvokeStmt) */
|
|
7
16
|
callStmt: Stmt;
|
|
17
|
+
/** 调用参数列表,若语句不包含参数信息则为 undefined */
|
|
8
18
|
args: Value[] | undefined;
|
|
19
|
+
/** 调用方方法 ID */
|
|
9
20
|
callerFuncID: FuncID;
|
|
21
|
+
/** 获取被调用方方法 ID */
|
|
10
22
|
getCalleeFuncID(): FuncID | undefined;
|
|
11
23
|
}
|
|
24
|
+
/**
|
|
25
|
+
* 静态调用点。
|
|
26
|
+
*
|
|
27
|
+
* 表示一条**确定**的 `caller → callee` 调用边:在构建调用图时(CHA/RTA/PTA),
|
|
28
|
+
* 调用语句的目标方法已被解析为具体的 calleeFuncID,不再发生变化。
|
|
29
|
+
*
|
|
30
|
+
* 与 {@link DynCallSite} 相对,后者在创建时 callee 未知或仅为候选,
|
|
31
|
+
* 需要在后续指针分析阶段被克隆为确定性的静态调用点。
|
|
32
|
+
*/
|
|
12
33
|
export declare class CallSite implements ICallSite {
|
|
34
|
+
/** 全局唯一标识 */
|
|
13
35
|
id: CallSiteID;
|
|
36
|
+
/** 触发该调用的语句(通常是 ArkInvokeStmt) */
|
|
14
37
|
callStmt: Stmt;
|
|
38
|
+
/** 调用参数列表,若语句不包含参数信息则为 undefined */
|
|
15
39
|
args: Value[] | undefined;
|
|
40
|
+
/** 被调用方方法 ID */
|
|
16
41
|
calleeFuncID: FuncID;
|
|
42
|
+
/** 调用方方法 ID */
|
|
17
43
|
callerFuncID: FuncID;
|
|
18
|
-
|
|
44
|
+
/**
|
|
45
|
+
* 当该调用点对应一条 **callback 调用边** 时,argIndex 表示 callback
|
|
46
|
+
* 是原始调用语句的第几个入参(0-based)。
|
|
47
|
+
*
|
|
48
|
+
* 例如语句 `button.onClick(callback)` 中,callback 是第 0 个入参,
|
|
49
|
+
* 则为该 callback 创建的 CallSite 的 argIndex = 0。
|
|
50
|
+
*
|
|
51
|
+
* 对于非 callback 类型的普通调用边,此字段为 undefined。
|
|
52
|
+
*/
|
|
53
|
+
readonly argIndex?: number;
|
|
54
|
+
constructor(id: CallSiteID, s: Stmt, a: Value[] | undefined, ce: FuncID, cr: FuncID, argIndex?: number);
|
|
19
55
|
getCalleeFuncID(): FuncID | undefined;
|
|
20
56
|
}
|
|
57
|
+
/**
|
|
58
|
+
* 动态调用点。
|
|
59
|
+
*
|
|
60
|
+
* 表示一条**不确定**的调用边:在调用图构建初期,调用语句的 callee 尚未确定
|
|
61
|
+
* (典型场景为通过函数类型变量发起的间接调用 `fn()`),仅记录一个候选 callee
|
|
62
|
+
* 或留空,等待指针分析(PTA)阶段将实际指向的方法解析出来后,
|
|
63
|
+
* 再通过 {@link CallSiteManager.cloneCallSiteFromDyn} 克隆为确定性的 {@link CallSite}。
|
|
64
|
+
*/
|
|
21
65
|
export declare class DynCallSite implements ICallSite {
|
|
66
|
+
/** 全局唯一标识 */
|
|
22
67
|
id: CallSiteID;
|
|
68
|
+
/** 触发该调用的语句(通常是 ArkInvokeStmt) */
|
|
23
69
|
callStmt: Stmt;
|
|
70
|
+
/** 调用参数列表,若语句不包含参数信息则为 undefined */
|
|
24
71
|
args: Value[] | undefined;
|
|
72
|
+
/** 候选被调用方方法 ID,在创建时可能不确定 */
|
|
25
73
|
potentialCalleeFuncID: FuncID | undefined;
|
|
74
|
+
/** 调用方方法 ID */
|
|
26
75
|
callerFuncID: FuncID;
|
|
27
76
|
constructor(id: CallSiteID, s: Stmt, a: Value[] | undefined, ptcCallee: FuncID | undefined, caller: FuncID);
|
|
28
77
|
getCalleeFuncID(): FuncID | undefined;
|
|
29
78
|
}
|
|
79
|
+
/**
|
|
80
|
+
* 调用点全局管理器。
|
|
81
|
+
*
|
|
82
|
+
* 负责为 {@link CallSite} 和 {@link DynCallSite} 分配全局唯一 ID,
|
|
83
|
+
* 维护 ID → 调用点、调用点 → ID 的双向映射,
|
|
84
|
+
* 以及动态调用点到其克隆出的静态调用点集合的映射。
|
|
85
|
+
*/
|
|
30
86
|
export declare class CallSiteManager {
|
|
31
87
|
private idToCallSiteMap;
|
|
32
88
|
private callSiteToIdMap;
|
|
33
89
|
private dynToStaticMap;
|
|
90
|
+
/**
|
|
91
|
+
* 创建并注册一个静态调用点。
|
|
92
|
+
* @param s - 触发调用的语句
|
|
93
|
+
* @param a - 调用参数列表
|
|
94
|
+
* @param ce - 被调用方方法 ID
|
|
95
|
+
* @param cr - 调用方方法 ID
|
|
96
|
+
* @returns 新建的全局唯一静态调用点
|
|
97
|
+
*/
|
|
34
98
|
newCallSite(s: Stmt, a: Value[] | undefined, ce: FuncID, cr: FuncID): CallSite;
|
|
99
|
+
/**
|
|
100
|
+
* 创建并注册一个动态调用点。
|
|
101
|
+
* @param s - 触发调用的语句
|
|
102
|
+
* @param a - 调用参数列表
|
|
103
|
+
* @param ptcCallee - 候选被调用方方法 ID,不确定时传 undefined
|
|
104
|
+
* @param caller - 调用方方法 ID
|
|
105
|
+
* @returns 新建的全局唯一动态调用点
|
|
106
|
+
*/
|
|
35
107
|
newDynCallSite(s: Stmt, a: Value[] | undefined, ptcCallee: FuncID | undefined, caller: FuncID): DynCallSite;
|
|
108
|
+
/**
|
|
109
|
+
* 从一个动态调用点克隆出一个确定 callee 的静态调用点。
|
|
110
|
+
*
|
|
111
|
+
* 同一个动态调用点可被多次克隆(对应指针分析解析出的多个实际 callee),
|
|
112
|
+
* 已存在相同 callee 的克隆时直接复用,避免重复创建。
|
|
113
|
+
*
|
|
114
|
+
* @param dynCallSite - 原始动态调用点
|
|
115
|
+
* @param calleeFuncID - 解析出的确定被调用方方法 ID
|
|
116
|
+
* @returns 克隆出的静态调用点(新建或已存在的)
|
|
117
|
+
*/
|
|
36
118
|
cloneCallSiteFromDyn(dynCallSite: DynCallSite, calleeFuncID: FuncID): CallSite;
|
|
119
|
+
/**
|
|
120
|
+
* 根据 ID 查询调用点。
|
|
121
|
+
* @param id - 调用点全局唯一 ID
|
|
122
|
+
* @returns 对应的调用点,不存在时返回 undefined
|
|
123
|
+
*/
|
|
37
124
|
getCallSiteById(id: CallSiteID): ICallSite | undefined;
|
|
38
125
|
}
|
|
39
126
|
//# sourceMappingURL=CallSite.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"CallSite.d.ts","sourceRoot":"","sources":["../../../src/callgraph/model/CallSite.ts"],"names":[],"mappings":"AAeA,OAAO,EAAE,IAAI,EAAE,MAAM,sBAAsB,CAAC;AAC5C,OAAO,EAAE,KAAK,EAAE,MAAM,uBAAuB,CAAC;AAC9C,OAAO,EAAE,MAAM,EAAE,MAAM,aAAa,CAAC;AAErC,MAAM,MAAM,UAAU,GAAG,MAAM,CAAC;AAEhC,MAAM,WAAW,SAAS;IACtB,EAAE,EAAE,UAAU,CAAC;IACf,QAAQ,EAAE,IAAI,CAAC;IACf,IAAI,EAAE,KAAK,EAAE,GAAG,SAAS,CAAC;IAC1B,YAAY,EAAE,MAAM,CAAC;IACrB,eAAe,IAAI,MAAM,GAAG,SAAS,CAAC;CACzC;AAED,qBAAa,QAAS,YAAW,SAAS;
|
|
1
|
+
{"version":3,"file":"CallSite.d.ts","sourceRoot":"","sources":["../../../src/callgraph/model/CallSite.ts"],"names":[],"mappings":"AAeA,OAAO,EAAE,IAAI,EAAE,MAAM,sBAAsB,CAAC;AAC5C,OAAO,EAAE,KAAK,EAAE,MAAM,uBAAuB,CAAC;AAC9C,OAAO,EAAE,MAAM,EAAE,MAAM,aAAa,CAAC;AAErC;;GAEG;AACH,MAAM,MAAM,UAAU,GAAG,MAAM,CAAC;AAEhC;;;GAGG;AACH,MAAM,WAAW,SAAS;IACtB,aAAa;IACb,EAAE,EAAE,UAAU,CAAC;IACf,kCAAkC;IAClC,QAAQ,EAAE,IAAI,CAAC;IACf,oCAAoC;IACpC,IAAI,EAAE,KAAK,EAAE,GAAG,SAAS,CAAC;IAC1B,eAAe;IACf,YAAY,EAAE,MAAM,CAAC;IACrB,kBAAkB;IAClB,eAAe,IAAI,MAAM,GAAG,SAAS,CAAC;CACzC;AAED;;;;;;;;GAQG;AACH,qBAAa,QAAS,YAAW,SAAS;IACtC,aAAa;IACN,EAAE,EAAE,UAAU,CAAC;IACtB,kCAAkC;IAC3B,QAAQ,EAAE,IAAI,CAAC;IACtB,oCAAoC;IAC7B,IAAI,EAAE,KAAK,EAAE,GAAG,SAAS,CAAC;IACjC,gBAAgB;IACT,YAAY,EAAE,MAAM,CAAC;IAC5B,eAAe;IACR,YAAY,EAAE,MAAM,CAAC;IAC5B;;;;;;;;OAQG;IACH,QAAQ,CAAC,QAAQ,CAAC,EAAE,MAAM,CAAC;gBAEf,EAAE,EAAE,UAAU,EAAE,CAAC,EAAE,IAAI,EAAE,CAAC,EAAE,KAAK,EAAE,GAAG,SAAS,EAAE,EAAE,EAAE,MAAM,EAAE,EAAE,EAAE,MAAM,EAAE,QAAQ,CAAC,EAAE,MAAM;IAS/F,eAAe,IAAI,MAAM,GAAG,SAAS;CAG/C;AAED;;;;;;;GAOG;AACH,qBAAa,WAAY,YAAW,SAAS;IACzC,aAAa;IACN,EAAE,EAAE,UAAU,CAAC;IACtB,kCAAkC;IAC3B,QAAQ,EAAE,IAAI,CAAC;IACtB,oCAAoC;IAC7B,IAAI,EAAE,KAAK,EAAE,GAAG,SAAS,CAAC;IACjC,4BAA4B;IACrB,qBAAqB,EAAE,MAAM,GAAG,SAAS,CAAC;IACjD,eAAe;IACR,YAAY,EAAE,MAAM,CAAC;gBAEhB,EAAE,EAAE,UAAU,EAAE,CAAC,EAAE,IAAI,EAAE,CAAC,EAAE,KAAK,EAAE,GAAG,SAAS,EAAE,SAAS,EAAE,MAAM,GAAG,SAAS,EAAE,MAAM,EAAE,MAAM;IAQnG,eAAe,IAAI,MAAM,GAAG,SAAS;CAG/C;AAED;;;;;;GAMG;AACH,qBAAa,eAAe;IACxB,OAAO,CAAC,eAAe,CAAyC;IAChE,OAAO,CAAC,eAAe,CAAyC;IAChE,OAAO,CAAC,cAAc,CAA4C;IAElE;;;;;;;OAOG;IACI,WAAW,CAAC,CAAC,EAAE,IAAI,EAAE,CAAC,EAAE,KAAK,EAAE,GAAG,SAAS,EAAE,EAAE,EAAE,MAAM,EAAE,EAAE,EAAE,MAAM,GAAG,QAAQ;IAQrF;;;;;;;OAOG;IACI,cAAc,CAAC,CAAC,EAAE,IAAI,EAAE,CAAC,EAAE,KAAK,EAAE,GAAG,SAAS,EAAE,SAAS,EAAE,MAAM,GAAG,SAAS,EAAE,MAAM,EAAE,MAAM,GAAG,WAAW;IAQlH;;;;;;;;;OASG;IACI,oBAAoB,CAAC,WAAW,EAAE,WAAW,EAAE,YAAY,EAAE,MAAM,GAAG,QAAQ;IAgBrF;;;;OAIG;IACI,eAAe,CAAC,EAAE,EAAE,UAAU,GAAG,SAAS,GAAG,SAAS;CAGhE"}
|
|
@@ -15,19 +15,37 @@
|
|
|
15
15
|
*/
|
|
16
16
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
17
17
|
exports.CallSiteManager = exports.DynCallSite = exports.CallSite = void 0;
|
|
18
|
+
/**
|
|
19
|
+
* 静态调用点。
|
|
20
|
+
*
|
|
21
|
+
* 表示一条**确定**的 `caller → callee` 调用边:在构建调用图时(CHA/RTA/PTA),
|
|
22
|
+
* 调用语句的目标方法已被解析为具体的 calleeFuncID,不再发生变化。
|
|
23
|
+
*
|
|
24
|
+
* 与 {@link DynCallSite} 相对,后者在创建时 callee 未知或仅为候选,
|
|
25
|
+
* 需要在后续指针分析阶段被克隆为确定性的静态调用点。
|
|
26
|
+
*/
|
|
18
27
|
class CallSite {
|
|
19
|
-
constructor(id, s, a, ce, cr) {
|
|
28
|
+
constructor(id, s, a, ce, cr, argIndex) {
|
|
20
29
|
this.id = id;
|
|
21
30
|
this.callStmt = s;
|
|
22
31
|
this.args = a;
|
|
23
32
|
this.calleeFuncID = ce;
|
|
24
33
|
this.callerFuncID = cr;
|
|
34
|
+
this.argIndex = argIndex;
|
|
25
35
|
}
|
|
26
36
|
getCalleeFuncID() {
|
|
27
37
|
return this.calleeFuncID;
|
|
28
38
|
}
|
|
29
39
|
}
|
|
30
40
|
exports.CallSite = CallSite;
|
|
41
|
+
/**
|
|
42
|
+
* 动态调用点。
|
|
43
|
+
*
|
|
44
|
+
* 表示一条**不确定**的调用边:在调用图构建初期,调用语句的 callee 尚未确定
|
|
45
|
+
* (典型场景为通过函数类型变量发起的间接调用 `fn()`),仅记录一个候选 callee
|
|
46
|
+
* 或留空,等待指针分析(PTA)阶段将实际指向的方法解析出来后,
|
|
47
|
+
* 再通过 {@link CallSiteManager.cloneCallSiteFromDyn} 克隆为确定性的 {@link CallSite}。
|
|
48
|
+
*/
|
|
31
49
|
class DynCallSite {
|
|
32
50
|
constructor(id, s, a, ptcCallee, caller) {
|
|
33
51
|
this.id = id;
|
|
@@ -41,12 +59,27 @@ class DynCallSite {
|
|
|
41
59
|
}
|
|
42
60
|
}
|
|
43
61
|
exports.DynCallSite = DynCallSite;
|
|
62
|
+
/**
|
|
63
|
+
* 调用点全局管理器。
|
|
64
|
+
*
|
|
65
|
+
* 负责为 {@link CallSite} 和 {@link DynCallSite} 分配全局唯一 ID,
|
|
66
|
+
* 维护 ID → 调用点、调用点 → ID 的双向映射,
|
|
67
|
+
* 以及动态调用点到其克隆出的静态调用点集合的映射。
|
|
68
|
+
*/
|
|
44
69
|
class CallSiteManager {
|
|
45
70
|
constructor() {
|
|
46
71
|
this.idToCallSiteMap = new Map();
|
|
47
72
|
this.callSiteToIdMap = new Map();
|
|
48
73
|
this.dynToStaticMap = new Map();
|
|
49
74
|
}
|
|
75
|
+
/**
|
|
76
|
+
* 创建并注册一个静态调用点。
|
|
77
|
+
* @param s - 触发调用的语句
|
|
78
|
+
* @param a - 调用参数列表
|
|
79
|
+
* @param ce - 被调用方方法 ID
|
|
80
|
+
* @param cr - 调用方方法 ID
|
|
81
|
+
* @returns 新建的全局唯一静态调用点
|
|
82
|
+
*/
|
|
50
83
|
newCallSite(s, a, ce, cr) {
|
|
51
84
|
let id = this.idToCallSiteMap.size;
|
|
52
85
|
let callSite = new CallSite(id, s, a, ce, cr);
|
|
@@ -54,6 +87,14 @@ class CallSiteManager {
|
|
|
54
87
|
this.callSiteToIdMap.set(callSite, id);
|
|
55
88
|
return callSite;
|
|
56
89
|
}
|
|
90
|
+
/**
|
|
91
|
+
* 创建并注册一个动态调用点。
|
|
92
|
+
* @param s - 触发调用的语句
|
|
93
|
+
* @param a - 调用参数列表
|
|
94
|
+
* @param ptcCallee - 候选被调用方方法 ID,不确定时传 undefined
|
|
95
|
+
* @param caller - 调用方方法 ID
|
|
96
|
+
* @returns 新建的全局唯一动态调用点
|
|
97
|
+
*/
|
|
57
98
|
newDynCallSite(s, a, ptcCallee, caller) {
|
|
58
99
|
let id = this.idToCallSiteMap.size;
|
|
59
100
|
let callSite = new DynCallSite(id, s, a, ptcCallee, caller);
|
|
@@ -61,12 +102,20 @@ class CallSiteManager {
|
|
|
61
102
|
this.callSiteToIdMap.set(callSite, id);
|
|
62
103
|
return callSite;
|
|
63
104
|
}
|
|
105
|
+
/**
|
|
106
|
+
* 从一个动态调用点克隆出一个确定 callee 的静态调用点。
|
|
107
|
+
*
|
|
108
|
+
* 同一个动态调用点可被多次克隆(对应指针分析解析出的多个实际 callee),
|
|
109
|
+
* 已存在相同 callee 的克隆时直接复用,避免重复创建。
|
|
110
|
+
*
|
|
111
|
+
* @param dynCallSite - 原始动态调用点
|
|
112
|
+
* @param calleeFuncID - 解析出的确定被调用方方法 ID
|
|
113
|
+
* @returns 克隆出的静态调用点(新建或已存在的)
|
|
114
|
+
*/
|
|
64
115
|
cloneCallSiteFromDyn(dynCallSite, calleeFuncID) {
|
|
65
116
|
var _a;
|
|
66
117
|
let clonedCS = (_a = this.dynToStaticMap.get(dynCallSite.id)) !== null && _a !== void 0 ? _a : [];
|
|
67
|
-
let foundCS = clonedCS
|
|
68
|
-
.map(id => this.idToCallSiteMap.get(id))
|
|
69
|
-
.find(cs => cs.calleeFuncID === calleeFuncID);
|
|
118
|
+
let foundCS = clonedCS.map(id => this.idToCallSiteMap.get(id)).find(cs => cs.calleeFuncID === calleeFuncID);
|
|
70
119
|
if (foundCS) {
|
|
71
120
|
return foundCS;
|
|
72
121
|
}
|
|
@@ -75,6 +124,11 @@ class CallSiteManager {
|
|
|
75
124
|
this.dynToStaticMap.set(dynCallSite.id, clonedCS);
|
|
76
125
|
return staticCS;
|
|
77
126
|
}
|
|
127
|
+
/**
|
|
128
|
+
* 根据 ID 查询调用点。
|
|
129
|
+
* @param id - 调用点全局唯一 ID
|
|
130
|
+
* @returns 对应的调用点,不存在时返回 undefined
|
|
131
|
+
*/
|
|
78
132
|
getCallSiteById(id) {
|
|
79
133
|
return this.idToCallSiteMap.get(id);
|
|
80
134
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"ArkIRTransformer.d.ts","sourceRoot":"","sources":["../../../src/core/common/ArkIRTransformer.ts"],"names":[],"mappings":"AAeA,OAAO,EAEH,aAAa,EAKb,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,EAAE,sBAAsB,EAA2F,IAAI,EAAE,MAAM,cAAc,CAAC;AACrJ,OAAO,EAAE,SAAS,EAA6E,MAAM,cAAc,CAAC;AAKpH,OAAO,EAAE,SAAS,EAAE,MAAM,oBAAoB,CAAC;AAI/C,OAAO,EAAE,YAAY,EAAE,MAAM,kBAAkB,CAAC;AAMhD,OAAO,EAAE,mBAAmB,EAAE,MAAM,uBAAuB,CAAC;AAO5D,MAAM,MAAM,aAAa,GAAG;IACxB,KAAK,EAAE,KAAK,CAAC;IACb,sBAAsB,EAAE,YAAY,EAAE,CAAC;IACvC,KAAK,EAAE,IAAI,EAAE,CAAC;CACjB,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;IACjH,gBAAuB,4BAA4B,YAAY;IAC/D,gBAAuB,2BAA2B,YAAY;IAC9D,gBAAuB,qBAAqB,WAAW;IAEvD,SAAS,CAAC,UAAU,EAAE,EAAE,CAAC,UAAU,CAAC;IACpC,SAAS,CAAC,eAAe,EAAE,SAAS,CAAC;IACrC,SAAS,CAAC,eAAe,UAAS;IAClC,SAAS,CAAC,wBAAwB,UAAS;IAC3C,SAAS,CAAC,mBAAmB,EAAE,mBAAmB,CAAC;gBAEvC,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;IAiBvB,aAAa,CAAC,IAAI,EAAE,EAAE,CAAC,IAAI,GAAG,IAAI,EAAE;IA+CpC,qBAAqB,CAAC,IAAI,EAAE,EAAE,CAAC,IAAI,GAAG,aAAa;IAI1D,SAAS,CAAC,0BAA0B,CAAC,uBAAuB,EAAE,EAAE,CAAC,mBAAmB,GAAG,IAAI,EAAE;IAU7F,SAAS,CAAC,uBAAuB,CAAC,IAAI,EAAE,EAAE,CAAC,gBAAgB,GAAG,IAAI,EAAE;IAYpE,OAAO,CAAC,wBAAwB;IAiDhC,OAAO,CAAC,gBAAgB;
|
|
1
|
+
{"version":3,"file":"ArkIRTransformer.d.ts","sourceRoot":"","sources":["../../../src/core/common/ArkIRTransformer.ts"],"names":[],"mappings":"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"}
|
|
@@ -268,12 +268,12 @@ class ArkIRTransformer {
|
|
|
268
268
|
return stmts;
|
|
269
269
|
}
|
|
270
270
|
const { value: paramInitValue, valueOriginalPositions: paramInitPositions, stmts: paramInitStmts } = this.tsNodeToValueAndStmts(paramNode.initializer);
|
|
271
|
-
stmts.push(...paramInitStmts);
|
|
272
271
|
const ifStmt = new Stmt_1.ArkIfStmt(new Expr_1.ArkConditionExpr(paramLocal, ValueUtil_1.ValueUtil.getUndefinedConst(), Expr_1.RelationalBinaryOperator.Equality));
|
|
273
272
|
ifStmt.setOperandOriginalPositions([Position_1.FullPosition.DEFAULT, Position_1.FullPosition.DEFAULT]);
|
|
274
273
|
stmts.push(ifStmt);
|
|
275
274
|
const currConditionalOperatorIndex = this.arkValueTransformer.conditionalOperatorNo++;
|
|
276
275
|
stmts.push(new DummyStmt(ArkIRTransformer.DUMMY_CONDITIONAL_OPERATOR_IF_TRUE_STMT + currConditionalOperatorIndex));
|
|
276
|
+
stmts.push(...paramInitStmts);
|
|
277
277
|
const assignStmt = new Stmt_1.ArkAssignStmt(paramLocal, paramInitValue);
|
|
278
278
|
assignStmt.setOperandOriginalPositions([Position_1.FullPosition.DEFAULT, ...paramInitPositions]);
|
|
279
279
|
stmts.push(assignStmt);
|
|
@@ -1 +1 @@
|
|
|
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;AACtC,OAAO,EAAE,YAAY,EAAE,MAAM,kBAAkB,CAAC;AAChD,OAAO,EAAE,sBAAsB,EAA2C,IAAI,EAAE,MAAM,cAAc,CAAC;AACrG,OAAO,EAgBH,cAAc,EAGjB,MAAM,cAAc,CAAC;AAItB,OAAO,EACH,SAAS,EAcT,IAAI,EAMP,MAAM,cAAc,CAAC;AAKtB,OAAO,EAAE,KAAK,EAAE,MAAM,eAAe,CAAC;AAYtC,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,SAAS,CAAC,WAAW,EAAE,MAAM,CAAK;IAClC,SAAS,CAAC,UAAU,EAAE,EAAE,CAAC,UAAU,CAAC;IACpC,SAAS,CAAC,MAAM,EAAE,GAAG,CAAC,MAAM,EAAE,KAAK,CAAC,CAAa;IACjD,SAAS,CAAC,OAAO,CAAC,EAAE,GAAG,CAAC,MAAM,EAAE,SAAS,CAAC,CAAC;IAC3C,SAAS,CAAC,SAAS,EAAE,KAAK,CAAC;IAC3B,SAAS,CAAC,eAAe,EAAE,SAAS,CAAC;IACrC,SAAS,CAAC,gBAAgB,EAAE,gBAAgB,CAAC;IAC7C,SAAS,CAAC,YAAY,EAAE,GAAG,CAAC,MAAM,EAAE,CAAC,SAAS,EAAE,sBAAsB,CAAC,CAAC,CAAa;IACrF,SAAS,CAAC,wBAAwB,UAAS;gBAE/B,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,SAAS,CAAC,YAAY,CAAC,IAAI,EAAE,MAAM,EAAE,GAAG,CAAC,EAAE,KAAK,GAAG,SAAS;IAOrD,qBAAqB,CAAC,IAAI,EAAE,EAAE,CAAC,IAAI,GAAG,aAAa;IAsE1D,OAAO,CAAC,kCAAkC;IAW1C,OAAO,CAAC,6BAA6B;IAQrC,OAAO,CAAC,8BAA8B;IAQtC,OAAO,CAAC,oCAAoC;IA4C5C,OAAO,CAAC,qCAAqC;IAoC7C,OAAO,CAAC,oCAAoC;IAW5C,OAAO,CAAC,qCAAqC;IAwC7C,OAAO,CAAC,eAAe;
|
|
1
|
+
{"version":3,"file":"ArkValueTransformer.d.ts","sourceRoot":"","sources":["../../../src/core/common/ArkValueTransformer.ts"],"names":[],"mappings":"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"}
|
|
@@ -311,7 +311,9 @@ class ArkValueTransformer {
|
|
|
311
311
|
appendInitStmts(stmts, fieldInitStmts, initStmts) {
|
|
312
312
|
initStmts.forEach(stmt => {
|
|
313
313
|
stmts.push(stmt);
|
|
314
|
-
|
|
314
|
+
if (!(stmt instanceof ArkIRTransformer_1.DummyStmt)) {
|
|
315
|
+
fieldInitStmts.push(stmt);
|
|
316
|
+
}
|
|
315
317
|
});
|
|
316
318
|
}
|
|
317
319
|
setFieldInitializerWithPosition(field, fieldInitStmts, initValue) {
|
|
@@ -527,7 +527,7 @@ class IRInference {
|
|
|
527
527
|
return null;
|
|
528
528
|
}
|
|
529
529
|
static getRealTypes(expr, declaredClass, baseType, method) {
|
|
530
|
-
var _a;
|
|
530
|
+
var _a, _b;
|
|
531
531
|
let realTypes;
|
|
532
532
|
const tmp = [];
|
|
533
533
|
if (method === null || method === void 0 ? void 0 : method.getGenericTypes()) {
|
|
@@ -546,7 +546,7 @@ class IRInference {
|
|
|
546
546
|
realTypes = [new Type_1.ClassType(declaredClass === null || declaredClass === void 0 ? void 0 : declaredClass.getSignature())];
|
|
547
547
|
}
|
|
548
548
|
else {
|
|
549
|
-
realTypes = (_a =
|
|
549
|
+
realTypes = (_b = (_a = expr.getRealGenericTypes()) !== null && _a !== void 0 ? _a : baseType.getRealGenericTypes()) !== null && _b !== void 0 ? _b : declaredClass === null || declaredClass === void 0 ? void 0 : declaredClass.getRealTypes();
|
|
550
550
|
}
|
|
551
551
|
return realTypes;
|
|
552
552
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"SdkUtils.d.ts","sourceRoot":"","sources":["../../../src/core/common/SdkUtils.ts"],"names":[],"mappings":"AAeA,OAAO,EAAE,OAAO,EAAE,MAAM,kBAAkB,CAAC;AAC3C,OAAO,EAAE,SAAS,EAAc,MAAM,oBAAoB,CAAC;AAU3D,OAAO,EAAE,QAAQ,EAAiB,MAAM,mBAAmB,CAAC;AAG5D,OAAO,EAAE,SAAS,EAAE,MAAM,oBAAoB,CAAC;AAG/C,OAAO,EAAE,gBAAgB,EAAE,MAAM,aAAa,CAAC;AAG/C,OAAO,EAAE,GAAG,EAAE,MAAM,cAAc,CAAC;AAGnC,OAAO,EAAE,KAAK,EAAE,MAAM,aAAa,CAAC;
|
|
1
|
+
{"version":3,"file":"SdkUtils.d.ts","sourceRoot":"","sources":["../../../src/core/common/SdkUtils.ts"],"names":[],"mappings":"AAeA,OAAO,EAAE,OAAO,EAAE,MAAM,kBAAkB,CAAC;AAC3C,OAAO,EAAE,SAAS,EAAc,MAAM,oBAAoB,CAAC;AAU3D,OAAO,EAAE,QAAQ,EAAiB,MAAM,mBAAmB,CAAC;AAG5D,OAAO,EAAE,SAAS,EAAE,MAAM,oBAAoB,CAAC;AAG/C,OAAO,EAAE,gBAAgB,EAAE,MAAM,aAAa,CAAC;AAG/C,OAAO,EAAE,GAAG,EAAE,MAAM,cAAc,CAAC;AAGnC,OAAO,EAAE,KAAK,EAAE,MAAM,aAAa,CAAC;AAMpC,qBAAa,QAAQ;IACjB,OAAO,CAAC,MAAM,CAAC,SAAS,CAA8B;IACtD,OAAO,CAAC,MAAM,CAAC,YAAY,CAGxB;IAEH,OAAO,CAAC,MAAM,CAAC,YAAY,CAAoD;IAC/E,OAAc,aAAa,SAAc;IACzC,OAAO,CAAC,MAAM,CAAC,cAAc,CAG3B;WAEY,YAAY,CAAC,YAAY,EAAE,GAAG,GAAG,IAAI;WAsBrC,aAAa,IAAI,GAAG;WAoBpB,iBAAiB,CAAC,WAAW,EAAE,MAAM,GAAG,MAAM,EAAE;IAW9D,OAAO,CAAC,MAAM,CAAC,QAAQ;WAaT,OAAO,IAAI,IAAI;WAIf,iBAAiB,CAAC,IAAI,EAAE,OAAO,GAAG,IAAI;WAStC,gBAAgB,CAAC,IAAI,EAAE,MAAM,GAAG,OAAO,GAAG,SAAS;IAIjE,OAAO,CAAC,MAAM,CAAC,YAAY;WAUb,aAAa,CAAC,IAAI,EAAE,OAAO,EAAE,SAAS,EAAE,GAAG,CAAC,MAAM,EAAE,SAAS,CAAC,GAAG,IAAI;WAqBrE,cAAc,CAAC,IAAI,EAAE,OAAO,EAAE,SAAS,EAAE,GAAG,CAAC,MAAM,EAAE,SAAS,CAAC,GAAG,IAAI;IAiBpF,OAAO,CAAC,MAAM,CAAC,aAAa;WAWd,OAAO,CAAC,GAAG,EAAE,SAAS,EAAE,SAAS,EAAE,GAAG,CAAC,MAAM,EAAE,SAAS,CAAC,EAAE,QAAQ,GAAE,OAAe,GAAG,IAAI;WAY3F,eAAe,CAAC,IAAI,EAAE,OAAO,EAAE,SAAS,EAAE,GAAG,CAAC,MAAM,EAAE,SAAS,CAAC,GAAG,IAAI;IAgBrF,OAAO,CAAC,MAAM,CAAC,SAAS;IAiBxB,OAAO,CAAC,MAAM,CAAC,eAAe;WA0BhB,WAAW,CAAC,IAAI,EAAE,QAAQ,EAAE,EAAE,EAAE,QAAQ,GAAG,IAAI;WAqB/C,iBAAiB,CAAC,MAAM,EAAE,gBAAgB,EAAE,SAAS,EAAE,SAAS,GAAG,IAAI;WAWvE,WAAW,CAAC,KAAK,EAAE,KAAK,GAAG,IAAI;WAgB/B,2BAA2B,CAAC,OAAO,EAAE,MAAM,GAAG,IAAI;CAwBnE"}
|
|
@@ -56,11 +56,27 @@ const logger_1 = __importStar(require("../../utils/logger"));
|
|
|
56
56
|
const ohos_typescript_1 = __importDefault(require("ohos-typescript"));
|
|
57
57
|
const fs_1 = __importDefault(require("fs"));
|
|
58
58
|
const logger = logger_1.default.getLogger(logger_1.LOG_MODULE_TYPE.ARKANALYZER, 'SdkUtils');
|
|
59
|
+
const DEFAULT_ES_VERSION = 'ES2021';
|
|
59
60
|
class SdkUtils {
|
|
60
61
|
static setEsVersion(buildProfile) {
|
|
61
|
-
|
|
62
|
-
const
|
|
63
|
-
|
|
62
|
+
var _a;
|
|
63
|
+
const products = (_a = buildProfile === null || buildProfile === void 0 ? void 0 : buildProfile.app) === null || _a === void 0 ? void 0 : _a.products;
|
|
64
|
+
let version;
|
|
65
|
+
if (Array.isArray(products)) {
|
|
66
|
+
const defaultProduct = products.find(p => (p === null || p === void 0 ? void 0 : p.name) === 'default');
|
|
67
|
+
const accessChain = 'buildOption.arkOptions.tscConfig.targetESVersion';
|
|
68
|
+
if (defaultProduct) {
|
|
69
|
+
version = accessChain.split('.').reduce((acc, key) => acc === null || acc === void 0 ? void 0 : acc[key], defaultProduct);
|
|
70
|
+
}
|
|
71
|
+
// Fall back to the first product with a targetESVersion
|
|
72
|
+
if (!version) {
|
|
73
|
+
version = products.find(product => accessChain.split('.').reduce((acc, key) => acc === null || acc === void 0 ? void 0 : acc[key], product));
|
|
74
|
+
}
|
|
75
|
+
}
|
|
76
|
+
if (!version) {
|
|
77
|
+
version = DEFAULT_ES_VERSION;
|
|
78
|
+
}
|
|
79
|
+
if (this.esVersionMap.has(version)) {
|
|
64
80
|
this.esVersion = version;
|
|
65
81
|
}
|
|
66
82
|
}
|
|
@@ -82,7 +98,7 @@ class SdkUtils {
|
|
|
82
98
|
return {
|
|
83
99
|
moduleName: '',
|
|
84
100
|
name: this.BUILT_IN_NAME,
|
|
85
|
-
path: builtInPath
|
|
101
|
+
path: builtInPath,
|
|
86
102
|
};
|
|
87
103
|
}
|
|
88
104
|
static fetchBuiltInFiles(builtInPath) {
|
|
@@ -326,10 +342,10 @@ class SdkUtils {
|
|
|
326
342
|
}
|
|
327
343
|
}
|
|
328
344
|
exports.SdkUtils = SdkUtils;
|
|
329
|
-
SdkUtils.esVersion =
|
|
345
|
+
SdkUtils.esVersion = DEFAULT_ES_VERSION;
|
|
330
346
|
SdkUtils.esVersionMap = new Map([
|
|
331
347
|
['ES2017', 'lib.es2020.d.ts'],
|
|
332
|
-
['ES2021', 'lib.es2021.d.ts']
|
|
348
|
+
['ES2021', 'lib.es2021.d.ts'],
|
|
333
349
|
]);
|
|
334
350
|
SdkUtils.sdkImportMap = new Map();
|
|
335
351
|
SdkUtils.BUILT_IN_NAME = 'built-in';
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"TypeInference.d.ts","sourceRoot":"","sources":["../../../src/core/common/TypeInference.ts"],"names":[],"mappings":"AAiBA,OAAO,EAAE,KAAK,EAAE,MAAM,eAAe,CAAC;AAUtC,OAAO,EAAwD,IAAI,EAAE,MAAM,cAAc,CAAC;AAC1F,OAAO,EAQH,aAAa,EACb,YAAY,EACZ,WAAW,EAQX,IAAI,EACJ,oBAAoB,EAKvB,MAAM,cAAc,CAAC;AAEtB,OAAO,EAAE,SAAS,EAAE,MAAM,oBAAoB,CAAC;AAC/C,OAAO,EAAE,SAAS,EAAE,MAAM,oBAAoB,CAAC;AAC/C,OAAO,EAAE,QAAQ,EAAiB,MAAM,mBAAmB,CAAC;AAC5D,OAAO,EAAE,QAAQ,EAAiB,MAAM,mBAAmB,CAAC;AAC5D,OAAO,EAAE,KAAK,EAAE,MAAM,eAAe,CAAC;AAuBtC,OAAO,EAAE,eAAe,EAAE,kBAAkB,EAAsB,MAAM,uBAAuB,CAAC;AAWhG,OAAO,EAAE,eAAe,EAAE,MAAM,mCAAmC,CAAC;AAKpE,OAAO,EAAE,KAAK,EAAE,MAAM,aAAa,CAAC;AAKpC,qBAAa,aAAa;WACR,mBAAmB,CAAC,QAAQ,EAAE,QAAQ,GAAG,IAAI;IAqC3D;;;;;;;;;OASG;WACW,kBAAkB,CAAC,UAAU,EAAE,IAAI,EAAE,iBAAiB,EAAE,QAAQ,EAAE,OAAO,GAAE,GAAG,CAAC,IAAI,CAAa,GAAG,IAAI,GAAG,IAAI,GAAG,SAAS;IAgCxI,OAAO,CAAC,MAAM,CAAC,uBAAuB;WAmCxB,iBAAiB,CAAC,SAAS,EAAE,SAAS,GAAG,IAAI;IAuC3D,OAAO,CAAC,MAAM,CAAC,WAAW;IAY1B;;;OAGG;WACW,uBAAuB,CAAC,SAAS,EAAE,SAAS,GAAG,IAAI;IAkBjE;;;OAGG;IACH,OAAO,CAAC,MAAM,CAAC,kBAAkB;IAuBjC;;OAEG;IACH,OAAO,CAAC,MAAM,CAAC,sBAAsB;IAMrC;;OAEG;IACH,OAAO,CAAC,MAAM,CAAC,sBAAsB;IAqBrC,OAAO,CAAC,MAAM,CAAC,UAAU;WAwBX,sBAAsB,CAAC,IAAI,EAAE,MAAM,EAAE,SAAS,EAAE,SAAS,GAAG,KAAK,GAAG,IAAI;WAgBxE,mBAAmB,CAAC,SAAS,EAAE,SAAS,GAAG,SAAS,GAAG,IAAI,GAAG,IAAI,GAAG,IAAI;IAsBvF;;;;OAIG;WACW,oBAAoB,CAAC,IAAI,EAAE,IAAI,EAAE,SAAS,EAAE,SAAS,GAAG,IAAI;IAmB1E,OAAO,CAAC,MAAM,CAAC,aAAa;IAuB5B,OAAO,CAAC,MAAM,CAAC,eAAe;WAwBhB,YAAY,CAAC,KAAK,EAAE,KAAK,EAAE,IAAI,EAAE,IAAI,GAAG,IAAI;WAQ5C,aAAa,CAAC,IAAI,EAAE,IAAI,GAAG,IAAI,GAAG,SAAS,GAAG,OAAO;WA8BrD,SAAS,CAAC,IAAI,EAAE,IAAI,EACV,KAAK,EAAE,CAAC,CAAC,EAAE,IAAI,KAAK,OAAO,EAC3B,OAAO,GAAE,GAAG,CAAC,IAAI,CAAa,GAAG,OAAO;WAwBlD,qBAAqB,CAAC,IAAI,EAAE,IAAI,GAAG,IAAI;WAcvC,gBAAgB,CAAC,OAAO,EAAE,MAAM,GAAG,IAAI;WA6BvC,cAAc,CAAC,KAAK,EAAE,KAAK,EAAE,SAAS,EAAE,SAAS,GAAG,IAAI,GAAG,IAAI;WAU/D,kBAAkB,CAAC,KAAK,EAAE,eAAe,EAAE,SAAS,EAAE,SAAS,GAAG,IAAI;WAgBtE,wBAAwB,CAAC,YAAY,EAAE,eAAe,EAAE,SAAS,EAAE,SAAS,GAAG,IAAI;WA2BnF,eAAe,CAAC,SAAS,EAAE,SAAS,GAAG,IAAI,GAAG,IAAI;WA8BlD,gBAAgB,CAAC,KAAK,EAAE,WAAW,EAAE,GAAG,SAAS,EAAE,QAAQ,EAAE,QAAQ,GAAG,IAAI;IAmB1F;;;;;;;OAOG;WACW,mBAAmB,CAAC,MAAM,EAAE,oBAAoB,EAAE,QAAQ,EAAE,QAAQ,GAAG,IAAI,GAAG,IAAI;IAUhG;;;;;;;OAOG;WACW,mBAAmB,CAAC,OAAO,EAAE,MAAM,EAAE,QAAQ,EAAE,QAAQ,GAAG,IAAI,GAAG,IAAI;IAoCnF;;;;;;;;;OASG;WACW,cAAc,CAAC,QAAQ,EAAE,IAAI,EAAE,SAAS,EAAE,MAAM,EAAE,YAAY,EAAE,QAAQ,GAAG,CAAC,GAAG,EAAE,IAAI,CAAC,GAAG,IAAI;IAoC3G,OAAO,CAAC,MAAM,CAAC,mBAAmB;IA0BlC,OAAO,CAAC,MAAM,CAAC,eAAe;WAUhB,gBAAgB,CAAC,QAAQ,EAAE,QAAQ,GAAG,aAAa,GAAG,IAAI;IAoBxE,OAAO,CAAC,MAAM,CAAC,mBAAmB;IAYlC;;;;;;;OAOG;WACW,aAAa,CAAC,QAAQ,EAAE,MAAM,EAAE,QAAQ,EAAE,QAAQ,GAAG,IAAI,GAAG,IAAI;WAehE,eAAe,CAAC,QAAQ,EAAE,MAAM,EAAE,QAAQ,EAAE,QAAQ,GAAG,IAAI,GAAG,IAAI;WAqBlE,mBAAmB,CAAC,UAAU,EAAE,MAAM,EAAE,SAAS,EAAE,SAAS,GAAG,IAAI,GAAG,IAAI;WAK1E,qBAAqB,CAAC,SAAS,EAAE,IAAI,EAAE,GAAG,SAAS,EAAE,QAAQ,EAAE,QAAQ,GAAG,IAAI;WAe9E,sBAAsB,CAAC,IAAI,EAAE,MAAM,EAAE,QAAQ,EAAE,QAAQ,GAAG,IAAI,GAAG,IAAI;WASrE,mBAAmB,CAAC,IAAI,EAAE,IAAI,EAAE,SAAS,CAAC,EAAE,IAAI,EAAE,EAAE,OAAO,GAAE,GAAG,CAAC,IAAI,CAAa,GAAG,IAAI;WAgBzF,oBAAoB,CAAC,IAAI,EAAE,IAAI,EAAE,OAAO,EAAE,GAAG,CAAC,IAAI,CAAC,EAAE,SAAS,CAAC,EAAE,IAAI,EAAE,GAAG,IAAI;WAkC9E,gBAAgB,CAAC,IAAI,EAAE,IAAI,GAAG,IAAI;WAQlC,iBAAiB,CAAC,OAAO,EAAE,YAAY,EAAE,iBAAiB,EAAE,kBAAkB,GAAG,SAAS,EAAE,SAAS,EAAE,IAAI,EAAE,GAAG,SAAS,GAAG,IAAI;IA4B9I,OAAO,CAAC,MAAM,CAAC,oBAAoB;WAerB,UAAU,CAAC,OAAO,EAAE,IAAI,EAAE,WAAW,EAAE,MAAM,GAAG,OAAO;WAYvD,gBAAgB,CAAC,SAAS,EAAE,IAAI,GAAG,OAAO;WAO1C,mBAAmB,CAAC,IAAI,EAAE,IAAI,GAAG,OAAO;WAcxC,KAAK,CAAC,KAAK,EAAE,IAAI,EAAE,KAAK,EAAE,IAAI,GAAG,IAAI;WAuBrC,UAAU,CAAC,KAAK,EAAE,IAAI,EAAE,KAAK,EAAE,IAAI,GAAG,OAAO;IAa3D;;;;;;OAMG;WACW,qBAAqB,CAAC,KAAK,EAAE,KAAK,EAAE,KAAK,EAAE,KAAK,GAAG,IAAI;IAkBrE;;OAEG;WACW,SAAS,CAAC,KAAK,EAAE,IAAI,EAAE,MAAM,EAAE,IAAI,EAAE,KAAK,EAAE,KAAK,GAAG,OAAO;
|
|
1
|
+
{"version":3,"file":"TypeInference.d.ts","sourceRoot":"","sources":["../../../src/core/common/TypeInference.ts"],"names":[],"mappings":"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"}
|
|
@@ -1122,6 +1122,9 @@ class TypeInference {
|
|
|
1122
1122
|
if (!(declare instanceof Type_1.ClassType) || !(real instanceof Type_1.ClassType)) {
|
|
1123
1123
|
return false;
|
|
1124
1124
|
}
|
|
1125
|
+
if (real.getClassSignature().getClassName() === declare.getClassSignature().getClassName()) {
|
|
1126
|
+
return false;
|
|
1127
|
+
}
|
|
1125
1128
|
const fatherClass = scene.getClass(declare.getClassSignature());
|
|
1126
1129
|
let childClass = scene.getClass(real.getClassSignature());
|
|
1127
1130
|
while (childClass) {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"SwitchBuilder.d.ts","sourceRoot":"","sources":["../../../../src/core/graph/builder/SwitchBuilder.ts"],"names":[],"mappings":"AAeA,OAAO,EAAE,UAAU,EAAE,MAAM,eAAe,CAAC;AAC3C,OAAO,EAAE,gBAAgB,EAAE,aAAa,EAAE,MAAM,+BAA+B,CAAC;AAEhF,OAAO,EAAE,YAAY,EAAsC,MAAM,cAAc,CAAC;AAKhF;;GAEG;AACH,qBAAa,aAAa;IACf,WAAW,CACd,sBAAsB,EAAE,GAAG,CAAC,YAAY,EAAE,UAAU,CAAC,EACrD,0BAA0B,EAAE,YAAY,EAAE,EAC1C,gCAAgC,EAAE,aAAa,EAAE,EAAE,EACnD,gBAAgB,EAAE,gBAAgB,EAClC,aAAa,EAAE,GAAG,CAAC,UAAU,CAAC,GAC/B,IAAI;IA0CP,OAAO,CAAC,wBAAwB;IAwChC,OAAO,CAAC,uBAAuB;
|
|
1
|
+
{"version":3,"file":"SwitchBuilder.d.ts","sourceRoot":"","sources":["../../../../src/core/graph/builder/SwitchBuilder.ts"],"names":[],"mappings":"AAeA,OAAO,EAAE,UAAU,EAAE,MAAM,eAAe,CAAC;AAC3C,OAAO,EAAE,gBAAgB,EAAE,aAAa,EAAE,MAAM,+BAA+B,CAAC;AAEhF,OAAO,EAAE,YAAY,EAAsC,MAAM,cAAc,CAAC;AAKhF;;GAEG;AACH,qBAAa,aAAa;IACf,WAAW,CACd,sBAAsB,EAAE,GAAG,CAAC,YAAY,EAAE,UAAU,CAAC,EACrD,0BAA0B,EAAE,YAAY,EAAE,EAC1C,gCAAgC,EAAE,aAAa,EAAE,EAAE,EACnD,gBAAgB,EAAE,gBAAgB,EAClC,aAAa,EAAE,GAAG,CAAC,UAAU,CAAC,GAC/B,IAAI;IA0CP,OAAO,CAAC,wBAAwB;IAwChC,OAAO,CAAC,uBAAuB;CAwDlC"}
|
|
@@ -109,7 +109,17 @@ class SwitchBuilder {
|
|
|
109
109
|
const expectedSuccessorsOfCaseIfBlock = [];
|
|
110
110
|
const defaultStmtBuilder = switchStmtBuilder.default;
|
|
111
111
|
if (defaultStmtBuilder && defaultStmtBuilder.block) {
|
|
112
|
-
|
|
112
|
+
// default may appear before later cases; identify by block identity, not list position
|
|
113
|
+
if (!blockBuilderToCfgBlock.has(defaultStmtBuilder.block)) {
|
|
114
|
+
logger.error(`can't find basicBlock corresponding to the default blockBuilder.`);
|
|
115
|
+
return false;
|
|
116
|
+
}
|
|
117
|
+
const defaultBasicBlock = blockBuilderToCfgBlock.get(defaultStmtBuilder.block);
|
|
118
|
+
const defaultIndex = successorsOfBlockContainSwitch.indexOf(defaultBasicBlock);
|
|
119
|
+
if (defaultIndex !== -1) {
|
|
120
|
+
successorsOfBlockContainSwitch.splice(defaultIndex, 1);
|
|
121
|
+
}
|
|
122
|
+
expectedSuccessorsOfCaseIfBlock.push(defaultBasicBlock);
|
|
113
123
|
}
|
|
114
124
|
else {
|
|
115
125
|
const afterSwitchStmtBuilder = switchStmtBuilder.afterSwitch;
|
|
@@ -291,7 +291,7 @@ function buildObjectLiteralExpression2ArkClass(clsNode, cls, sourceFile, declari
|
|
|
291
291
|
(0, ArkMethodBuilder_1.buildArkMethodFromArkClass)(property, cls, arkMethod, sourceFile);
|
|
292
292
|
}
|
|
293
293
|
});
|
|
294
|
-
(0, ArkMethodBuilder_1.buildInitMethod)(cls.getInstanceInitMethod(), instanceFieldInitializerStmts, instanceIRTransformer.getThisLocal());
|
|
294
|
+
(0, ArkMethodBuilder_1.buildInitMethod)(cls.getInstanceInitMethod(), instanceFieldInitializerStmts, instanceIRTransformer.getThisLocal(), instanceIRTransformer.getGlobals());
|
|
295
295
|
arkMethods.forEach(mtd => {
|
|
296
296
|
(0, ArkMethodBuilder_1.checkAndUpdateMethod)(mtd, cls);
|
|
297
297
|
cls.addMethod(mtd);
|
|
@@ -373,11 +373,11 @@ function buildArkClassMembers(clsNode, cls, sourceFile) {
|
|
|
373
373
|
}
|
|
374
374
|
});
|
|
375
375
|
if (ohos_typescript_1.default.isClassDeclaration(clsNode) || ohos_typescript_1.default.isClassExpression(clsNode) || ohos_typescript_1.default.isStructDeclaration(clsNode)) {
|
|
376
|
-
(0, ArkMethodBuilder_1.buildInitMethod)(cls.getInstanceInitMethod(), instanceInitStmts, instanceIRTransformer.getThisLocal());
|
|
377
|
-
(0, ArkMethodBuilder_1.buildInitMethod)(cls.getStaticInitMethod(), staticInitStmts, staticIRTransformer.getThisLocal());
|
|
376
|
+
(0, ArkMethodBuilder_1.buildInitMethod)(cls.getInstanceInitMethod(), instanceInitStmts, instanceIRTransformer.getThisLocal(), instanceIRTransformer.getGlobals());
|
|
377
|
+
(0, ArkMethodBuilder_1.buildInitMethod)(cls.getStaticInitMethod(), staticInitStmts, staticIRTransformer.getThisLocal(), staticIRTransformer.getGlobals());
|
|
378
378
|
}
|
|
379
379
|
if (ohos_typescript_1.default.isEnumDeclaration(clsNode)) {
|
|
380
|
-
(0, ArkMethodBuilder_1.buildInitMethod)(cls.getStaticInitMethod(), staticInitStmts, staticIRTransformer.getThisLocal());
|
|
380
|
+
(0, ArkMethodBuilder_1.buildInitMethod)(cls.getStaticInitMethod(), staticInitStmts, staticIRTransformer.getThisLocal(), staticIRTransformer.getGlobals());
|
|
381
381
|
}
|
|
382
382
|
}
|
|
383
383
|
function isClassMethod(member) {
|
|
@@ -530,12 +530,13 @@ function createEnumInitValue(field, enumFieldInfo) {
|
|
|
530
530
|
}
|
|
531
531
|
function setFieldInitPositionInfo(field, stmts, initValue) {
|
|
532
532
|
const fieldOriginPosition = field.getOriginFullPosition();
|
|
533
|
-
|
|
533
|
+
const fieldInitStmts = stmts.filter(stmt => !(stmt instanceof ArkIRTransformer_1.DummyStmt));
|
|
534
|
+
for (const stmt of fieldInitStmts) {
|
|
534
535
|
if (!stmt.getOriginFullPosition()) {
|
|
535
536
|
stmt.setOriginFullPosition(fieldOriginPosition);
|
|
536
537
|
}
|
|
537
538
|
}
|
|
538
|
-
field.setInitializer(
|
|
539
|
+
field.setInitializer(fieldInitStmts);
|
|
539
540
|
if (field.getType() instanceof Type_1.UnknownType) {
|
|
540
541
|
field.getSignature().setType(initValue.getType());
|
|
541
542
|
}
|
|
@@ -2,6 +2,7 @@ import { Type } from '../../base/Type';
|
|
|
2
2
|
import { ArkClass } from '../ArkClass';
|
|
3
3
|
import { ArkMethod } from '../ArkMethod';
|
|
4
4
|
import ts from 'ohos-typescript';
|
|
5
|
+
import { GlobalRef } from '../../base/Ref';
|
|
5
6
|
import { Stmt } from '../../base/Stmt';
|
|
6
7
|
import { Local } from '../../base/Local';
|
|
7
8
|
import { Value } from '../../base/Value';
|
|
@@ -59,7 +60,7 @@ export declare class MethodParameter implements Value {
|
|
|
59
60
|
}
|
|
60
61
|
export declare function needDefaultConstructorInClass(arkClass: ArkClass): boolean;
|
|
61
62
|
export declare function buildDefaultConstructor(arkClass: ArkClass, visited?: Set<ArkClass>): boolean;
|
|
62
|
-
export declare function buildInitMethod(initMethod: ArkMethod, fieldInitializerStmts: Stmt[], thisLocal: Local): void;
|
|
63
|
+
export declare function buildInitMethod(initMethod: ArkMethod, fieldInitializerStmts: Stmt[], thisLocal: Local, globals?: Map<string, GlobalRef> | null): void;
|
|
63
64
|
export declare function addInitInConstructor(constructor: ArkMethod): void;
|
|
64
65
|
export declare function isMethodImplementation(node: MethodLikeNode): boolean;
|
|
65
66
|
export declare function checkAndUpdateMethod(method: ArkMethod, cls: ArkClass): void;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"ArkMethodBuilder.d.ts","sourceRoot":"","sources":["../../../../src/core/model/builder/ArkMethodBuilder.ts"],"names":[],"mappings":"AAeA,OAAO,EAAa,IAAI,EAAe,MAAM,iBAAiB,CAAC;AAG/D,OAAO,EAAE,QAAQ,EAAiB,MAAM,aAAa,CAAC;AACtD,OAAO,EAAE,SAAS,EAAE,MAAM,cAAc,CAAC;AACzC,OAAO,EAAE,MAAM,iBAAiB,CAAC;
|
|
1
|
+
{"version":3,"file":"ArkMethodBuilder.d.ts","sourceRoot":"","sources":["../../../../src/core/model/builder/ArkMethodBuilder.ts"],"names":[],"mappings":"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"}
|
|
@@ -367,7 +367,8 @@ function buildDefaultConstructor(arkClass, visited = new Set()) {
|
|
|
367
367
|
return true;
|
|
368
368
|
}
|
|
369
369
|
exports.buildDefaultConstructor = buildDefaultConstructor;
|
|
370
|
-
function buildInitMethod(initMethod, fieldInitializerStmts, thisLocal) {
|
|
370
|
+
function buildInitMethod(initMethod, fieldInitializerStmts, thisLocal, globals) {
|
|
371
|
+
var _a;
|
|
371
372
|
const classType = new Type_1.ClassType(initMethod.getDeclaringArkClass().getSignature());
|
|
372
373
|
const assignStmt = new Stmt_1.ArkAssignStmt(thisLocal, new Ref_1.ArkThisRef(classType));
|
|
373
374
|
const block = new BasicBlock_1.BasicBlock();
|
|
@@ -390,6 +391,9 @@ function buildInitMethod(initMethod, fieldInitializerStmts, thisLocal) {
|
|
|
390
391
|
cfg.buildDefUseStmt(locals);
|
|
391
392
|
cfg.setDeclaringMethod(initMethod);
|
|
392
393
|
initMethod.setBody(new ArkBody_1.ArkBody(locals, cfg));
|
|
394
|
+
if (globals && globals.size > 0) {
|
|
395
|
+
(_a = initMethod.getBody()) === null || _a === void 0 ? void 0 : _a.setUsedGlobals(globals);
|
|
396
|
+
}
|
|
393
397
|
}
|
|
394
398
|
exports.buildInitMethod = buildInitMethod;
|
|
395
399
|
function addInitInConstructor(constructor) {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"SwitchBuilder.d.ts","sourceRoot":"","sources":["../../../../../src/frontend/cppFrontend/graph/builder/SwitchBuilder.ts"],"names":[],"mappings":"AAeA,OAAO,EAAE,UAAU,EAAE,MAAM,mCAAmC,CAAC;AAC/D,OAAO,EAAE,gBAAgB,EAAE,aAAa,EAAE,MAAM,0CAA0C,CAAC;AAE3F,OAAO,EAAE,YAAY,EAA0B,MAAM,2CAA2C,CAAC;AAKjG;;GAEG;AACH,qBAAa,gBAAgB;IAClB,WAAW,CACd,sBAAsB,EAAE,GAAG,CAAC,YAAY,EAAE,UAAU,CAAC,EACrD,0BAA0B,EAAE,YAAY,EAAE,EAC1C,gCAAgC,EAAE,aAAa,EAAE,EAAE,EACnD,gBAAgB,EAAE,gBAAgB,EAClC,aAAa,EAAE,GAAG,CAAC,UAAU,CAAC,GAC/B,IAAI;IA0CP,OAAO,CAAC,wBAAwB;IAwChC,OAAO,CAAC,uBAAuB;
|
|
1
|
+
{"version":3,"file":"SwitchBuilder.d.ts","sourceRoot":"","sources":["../../../../../src/frontend/cppFrontend/graph/builder/SwitchBuilder.ts"],"names":[],"mappings":"AAeA,OAAO,EAAE,UAAU,EAAE,MAAM,mCAAmC,CAAC;AAC/D,OAAO,EAAE,gBAAgB,EAAE,aAAa,EAAE,MAAM,0CAA0C,CAAC;AAE3F,OAAO,EAAE,YAAY,EAA0B,MAAM,2CAA2C,CAAC;AAKjG;;GAEG;AACH,qBAAa,gBAAgB;IAClB,WAAW,CACd,sBAAsB,EAAE,GAAG,CAAC,YAAY,EAAE,UAAU,CAAC,EACrD,0BAA0B,EAAE,YAAY,EAAE,EAC1C,gCAAgC,EAAE,aAAa,EAAE,EAAE,EACnD,gBAAgB,EAAE,gBAAgB,EAClC,aAAa,EAAE,GAAG,CAAC,UAAU,CAAC,GAC/B,IAAI;IA0CP,OAAO,CAAC,wBAAwB;IAwChC,OAAO,CAAC,uBAAuB;CA6DlC"}
|
|
@@ -108,7 +108,17 @@ class CxxSwitchBuilder {
|
|
|
108
108
|
const expectedSuccessorsOfCaseIfBlock = [];
|
|
109
109
|
const defaultStmtBuilder = switchStmtBuilder.default;
|
|
110
110
|
if (defaultStmtBuilder && defaultStmtBuilder.block) {
|
|
111
|
-
|
|
111
|
+
// default may appear before later cases; identify by block identity, not list position
|
|
112
|
+
if (!blockBuilderToCfgBlock.has(defaultStmtBuilder.block)) {
|
|
113
|
+
logger.error(`can't find basicBlock corresponding to the default blockBuilder.`);
|
|
114
|
+
return false;
|
|
115
|
+
}
|
|
116
|
+
const defaultBasicBlock = blockBuilderToCfgBlock.get(defaultStmtBuilder.block);
|
|
117
|
+
const defaultIndex = successorsOfBlockContainSwitch.indexOf(defaultBasicBlock);
|
|
118
|
+
if (defaultIndex !== -1) {
|
|
119
|
+
successorsOfBlockContainSwitch.splice(defaultIndex, 1);
|
|
120
|
+
}
|
|
121
|
+
expectedSuccessorsOfCaseIfBlock.push(defaultBasicBlock);
|
|
112
122
|
}
|
|
113
123
|
else {
|
|
114
124
|
const afterSwitchStmtBuilder = switchStmtBuilder.afterSwitch;
|