Chromium Code Reviews| OLD | NEW |
|---|---|
| (Empty) | |
| 1 <!DOCTYPE html> | |
| 2 <script src="../resources/testharness.js"></script> | |
| 3 <script src="../resources/testharnessreport.js"></script> | |
| 4 <script src="../resources/gc.js"></script> | |
| 5 | |
| 6 <div id="root"></div> | |
| 7 <div id="target"></div> | |
| 8 | |
| 9 <script> | |
| 10 // Initialize observer and remove root in an inner function to avoid | |
| 11 // references to rootDiv remaining live on this function's stack frame | |
| 12 // (http://crbug.com/595672/). | |
| 13 function initializeObserverThenRemoveRootDiv() { | |
| 14 let rootDiv = document.getElementById("root"); | |
| 15 let observer = new IntersectionObserver(c => {}, {root: rootDiv}); | |
| 16 rootDiv.parentNode.removeChild(rootDiv); | |
|
foolip
2017/01/11 13:42:53
You can use rootDiv.remove() if you like.
szager1
2017/01/23 23:18:03
Done.
| |
| 17 return observer; | |
| 18 } | |
| 19 | |
| 20 var target = document.getElementById("target"); | |
| 21 var observer = initializeObserverThenRemoveRootDiv(); | |
| 22 gc(); | |
| 23 | |
| 24 test(function() { | |
| 25 assert_throws("INVALID_STATE_ERR", function() { | |
|
foolip
2017/01/11 13:42:53
https://wicg.github.io/IntersectionObserver/#dom-i
szager1
2017/01/23 23:18:03
Yeah, there was a separate bug filed about the fac
| |
| 26 observer.observe(target); | |
| 27 }) | |
| 28 }, "IntersectionObserver.observe() with a deleted root did not throw."); | |
|
foolip
2017/01/11 13:42:53
A bit of personal preference here, but the "did no
szager1
2017/01/23 23:18:03
Done.
| |
| 29 | |
| 30 test(function() { | |
| 31 assert_throws("INVALID_STATE_ERR", function() { | |
| 32 observer.observe(target); | |
| 33 }) | |
| 34 }, "IntersectionObserver.observe() with a deleted root did not throw."); | |
| 35 | |
| 36 test(function() { | |
| 37 assert_throws("INVALID_STATE_ERR", function() { | |
| 38 observer.unobserve(target); | |
| 39 }) | |
| 40 }, "IntersectionObserver.unobserve() with a deleted root did not throw."); | |
| 41 | |
| 42 test(function() { | |
| 43 assert_throws("INVALID_STATE_ERR", function() { | |
| 44 observer.disconnect(); | |
| 45 }) | |
| 46 }, "IntersectionObserver.disconnect() with a deleted root did not throw."); | |
| 47 | |
| 48 test(function() { | |
| 49 assert_throws("INVALID_STATE_ERR", function() { | |
| 50 observer.takeRecords(); | |
| 51 }) | |
| 52 }, "IntersectionObserver.takeRecords() with a deleted root did not throw."); | |
| 53 </script> | |
| OLD | NEW |