blob: 156e9dd5e67e0de54a2bf43e3a5d8b6dd9df5848 [file] [log] [blame]
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 {
}