From ebeb17ee158a3b482bd70c8643eacd166d89b4b5 Mon Sep 17 00:00:00 2001 From: daurnimator Date: Wed, 3 May 2017 12:29:35 +1000 Subject: Add lua_rawseti --- README.md | 1 - src/lapi.js | 9 +++++++++ 2 files changed, 9 insertions(+), 1 deletion(-) diff --git a/README.md b/README.md index dcfafd4..9d7e70e 100644 --- a/README.md +++ b/README.md @@ -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; -- cgit v1.2.3-70-g09d2