docs: function Session(conn) {
    Session.super_.call(this);
  
    var self = this;
    this.sm = new StateMachine(stateMachine(this));
    this.sm.bind(function(event, oldState, newState) {
      debug('stateChange(' + self.remoteChannel + '):', oldState, '=>', newState, ', reason:', event);
    });
  
    this.setMaxListeners(100);
    this.connection = conn;
    this.mapped = false;
    this.remoteChannel = undefined;
    this._allocatedHandles = {};
    this._deliveryTag = 1;
    this._senderLinks = {};
    this._receiverLinks = {};
    this._linksByRemoteHandle = {};
    this._disposed = false;
  }