001 package railo.transformer.bytecode.statement; 002 003 import org.objectweb.asm.Type; 004 import org.objectweb.asm.commons.GeneratorAdapter; 005 006 import railo.transformer.bytecode.BytecodeContext; 007 import railo.transformer.bytecode.BytecodeException; 008 import railo.transformer.bytecode.Literal; 009 import railo.transformer.bytecode.expression.Expression; 010 import railo.transformer.bytecode.util.ASMUtil; 011 import railo.transformer.bytecode.util.Types; 012 013 public final class ExpressionStatement extends StatementBase { 014 015 private Expression expr; 016 017 /** 018 * Constructor of the class 019 * @param expr 020 */ 021 public ExpressionStatement(Expression expr) { 022 super(expr.getLine()); 023 this.expr=expr; 024 } 025 026 /** 027 * 028 * @see railo.transformer.bytecode.statement.StatementBase#_writeOut(org.objectweb.asm.commons.GeneratorAdapter) 029 */ 030 public void _writeOut(BytecodeContext bc) throws BytecodeException { 031 GeneratorAdapter adapter = bc.getAdapter(); 032 if(!(expr instanceof Literal)) { 033 Type type = expr.writeOut(bc, Expression.MODE_VALUE); 034 if(!type.equals(Types.VOID))ASMUtil.pop(adapter, type); 035 //if(type.equals(Types.DOUBLE_VALUE))adapter.pop2(); 036 //else adapter.pop(); 037 } 038 } 039 }