addEventListener(
  "foobar",
  function(evt) {
    postMessage({
      type: evt.type,
      bubbles: evt.bubbles,
      cancelable: evt.cancelable,
      detail: evt.detail,
    });
  },
  true
);

addEventListener(
  "message",
  function(evt) {
    // Test the constructor of CustomEvent
    var e = new CustomEvent("foobar", {
      bubbles: true,
      cancelable: true,
      detail: "test",
    });
    dispatchEvent(e);

    // Test initCustomEvent
    e = new CustomEvent("foobar");
    e.initCustomEvent("foobar", true, true, "test");
    dispatchEvent(e);
  },
  true
);
