<!doctype html>
<html>
 <head>
  <title>window.onerror - runtime 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,undefined_variable;', 'second arg');
        assert_equals(typeof c, 'number', 'third arg');
    });
  </script>
  <script src="data:text/javascript,undefined_variable;"></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>