diff --git a/jsre/pp_js.go b/jsre/pp_js.go
index 0b22afe6d3758c77150e926f98f47d16890a74d9..3c0de37e5667d9b4d8375a5b04199bf1f2e95724 100644
--- a/jsre/pp_js.go
+++ b/jsre/pp_js.go
@@ -30,8 +30,8 @@ function pp(object, indent) {
     } else if(typeof(object) === "object") {
         str += "{\n";
         indent += "  ";
-        var last = Object.getOwnPropertyNames(object).pop()
-        Object.getOwnPropertyNames(object).forEach(function (k) {
+        var last = getFields(object).pop()
+        getFields(object).forEach(function (k) {
             str += indent + k + ": ";
             try {
                 str += pp(object[k], indent);
@@ -63,11 +63,18 @@ function pp(object, indent) {
     return str;
 }
 
+var getFields = function (object) {
+    var result = Object.getOwnPropertyNames(object);
+    if (object.constructor && object.constructor.prototype) {
+        result = result.concat(Object.getOwnPropertyNames(object.constructor.prototype));
+    }
+    return result;
+};
+
 var isBigNumber = function (object) {
     return typeof BigNumber !== 'undefined' && object instanceof BigNumber;
 };
 
-
 function prettyPrint(/* */) {
     var args = arguments;
     var ret = "";