Fix math.min and math.max.
Now similar to native Lua and reference: `Returns the argument with the maximum value, according to the Lua operator <. (integer/float) `
This commit is contained in:
@@ -196,19 +196,23 @@ public class MathLib extends TwoArgFunction {
|
|||||||
|
|
||||||
static class max extends VarArgFunction {
|
static class max extends VarArgFunction {
|
||||||
public Varargs invoke(Varargs args) {
|
public Varargs invoke(Varargs args) {
|
||||||
double m = args.checkdouble(1);
|
LuaValue m = args.checkvalue(1);
|
||||||
for ( int i=2,n=args.narg(); i<=n; ++i )
|
for ( int i=2,n=args.narg(); i<=n; ++i ) {
|
||||||
m = Math.max(m,args.checkdouble(i));
|
LuaValue v = args.checkvalue(i);
|
||||||
return valueOf(m);
|
if (m.lt_b(v)) m = v;
|
||||||
|
}
|
||||||
|
return m;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
static class min extends VarArgFunction {
|
static class min extends VarArgFunction {
|
||||||
public Varargs invoke(Varargs args) {
|
public Varargs invoke(Varargs args) {
|
||||||
double m = args.checkdouble(1);
|
LuaValue m = args.checkvalue(1);
|
||||||
for ( int i=2,n=args.narg(); i<=n; ++i )
|
for ( int i=2,n=args.narg(); i<=n; ++i ) {
|
||||||
m = Math.min(m,args.checkdouble(i));
|
LuaValue v = args.checkvalue(i);
|
||||||
return valueOf(m);
|
if (v.lt_b(m)) m = v;
|
||||||
|
}
|
||||||
|
return m;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
Reference in New Issue
Block a user