diff options
Diffstat (limited to 'src/lobject.js')
-rw-r--r-- | src/lobject.js | 59 |
1 files changed, 30 insertions, 29 deletions
diff --git a/src/lobject.js b/src/lobject.js index 4b3d0aa..8896c1e 100644 --- a/src/lobject.js +++ b/src/lobject.js @@ -656,38 +656,39 @@ const luaO_pushvfstring = function(L, fmt, argp) { v instanceof LClosure || v instanceof CClosure) { pushstr(L, to_luastring("0x"+v.id.toString(16))); - } - switch(typeof v) { - case "undefined": - pushstr(L, to_luastring("undefined")); - break; - case "number": /* before check object as null is an object */ - pushstr(L, to_luastring("Number("+v+")")); - break; - case "string": /* before check object as null is an object */ - pushstr(L, to_luastring("String("+JSON.stringify(v)+")")); - break; - case "boolean": /* before check object as null is an object */ - pushstr(L, to_luastring(v?"Boolean(true)":"Boolean(false)")); - break; - case "object": - if (v === null) { /* null is special */ - pushstr(L, to_luastring("null")); + } else { + switch(typeof v) { + case "undefined": + pushstr(L, to_luastring("undefined")); + break; + case "number": /* before check object as null is an object */ + pushstr(L, to_luastring("Number("+v+")")); + break; + case "string": /* before check object as null is an object */ + pushstr(L, to_luastring("String("+JSON.stringify(v)+")")); + break; + case "boolean": /* before check object as null is an object */ + pushstr(L, to_luastring(v?"Boolean(true)":"Boolean(false)")); + break; + case "object": + if (v === null) { /* null is special */ + pushstr(L, to_luastring("null")); + break; + } + /* fall through */ + case "function": { + let id = L.l_G.ids.get(v); + if (!id) { + id = L.l_G.id_counter++; + L.l_G.ids.set(v, id); + } + pushstr(L, to_luastring("0x"+id.toString(16))); break; } - /* fall through */ - case "function": { - let id = L.l_G.ids.get(v); - if (!id) { - id = L.l_G.id_counter++; - L.l_G.ids.set(v, id); - } - pushstr(L, to_luastring("0x"+id.toString(16))); - break; + default: + /* user provided object. no id available */ + pushstr(L, to_luastring("<id NYI>")); } - default: - /* user provided object. no id available */ - pushstr(L, to_luastring("<id NYI>")); } break; } |