From a1cae93d78d7c0b7b0f69ca2439b2048a51933e7 Mon Sep 17 00:00:00 2001 From: obscuren Date: Wed, 25 Mar 2015 12:44:41 +0100 Subject: [PATCH] Improved pretty printer for console --- jsre/pp_js.go | 29 +++++++++++++++++++++-------- 1 file changed, 21 insertions(+), 8 deletions(-) diff --git a/jsre/pp_js.go b/jsre/pp_js.go index fd80ae68b..f06a4bb51 100644 --- a/jsre/pp_js.go +++ b/jsre/pp_js.go @@ -1,30 +1,43 @@ package jsre const pp_js = ` -function pp(object) { +function pp(object, indent) { var str = ""; + /* + var o = object; + try { + object = JSON.stringify(object) + object = JSON.parse(object); + } catch(e) { + object = o; + } + */ if(object instanceof Array) { - str += "[ "; + str += "["; for(var i = 0, l = object.length; i < l; i++) { - str += pp(object[i]); + str += pp(object[i], indent); if(i < l-1) { str += ", "; } } str += " ]"; + } else if(object instanceof BigNumber) { + return pp(object.toString(), indent); } else if(typeof(object) === "object") { - str += "{ "; + str += "{\n"; + indent += " "; var last = Object.keys(object).pop() for(var k in object) { - str += k + ": " + pp(object[k]); + str += indent + k + ": " + pp(object[k], indent); if(k !== last) { - str += ", "; + str += ","; } + str += "\n"; } - str += " }"; + str += indent.substr(2, indent.length) + "}"; } else if(typeof(object) === "string") { str += "\033[32m'" + object + "'"; } else if(typeof(object) === "undefined") { @@ -46,7 +59,7 @@ function prettyPrint(/* */) { var args = arguments; var ret = ""; for(var i = 0, l = args.length; i < l; i++) { - ret += pp(args[i]) + "\n"; + ret += pp(args[i], "") + "\n"; } return ret; }