Skip to content

Commit 7842559

Browse files
committed
jsre: sort pretty print output, fields before funcs
1 parent 3f4ce70 commit 7842559

File tree

1 file changed

+20
-3
lines changed

1 file changed

+20
-3
lines changed

jsre/pp_js.go

Lines changed: 20 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -70,15 +70,32 @@ var redundantFields = [
7070
];
7171
7272
var getFields = function (object) {
73-
var result = Object.getOwnPropertyNames(object);
73+
var members = Object.getOwnPropertyNames(object);
7474
if (object.constructor && object.constructor.prototype) {
75-
result = result.concat(Object.getOwnPropertyNames(object.constructor.prototype));
75+
members = members.concat(Object.getOwnPropertyNames(object.constructor.prototype));
7676
}
77-
return result.filter(function (field) {
77+
78+
var fields = members.filter(function (member) {
79+
return !isMemberFunction(object, member)
80+
}).sort()
81+
var funcs = members.filter(function (member) {
82+
return isMemberFunction(object, member)
83+
}).sort()
84+
85+
var results = fields.concat(funcs);
86+
return results.filter(function (field) {
7887
return redundantFields.indexOf(field) === -1;
7988
});
8089
};
8190
91+
var isMemberFunction = function(object, member) {
92+
try {
93+
return typeof(object[member]) === "function";
94+
} catch(e) {
95+
return false;
96+
}
97+
}
98+
8299
var isBigNumber = function (object) {
83100
return typeof BigNumber !== 'undefined' && object instanceof BigNumber;
84101
};

0 commit comments

Comments
 (0)