lib/proto/register.js
function() {
    var lib, name, names, _i, _len;
    lib = arguments[0], names = 2 <= arguments.length ? __slice.call(arguments, 1) : [];
    for (_i = 0, _len = names.length; _i < _len; _i++) {
      name = names[_i];
      if (lib[name] == null) {
        return;
      }
      if (this[name] == null) {
        this[name] = {};
      }
      if (!isObject(this[name])) {
        return;
      }
      mixin(this[name], lib[name]);
    }
    return this;
  }
function() {
    var lib, name, names, _i, _len;
    lib = arguments[0], names = 2 <= arguments.length ? __slice.call(arguments, 1) : [];
    for (_i = 0, _len = names.length; _i < _len; _i++) {
      name = names[_i];
      if (lib[name] == null) {
        return;
      }
      if (this[name] == null) {
        this[name] = {};
      }
      if (!isObject(this[name])) {
        return;
      }
      mixin(this[name], lib[name]);
    }
    return this;
  }
function ( ) { var lib , name , names , _i , _len ; lib = arguments [ 0 ] , names = 2 <= arguments . length ? __slice . call ( arguments , 1 ) : [ ] ; for ( _i = 0 , _len = names . length ; _i < _len ; _i ++ ) { name = names [ _i ] ; if ( lib [ name ] == null ) { return ; } if ( this [ name ] == null ) { this [ name ] = { } ; } if ( ! isObject ( this [ name ] ) ) { return ; } mixin ( this [ name ] , lib [ name ] ) ; } return this ; }
Extend with another register.

@param lib
@param *name

@return {this}
Extend with another register .