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 AllocateClosure CP#15 StoreLocal r2 Push r2 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)::'' async (dart:async::Future < dart:core::int > x) -> dart:async::Future < Null > ClosureCode { EntrySuspendable 2, 0, 0 Frame 5 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 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 AllocateClosure CP#15 StoreLocal r3 Push r3 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 8 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 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 { }