function removeListener(element, type, listener) {
  var options = arguments.length > 3 && arguments[3] !== undefined ? arguments[3] : {};
  var handler = listener;
  type.trim().split(REGEXP_SPACES).forEach(function (event) {
    if (!onceSupported) {
      var listeners = element.listeners;

      if (listeners && listeners[event] && listeners[event][listener]) {
        handler = listeners[event][listener];
        delete listeners[event][listener];

        if (Object.keys(listeners[event]).length === 0) {
          delete listeners[event];
        }

        if (Object.keys(listeners).length === 0) {
          delete element.listeners;
        }
      }
    }

    element.removeEventListener(event, handler, options);
  });
}
function removeListener(element, type, listener) {
  var options = arguments.length > 3 && arguments[3] !== undefined ? arguments[3] : {};
  var handler = listener;
  type.trim().split(REGEXP_SPACES).forEach(function (event) {
    if (!onceSupported) {
      var listeners = element.listeners;

      if (listeners && listeners[event] && listeners[event][listener]) {
        handler = listeners[event][listener];
        delete listeners[event][listener];

        if (Object.keys(listeners[event]).length === 0) {
          delete listeners[event];
        }

        if (Object.keys(listeners).length === 0) {
          delete element.listeners;
        }
      }
    }

    element.removeEventListener(event, handler, options);
  });
}
function removeListener ( element , type , listener ) { var options = arguments . length > 3 && arguments [ 3 ] !== undefined ? arguments [ 3 ] : { } ; var handler = listener ; type . trim ( ) . split ( REGEXP_SPACES ) . forEach ( function ( event ) { if ( ! onceSupported ) { var listeners = element . listeners ; if ( listeners && listeners [ event ] && listeners [ event ] [ listener ] ) { handler = listeners [ event ] [ listener ] ; delete listeners [ event ] [ listener ] ; if ( Object . keys ( listeners [ event ] ) . length === 0 ) { delete listeners [ event ] ; } if ( Object . keys ( listeners ) . length === 0 ) { delete element . listeners ; } } } element . removeEventListener ( event , handler , options ) ; } ) ; }
Remove event listener from the target element.
@param {Element} element - The event target.
@param {string} type - The event type(s).
@param {Function} listener - The event listener.
@param {Object} options - The event options.
Remove event listener from the target element .