From bb3ae3026edec431c59299271f1af682e8dbb938 Mon Sep 17 00:00:00 2001 From: Marek Kotewicz Date: Thu, 2 Apr 2015 01:53:33 +0200 Subject: [PATCH] print nonenumerable properties of object in geth console --- jsre/pp_js.go | 22 +++++++++++++++------- 1 file changed, 15 insertions(+), 7 deletions(-) diff --git a/jsre/pp_js.go b/jsre/pp_js.go index 3352f23ce0..78509fc0bc 100644 --- a/jsre/pp_js.go +++ b/jsre/pp_js.go @@ -23,18 +23,26 @@ function pp(object, indent) { } } str += " ]"; + } else if (object instanceof Error) { + str += "\033[31m" + "Error"; } else if(typeof(object) === "object") { str += "{\n"; - indent += " "; - var last = Object.keys(object).pop() - for(var k in object) { - str += indent + k + ": " + pp(object[k], indent); + indent += " "; + var last = Object.getOwnPropertyNames(object).pop() + Object.getOwnPropertyNames(object).forEach(function (k) { + str += indent + k + ": "; + try { + str += pp(object[k], indent); + } catch (e) { + str += pp(e, indent); + } if(k !== last) { str += ","; } - str += "\n"; - } + + str += "\n"; + }); str += indent.substr(2, indent.length) + "}"; } else if(typeof(object) === "string") { str += "\033[32m'" + object + "'"; @@ -43,7 +51,7 @@ function pp(object, indent) { } else if(typeof(object) === "number") { str += "\033[31m" + object; } else if(typeof(object) === "function") { - str += "\033[35m[Function]"; + str += "\033[35m[Function]"; } else { str += object; }