<p>Test for <a href="https://bugs.webkit.org/show_bug.cgi?id=25381">bug 25381</a>:
jQuery animation crashing Safari.</p>
<p>PASS if didn't crash.</p>
<div style="position:fixed; top:0px; width:100px; background:red;">
<div id="i" style="position:fixed; display:none; top:0px; width:100px; height:100px; overflow:hidden; background:green;"><div>ABC</div></div>
</div>
<script>
if (window.testRunner) {
testRunner.dumpAsText();
testRunner.waitUntilDone();
}
function swap( elem, options, callback ) {
var old = {};
// Remember the old values, and insert the new ones
for ( var name in options ) {
old[ name ] = elem.style[ name ];
elem.style[ name ] = options[ name ];
}
callback.call( elem );
// Revert the old values
for ( var name in options ) {
elem.style[ name ] = old[ name ];
}
}
function forceLayout()
{
document.body.offsetTop;
}
setTimeout(function() {
var elem = document.getElementById('i');
elem.style['display']='block';
var val, props = { position: "absolute", visibility: "hidden", display:"block" };
function getWH() {
val = elem.offsetHeight;
}
swap( elem, props, getWH );
forceLayout();
elem.style['height']=2;
forceLayout();
elem.style['height']=3;
forceLayout();
elem.style['display']='none';
forceLayout();
if (window.testRunner)
testRunner.notifyDone();
return;
}, 0);
</script>