From 3e150cbf82243134db25b71a7d90e2a31f8f04e7 Mon Sep 17 00:00:00 2001 From: Benoit Giannangeli Date: Sat, 27 May 2017 09:08:31 +0200 Subject: luaT_trybinTM in luaO_arith needs a stack index --- src/lobject.js | 6 ++++-- 1 file changed, 4 insertions(+), 2 deletions(-) (limited to 'src/lobject.js') diff --git a/src/lobject.js b/src/lobject.js index b6fd581..d08849c 100644 --- a/src/lobject.js +++ b/src/lobject.js @@ -605,7 +605,9 @@ const numarith = function(L, op, v1, v2) { } }; -const luaO_arith = function(L, op, p1, p2, res) { +const luaO_arith = function(L, op, p1, p2, p3) { + let res = (typeof p3 === "number") ? L.stack[p3] : p3; /* FIXME */ + switch (op) { case defs.LUA_OPBAND: case defs.LUA_OPBOR: case defs.LUA_OPBXOR: case defs.LUA_OPSHL: case defs.LUA_OPSHR: @@ -644,7 +646,7 @@ const luaO_arith = function(L, op, p1, p2, res) { } /* could not perform raw operation; try metamethod */ assert(L !== null); /* should not fail when folding (compile time) */ - ltm.luaT_trybinTM(L, p1, p2, res, (op - defs.LUA_OPADD) + ltm.TMS.TM_ADD); + ltm.luaT_trybinTM(L, p1, p2, p3, (op - defs.LUA_OPADD) + ltm.TMS.TM_ADD); }; -- cgit v1.2.3-54-g00ecf