blob: 30465437c5d637dbcd06191e68e572b8bc1a1192 [file] [log] [blame]
<html>
<import src="../resources/chai.sky" />
<import src="../resources/mocha.sky" />
<script>
describe('MutationObserver wrappers', function() {
it('should survive GC for passing into the callback even if JS has lost references and the only remaining observations are transient.', function(done) {
function addObserver(node, fn) {
var observer = new MutationObserver(fn);
observer.testProperty = true;
observer.observe(node, {attributes:true, subtree: true});
}
var root = document.createElement('div');
var child = root.appendChild(document.createElement('span'));
addObserver(root, function(records, observer) {
window.observer = observer;
assert.ok(observer.testProperty);
done();
});
root.removeChild(child);
child.setAttribute('foo', 'bar');
root = null;
gc();
});
});
</script>
</html>