code: function mixable(obj, recursive) {
    if (obj == null) {
      obj = {};
    }
    if (recursive == null) {
      recursive = true;
    }
    // Do not override the mixin function, even it is not mine.
    if (isPrimitive(obj) || obj.mixin != null) {
      return obj;
    }
    // Recursively make the prototypes mixable.
    if (recursive && (obj.prototype != null)) {
      mixable(obj.prototype);
    }
    // The common mixin.
    defineProp(obj, 'mixin', {
      configurable: true,
      enumerable: false,
      value: mixin
    });
    return obj;
  }
docs: Add a mixin() function to a target object.
  
  @param {Object}
  
  @return {Object}