From d229ba6542aa009185b28530c55887d14c76b163 Mon Sep 17 00:00:00 2001 From: daurnimator Date: Sun, 21 May 2017 18:50:24 +1000 Subject: shifts have different semantics to JS, use add luaV_shiftl --- src/lobject.js | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) (limited to 'src/lobject.js') diff --git a/src/lobject.js b/src/lobject.js index d6ced0b..ec88e34 100644 --- a/src/lobject.js +++ b/src/lobject.js @@ -527,8 +527,8 @@ const intarith = function(L, op, v1, v2) { case defs.LUA_OPBAND: return (v1 & v2); case defs.LUA_OPBOR: return (v1 | v2); case defs.LUA_OPBXOR: return (v1 ^ v2); - case defs.LUA_OPSHL: return (v1 << v2); - case defs.LUA_OPSHR: return (v1 >>> v2)|0; + case defs.LUA_OPSHL: return lvm.luaV_shiftl(v1, v2); + case defs.LUA_OPSHR: return lvm.luaV_shiftl(v1, -v2); case defs.LUA_OPUNM: return (0 - v1)|0; case defs.LUA_OPBNOT: return (~0 ^ v1); default: assert(0); -- cgit v1.2.3-54-g00ecf