00001 var Symbol = require('./_Symbol'),
00002 arrayMap = require('./_arrayMap'),
00003 isArray = require('./isArray'),
00004 isSymbol = require('./isSymbol');
00005
00007 var INFINITY = 1 / 0;
00008
00010 var symbolProto = Symbol ? Symbol.prototype : undefined,
00011 symbolToString = symbolProto ? symbolProto.toString : undefined;
00012
00021 function baseToString(value) {
00022
00023 if (typeof value == 'string') {
00024 return value;
00025 }
00026 if (isArray(value)) {
00027
00028 return arrayMap(value, baseToString) + '';
00029 }
00030 if (isSymbol(value)) {
00031 return symbolToString ? symbolToString.call(value) : '';
00032 }
00033 var result = (value + '');
00034 return (result == '0' && (1 / value) == -INFINITY) ? '-0' : result;
00035 }
00036
00037 module.exports = baseToString;