946bb79832
Issue: https://github.com/dart-lang/sdk/issues/61635 Change-Id: Ic785f47da63511023de09167dd2787337a46f8f7 Reviewed-on: https://dart-review.googlesource.com/c/sdk/+/498200 Reviewed-by: Slava Egorov <vegorov@google.com> Commit-Queue: Alexander Markov <alexmarkov@google.com>
124 lines
2.9 KiB
Plaintext
124 lines
2.9 KiB
Plaintext
--- 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)
|
|
|