From 5db1f1f6d5dc1f0e21a0bdf0aae87f3d7aa96fc0 Mon Sep 17 00:00:00 2001
From: Benoit Giannangeli <giann008@gmail.com>
Date: Fri, 12 May 2017 08:44:40 +0200
Subject: Boolean TValue should have a boolean value

---
 src/lcode.js   | 4 ++--
 src/lundump.js | 2 +-
 2 files changed, 3 insertions(+), 3 deletions(-)

(limited to 'src')

diff --git a/src/lcode.js b/src/lcode.js
index 1235fe4..2887e6d 100644
--- a/src/lcode.js
+++ b/src/lcode.js
@@ -799,8 +799,8 @@ const luaK_exp2RK = function(fs, e) {
     let vk = false;
     luaK_exp2val(fs, e);
     switch (e.k) {  /* move constants to 'k' */
-        case ek.VTRUE: e.u.info = boolK(fs, 1); vk = true; break;
-        case ek.VFALSE: e.u.info = boolK(fs, 0); vk = true; break;
+        case ek.VTRUE: e.u.info = boolK(fs, true); vk = true; break;
+        case ek.VFALSE: e.u.info = boolK(fs, false); vk = true; break;
         case ek.VNIL: e.u.info = nilK(fs); vk = true; break;
         case ek.VKINT: e.u.info = luaK_intK(fs, e.u.ival); vk = true; break;
         case ek.VKFLT: e.u.info = luaK_numberK(fs, e.u.nval); vk = true; break;
diff --git a/src/lundump.js b/src/lundump.js
index 5ea459e..3c35710 100644
--- a/src/lundump.js
+++ b/src/lundump.js
@@ -158,7 +158,7 @@ class BytecodeParser {
                 f.k.push(new lobject.TValue(defs.CT.LUA_TNIL, null));
                 break;
             case defs.CT.LUA_TBOOLEAN:
-                f.k.push(new lobject.TValue(defs.CT.LUA_TBOOLEAN, this.readByte()));
+                f.k.push(new lobject.TValue(defs.CT.LUA_TBOOLEAN, this.readByte() !== 0));
                 break;
             case defs.CT.LUA_TNUMFLT:
                 f.k.push(new lobject.TValue(defs.CT.LUA_TNUMFLT, this.readNumber()));
-- 
cgit v1.2.3-70-g09d2