<!DOCTYPE html>
<html>
<body>
<script src="../../resources/js-test-pre.js"></script>
<script>
description("The 'name' property on interface objects should have attributes { [[Writable]]: false, [[Enumerable]]: false, [[Configurable]]: true }");

debug("* Event");
var descriptor = Object.getOwnPropertyDescriptor(Event, "name");
shouldBeFalse("descriptor.writable");
shouldBeFalse("descriptor.enumerable");
shouldBeTrue("descriptor.configurable");
shouldBeEqualToString("descriptor.value", "Event");

debug("* Element");
var descriptor = Object.getOwnPropertyDescriptor(Element, "name");
shouldBeFalse("descriptor.writable");
shouldBeFalse("descriptor.enumerable");
shouldBeTrue("descriptor.configurable");
shouldBeEqualToString("descriptor.value", "Element");

debug("* Document");
var descriptor = Object.getOwnPropertyDescriptor(Document, "name");
shouldBeFalse("descriptor.writable");
shouldBeFalse("descriptor.enumerable");
shouldBeTrue("descriptor.configurable");
shouldBeEqualToString("descriptor.value", "Document");

debug("* Window");
var descriptor = Object.getOwnPropertyDescriptor(Window, "name");
shouldBeFalse("descriptor.writable");
shouldBeFalse("descriptor.enumerable");
shouldBeTrue("descriptor.configurable");
shouldBeEqualToString("descriptor.value", "Window");

debug("* HTMLOptionElement");
var descriptor = Object.getOwnPropertyDescriptor(HTMLOptionElement, "name");
shouldBeFalse("descriptor.writable");
shouldBeFalse("descriptor.enumerable");
shouldBeTrue("descriptor.configurable");
shouldBeEqualToString("descriptor.value", "HTMLOptionElement");

debug("* Option");
var descriptor = Object.getOwnPropertyDescriptor(Option, "name");
shouldBeFalse("descriptor.writable");
shouldBeFalse("descriptor.enumerable");
shouldBeTrue("descriptor.configurable");
shouldBeEqualToString("descriptor.value", "Option");
</script>
<script src="../../resources/js-test-post.js"></script>
</body>
</html>
