<!doctype html>
<html>
 <head>
  <title>window.onerror - compile error in cross-origin setInterval</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;
    var interval;
    window.onerror = t.step_func(function(a, b, c, d){
        clearInterval(interval);
        ran = true;
        col_value = d;
        assert_equals(a, 'Script error.', 'first arg');
        assert_equals(b, '', 'second arg');
        assert_equals(c, 0, 'third arg');
    });
    function col_check() {
        assert_equals(col_value, 0, 'fourth arg');
        t_col.done();
    }
    var script = document.createElement('script');
    script.src = location.href.replace('://', '://www1.').replace(/\/[^\/]+$/, '/support/syntax-error-in-setInterval.js');
    document.body.appendChild(script);
  </script>
 </body>
</html>