code: function mixIn(source) {
      var descriptor;
      for (var key in source) {
          if ((descriptor = Object.getOwnPropertyDescriptor(source, key))) {
              Object.defineProperty(this, key, descriptor);
          }
      }
      return this;
  }
docs: Mix `source` members into `this`.
  
  @example
  // A. Simple usage (using .call):
  var mixIn = require('overrider').mixIn;
  var target = { a: 1 }, source = { b: 2 };
  target === overrider.mixIn.call(target, source) // true
  // target object now has both a and b; source object untouched
  
  @example
  // B. Semantic usage (when the target hosts the method):
  var mixIn = require('overrider').mixIn;
  var target = { a: 1, mixIn: mixIn }, source = { b: 2 };
  target === target.mixIn(source) // true
  // target now has both a and b (and mixIn); source untouched
  
  @param source
  @returns {object} The target object (`this`)
  @memberOf overrider
  @memberOf module:overrider