| main = #lib::main; |
| [@vm.bytecode= |
| ComponentBytecodeMetadata { |
| |
| Bytecode (version: stable) |
| Main library: #lib |
| |
| } |
| ] [@vm.bytecode= |
| MembersBytecodeMetadata { |
| |
| Members { |
| |
| Function 'foo1', static, has-optional-positional-params, reflectable, debuggable |
| parameters [dynamic 'x', dynamic 'a', dynamic 'b'] (required: 1) |
| return-type void |
| |
| |
| Bytecode { |
| EntryOptional 1, 2, 0 |
| LoadConstant r1, CP#0 |
| LoadConstant r2, CP#1 |
| Frame 1 |
| CheckStack 0 |
| PushNull |
| PushInt 2 |
| CreateArrayTOS |
| StoreLocal r3 |
| Push r3 |
| PushInt 0 |
| PushConstant CP#2 |
| StoreIndexedTOS |
| Push r3 |
| PushInt 1 |
| Push r0 |
| StoreIndexedTOS |
| DirectCall 1, CP#3 |
| DirectCall 1, CP#5 |
| Drop1 |
| PushNull |
| PushInt 2 |
| CreateArrayTOS |
| StoreLocal r3 |
| Push r3 |
| PushInt 0 |
| PushConstant CP#7 |
| StoreIndexedTOS |
| Push r3 |
| PushInt 1 |
| Push r1 |
| StoreIndexedTOS |
| DirectCall 1, CP#3 |
| DirectCall 1, CP#5 |
| Drop1 |
| PushNull |
| PushInt 2 |
| CreateArrayTOS |
| StoreLocal r3 |
| Push r3 |
| PushInt 0 |
| PushConstant CP#8 |
| StoreIndexedTOS |
| Push r3 |
| PushInt 1 |
| Push r2 |
| StoreIndexedTOS |
| DirectCall 1, CP#3 |
| DirectCall 1, CP#5 |
| Drop1 |
| PushNull |
| ReturnTOS |
| } |
| ConstantPool { |
| [0] = ObjectRef 'default_a' |
| [1] = ObjectRef 'default_b' |
| [2] = ObjectRef 'x = ' |
| [3] = DirectCall 'dart:core::_StringBase::_interpolate', ArgDesc num-args 1, num-type-args 0, names [] |
| [4] = Reserved |
| [5] = DirectCall 'dart:core::print', ArgDesc num-args 1, num-type-args 0, names [] |
| [6] = Reserved |
| [7] = ObjectRef 'a = ' |
| [8] = ObjectRef 'b = ' |
| } |
| |
| |
| Function 'foo2', static, has-optional-named-params, reflectable, debuggable |
| parameters [dynamic 'y', dynamic 'z', dynamic 'c', dynamic 'a', dynamic 'b'] (required: 2) |
| return-type void |
| |
| |
| Bytecode { |
| EntryOptional 2, 0, 3 |
| LoadConstant r2, CP#0 |
| LoadConstant r2, CP#1 |
| LoadConstant r3, CP#2 |
| LoadConstant r3, CP#3 |
| LoadConstant r4, CP#4 |
| LoadConstant r4, CP#5 |
| Frame 1 |
| CheckStack 0 |
| PushNull |
| PushInt 2 |
| CreateArrayTOS |
| StoreLocal r5 |
| Push r5 |
| PushInt 0 |
| PushConstant CP#6 |
| StoreIndexedTOS |
| Push r5 |
| PushInt 1 |
| Push r0 |
| StoreIndexedTOS |
| DirectCall 1, CP#7 |
| DirectCall 1, CP#9 |
| Drop1 |
| PushNull |
| PushInt 2 |
| CreateArrayTOS |
| StoreLocal r5 |
| Push r5 |
| PushInt 0 |
| PushConstant CP#11 |
| StoreIndexedTOS |
| Push r5 |
| PushInt 1 |
| Push r1 |
| StoreIndexedTOS |
| DirectCall 1, CP#7 |
| DirectCall 1, CP#9 |
| Drop1 |
| PushNull |
| PushInt 2 |
| CreateArrayTOS |
| StoreLocal r5 |
| Push r5 |
| PushInt 0 |
| PushConstant CP#12 |
| StoreIndexedTOS |
| Push r5 |
| PushInt 1 |
| Push r2 |
| StoreIndexedTOS |
| DirectCall 1, CP#7 |
| DirectCall 1, CP#9 |
| Drop1 |
| PushNull |
| PushInt 2 |
| CreateArrayTOS |
| StoreLocal r5 |
| Push r5 |
| PushInt 0 |
| PushConstant CP#13 |
| StoreIndexedTOS |
| Push r5 |
| PushInt 1 |
| Push r3 |
| StoreIndexedTOS |
| DirectCall 1, CP#7 |
| DirectCall 1, CP#9 |
| Drop1 |
| PushNull |
| PushInt 2 |
| CreateArrayTOS |
| StoreLocal r5 |
| Push r5 |
| PushInt 0 |
| PushConstant CP#14 |
| StoreIndexedTOS |
| Push r5 |
| PushInt 1 |
| Push r4 |
| StoreIndexedTOS |
| DirectCall 1, CP#7 |
| DirectCall 1, CP#9 |
| Drop1 |
| PushNull |
| ReturnTOS |
| } |
| ConstantPool { |
| [0] = ObjectRef 'a' |
| [1] = ObjectRef const 42 |
| [2] = ObjectRef 'b' |
| [3] = ObjectRef const <dart:core::String> ['default_b'] |
| [4] = ObjectRef 'c' |
| [5] = ObjectRef 'default_c' |
| [6] = ObjectRef 'y = ' |
| [7] = DirectCall 'dart:core::_StringBase::_interpolate', ArgDesc num-args 1, num-type-args 0, names [] |
| [8] = Reserved |
| [9] = DirectCall 'dart:core::print', ArgDesc num-args 1, num-type-args 0, names [] |
| [10] = Reserved |
| [11] = ObjectRef 'z = ' |
| [12] = ObjectRef 'a = ' |
| [13] = ObjectRef 'b = ' |
| [14] = ObjectRef 'c = ' |
| } |
| |
| |
| Function 'foo3', static, has-optional-named-params, reflectable, debuggable |
| type-params <dart:core::Object P, dart:core::Object Q> |
| parameters [dynamic 'z', dynamic 'y', dart:core::bool 'a', dart:core::Map < #lib::foo3::TypeParam/0, #lib::foo3::TypeParam/1 > 'b'] (required: 2) |
| return-type void |
| |
| |
| Bytecode { |
| EntryOptional 2, 0, 2 |
| LoadConstant r2, CP#0 |
| LoadConstant r2, CP#1 |
| LoadConstant r3, CP#2 |
| LoadConstant r3, CP#3 |
| Frame 1 |
| CheckStack 0 |
| CheckFunctionTypeArgs 2, r4 |
| PushNull |
| Push r4 |
| InstantiateType CP#4 |
| DirectCall 1, CP#5 |
| Drop1 |
| Push r1 |
| DirectCall 1, CP#5 |
| Drop1 |
| Push r3 |
| DirectCall 1, CP#5 |
| Drop1 |
| PushNull |
| ReturnTOS |
| } |
| ConstantPool { |
| [0] = ObjectRef 'a' |
| [1] = ObjectRef const false |
| [2] = ObjectRef 'b' |
| [3] = ObjectRef null |
| [4] = Type #lib::foo3::TypeParam/0 |
| [5] = DirectCall 'dart:core::print', ArgDesc num-args 1, num-type-args 0, names [] |
| [6] = Reserved |
| } |
| |
| |
| Function 'main', static, reflectable, debuggable |
| parameters [] (required: 0) |
| return-type dynamic |
| |
| |
| Bytecode { |
| Entry 0 |
| CheckStack 0 |
| PushConstant CP#0 |
| PushConstant CP#1 |
| DirectCall 2, CP#2 |
| Drop1 |
| PushConstant CP#4 |
| PushConstant CP#5 |
| PushConstant CP#1 |
| DirectCall 3, CP#6 |
| Drop1 |
| PushNull |
| ReturnTOS |
| } |
| ConstantPool { |
| [0] = ObjectRef 'fixed_x' |
| [1] = ObjectRef 'concrete_a' |
| [2] = DirectCall '#lib::foo1', ArgDesc num-args 2, num-type-args 0, names [] |
| [3] = Reserved |
| [4] = ObjectRef 'fixed_y' |
| [5] = ObjectRef 'fixed_z' |
| [6] = DirectCall '#lib::foo2', ArgDesc num-args 3, num-type-args 0, names ['a'] |
| [7] = Reserved |
| } |
| |
| } |
| |
| } |
| ]library #lib from "#lib" as #lib { |
| |
| static method foo1(dynamic x, [dynamic a = #C1, dynamic b = #C2]) → void { |
| dart.core::print("x = ${x}"); |
| dart.core::print("a = ${a}"); |
| dart.core::print("b = ${b}"); |
| } |
| static method foo2(dynamic y, dynamic z, {dynamic c = #C3, dynamic a = #C4, dynamic b = #C5}) → void { |
| dart.core::print("y = ${y}"); |
| dart.core::print("z = ${z}"); |
| dart.core::print("a = ${a}"); |
| dart.core::print("b = ${b}"); |
| dart.core::print("c = ${c}"); |
| } |
| static method foo3<P extends dart.core::Object = dynamic, Q extends dart.core::Object = dynamic>(dynamic z, dynamic y, {dart.core::bool a = #C6, dart.core::Map<#lib::foo3::P, #lib::foo3::Q> b = #C7}) → void { |
| dart.core::print(#lib::foo3::P); |
| dart.core::print(y); |
| dart.core::print(b); |
| } |
| static method main() → dynamic { |
| #lib::foo1("fixed_x", "concrete_a"); |
| #lib::foo2("fixed_y", "fixed_z", a: "concrete_a"); |
| } |
| } |
| constants { |
| #C1 = "default_a" |
| #C2 = "default_b" |
| #C3 = "default_c" |
| #C4 = 42 |
| #C5 = ListConstant<dart.core::String>(#C2) |
| #C6 = false |
| #C7 = null |
| } |