<html>
<body onload="setTimeout(delayedThrowException, 0); throw 'Exception in onload';">
<p>Test that uncaught exceptions will be reported to the window.onerror handler. <a href="https://bugs.webkit.org/show_bug.cgi?id=8519">Bug 8519</a>.</p>
<div id="result"></div>
<script>
if (window.testRunner) {
    testRunner.dumpAsText();
    testRunner.waitUntilDone();
}

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

var unhandledErrorCount = 0;
window.onerror = function(msg, url, line, column)
{
    url = url ? url.match( /[^\/]+\/?$/ )[0] : url;
    log("Main frame window.onerror: " + msg + " at " + url + ", line: " + line + ", column: " + column);
    
    if (++unhandledErrorCount === 3 && window.testRunner)
        testRunner.notifyDone();

    return true;
}

function delayedThrowException()
{
    throw new Error("Exception in setTimeout");
}

function throwException()
{
    throw new Error("Inline script exception");
}
throwException();

</script>
</body>
</html>
