| Index: third_party/WebKit/Source/devtools/front_end/common/Object.js
|
| diff --git a/third_party/WebKit/Source/devtools/front_end/common/Object.js b/third_party/WebKit/Source/devtools/front_end/common/Object.js
|
| index 698fbcd4d22ce2d0e993d9e70d37a60f05cea8f8..248eff77b0330b661ddf30a696e12bb022086aa2 100644
|
| --- a/third_party/WebKit/Source/devtools/front_end/common/Object.js
|
| +++ b/third_party/WebKit/Source/devtools/front_end/common/Object.js
|
| @@ -22,198 +22,187 @@
|
| * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
|
| * OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
|
| */
|
| -
|
| /**
|
| - * @constructor
|
| * @implements {WebInspector.EventTarget}
|
| + * @unrestricted
|
| */
|
| -WebInspector.Object = function() {
|
| -};
|
| +WebInspector.Object = class {
|
| + /**
|
| + * @override
|
| + * @param {string|symbol} eventType
|
| + * @param {function(!WebInspector.Event)} listener
|
| + * @param {!Object=} thisObject
|
| + * @return {!WebInspector.EventTarget.EventDescriptor}
|
| + */
|
| + addEventListener(eventType, listener, thisObject) {
|
| + if (!listener)
|
| + console.assert(false);
|
| +
|
| + if (!this._listeners)
|
| + this._listeners = new Map();
|
| + if (!this._listeners.has(eventType))
|
| + this._listeners.set(eventType, []);
|
| + this._listeners.get(eventType).push({thisObject: thisObject, listener: listener});
|
| + return new WebInspector.EventTarget.EventDescriptor(this, eventType, thisObject, listener);
|
| + }
|
| +
|
| + /**
|
| + * @override
|
| + * @param {string|symbol} eventType
|
| + * @param {function(!WebInspector.Event)} listener
|
| + * @param {!Object=} thisObject
|
| + */
|
| + removeEventListener(eventType, listener, thisObject) {
|
| + console.assert(listener);
|
| +
|
| + if (!this._listeners || !this._listeners.has(eventType))
|
| + return;
|
| + var listeners = this._listeners.get(eventType);
|
| + for (var i = 0; i < listeners.length; ++i) {
|
| + if (listeners[i].listener === listener && listeners[i].thisObject === thisObject)
|
| + listeners.splice(i--, 1);
|
| + }
|
|
|
| -WebInspector.Object.prototype = {
|
| - /**
|
| - * @override
|
| - * @param {string|symbol} eventType
|
| - * @param {function(!WebInspector.Event)} listener
|
| - * @param {!Object=} thisObject
|
| - * @return {!WebInspector.EventTarget.EventDescriptor}
|
| - */
|
| - addEventListener: function(eventType, listener, thisObject)
|
| - {
|
| - if (!listener)
|
| - console.assert(false);
|
| -
|
| - if (!this._listeners)
|
| - this._listeners = new Map();
|
| - if (!this._listeners.has(eventType))
|
| - this._listeners.set(eventType, []);
|
| - this._listeners.get(eventType).push({ thisObject: thisObject, listener: listener });
|
| - return new WebInspector.EventTarget.EventDescriptor(this, eventType, thisObject, listener);
|
| - },
|
| -
|
| - /**
|
| - * @override
|
| - * @param {string|symbol} eventType
|
| - * @param {function(!WebInspector.Event)} listener
|
| - * @param {!Object=} thisObject
|
| - */
|
| - removeEventListener: function(eventType, listener, thisObject)
|
| - {
|
| - console.assert(listener);
|
| -
|
| - if (!this._listeners || !this._listeners.has(eventType))
|
| - return;
|
| - var listeners = this._listeners.get(eventType);
|
| - for (var i = 0; i < listeners.length; ++i) {
|
| - if (listeners[i].listener === listener && listeners[i].thisObject === thisObject)
|
| - listeners.splice(i--, 1);
|
| - }
|
| -
|
| - if (!listeners.length)
|
| - this._listeners.delete(eventType);
|
| - },
|
| -
|
| - /**
|
| - * @override
|
| - */
|
| - removeAllListeners: function()
|
| - {
|
| - delete this._listeners;
|
| - },
|
| -
|
| - /**
|
| - * @override
|
| - * @param {string|symbol} eventType
|
| - * @return {boolean}
|
| - */
|
| - hasEventListeners: function(eventType)
|
| - {
|
| - return this._listeners && this._listeners.has(eventType);
|
| - },
|
| -
|
| - /**
|
| - * @override
|
| - * @param {string|symbol} eventType
|
| - * @param {*=} eventData
|
| - * @return {boolean}
|
| - */
|
| - dispatchEventToListeners: function(eventType, eventData)
|
| - {
|
| - if (!this._listeners || !this._listeners.has(eventType))
|
| - return false;
|
| -
|
| - var event = new WebInspector.Event(this, eventType, eventData);
|
| - var listeners = this._listeners.get(eventType).slice(0);
|
| - for (var i = 0; i < listeners.length; ++i) {
|
| - listeners[i].listener.call(listeners[i].thisObject, event);
|
| - if (event._stoppedPropagation)
|
| - break;
|
| - }
|
| -
|
| - return event.defaultPrevented;
|
| + if (!listeners.length)
|
| + this._listeners.delete(eventType);
|
| + }
|
| +
|
| + /**
|
| + * @override
|
| + */
|
| + removeAllListeners() {
|
| + delete this._listeners;
|
| + }
|
| +
|
| + /**
|
| + * @override
|
| + * @param {string|symbol} eventType
|
| + * @return {boolean}
|
| + */
|
| + hasEventListeners(eventType) {
|
| + return this._listeners && this._listeners.has(eventType);
|
| + }
|
| +
|
| + /**
|
| + * @override
|
| + * @param {string|symbol} eventType
|
| + * @param {*=} eventData
|
| + * @return {boolean}
|
| + */
|
| + dispatchEventToListeners(eventType, eventData) {
|
| + if (!this._listeners || !this._listeners.has(eventType))
|
| + return false;
|
| +
|
| + var event = new WebInspector.Event(this, eventType, eventData);
|
| + var listeners = this._listeners.get(eventType).slice(0);
|
| + for (var i = 0; i < listeners.length; ++i) {
|
| + listeners[i].listener.call(listeners[i].thisObject, event);
|
| + if (event._stoppedPropagation)
|
| + break;
|
| }
|
| +
|
| + return event.defaultPrevented;
|
| + }
|
| };
|
|
|
| /**
|
| - * @constructor
|
| - * @param {!WebInspector.EventTarget} target
|
| - * @param {string|symbol} type
|
| - * @param {*=} data
|
| + * @unrestricted
|
| */
|
| -WebInspector.Event = function(target, type, data)
|
| -{
|
| +WebInspector.Event = class {
|
| + /**
|
| + * @param {!WebInspector.EventTarget} target
|
| + * @param {string|symbol} type
|
| + * @param {*=} data
|
| + */
|
| + constructor(target, type, data) {
|
| this.target = target;
|
| this.type = type;
|
| this.data = data;
|
| this.defaultPrevented = false;
|
| this._stoppedPropagation = false;
|
| -};
|
| -
|
| -WebInspector.Event.prototype = {
|
| - stopPropagation: function()
|
| - {
|
| - this._stoppedPropagation = true;
|
| - },
|
| -
|
| - preventDefault: function()
|
| - {
|
| - this.defaultPrevented = true;
|
| - },
|
| -
|
| - /**
|
| - * @param {boolean=} preventDefault
|
| - */
|
| - consume: function(preventDefault)
|
| - {
|
| - this.stopPropagation();
|
| - if (preventDefault)
|
| - this.preventDefault();
|
| - }
|
| + }
|
| +
|
| + stopPropagation() {
|
| + this._stoppedPropagation = true;
|
| + }
|
| +
|
| + preventDefault() {
|
| + this.defaultPrevented = true;
|
| + }
|
| +
|
| + /**
|
| + * @param {boolean=} preventDefault
|
| + */
|
| + consume(preventDefault) {
|
| + this.stopPropagation();
|
| + if (preventDefault)
|
| + this.preventDefault();
|
| + }
|
| };
|
|
|
| /**
|
| * @interface
|
| */
|
| -WebInspector.EventTarget = function()
|
| -{
|
| -};
|
| +WebInspector.EventTarget = function() {};
|
|
|
| /**
|
| * @param {!Array<!WebInspector.EventTarget.EventDescriptor>} eventList
|
| */
|
| -WebInspector.EventTarget.removeEventListeners = function(eventList)
|
| -{
|
| - for (var i = 0; i < eventList.length; ++i) {
|
| - var eventInfo = eventList[i];
|
| - eventInfo.eventTarget.removeEventListener(eventInfo.eventType, eventInfo.method, eventInfo.receiver);
|
| - }
|
| - // Do not hold references on unused event descriptors.
|
| - eventList.splice(0, eventList.length);
|
| +WebInspector.EventTarget.removeEventListeners = function(eventList) {
|
| + for (var i = 0; i < eventList.length; ++i) {
|
| + var eventInfo = eventList[i];
|
| + eventInfo.eventTarget.removeEventListener(eventInfo.eventType, eventInfo.method, eventInfo.receiver);
|
| + }
|
| + // Do not hold references on unused event descriptors.
|
| + eventList.splice(0, eventList.length);
|
| };
|
|
|
| WebInspector.EventTarget.prototype = {
|
| - /**
|
| - * @param {string|symbol} eventType
|
| - * @param {function(!WebInspector.Event)} listener
|
| - * @param {!Object=} thisObject
|
| - * @return {!WebInspector.EventTarget.EventDescriptor}
|
| - */
|
| - addEventListener: function(eventType, listener, thisObject) { },
|
| -
|
| - /**
|
| - * @param {string|symbol} eventType
|
| - * @param {function(!WebInspector.Event)} listener
|
| - * @param {!Object=} thisObject
|
| - */
|
| - removeEventListener: function(eventType, listener, thisObject) { },
|
| -
|
| - removeAllListeners: function() { },
|
| -
|
| - /**
|
| - * @param {string|symbol} eventType
|
| - * @return {boolean}
|
| - */
|
| - hasEventListeners: function(eventType) { },
|
| -
|
| - /**
|
| - * @param {string|symbol} eventType
|
| - * @param {*=} eventData
|
| - * @return {boolean}
|
| - */
|
| - dispatchEventToListeners: function(eventType, eventData) { },
|
| + /**
|
| + * @param {string|symbol} eventType
|
| + * @param {function(!WebInspector.Event)} listener
|
| + * @param {!Object=} thisObject
|
| + * @return {!WebInspector.EventTarget.EventDescriptor}
|
| + */
|
| + addEventListener: function(eventType, listener, thisObject) {},
|
| +
|
| + /**
|
| + * @param {string|symbol} eventType
|
| + * @param {function(!WebInspector.Event)} listener
|
| + * @param {!Object=} thisObject
|
| + */
|
| + removeEventListener: function(eventType, listener, thisObject) {},
|
| +
|
| + removeAllListeners: function() {},
|
| +
|
| + /**
|
| + * @param {string|symbol} eventType
|
| + * @return {boolean}
|
| + */
|
| + hasEventListeners: function(eventType) {},
|
| +
|
| + /**
|
| + * @param {string|symbol} eventType
|
| + * @param {*=} eventData
|
| + * @return {boolean}
|
| + */
|
| + dispatchEventToListeners: function(eventType, eventData) {},
|
| };
|
|
|
| /**
|
| - * @constructor
|
| - * @param {!WebInspector.EventTarget} eventTarget
|
| - * @param {string|symbol} eventType
|
| - * @param {(!Object|undefined)} receiver
|
| - * @param {function(?):?} method
|
| + * @unrestricted
|
| */
|
| -WebInspector.EventTarget.EventDescriptor = function(eventTarget, eventType, receiver, method)
|
| -{
|
| +WebInspector.EventTarget.EventDescriptor = class {
|
| + /**
|
| + * @param {!WebInspector.EventTarget} eventTarget
|
| + * @param {string|symbol} eventType
|
| + * @param {(!Object|undefined)} receiver
|
| + * @param {function(?):?} method
|
| + */
|
| + constructor(eventTarget, eventType, receiver, method) {
|
| this.eventTarget = eventTarget;
|
| this.eventType = eventType;
|
| this.receiver = receiver;
|
| this.method = method;
|
| + }
|
| };
|
|
|