<!doctype html>
<meta charset="utf-8">
<title>Interface objects</title>
<script src="/resources/testharness.js"></script>
<script src="/resources/testharnessreport.js"></script>
<script>
test(function () {
    assert_equals(typeof window.Blob, "function")
    delete window.Blob;
    assert_equals(window.Blob, undefined);
}, "An interface object deleted after it has been accessed is undefined");

test(function () {
    delete window.File;
    assert_equals(window.File, undefined);
}, "An interface object deleted before it has been defined is undefined");

test(function () {
    delete window.ImageData;
    assert_equals(Object.getOwnPropertyDescriptor(window, "ImageData"), undefined);
    delete window.ImageData;
    assert_equals(Object.getOwnPropertyDescriptor(window, "ImageData"), undefined);
}, "Interface objects deleted multiple times stay deleted");

test(function () {
    assert_equals(window["abc\udc88"], undefined);
}, "Fancy property names don't break the resolve hook on Window");
</script>
