Improve compatibility with lua 5.2.
This commit is contained in:
@@ -2970,11 +2970,12 @@ public class LuaValue extends Varargs {
|
|||||||
* @see #lteq(LuaValue)
|
* @see #lteq(LuaValue)
|
||||||
*/
|
*/
|
||||||
public LuaValue comparemt( LuaValue tag, LuaValue op1 ) {
|
public LuaValue comparemt( LuaValue tag, LuaValue op1 ) {
|
||||||
if ( type() == op1.type() ) {
|
LuaValue h = metatag(tag);
|
||||||
LuaValue h = metatag(tag);
|
if ( !h.isnil() )
|
||||||
if ( !h.isnil() && h == op1.metatag(tag) )
|
return h.call(this, op1);
|
||||||
return h.call(this, op1);
|
h = op1.metatag(tag);
|
||||||
}
|
if ( !h.isnil() )
|
||||||
|
return h.call(this, op1);
|
||||||
return error("attempt to compare "+tag+" on "+typename()+" and "+op1.typename());
|
return error("attempt to compare "+tag+" on "+typename()+" and "+op1.typename());
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
@@ -848,14 +848,14 @@ public class UnaryBinaryOperatorsTest extends TestCase {
|
|||||||
assertEquals( fal, fal.lt(tru) );
|
assertEquals( fal, fal.lt(tru) );
|
||||||
assertEquals( tbl, tbl.lt(tbl2) );
|
assertEquals( tbl, tbl.lt(tbl2) );
|
||||||
assertEquals( tbl2, tbl2.lt(tbl) );
|
assertEquals( tbl2, tbl2.lt(tbl) );
|
||||||
try { tbl.lt(tbl3); fail("did not throw error"); } catch ( LuaError le ) { };
|
assertEquals( tbl, tbl.lt(tbl3) );
|
||||||
try { tbl3.lt(tbl); fail("did not throw error"); } catch ( LuaError le ) { };
|
assertEquals( tbl3, tbl3.lt(tbl) );
|
||||||
assertEquals( fal, tru.lteq(fal) );
|
assertEquals( fal, tru.lteq(fal) );
|
||||||
assertEquals( tru, fal.lteq(tru) );
|
assertEquals( tru, fal.lteq(tru) );
|
||||||
assertEquals( tbl2, tbl.lteq(tbl2) );
|
assertEquals( tbl2, tbl.lteq(tbl2) );
|
||||||
assertEquals( tbl, tbl2.lteq(tbl) );
|
assertEquals( tbl, tbl2.lteq(tbl) );
|
||||||
try { tbl.lteq(tbl3); fail("did not throw error"); } catch ( LuaError le ) { };
|
assertEquals( tbl3, tbl.lteq(tbl3) );
|
||||||
try { tbl3.lteq(tbl); fail("did not throw error"); } catch ( LuaError le ) { };
|
assertEquals( tbl, tbl3.lteq(tbl) );
|
||||||
|
|
||||||
// always use right argument
|
// always use right argument
|
||||||
mt = LuaValue.tableOf( new LuaValue[] {
|
mt = LuaValue.tableOf( new LuaValue[] {
|
||||||
@@ -868,14 +868,14 @@ public class UnaryBinaryOperatorsTest extends TestCase {
|
|||||||
assertEquals( tru, fal.lt(tru) );
|
assertEquals( tru, fal.lt(tru) );
|
||||||
assertEquals( tbl2, tbl.lt(tbl2) );
|
assertEquals( tbl2, tbl.lt(tbl2) );
|
||||||
assertEquals( tbl, tbl2.lt(tbl) );
|
assertEquals( tbl, tbl2.lt(tbl) );
|
||||||
try { tbl.lt(tbl3); fail("did not throw error"); } catch ( LuaError le ) { };
|
assertEquals( tbl3, tbl.lt(tbl3) );
|
||||||
try { tbl3.lt(tbl); fail("did not throw error"); } catch ( LuaError le ) { };
|
assertEquals( tbl, tbl3.lt(tbl) );
|
||||||
assertEquals( tru, tru.lteq(fal) );
|
assertEquals( tru, tru.lteq(fal) );
|
||||||
assertEquals( fal, fal.lteq(tru) );
|
assertEquals( fal, fal.lteq(tru) );
|
||||||
assertEquals( tbl, tbl.lteq(tbl2) );
|
assertEquals( tbl, tbl.lteq(tbl2) );
|
||||||
assertEquals( tbl2, tbl2.lteq(tbl) );
|
assertEquals( tbl2, tbl2.lteq(tbl) );
|
||||||
try { tbl.lteq(tbl3); fail("did not throw error"); } catch ( LuaError le ) { };
|
assertEquals( tbl, tbl.lteq(tbl3) );
|
||||||
try { tbl3.lteq(tbl); fail("did not throw error"); } catch ( LuaError le ) { };
|
assertEquals( tbl3, tbl3.lteq(tbl) );
|
||||||
|
|
||||||
} finally {
|
} finally {
|
||||||
LuaBoolean.s_metatable = null;
|
LuaBoolean.s_metatable = null;
|
||||||
|
|||||||
Reference in New Issue
Block a user