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: [PATCH] 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; };