| var baseToNumber = require('./_baseToNumber'), | 
 |     baseToString = require('./_baseToString'); | 
 |  | 
 | /** | 
 |  * Creates a function that performs a mathematical operation on two values. | 
 |  * | 
 |  * @private | 
 |  * @param {Function} operator The function to perform the operation. | 
 |  * @param {number} [defaultValue] The value used for `undefined` arguments. | 
 |  * @returns {Function} Returns the new mathematical operation function. | 
 |  */ | 
 | function createMathOperation(operator, defaultValue) { | 
 |   return function(value, other) { | 
 |     var result; | 
 |     if (value === undefined && other === undefined) { | 
 |       return defaultValue; | 
 |     } | 
 |     if (value !== undefined) { | 
 |       result = value; | 
 |     } | 
 |     if (other !== undefined) { | 
 |       if (result === undefined) { | 
 |         return other; | 
 |       } | 
 |       if (typeof value == 'string' || typeof other == 'string') { | 
 |         value = baseToString(value); | 
 |         other = baseToString(other); | 
 |       } else { | 
 |         value = baseToNumber(value); | 
 |         other = baseToNumber(other); | 
 |       } | 
 |       result = operator(value, other); | 
 |     } | 
 |     return result; | 
 |   }; | 
 | } | 
 |  | 
 | module.exports = createMathOperation; |