<!DOCTYPE html><!-- webkit-test-runner [ experimental:WebAnimationsCSSIntegrationEnabled=false ] -->
<head>
<title>This tests if we end up with a dangling spanner pointer in the spanner placeholder object, when the spanner renderer moves around.</title>
<head>
<style>
  .outer { 
	-webkit-column-width: 1px; 
  }

  span:nth-last-child(2) { 
	-webkit-column-span: all; 
  }

  #d1 { 
	-webkit-transform: translateX(10px);
	-webkit-animation-name: name; 
	-webkit-animation-duration: 10000s; 
  }

  @-webkit-keyframes name { 
	from {} 
	to { -webkit-column-rule: 1vh; }
  }
</style>
</head>
<body>
PASS if no crash or assert in debug.
<div class=outer>
  <div id=d1>
    <span style="display: block"></span>
	<div></div>
  </div>
</div>
<script>
  if (window.testRunner) {
      testRunner.dumpAsText();
	  testRunner.waitUntilDone();
  }
  setTimeout(function() {
    document.getElementById('d1').appendChild(document.createElement('div'));
    document.body.offsetHeight;
    
    if (window.testRunner)
      testRunner.notifyDone();
    }, 0);
</script>
</body>
</html>
