<!DOCTYPE html>
<html>
<head>
<script src="../../resources/js-test-pre.js"></script>
</head>
<body>
<div id="description"></div>
<div id="console"></div>

<div id="parentNode">
<div id="previousSibling"></div><div id="target"><div id="firstChild"></div><div id="lastChild"></div></div><div id="nextSibling"></div>
</div>

<script>
description('Test DOMJIT accessors work in monomorphic call sites.');
var tests = [
    "firstChild",
    "lastChild",
    "nextSibling",
    "previousSibling",
    "parentNode",
].map(function (name) {
    var func = `
        return function ${name}(name, element, result) {
            for (var i = 0; i < 1e4; ++i) {
                if (element.${name} !== result)
                    return false;
            }
            return true;
        };
    `;
    return [ name, Function(func)() ];
});

for (var [name, func] of tests) {
    shouldBeTrue(`func("${name}", document.getElementById("target"), document.getElementById("${name}"))`);
}
</script>
<script src="../../resources/js-test-post.js"></script>
</body>
</html>
