aboutsummaryrefslogtreecommitdiff
path: root/src/runtime.js
diff options
context:
space:
mode:
authorAlon Zakai <alonzakai@gmail.com>2012-04-28 11:10:17 -0700
committerAlon Zakai <alonzakai@gmail.com>2012-04-28 11:10:17 -0700
commit45d77d16d66e25b3d90b259169e344124ce7049a (patch)
tree511eab7b0d54535184c7ade41c393ea3271c4a2b /src/runtime.js
parent2409d22cf630a3a6a89f40b7583ea62e8461b572 (diff)
make debug prettyPrint more accurate on object identities
Diffstat (limited to 'src/runtime.js')
-rw-r--r--src/runtime.js11
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 + ')';