<!DOCTYPE html><!-- webkit-test-runner [ experimental:WebAnimationsCSSIntegrationEnabled=false ] -->
<style>
    .test { 
        -webkit-transition: height 1s; 
    }
    .test:nth-child(2n) { 
        height: calc(45em - 81%);
    }
</style>

This tests transitioning of elements containing a calc expression. The test passes if it does not crash.

<script>
    if (window.testRunner) {
        testRunner.dumpAsText();        
        testRunner.waitUntilDone(); 
    }

    elementBr = document.createElement('br');
    document.documentElement.appendChild(elementBr);
    elementAbbr = document.createElement('abbr');
    document.documentElement.appendChild(elementAbbr);
    elementColGroup = document.createElement('colgroup');
    document.documentElement.appendChild(elementColGroup);
    elementOptGroup = document.createElement('optgroup');
    elementIframe = document.createElement('iframe');
    elementIframe.setAttribute('class', 'test');
    document.documentElement.appendChild(elementIframe);
    
    function boom() {
        elementOptGroup.appendChild(elementBr);
        if (window.testRunner) 
            testRunner.notifyDone();
    }
    
    setTimeout(boom, 1);
</script>
