<!doctype html>
<html>
 <head>
  <title>&lt;body onerror> - compile error in &lt;script src=data:...></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, 'data:text/javascript,for(;){}', '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 src="data:text/javascript,for(;){}"></script>
  <script>
    t.step(function(){
        assert_true(ran, 'ran');
        t.done();
    });
    t_col.step(function(){
        t_col.done();
    });
  </script>
 </body>
</html>