index.js
function mixIn(source) {
    var descriptor;
    for (var key in source) {
        if ((descriptor = Object.getOwnPropertyDescriptor(source, key))) {
            Object.defineProperty(this, key, descriptor);
        }
    }
    return this;
}
function mixIn(source) {
    var descriptor;
    for (var key in source) {
        if ((descriptor = Object.getOwnPropertyDescriptor(source, key))) {
            Object.defineProperty(this, key, descriptor);
        }
    }
    return this;
}
function mixIn ( source ) { var descriptor ; for ( var key in source ) { if ( ( descriptor = Object . getOwnPropertyDescriptor ( source , key ) ) ) { Object . defineProperty ( this , key , descriptor ) ; } } return this ; }
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
Mix source members into this .