<!DOCTYPE html>

<html>
<head>
<script>
  var reflectionOn = true;
  function toggleReflection() {
    reflectionOn = !reflectionOn;
    var box = document.getElementById('box');
    box.style.webkitBoxReflect = reflectionOn ? 'below' : 'none';
  };

  function finishTest() {
    toggleReflection();
    if (window.layoutTestController)
      layoutTestController.notifyDone();
  };

  function startTest() {
    if (window.layoutTestController) {
      layoutTestController.waitUntilDone();
      layoutTestController.dumpAsText();
    }
    toggleReflection();
    window.setTimeout(function() { finishTest(); }, 0);
  };

  window.addEventListener('load', startTest, false);

</script>
</head>

<body>
  <p>This test should not crash when run with Address Sanitizer.</p>
  <div id="box" style="-webkit-box-reflect: below;"</div>
</body>
</html>
