- b.add(parserLine, TRY);
- int size = b.size();
- parseStatement(b, null); // parse the expression to be TRYed
- b.add(parserLine, POP); // pop the TryMarker
- b.add(parserLine, JMP); // jump forward to the end of the catch block
- int size2 = b.size();
- b.set(size - 1, new Integer(b.size() - size + 1)); // the TRY argument points at the start of the CATCH block
+ b.add(parserLine, TRY); // try bytecode causes a TryMarker to be pushed
+ int tryInsn = b.size() - 1;
+ // parse the expression to be TRYed
+ parseStatement(b, null);
+ // pop the try marker. this is pushed when the TRY bytecode is executed
+ b.add(parserLine, POP);
+ // jump forward to the end of the catch block, start of the finally block
+ b.add(parserLine, JMP);
+ int successJMPInsn = b.size() - 1;