<!DOCTYPE html>
<head>
<script>
if (window.testRunner) {
    testRunner.dumpAsText();
    testRunner.waitUntilDone();
}

function runTest() {
    document.body.getBoundingClientRect();
    document.querySelector('ruby').prepend(document.createElement("rt"));
    document.body.getBoundingClientRect();

    document.body.innerHTML = `<p>This tests inserting a duplicate rt element into ruby. WebKit should not crash.<br>PASS.</p>`;

    if (window.testRunner)
        testRunner.notifyDone();
}
</script>
<body onload="runTest()"><ruby><rt></body>

