| 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 2 | |
| CheckStack 0 | |
| AllocateClosure CP#15 | |
| Dup | |
| Push r0 | |
| StoreClosureElement 0 | |
| ReturnTOS | |
| } | |
| ConstantPool { | |
| [0] = ClosureFunction 0 | |
| [1] = Type dart:async::Future < dart:core::int > | |
| [2] = ObjectRef 'x' | |
| [3] = SubtypeTestCache | |
| [4] = ObjectRef < Null > | |
| [5] = DirectCall 'dart:async::_SuspendState::_initAsync', ArgDesc num-args 0, num-type-args 1, names [] | |
| [6] = Reserved | |
| [7] = Type dynamic | |
| [8] = DirectCall 'dart:async::_SuspendState::_await', ArgDesc num-args 2, num-type-args 0, names [] | |
| [9] = Reserved | |
| [10] = DirectCall 'dart:async::_SuspendState::_returnAsync', ArgDesc num-args 2, num-type-args 0, names [] | |
| [11] = Reserved | |
| [12] = DirectCall 'dart:async::_SuspendState::_handleException', ArgDesc num-args 3, num-type-args 0, names [] | |
| [13] = Reserved | |
| [14] = EndClosureFunctionScope | |
| [15] = AllocateClosure 0, num-elements: 1, flags: 0 | |
| [16] = Reserved | |
| } | |
| 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 4 | |
| Push r1 | |
| LoadClosureElement 0 | |
| PopLocal r3 | |
| CheckStack 0 | |
| JumpIfUnchecked L1 | |
| Push r2 | |
| PushConstant CP#1 | |
| PushNull | |
| PushNull | |
| PushConstant CP#2 | |
| AssertAssignable 0, CP#3 | |
| Drop1 | |
| L1: | |
| PushConstant CP#4 | |
| DirectCall CP#5, 1 | |
| PopLocal r0 | |
| Try #0 start: | |
| Push r2 | |
| PopLocal r6 | |
| Suspend L2 | |
| Push r0 | |
| Push r6 | |
| DirectCall CP#8, 2 | |
| ReturnTOS | |
| L2: | |
| Drop1 | |
| PushNull | |
| PopLocal r5 | |
| Push r0 | |
| Push r5 | |
| PushNull | |
| PopLocal r0 | |
| DirectCall CP#10, 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#12, 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 1 | |
| 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 2 | |
| 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 6 | |
| 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 8 | |
| 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 3 | |
| CheckStack 0 | |
| AllocateContext 0, 2 | |
| PopLocal r0 | |
| Push r0 | |
| Push FP[-5] | |
| StoreContextVar 0, 0 | |
| Push r0 | |
| PushInt 3 | |
| StoreContextVar 0, 1 | |
| AllocateClosure CP#15 | |
| Dup | |
| Push r0 | |
| StoreClosureElement 0 | |
| PopLocal r2 | |
| Push r2 | |
| ReturnTOS | |
| } | |
| ConstantPool { | |
| [0] = ClosureFunction 0 | |
| [1] = ObjectRef < dart:core::int > | |
| [2] = DirectCall 'dart:async::_SuspendState::_initAsync', ArgDesc num-args 0, num-type-args 1, names [] | |
| [3] = Reserved | |
| [4] = Type dynamic | |
| [5] = DirectCall 'dart:async::_SuspendState::_await', ArgDesc num-args 2, num-type-args 0, names [] | |
| [6] = Reserved | |
| [7] = ObjectRef 'fin' | |
| [8] = DirectCall 'dart:core::print', ArgDesc num-args 1, num-type-args 0, names [] | |
| [9] = Reserved | |
| [10] = DirectCall 'dart:async::_SuspendState::_returnAsync', ArgDesc num-args 2, num-type-args 0, names [] | |
| [11] = Reserved | |
| [12] = DirectCall 'dart:async::_SuspendState::_handleException', ArgDesc num-args 3, num-type-args 0, names [] | |
| [13] = Reserved | |
| [14] = EndClosureFunctionScope | |
| [15] = AllocateClosure 0, num-elements: 1, flags: 0 | |
| [16] = Reserved | |
| } | |
| Closure DART_SDK/pkg/dart2bytecode/testcases/async.dart::closure::'nested' async () -> dart:async::Future < dart:core::int > | |
| ClosureCode { | |
| EntrySuspendable 1, 0, 0 | |
| Frame 7 | |
| Push r1 | |
| LoadClosureElement 0 | |
| PopLocal r2 | |
| CheckStack 0 | |
| PushConstant CP#1 | |
| DirectCall CP#2, 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#5, 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#7 | |
| DirectCall CP#8, 1 | |
| Drop1 | |
| Push r6 | |
| Push r7 | |
| Throw 1 | |
| L2: | |
| Push r6 | |
| PopLocal r2 | |
| PushConstant CP#7 | |
| DirectCall CP#8, 1 | |
| Drop1 | |
| Push r4 | |
| PopLocal r4 | |
| Push r0 | |
| Push r4 | |
| PushNull | |
| PopLocal r0 | |
| DirectCall CP#10, 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#12, 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 1 | |
| 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 'testAwaiterLink1', static, reflectable, debuggable | |
| type-params <'R' extends dart:core::Object? (default dynamic), 'T' extends dart:core::Object? (default dynamic)> | |
| parameters [dart:async::Zone 'self', dart:async::ZoneDelegate 'parent', dart:async::Zone 'zone', FunctionType <enclosing-type-params: 2> (DART_SDK/pkg/dart2bytecode/testcases/async.dart::testAwaiterLink1::TypeParam/1) -> DART_SDK/pkg/dart2bytecode/testcases/async.dart::testAwaiterLink1::TypeParam/0 'f'] (required: 4) | |
| return-type FunctionType <enclosing-type-params: 2> (DART_SDK/pkg/dart2bytecode/testcases/async.dart::testAwaiterLink1::TypeParam/1) -> DART_SDK/pkg/dart2bytecode/testcases/async.dart::testAwaiterLink1::TypeParam/0 | |
| Bytecode { | |
| Entry 3 | |
| CheckFunctionTypeArgs 2, r0 | |
| CheckStack 0 | |
| AllocateContext 0, 1 | |
| PopLocal r1 | |
| Push r1 | |
| Push FP[-5] | |
| StoreContextVar 0, 0 | |
| Push r0 | |
| Push FP[-7] | |
| Push FP[-6] | |
| AllocateClosure CP#6 | |
| Dup | |
| Push r0 | |
| StoreClosureElement 0 | |
| Dup | |
| Push r1 | |
| StoreClosureElement 1 | |
| InterfaceCall CP#8, 4 | |
| ReturnTOS | |
| } | |
| ConstantPool { | |
| [0] = ClosureFunction 0 | |
| [1] = Type DART_SDK/pkg/dart2bytecode/testcases/async.dart::testAwaiterLink1::TypeParam/1 | |
| [2] = ObjectRef 'v' | |
| [3] = SubtypeTestCache | |
| [4] = ObjectRef ArgDesc num-args 2, num-type-args 0, names [] | |
| [5] = EndClosureFunctionScope | |
| [6] = AllocateClosure 0, num-elements: 2, flags: 4 | |
| [7] = Reserved | |
| [8] = InterfaceCall 'dart:async::ZoneDelegate::registerUnaryCallback', ArgDesc num-args 3, num-type-args 2, names [] | |
| [9] = Reserved | |
| } | |
| Closure DART_SDK/pkg/dart2bytecode/testcases/async.dart::testAwaiterLink1::'<anonymous closure>' (DART_SDK/pkg/dart2bytecode/testcases/async.dart::testAwaiterLink1::TypeParam/1 v) -> DART_SDK/pkg/dart2bytecode/testcases/async.dart::testAwaiterLink1::TypeParam/0 | |
| ClosureCode { | |
| Entry 4 | |
| Push FP[-6] | |
| LoadClosureElement 1 | |
| PopLocal r1 | |
| CheckStack 0 | |
| Push FP[-6] | |
| LoadClosureElement 0 | |
| PopLocal r0 | |
| JumpIfUnchecked L1 | |
| Push FP[-5] | |
| PushConstant CP#1 | |
| PushNull | |
| Push r0 | |
| PushConstant CP#2 | |
| AssertAssignable 0, CP#3 | |
| Drop1 | |
| L1: | |
| Push r1 | |
| LoadContextVar 0, 0 | |
| StoreLocal r3 | |
| Push FP[-5] | |
| Push r3 | |
| UncheckedClosureCall CP#4, 2 | |
| ReturnTOS | |
| Awaiter link: (depth: 0, index: 0) | |
| } | |
| Function 'testAwaiterLink2', static, reflectable, debuggable | |
| type-params <'R' extends dart:core::Object? (default dynamic), 'T' extends dart:core::Object? (default dynamic)> | |
| parameters [dart:async::Zone 'self', dart:async::ZoneDelegate 'parent', dart:async::Zone 'zone', FunctionType <enclosing-type-params: 2> (DART_SDK/pkg/dart2bytecode/testcases/async.dart::testAwaiterLink2::TypeParam/1) -> DART_SDK/pkg/dart2bytecode/testcases/async.dart::testAwaiterLink2::TypeParam/0 'f'] (required: 4) | |
| return-type FunctionType <enclosing-type-params: 2> (DART_SDK/pkg/dart2bytecode/testcases/async.dart::testAwaiterLink2::TypeParam/1) -> DART_SDK/pkg/dart2bytecode/testcases/async.dart::testAwaiterLink2::TypeParam/0 | |
| Bytecode { | |
| Entry 6 | |
| CheckFunctionTypeArgs 2, r0 | |
| CheckStack 0 | |
| AllocateContext 0, 4 | |
| PopLocal r1 | |
| Push r1 | |
| Push FP[-7] | |
| StoreContextVar 0, 0 | |
| Push r1 | |
| Push FP[-6] | |
| StoreContextVar 0, 1 | |
| Push r1 | |
| Push FP[-5] | |
| StoreContextVar 0, 2 | |
| Push r1 | |
| Allocate CP#0 | |
| Dup | |
| DirectCall CP#1, 1 | |
| Drop1 | |
| StoreContextVar 0, 3 | |
| AllocateClosure CP#21 | |
| Dup | |
| Push r0 | |
| StoreClosureElement 0 | |
| Dup | |
| Push r1 | |
| StoreClosureElement 1 | |
| PopLocal r3 | |
| Push r3 | |
| Push r3 | |
| UncheckedClosureCall CP#23, 1 | |
| StoreLocal r4 | |
| Push r4 | |
| UncheckedClosureCall CP#23, 1 | |
| ReturnTOS | |
| } | |
| ConstantPool { | |
| [0] = Class dart:core::Object | |
| [1] = DirectCall 'dart:core::Object:: (constructor)', ArgDesc num-args 1, num-type-args 0, names [] | |
| [2] = Reserved | |
| [3] = ClosureFunction 0 | |
| [4] = ClosureFunction 1 | |
| [5] = DirectCall 'dart:core::print', ArgDesc num-args 1, num-type-args 0, names [] | |
| [6] = Reserved | |
| [7] = ClosureFunction 2 | |
| [8] = Type DART_SDK/pkg/dart2bytecode/testcases/async.dart::testAwaiterLink2::TypeParam/1 | |
| [9] = ObjectRef 'v' | |
| [10] = SubtypeTestCache | |
| [11] = ObjectRef ArgDesc num-args 2, num-type-args 0, names [] | |
| [12] = EndClosureFunctionScope | |
| [13] = AllocateClosure 2, num-elements: 2, flags: 4 | |
| [14] = Reserved | |
| [15] = InterfaceCall 'dart:async::ZoneDelegate::registerUnaryCallback', ArgDesc num-args 3, num-type-args 2, names [] | |
| [16] = Reserved | |
| [17] = EndClosureFunctionScope | |
| [18] = AllocateClosure 1, num-elements: 2, flags: 4 | |
| [19] = Reserved | |
| [20] = EndClosureFunctionScope | |
| [21] = AllocateClosure 0, num-elements: 2, flags: 4 | |
| [22] = Reserved | |
| [23] = ObjectRef ArgDesc num-args 1, num-type-args 0, names [] | |
| } | |
| Closure DART_SDK/pkg/dart2bytecode/testcases/async.dart::testAwaiterLink2::'nested' () -> FunctionType <enclosing-type-params: 2> () -> FunctionType <enclosing-type-params: 2> (DART_SDK/pkg/dart2bytecode/testcases/async.dart::testAwaiterLink2::TypeParam/1) -> DART_SDK/pkg/dart2bytecode/testcases/async.dart::testAwaiterLink2::TypeParam/0 | |
| ClosureCode { | |
| Entry 4 | |
| Push FP[-5] | |
| LoadClosureElement 1 | |
| PopLocal r1 | |
| CheckStack 0 | |
| Push FP[-5] | |
| LoadClosureElement 0 | |
| PopLocal r0 | |
| AllocateContext 1, 3 | |
| Dup | |
| Push r1 | |
| StoreContextParent | |
| PopLocal r1 | |
| Push r1 | |
| Allocate CP#0 | |
| Dup | |
| DirectCall CP#1, 1 | |
| Drop1 | |
| StoreContextVar 1, 0 | |
| Push r1 | |
| Allocate CP#0 | |
| Dup | |
| DirectCall CP#1, 1 | |
| Drop1 | |
| StoreContextVar 1, 1 | |
| Push r1 | |
| Push r1 | |
| LoadContextParent | |
| LoadContextVar 0, 2 | |
| StoreContextVar 1, 2 | |
| AllocateClosure CP#18 | |
| Dup | |
| Push r0 | |
| StoreClosureElement 0 | |
| Dup | |
| Push r1 | |
| StoreClosureElement 1 | |
| PopLocal r3 | |
| Push r3 | |
| ReturnTOS | |
| } | |
| Closure DART_SDK/pkg/dart2bytecode/testcases/async.dart::testAwaiterLink2::Closure/0::'register' () -> FunctionType <enclosing-type-params: 2> (DART_SDK/pkg/dart2bytecode/testcases/async.dart::testAwaiterLink2::TypeParam/1) -> DART_SDK/pkg/dart2bytecode/testcases/async.dart::testAwaiterLink2::TypeParam/0 | |
| ClosureCode { | |
| Entry 3 | |
| Push FP[-5] | |
| LoadClosureElement 1 | |
| PopLocal r1 | |
| CheckStack 0 | |
| Push FP[-5] | |
| LoadClosureElement 0 | |
| PopLocal r0 | |
| Push r1 | |
| LoadContextParent | |
| LoadContextVar 0, 3 | |
| DirectCall CP#5, 1 | |
| Drop1 | |
| Push r1 | |
| LoadContextVar 1, 0 | |
| DirectCall CP#5, 1 | |
| Drop1 | |
| Push r1 | |
| LoadContextVar 1, 1 | |
| DirectCall CP#5, 1 | |
| Drop1 | |
| Push r0 | |
| Push r1 | |
| LoadContextParent | |
| LoadContextVar 0, 0 | |
| Push r1 | |
| LoadContextParent | |
| LoadContextVar 0, 1 | |
| AllocateClosure CP#13 | |
| Dup | |
| Push r0 | |
| StoreClosureElement 0 | |
| Dup | |
| Push r1 | |
| StoreClosureElement 1 | |
| InterfaceCall CP#15, 4 | |
| ReturnTOS | |
| } | |
| Closure DART_SDK/pkg/dart2bytecode/testcases/async.dart::testAwaiterLink2::Closure/1::'<anonymous closure>' (DART_SDK/pkg/dart2bytecode/testcases/async.dart::testAwaiterLink2::TypeParam/1 v) -> DART_SDK/pkg/dart2bytecode/testcases/async.dart::testAwaiterLink2::TypeParam/0 | |
| ClosureCode { | |
| Entry 4 | |
| Push FP[-6] | |
| LoadClosureElement 1 | |
| PopLocal r1 | |
| CheckStack 0 | |
| Push FP[-6] | |
| LoadClosureElement 0 | |
| PopLocal r0 | |
| JumpIfUnchecked L1 | |
| Push FP[-5] | |
| PushConstant CP#8 | |
| PushNull | |
| Push r0 | |
| PushConstant CP#9 | |
| AssertAssignable 0, CP#10 | |
| Drop1 | |
| L1: | |
| Push r1 | |
| LoadContextVar 1, 2 | |
| StoreLocal r3 | |
| Push FP[-5] | |
| Push r3 | |
| UncheckedClosureCall CP#11, 2 | |
| ReturnTOS | |
| Awaiter link: (depth: 1, index: 2) | |
| } | |
| Function 'main', static, reflectable, debuggable | |
| parameters [] (required: 0) | |
| return-type dynamic | |
| Bytecode { | |
| Entry 0 | |
| CheckStack 0 | |
| PushNull | |
| ReturnTOS | |
| } | |
| ConstantPool { | |
| } | |