blob: bb4fbbb0f6bb22eeb0f5975238fc3a4da7cb9de0 [file] [log] [blame]
library #lib;
import self as self;
import "dart:core" as core;
[@vm.bytecode=
Bytecode (version: stable) {
Entry 2
CheckStack
PushNull
PopLocal r0
Push FP[-5]
PopLocal r1
Push r1
PushInt 1
InstanceCall 2, CP#1
JumpIfTrue L1
Push r1
PushInt 2
InstanceCall 2, CP#2
JumpIfTrue L2
Push r1
PushInt 3
InstanceCall 2, CP#3
JumpIfTrue L3
Jump L4
L1:
PushInt 11
PopLocal r0
Jump L4
L2:
PushInt 22
PopLocal r0
Jump L4
L3:
PushInt 33
PopLocal r0
Jump L4
L4:
Push r0
ReturnTOS
}
ConstantPool {
[0] = ArgDesc num-args 2, num-type-args 0, names []
[1] = ICData target-name '==', arg-desc CP#0
[2] = ICData target-name '==', arg-desc CP#0
[3] = ICData target-name '==', arg-desc CP#0
}
]static method foo1(core::int x) core::int {
core::int y;
#L1:
switch(x) {
#L2:
case 1:
{
y = 11;
break #L1;
}
#L3:
case 2:
{
y = 22;
break #L1;
}
#L4:
case 3:
{
y = 33;
break #L1;
}
}
return y;
}
[@vm.bytecode=
Bytecode (version: stable) {
Entry 2
CheckStack
PushNull
PopLocal r0
Push FP[-5]
PopLocal r1
Push r1
PushInt 1
InstanceCall 2, CP#1
JumpIfTrue L1
Push r1
PushInt 2
InstanceCall 2, CP#2
JumpIfTrue L1
Push r1
PushInt 3
InstanceCall 2, CP#3
JumpIfTrue L1
Push r1
PushInt 4
InstanceCall 2, CP#4
JumpIfTrue L2
Push r1
PushInt 5
InstanceCall 2, CP#5
JumpIfTrue L2
Push r1
PushInt 6
InstanceCall 2, CP#6
JumpIfTrue L2
Jump L3
L1:
PushInt 11
PopLocal r0
Jump L4
L2:
PushInt 22
PopLocal r0
Jump L4
L3:
PushInt 33
PopLocal r0
L4:
Push r0
ReturnTOS
}
ConstantPool {
[0] = ArgDesc num-args 2, num-type-args 0, names []
[1] = ICData target-name '==', arg-desc CP#0
[2] = ICData target-name '==', arg-desc CP#0
[3] = ICData target-name '==', arg-desc CP#0
[4] = ICData target-name '==', arg-desc CP#0
[5] = ICData target-name '==', arg-desc CP#0
[6] = ICData target-name '==', arg-desc CP#0
}
]static method foo2(core::int x) core::int {
core::int y;
#L5:
switch(x) {
#L6:
case 1:
case 2:
case 3:
{
y = 11;
break #L5;
}
#L7:
case 4:
case 5:
case 6:
{
y = 22;
break #L5;
}
#L8:
default:
{
y = 33;
}
}
return y;
}
[@vm.bytecode=
Bytecode (version: stable) {
Entry 2
CheckStack
PushNull
PopLocal r0
Push FP[-5]
PopLocal r1
Push r1
PushInt 1
InstanceCall 2, CP#1
JumpIfTrue L1
Push r1
PushInt 2
InstanceCall 2, CP#2
JumpIfTrue L1
Push r1
PushInt 3
InstanceCall 2, CP#3
JumpIfTrue L1
Push r1
PushInt 4
InstanceCall 2, CP#4
JumpIfTrue L2
Push r1
PushInt 5
InstanceCall 2, CP#5
JumpIfTrue L2
Push r1
PushInt 6
InstanceCall 2, CP#6
JumpIfTrue L2
Jump L3
L1:
PushInt 11
PopLocal r0
Jump L2
L2:
PushInt 22
PopLocal r0
PushInt 42
ReturnTOS
L3:
PushInt 33
PopLocal r0
Push r0
ReturnTOS
}
ConstantPool {
[0] = ArgDesc num-args 2, num-type-args 0, names []
[1] = ICData target-name '==', arg-desc CP#0
[2] = ICData target-name '==', arg-desc CP#0
[3] = ICData target-name '==', arg-desc CP#0
[4] = ICData target-name '==', arg-desc CP#0
[5] = ICData target-name '==', arg-desc CP#0
[6] = ICData target-name '==', arg-desc CP#0
}
]static method foo3(core::int x) core::int {
core::int y;
switch(x) {
#L9:
case 1:
case 2:
case 3:
{
y = 11;
continue #L10;
}
#L10:
case 4:
case 5:
case 6:
{
y = 22;
return 42;
}
#L11:
default:
{
y = 33;
}
}
return y;
}
[@vm.bytecode=
Bytecode (version: stable) {
Entry 0
CheckStack
PushNull
ReturnTOS
}
ConstantPool {
}
]static method main() dynamic {}