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