<!DOCTYPE HTML>
<html>
<head>
<title>Null frame access tests</title>
<script src="../../../resources/testharness.js"></script>
<script src="../../../resources/testharnessreport.js"></script>
</head>
<body>
<iframe></iframe/>
<script>
window[0].test = 'abc';
window[0][20] = 123;
var childWindow = window[0];
window[0].frameElement.remove();
test(function() {
// Removing the owner element from the DOM should null the frame. In Blink,
// this can be observed by checking childWindow.parent == null.
assert_equals(childWindow.parent, null);
assert_equals(childWindow.test, 'abc');
}, 'Named property access on detached Window');
test(function() {
// Removing the owner element from the DOM should null the frame. In Blink,
// this can be observed by checking childWindow.parent == null.
assert_equals(childWindow.parent, null);
assert_equals(childWindow[20], '123', 'Indexed property should still be accessible.');
}, 'Indexed property access on detached Window');
test(function() {
// Removing the owner element from the DOM should null the frame. In Blink,
// this can be observed by checking childWindow.parent == null.
assert_equals(childWindow.parent, null);
// TODO(dcheng): Why does this return null?
assert_equals(childWindow.Comment, undefined, 'Interface Object should be gone.');
}, 'Interface Object access on detached Window');
</script>
</body>
</html>