001/** 002 * 003 * Copyright (c) 2014, the Railo Company Ltd. All rights reserved. 004 * 005 * This library is free software; you can redistribute it and/or 006 * modify it under the terms of the GNU Lesser General Public 007 * License as published by the Free Software Foundation; either 008 * version 2.1 of the License, or (at your option) any later version. 009 * 010 * This library is distributed in the hope that it will be useful, 011 * but WITHOUT ANY WARRANTY; without even the implied warranty of 012 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU 013 * Lesser General Public License for more details. 014 * 015 * You should have received a copy of the GNU Lesser General Public 016 * License along with this library. If not, see <http://www.gnu.org/licenses/>. 017 * 018 **/ 019package lucee.transformer.bytecode.util; 020 021import org.objectweb.asm.Type; 022import org.objectweb.asm.commons.Method; 023 024public final class Methods_Operator { 025 026 public static final Method OPERATOR_EQV_BV_BV=new Method( 027 "eqv", 028 Types.BOOLEAN_VALUE, 029 new Type[]{Types.BOOLEAN_VALUE,Types.BOOLEAN_VALUE} 030 ); 031 032 public static final Method OPERATOR_IMP_BV_BV=new Method( 033 "imp", 034 Types.BOOLEAN_VALUE, 035 new Type[]{Types.BOOLEAN_VALUE,Types.BOOLEAN_VALUE} 036 ); 037 038 public static final Method OPERATOR_CT=new Method( 039 "ct", 040 Types.BOOLEAN_VALUE, 041 new Type[]{Types.OBJECT,Types.OBJECT} 042 ); 043 public static final Method OPERATOR_EEQ=new Method( 044 "eeq", 045 Types.BOOLEAN_VALUE, 046 new Type[]{Types.OBJECT,Types.OBJECT} 047 ); 048 public static final Method OPERATOR_NEEQ=new Method( 049 "neeq", 050 Types.BOOLEAN_VALUE, 051 new Type[]{Types.OBJECT,Types.OBJECT} 052 ); 053 054 public static final Method OPERATOR_NCT=new Method( 055 "nct", 056 Types.BOOLEAN_VALUE, 057 new Type[]{Types.OBJECT,Types.OBJECT} 058 ); 059 060 // double exponent(double left, double right) 061 062 063 public static final Method[][] OPERATORS=new Method[][]{ 064 // Object 065 new Method[] { 066 new Method("compare",Types.INT_VALUE,new Type[]{Types.OBJECT,Types.OBJECT}), 067 new Method("compare",Types.INT_VALUE,new Type[]{Types.OBJECT,Types.BOOLEAN_VALUE}), 068 new Method("compare",Types.INT_VALUE,new Type[]{Types.OBJECT,Types.DOUBLE_VALUE}), 069 new Method("compare",Types.INT_VALUE,new Type[]{Types.OBJECT,Types.STRING}) 070 }, 071 // boolean 072 new Method[] { 073 new Method("compare",Types.INT_VALUE,new Type[]{Types.BOOLEAN_VALUE,Types.OBJECT}), 074 new Method("compare",Types.INT_VALUE,new Type[]{Types.BOOLEAN_VALUE,Types.BOOLEAN_VALUE}), 075 new Method("compare",Types.INT_VALUE,new Type[]{Types.BOOLEAN_VALUE,Types.DOUBLE_VALUE}), 076 new Method("compare",Types.INT_VALUE,new Type[]{Types.BOOLEAN_VALUE,Types.STRING}) 077 }, 078 // double 079 new Method[] { 080 new Method("compare",Types.INT_VALUE,new Type[]{Types.DOUBLE_VALUE,Types.OBJECT}), 081 new Method("compare",Types.INT_VALUE,new Type[]{Types.DOUBLE_VALUE,Types.BOOLEAN_VALUE}), 082 new Method("compare",Types.INT_VALUE,new Type[]{Types.DOUBLE_VALUE,Types.DOUBLE_VALUE}), 083 new Method("compare",Types.INT_VALUE,new Type[]{Types.DOUBLE_VALUE,Types.STRING}) 084 }, 085 // String 086 new Method[] { 087 new Method("compare",Types.INT_VALUE,new Type[]{Types.STRING,Types.OBJECT}), 088 new Method("compare",Types.INT_VALUE,new Type[]{Types.STRING,Types.BOOLEAN_VALUE}), 089 new Method("compare",Types.INT_VALUE,new Type[]{Types.STRING,Types.DOUBLE_VALUE}), 090 new Method("compare",Types.INT_VALUE,new Type[]{Types.STRING,Types.STRING}) 091 } 092 }; 093}