Various changes:

(1) New lua compatibility bindings, including select() and math functions
(2) fix some VM bugs
(3) fix some table bugs, and attempt to restore metatable functionality.
This commit is contained in:
Ian Farmer
2007-08-01 04:15:27 +00:00
parent 68b3e68169
commit 737c5e2855
13 changed files with 252 additions and 69 deletions

View File

@@ -6,6 +6,7 @@ import java.io.OutputStream;
import junit.framework.TestCase;
import lua.StackState;
import lua.addon.luacompat.LuaCompat;
import lua.addon.luajava.LuaJava;
import lua.io.Closure;
import lua.io.LoadState;
@@ -58,7 +59,11 @@ public class LuaJTest extends TestCase {
public void testCompare() throws IOException, InterruptedException {
runTest( "compare" );
}
public void testSelect() throws IOException, InterruptedException {
runTest( "select" );
}
public void testSetlist() throws IOException, InterruptedException {
runTest( "setlist" );
}
@@ -82,6 +87,9 @@ public class LuaJTest extends TestCase {
// add LuaJava bindings
LuaJava.install();
// add LuaCompat bindings
LuaCompat.install();
// new lua state
StackState state = new StackState();

View File

@@ -18,6 +18,8 @@ import lua.addon.luacompat.LuaCompat;
import lua.io.Closure;
import lua.io.LoadState;
import lua.io.Proto;
import lua.value.LNil;
import lua.value.LString;
import lua.value.LValue;
public class StandardTest extends TestCase {
@@ -71,6 +73,12 @@ public class StandardTest extends TestCase {
public void runTest() {
GlobalState.resetGlobals();
LuaCompat.install();
// hack: it's unpleasant when the test cases fail to terminate;
// unfortunately, there is a test in the standard suite that
// relies on weak tables having their elements removed by
// the garbage collector. Until we implement that, remove the
// built-in collectgarbage function.
GlobalState.getGlobalsTable().rawSet( new LString("collectgarbage"), LNil.NIL );
StackState state = new StackState();
Closure c = new Closure( state, code );