blob: 5e795aa1bb8622c79371c2a62200b998fd19c3d0 [file] [log] [blame]
library #lib;
import self as self;
import "dart:core" as core;
class A extends core::Object {
field core::int foo1;
field core::int foo2 = null;
field core::int foo3 = 42;
field core::int foo4;
field core::int foo5 = 43;
[@vm.bytecode=
Bytecode {
Entry 0
CheckStack
Push FP[-6]
PushConstant CP#0
StoreFieldTOS CP#1
Push FP[-6]
PushConstant CP#3
StoreFieldTOS CP#4
Push FP[-6]
Push FP[-5]
StoreFieldTOS CP#6
Push FP[-6]
PushConstant CP#8
StoreFieldTOS CP#4
Push FP[-6]
PushConstant CP#10
IndirectStaticCall 1, CP#9
Drop1
PushConstant CP#11
ReturnTOS
}
ConstantPool {
[0] = Int 42
[1] = InstanceField #lib::A::foo3
[2] = Reserved
[3] = Int 43
[4] = InstanceField #lib::A::foo5
[5] = Reserved
[6] = InstanceField #lib::A::foo4
[7] = Reserved
[8] = Int 44
[9] = ArgDesc num-args 1, num-type-args 0, names []
[10] = StaticICData target 'dart.core::Object::', arg-desc CP#9
[11] = Null
}
] constructor •(core::int foo4) void
: self::A::foo1 = null, self::A::foo4 = foo4, self::A::foo5 = 44, super core::Object::•()
;
[@vm.bytecode=
Bytecode {
Entry 0
CheckStack
Push FP[-7]
PushConstant CP#0
StoreFieldTOS CP#1
Push FP[-7]
PushConstant CP#3
StoreFieldTOS CP#4
Push FP[-7]
Push FP[-6]
StoreFieldTOS CP#6
Push FP[-7]
Push FP[-5]
PushConstant CP#8
InstanceCall 2, CP#10
StoreFieldTOS CP#4
Push FP[-7]
PushConstant CP#12
IndirectStaticCall 1, CP#11
Drop1
PushConstant CP#13
ReturnTOS
}
ConstantPool {
[0] = Int 42
[1] = InstanceField #lib::A::foo3
[2] = Reserved
[3] = Int 43
[4] = InstanceField #lib::A::foo5
[5] = Reserved
[6] = InstanceField #lib::A::foo1
[7] = Reserved
[8] = Int 1
[9] = ArgDesc num-args 2, num-type-args 0, names []
[10] = ICData target-name '+', arg-desc CP#9
[11] = ArgDesc num-args 1, num-type-args 0, names []
[12] = StaticICData target 'dart.core::Object::', arg-desc CP#11
[13] = Null
}
] constructor constr2(core::int x, core::int y) void
: self::A::foo4 = null, self::A::foo1 = x, self::A::foo5 = y.{core::num::+}(1), super core::Object::•()
;
[@vm.bytecode=
Bytecode {
Entry 0
CheckStack
Push FP[-5]
PushConstant CP#0
PushConstant CP#2
IndirectStaticCall 2, CP#1
Drop1
PushConstant CP#3
ReturnTOS
}
ConstantPool {
[0] = Int 45
[1] = ArgDesc num-args 2, num-type-args 0, names []
[2] = StaticICData target '#lib::A::', arg-desc CP#1
[3] = Null
}
] constructor redirecting1() void
: this self::A::•(45)
;
[@vm.bytecode=
Bytecode {
Entry 0
CheckStack
Push FP[-8]
Push FP[-7]
Push FP[-6]
Push FP[-5]
InstanceCall 2, CP#1
PushConstant CP#3
IndirectStaticCall 3, CP#2
Drop1
PushConstant CP#4
ReturnTOS
}
ConstantPool {
[0] = ArgDesc num-args 2, num-type-args 0, names []
[1] = ICData target-name '*', arg-desc CP#0
[2] = ArgDesc num-args 3, num-type-args 0, names []
[3] = StaticICData target '#lib::A::constr2', arg-desc CP#2
[4] = Null
}
] constructor redirecting2(core::int a, core::int b, core::int c) void
: this self::A::constr2(a, b.{core::num::*}(c))
;
}
class B extends self::A {
field core::int foo6 = 46;
static field core::int foo7 = 47;
static const field core::int foo8 = 48;
[@vm.bytecode=
Bytecode {
Entry 0
CheckStack
Push FP[-5]
PushConstant CP#0
StoreFieldTOS CP#1
Push FP[-5]
PushConstant CP#3
PushConstant CP#5
IndirectStaticCall 2, CP#4
Drop1
PushConstant CP#6
ReturnTOS
}
ConstantPool {
[0] = Int 46
[1] = InstanceField #lib::B::foo6
[2] = Reserved
[3] = Int 49
[4] = ArgDesc num-args 2, num-type-args 0, names []
[5] = StaticICData target '#lib::A::', arg-desc CP#4
[6] = Null
}
] constructor •() void
: super self::A::•(49)
;
[@vm.bytecode=
Bytecode {
Entry 0
CheckStack
Push FP[-7]
PushConstant CP#0
StoreFieldTOS CP#1
Push FP[-7]
PushConstant CP#3
StoreFieldTOS CP#1
Push FP[-7]
Push FP[-6]
Push FP[-5]
PushConstant CP#4
PushConstant CP#6
IndirectStaticCall 4, CP#5
Drop1
PushConstant CP#7
ReturnTOS
}
ConstantPool {
[0] = Int 46
[1] = InstanceField #lib::B::foo6
[2] = Reserved
[3] = Int 50
[4] = Int 51
[5] = ArgDesc num-args 4, num-type-args 0, names []
[6] = StaticICData target '#lib::A::redirecting2', arg-desc CP#5
[7] = Null
}
] constructor c2(core::int i, core::int j) void
: self::B::foo6 = 50, super self::A::redirecting2(i, j, 51)
;
}
[@vm.bytecode=
Bytecode {
Entry 0
CheckStack
PushConstant CP#0
ReturnTOS
}
ConstantPool {
[0] = Null
}
]static method main() dynamic {}