Files
react-native-devtools-frontend/front_end/common/EventTarget.js
T
Tim van der Lippe b336f0440a Add import-statements to common/
This removes the need for having a specific ordering of side-effecty
imports in `common.js`. `common/` should now be self-contained as a
whole.

Bug:1006759
Change-Id: I895ad13ce27a01228e9963c317a7b582f4386619
Reviewed-on: https://chromium-review.googlesource.com/c/devtools/devtools-frontend/+/1899516
Commit-Queue: Tim van der Lippe <tvanderlippe@chromium.org>
Reviewed-by: Mathias Bynens <mathias@chromium.org>
Reviewed-by: Paul Lewis <aerotwist@chromium.org>
2019-11-07 15:56:40 +00:00

79 lines
1.7 KiB
JavaScript

// Copyright 2019 The Chromium Authors. All rights reserved.
// Use of this source code is governed by a BSD-style license that can be
// found in the LICENSE file.
/**
* @param {!Array<!Common.EventTarget.EventDescriptor>} eventList
*/
export function removeEventListeners(eventList) {
for (const eventInfo of eventList) {
eventInfo.eventTarget.removeEventListener(eventInfo.eventType, eventInfo.listener, eventInfo.thisObject);
}
// Do not hold references on unused event descriptors.
eventList.splice(0);
}
/**
* @interface
*/
export class EventTarget {
/**
* @param {symbol} eventType
* @param {function(!Common.Event)} listener
* @param {!Object=} thisObject
* @return {!Common.EventTarget.EventDescriptor}
*/
addEventListener(eventType, listener, thisObject) {
}
/**
* @param {symbol} eventType
* @return {!Promise<*>}
*/
once(eventType) {
}
/**
* @param {string|symbol} eventType
* @param {function(!Common.Event)} listener
* @param {!Object=} thisObject
*/
removeEventListener(eventType, listener, thisObject) {
}
/**
* @param {symbol} eventType
* @return {boolean}
*/
hasEventListeners(eventType) {
}
/**
* @param {symbol} eventType
* @param {*=} eventData
*/
dispatchEventToListeners(eventType, eventData) {
}
}
/* Legacy exported object */
self.Common = self.Common || {};
Common = Common || {};
/**
* @interface
*/
Common.EventTarget = EventTarget;
EventTarget.removeEventListeners = removeEventListeners;
/**
* @typedef {!{eventTarget: !Common.EventTarget, eventType: (string|symbol), thisObject: (!Object|undefined), listener: function(!Common.Event)}}
*/
Common.EventTarget.EventDescriptor;
/**
* @typedef {!{data: *}}
*/
Common.Event;