43 lines
1.5 KiB
HTML
43 lines
1.5 KiB
HTML
<!doctype>
|
|
<html>
|
|
<head>
|
|
<script src="../../resources/js-test-pre.js"></script>
|
|
</head>
|
|
<body>
|
|
<p id="description"></p>
|
|
<div id="console"></div>
|
|
<div id="textContent"></div>
|
|
<script>
|
|
if (window.testRunner)
|
|
testRunner.dumpAsText();
|
|
|
|
// Put text content on the page with 2^16 'a' characters.
|
|
textContent.append(document.createTextNode('a'.repeat(2**15)));
|
|
textContent.append(document.createTextNode('a'.repeat(2**15)));
|
|
shouldBe("textContent.innerText.length", "2**16");
|
|
|
|
// Verify that find fails if no match is found.
|
|
window.getSelection().removeAllRanges();
|
|
shouldBeFalse("window.find('b')");
|
|
|
|
// Verify that find succeeds for a small string.
|
|
window.getSelection().removeAllRanges();
|
|
shouldBeTrue("window.find('a'.repeat(2**5))");
|
|
|
|
// Verify that find succeeds just below the limit.
|
|
window.getSelection().removeAllRanges();
|
|
shouldBeTrue("window.find('a'.repeat(2**16 - 1))");
|
|
|
|
// Verify that find fails when reaching WebKit's hardcoded limit.
|
|
window.getSelection().removeAllRanges();
|
|
shouldBeFalse("window.find('a'.repeat(2**16))");
|
|
|
|
// Verify that very long string does not cause out-of-memory crash.
|
|
window.getSelection().removeAllRanges();
|
|
shouldBeFalse("window.find('a'.repeat(2**30))");
|
|
document.body.removeChild(textContent);
|
|
</script>
|
|
<script src="../../resources/js-test-post.js"></script>
|
|
</body>
|
|
</html>
|