aboutsummaryrefslogtreecommitdiff
path: root/src/lapi.js
diff options
context:
space:
mode:
authorBenoit Giannangeli <benoit.giannangeli@boursorama.fr>2017-02-22 14:19:19 +0100
committerBenoit Giannangeli <benoit.giannangeli@boursorama.fr>2017-02-22 14:19:19 +0100
commiteb9ad22e7538a25ef565e93c842eef48dba2469e (patch)
treec6ac06713b5e5b45cf0f5d0c3010163f2e6e5309 /src/lapi.js
parentb31cc0420e77d34465e4cf7d7ab75df7755b44d6 (diff)
downloadfengari-eb9ad22e7538a25ef565e93c842eef48dba2469e.tar.gz
fengari-eb9ad22e7538a25ef565e93c842eef48dba2469e.tar.bz2
fengari-eb9ad22e7538a25ef565e93c842eef48dba2469e.zip
lua_rawlen, rawlen
Diffstat (limited to 'src/lapi.js')
-rw-r--r--src/lapi.js16
1 files changed, 16 insertions, 0 deletions
diff --git a/src/lapi.js b/src/lapi.js
index 19e3090..76dee1b 100644
--- a/src/lapi.js
+++ b/src/lapi.js
@@ -464,6 +464,21 @@ const lua_tolstring = function(L, idx) {
const lua_tostring = lua_tolstring;
+const lua_rawlen = function(L, idx) {
+ let o = index2addr(L, idx);
+ switch (o.ttype()) {
+ case CT.LUA_TSHRSTR:
+ case CT.LUA_TLNGSTR:
+ return o.value.length;
+ case CT.LUA_TUSERDATA:
+ return o.len;
+ case CT.LUA_TTABLE:
+ return o.luaH_getn();
+ default:
+ return 0;
+ }
+};
+
const lua_tointeger = function(L, idx) {
return lvm.tointeger(index2addr(L, idx))
};
@@ -694,6 +709,7 @@ module.exports.lua_absindex = lua_absindex;
module.exports.index2addr = index2addr;
module.exports.lua_rawget = lua_rawget;
module.exports.lua_rawset = lua_rawset;
+module.exports.lua_rawlen = lua_rawlen;
module.exports.lua_isstring = lua_isstring;
module.exports.lua_rotate = lua_rotate;
module.exports.lua_remove = lua_remove;