diff options
author | obscuren <geffobscura@gmail.com> | 2015-03-25 19:44:41 +0800 |
---|---|---|
committer | obscuren <geffobscura@gmail.com> | 2015-03-25 19:44:41 +0800 |
commit | a1cae93d78d7c0b7b0f69ca2439b2048a51933e7 (patch) | |
tree | 0833e7334075044b3c50d8bf97ce08b33ac704ea /jsre | |
parent | 6431d088ad511a8250741a531fd137592e687fc7 (diff) | |
download | go-tangerine-a1cae93d78d7c0b7b0f69ca2439b2048a51933e7.tar.gz go-tangerine-a1cae93d78d7c0b7b0f69ca2439b2048a51933e7.tar.zst go-tangerine-a1cae93d78d7c0b7b0f69ca2439b2048a51933e7.zip |
Improved pretty printer for console
Diffstat (limited to 'jsre')
-rw-r--r-- | jsre/pp_js.go | 29 |
1 files 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; } |