blob: d56187bc0533c8847a5e7ae77a586c1be23e4264 [file] [log] [blame]
<!DOCTYPE html>
<html>
<body>
<script src="../../resources/js-test-pre.js"></script>
<script>
description("Checks that [Unforgeable] attributes are non-configurable and on the instance rather than the prototype.");
function testProperty(object, propertyName)
{
testObject = object;
testPropertyName = propertyName;
if (testObject[propertyName] === undefined) {
testFailed("Unsupported property.");
return;
}
shouldBeTrue("testObject.hasOwnProperty(testPropertyName)");
shouldBeFalse("testObject.__proto__.hasOwnProperty(testPropertyName)");
shouldThrow("Object.defineProperty(testObject, testPropertyName, { value: 'test' })");
shouldBeFalse("Object.getOwnPropertyDescriptor(testObject, testPropertyName).configurable");
}
// DOM specification.
debug("Event.isTrusted");
var event = new Event("test");
testProperty(event, "isTrusted");
// HTML specification.
debug("");
debug("Document.location");
testProperty(document, "location");
for (var property of ["window", "document", "location", "top"]) {
debug("");
debug("Window." + property);
testProperty(window, property);
}
for (var property of ["ancestorOrigins", "href", "origin", "protocol", "username", "password", "host", "hostname", "port", "pathname", "search", "hash"]) {
debug("");
debug("Location." + property);
testProperty(window.location, property);
}
</script>
<script src="../../resources/js-test-post.js"></script>
</body>
</html>