| OLD | NEW |
| 1 /* | 1 /* |
| 2 * Copyright (C) 2008 Apple Inc. All Rights Reserved. | 2 * Copyright (C) 2008 Apple Inc. All Rights Reserved. |
| 3 * | 3 * |
| 4 * Redistribution and use in source and binary forms, with or without | 4 * Redistribution and use in source and binary forms, with or without |
| 5 * modification, are permitted provided that the following conditions | 5 * modification, are permitted provided that the following conditions |
| 6 * are met: | 6 * are met: |
| 7 * 1. Redistributions of source code must retain the above copyright | 7 * 1. Redistributions of source code must retain the above copyright |
| 8 * notice, this list of conditions and the following disclaimer. | 8 * notice, this list of conditions and the following disclaimer. |
| 9 * 2. Redistributions in binary form must reproduce the above copyright | 9 * 2. Redistributions in binary form must reproduce the above copyright |
| 10 * notice, this list of conditions and the following disclaimer in the | 10 * notice, this list of conditions and the following disclaimer in the |
| (...skipping 80 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 91 return; | 91 return; |
| 92 | 92 |
| 93 var event = new Common.Event(eventData); | 93 var event = new Common.Event(eventData); |
| 94 var listeners = this._listeners.get(eventType).slice(0); | 94 var listeners = this._listeners.get(eventType).slice(0); |
| 95 for (var i = 0; i < listeners.length; ++i) | 95 for (var i = 0; i < listeners.length; ++i) |
| 96 listeners[i].listener.call(listeners[i].thisObject, event); | 96 listeners[i].listener.call(listeners[i].thisObject, event); |
| 97 } | 97 } |
| 98 | 98 |
| 99 /** | 99 /** |
| 100 * @override | 100 * @override |
| 101 * @param {function(new:Common.Emittable, ...)} eventType | 101 * @param {function(new:T, ...)} eventType |
| 102 * @param {function(!T)} listener | 102 * @param {function(!T)} listener |
| 103 * @param {!Object=} thisObject | 103 * @param {!Object=} thisObject |
| 104 * @return {!Common.EventTarget.TypedEventDescriptor} | 104 * @return {!Common.EventTarget.TypedEventDescriptor} |
| 105 * @template T | 105 * @template T |
| 106 */ | 106 */ |
| 107 on(eventType, listener, thisObject) { | 107 on(eventType, listener, thisObject) { |
| 108 if (!this._listeners) | 108 if (!this._listeners) |
| 109 this._listeners = new Map(); | 109 this._listeners = new Map(); |
| 110 if (!this._listeners.has(eventType)) | 110 if (!this._listeners.has(eventType)) |
| 111 this._listeners.set(eventType, []); | 111 this._listeners.set(eventType, []); |
| 112 this._listeners.get(eventType).push({thisObject: thisObject, listener: liste
ner}); | 112 this._listeners.get(eventType).push({thisObject: thisObject, listener: liste
ner}); |
| 113 return new Common.EventTarget.TypedEventDescriptor(this, eventType, thisObje
ct, listener); | 113 return new Common.EventTarget.TypedEventDescriptor(this, eventType, thisObje
ct, listener); |
| 114 } | 114 } |
| 115 | 115 |
| 116 /** | 116 /** |
| 117 * @override | 117 * @override |
| 118 * @param {function(new:Common.Emittable, ...)} eventType | 118 * @param {function(new:T, ...)} eventType |
| 119 * @param {function(!Common.Emittable)} listener | 119 * @param {function(!T)} listener |
| 120 * @param {!Object=} thisObject | 120 * @param {!Object=} thisObject |
| 121 * @template T |
| 121 */ | 122 */ |
| 122 off(eventType, listener, thisObject) { | 123 off(eventType, listener, thisObject) { |
| 123 if (!this._listeners || !this._listeners.has(eventType)) | 124 if (!this._listeners || !this._listeners.has(eventType)) |
| 124 return; | 125 return; |
| 125 var listeners = this._listeners.get(eventType); | 126 var listeners = this._listeners.get(eventType); |
| 126 for (var i = 0; i < listeners.length; ++i) { | 127 for (var i = 0; i < listeners.length; ++i) { |
| 127 if (listeners[i].listener === listener && listeners[i].thisObject === this
Object) | 128 if (listeners[i].listener === listener && listeners[i].thisObject === this
Object) |
| 128 listeners.splice(i--, 1); | 129 listeners.splice(i--, 1); |
| 129 } | 130 } |
| 130 if (!listeners.length) | 131 if (!listeners.length) |
| (...skipping 136 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 267 */ | 268 */ |
| 268 hasEventListeners(eventType) {}, | 269 hasEventListeners(eventType) {}, |
| 269 | 270 |
| 270 /** | 271 /** |
| 271 * @param {symbol} eventType | 272 * @param {symbol} eventType |
| 272 * @param {*=} eventData | 273 * @param {*=} eventData |
| 273 */ | 274 */ |
| 274 dispatchEventToListeners(eventType, eventData) {}, | 275 dispatchEventToListeners(eventType, eventData) {}, |
| 275 | 276 |
| 276 /** | 277 /** |
| 277 * @param {function(new:Common.Emittable, ...)} eventType | 278 * @param {function(new:T, ...)} eventType |
| 278 * @param {function(!T)} listener | 279 * @param {function(!T)} listener |
| 279 * @param {!Object=} thisObject | 280 * @param {!Object=} thisObject |
| 280 * @return {!Common.EventTarget.TypedEventDescriptor} | 281 * @return {!Common.EventTarget.TypedEventDescriptor} |
| 281 * @template T | 282 * @template T |
| 282 */ | 283 */ |
| 283 on(eventType, listener, thisObject) {}, | 284 on(eventType, listener, thisObject) {}, |
| 284 | 285 |
| 285 /** | 286 /** |
| 286 * @param {function(new:Common.Emittable, ...)} eventType | 287 * @param {function(new:T, ...)} eventType |
| 287 * @param {function(!Common.Emittable)} listener | 288 * @param {function(!T)} listener |
| 288 * @param {!Object=} thisObject | 289 * @param {!Object=} thisObject |
| 290 * @template T |
| 289 */ | 291 */ |
| 290 off(eventType, listener, thisObject) {}, | 292 off(eventType, listener, thisObject) {}, |
| 291 | 293 |
| 292 /** | 294 /** |
| 293 * @param {!Common.Emittable} event | 295 * @param {!Common.Emittable} event |
| 294 */ | 296 */ |
| 295 emit(event) {}, | 297 emit(event) {}, |
| 296 }; | 298 }; |
| OLD | NEW |