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] Push FP[-5] StoreFieldTOS CP#2 Push FP[-6] PushConstant CP#3 StoreFieldTOS CP#4 Push FP[-6] PushConstant CP#6 IndirectStaticCall 1, CP#5 Drop1 PushConstant CP#7 ReturnTOS } ConstantPool { [0] = Int 42 [1] = FieldOffset #lib::A::foo3 [2] = FieldOffset #lib::A::foo4 [3] = Int 44 [4] = FieldOffset #lib::A::foo5 [5] = ArgDesc num-args 1, num-type-args 0, names [] [6] = StaticICData target 'dart.core::Object::', arg-desc CP#5 [7] = 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] Push FP[-6] StoreFieldTOS CP#2 Push FP[-7] Push FP[-5] PushConstant CP#3 InstanceCall1 2, CP#5 StoreFieldTOS CP#6 Push FP[-7] PushConstant CP#8 IndirectStaticCall 1, CP#7 Drop1 PushConstant CP#9 ReturnTOS } ConstantPool { [0] = Int 42 [1] = FieldOffset #lib::A::foo3 [2] = FieldOffset #lib::A::foo1 [3] = Int 1 [4] = ArgDesc num-args 2, num-type-args 0, names [] [5] = ICData target-name '+', arg-desc CP#4 [6] = FieldOffset #lib::A::foo5 [7] = ArgDesc num-args 1, num-type-args 0, names [] [8] = StaticICData target 'dart.core::Object::', arg-desc CP#7 [9] = 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] InstanceCall1 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; [@vm.bytecode= Bytecode { Entry 0 CheckStack PushConstant CP#0 ReturnTOS } ConstantPool { [0] = Int 47 } ] static field core::int foo7 = 47; [@vm.bytecode= Bytecode { Entry 0 CheckStack PushConstant CP#0 ReturnTOS } ConstantPool { [0] = Int 48 } ] 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#2 PushConstant CP#4 IndirectStaticCall 2, CP#3 Drop1 PushConstant CP#5 ReturnTOS } ConstantPool { [0] = Int 46 [1] = FieldOffset #lib::B::foo6 [2] = Int 49 [3] = ArgDesc num-args 2, num-type-args 0, names [] [4] = StaticICData target '#lib::A::', arg-desc CP#3 [5] = 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] Push FP[-6] Push FP[-5] PushConstant CP#2 PushConstant CP#4 IndirectStaticCall 4, CP#3 Drop1 PushConstant CP#5 ReturnTOS } ConstantPool { [0] = Int 50 [1] = FieldOffset #lib::B::foo6 [2] = Int 51 [3] = ArgDesc num-args 4, num-type-args 0, names [] [4] = StaticICData target '#lib::A::redirecting2', arg-desc CP#3 [5] = 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 {}