64 lines
1.7 KiB
HTML
64 lines
1.7 KiB
HTML
<!DOCTYPE html>
|
|
<html>
|
|
<body>
|
|
<div id="testElements">
|
|
<form>
|
|
<input type="text" name="some">
|
|
<input type="text" name="length">
|
|
</form>
|
|
<form>
|
|
<select>
|
|
<option name="length">
|
|
<option name="some">
|
|
</select>
|
|
</form>
|
|
<table>
|
|
<tbody>
|
|
<tr id="another"><td></td></tr>
|
|
<tr id="length"><td></td></tr>
|
|
</tbody>
|
|
</table>
|
|
</div>
|
|
<script>
|
|
|
|
// We need to pre-fetch these values since including the script element inserts new elements.
|
|
documentAllLength = document.all.length;
|
|
documentAllSome = document.all['some'];
|
|
documentAll5 = document.all[5];
|
|
documentAll6 = document.all[6];
|
|
|
|
</script>
|
|
<script src="../../resources/js-test-pre.js"></script>
|
|
<script>
|
|
|
|
description("This test ensures the builtin length property of HTMLCollection's subclasses is not overridden by a named getter of the same name.");
|
|
|
|
var form = document.forms[0];
|
|
var select = document.querySelector('select');
|
|
var table = document.querySelector('table');
|
|
shouldBe("documentAllLength", "18");
|
|
shouldBe("documentAll5", "documentAllSome");
|
|
shouldBe("documentAll6.name", "'length'");
|
|
|
|
shouldBe("form.length", "form.elements[1]");
|
|
shouldBe("form.elements.length", "2");
|
|
shouldBe("form.elements[0]", "form.elements['some']");
|
|
shouldBe("form.elements[1].name", "'length'");
|
|
|
|
shouldBe("select.options.length", "2");
|
|
shouldBe("select.options[0].getAttribute('name')", "'length'");
|
|
shouldBe("select.options[1]", "select.options['some']");
|
|
|
|
shouldBe("table.rows.length", "2");
|
|
shouldBe("table.rows[0]", "table.rows['another']");
|
|
shouldBe("table.rows[1].id", "'length'");
|
|
|
|
document.getElementById('testElements').style.display = 'none';
|
|
|
|
var successfullyParsed = true;
|
|
|
|
</script>
|
|
<script src="../../resources/js-test-post.js"></script>
|
|
</body>
|
|
</html>
|