2008-06-28 | Paul Boddie | raw annotate files changeset graph | Added exception handler variable definition support to the inspection process. Introduced frame position tracking in order to more accurately track and assign stack element usage, employing special methods to be used around function invocation code generation. Added some support for raise statement code generation. Simplified the remove_op_using_stack method and made more use of the actual stack element information found in StackLoad operations. Introduced a LoadResult instruction. Added a test of simple exception raising and handling. |
1 Exception Handling 2 ------------------ 3 4 Where exceptions may be raised, the following rules are applied: 5 6 1. If exception labels exist, any raised exception causes a jump to the 7 handler label. 8 9 2. If no exception labels exist, any raised exception causes the current 10 function to be terminated with an exception condition. 11 12 3. Where an invocation returns with an exception condition set, rules #1 and 13 #2 are applied.