| OLD | NEW |
| 1 <html> | 1 <html> |
| 2 <link rel="import" href="../resources/chai.sky" /> | 2 <import src="../resources/chai.sky" /> |
| 3 <link rel="import" href="../resources/mocha.sky" /> | 3 <import src="../resources/mocha.sky" /> |
| 4 <script> | 4 <script> |
| 5 describe('MutationObserver wrappers', function() { | 5 describe('MutationObserver wrappers', function() { |
| 6 it('should survive GC for passing into the callback even if JS has lost refe
rences and the only remaining observations are transient.', function(done) { | 6 it('should survive GC for passing into the callback even if JS has lost refe
rences and the only remaining observations are transient.', function(done) { |
| 7 function addObserver(node, fn) { | 7 function addObserver(node, fn) { |
| 8 var observer = new MutationObserver(fn); | 8 var observer = new MutationObserver(fn); |
| 9 observer.testProperty = true; | 9 observer.testProperty = true; |
| 10 observer.observe(node, {attributes:true, subtree: true}); | 10 observer.observe(node, {attributes:true, subtree: true}); |
| 11 } | 11 } |
| 12 | 12 |
| 13 var root = document.createElement('div'); | 13 var root = document.createElement('div'); |
| 14 var child = root.appendChild(document.createElement('span')); | 14 var child = root.appendChild(document.createElement('span')); |
| 15 addObserver(root, function(records, observer) { | 15 addObserver(root, function(records, observer) { |
| 16 window.observer = observer; | 16 window.observer = observer; |
| 17 assert.ok(observer.testProperty); | 17 assert.ok(observer.testProperty); |
| 18 done(); | 18 done(); |
| 19 }); | 19 }); |
| 20 | 20 |
| 21 root.removeChild(child); | 21 root.removeChild(child); |
| 22 child.setAttribute('foo', 'bar'); | 22 child.setAttribute('foo', 'bar'); |
| 23 root = null; | 23 root = null; |
| 24 | 24 |
| 25 gc(); | 25 gc(); |
| 26 }); | 26 }); |
| 27 }); | 27 }); |
| 28 </script> | 28 </script> |
| 29 </html> | 29 </html> |
| OLD | NEW |