diff --git a/luaj-core/src/main/java/org/luaj/vm2/lib/PackageLib.java b/luaj-core/src/main/java/org/luaj/vm2/lib/PackageLib.java index 7fe704b7..0eb74daf 100644 --- a/luaj-core/src/main/java/org/luaj/vm2/lib/PackageLib.java +++ b/luaj-core/src/main/java/org/luaj/vm2/lib/PackageLib.java @@ -119,6 +119,7 @@ public class PackageLib extends TwoArgFunction { static final LuaString _PATH = valueOf("path"); static final LuaString _SEARCHPATH = valueOf("searchpath"); static final LuaString _SEARCHERS = valueOf("searchers"); + static final LuaString _SEEALL = valueOf("seeall"); /** The globals that were used to load this library. */ Globals globals; @@ -167,6 +168,7 @@ public class PackageLib extends TwoArgFunction { package_.set(_PATH, LuaValue.valueOf(DEFAULT_LUA_PATH)); package_.set(_LOADLIB, new loadlib()); package_.set(_SEARCHPATH, new searchpath()); + package_.set(_SEEALL, new seeall()); LuaTable searchers = new LuaTable(); searchers.set(1, preload_searcher = new preload_searcher()); searchers.set(2, lua_searcher = new lua_searcher()); @@ -365,6 +367,16 @@ public class PackageLib extends TwoArgFunction { } } + public class seeall extends OneArgFunction { + @Override + public LuaValue call(LuaValue arg) { + LuaTable mt = new LuaTable(); + mt.set(LuaValue.INDEX, globals); + arg.checktable().setmetatable(mt); + return LuaValue.NONE; + } + } + public class java_searcher extends VarArgFunction { @Override public Varargs invoke(Varargs args) {