| main = #lib::main; |
| [@vm.bytecode= |
| ComponentBytecodeMetadata { |
| |
| Bytecode (version: stable) |
| Main library: #lib |
| |
| } |
| ] [@vm.bytecode= |
| MembersBytecodeMetadata { |
| |
| Members { |
| |
| Function 'test_for', static, reflectable, debuggable |
| parameters [dart:core::List < dart:core::int > 'list'] (required: 1) |
| return-type dart:core::int |
| |
| |
| Bytecode { |
| Entry 2 |
| CheckStack 0 |
| PushInt 0 |
| PopLocal r0 |
| PushInt 0 |
| PopLocal r1 |
| L2: |
| CheckStack 1 |
| Push r1 |
| Push FP[-5] |
| InterfaceCall 1, CP#0 |
| CompareIntLt |
| JumpIfFalse L1 |
| Push r0 |
| Push FP[-5] |
| Push r1 |
| InterfaceCall 2, CP#2 |
| AddInt |
| PopLocal r0 |
| Push r1 |
| PushInt 1 |
| AddInt |
| StoreLocal r1 |
| Drop1 |
| Jump L2 |
| L1: |
| Push r0 |
| ReturnTOS |
| } |
| ConstantPool { |
| [0] = InterfaceCall 'dart:core::List::get:length', ArgDesc num-args 1, num-type-args 0, names [] |
| [1] = Reserved |
| [2] = InterfaceCall 'dart:core::List::[]', ArgDesc num-args 2, num-type-args 0, names [] |
| [3] = Reserved |
| } |
| |
| |
| Function 'test_for_break', static, reflectable, debuggable |
| parameters [dart:core::List < dart:core::int > 'list'] (required: 1) |
| return-type dart:core::int |
| |
| |
| Bytecode { |
| Entry 2 |
| CheckStack 0 |
| PushInt 0 |
| PopLocal r0 |
| PushInt 0 |
| PopLocal r1 |
| L3: |
| CheckStack 1 |
| Push r1 |
| PushInt 0 |
| CompareIntGe |
| JumpIfFalse L1 |
| Push r1 |
| Push FP[-5] |
| InterfaceCall 1, CP#0 |
| CompareIntGe |
| JumpIfFalse L2 |
| Jump L1 |
| L2: |
| Push r0 |
| Push FP[-5] |
| Push r1 |
| InterfaceCall 2, CP#2 |
| AddInt |
| PopLocal r0 |
| Push r1 |
| PushInt 1 |
| AddInt |
| StoreLocal r1 |
| Drop1 |
| Jump L3 |
| L1: |
| Push r0 |
| ReturnTOS |
| } |
| ConstantPool { |
| [0] = InterfaceCall 'dart:core::List::get:length', ArgDesc num-args 1, num-type-args 0, names [] |
| [1] = Reserved |
| [2] = InterfaceCall 'dart:core::List::[]', ArgDesc num-args 2, num-type-args 0, names [] |
| [3] = Reserved |
| } |
| |
| |
| Function 'test_for_continue', static, reflectable, debuggable |
| parameters [dart:core::List < dart:core::int > 'list'] (required: 1) |
| return-type dart:core::int |
| |
| |
| Bytecode { |
| Entry 2 |
| CheckStack 0 |
| PushInt 0 |
| PopLocal r0 |
| PushInt 100 |
| NegateInt |
| PopLocal r1 |
| L4: |
| CheckStack 1 |
| Push r1 |
| Push FP[-5] |
| InterfaceCall 1, CP#0 |
| CompareIntLt |
| JumpIfFalse L1 |
| Push r1 |
| PushInt 0 |
| CompareIntLt |
| JumpIfFalse L2 |
| Jump L3 |
| L2: |
| Push r0 |
| Push FP[-5] |
| Push r1 |
| InterfaceCall 2, CP#2 |
| AddInt |
| PopLocal r0 |
| L3: |
| Push r1 |
| PushInt 1 |
| AddInt |
| StoreLocal r1 |
| Drop1 |
| Jump L4 |
| L1: |
| Push r0 |
| ReturnTOS |
| } |
| ConstantPool { |
| [0] = InterfaceCall 'dart:core::List::get:length', ArgDesc num-args 1, num-type-args 0, names [] |
| [1] = Reserved |
| [2] = InterfaceCall 'dart:core::List::[]', ArgDesc num-args 2, num-type-args 0, names [] |
| [3] = Reserved |
| } |
| |
| |
| Function 'test_while', static, reflectable, debuggable |
| parameters [dart:core::List < dart:core::int > 'list'] (required: 1) |
| return-type dart:core::int |
| |
| |
| Bytecode { |
| Entry 4 |
| CheckStack 0 |
| PushInt 0 |
| PopLocal r0 |
| PushInt 0 |
| PopLocal r1 |
| L2: |
| CheckStack 1 |
| Push r1 |
| Push FP[-5] |
| InterfaceCall 1, CP#0 |
| CompareIntLt |
| JumpIfFalse L1 |
| Push r0 |
| Push FP[-5] |
| Push r1 |
| PopLocal r2 |
| Push r2 |
| PushInt 1 |
| AddInt |
| StoreLocal r1 |
| PopLocal r3 |
| Push r2 |
| InterfaceCall 2, CP#2 |
| AddInt |
| PopLocal r0 |
| Jump L2 |
| L1: |
| Push r0 |
| ReturnTOS |
| } |
| ConstantPool { |
| [0] = InterfaceCall 'dart:core::List::get:length', ArgDesc num-args 1, num-type-args 0, names [] |
| [1] = Reserved |
| [2] = InterfaceCall 'dart:core::List::[]', ArgDesc num-args 2, num-type-args 0, names [] |
| [3] = Reserved |
| } |
| |
| |
| Function 'test_do_while', static, reflectable, debuggable |
| parameters [dart:core::List < dart:core::int > 'list'] (required: 1) |
| return-type dart:core::int |
| |
| |
| Bytecode { |
| Entry 2 |
| CheckStack 0 |
| PushInt 0 |
| PopLocal r0 |
| PushInt 0 |
| PopLocal r1 |
| L1: |
| CheckStack 1 |
| Push r0 |
| Push FP[-5] |
| Push r1 |
| InterfaceCall 2, CP#0 |
| AddInt |
| PopLocal r0 |
| Push r1 |
| PushInt 1 |
| AddInt |
| PopLocal r1 |
| Push r1 |
| Push FP[-5] |
| InterfaceCall 1, CP#2 |
| CompareIntLt |
| JumpIfTrue L1 |
| Push r0 |
| ReturnTOS |
| } |
| ConstantPool { |
| [0] = InterfaceCall 'dart:core::List::[]', ArgDesc num-args 2, num-type-args 0, names [] |
| [1] = Reserved |
| [2] = InterfaceCall 'dart:core::List::get:length', ArgDesc num-args 1, num-type-args 0, names [] |
| [3] = Reserved |
| } |
| |
| |
| Function 'test_for_in', static, reflectable, debuggable |
| parameters [dart:core::List < dart:core::int > 'list'] (required: 1) |
| return-type dart:core::int |
| |
| |
| Bytecode { |
| Entry 3 |
| CheckStack 0 |
| PushInt 0 |
| PopLocal r0 |
| Push FP[-5] |
| InterfaceCall 1, CP#0 |
| PopLocal r1 |
| L2: |
| CheckStack 1 |
| Push r1 |
| InterfaceCall 1, CP#2 |
| JumpIfFalse L1 |
| Push r1 |
| InterfaceCall 1, CP#4 |
| PopLocal r2 |
| Push r0 |
| Push r2 |
| AddInt |
| PopLocal r0 |
| Jump L2 |
| L1: |
| Push r0 |
| ReturnTOS |
| } |
| ConstantPool { |
| [0] = InterfaceCall 'dart:core::Iterable::get:iterator', ArgDesc num-args 1, num-type-args 0, names [] |
| [1] = Reserved |
| [2] = InterfaceCall 'dart:core::Iterator::moveNext', ArgDesc num-args 1, num-type-args 0, names [] |
| [3] = Reserved |
| [4] = InterfaceCall 'dart:core::Iterator::get:current', ArgDesc num-args 1, num-type-args 0, names [] |
| [5] = Reserved |
| } |
| |
| |
| Function 'test_for_in_with_outer_var', static, reflectable, debuggable |
| parameters [dart:core::List < dart:core::int > 'list'] (required: 1) |
| return-type dart:core::int |
| |
| |
| Bytecode { |
| Entry 4 |
| CheckStack 0 |
| PushInt 0 |
| PopLocal r0 |
| PushInt 42 |
| PopLocal r1 |
| Push FP[-5] |
| InterfaceCall 1, CP#0 |
| PopLocal r2 |
| L2: |
| CheckStack 1 |
| Push r2 |
| InterfaceCall 1, CP#2 |
| JumpIfFalse L1 |
| Push r2 |
| InterfaceCall 1, CP#4 |
| PopLocal r3 |
| Push r3 |
| PopLocal r1 |
| Push r0 |
| Push r1 |
| AddInt |
| PopLocal r0 |
| Jump L2 |
| L1: |
| Push r0 |
| ReturnTOS |
| } |
| ConstantPool { |
| [0] = InterfaceCall 'dart:core::Iterable::get:iterator', ArgDesc num-args 1, num-type-args 0, names [] |
| [1] = Reserved |
| [2] = InterfaceCall 'dart:core::Iterator::moveNext', ArgDesc num-args 1, num-type-args 0, names [] |
| [3] = Reserved |
| [4] = InterfaceCall 'dart:core::Iterator::get:current', ArgDesc num-args 1, num-type-args 0, names [] |
| [5] = Reserved |
| } |
| |
| |
| Function 'main', static, reflectable, debuggable |
| parameters [] (required: 0) |
| return-type dynamic |
| |
| |
| Bytecode { |
| Entry 0 |
| CheckStack 0 |
| PushNull |
| ReturnTOS |
| } |
| ConstantPool { |
| } |
| |
| } |
| |
| } |
| ]library #lib from "#lib" as #lib { |
| |
| static method test_for(dart.core::List<dart.core::int> list) → dart.core::int { |
| dart.core::int sum = 0; |
| for (dart.core::int i = 0; i.{dart.core::num::<}(list.{dart.core::List::length}); i = i.{dart.core::num::+}(1)) { |
| sum = sum.{dart.core::num::+}(list.{dart.core::List::[]}(i)); |
| } |
| return sum; |
| } |
| static method test_for_break(dart.core::List<dart.core::int> list) → dart.core::int { |
| dart.core::int sum = 0; |
| #L1: |
| for (dart.core::int i = 0; i.{dart.core::num::>=}(0); i = i.{dart.core::num::+}(1)) { |
| if(i.{dart.core::num::>=}(list.{dart.core::List::length})) { |
| break #L1; |
| } |
| sum = sum.{dart.core::num::+}(list.{dart.core::List::[]}(i)); |
| } |
| return sum; |
| } |
| static method test_for_continue(dart.core::List<dart.core::int> list) → dart.core::int { |
| dart.core::int sum = 0; |
| for (dart.core::int i = 100.{dart.core::int::unary-}(); i.{dart.core::num::<}(list.{dart.core::List::length}); i = i.{dart.core::num::+}(1)) |
| #L2: |
| { |
| if(i.{dart.core::num::<}(0)) { |
| break #L2; |
| } |
| sum = sum.{dart.core::num::+}(list.{dart.core::List::[]}(i)); |
| } |
| return sum; |
| } |
| static method test_while(dart.core::List<dart.core::int> list) → dart.core::int { |
| dart.core::int sum = 0; |
| dart.core::int i = 0; |
| while (i.{dart.core::num::<}(list.{dart.core::List::length})) { |
| sum = sum.{dart.core::num::+}(list.{dart.core::List::[]}(let final dart.core::int #t1 = i in let final dart.core::int #t2 = i = #t1.{dart.core::num::+}(1) in #t1)); |
| } |
| return sum; |
| } |
| static method test_do_while(dart.core::List<dart.core::int> list) → dart.core::int { |
| dart.core::int sum = 0; |
| dart.core::int i = 0; |
| do { |
| sum = sum.{dart.core::num::+}(list.{dart.core::List::[]}(i)); |
| i = i.{dart.core::num::+}(1); |
| } |
| while (i.{dart.core::num::<}(list.{dart.core::List::length})) |
| return sum; |
| } |
| static method test_for_in(dart.core::List<dart.core::int> list) → dart.core::int { |
| dart.core::int sum = 0; |
| for (dart.core::int e in list) { |
| sum = sum.{dart.core::num::+}(e); |
| } |
| return sum; |
| } |
| static method test_for_in_with_outer_var(dart.core::List<dart.core::int> list) → dart.core::int { |
| dart.core::int sum = 0; |
| dart.core::int e = 42; |
| for (final dart.core::int #t3 in list) { |
| e = #t3; |
| sum = sum.{dart.core::num::+}(e); |
| } |
| return sum; |
| } |
| static method main() → dynamic {} |
| } |