<!doctype html>
<title>pointer updates (removing source element after pointer)</title>
<script src="/resources/testharness.js"></script>
<script src="/resources/testharnessreport.js"></script>
<div id=log></div>
<script>
var a = 0;
var b = 0;
var c = 0;
var x1 = 0;
var x2 = 0;
var x3 = 0;
var x4 = 0;
</script>
<video
 ><source onerror=a++
 ><source onerror=b++ src='resources/delayed-broken-video.py'
 ><source onerror=x1++
 ><source onerror=x2++
 ><source onerror=x3++
 ><source onerror=x4++
 ><source onerror=c++
 ></video
>
<script>
var v;
var t = async_test(function(t) {
  v = document.querySelector('video');
  v.removeChild(document.querySelector('[onerror="x1++"]'));
  window.onload = t.step_func(function() {
    assert_equals(a, 1, 'error events on a');
    assert_equals(b, 1, 'error events on b');
    assert_equals(c, 1, 'error events on c');
    assert_equals(x1, 0, 'error events on x1');
    assert_equals(x2, 0, 'error events on x2');
    assert_equals(x3, 0, 'error events on x3');
    assert_equals(x4, 0, 'error events on x4');
    t.done();
  });
});
</script>
<script>
t.step(function() {
  v.removeChild(document.querySelector('[onerror="x2++"]'));
});
</script>
<script>
t.step(function() {
  v.removeChild(document.querySelector('[onerror="x3++"]'));
});
</script>
<script>
t.step(function() {
  v.removeChild(document.querySelector('[onerror="x4++"]'));
});
</script>
