45 lines
1.3 KiB
HTML
45 lines
1.3 KiB
HTML
<!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>
|