Class IRTryCatchFinallyStatementCompiler

java.lang.Object
gw.internal.gosu.ir.compiler.bytecode.AbstractBytecodeCompiler
gw.internal.gosu.ir.compiler.bytecode.statement.IRTryCatchFinallyStatementCompiler

public class IRTryCatchFinallyStatementCompiler extends AbstractBytecodeCompiler
  • Field Details

  • Constructor Details

  • Method Details

    • _stmt

      private IRTryCatchFinallyStatement _stmt()
    • compile

      public static void compile(IRTryCatchFinallyStatement stmt, IRBytecodeContext context)
    • compile

      private void compile()
    • compileTryStatement

      private void compileTryStatement(org.objectweb.asm.MethodVisitor mv, org.objectweb.asm.Label tryStart, org.objectweb.asm.Label tryEnd, org.objectweb.asm.Label tryCatchEnd)
    • compileCatchStatements

      private void compileCatchStatements(org.objectweb.asm.MethodVisitor mv, org.objectweb.asm.Label tryStart, org.objectweb.asm.Label tryEnd, org.objectweb.asm.Label tryCatchEnd, List<IRCatchClause> catchStmts)
    • declareCatchExtents

      private void declareCatchExtents(org.objectweb.asm.MethodVisitor mv, org.objectweb.asm.Label tryStart, org.objectweb.asm.Label coverageEnd, org.objectweb.asm.Label handlerStart, IRType type)
    • insertTryCatchBlock

      private void insertTryCatchBlock(org.objectweb.asm.MethodVisitor mv, org.objectweb.asm.Label handlerStart, IRType type, org.objectweb.asm.Label start, org.objectweb.asm.Label end)
    • assignExceptionParam

      private void assignExceptionParam(org.objectweb.asm.MethodVisitor mv, IRSymbol exceptionSym)
    • compileFinallyStatement

      private void compileFinallyStatement(org.objectweb.asm.MethodVisitor mv, org.objectweb.asm.Label tryStart)
    • inlineLocalFinallyStmt

      private void inlineLocalFinallyStmt(IRStatement tryOrCatchStmt, org.objectweb.asm.Label labelEnd)
    • popFinallyStmt

      private void popFinallyStmt(IRFinallyCodePartitioner partition)
    • pushFinallyStmt

      private IRFinallyCodePartitioner pushFinallyStmt()
    • hasFinally

      private boolean hasFinally()