<html>
<head>
<script src="resources/window-onerror.js">
</script>
</head>
<body>
<p>Test that window.onerror is called on window object for events created using document.createEvent("error"). <a href="https://bugs.webkit.org/show_bug.cgi?id=8519">Bug 8519</a>.</p>
<div id="console"></div>
<script>
if (window.testRunner)
    testRunner.dumpAsText();

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

window.onerror = function(msg, url, line, column)
{
    log("Main frame window.onerror: ");
    log("msg: " + msg);
    log("url: " + url);
    log("line: " + line);
    log("column: " + column);
    return true;
}

var evt = document.createEvent("Event");
evt.initEvent("error", true, true);
window.dispatchEvent(evt);
log("DONE.");

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