<!DOCTYPE HTML>
<head>
    <!-- This test will check if the isolation flag is properly computed when we remove the stacking context status from the isolating element. -->
    <link rel="stylesheet" href="resources/blending-style.css">
    <style>
        div {
            /* This forces render layers, avoiding normal flow only issues */
            position: relative;
        }
    </style>
</head>
<body>
    <div class="isolating lime box">
        <div id="target" class="isolating yellow box" style="left: 50px;">
            <div class="box">
                <div class="fuchsia box difference" style="left:-25px;"></div>
            </div>
        </div>
    </div>
    <script type="text/javascript">
        if (window.testRunner)
            window.testRunner.waitUntilDone();

        function change() {
            var target = document.getElementById("target");
            target.className = "yellow box";

            if (window.testRunner)
                window.testRunner.notifyDone();
        }

        window.setTimeout("change()", 10);
    </script>
</body>
