Upstream version 10.39.225.0
[platform/framework/web/crosswalk.git] / src / ui / webui / resources / js / event_tracker.js
index be00b0d..d28c5b7 100644 (file)
  */
 var EventTrackerEntry;
 
-// Use an anonymous function to enable strict mode just for this file (which
-// will be concatenated with other files when embedded in Chrome).
-var EventTracker = (function() {
-  'use strict';
-
+/**
+ * Create an EventTracker to track a set of events.
+ * EventTracker instances are typically tied 1:1 with other objects or
+ * DOM elements whose listeners should be removed when the object is disposed
+ * or the corresponding elements are removed from the DOM.
+ * @constructor
+ */
+function EventTracker() {
   /**
-   * Create an EventTracker to track a set of events.
-   * EventTracker instances are typically tied 1:1 with other objects or
-   * DOM elements whose listeners should be removed when the object is disposed
-   * or the corresponding elements are removed from the DOM.
-   * @constructor
+   * @type {Array.<EventTrackerEntry>}
+   * @private
    */
-  function EventTracker() {
-    /**
-     * @type {Array.<EventTrackerEntry>}
-     * @private
-     */
-    this.listeners_ = [];
-  }
-
-  EventTracker.prototype = {
-    /**
-     * Add an event listener - replacement for Node.addEventListener.
-     * @param {!Node} node The DOM node to add a listener to.
-     * @param {string} eventType The type of event to subscribe to.
-     * @param {Function} listener The listener to add.
-     * @param {boolean} capture Whether to invoke during the capture phase.
-     */
-    add: function(node, eventType, listener, capture) {
-      var h = {
-        node: node,
-        eventType: eventType,
-        listener: listener,
-        capture: capture
-      };
-      this.listeners_.push(h);
-      node.addEventListener(eventType, listener, capture);
-    },
+  this.listeners_ = [];
+}
 
-    /**
-     * Remove any specified event listeners added with this EventTracker.
-     * @param {!Node} node The DOM node to remove a listener from.
-     * @param {?string} eventType The type of event to remove.
-     */
-    remove: function(node, eventType) {
-      this.listeners_ = this.listeners_.filter(function(h) {
-        if (h.node == node && (!eventType || (h.eventType == eventType))) {
-          EventTracker.removeEventListener_(h);
-          return false;
-        }
-        return true;
-      });
-    },
-
-    /**
-     * Remove all event listeners added with this EventTracker.
-     */
-    removeAll: function() {
-      this.listeners_.forEach(EventTracker.removeEventListener_);
-      this.listeners_ = [];
-    }
-  };
+EventTracker.prototype = {
+  /**
+   * Add an event listener - replacement for Node.addEventListener.
+   * @param {!Node} node The DOM node to add a listener to.
+   * @param {string} eventType The type of event to subscribe to.
+   * @param {EventListener|Function} listener The listener to add.
+   * @param {boolean=} opt_capture Whether to invoke during the capture phase.
+   */
+  add: function(node, eventType, listener, opt_capture) {
+    var capture = !!opt_capture;
+    var h = {
+      node: node,
+      eventType: eventType,
+      listener: listener,
+      capture: capture,
+    };
+    this.listeners_.push(h);
+    node.addEventListener(eventType, listener, capture);
+  },
 
   /**
-   * Remove a single event listener given it's tracking entry. It's up to the
-   * caller to ensure the entry is removed from listeners_.
-   * @param {EventTrackerEntry} h The entry describing the listener to remove.
-   * @private
+   * Remove any specified event listeners added with this EventTracker.
+   * @param {!Node} node The DOM node to remove a listener from.
+   * @param {?string} eventType The type of event to remove.
    */
-  EventTracker.removeEventListener_ = function(h) {
-    h.node.removeEventListener(h.eventType, h.listener, h.capture);
-  };
+  remove: function(node, eventType) {
+    this.listeners_ = this.listeners_.filter(function(h) {
+      if (h.node == node && (!eventType || (h.eventType == eventType))) {
+        EventTracker.removeEventListener_(h);
+        return false;
+      }
+      return true;
+    });
+  },
 
-  return EventTracker;
-})();
+  /**
+   * Remove all event listeners added with this EventTracker.
+   */
+  removeAll: function() {
+    this.listeners_.forEach(EventTracker.removeEventListener_);
+    this.listeners_ = [];
+  }
+};
 
+/**
+ * Remove a single event listener given it's tracking entry. It's up to the
+ * caller to ensure the entry is removed from listeners_.
+ * @param {EventTrackerEntry} h The entry describing the listener to remove.
+ * @private
+ */
+EventTracker.removeEventListener_ = function(h) {
+  h.node.removeEventListener(h.eventType, h.listener, h.capture);
+};