<!DOCTYPE html>
<head>
  <meta charset="utf-8">
  <style>
      p {
          font-family: "Ahem";
          direction: rtl;
          unicode-bidi: bidi-override;
      }
  </style>
</head>
<div id="container">
    <p>ABCDEF</p>
</div>
<div id=log></div>
<script>
testOffsetFromPoint(container.firstElementChild);

function testOffsetFromPoint(element) {
    var y = element.offsetTop + element.offsetHeight / 2;
    var xmin = element.offsetLeft;
    var xmax = xmin + element.offsetWidth;
    var lastCharacterOffset = null;
    var results = [];
    for (var x = xmin - 1; x <= xmax + 1; ++x) {
        var result = document.caretRangeFromPoint(x, y);
        var characterOffset = result ? result.startOffset : null;
        if (characterOffset === lastCharacterOffset)
            continue;
        results.push(characterOffset);
        lastCharacterOffset = characterOffset;
    }
    var div = document.createElement("div");
    div.innerText = results.join(" ");
    log.appendChild(div);
}

if (window.testRunner) {
    container.style.display = "none";
    testRunner.dumpAsText();
}
</script>
