Fix Globals.load() to call the library with an empty modname and the globals as the environment. Change standard libraries to be called with two arguments, a modname and an environment.
This commit is contained in:
@@ -2,8 +2,7 @@ package org.luaj.vm2;
|
||||
|
||||
import junit.framework.TestCase;
|
||||
|
||||
import org.luaj.vm2.lib.MathLib;
|
||||
import org.luaj.vm2.lib.jse.JseMathLib;
|
||||
import org.luaj.vm2.lib.jme.JmePlatform;
|
||||
import org.luaj.vm2.lib.jse.JsePlatform;
|
||||
|
||||
public class MathLibTest extends TestCase {
|
||||
@@ -13,10 +12,8 @@ public class MathLibTest extends TestCase {
|
||||
private boolean supportedOnJ2me;
|
||||
|
||||
public MathLibTest() {
|
||||
LuaValue g = JsePlatform.standardGlobals();
|
||||
j2se = g.get("math");
|
||||
g.load( new MathLib() );
|
||||
j2me = g.get("math");
|
||||
j2se = JsePlatform.standardGlobals().get("math");
|
||||
j2me = JmePlatform.standardGlobals().get("math");
|
||||
}
|
||||
|
||||
protected void setUp() throws Exception {
|
||||
|
||||
@@ -16,12 +16,17 @@ public class RequireClassTest extends TestCase {
|
||||
globals = JsePlatform.standardGlobals();
|
||||
require = globals.get("require");
|
||||
}
|
||||
|
||||
public void testLoadClass() {
|
||||
LuaValue result = globals.load(new org.luaj.vm2.require.RequireSampleSuccess());
|
||||
assertEquals( "require-sample-success-", result.tojstring() );
|
||||
}
|
||||
|
||||
public void testRequireClassSuccess() {
|
||||
LuaValue result = require.call( LuaValue.valueOf("org.luaj.vm2.require.RequireSampleSuccess") );
|
||||
assertEquals( "require-sample-success", result.tojstring() );
|
||||
assertEquals( "require-sample-success-org.luaj.vm2.require.RequireSampleSuccess", result.tojstring() );
|
||||
result = require.call( LuaValue.valueOf("org.luaj.vm2.require.RequireSampleSuccess") );
|
||||
assertEquals( "require-sample-success", result.tojstring() );
|
||||
assertEquals( "require-sample-success-org.luaj.vm2.require.RequireSampleSuccess", result.tojstring() );
|
||||
}
|
||||
|
||||
public void testRequireClassLoadLuaError() {
|
||||
|
||||
@@ -1,17 +1,18 @@
|
||||
package org.luaj.vm2.require;
|
||||
|
||||
import org.luaj.vm2.LuaValue;
|
||||
import org.luaj.vm2.lib.ZeroArgFunction;
|
||||
import org.luaj.vm2.lib.TwoArgFunction;
|
||||
|
||||
/**
|
||||
* This should succeed as a library that can be loaded dynamically via "require()"
|
||||
*/
|
||||
public class RequireSampleSuccess extends ZeroArgFunction {
|
||||
public class RequireSampleSuccess extends TwoArgFunction {
|
||||
|
||||
public RequireSampleSuccess() {
|
||||
}
|
||||
|
||||
public LuaValue call() {
|
||||
return LuaValue.valueOf("require-sample-success");
|
||||
public LuaValue call(LuaValue modname, LuaValue env) {
|
||||
env.checkglobals();
|
||||
return LuaValue.valueOf("require-sample-success-"+modname.tojstring());
|
||||
}
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user