netsurf/test/js/verify-instanceofness.html

41 lines
1.2 KiB
HTML

<html>
<head><title>Verify instanceof checking</title></head>
<body>
<h1>Check instanceof behaviour</h1>
<table cellpadding=2 border=1>
<tr><th>A</th><th>instanceof</th><th>B</th><th>?</th><th>Correct?</th></tr>
<script>
var checks = [
[ "window", "Window", true ],
[ "document", "HTMLDocument", true ],
[ "document.head", "Node", true ],
[ "document.getElementsByTagName(\"body\")", "HTMLCollection", true ],
[ "document.body", "Window", false ],
[ "EventListener", "Object", undefined ],
];
for (var _check in checks) {
var check = checks[_check];
document.write("<tr>");
document.write("<td>" + check[0] + "</td><td>instanceof</td><td>" + check[1] + "</td>");
try {
var A = eval(check[0]);
var B = eval(check[1]);
var C = check[2];
var V = A instanceof B;
var OK = V == C;
document.write("<td>" + V + "</td><td>" + (OK ? "YES" : "<b style=\"color: red\">NO</b>") + "</td>");
} catch (e) {
if (check[2] == undefined) {
document.write("<td>" + e + "</td><td>YES</td>");
} else {
document.write("<td colspan=2><b style=\"color: red\">" + e + "</b></td>");
}
}
document.write("</tr>");
}
</script>
</table>
</body>
</html>