| OLD | NEW | 
|    1 /* |    1 /* | 
|    2  * This file is part of Adblock Plus <https://adblockplus.org/>, |    2  * This file is part of Adblock Plus <https://adblockplus.org/>, | 
|    3  * Copyright (C) 2006-2016 Eyeo GmbH |    3  * Copyright (C) 2006-2016 Eyeo GmbH | 
|    4  * |    4  * | 
|    5  * Adblock Plus is free software: you can redistribute it and/or modify |    5  * Adblock Plus is free software: you can redistribute it and/or modify | 
|    6  * it under the terms of the GNU General Public License version 3 as |    6  * it under the terms of the GNU General Public License version 3 as | 
|    7  * published by the Free Software Foundation. |    7  * published by the Free Software Foundation. | 
|    8  * |    8  * | 
|    9  * Adblock Plus is distributed in the hope that it will be useful, |    9  * Adblock Plus is distributed in the hope that it will be useful, | 
|   10  * but WITHOUT ANY WARRANTY; without even the implied warranty of |   10  * but WITHOUT ANY WARRANTY; without even the implied warranty of | 
| (...skipping 16 matching lines...) Expand all  Loading... | 
|   27   this._listeners = Object.create(null); |   27   this._listeners = Object.create(null); | 
|   28 }; |   28 }; | 
|   29  |   29  | 
|   30 exports.EventEmitter.prototype = { |   30 exports.EventEmitter.prototype = { | 
|   31   /** |   31   /** | 
|   32    * Adds a listener for the specified event name. |   32    * Adds a listener for the specified event name. | 
|   33    * |   33    * | 
|   34    * @param {string}   name |   34    * @param {string}   name | 
|   35    * @param {function} listener |   35    * @param {function} listener | 
|   36    */ |   36    */ | 
|   37   on: function(name, listener) |   37   on(name, listener) | 
|   38   { |   38   { | 
|   39     if (name in this._listeners) |   39     if (name in this._listeners) | 
|   40       this._listeners[name].push(listener); |   40       this._listeners[name].push(listener); | 
|   41     else |   41     else | 
|   42       this._listeners[name] = [listener]; |   42       this._listeners[name] = [listener]; | 
|   43   }, |   43   }, | 
|   44  |   44  | 
|   45   /** |   45   /** | 
|   46    * Removes a listener for the specified event name. |   46    * Removes a listener for the specified event name. | 
|   47    * |   47    * | 
|   48    * @param {string}   name |   48    * @param {string}   name | 
|   49    * @param {function} listener |   49    * @param {function} listener | 
|   50    */ |   50    */ | 
|   51   off: function(name, listener) |   51   off(name, listener) | 
|   52   { |   52   { | 
|   53     let listeners = this._listeners[name]; |   53     let listeners = this._listeners[name]; | 
|   54     if (listeners) |   54     if (listeners) | 
|   55     { |   55     { | 
|   56       let idx = listeners.indexOf(listener); |   56       let idx = listeners.indexOf(listener); | 
|   57       if (idx != -1) |   57       if (idx != -1) | 
|   58         listeners.splice(idx, 1); |   58         listeners.splice(idx, 1); | 
|   59     } |   59     } | 
|   60   }, |   60   }, | 
|   61  |   61  | 
|   62   /** |   62   /** | 
|   63    * Adds a one time listener and returns a promise that |   63    * Adds a one time listener and returns a promise that | 
|   64    * is resolved the next time the specified event is emitted. |   64    * is resolved the next time the specified event is emitted. | 
|   65    * |   65    * @param {String} name | 
|   66    * @return {Promise} |   66    * @return {Promise} | 
|   67    */ |   67    */ | 
|   68   once: function(name) |   68   once(name) | 
|   69   { |   69   { | 
|   70     return new Promise(resolve => |   70     return new Promise(resolve => | 
|   71     { |   71     { | 
|   72       let listener = () => |   72       let listener = () => | 
|   73       { |   73       { | 
|   74         this.off(name, listener); |   74         this.off(name, listener); | 
|   75         resolve(); |   75         resolve(); | 
|   76       }; |   76       }; | 
|   77  |   77  | 
|   78       this.on(name, listener); |   78       this.on(name, listener); | 
|   79     }); |   79     }); | 
|   80   }, |   80   }, | 
|   81  |   81  | 
|   82   /** |   82   /** | 
|   83    * Returns a copy of the array of listeners for the specified event. |   83    * Returns a copy of the array of listeners for the specified event. | 
|   84    * |   84    * | 
|   85    * @param {string} name |   85    * @param {string} name | 
|   86    * @return {function[]} |   86    * @return {function[]} | 
|   87    */ |   87    */ | 
|   88   listeners: function(name) |   88   listeners(name) | 
|   89   { |   89   { | 
|   90     let listeners = this._listeners[name]; |   90     let listeners = this._listeners[name]; | 
|   91     return listeners ? listeners.slice() : []; |   91     return listeners ? listeners.slice() : []; | 
|   92   }, |   92   }, | 
|   93  |   93  | 
|   94   /** |   94   /** | 
|   95    * Calls all previously added listeners for the given event name. |   95    * Calls all previously added listeners for the given event name. | 
|   96    * |   96    * | 
|   97    * @param {string} name |   97    * @param {string} name | 
|   98    * @param {...*}   [arg] |   98    * @param {...*}   [arg] | 
|   99    */ |   99    */ | 
|  100   emit: function(name) |  100   emit(name, ...args) | 
|  101   { |  101   { | 
|  102     let args = []; |  | 
|  103     for (let i = 1; i < arguments.length; i++) |  | 
|  104       args.push(arguments[i]); |  | 
|  105  |  | 
|  106     let listeners = this.listeners(name); |  102     let listeners = this.listeners(name); | 
|  107     for (let listener of listeners) |  103     for (let listener of listeners) | 
|  108       listener.apply(null, args); |  104       listener(...args); | 
|  109   } |  105   } | 
|  110 }; |  106 }; | 
| OLD | NEW |