docs: function parseBorrows(params, constructor) {
          if (hasOwn(params, '$borrows')) {
              var current,
                  k,
                  key,
                  value,
                  mixins = toArray(params.$borrows),
                  i = mixins.length;
  
              for (i -= 1; i >= 0; i -= 1) {
                  current = mixins[i];
                  // If it's a vanilla object
                  if (isObject(current)) {
                      borrowFromVanilla(current, constructor);
                      continue;
                  }
                  // If it's a vanilla class
                  if (isFunction(current) && !current[$class]) {
                      borrowFromVanilla(current.prototype, constructor);
                      continue;
                  }
  
                  current = current.prototype;
  
                  // Grab mixin members
                  borrowFromVanilla(current, constructor);
  
                  // Grab mixin static methods
                  for (k = current.$static[$class].staticMethods.length - 1; k >= 0; k -= 1) {
                      key = current.$static[$class].staticMethods[k];
  
                      insert(constructor[$class].staticMethods, key);
                      constructor[key] = current.$static[key];
                  }
  
                  // Grab mixin static properties
                  for (key in current.$static[$class].staticProperties) {
                      value = current.$static[$class].staticProperties[key];
  
                      constructor[$class].staticProperties[key] = value;
                      constructor[key] = value;
                  }
  
                  // Merge the binds
                  combine(constructor[$class].binds, current.$static[$class].binds);
              }
  
              delete params.$borrows;
          }
      }