summaryrefslogtreecommitdiff
path: root/src/lbaselib.js
diff options
context:
space:
mode:
authorBenoit Giannangeli <giann008@gmail.com>2017-02-22 21:40:11 +0100
committerBenoit Giannangeli <giann008@gmail.com>2017-02-22 21:44:39 +0100
commit7c459409b078e38da07e2570a77945fdc0f55c2c (patch)
tree97187063047185068abdc62c4b247369675a3cf4 /src/lbaselib.js
parentbf6d1aa5d76abcab1588be46bed406db1e9a81d7 (diff)
downloadfengari-7c459409b078e38da07e2570a77945fdc0f55c2c.tar.gz
fengari-7c459409b078e38da07e2570a77945fdc0f55c2c.tar.bz2
fengari-7c459409b078e38da07e2570a77945fdc0f55c2c.zip
pairs
Diffstat (limited to 'src/lbaselib.js')
-rw-r--r--src/lbaselib.js7
1 files changed, 6 insertions, 1 deletions
diff --git a/src/lbaselib.js b/src/lbaselib.js
index f405a7d..012f5c3 100644
--- a/src/lbaselib.js
+++ b/src/lbaselib.js
@@ -98,7 +98,7 @@ const luaB_type = function(L) {
const pairsmeta = function(L, method, iszero, iter) {
lauxlib.luaL_checkany(L, 1);
- if (lauxlib.luaL_getmetafield(L, 1, method).ttisnil()) { /* no metamethod? */
+ if (lauxlib.luaL_getmetafield(L, 1, method) === CT.LUA_TNIL) { /* no metamethod? */
lapi.lua_pushcfunction(L, iter); /* will return generator, */
lapi.lua_pushvalue(L, 1); /* state, */
if (iszero) lapi.lua_pushinteger(L, 0); /* and initial value */
@@ -121,6 +121,10 @@ const luaB_next = function(L) {
}
};
+const luaB_pairs = function(L) {
+ return pairsmeta(L, "__pairs", 0, luaB_next);
+};
+
/*
** Traversal function for 'ipairs'
*/
@@ -256,6 +260,7 @@ const base_funcs = {
"tonumber": luaB_tonumber,
"getmetatable": luaB_getmetatable,
"next": luaB_next,
+ "pairs": luaB_pairs,
"ipairs": luaB_ipairs,
"select": luaB_select,
"setmetatable": luaB_setmetatable,