| OLD | NEW |
| 1 <script src="../../js/resources/js-test-pre.js"></script> | 1 <script src="../../js/resources/js-test-pre.js"></script> |
| 2 <script> | 2 <script> |
| 3 window.jsTestIsAsync = true; | 3 window.jsTestIsAsync = true; |
| 4 description('Clearing transient observers after observation node is GCed should
not cause a crash.'); | 4 description('Clearing transient observers after observation node is GCed should
not cause a crash.'); |
| 5 | 5 |
| 6 function callback(mutations) { | 6 function callback(mutations) { |
| 7 window.mutations = mutations; | 7 window.mutations = mutations; |
| 8 } | 8 } |
| 9 var observer = new MutationObserver(callback); | 9 var observer = new MutationObserver(callback); |
| 10 | 10 |
| 11 var div = document.createElement('div'); | 11 var div = document.createElement('div'); |
| 12 var span = div.appendChild(document.createElement('span')); | 12 var span = div.appendChild(document.createElement('span')); |
| 13 observer.observe(div, {attributes: true, subtree: true}); | 13 observer.observe(div, {attributes: true, subtree: true}); |
| 14 div.removeChild(span); | 14 div.removeChild(span); |
| 15 div = null; | 15 div = null; |
| 16 gc(); | 16 gc(); |
| 17 span.setAttribute('foo', 'bar'); | 17 span.setAttribute('foo', 'bar'); |
| 18 setTimeout(function() { | 18 setTimeout(function() { |
| 19 shouldBe('mutations.length', '1'); | 19 shouldBe('mutations.length', '1'); |
| 20 finishJSTest(); | 20 finishJSTest(); |
| 21 }, 0); | 21 }, 0); |
| 22 </script> | 22 </script> |
| 23 <script src="../../js/resources/js-test-post.js"></script> | |
| OLD | NEW |