@@ -26,19 +26,19 @@ function pp(object, indent) {
26
26
} else if(typeof(object) === "object") {
27
27
str += "{\n";
28
28
indent += " ";
29
- var last = getFields(object).pop()
30
- getFields(object).forEach(function (k) {
31
- str += indent + k + ": ";
29
+
30
+ var fields = getFields(object);
31
+ var last = fields[fields.length - 1];
32
+ fields.forEach(function (key) {
33
+ str += indent + key + ": ";
32
34
try {
33
- str += pp(object[k ], indent);
35
+ str += pp(object[key ], indent);
34
36
} catch (e) {
35
37
str += pp(e, indent);
36
38
}
37
-
38
- if(k !== last) {
39
+ if(key !== last) {
39
40
str += ",";
40
41
}
41
-
42
42
str += "\n";
43
43
});
44
44
str += indent.substr(2, indent.length) + "}";
@@ -49,7 +49,7 @@ function pp(object, indent) {
49
49
} else if(typeof(object) === "number") {
50
50
str += "\033[31m" + object;
51
51
} else if(typeof(object) === "function") {
52
- str += "\033[35m[Function]" ;
52
+ str += "\033[35m" + object.toString().split(" {")[0] ;
53
53
} else {
54
54
str += object;
55
55
}
@@ -70,15 +70,32 @@ var redundantFields = [
70
70
];
71
71
72
72
var getFields = function (object) {
73
- var result = Object.getOwnPropertyNames(object);
73
+ var members = Object.getOwnPropertyNames(object);
74
74
if (object.constructor && object.constructor.prototype) {
75
- result = result .concat(Object.getOwnPropertyNames(object.constructor.prototype));
75
+ members = members .concat(Object.getOwnPropertyNames(object.constructor.prototype));
76
76
}
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) {
78
87
return redundantFields.indexOf(field) === -1;
79
88
});
80
89
};
81
90
91
+ var isMemberFunction = function(object, member) {
92
+ try {
93
+ return typeof(object[member]) === "function";
94
+ } catch(e) {
95
+ return false;
96
+ }
97
+ }
98
+
82
99
var isBigNumber = function (object) {
83
100
return typeof BigNumber !== 'undefined' && object instanceof BigNumber;
84
101
};
0 commit comments