<pre id="console"></pre>
<script>
if (window.testRunner)
    testRunner.dumpAsText();

function log(msg)
{
    document.getElementById('console').appendChild(document.createTextNode(msg + "\n"));
}

function shouldThrow(_a)
{
    try {
        eval(_a);
        log("FAIL: " + _a + " did not throw");
    } catch(ex) {
        log("PASS: " + _a + " throws: " + ex);
    }
}

shouldThrow("document.querySelector(:unknownpseudo)");
shouldThrow("document.querySelector(:-webkit-any(:unknownpseudo))");
</script>
