<html>
<head>
<script src="resources/window-onerror.js">
</script>
</head>
<body>
<p>Test that window.onerror is called on window object when there is an exception(excluding syntax errors)
in attribute handler. <a href="https://bugs.webkit.org/show_bug.cgi?id=70991">Bug 70991</a>.</p>
<div id="console"></div>
<button id="btn1" onclick="null.m()">Button 1</button>
<script>
if (window.testRunner)
    testRunner.dumpAsText();

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

window.onerror = function(msg, url, line, column, error)
{
    url = url ? url.match( /[^\/]+\/?$/ )[0] : url;
    log("Main frame window.onerror: " + msg + " at " + url + ":" + line + ":" + column + " " + error);
    return true;
}

document.write('<button id="btn2" onclick="null.m()">Button 2</button>\n');

var button3 = document.createElement("button");
button3.textContent = "Button 3";
button3.setAttribute("onclick", "null.m()");
document.body.appendChild(button3);

document.getElementById("btn1").click();
document.getElementById("btn2").click();
button3.click();
</script>
</body>
</html>
