| --- A. |
| B0 = EntryBlock() |
| v4 = Constant(null) |
| v1 = Parameter(this) |
| DirectCall Object.(v1) |
| Return(v4) |
| |
| --- B. |
| B0 = EntryBlock() |
| v4 = Constant(null) |
| v1 = Parameter(this) |
| DirectCall Object.(v1) |
| Return(v4) |
| |
| --- C. |
| B0 = EntryBlock() |
| v4 = Constant(null) |
| v1 = Parameter(this) |
| DirectCall Object.(v1) |
| Return(v4) |
| |
| --- D. |
| B0 = EntryBlock() |
| v4 = Constant(null) |
| v1 = Parameter(this) |
| DirectCall Object.(v1) |
| Return(v4) |
| |
| --- test1 |
| B0 = EntryBlock() dominates:(B7, B16, B6) |
| Constant(true) |
| Constant(null) |
| Constant(#undefined) |
| v1 = Parameter(x) |
| v5 = TypeTest(v1, String) |
| Branch(v5, true: B6, false: B7) |
| B6 = TargetBlock() idom:B0 |
| v12 = TypeCast(v1, String, unchecked) |
| Goto(B16) |
| B7 = TargetBlock() idom:B0 dominates:(B21, B20) |
| v19 = TypeTest(v1, int) |
| Branch(v19, true: B20, false: B21) |
| B20 = TargetBlock() idom:B7 |
| v26 = TypeCast(v1, int, unchecked) |
| v29 = StringInterpolation(v26) |
| Goto(B16) |
| B16 = JoinBlock(B20, B6) idom:B0 |
| v45 = Phi(v29, v12) |
| Return(v45) |
| B21 = TargetBlock() idom:B7 |
| v38 = AllocateObject ArgumentError() |
| DirectCall ArgumentError.(v38) |
| Throw(v38) |
| |
| --- test2 |
| B0 = EntryBlock() dominates:(B13, B46, B12) |
| v6 = Constant(null) |
| Constant(false) |
| v18 = Constant(1) |
| Constant(true) |
| v36 = Constant(0) |
| v1 = Parameter(obj) |
| v3 = InterfaceCall getter B.a(v1) |
| v4 = InterfaceCall getter A.x(v3) |
| v11 = TypeTest(v4, List<Object?>) |
| Branch(v11, true: B12, false: B13) |
| B12 = TargetBlock() idom:B0 dominates:(B21, B20) |
| v16 = TypeCast(v4, List<Object?>, unchecked) |
| v17 = InterfaceCall getter List.length(v16) |
| v19 = Comparison int ==(v17, v18) |
| Branch(v19, true: B20, false: B21) |
| B20 = TargetBlock() idom:B12 dominates:(B44, B43) |
| v37 = InterfaceCall List.[](v16, v36) |
| v42 = TypeTest(v37, String) |
| Branch(v42, true: B43, false: B44) |
| B43 = TargetBlock() idom:B20 |
| v67 = TypeCast(v37, String, unchecked) |
| DirectCall print(v67) |
| Goto(B46) |
| B44 = TargetBlock() idom:B20 |
| Goto(B46) |
| B21 = TargetBlock() idom:B12 |
| Goto(B46) |
| B13 = TargetBlock() idom:B0 |
| Goto(B46) |
| B46 = JoinBlock(B13, B21, B44, B43) idom:B0 |
| Return(v6) |
| |
| --- test3 |
| B0 = EntryBlock() dominates:(B12, B45, B11) |
| v4 = Constant("foo") |
| Constant(false) |
| v17 = Constant(1) |
| Constant(true) |
| v35 = Constant(0) |
| v70 = Constant(null) |
| Constant(#undefined) |
| v1 = Parameter(obj) |
| v3 = InterfaceCall getter C.d(v1) |
| v5 = InterfaceCall D.[](v3, v4) |
| v10 = TypeTest(v5, List<String>) |
| Branch(v10, true: B11, false: B12) |
| B11 = TargetBlock() idom:B0 dominates:(B20, B19) |
| v15 = TypeCast(v5, List<String>, unchecked) |
| v16 = InterfaceCall getter List.length(v15) |
| v18 = Comparison int ==(v16, v17) |
| Branch(v18, true: B19, false: B20) |
| B19 = TargetBlock() idom:B11 |
| v36 = InterfaceCall List.[](v15, v35) |
| DirectCall print(v36) |
| Goto(B45) |
| B20 = TargetBlock() idom:B11 |
| Goto(B45) |
| B12 = TargetBlock() idom:B0 |
| Goto(B45) |
| B45 = JoinBlock(B12, B20, B19) idom:B0 |
| Return(v70) |
| |
| --- main |
| B0 = EntryBlock() |
| v1 = Constant(null) |
| Return(v1) |
| |