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 }