00001 var baseToNumber = require('./_baseToNumber'), 00002 baseToString = require('./_baseToString'); 00003 00012 function createMathOperation(operator, defaultValue) { 00013 return function(value, other) { 00014 var result; 00015 if (value === undefined && other === undefined) { 00016 return defaultValue; 00017 } 00018 if (value !== undefined) { 00019 result = value; 00020 } 00021 if (other !== undefined) { 00022 if (result === undefined) { 00023 return other; 00024 } 00025 if (typeof value == 'string' || typeof other == 'string') { 00026 value = baseToString(value); 00027 other = baseToString(other); 00028 } else { 00029 value = baseToNumber(value); 00030 other = baseToNumber(other); 00031 } 00032 result = operator(value, other); 00033 } 00034 return result; 00035 }; 00036 } 00037 00038 module.exports = createMathOperation;