diff options
author | Alon Zakai <alonzakai@gmail.com> | 2012-04-28 11:10:17 -0700 |
---|---|---|
committer | Alon Zakai <alonzakai@gmail.com> | 2012-04-28 11:10:17 -0700 |
commit | 45d77d16d66e25b3d90b259169e344124ce7049a (patch) | |
tree | 511eab7b0d54535184c7ade41c393ea3271c4a2b /src | |
parent | 2409d22cf630a3a6a89f40b7583ea62e8461b572 (diff) |
make debug prettyPrint more accurate on object identities
Diffstat (limited to 'src')
-rw-r--r-- | src/runtime.js | 11 |
1 files changed, 5 insertions, 6 deletions
diff --git a/src/runtime.js b/src/runtime.js index 7768574b..9b52bbe4 100644 --- a/src/runtime.js +++ b/src/runtime.js @@ -318,14 +318,13 @@ var Runtime = { #if RUNTIME_DEBUG debug: true, // Switch to false at runtime to disable logging at the right times - printObjectMap: null, - printObjectCounter: 1, + printObjectList: [], prettyPrint: function(arg) { - if (!Runtime.printObjectMap) Runtime.printObjectMap = new WeakMap(); if (typeof arg == 'undefined') return '!UNDEFINED!'; if (!arg) return arg; - if (Runtime.printObjectMap[arg]) return '<' + arg + '|' + Runtime.printObjectMap[arg] + '>'; + var index = Runtime.printObjectList.indexOf(arg); + if (index >= 0) return '<' + arg + '|' + index + '>'; if (arg.toString() == '[object HTMLImageElement]') { return arg + '\n\n'; } @@ -357,8 +356,8 @@ var Runtime = { return ret; } if (typeof arg == 'object') { - Runtime.printObjectMap[arg] = Runtime.printObjectCounter++; - return '<' + arg + '|' + Runtime.printObjectMap[arg] + '>'; + Runtime.printObjectList.push(arg); + return '<' + arg + '|' + (Runtime.printObjectList.length-1) + '>'; } if (typeof arg == 'number') { if (arg > 0) return '0x' + arg.toString(16) + ' (' + arg + ')'; |