| 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;
 |