# MessageEvent constructor

MessageEvent(String type, { bool canBubble: false, bool cancelable: false, Object data, String origin, String lastEventId, Window source, List<MessagePort> messagePorts: const [] })

## Implementation

    factory MessageEvent(String type,
        {bool canBubble: false,
        bool cancelable: false,
        Object data,
        String origin,
        String lastEventId,
        Window source,
        List<MessagePort> messagePorts: const []}) {
      if (source == null) {
        source = window;
      }
      if (!Device.isIE) {
        // TODO: This if check should be removed once IE
        // implements the constructor.
        return JS(
            'MessageEvent',
            'new MessageEvent(#, {bubbles: #, cancelable: #, data: #, origin: #, lastEventId: #, source: #, ports: #})',
            type,
            canBubble,
            cancelable,
            data,
            origin,
            lastEventId,
            source,
            messagePorts);
      }
      MessageEvent event = document._createEvent("MessageEvent");
      event._initMessageEvent(type, canBubble, cancelable, data, origin,
          lastEventId, source, messagePorts);
      return event;
    }