Class IRTryCatchFinallyStatementCompiler

    • Method Detail

      • 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,
                                            java.util.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)
      • hasFinally

        private boolean hasFinally()