it waitForChangesReported();
    assert_equals(calls, 1);
}, 'addEventListener "once" option is respected');

promise_test(async t => {
    const mql = await createMQL(t);
    const listener = t.unreached_func("should not be called");

    mql.addEventListener("change", listener);
    mql.removeEventListener("change", listener);

    triggerMQLEvent(mql);
    await waitForChangesReported();
}, "removeEventListener removes listener");

test(() => {
    const mql = window.matchMedia("all");

    let receivedE