<p>This test exercises RenderBlock::bidiReorderCharacters in a specific way to 
test for BidiRun leaks as reported in rdar://problem/4987649. Its layout has no
particular meaning.
</p>
<div><input type='file' id='input'></input></div>
<iframe id='iframe' src="data:text/html,<input type='file' id='input'></input>"></iframe>

<script>
window.onload = function main() 
{
    if (window.testRunner)
        testRunner.dumpAsText();

    // Repeat, to generate lots of leaks.
    for (var i = 0; i < 20; i++) { //>
        document.getElementById('input').focus();
        document.getElementById('iframe').contentDocument.getElementById('input').focus();
    }
}
</script>
