constructor(target, type, listener, options) {
    /** @type {EventTarget} */
    this.target = target;

    /** @type {string} */
    this.type = type;

    /** @type {?shaka.util.EventManager.ListenerType} */
    this.listener = listener;

    /** @type {(boolean|!AddEventListenerOptions)} */
    this.options =
        shaka.util.EventManager.Binding_.convertOptions_(target, options);

    this.target.addEventListener(type, listener, this.options);
  }
@param {EventTarget} target The event target.
@param {string} type The event type.
@param {shaka.util.EventManager.ListenerType} listener The event listener.
@param {(boolean|!AddEventListenerOptions)=} options An object that
   specifies characteristics about the event listener.
   The passive option, if true, indicates that this function will never
   call preventDefault(), which improves scrolling performance.