| 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 0 |
| Push FP[-6] |
| PushInt 42 |
| StoreFieldTOS CP#0 |
| Push FP[-6] |
| PushInt 43 |
| StoreFieldTOS CP#2 |
| Push FP[-6] |
| Push FP[-5] |
| StoreFieldTOS CP#4 |
| Push FP[-6] |
| PushInt 44 |
| StoreFieldTOS CP#2 |
| Push FP[-6] |
| PushConstant CP#7 |
| IndirectStaticCall 1, CP#6 |
| Drop1 |
| PushNull |
| ReturnTOS |
| } |
| Nullable fields: [#lib::A::foo1 (field), #lib::A::foo2 (field)]} |
| ConstantPool { |
| [0] = InstanceField #lib::A::foo3 (field) |
| [1] = Reserved |
| [2] = InstanceField #lib::A::foo5 (field) |
| [3] = Reserved |
| [4] = InstanceField #lib::A::foo4 (field) |
| [5] = Reserved |
| [6] = ArgDesc num-args 1, num-type-args 0, names [] |
| [7] = StaticICData target 'dart:core::Object::'' (constructor)', arg-desc CP#6 |
| } |
| ] constructor •(core::int foo4) → self::A |
| : self::A::foo1 = null, self::A::foo4 = foo4, self::A::foo5 = 44, super core::Object::•() |
| ; |
| [@vm.bytecode= |
| Bytecode { |
| Entry 0 |
| CheckStack 0 |
| Push FP[-7] |
| PushInt 42 |
| StoreFieldTOS CP#0 |
| Push FP[-7] |
| PushInt 43 |
| StoreFieldTOS CP#2 |
| Push FP[-7] |
| Push FP[-6] |
| StoreFieldTOS CP#4 |
| Push FP[-7] |
| Push FP[-5] |
| PushInt 1 |
| AddInt |
| StoreFieldTOS CP#2 |
| Push FP[-7] |
| PushConstant CP#7 |
| IndirectStaticCall 1, CP#6 |
| Drop1 |
| PushNull |
| ReturnTOS |
| } |
| Nullable fields: [#lib::A::foo2 (field), #lib::A::foo4 (field)]} |
| ConstantPool { |
| [0] = InstanceField #lib::A::foo3 (field) |
| [1] = Reserved |
| [2] = InstanceField #lib::A::foo5 (field) |
| [3] = Reserved |
| [4] = InstanceField #lib::A::foo1 (field) |
| [5] = Reserved |
| [6] = ArgDesc num-args 1, num-type-args 0, names [] |
| [7] = StaticICData target 'dart:core::Object::'' (constructor)', arg-desc CP#6 |
| } |
| ] constructor constr2(core::int x, core::int y) → self::A |
| : self::A::foo4 = null, self::A::foo1 = x, self::A::foo5 = y.{core::num::+}(1), super core::Object::•() |
| ; |
| [@vm.bytecode= |
| Bytecode { |
| Entry 0 |
| CheckStack 0 |
| Push FP[-5] |
| PushInt 45 |
| PushConstant CP#1 |
| IndirectStaticCall 2, CP#0 |
| Drop1 |
| PushNull |
| ReturnTOS |
| } |
| ConstantPool { |
| [0] = ArgDesc num-args 2, num-type-args 0, names [] |
| [1] = StaticICData target '#lib::A::'' (constructor)', arg-desc CP#0 |
| } |
| ] constructor redirecting1() → self::A |
| : this self::A::•(45) |
| ; |
| [@vm.bytecode= |
| Bytecode { |
| Entry 0 |
| CheckStack 0 |
| Push FP[-8] |
| Push FP[-7] |
| Push FP[-6] |
| Push FP[-5] |
| MulInt |
| PushConstant CP#1 |
| IndirectStaticCall 3, CP#0 |
| Drop1 |
| PushNull |
| ReturnTOS |
| } |
| ConstantPool { |
| [0] = ArgDesc num-args 3, num-type-args 0, names [] |
| [1] = StaticICData target '#lib::A::constr2 (constructor)', arg-desc CP#0 |
| } |
| ] constructor redirecting2(core::int a, core::int b, core::int c) → self::A |
| : 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 0 |
| Push FP[-5] |
| PushInt 46 |
| StoreFieldTOS CP#0 |
| Push FP[-5] |
| PushInt 49 |
| PushConstant CP#3 |
| IndirectStaticCall 2, CP#2 |
| Drop1 |
| PushNull |
| ReturnTOS |
| } |
| ConstantPool { |
| [0] = InstanceField #lib::B::foo6 (field) |
| [1] = Reserved |
| [2] = ArgDesc num-args 2, num-type-args 0, names [] |
| [3] = StaticICData target '#lib::A::'' (constructor)', arg-desc CP#2 |
| } |
| ] constructor •() → self::B |
| : super self::A::•(49) |
| ; |
| [@vm.bytecode= |
| Bytecode { |
| Entry 0 |
| CheckStack 0 |
| Push FP[-7] |
| PushInt 46 |
| StoreFieldTOS CP#0 |
| Push FP[-7] |
| PushInt 50 |
| StoreFieldTOS CP#0 |
| Push FP[-7] |
| Push FP[-6] |
| Push FP[-5] |
| PushInt 51 |
| PushConstant CP#3 |
| IndirectStaticCall 4, CP#2 |
| Drop1 |
| PushNull |
| ReturnTOS |
| } |
| ConstantPool { |
| [0] = InstanceField #lib::B::foo6 (field) |
| [1] = Reserved |
| [2] = ArgDesc num-args 4, num-type-args 0, names [] |
| [3] = StaticICData target '#lib::A::redirecting2 (constructor)', arg-desc CP#2 |
| } |
| ] constructor c2(core::int i, core::int j) → self::B |
| : self::B::foo6 = 50, super self::A::redirecting2(i, j, 51) |
| ; |
| } |
| [@vm.bytecode= |
| Bytecode { |
| Entry 0 |
| CheckStack 0 |
| PushNull |
| ReturnTOS |
| } |
| ConstantPool { |
| } |
| ]static method main() → dynamic {} |