question: private void addFinally ( ArrayList returnList , Stmnt finallyBlock ) throws CompileError { Bytecode bc = bytecode ; int n = returnList . size ( ) ; for ( int i = 0 ; i < n ; ++ i ) { final int [ ] ret = ( int [ ] ) returnList . get ( i ) ; int pc = ret [ 0 ] ; bc . write16bit ( pc , bc . currentPc ( ) - pc + 1 ) ; ReturnHook hook = new JsrHook2 ( this , ret ) ; finallyBlock . accept ( this ) ; hook . remove ( this ) ; if ( ! hasReturned ) { bc . addOpcode ( Opcode . GOTO ) ; bc . addIndex ( pc + 3 - bc . currentPc ( ) ) ; } } }
target:  Adds a finally clause for earch return statement.