//////////////////////// traceProtoChain 1.10 //////////////////////// // Sep. 18th 2002 Tatsuo Kato ////////////////////////////////////////////////////////////////////// /* A debug utility that allows to trace out properties in an object and its each __proto__ in its __proto__ chain respectively. Usage 1: Object.prototype.x = 8; myObj = {x : 5}; traceProtoChain(myObj); The output would be: x : (number) 5 x : (number) 8 Usage 2: traceProtoChain(myMC, true); //'true' exposes the built-in hidden properties. */ _global.traceProtoChain = function(o, bUnhide) { var sChain = ""; while (o) { if (bUnhide) { ASSetPropFlags(o, null, 0, true); } if (o.__proto__) { var temp = o.__proto__; o.__proto__ = undefined; } trace(""); for (var i in o) { if (bUnhide && i == "__proto__") { continue; } trace("\t" + i + " : " + "(" + typeof o[i] + ") " + o[i]); } if (temp) { o.__proto__ = temp; temp = false; } o = o.__proto__; sChain += ".__proto__"; } };