diff options
-rw-r--r-- | src/ldo.js | 1 | ||||
-rw-r--r-- | tests/test-suite/ltests.js | 6 |
2 files changed, 4 insertions, 3 deletions
@@ -230,6 +230,7 @@ const luaD_hook = function(L, event, line) { ar.event = event; ar.currentline = line; ar.i_ci = ci; + luaD_checkstack(L, defs.LUA_MINSTACK); /* ensure minimum stack size */ ci.top = L.top + defs.LUA_MINSTACK; assert(ci.top <= L.stack_last); L.allowhook = 0; /* cannot call hooks inside a hook */ diff --git a/tests/test-suite/ltests.js b/tests/test-suite/ltests.js index 685f530..1c8fe6b 100644 --- a/tests/test-suite/ltests.js +++ b/tests/test-suite/ltests.js @@ -379,9 +379,9 @@ const sethook = function(L) { const smask = lauxlib.luaL_checkstring(L, 2); let count = lauxlib.luaL_optinteger(L, 3, 0); let mask = 0; - if (smask.indexOf('c'.charCodeAt(0))) mask |= lua.LUA_MASKCALL; - if (smask.indexOf('r'.charCodeAt(0))) mask |= lua.LUA_MASKRET; - if (smask.indexOf('l'.charCodeAt(0))) mask |= lua.LUA_MASKLINE; + if (smask.indexOf('c'.charCodeAt(0)) >= 0) mask |= lua.LUA_MASKCALL; + if (smask.indexOf('r'.charCodeAt(0)) >= 0) mask |= lua.LUA_MASKRET; + if (smask.indexOf('l'.charCodeAt(0)) >= 0) mask |= lua.LUA_MASKLINE; if (count > 0) mask |= lua.LUA_MASKCOUNT; sethookaux(L, mask, count, scpt); } |