ntAndPhase(e) {
    event_log.push(`${e.type}-${e.eventPhase}`);
  }

  const logged_events = [
    "pointerenter", "pointerleave", "pointerover", "pointerout"
  ];
  const expected_events_and_phases = [
    "pointerover-2", "pointerenter-2", "pointerout-2", "pointerleave-2"
  ];

  function addPromiseTest(target) {
    const test_name = `Capturing boundary event handler at ${target.tagName}`;
    promise_test(async () => {
      event_log = [];

      logged_events.forEach(ename => {
        target.addEven