code: function(type, listener, useCapture){
  			if (!this._eventTypes) { return; }
  			var state = this._eventTypes[type];
  			if (state) {
  				var listeners = state.listeners;
  				for (var i=0, len=listeners.length; i < len; i++) {
  					var l = listeners[i];
  					if (l && l.listener === listener && l.useCapture === useCapture) {
  						if (state.level !== 0) {
  							listeners[i] = null;
  							state.compact = true;
  						} else {
  							listeners.splice(i, 1);
  						}
  						break;
  					}
  				}
  				if (listeners.length === 0) {
  					delete this._eventTypes[type];
  				}
  			}
  		}
docs: Removes an event listener from the event target.
  <p>
  All the parameters must be the same ones used to add the listener.
  </p>
  
  @param {String} type The event type
  @param {Function|EventListener} listener The function or the EventListener that will be executed when the event happens.
  @param {Boolean} [useCapture=false] <code>true</code> if the listener should be trigged in the capture phase.
  
  @see orion.editor.EventTarget#addEventListener