<!DOCTYPE html>

<script src="../../../resources/js-test.js"></script>

<script>
description('MutationObserver wrappers should survive GC for passing into the callback even if JS has lost references.');

jsTestIsAsync = true;

function addObserver(node, fn) {
    var observer = new MutationObserver(fn);
    observer.testProperty = true;
    observer.observe(node, {attributes:true});
}

window.addEventListener("load", function() {
    addObserver(document.body, function(records, observer) {
        window.observer = observer;
        shouldBe('observer.testProperty', 'true');
        finishJSTest();
    });

    gc();

    document.body.setAttribute('touch', 'the node');
});
</script>

