| 1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071727374 | 
							- var arrayEach = require('./_arrayEach'),
 
-     arrayPush = require('./_arrayPush'),
 
-     baseFunctions = require('./_baseFunctions'),
 
-     copyArray = require('./_copyArray'),
 
-     isFunction = require('./isFunction'),
 
-     isObject = require('./isObject'),
 
-     keys = require('./keys');
 
- /**
 
-  * Adds all own enumerable string keyed function properties of a source
 
-  * object to the destination object. If `object` is a function, then methods
 
-  * are added to its prototype as well.
 
-  *
 
-  * **Note:** Use `_.runInContext` to create a pristine `lodash` function to
 
-  * avoid conflicts caused by modifying the original.
 
-  *
 
-  * @static
 
-  * @since 0.1.0
 
-  * @memberOf _
 
-  * @category Util
 
-  * @param {Function|Object} [object=lodash] The destination object.
 
-  * @param {Object} source The object of functions to add.
 
-  * @param {Object} [options={}] The options object.
 
-  * @param {boolean} [options.chain=true] Specify whether mixins are chainable.
 
-  * @returns {Function|Object} Returns `object`.
 
-  * @example
 
-  *
 
-  * function vowels(string) {
 
-  *   return _.filter(string, function(v) {
 
-  *     return /[aeiou]/i.test(v);
 
-  *   });
 
-  * }
 
-  *
 
-  * _.mixin({ 'vowels': vowels });
 
-  * _.vowels('fred');
 
-  * // => ['e']
 
-  *
 
-  * _('fred').vowels().value();
 
-  * // => ['e']
 
-  *
 
-  * _.mixin({ 'vowels': vowels }, { 'chain': false });
 
-  * _('fred').vowels();
 
-  * // => ['e']
 
-  */
 
- function mixin(object, source, options) {
 
-   var props = keys(source),
 
-       methodNames = baseFunctions(source, props);
 
-   var chain = !(isObject(options) && 'chain' in options) || !!options.chain,
 
-       isFunc = isFunction(object);
 
-   arrayEach(methodNames, function(methodName) {
 
-     var func = source[methodName];
 
-     object[methodName] = func;
 
-     if (isFunc) {
 
-       object.prototype[methodName] = function() {
 
-         var chainAll = this.__chain__;
 
-         if (chain || chainAll) {
 
-           var result = object(this.__wrapped__),
 
-               actions = result.__actions__ = copyArray(this.__actions__);
 
-           actions.push({ 'func': func, 'args': arguments, 'thisArg': object });
 
-           result.__chain__ = chainAll;
 
-           return result;
 
-         }
 
-         return func.apply(object, arrayPush([this.value()], arguments));
 
-       };
 
-     }
 
-   });
 
-   return object;
 
- }
 
- module.exports = mixin;
 
 
  |