| Bytecode |
| Dynamic Module Entry Point: DART_SDK/pkg/dart2bytecode/testcases/try_blocks.dart::main |
| Library 'DART_SDK/pkg/dart2bytecode/testcases/try_blocks.dart' |
| name '#lib' |
| script 'DART_SDK/pkg/dart2bytecode/testcases/try_blocks.dart' |
| |
| Class '', script = 'DART_SDK/pkg/dart2bytecode/testcases/try_blocks.dart' |
| |
| |
| Function 'testTryCatch1', static, reflectable, debuggable |
| parameters [] (required: 0) |
| return-type dynamic |
| |
| Bytecode { |
| Entry 4 |
| CheckStack 0 |
| Try #0 start: |
| PushConstant CP#0 |
| DirectCall CP#1, 1 |
| Drop1 |
| Jump L1 |
| Try #0 end: |
| Try #0 handler: |
| SetFrame 4 |
| MoveSpecial exception, r0 |
| MoveSpecial stackTrace, r1 |
| Push r0 |
| PopLocal r2 |
| PushNull |
| PushInt 2 |
| CreateArrayTOS |
| StoreLocal r3 |
| Push r3 |
| PushInt 0 |
| PushConstant CP#4 |
| StoreIndexedTOS |
| Push r3 |
| PushInt 1 |
| Push r2 |
| StoreIndexedTOS |
| DirectCall CP#5, 1 |
| DirectCall CP#1, 1 |
| Drop1 |
| Jump L1 |
| L1: |
| PushNull |
| ReturnTOS |
| } |
| ExceptionsTable { |
| try-index 0, outer -1, start 4, end 14, handler 14, types [CP#3] |
| } |
| ConstantPool { |
| [0] = ObjectRef 'danger!' |
| [1] = DirectCall 'dart:core::print', ArgDesc num-args 1, num-type-args 0, names [] |
| [2] = Reserved |
| [3] = Type dart:core::Object |
| [4] = ObjectRef 'caught ' |
| [5] = DirectCall 'dart:core::_StringBase::_interpolate', ArgDesc num-args 1, num-type-args 0, names [] |
| [6] = Reserved |
| } |
| |
| |
| Function 'testTryCatch2', static, reflectable, debuggable |
| parameters [] (required: 0) |
| return-type dynamic |
| |
| Bytecode { |
| Entry 5 |
| CheckStack 0 |
| Try #0 start: |
| PushConstant CP#0 |
| DirectCall CP#1, 1 |
| Drop1 |
| Jump L1 |
| Try #0 end: |
| Try #0 handler: |
| SetFrame 5 |
| MoveSpecial exception, r0 |
| MoveSpecial stackTrace, r1 |
| Push r0 |
| PushConstant CP#3 |
| InterfaceCall CP#4, 2 |
| JumpIfFalse L2 |
| PushConstant CP#6 |
| DirectCall CP#1, 1 |
| Drop1 |
| Jump L1 |
| L2: |
| Push r0 |
| PushConstant CP#7 |
| InterfaceCall CP#4, 2 |
| JumpIfFalse L3 |
| Push r0 |
| PopLocal r2 |
| PushNull |
| PushInt 2 |
| CreateArrayTOS |
| StoreLocal r3 |
| Push r3 |
| PushInt 0 |
| PushConstant CP#8 |
| StoreIndexedTOS |
| Push r3 |
| PushInt 1 |
| Push r2 |
| StoreIndexedTOS |
| DirectCall CP#9, 1 |
| DirectCall CP#1, 1 |
| Drop1 |
| Jump L1 |
| L3: |
| Push r0 |
| PushConstant CP#11 |
| InterfaceCall CP#4, 2 |
| JumpIfFalse L4 |
| Push r0 |
| PopLocal r2 |
| Push r1 |
| PopLocal r3 |
| PushNull |
| PushInt 4 |
| CreateArrayTOS |
| StoreLocal r4 |
| Push r4 |
| PushInt 0 |
| PushConstant CP#12 |
| StoreIndexedTOS |
| Push r4 |
| PushInt 1 |
| Push r2 |
| StoreIndexedTOS |
| Push r4 |
| PushInt 2 |
| PushConstant CP#13 |
| StoreIndexedTOS |
| Push r4 |
| PushInt 3 |
| Push r3 |
| StoreIndexedTOS |
| DirectCall CP#9, 1 |
| DirectCall CP#1, 1 |
| Drop1 |
| Jump L1 |
| L4: |
| Push r0 |
| PopLocal r2 |
| Push r1 |
| PopLocal r3 |
| PushNull |
| PushInt 4 |
| CreateArrayTOS |
| StoreLocal r4 |
| Push r4 |
| PushInt 0 |
| PushConstant CP#15 |
| StoreIndexedTOS |
| Push r4 |
| PushInt 1 |
| Push r2 |
| StoreIndexedTOS |
| Push r4 |
| PushInt 2 |
| PushConstant CP#13 |
| StoreIndexedTOS |
| Push r4 |
| PushInt 3 |
| Push r3 |
| StoreIndexedTOS |
| DirectCall CP#9, 1 |
| DirectCall CP#1, 1 |
| Drop1 |
| Jump L1 |
| L1: |
| PushNull |
| ReturnTOS |
| } |
| ExceptionsTable { |
| try-index 0, outer -1, start 4, end 14, handler 14, needs-stack-trace, types [CP#3, CP#7, CP#11, CP#14] |
| } |
| ConstantPool { |
| [0] = ObjectRef 'danger!' |
| [1] = DirectCall 'dart:core::print', ArgDesc num-args 1, num-type-args 0, names [] |
| [2] = Reserved |
| [3] = Type dart:core::TypeError |
| [4] = InterfaceCall 'dart:core::Object::_simpleInstanceOf', ArgDesc num-args 2, num-type-args 0, names [] |
| [5] = Reserved |
| [6] = ObjectRef 'caught type error' |
| [7] = Type dart:core::AssertionError |
| [8] = ObjectRef 'caught assertion error ' |
| [9] = DirectCall 'dart:core::_StringBase::_interpolate', ArgDesc num-args 1, num-type-args 0, names [] |
| [10] = Reserved |
| [11] = Type dart:core::Error |
| [12] = ObjectRef 'caught error ' |
| [13] = ObjectRef ' ' |
| [14] = Type dart:core::Object |
| [15] = ObjectRef 'caught something ' |
| } |
| |
| |
| Function 'testTryCatch3', static, reflectable, debuggable |
| parameters [] (required: 0) |
| return-type dynamic |
| |
| Bytecode { |
| Entry 7 |
| CheckStack 0 |
| AllocateContext 0, 3 |
| PopLocal r0 |
| Push r0 |
| PushInt 1 |
| StoreContextVar 0, 0 |
| Push r0 |
| PopLocal r2 |
| Try #0 start: |
| Push r0 |
| PushInt 2 |
| StoreContextVar 0, 1 |
| PushConstant CP#0 |
| Push r0 |
| PushNull |
| AllocateClosure |
| StoreLocal r5 |
| PopLocal r4 |
| Push r4 |
| Push r4 |
| UncheckedClosureCall CP#8, 1 |
| Drop1 |
| Push r0 |
| LoadContextVar 0, 1 |
| DirectCall CP#4, 1 |
| Drop1 |
| Jump L1 |
| Try #0 end: |
| Try #0 handler: |
| SetFrame 7 |
| Push r2 |
| PopLocal r0 |
| MoveSpecial exception, r2 |
| MoveSpecial stackTrace, r3 |
| Push r2 |
| PopLocal r4 |
| Push r0 |
| Push r3 |
| StoreContextVar 0, 2 |
| PushNull |
| PushInt 4 |
| CreateArrayTOS |
| StoreLocal r5 |
| Push r5 |
| PushInt 0 |
| PushConstant CP#9 |
| StoreIndexedTOS |
| Push r5 |
| PushInt 1 |
| Push r4 |
| StoreIndexedTOS |
| Push r5 |
| PushInt 2 |
| PushConstant CP#10 |
| StoreIndexedTOS |
| Push r5 |
| PushInt 3 |
| Push r0 |
| LoadContextVar 0, 2 |
| StoreIndexedTOS |
| DirectCall CP#11, 1 |
| DirectCall CP#4, 1 |
| Drop1 |
| PushConstant CP#13 |
| Push r0 |
| PushNull |
| AllocateClosure |
| StoreLocal r5 |
| PopLocal r6 |
| Push r6 |
| ReturnTOS |
| L1: |
| Push r0 |
| LoadContextParent |
| PopLocal r0 |
| PushNull |
| ReturnTOS |
| } |
| ExceptionsTable { |
| try-index 0, outer -1, start 20, end 58, handler 58, needs-stack-trace, types [CP#6] |
| } |
| ConstantPool { |
| [0] = ClosureFunction 0 |
| [1] = InstanceField dart:core::_Closure::_context (field) |
| [2] = Reserved |
| [3] = ObjectRef 'danger foo' |
| [4] = DirectCall 'dart:core::print', ArgDesc num-args 1, num-type-args 0, names [] |
| [5] = Reserved |
| [6] = Type dart:core::Object |
| [7] = EndClosureFunctionScope |
| [8] = ObjectRef ArgDesc num-args 1, num-type-args 0, names [] |
| [9] = ObjectRef 'caught ' |
| [10] = ObjectRef ' ' |
| [11] = DirectCall 'dart:core::_StringBase::_interpolate', ArgDesc num-args 1, num-type-args 0, names [] |
| [12] = Reserved |
| [13] = ClosureFunction 1 |
| [14] = ObjectRef 'danger bar' |
| [15] = Type dart:core::Error |
| [16] = InterfaceCall 'dart:core::Object::_simpleInstanceOf', ArgDesc num-args 2, num-type-args 0, names [] |
| [17] = Reserved |
| [18] = ObjectRef 'error ' |
| [19] = ObjectRef ', captured stack trace: ' |
| [20] = EndClosureFunctionScope |
| } |
| Closure DART_SDK/pkg/dart2bytecode/testcases/try_blocks.dart::testTryCatch3::'foo' () -> void |
| ClosureCode { |
| Entry 6 |
| Push FP[-5] |
| LoadFieldTOS CP#1 |
| PopLocal r0 |
| CheckStack 0 |
| Push r0 |
| PopLocal r2 |
| Try #0 start: |
| PushConstant CP#3 |
| DirectCall CP#4, 1 |
| Drop1 |
| Jump L1 |
| Try #0 end: |
| Try #0 handler: |
| SetFrame 6 |
| Push r2 |
| PopLocal r0 |
| MoveSpecial exception, r2 |
| MoveSpecial stackTrace, r3 |
| Push r2 |
| PopLocal r4 |
| Push r0 |
| LoadContextVar 0, 0 |
| DirectCall CP#4, 1 |
| Drop1 |
| Push r0 |
| PushInt 3 |
| StoreContextVar 0, 1 |
| Jump L1 |
| L1: |
| PushNull |
| ReturnTOS |
| } |
| |
| Closure DART_SDK/pkg/dart2bytecode/testcases/try_blocks.dart::testTryCatch3::'bar' () -> void |
| ClosureCode { |
| Entry 6 |
| Push FP[-5] |
| LoadFieldTOS CP#1 |
| PopLocal r0 |
| CheckStack 0 |
| Push r0 |
| PopLocal r2 |
| Try #0 start: |
| PushConstant CP#14 |
| DirectCall CP#4, 1 |
| Drop1 |
| Jump L1 |
| Try #0 end: |
| Try #0 handler: |
| SetFrame 6 |
| Push r2 |
| PopLocal r0 |
| MoveSpecial exception, r2 |
| MoveSpecial stackTrace, r3 |
| Push r2 |
| PushConstant CP#15 |
| InterfaceCall CP#16, 2 |
| JumpIfFalse L2 |
| Push r2 |
| PopLocal r4 |
| PushNull |
| PushInt 4 |
| CreateArrayTOS |
| StoreLocal r5 |
| Push r5 |
| PushInt 0 |
| PushConstant CP#18 |
| StoreIndexedTOS |
| Push r5 |
| PushInt 1 |
| Push r4 |
| StoreIndexedTOS |
| Push r5 |
| PushInt 2 |
| PushConstant CP#19 |
| StoreIndexedTOS |
| Push r5 |
| PushInt 3 |
| Push r0 |
| LoadContextVar 0, 2 |
| StoreIndexedTOS |
| DirectCall CP#11, 1 |
| DirectCall CP#4, 1 |
| Drop1 |
| Jump L1 |
| L2: |
| Push r2 |
| Push r3 |
| Throw 1 |
| L1: |
| PushNull |
| ReturnTOS |
| } |
| |
| |
| Function 'testRethrow', static, reflectable, debuggable |
| parameters [dart:core::bool 'cond'] (required: 1) |
| return-type dynamic |
| |
| Bytecode { |
| Entry 8 |
| CheckStack 0 |
| Try #0 start: |
| Try #1 start: |
| PushConstant CP#0 |
| DirectCall CP#1, 1 |
| Drop1 |
| Jump L1 |
| Try #1 end: |
| Try #1 handler: |
| SetFrame 8 |
| MoveSpecial exception, r2 |
| MoveSpecial stackTrace, r3 |
| Push r2 |
| PopLocal r4 |
| Try #2 start: |
| PushConstant CP#4 |
| DirectCall CP#1, 1 |
| Drop1 |
| Push FP[-5] |
| JumpIfFalse L2 |
| Push r2 |
| Push r3 |
| Throw 1 |
| L2: |
| Jump L3 |
| Try #2 end: |
| Try #2 handler: |
| SetFrame 8 |
| MoveSpecial exception, r5 |
| MoveSpecial stackTrace, r6 |
| Push r5 |
| PopLocal r7 |
| PushConstant CP#5 |
| DirectCall CP#1, 1 |
| Drop1 |
| Jump L3 |
| L3: |
| Jump L1 |
| L1: |
| Jump L4 |
| Try #0 end: |
| Try #0 handler: |
| SetFrame 8 |
| MoveSpecial exception, r0 |
| MoveSpecial stackTrace, r1 |
| Push r0 |
| PopLocal r2 |
| Push r1 |
| PopLocal r3 |
| PushConstant CP#6 |
| DirectCall CP#1, 1 |
| Drop1 |
| Push r3 |
| DirectCall CP#1, 1 |
| Drop1 |
| Jump L4 |
| L4: |
| PushNull |
| ReturnTOS |
| } |
| ExceptionsTable { |
| try-index 0, outer -1, start 4, end 78, handler 78, needs-stack-trace, types [CP#3] |
| try-index 1, outer 0, start 4, end 14, handler 14, needs-stack-trace, types [CP#3] |
| try-index 2, outer 0, start 26, end 48, handler 48, types [CP#3] |
| } |
| ConstantPool { |
| [0] = ObjectRef 'try 1 > try 2' |
| [1] = DirectCall 'dart:core::print', ArgDesc num-args 1, num-type-args 0, names [] |
| [2] = Reserved |
| [3] = Type dart:core::Object |
| [4] = ObjectRef 'try 1 > catch 2 > try 3' |
| [5] = ObjectRef 'try 1 > catch 2 > catch 3' |
| [6] = ObjectRef 'catch 1' |
| } |
| |
| |
| Function 'testTryFinally1', static, reflectable, debuggable |
| parameters [] (required: 0) |
| return-type dynamic |
| |
| Bytecode { |
| Entry 3 |
| CheckStack 0 |
| PushInt 0 |
| PopLocal r0 |
| L5: |
| CheckStack 1 |
| Push r0 |
| PushInt 10 |
| CompareIntLt |
| JumpIfFalse L1 |
| Try #0 start: |
| Push r0 |
| PushInt 5 |
| CompareIntGt |
| JumpIfFalse L2 |
| Jump L3 |
| L2: |
| Jump L4 |
| Try #0 end: |
| Try #0 handler: |
| SetFrame 3 |
| MoveSpecial exception, r1 |
| MoveSpecial stackTrace, r2 |
| Push r0 |
| DirectCall CP#1, 1 |
| Drop1 |
| Push r1 |
| Push r2 |
| Throw 1 |
| L3: |
| Push r0 |
| DirectCall CP#1, 1 |
| Drop1 |
| Jump L1 |
| L4: |
| Push r0 |
| DirectCall CP#1, 1 |
| Drop1 |
| Push r0 |
| PushInt 1 |
| AddInt |
| StoreLocal r0 |
| Drop1 |
| Jump L5 |
| L1: |
| PushNull |
| ReturnTOS |
| } |
| ExceptionsTable { |
| try-index 0, outer -1, start 19, end 36, handler 36, needs-stack-trace, synthetic, types [CP#0] |
| } |
| ConstantPool { |
| [0] = Type dynamic |
| [1] = DirectCall 'dart:core::print', ArgDesc num-args 1, num-type-args 0, names [] |
| [2] = Reserved |
| } |
| |
| |
| Function 'testTryFinally2', static, reflectable, debuggable |
| parameters [dart:core::int 'x'] (required: 1) |
| return-type dynamic |
| |
| Bytecode { |
| Entry 9 |
| CheckStack 0 |
| AllocateContext 0, 2 |
| PopLocal r0 |
| Push r0 |
| Push FP[-5] |
| StoreContextVar 0, 0 |
| Push r0 |
| LoadContextVar 0, 0 |
| PopLocal r2 |
| PushInt 1 |
| Push r2 |
| InterfaceCall CP#0, 2 |
| JumpIfTrue L1 |
| PushInt 2 |
| Push r2 |
| InterfaceCall CP#0, 2 |
| JumpIfTrue L2 |
| Jump L3 |
| L1: |
| Push r0 |
| PopLocal r3 |
| Try #0 start: |
| PushConstant CP#2 |
| DirectCall CP#3, 1 |
| Drop1 |
| Push r0 |
| PushInt 3 |
| StoreContextVar 0, 1 |
| Push r0 |
| PopLocal r5 |
| Try #1 start: |
| PushConstant CP#5 |
| DirectCall CP#3, 1 |
| Drop1 |
| PushConstant CP#6 |
| Push r0 |
| PushNull |
| AllocateClosure |
| StoreLocal r8 |
| PopLocal r7 |
| Push r7 |
| Push r7 |
| UncheckedClosureCall CP#10, 1 |
| Drop1 |
| Jump L4 |
| Try #1 end: |
| Try #1 handler: |
| SetFrame 9 |
| Push r5 |
| PopLocal r0 |
| MoveSpecial exception, r5 |
| MoveSpecial stackTrace, r6 |
| PushConstant CP#12 |
| DirectCall CP#3, 1 |
| Drop1 |
| Push r5 |
| Push r6 |
| Throw 1 |
| L4: |
| Push r5 |
| PopLocal r0 |
| PushConstant CP#12 |
| DirectCall CP#3, 1 |
| Drop1 |
| Jump L5 |
| Try #0 end: |
| Try #0 handler: |
| SetFrame 9 |
| Push r3 |
| PopLocal r0 |
| MoveSpecial exception, r3 |
| MoveSpecial stackTrace, r4 |
| PushConstant CP#14 |
| DirectCall CP#3, 1 |
| Drop1 |
| Push r3 |
| Push r4 |
| Throw 1 |
| L5: |
| Push r3 |
| PopLocal r0 |
| PushConstant CP#14 |
| DirectCall CP#3, 1 |
| Drop1 |
| Jump L2 |
| L2: |
| PushConstant CP#15 |
| DirectCall CP#3, 1 |
| Drop1 |
| Jump L3 |
| L3: |
| PushNull |
| ReturnTOS |
| } |
| ExceptionsTable { |
| try-index 0, outer -1, start 53, end 136, handler 136, needs-stack-trace, synthetic, types [CP#11] |
| try-index 1, outer 0, start 70, end 98, handler 98, needs-stack-trace, synthetic, types [CP#11] |
| } |
| ConstantPool { |
| [0] = InterfaceCall 'dart:core::Object::==', ArgDesc num-args 2, num-type-args 0, names [] |
| [1] = Reserved |
| [2] = ObjectRef 'before try 1' |
| [3] = DirectCall 'dart:core::print', ArgDesc num-args 1, num-type-args 0, names [] |
| [4] = Reserved |
| [5] = ObjectRef 'try' |
| [6] = ClosureFunction 0 |
| [7] = InstanceField dart:core::_Closure::_context (field) |
| [8] = Reserved |
| [9] = EndClosureFunctionScope |
| [10] = ObjectRef ArgDesc num-args 1, num-type-args 0, names [] |
| [11] = Type dynamic |
| [12] = ObjectRef 'finally 1' |
| [13] = ObjectRef 'after try 1' |
| [14] = ObjectRef 'finally 2' |
| [15] = ObjectRef 'case 2' |
| } |
| Closure DART_SDK/pkg/dart2bytecode/testcases/try_blocks.dart::testTryFinally2::'foo' () -> void |
| ClosureCode { |
| Entry 2 |
| Push FP[-5] |
| LoadFieldTOS CP#7 |
| PopLocal r0 |
| CheckStack 0 |
| Push r0 |
| LoadContextVar 0, 0 |
| DirectCall CP#3, 1 |
| Drop1 |
| Push r0 |
| LoadContextVar 0, 1 |
| DirectCall CP#3, 1 |
| Drop1 |
| PushNull |
| ReturnTOS |
| } |
| |
| |
| Function 'testTryFinally3', static, reflectable, debuggable |
| parameters [] (required: 0) |
| return-type dynamic |
| |
| Bytecode { |
| Entry 6 |
| CheckStack 0 |
| AllocateContext 0, 1 |
| PopLocal r0 |
| Push r0 |
| PushInt 11 |
| StoreContextVar 0, 0 |
| PushNull |
| PopLocal r2 |
| Push r0 |
| PopLocal r3 |
| Try #0 start: |
| PushConstant CP#0 |
| Push r0 |
| PushNull |
| AllocateClosure |
| StoreLocal r5 |
| PopLocal r2 |
| Jump L1 |
| Try #0 end: |
| Try #0 handler: |
| SetFrame 6 |
| Push r3 |
| PopLocal r0 |
| MoveSpecial exception, r3 |
| MoveSpecial stackTrace, r4 |
| Push r0 |
| LoadContextVar 0, 0 |
| DirectCall CP#3, 1 |
| Drop1 |
| Push r2 |
| DynamicCall CP#9, 1 |
| Drop1 |
| Push r3 |
| Push r4 |
| Throw 1 |
| L1: |
| Push r3 |
| PopLocal r0 |
| Push r0 |
| LoadContextVar 0, 0 |
| DirectCall CP#3, 1 |
| Drop1 |
| Push r2 |
| DynamicCall CP#9, 1 |
| Drop1 |
| Push r0 |
| LoadContextParent |
| PopLocal r0 |
| PushNull |
| ReturnTOS |
| } |
| ExceptionsTable { |
| try-index 0, outer -1, start 23, end 37, handler 37, needs-stack-trace, synthetic, types [CP#6] |
| } |
| ConstantPool { |
| [0] = ClosureFunction 0 |
| [1] = InstanceField dart:core::_Closure::_context (field) |
| [2] = Reserved |
| [3] = DirectCall 'dart:core::print', ArgDesc num-args 1, num-type-args 0, names [] |
| [4] = Reserved |
| [5] = ObjectRef 'try 1' |
| [6] = Type dynamic |
| [7] = ObjectRef 'try 2' |
| [8] = EndClosureFunctionScope |
| [9] = DynamicCall 'implicit:call', ArgDesc num-args 1, num-type-args 0, names [] |
| [10] = Reserved |
| } |
| Closure DART_SDK/pkg/dart2bytecode/testcases/try_blocks.dart::testTryFinally3::'<anonymous closure>' () -> dart:core::int |
| ClosureCode { |
| Entry 6 |
| Push FP[-5] |
| LoadFieldTOS CP#1 |
| PopLocal r0 |
| CheckStack 0 |
| Push r0 |
| LoadContextVar 0, 0 |
| DirectCall CP#3, 1 |
| Drop1 |
| Push r0 |
| PopLocal r2 |
| Try #0 start: |
| PushConstant CP#5 |
| DirectCall CP#3, 1 |
| Drop1 |
| Jump L1 |
| Try #0 end: |
| Try #0 handler: |
| SetFrame 6 |
| Push r2 |
| PopLocal r0 |
| MoveSpecial exception, r2 |
| MoveSpecial stackTrace, r3 |
| Push r0 |
| PopLocal r4 |
| Try #1 start: |
| PushConstant CP#7 |
| DirectCall CP#3, 1 |
| Drop1 |
| Jump L2 |
| Try #1 end: |
| Try #1 handler: |
| SetFrame 6 |
| Push r4 |
| PopLocal r0 |
| MoveSpecial exception, r4 |
| MoveSpecial stackTrace, r5 |
| Push r0 |
| LoadContextVar 0, 0 |
| DirectCall CP#3, 1 |
| Drop1 |
| Push r4 |
| Push r5 |
| Throw 1 |
| L2: |
| Push r4 |
| PopLocal r0 |
| Push r0 |
| LoadContextVar 0, 0 |
| DirectCall CP#3, 1 |
| Drop1 |
| PushInt 43 |
| ReturnTOS |
| L1: |
| Push r2 |
| PopLocal r0 |
| Push r0 |
| PopLocal r4 |
| Try #2 start: |
| PushConstant CP#7 |
| DirectCall CP#3, 1 |
| Drop1 |
| Jump L3 |
| Try #2 end: |
| Try #2 handler: |
| SetFrame 6 |
| Push r4 |
| PopLocal r0 |
| MoveSpecial exception, r4 |
| MoveSpecial stackTrace, r5 |
| Push r0 |
| LoadContextVar 0, 0 |
| DirectCall CP#3, 1 |
| Drop1 |
| Push r4 |
| Push r5 |
| Throw 1 |
| L3: |
| Push r4 |
| PopLocal r0 |
| Push r0 |
| LoadContextVar 0, 0 |
| DirectCall CP#3, 1 |
| Drop1 |
| PushInt 43 |
| ReturnTOS |
| } |
| |
| |
| Function 'testTryCatchFinally', static, reflectable, debuggable |
| parameters [] (required: 0) |
| return-type dynamic |
| |
| Bytecode { |
| Entry 5 |
| CheckStack 0 |
| Try #0 start: |
| Try #1 start: |
| PushConstant CP#0 |
| DirectCall CP#1, 1 |
| Drop1 |
| Jump L1 |
| Try #1 end: |
| Try #1 handler: |
| SetFrame 5 |
| MoveSpecial exception, r2 |
| MoveSpecial stackTrace, r3 |
| Push r2 |
| PopLocal r4 |
| PushConstant CP#4 |
| DirectCall CP#1, 1 |
| Drop1 |
| Jump L1 |
| L1: |
| Jump L2 |
| Try #0 end: |
| Try #0 handler: |
| SetFrame 5 |
| MoveSpecial exception, r0 |
| MoveSpecial stackTrace, r1 |
| PushConstant CP#6 |
| DirectCall CP#1, 1 |
| Drop1 |
| Push r0 |
| Push r1 |
| Throw 1 |
| L2: |
| PushConstant CP#6 |
| DirectCall CP#1, 1 |
| Drop1 |
| PushNull |
| ReturnTOS |
| } |
| ExceptionsTable { |
| try-index 0, outer -1, start 4, end 40, handler 40, needs-stack-trace, synthetic, types [CP#5] |
| try-index 1, outer 0, start 4, end 14, handler 14, types [CP#3] |
| } |
| ConstantPool { |
| [0] = ObjectRef 'try' |
| [1] = DirectCall 'dart:core::print', ArgDesc num-args 1, num-type-args 0, names [] |
| [2] = Reserved |
| [3] = Type dart:core::Object |
| [4] = ObjectRef 'catch' |
| [5] = Type dynamic |
| [6] = ObjectRef 'finally' |
| } |
| |
| |
| Function 'main', static, reflectable, debuggable |
| parameters [] (required: 0) |
| return-type dynamic |
| |
| Bytecode { |
| Entry 0 |
| CheckStack 0 |
| PushNull |
| ReturnTOS |
| } |
| ConstantPool { |
| } |
| |