<html>
<head>
<script src="resources/window-onerror.js">
</script>
</head>
<body>
<p>Test that error is treated as handled when window.onerror return
value is 'true'. <a href="https://bugs.webkit.org/show_bug.cgi?id=67119">Bug 67119</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, error)
{
  log("Uncaught error should *not* be printed in console when window.onerror returns true.");
  log("window.onerror invoked.");
  return true;
}

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