<!doctype html>
<html>
 <head>
  <title>window.onerror - runtime error in attribute</title>
  <script src="/resources/testharness.js"></script>
  <script src="/resources/testharnessreport.js"></script>
 </head>
 <body>
  <div id=log></div>
  <script>
    setup({allow_uncaught_exception:true});
    var t = async_test();
    var t_col = async_test(document.title+' (column)');
    var ran = false;
    var col_value;
    window.onerror = t.step_func(function(a, b, c, d){
        ran = true;
        col_value = d;
        assert_equals(typeof a, 'string', 'first arg');
        assert_equals(b, location.href, 'second arg');
        assert_equals(typeof c, 'number', 'third arg');
    });
  </script>
  <p onclick="undefined_variable;"></p>
  <script>
    t.step(function(){
        var ev = document.createEvent('Event');
        ev.initEvent('click', false, false);
        document.querySelector('p').dispatchEvent(ev);
        assert_true(ran, 'ran');
        t.done();
    });
    t_col.step(function(){
        assert_equals(typeof col_value, 'number', 'fourth arg');
        t_col.done();
    });
  </script>
 </body>
</html>