jrpc.js
function upgrade() {
  if (!this.active) {
    return this;
  }
  return this.call(
    'system.listComponents',
    this.localComponents,
    (function(err, result) {
      if (!err && typeof result === 'object') {
        this.remoteComponents = result;
        this.remoteComponents['system._upgraded'] = true;
      }
    }).bind(this)
  );
}
function upgrade() {
  if (!this.active) {
    return this;
  }
  return this.call(
    'system.listComponents',
    this.localComponents,
    (function(err, result) {
      if (!err && typeof result === 'object') {
        this.remoteComponents = result;
        this.remoteComponents['system._upgraded'] = true;
      }
    }).bind(this)
  );
}
function upgrade ( ) { if ( ! this . active ) { return this ; } return this . call ( 'system.listComponents' , this . localComponents , ( function ( err , result ) { if ( ! err && typeof result === 'object' ) { this . remoteComponents = result ; this . remoteComponents [ 'system._upgraded' ] = true ; } } ) . bind ( this ) ) ; }
Handshake to discover remote extended capabilities

@return {JRPC} This instance, for chaining
Handshake to discover remote extended capabilities