34 lines
932 B
HTML
34 lines
932 B
HTML
<!DOCTYPE html>
|
|
|
|
<script src="../../../resources/js-test-pre.js"></script>
|
|
|
|
<script>
|
|
description('MutationObserver wrappers should survive GC for passing into the callback even if JS has lost references and the only remaining observations are transient.');
|
|
|
|
jsTestIsAsync = true;
|
|
|
|
function addObserver(node, fn) {
|
|
var observer = new MutationObserver(fn);
|
|
observer.testProperty = true;
|
|
observer.observe(node, {attributes:true, subtree: true});
|
|
}
|
|
|
|
onload = function() {
|
|
var root = document.createElement('div');
|
|
var child = root.appendChild(document.createElement('span'));
|
|
addObserver(root, function(records, observer) {
|
|
window.observer = observer;
|
|
shouldBe('observer.testProperty', 'true');
|
|
finishJSTest();
|
|
});
|
|
|
|
root.removeChild(child);
|
|
child.setAttribute('foo', 'bar');
|
|
root = null;
|
|
|
|
gc();
|
|
};
|
|
</script>
|
|
|
|
<script src="../../../resources/js-test-post.js"></script>
|