<html>
<style type="text/css">
.inlineContainer {
  position: relative;
  display: inline;
}
#positioned {
  position: absolute;
  top: 100px;
}
</style>
<script type="text/javascript">
if (window.testRunner) {
    testRunner.waitUntilDone();
    testRunner.dumpAsText();
}

function dumpTest() {
    if (window.testRunner) {
        testRunner.notifyDone();
    }
}
function runTest() {
    document.getElementById('positioned').innerHTML = '2';
    document.getElementById('positioned').style.color = 'red';
    setTimeout('dumpTest()', 10);
}
window.onload = runTest;
</script>
<body>
PASS, if no exception or crash in debug
  <div class='inlineContainer'>
    <div>div1</div>
    <div id='positioned'>div2</div>
  </div>
</body>
</html>
