<!DOCTYPE html>
<title>GC while playing</title>
<script src="../resources/testharness.js"></script>
<script src="../resources/testharnessreport.js"></script>
<script>
async_test(function(t)
{
    var a = document.createElement("audio");
    a.foo = "bar";
    a.src = "content/test.oga";
    a.onsuspend = t.step_func(function()
    {
        assert_equals(a.networkState, a.NETWORK_IDLE);
        a.play();
        // Continue after a timeout since the current event target is the media
        // element, which means that it cannot be garbage collected now.
        setTimeout(t.step_func(gcAndAwaitTimeupdate), 0);
    });
    function gcAndAwaitTimeupdate()
    {
        a.ontimeupdate = t.step_func(function(e)
        {
            assert_greater_than(e.target.currentTime, 0);
            assert_equals(e.target.foo, "bar");
            t.done();
        });
        a = null;
        gc();
    }
});
</script>
