33 lines
1.1 KiB
HTML
33 lines
1.1 KiB
HTML
<!DOCTYPE html>
|
|
<html>
|
|
<body>
|
|
<script src="../../resources/js-test.js"></script>
|
|
<iframe id="testFrame" src="about:blank"></iframe>
|
|
<script>
|
|
description("Tests that Window properties do not get GC'd before their Window.");
|
|
jsTestIsAsync = true;
|
|
|
|
var windowProperties = ["applicationCache", "history", "location", "locationbar", "menubar", "navigator", "personalbar", "screen", "scrollbars", "statusbar", "toolbar" ];
|
|
|
|
onload = function() {
|
|
frameWindow = document.getElementById("testFrame").contentWindow;
|
|
for (let windowProperty of windowProperties)
|
|
eval("frameWindow." + windowProperty + ".foo = 1;");
|
|
document.getElementById("testFrame").remove();
|
|
for (let windowProperty of windowProperties)
|
|
shouldBe("frameWindow." + windowProperty + ".foo", "1");
|
|
debug("");
|
|
gc();
|
|
for (let windowProperty of windowProperties)
|
|
shouldBe("frameWindow." + windowProperty + ".foo", "1");
|
|
debug("");
|
|
setTimeout(() => {
|
|
gc();
|
|
for (let windowProperty of windowProperties)
|
|
shouldBe("frameWindow." + windowProperty + ".foo", "1");
|
|
finishJSTest();
|
|
}, 10);
|
|
}
|
|
</script>
|
|
</body>
|