text: "use strict";
  Object.defineProperty(exports, "__esModule", { value: true });
  var EventEmitter2 = (function () {
      function EventEmitter2() {
          this._listeners = [];
      }
      Object.defineProperty(EventEmitter2.prototype, "event", {
          get: function () {
              var _this = this;
              if (!this._event) {
                  this._event = function (listener) {
                      _this._listeners.push(listener);
                      var disposable = {
                          dispose: function () {
                              for (var i = 0; i < _this._listeners.length; i++) {
                                  if (_this._listeners[i] === listener) {
                                      _this._listeners.splice(i, 1);
                                      return;
                                  }
                              }
                          }
                      };
                      return disposable;
                  };
              }
              return this._event;
          },
          enumerable: true,
          configurable: true
      });
      EventEmitter2.prototype.fire = function (data) {
          var queue = [];
          for (var i = 0; i < this._listeners.length; i++) {
              queue.push(this._listeners[i]);
          }
          for (var i = 0; i < queue.length; i++) {
              queue[i].call(undefined, data);
          }
      };
      return EventEmitter2;
  }());
  exports.EventEmitter2 = EventEmitter2;
  //# sourceMappingURL=EventEmitter2.js.map