diff options
Diffstat (limited to 'src/lapi.js')
-rw-r--r-- | src/lapi.js | 17 |
1 files changed, 17 insertions, 0 deletions
diff --git a/src/lapi.js b/src/lapi.js index e149619..bc4dd54 100644 --- a/src/lapi.js +++ b/src/lapi.js @@ -472,6 +472,22 @@ const lua_tonumber = function(L, idx) { return lvm.tonumber(index2addr(L, idx)) }; +const lua_topointer = function(L, idx) { + let o = index2addr(L, idx); + switch (o.ttype()) { + case CT.LUA_TTABLE: + case CT.LUA_TLCL: + case CT.LUA_TCCL: + case CT.LUA_TLCF: + case CT.LUA_TTHREAD: + case CT.LUA_TUSERDATA: + case CT.LUA_TLIGHTUSERDATA: + return o.value; + default: + return null; + } +}; + const f_call = function(L, ud) { ldo.luaD_callnoyield(L, ud.funcOff, ud.nresults); }; @@ -653,6 +669,7 @@ module.exports.lua_tointeger = lua_tointeger; module.exports.lua_toboolean = lua_toboolean; module.exports.lua_tolstring = lua_tolstring; module.exports.lua_tostring = lua_tostring; +module.exports.lua_topointer = lua_topointer; module.exports.lua_load = lua_load; module.exports.lua_callk = lua_callk; module.exports.lua_call = lua_call; |