Index: ext/common.js
diff --git a/ext/common.js b/ext/common.js
index 173bbaf443e1fc9eb0b5736e403e35a79c4755d7..1d66b1ed163c0af4bf585dd10c7b9a8d4f52362c 100644
--- a/ext/common.js
+++ b/ext/common.js
@@ -23,24 +23,21 @@
 
   let EventTarget = ext._EventTarget = function()
   {
-    this._listeners = [];
+    this._listeners = new Set();
   };
   EventTarget.prototype = {
     addListener(listener)
     {
-      if (this._listeners.indexOf(listener) == -1)
-        this._listeners.push(listener);
+      this._listeners.add(listener);
     },
     removeListener(listener)
     {
-      let idx = this._listeners.indexOf(listener);
-      if (idx != -1)
-        this._listeners.splice(idx, 1);
+      this._listeners.delete(listener);
     },
     _dispatch(...args)
     {
       let results = [];
-      let listeners = this._listeners.slice();
+      let listeners = [...this._listeners];
 
       for (let listener of listeners)
         results.push(listener(...args));
