| Bytecode |
| Dynamic Module Entry Point: DART_SDK/pkg/dart2bytecode/testcases/async.dart::main |
| Library 'DART_SDK/pkg/dart2bytecode/testcases/async.dart' |
| name '#lib' |
| script 'DART_SDK/pkg/dart2bytecode/testcases/async.dart' |
| |
| Class '', script = 'DART_SDK/pkg/dart2bytecode/testcases/async.dart' |
| |
| Field 'asyncInFieldInitializer', type = FunctionType (dart:async::Future < dart:core::int >) -> dart:async::Future < Null >, getter = 'get:asyncInFieldInitializer', reflectable, static, is-late, has-initializer |
| initializer |
| Bytecode { |
| Entry 3 |
| CheckStack 0 |
| PushConstant CP#0 |
| Push r0 |
| PushNull |
| AllocateClosure |
| StoreLocal r2 |
| ReturnTOS |
| } |
| ConstantPool { |
| [0] = ClosureFunction 0 |
| [1] = InstanceField dart:core::_Closure::_context (field) |
| [2] = Reserved |
| [3] = Type dart:async::Future < dart:core::int > |
| [4] = ObjectRef 'x' |
| [5] = SubtypeTestCache |
| [6] = ObjectRef < Null > |
| [7] = DirectCall 'dart:async::_SuspendState::_initAsync', ArgDesc num-args 0, num-type-args 1, names [] |
| [8] = Reserved |
| [9] = Type dynamic |
| [10] = DirectCall 'dart:async::_SuspendState::_await', ArgDesc num-args 2, num-type-args 0, names [] |
| [11] = Reserved |
| [12] = DirectCall 'dart:async::_SuspendState::_returnAsync', ArgDesc num-args 2, num-type-args 0, names [] |
| [13] = Reserved |
| [14] = DirectCall 'dart:async::_SuspendState::_handleException', ArgDesc num-args 3, num-type-args 0, names [] |
| [15] = Reserved |
| [16] = EndClosureFunctionScope |
| } |
| Closure DART_SDK/pkg/dart2bytecode/testcases/async.dart::asyncInFieldInitializer (field)::'<anonymous closure>' async (dart:async::Future < dart:core::int > x) -> dart:async::Future < Null > |
| ClosureCode { |
| EntrySuspendable 2, 0, 0 |
| Frame 5 |
| Push r1 |
| LoadFieldTOS CP#1 |
| PopLocal r3 |
| CheckStack 0 |
| JumpIfUnchecked L1 |
| Push r2 |
| PushConstant CP#3 |
| PushNull |
| PushNull |
| PushConstant CP#4 |
| AssertAssignable 0, CP#5 |
| Drop1 |
| L1: |
| PushConstant CP#6 |
| DirectCall CP#7, 1 |
| PopLocal r0 |
| Try #0 start: |
| Push r2 |
| PopLocal r6 |
| Suspend L2 |
| Push r0 |
| Push r6 |
| DirectCall CP#10, 2 |
| ReturnTOS |
| L2: |
| Drop1 |
| PushNull |
| PopLocal r5 |
| Push r0 |
| Push r5 |
| PushNull |
| PopLocal r0 |
| DirectCall CP#12, 2 |
| ReturnTOS |
| Try #0 end: |
| Try #0 handler: |
| SetFrame 7 |
| Push r0 |
| JumpIfNull L3 |
| Push r0 |
| MoveSpecial exception, r0 |
| Push r0 |
| MoveSpecial stackTrace, r0 |
| Push r0 |
| DirectCall CP#14, 3 |
| ReturnTOS |
| L3: |
| MoveSpecial exception, r0 |
| Push r0 |
| MoveSpecial stackTrace, r0 |
| Push r0 |
| Throw 1 |
| } |
| |
| |
| Function 'foo', static, reflectable, debuggable, async |
| parameters [] (required: 0) |
| return-type dart:async::Future < dart:core::int > |
| |
| Bytecode { |
| EntrySuspendable 0, 0, 0 |
| Frame 2 |
| CheckStack 0 |
| PushConstant CP#0 |
| DirectCall CP#1, 1 |
| PopLocal r0 |
| Try #0 start: |
| PushInt 42 |
| PopLocal r1 |
| Push r0 |
| Push r1 |
| PushNull |
| PopLocal r0 |
| DirectCall CP#4, 2 |
| ReturnTOS |
| Try #0 end: |
| Try #0 handler: |
| SetFrame 2 |
| Push r0 |
| JumpIfNull L1 |
| Push r0 |
| MoveSpecial exception, r0 |
| Push r0 |
| MoveSpecial stackTrace, r0 |
| Push r0 |
| DirectCall CP#6, 3 |
| ReturnTOS |
| L1: |
| MoveSpecial exception, r0 |
| Push r0 |
| MoveSpecial stackTrace, r0 |
| Push r0 |
| Throw 1 |
| } |
| ExceptionsTable { |
| try-index 0, outer -1, start 15, end 30, handler 30, needs-stack-trace, synthetic, types [CP#3] |
| } |
| ConstantPool { |
| [0] = ObjectRef < dart:core::int > |
| [1] = DirectCall 'dart:async::_SuspendState::_initAsync', ArgDesc num-args 0, num-type-args 1, names [] |
| [2] = Reserved |
| [3] = Type dynamic |
| [4] = DirectCall 'dart:async::_SuspendState::_returnAsync', ArgDesc num-args 2, num-type-args 0, names [] |
| [5] = Reserved |
| [6] = DirectCall 'dart:async::_SuspendState::_handleException', ArgDesc num-args 3, num-type-args 0, names [] |
| [7] = Reserved |
| } |
| |
| |
| Function 'simpleAsyncAwait', static, reflectable, debuggable, async |
| parameters [dart:async::Future < dart:core::int > 'a', dart:async::Future < dart:core::int > 'b'] (required: 2) |
| return-type dart:async::Future < dart:core::int > |
| |
| Bytecode { |
| EntrySuspendable 2, 0, 0 |
| Frame 3 |
| CheckStack 0 |
| PushConstant CP#0 |
| DirectCall CP#1, 1 |
| PopLocal r0 |
| Try #0 start: |
| Push r1 |
| PopLocal r4 |
| Suspend L1 |
| Push r0 |
| Push r4 |
| DirectCall CP#4, 2 |
| ReturnTOS |
| L1: |
| Push r2 |
| PopLocal r4 |
| Suspend L2 |
| Push r0 |
| Push r4 |
| DirectCall CP#4, 2 |
| ReturnTOS |
| L2: |
| AddInt |
| PopLocal r3 |
| Push r0 |
| Push r3 |
| PushNull |
| PopLocal r0 |
| DirectCall CP#6, 2 |
| ReturnTOS |
| Try #0 end: |
| Try #0 handler: |
| SetFrame 5 |
| Push r0 |
| JumpIfNull L3 |
| Push r0 |
| MoveSpecial exception, r0 |
| Push r0 |
| MoveSpecial stackTrace, r0 |
| Push r0 |
| DirectCall CP#8, 3 |
| ReturnTOS |
| L3: |
| MoveSpecial exception, r0 |
| Push r0 |
| MoveSpecial stackTrace, r0 |
| Push r0 |
| Throw 1 |
| } |
| ExceptionsTable { |
| try-index 0, outer -1, start 15, end 61, handler 61, needs-stack-trace, synthetic, types [CP#3] |
| } |
| ConstantPool { |
| [0] = ObjectRef < dart:core::int > |
| [1] = DirectCall 'dart:async::_SuspendState::_initAsync', ArgDesc num-args 0, num-type-args 1, names [] |
| [2] = Reserved |
| [3] = Type dynamic |
| [4] = DirectCall 'dart:async::_SuspendState::_await', ArgDesc num-args 2, num-type-args 0, names [] |
| [5] = Reserved |
| [6] = DirectCall 'dart:async::_SuspendState::_returnAsync', ArgDesc num-args 2, num-type-args 0, names [] |
| [7] = Reserved |
| [8] = DirectCall 'dart:async::_SuspendState::_handleException', ArgDesc num-args 3, num-type-args 0, names [] |
| [9] = Reserved |
| } |
| |
| |
| Function 'loops', static, reflectable, debuggable, async |
| parameters [dart:core::List < dart:core::int > 'list'] (required: 1) |
| return-type dart:async::Future < dart:core::int > |
| |
| Bytecode { |
| EntrySuspendable 1, 0, 0 |
| Frame 7 |
| CheckStack 0 |
| PushConstant CP#0 |
| DirectCall CP#1, 1 |
| PopLocal r0 |
| Try #0 start: |
| PushInt 0 |
| PopLocal r3 |
| PushInt 0 |
| PopLocal r4 |
| L5: |
| CheckStack 1 |
| Push r4 |
| PushInt 10 |
| CompareIntLt |
| JumpIfFalse L1 |
| Push r1 |
| InterfaceCall CP#4, 1 |
| PopLocal r5 |
| L4: |
| CheckStack 2 |
| Push r5 |
| InterfaceCall CP#6, 1 |
| JumpIfFalse L2 |
| Push r5 |
| InterfaceCall CP#8, 1 |
| PopLocal r6 |
| Push r3 |
| Push r4 |
| Push r6 |
| AddInt |
| DirectCall CP#10, 0 |
| PopLocal r7 |
| Suspend L3 |
| Push r0 |
| Push r7 |
| DirectCall CP#12, 2 |
| ReturnTOS |
| L3: |
| AddInt |
| AddInt |
| PopLocal r3 |
| Jump L4 |
| L2: |
| Push r4 |
| PushInt 1 |
| AddInt |
| StoreLocal r4 |
| Drop1 |
| Jump L5 |
| L1: |
| PushInt 0 |
| PopLocal r4 |
| L7: |
| CheckStack 1 |
| Push r4 |
| PushInt 10 |
| CompareIntLt |
| JumpIfFalse L6 |
| Push r3 |
| Push r4 |
| AddInt |
| PopLocal r3 |
| Push r4 |
| PushInt 1 |
| AddInt |
| StoreLocal r4 |
| Drop1 |
| Jump L7 |
| L6: |
| Push r3 |
| PopLocal r2 |
| Push r0 |
| Push r2 |
| PushNull |
| PopLocal r0 |
| DirectCall CP#14, 2 |
| ReturnTOS |
| Try #0 end: |
| Try #0 handler: |
| SetFrame 8 |
| Push r0 |
| JumpIfNull L8 |
| Push r0 |
| MoveSpecial exception, r0 |
| Push r0 |
| MoveSpecial stackTrace, r0 |
| Push r0 |
| DirectCall CP#16, 3 |
| ReturnTOS |
| L8: |
| MoveSpecial exception, r0 |
| Push r0 |
| MoveSpecial stackTrace, r0 |
| Push r0 |
| Throw 1 |
| } |
| ExceptionsTable { |
| try-index 0, outer -1, start 15, end 146, handler 146, needs-stack-trace, synthetic, types [CP#3] |
| } |
| ConstantPool { |
| [0] = ObjectRef < dart:core::int > |
| [1] = DirectCall 'dart:async::_SuspendState::_initAsync', ArgDesc num-args 0, num-type-args 1, names [] |
| [2] = Reserved |
| [3] = Type dynamic |
| [4] = InterfaceCall 'dart:core::Iterable::get:iterator', ArgDesc num-args 1, num-type-args 0, names [] |
| [5] = Reserved |
| [6] = InterfaceCall 'dart:core::Iterator::moveNext', ArgDesc num-args 1, num-type-args 0, names [] |
| [7] = Reserved |
| [8] = InterfaceCall 'dart:core::Iterator::get:current', ArgDesc num-args 1, num-type-args 0, names [] |
| [9] = Reserved |
| [10] = DirectCall 'DART_SDK/pkg/dart2bytecode/testcases/async.dart::foo', ArgDesc num-args 0, num-type-args 0, names [] |
| [11] = Reserved |
| [12] = DirectCall 'dart:async::_SuspendState::_await', ArgDesc num-args 2, num-type-args 0, names [] |
| [13] = Reserved |
| [14] = DirectCall 'dart:async::_SuspendState::_returnAsync', ArgDesc num-args 2, num-type-args 0, names [] |
| [15] = Reserved |
| [16] = DirectCall 'dart:async::_SuspendState::_handleException', ArgDesc num-args 3, num-type-args 0, names [] |
| [17] = Reserved |
| } |
| |
| |
| Function 'tryCatchRethrow', static, reflectable, debuggable, async |
| parameters [dart:async::Future < dart:core::int > 'a', dart:async::Future < dart:core::int > 'b', dart:async::Future < dart:core::int > 'c'] (required: 3) |
| return-type dart:async::Future < dart:core::int > |
| |
| Bytecode { |
| EntrySuspendable 3, 0, 0 |
| Frame 9 |
| CheckStack 0 |
| PushConstant CP#0 |
| DirectCall CP#1, 1 |
| PopLocal r0 |
| Try #0 start: |
| PushInt 1 |
| PopLocal r5 |
| Try #1 start: |
| Try #2 start: |
| Push r5 |
| Push r1 |
| PopLocal r10 |
| Suspend L1 |
| Push r0 |
| Push r10 |
| DirectCall CP#4, 2 |
| ReturnTOS |
| L1: |
| AddInt |
| PopLocal r5 |
| Jump L2 |
| Try #2 end: |
| Try #2 handler: |
| SetFrame 12 |
| MoveSpecial exception, r8 |
| MoveSpecial stackTrace, r9 |
| Push r8 |
| PopLocal r10 |
| Push r10 |
| PushConstant CP#7 |
| InterfaceCall CP#8, 2 |
| JumpIfFalse L3 |
| Jump L4 |
| L3: |
| Push r5 |
| Push r2 |
| PopLocal r11 |
| Suspend L5 |
| Push r0 |
| Push r11 |
| DirectCall CP#4, 2 |
| ReturnTOS |
| L5: |
| AddInt |
| PopLocal r5 |
| Push r8 |
| Push r9 |
| Throw 1 |
| L2: |
| Jump L6 |
| Try #1 end: |
| Try #1 handler: |
| SetFrame 12 |
| MoveSpecial exception, r6 |
| MoveSpecial stackTrace, r7 |
| PushConstant CP#10 |
| DirectCall CP#11, 1 |
| Drop1 |
| Push r5 |
| Push r3 |
| PopLocal r8 |
| Suspend L7 |
| Push r0 |
| Push r8 |
| DirectCall CP#4, 2 |
| ReturnTOS |
| L7: |
| AddInt |
| PopLocal r5 |
| Push r5 |
| PopLocal r4 |
| Push r0 |
| Push r4 |
| PushNull |
| PopLocal r0 |
| DirectCall CP#13, 2 |
| ReturnTOS |
| L4: |
| PushConstant CP#10 |
| DirectCall CP#11, 1 |
| Drop1 |
| Push r5 |
| Push r3 |
| PopLocal r8 |
| Suspend L8 |
| Push r0 |
| Push r8 |
| DirectCall CP#4, 2 |
| ReturnTOS |
| L8: |
| AddInt |
| PopLocal r5 |
| Push r5 |
| PopLocal r4 |
| Push r0 |
| Push r4 |
| PushNull |
| PopLocal r0 |
| DirectCall CP#13, 2 |
| ReturnTOS |
| L6: |
| PushConstant CP#10 |
| DirectCall CP#11, 1 |
| Drop1 |
| Push r5 |
| Push r3 |
| PopLocal r8 |
| Suspend L9 |
| Push r0 |
| Push r8 |
| DirectCall CP#4, 2 |
| ReturnTOS |
| L9: |
| AddInt |
| PopLocal r5 |
| Push r5 |
| PopLocal r4 |
| Push r0 |
| Push r4 |
| PushNull |
| PopLocal r0 |
| DirectCall CP#13, 2 |
| ReturnTOS |
| Try #0 end: |
| Try #0 handler: |
| SetFrame 12 |
| Push r0 |
| JumpIfNull L10 |
| Push r0 |
| MoveSpecial exception, r0 |
| Push r0 |
| MoveSpecial stackTrace, r0 |
| Push r0 |
| DirectCall CP#15, 3 |
| ReturnTOS |
| L10: |
| MoveSpecial exception, r0 |
| Push r0 |
| MoveSpecial stackTrace, r0 |
| Push r0 |
| Throw 1 |
| } |
| ExceptionsTable { |
| try-index 0, outer -1, start 15, end 236, handler 236, needs-stack-trace, synthetic, types [CP#3] |
| try-index 1, outer 0, start 19, end 102, handler 102, needs-stack-trace, synthetic, types [CP#3] |
| try-index 2, outer 1, start 19, end 44, handler 44, needs-stack-trace, types [CP#6] |
| } |
| ConstantPool { |
| [0] = ObjectRef < dart:core::int > |
| [1] = DirectCall 'dart:async::_SuspendState::_initAsync', ArgDesc num-args 0, num-type-args 1, names [] |
| [2] = Reserved |
| [3] = Type dynamic |
| [4] = DirectCall 'dart:async::_SuspendState::_await', ArgDesc num-args 2, num-type-args 0, names [] |
| [5] = Reserved |
| [6] = Type dart:core::Object |
| [7] = Type dart:core::Error |
| [8] = InterfaceCall 'dart:core::Object::_simpleInstanceOf', ArgDesc num-args 2, num-type-args 0, names [] |
| [9] = Reserved |
| [10] = ObjectRef 'fin' |
| [11] = DirectCall 'dart:core::print', ArgDesc num-args 1, num-type-args 0, names [] |
| [12] = Reserved |
| [13] = DirectCall 'dart:async::_SuspendState::_returnAsync', ArgDesc num-args 2, num-type-args 0, names [] |
| [14] = Reserved |
| [15] = DirectCall 'dart:async::_SuspendState::_handleException', ArgDesc num-args 3, num-type-args 0, names [] |
| [16] = Reserved |
| } |
| |
| |
| Function 'closure', static, reflectable, debuggable |
| parameters [dart:async::Future < dart:core::int > 'a'] (required: 1) |
| return-type dynamic |
| |
| Bytecode { |
| Entry 4 |
| CheckStack 0 |
| AllocateContext 0, 2 |
| PopLocal r0 |
| Push r0 |
| Push FP[-5] |
| StoreContextVar 0, 0 |
| Push r0 |
| PushInt 3 |
| StoreContextVar 0, 1 |
| PushConstant CP#0 |
| Push r0 |
| PushNull |
| AllocateClosure |
| StoreLocal r3 |
| PopLocal r2 |
| Push r2 |
| ReturnTOS |
| } |
| ConstantPool { |
| [0] = ClosureFunction 0 |
| [1] = InstanceField dart:core::_Closure::_context (field) |
| [2] = Reserved |
| [3] = ObjectRef < dart:core::int > |
| [4] = DirectCall 'dart:async::_SuspendState::_initAsync', ArgDesc num-args 0, num-type-args 1, names [] |
| [5] = Reserved |
| [6] = Type dynamic |
| [7] = DirectCall 'dart:async::_SuspendState::_await', ArgDesc num-args 2, num-type-args 0, names [] |
| [8] = Reserved |
| [9] = ObjectRef 'fin' |
| [10] = DirectCall 'dart:core::print', ArgDesc num-args 1, num-type-args 0, names [] |
| [11] = Reserved |
| [12] = DirectCall 'dart:async::_SuspendState::_returnAsync', ArgDesc num-args 2, num-type-args 0, names [] |
| [13] = Reserved |
| [14] = DirectCall 'dart:async::_SuspendState::_handleException', ArgDesc num-args 3, num-type-args 0, names [] |
| [15] = Reserved |
| [16] = EndClosureFunctionScope |
| } |
| Closure DART_SDK/pkg/dart2bytecode/testcases/async.dart::closure::'nested' async () -> dart:async::Future < dart:core::int > |
| ClosureCode { |
| EntrySuspendable 1, 0, 0 |
| Frame 8 |
| Push r1 |
| LoadFieldTOS CP#1 |
| PopLocal r2 |
| CheckStack 0 |
| PushConstant CP#3 |
| DirectCall CP#4, 1 |
| PopLocal r0 |
| Try #0 start: |
| PushInt 4 |
| PopLocal r5 |
| Push r2 |
| PopLocal r6 |
| Try #1 start: |
| Push r2 |
| PushInt 5 |
| StoreContextVar 0, 1 |
| Push r2 |
| LoadContextVar 0, 0 |
| PopLocal r8 |
| Suspend L1 |
| Push r0 |
| Push r8 |
| DirectCall CP#7, 2 |
| ReturnTOS |
| L1: |
| PopLocal r5 |
| Push r2 |
| LoadContextVar 0, 1 |
| Push r5 |
| AddInt |
| PopLocal r4 |
| Jump L2 |
| Try #1 end: |
| Try #1 handler: |
| SetFrame 9 |
| Push r6 |
| PopLocal r2 |
| MoveSpecial exception, r6 |
| MoveSpecial stackTrace, r7 |
| PushConstant CP#9 |
| DirectCall CP#10, 1 |
| Drop1 |
| Push r6 |
| Push r7 |
| Throw 1 |
| L2: |
| Push r6 |
| PopLocal r2 |
| PushConstant CP#9 |
| DirectCall CP#10, 1 |
| Drop1 |
| Push r4 |
| PopLocal r4 |
| Push r0 |
| Push r4 |
| PushNull |
| PopLocal r0 |
| DirectCall CP#12, 2 |
| ReturnTOS |
| Try #0 end: |
| Try #0 handler: |
| SetFrame 9 |
| Push r0 |
| JumpIfNull L3 |
| Push r0 |
| MoveSpecial exception, r0 |
| Push r0 |
| MoveSpecial stackTrace, r0 |
| Push r0 |
| DirectCall CP#14, 3 |
| ReturnTOS |
| L3: |
| MoveSpecial exception, r0 |
| Push r0 |
| MoveSpecial stackTrace, r0 |
| Push r0 |
| Throw 1 |
| } |
| |
| |
| Function 'testAssert', static, reflectable, debuggable, async |
| parameters [dart:async::Future < dart:core::int > 'a'] (required: 1) |
| return-type dart:async::Future < dart:core::int > |
| |
| Bytecode { |
| EntrySuspendable 1, 0, 0 |
| Frame 2 |
| CheckStack 0 |
| PushConstant CP#0 |
| DirectCall CP#1, 1 |
| PopLocal r0 |
| Try #0 start: |
| PushInt 7 |
| PopLocal r2 |
| Push r0 |
| Push r2 |
| PushNull |
| PopLocal r0 |
| DirectCall CP#4, 2 |
| ReturnTOS |
| Try #0 end: |
| Try #0 handler: |
| SetFrame 3 |
| Push r0 |
| JumpIfNull L1 |
| Push r0 |
| MoveSpecial exception, r0 |
| Push r0 |
| MoveSpecial stackTrace, r0 |
| Push r0 |
| DirectCall CP#6, 3 |
| ReturnTOS |
| L1: |
| MoveSpecial exception, r0 |
| Push r0 |
| MoveSpecial stackTrace, r0 |
| Push r0 |
| Throw 1 |
| } |
| ExceptionsTable { |
| try-index 0, outer -1, start 15, end 30, handler 30, needs-stack-trace, synthetic, types [CP#3] |
| } |
| ConstantPool { |
| [0] = ObjectRef < dart:core::int > |
| [1] = DirectCall 'dart:async::_SuspendState::_initAsync', ArgDesc num-args 0, num-type-args 1, names [] |
| [2] = Reserved |
| [3] = Type dynamic |
| [4] = DirectCall 'dart:async::_SuspendState::_returnAsync', ArgDesc num-args 2, num-type-args 0, names [] |
| [5] = Reserved |
| [6] = DirectCall 'dart:async::_SuspendState::_handleException', ArgDesc num-args 3, num-type-args 0, names [] |
| [7] = Reserved |
| } |
| |
| |
| Function 'main', static, reflectable, debuggable |
| parameters [] (required: 0) |
| return-type dynamic |
| |
| Bytecode { |
| Entry 0 |
| CheckStack 0 |
| PushNull |
| ReturnTOS |
| } |
| ConstantPool { |
| } |
| |