001    package railo.transformer.bytecode.statement.tag;
002    
003    import org.objectweb.asm.Type;
004    import org.objectweb.asm.commons.Method;
005    
006    import railo.transformer.bytecode.BytecodeContext;
007    import railo.transformer.bytecode.BytecodeException;
008    import railo.transformer.bytecode.Position;
009    import railo.transformer.bytecode.util.Types;
010    
011    public final class TagReThrow extends TagBaseNoFinal {
012    
013            public TagReThrow(Position start,Position end) {
014                    super(start,end);
015            }
016    
017            // void throwCatch()
018            private static final Method THROW_CATCH = new Method("throwCatch",Type.VOID_TYPE,new Type[]{});
019    
020            /**
021             *
022             * @see railo.transformer.bytecode.statement.StatementBase#_writeOut(org.objectweb.asm.commons.GeneratorAdapter)
023             */
024            public void _writeOut(BytecodeContext bc) throws BytecodeException {
025                    bc.getAdapter().loadArg(0);
026                    bc.getAdapter().invokeVirtual(Types.PAGE_CONTEXT, THROW_CATCH);
027            }
028    
029    }