l.addEventListener("matches", t.unreached_func("should not be called"));

    triggerMQLEvent(mql);
    await waitForChangesReported();
}, 'listeners with different type are not called');

promise_test(async t => {
    const mql = await createMQL(t);

    let calls = 0;
    mql.addEventListener("change", {
        handleEvent() {
            calls++;
        },
    }, {once: true});

    triggerMQLEvent(mql);
    await waitForChangesReported();
    assert_equals(calls, 1);

    triggerMQLEvent(mql);
    awa