| <svg xmlns="http://www.w3.org/2000/svg" onload="load()"> |
| This test passes if it doesn't crash when run under gmalloc. |
| <rect x="10" y="10" width="100" height="100" fill="green"/> |
| <text x="50" y="50" id="log"/> |
| <script> |
| <![CDATA[ |
| function log(message) { |
| var logDiv = document.getElementById('log'); |
| logDiv.appendChild(document.createTextNode(message)); |
| } |
| |
| function load() { |
| if (window.testRunner && window.GCController && window.internals) |
| testRunner.dumpAsText(); |
| else { |
| log("This test only works when run with the testRunner, GCController, and internals available."); |
| return; |
| } |
| |
| var rect = document.getElementsByTagName("rect")[0]; |
| var baseValReference = rect.x.baseVal; |
| |
| // Collect garbage before recording starting live node count, in case there are live elements from previous tests. |
| GCController.collect(); |
| var originalLiveElements = window.internals.numberOfLiveNodes(); |
| |
| rect.parentNode.removeChild(rect); |
| rect = 0; |
| |
| GCController.collect(); |
| |
| // The rest of this test should FAIL without requiring gmalloc if this test has regressed. |
| var liveDelta = window.internals.numberOfLiveNodes() - originalLiveElements; |
| |
| // Make sure that the <rect> is still alive; if it's not, liveDelta will be -1. |
| if (liveDelta == 0) |
| log(" PASS"); |
| else |
| log(" FAIL: " + liveDelta + " extra live node(s)"); |
| |
| // This line will crash with gmalloc if this test has regressed. |
| log(" x = " + baseValReference.value); |
| } |
| ]]> |
| </script> |
| </svg> |