From 3f4ce70d9263ff635385d694b9ac3f3c5ad8de12 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?P=C3=A9ter=20Szil=C3=A1gyi?= Date: Tue, 9 Jun 2015 13:27:45 +0300 Subject: jsre: fix wrong separator comma placing due to non consistent field orders --- jsre/pp_js.go | 14 +++++++------- 1 file changed, 7 insertions(+), 7 deletions(-) diff --git a/jsre/pp_js.go b/jsre/pp_js.go index 5c09b2586..4e0a04f83 100644 --- a/jsre/pp_js.go +++ b/jsre/pp_js.go @@ -26,19 +26,19 @@ function pp(object, indent) { } else if(typeof(object) === "object") { str += "{\n"; indent += " "; - var last = getFields(object).pop() - getFields(object).forEach(function (k) { - str += indent + k + ": "; + + var fields = getFields(object); + var last = fields[fields.length - 1]; + fields.forEach(function (key) { + str += indent + key + ": "; try { - str += pp(object[k], indent); + str += pp(object[key], indent); } catch (e) { str += pp(e, indent); } - - if(k !== last) { + if(key !== last) { str += ","; } - str += "\n"; }); str += indent.substr(2, indent.length) + "}"; -- cgit v1.2.3 From 78425593535ce07acf2a9d6c0e87f4e84cce137f Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?P=C3=A9ter=20Szil=C3=A1gyi?= Date: Tue, 9 Jun 2015 17:19:56 +0300 Subject: jsre: sort pretty print output, fields before funcs --- jsre/pp_js.go | 23 ++++++++++++++++++++--- 1 file changed, 20 insertions(+), 3 deletions(-) diff --git a/jsre/pp_js.go b/jsre/pp_js.go index 4e0a04f83..e5e52b1a2 100644 --- a/jsre/pp_js.go +++ b/jsre/pp_js.go @@ -70,15 +70,32 @@ var redundantFields = [ ]; var getFields = function (object) { - var result = Object.getOwnPropertyNames(object); + var members = Object.getOwnPropertyNames(object); if (object.constructor && object.constructor.prototype) { - result = result.concat(Object.getOwnPropertyNames(object.constructor.prototype)); + members = members.concat(Object.getOwnPropertyNames(object.constructor.prototype)); } - return result.filter(function (field) { + + var fields = members.filter(function (member) { + return !isMemberFunction(object, member) + }).sort() + var funcs = members.filter(function (member) { + return isMemberFunction(object, member) + }).sort() + + var results = fields.concat(funcs); + return results.filter(function (field) { return redundantFields.indexOf(field) === -1; }); }; +var isMemberFunction = function(object, member) { + try { + return typeof(object[member]) === "function"; + } catch(e) { + return false; + } +} + var isBigNumber = function (object) { return typeof BigNumber !== 'undefined' && object instanceof BigNumber; }; -- cgit v1.2.3 From d6f4c515f5a1fa8818bb82beff24f179a9162b0b Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?P=C3=A9ter=20Szil=C3=A1gyi?= Date: Tue, 9 Jun 2015 17:23:44 +0300 Subject: jsre: print function arguments too --- jsre/pp_js.go | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/jsre/pp_js.go b/jsre/pp_js.go index e5e52b1a2..20821e4a1 100644 --- a/jsre/pp_js.go +++ b/jsre/pp_js.go @@ -49,7 +49,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" + object.toString().split(" {")[0]; } else { str += object; } -- cgit v1.2.3