diff options
author | Benoit Giannangeli <giann008@gmail.com> | 2017-03-24 11:58:00 +0100 |
---|---|---|
committer | Benoit Giannangeli <giann008@gmail.com> | 2017-03-24 11:58:00 +0100 |
commit | 16cdb860e9e8e5550c1178a41eabb52e461ffa46 (patch) | |
tree | 87b2aa1ad671927134696c0cd1e61f2edd7e0abd /src | |
parent | 58c57c57354fce407b11c0d63f8926edf5f469c0 (diff) | |
download | fengari-16cdb860e9e8e5550c1178a41eabb52e461ffa46.tar.gz fengari-16cdb860e9e8e5550c1178a41eabb52e461ffa46.tar.bz2 fengari-16cdb860e9e8e5550c1178a41eabb52e461ffa46.zip |
TValue.id to print something when tostring({})
Diffstat (limited to 'src')
-rw-r--r-- | src/lapi.js | 2 | ||||
-rw-r--r-- | src/lauxlib.js | 2 | ||||
-rw-r--r-- | src/lobject.js | 3 |
3 files changed, 5 insertions, 2 deletions
diff --git a/src/lapi.js b/src/lapi.js index 5064c30..3520b15 100644 --- a/src/lapi.js +++ b/src/lapi.js @@ -158,7 +158,7 @@ const lua_rotate = function(L, idx, n) { let p = index2addr(L, idx); let pIdx = index2addr_(L, idx); - assert(!p.ttisnil() && idx > lua.LUA_REGISTRYINDEX, "index not in the stack"); + assert(/*!p.ttisnil() && */idx > lua.LUA_REGISTRYINDEX, "index not in the stack"); assert((n >= 0 ? n : -n) <= (L.top - idx), "invalid 'n'"); let m = n >= 0 ? L.top - 1 - n : pIdx - n - 1; /* end of prefix */ diff --git a/src/lauxlib.js b/src/lauxlib.js index 1b306a3..e3974cb 100644 --- a/src/lauxlib.js +++ b/src/lauxlib.js @@ -312,7 +312,7 @@ const luaL_tolstring = function(L, idx) { default: let tt = luaL_getmetafield(L, idx, "__name"); let kind = tt === CT.LUA_TSTRING ? lapi.lua_tostring(L, -1) : luaL_typename(L, idx); - lapi.lua_pushstring(L, `${kind}`); // We can't print memory address in JS + lapi.lua_pushstring(L, `${kind}: 0x${lapi.index2addr(L, -1).id.toString(16)}`); if (tt !== CT.LUA_TNIL) lapi.lua_remove(L, -2); break; diff --git a/src/lobject.js b/src/lobject.js index 8d6b6a3..3cbde26 100644 --- a/src/lobject.js +++ b/src/lobject.js @@ -8,9 +8,12 @@ const lua = require('./lua.js'); const CT = lua.constant_types; const UpVal = require('./lfunc.js').UpVal; +let tvalueCount = 0; + class TValue { constructor(type, value) { + this.id = tvalueCount++; this.type = type; this.value = value; this.metatable = null; |