diff options
author | daurnimator <quae@daurnimator.com> | 2017-05-26 15:54:47 +1000 |
---|---|---|
committer | daurnimator <quae@daurnimator.com> | 2017-05-27 22:43:20 +1000 |
commit | 63446e402d2aa70bb53cbc40563edafb6383cf5d (patch) | |
tree | 7b3dcc3037237e68c4c6cd126dc28e5434ceb8df /src | |
parent | ed0518f417a61b32e531f85c434b8024859202cd (diff) | |
download | fengari-63446e402d2aa70bb53cbc40563edafb6383cf5d.tar.gz fengari-63446e402d2aa70bb53cbc40563edafb6383cf5d.tar.bz2 fengari-63446e402d2aa70bb53cbc40563edafb6383cf5d.zip |
Have ltm.luaT_callorderTM return a boolean
Diffstat (limited to 'src')
-rw-r--r-- | src/ltm.js | 6 | ||||
-rw-r--r-- | src/lvm.js | 14 |
2 files changed, 9 insertions, 11 deletions
@@ -159,11 +159,11 @@ const luaT_trybinTM = function(L, p1, p2, res, event) { }; const luaT_callorderTM = function(L, p1, p2, event) { - let res = new lobject.TValue(CT.LUA_TNIL, null); + let res = new lobject.TValue(); if (!luaT_callbinTM(L, p1, p2, res, event)) - return -1; + return null; else - return res.l_isfalse() ? 0 : 1; + return !res.l_isfalse(); }; const fasttm = function(l, et, e) { @@ -752,31 +752,29 @@ const luaV_lessthan = function(L, l, r) { return l_strcmp(l.tsvalue(), r.tsvalue()) < 0 ? 1 : 0; else { let res = ltm.luaT_callorderTM(L, l, r, ltm.TMS.TM_LT); - if (res < 0) + if (res === null) ldebug.luaG_ordererror(L, l, r); return res ? 1 : 0; } }; const luaV_lessequal = function(L, l, r) { - let res; - if (l.ttisnumber() && r.ttisnumber()) return LEnum(l, r) ? 1 : 0; else if (l.ttisstring() && r.ttisstring()) return l_strcmp(l.tsvalue(), r.tsvalue()) <= 0 ? 1 : 0; else { - res = ltm.luaT_callorderTM(L, l, r, ltm.TMS.TM_LE); - if (res >= 0) + let res = ltm.luaT_callorderTM(L, l, r, ltm.TMS.TM_LE); + if (res !== null) return res ? 1 : 0; } /* try 'lt': */ L.ci.callstatus |= lstate.CIST_LEQ; /* mark it is doing 'lt' for 'le' */ - res = ltm.luaT_callorderTM(L, r, l, ltm.TMS.TM_LT); + let res = ltm.luaT_callorderTM(L, r, l, ltm.TMS.TM_LT); L.ci.callstatus ^= lstate.CIST_LEQ; /* clear mark */ - if (res < 0) + if (res === null) ldebug.luaG_ordererror(L, l, r); - return res !== 1 ? 1 : 0; /* result is negated */ + return res ? 0 : 1; /* result is negated */ }; const luaV_equalobj = function(L, t1, t2) { |