blob: b68d800d583351502f1c75c129e098a2924cf1da [file] [log] [blame]
<!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 LICM-ed DOMJIT function getElementById will work correctly when the function is replaced.');
function test(flag) {
var ret = 0;
var text = document.createTextNode('Cocoa');
for (var i = 0; i < 1e4; ++i) {
ret = document.getElementById("target").nodeType;
ret = document.getElementById("target").nodeType;
if (i === 100 && flag)
document.getElementById = function (id) { return text; };
ret = document.getElementById("target").nodeType;
ret = document.getElementById("target").nodeType;
}
return ret;
}
var result;
(function () {
for (var i = 0; i < 100; ++i) {
result = test(false);
shouldBe(`result`, `1`, true);
}
var original = document.getElementById;
result = test(true);
document.getElementById = original;
shouldBe(`result`, `Node.TEXT_NODE`, true);
}());
</script>
<script src="../../resources/js-test-post.js"></script>
</body>
</html>