diff options
-rw-r--r-- | README.md | 1 | ||||
-rw-r--r-- | src/lapi.js | 9 |
2 files changed, 9 insertions, 1 deletions
@@ -53,7 +53,6 @@ - [ ] lua_islightuserdata - [ ] lua_pushfstring - [ ] lua_pushvfstring - - [ ] lua_rawseti - [ ] lua_register - [ ] lua_setallocf - [ ] lua_tocfunction diff --git a/src/lapi.js b/src/lapi.js index 4de27c2..826dee2 100644 --- a/src/lapi.js +++ b/src/lapi.js @@ -399,6 +399,14 @@ const lua_rawset = function(L, idx) { L.top -= 2; }; +const lua_rawseti = function(L, idx, n) { + assert(2 < L.top - L.ci.funcOff, "not enough elements in the stack"); + let o = index2addr(L, idx); + assert(o.ttistable(), "table expected"); + ltable.luaH_setint(o.value, n, L.stack[L.top - 1]); + L.stack[--L.top] = void 0; +}; + const lua_rawsetp = function(L, idx, p) { assert(1 < L.top - L.ci.funcOff, "not enough elements in the stack"); let o = index2addr(L, idx); @@ -1074,6 +1082,7 @@ module.exports.lua_rawgeti = lua_rawgeti; module.exports.lua_rawgetp = lua_rawgetp; module.exports.lua_rawlen = lua_rawlen; module.exports.lua_rawset = lua_rawset; +module.exports.lua_rawseti = lua_rawseti; module.exports.lua_rawsetp = lua_rawsetp; module.exports.lua_remove = lua_remove; module.exports.lua_replace = lua_replace; |