| <html> |
| <head> |
| <script> |
| |
| function print(message, color) { |
| var paragraph = document.createElement("p"); |
| if (color) |
| paragraph.style.color = color; |
| paragraph.appendChild(document.createTextNode(message)); |
| document.getElementById("console").appendChild(paragraph); |
| } |
| |
| function printPrototypes(e) |
| { |
| var a = new Array(); |
| for (p = e.__proto__; p != null; p = p.__proto__) { |
| a.push(p); |
| } |
| |
| print("----- " + e + " (" + a.length + " prototypes) -----", "blue"); |
| // Print back-to-front so the root of the chain comes out on top |
| for (var i = a.length - 1; i >= 0; i--) { /* > */ |
| print(a[i]); |
| } |
| } |
| |
| function test() |
| { |
| if (window.testRunner) |
| testRunner.dumpAsText(); |
| |
| var e; |
| |
| e = document; |
| printPrototypes(e); |
| |
| e = document.getElementById("div"); |
| printPrototypes(e); |
| |
| e = document.createElement("form"); |
| printPrototypes(e); |
| |
| e = document.createEvent("UIEvents"); |
| printPrototypes(e); |
| |
| e = document.createEvent("MouseEvents"); |
| printPrototypes(e); |
| |
| e = document.createEvent("KeyboardEvents"); |
| printPrototypes(e); |
| |
| } |
| |
| </script> |
| </head> |
| <body onload="test()"> |
| <p>This page prints out the prototype chains of select DOM objects. Older versions of WebCore didn't |
| properly implement prototype chaining for these objects.</p> |
| <p>NOTE: This test will start failing if you change the layout of a related prototype chain in WebCore. |
| That does not necessarily mean that you have done something wrong; you may just need to check in new |
| results.</p> |
| <hr> |
| <div id="console"></div> |
| <div id="div"></div> |
| </body> |
| </html> |