whole_func_string: 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);
    });
  }
func_code_string: 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);
    });
  }
func_documentation_string: 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.