<script>
if (window.testRunner)
    testRunner.dumpAsText();

function log(msg) {
    document.getElementById("console").innerHTML += msg + "<br>";
}

function test1()
{
    window.onerror = function (error, url, line, column, error) {
        url = url ? url.match( /[^\/]+\/?$/ )[0] : url;
        log("Error caught successfully: " + error + "\nFile: " + url + "\nLine: " + line + "\nColumn: " + column + "\nError: " + error)
        return true;
    };
    eval("a(");
}
</script>
<body onload="test1();">
<p>Test that window.onerror is invoked for syntax error in eval. You should see a log record if window.onerror is working properly for this test.<a href="https://bugs.webkit.org/show_bug.cgi?id=8519">Bug 8519</a>.</p>
<hr>
<div id='console'></div>
</body>
