48 lines
1.8 KiB
HTML
48 lines
1.8 KiB
HTML
<!DOCTYPE html>
|
|
<html>
|
|
<body>
|
|
<script src="../../resources/js-test-pre.js"></script>
|
|
<div id="testDiv">
|
|
<p name="toString" id="toStringP"></p>
|
|
<p name="length" id="lengthP"></p>
|
|
<p name="foo" id="fooP"></p>
|
|
<p name="0" id="0P"></p>
|
|
</div>
|
|
<script>
|
|
description("Tests that the behavior of HTMLCollection's [[GetOwnProperty]] conforms to Web IDL");
|
|
|
|
var testDiv = document.getElementById("testDiv");
|
|
var htmlCollection = testDiv.children;
|
|
|
|
debug("* Named properties should not mask properties on the prototype");
|
|
shouldBe("htmlCollection.namedItem('toString')", "document.getElementById('toStringP')");
|
|
shouldBe("htmlCollection.toString", "HTMLCollection.prototype.toString");
|
|
|
|
debug("");
|
|
debug("* Named properties should not mask static properties on HTMLCollection");
|
|
shouldBe("htmlCollection.namedItem('length')", "document.getElementById('lengthP')");
|
|
shouldBe("htmlCollection.length", "4");
|
|
|
|
debug("");
|
|
debug("* Named properties should not mask own properties on HTMLCollection");
|
|
evalAndLog("htmlCollection.foo = 'foo'");
|
|
shouldBe("htmlCollection.namedItem('foo')", "document.getElementById('fooP')")
|
|
shouldBeEqualToString("htmlCollection.foo", "foo");
|
|
|
|
debug("");
|
|
debug("* Named properties should not mask indexed properties");
|
|
shouldBe("htmlCollection.item(0)", "testDiv.firstElementChild");
|
|
shouldBe("htmlCollection[0]", "testDiv.firstElementChild");
|
|
shouldBe("htmlCollection.namedItem('0')", "document.getElementById('0P')");
|
|
shouldBe("htmlCollection['0']", "testDiv.firstElementChild");
|
|
|
|
debug("");
|
|
debug("* Own properties on HTMLCollection should mask properties on prototype");
|
|
evalAndLog("htmlCollection.toString = 'InstanceToString'");
|
|
shouldBeEqualToString("htmlCollection.toString", "InstanceToString");
|
|
|
|
</script>
|
|
<script src="../../resources/js-test-post.js"></script>
|
|
</body>
|
|
</html>
|