<!DOCTYPE html>
<html>
<head>
    <title>This tests that position property can be changed on a inline element once it is not part of an active continuation.</title>
</head>
<body>
PASS if no crash or assert in debug.
<div style="position: absolute">
  <span id=foo>
    <div id=removethis></div>
  </span>
</div>
<span></span>
<script>
  if (window.testRunner) {
    testRunner.dumpAsText();
    testRunner.waitUntilDone();
  }
  setTimeout(function() { 
    var blockToRemove = document.getElementById("removethis");
    blockToRemove.parentNode.removeChild(blockToRemove);
    document.getElementById("foo").style.position="relative";
    if (window.testRunner)
       testRunner.notifyDone(); 
  }, 0);
</script>
</body>
</html>
