<!doctype html>
<html>
 <head>
  <title>&lt;body onerror> - runtime error in &lt;script></title>
  <script src="/resources/testharness.js"></script>
  <script src="/resources/testharnessreport.js"></script>
 </head>
  <script>
    setup({allow_uncaught_exception:true});
    var t = async_test();
    var t_col = async_test(document.title+' (column)');
    var ran = false;
  </script>
 <body onerror="
    t.step(function(){
        ran = true;
        assert_equals(typeof event, 'string', 'first arg');
        assert_equals(source, location.href, 'second arg');
        assert_equals(typeof lineno, 'number', 'third arg');
    });
    t_col.step(function(){
        assert_equals(typeof column, 'number', 'fourth arg');
    });
    ">
  <div id=log></div>
  <script>
    undefined_variable;
  </script>
  <script>
    t.step(function(){
        assert_true(ran, 'ran');
        t.done();
    });
    t_col.step(function(){
        t_col.done();
    });
  </script>
 </body>
</html>