<html>
<head>
<script src="resources/window-onerror.js">
</script>
</head>
<body>
<p>Test that error is treated as not handled when window.onerror return
value is not 'true'. <a href="https://bugs.webkit.org/show_bug.cgi?id=67119">Bug 67119</a>.</p>
<div id="console"></div>
<script>
if (window.layoutTestController)
    layoutTestController.dumpAsText();

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

window.onerror = function(msg, url, line)
{
  log("Uncaught error should be printed in console when window.onerror returns not true.");
  log("DONE.");
}

throw "An Error";
</script>
</body>
</html>
