 class EventTarget extends UnJSONable
   null
 
-  ###*
-  @private
-  @property {Function[]}
-    Array of event listeners
-  ###
-  #_listeners: []
+  #--------------------------------------------------------------------------------
+  # Private variables / constants
+  #
+
+  ITEM_EQUAL = (i) -> return @[0] == i[0] and @[1] == i[1]
+
+  #--------------------------------------------------------------------------------
+  # Public methods
+  #
 
   ###*
   @method constructor

  ###
  addEventListener: (listener, thisObject = null) ->
    item = [listener, thisObject]
    @_listeners.push(item) unless @_listeners.includes(item)
    return

  ###*

  ###
  removeEventListener: (listener, thisObject = null) ->
    item = [listener, thisObject]
    index = @_listeners.findIndex(ITEM_EQUAL, item)
    @_listeners.splice(index, 1) if index >= 0
    return

