WebInspector.Object = function() {
}
WebInspector.Object.prototype = {
addEventListener: function(eventType, listener, thisObject) {
if (!("_listeners" in this))
this._listeners = {};
if (!(eventType in this._listeners))
this._listeners[eventType] = [];
this._listeners[eventType].push({ thisObject: thisObject, listener: listener });
},
removeEventListener: function(eventType, listener, thisObject) {
if (!("_listeners" in this) || !(eventType in this._listeners))
return;
var listeners = this._listeners[eventType];
for (var i = 0; i < listeners.length; ++i) {
if (listener && listeners[i].listener === listener && listeners[i].thisObject === thisObject)
listeners.splice(i, 1);
else if (!listener && thisObject && listeners[i].thisObject === thisObject)
listeners.splice(i, 1);
}
if (!listeners.length)
delete this._listeners[eventType];
},
dispatchEventToListeners: function(eventType) {
if (!("_listeners" in this) || !(eventType in this._listeners))
return;
var stoppedPropagation = false;
function stopPropagation()
{
stoppedPropagation = true;
}
function preventDefault()
{
this.defaultPrevented = true;
}
var event = {target: this, type: eventType, defaultPrevented: false};
event.stopPropagation = stopPropagation;
event.preventDefault = preventDefault;
var listeners = this._listeners[eventType].slice(0);
for (var i = 0; i < listeners.length; ++i) {
listeners[i].listener.call(listeners[i].thisObject, event);
if (stoppedPropagation)
break;
}
return event.defaultPrevented;
}
}