diff options
Diffstat (limited to 'src')
-rw-r--r-- | src/ltable.js | 6 | ||||
-rw-r--r-- | src/ltm.js | 5 |
2 files changed, 6 insertions, 5 deletions
diff --git a/src/ltable.js b/src/ltable.js index 7611b4c..36928d5 100644 --- a/src/ltable.js +++ b/src/ltable.js @@ -22,8 +22,8 @@ Table.prototype.ordered_indexes = function() { .sort(function(a, b) { if (typeof a !== "number") return 1; if (typeof b !== "number") return -1; - return a > b ? 1 : -1 - }) + return a > b ? 1 : -1; + }); }; /* @@ -64,7 +64,7 @@ Table.prototype.luaH_next = function(L, keyI) { if (tnidx === 'number' && nidx % 1 === 0) L.stack[keyI] = new TValue(CT.LUA_TNUMINT, indexes[i + 1]); else if (tnidx === 'string') - L.stack[keyI] = new TValue(CT.LUA_TLNGSTR, indexes[i + 1]); + L.stack[keyI] = L.l_G.strt.get(indexes[i + 1]); else L.stack[keyI] = indexes[i + 1]; @@ -63,7 +63,8 @@ const ttypename = function(t) { const luaT_init = function(L) { L.l_G.tmname = []; for (let event in TMS) { - L.l_G.tmname.push(new TValue(CT.LUA_TLNGSTR, TMS[event])); // Strings are already interned by JS + let name = lua.to_luastring(TMS[event], TMS[event].length); + L.l_G.tmname.push(L.l_G.intern(name)); // Strings are already interned by JS } }; @@ -76,7 +77,7 @@ const luaT_objtypename = function(L, o) { || (o.ttisfulluserdata() && o.metatable !== null)) { let name = o.__index(o, '__name'); if (name.ttisstring()) - return name.value; + return String.fromCharCode(...name.value); } return ttypename(o.ttnov()); |