<html> <body> <div>Tests that CSS parser correctly recovers after {}, () and [] invalid blocks.</div> <div id="result"></div> <div id="tests"></div> <script type="text/javascript"> if (window.testRunner) testRunner.dumpAsText(); var BASE_EXPR = "1px,\"x\",var(y) /calc(1px + (((5px)))),-webkit-min(1px,2px)"; var INVALID_BLOCKS = ["#", "{}", "()", "[]", "{(){{}{{}}[]}}", "(})", "(])", "[}]", "[)]", "{)}", "{]}", "#({})"]; var tests = document.getElementById("tests"); for (var i = 0; i <= BASE_EXPR.length; i++) { for (var j = 0; j < INVALID_BLOCKS.length; j++) { var invalidExpr = BASE_EXPR.substr(0, i) + INVALID_BLOCKS[j] + BASE_EXPR.substr(i); var test = document.createElement("DIV"); test.textContent = "failed: " + invalidExpr; test.style.cssText = "color:" + invalidExpr + "; display: none;"; tests.appendChild(test); } } var failed = 0; for (var test = tests.firstChild; test; test = test.nextSibling) { if (getComputedStyle(test).display != "none") failed++; } document.getElementById("result").textContent = failed ? "Failed " + failed + " tests" : "All tests passed"; </script> </body>