]> git.proxmox.com Git - mirror_xterm.js.git/blobdiff - src/EventEmitter.ts
Merge pull request #926 from ficristo/search-fix
[mirror_xterm.js.git] / src / EventEmitter.ts
index d05e3863a16f2cdb54c71a786784772f4386839d..00c10941864e37634ee827115a6c14a8e5c26c8c 100644 (file)
@@ -2,16 +2,20 @@
  * @license MIT
  */
 
+import { IEventEmitter } from './Interfaces';
+
 interface ListenerType {
     (): void;
     listener?: () => void;
 };
 
-export class EventEmitter {
+export class EventEmitter implements IEventEmitter {
   private _events: {[type: string]: ListenerType[]};
 
   constructor() {
-    this._events = {};
+    // Restore the previous events if available, this will happen if the
+    // constructor is called multiple times on the same object (terminal reset).
+    this._events = this._events || {};
   }
 
   public on(type, listener): void {
@@ -51,14 +55,11 @@ export class EventEmitter {
     return this.on(type, on);
   }
 
-  public emit(type): void {
+  public emit(type: string, ...args: any[]): void {
     if (!this._events[type]) {
       return;
     }
-
-    let args = Array.prototype.slice.call(arguments, 1);
     let obj = this._events[type];
-
     for (let i = 0; i < obj.length; i++) {
       obj[i].apply(this, args);
     }