| 1234567891011121314151617181920212223242526272829303132333435 | 
							- 'use strict';
 
- var toStr = Object.prototype.toString;
 
- var hasSymbols = require('has-symbols')();
 
- if (hasSymbols) {
 
- 	var symToStr = Symbol.prototype.toString;
 
- 	var symStringRegex = /^Symbol\(.*\)$/;
 
- 	var isSymbolObject = function isRealSymbolObject(value) {
 
- 		if (typeof value.valueOf() !== 'symbol') {
 
- 			return false;
 
- 		}
 
- 		return symStringRegex.test(symToStr.call(value));
 
- 	};
 
- 	module.exports = function isSymbol(value) {
 
- 		if (typeof value === 'symbol') {
 
- 			return true;
 
- 		}
 
- 		if (toStr.call(value) !== '[object Symbol]') {
 
- 			return false;
 
- 		}
 
- 		try {
 
- 			return isSymbolObject(value);
 
- 		} catch (e) {
 
- 			return false;
 
- 		}
 
- 	};
 
- } else {
 
- 	module.exports = function isSymbol(value) {
 
- 		// this environment does not support Symbols.
 
- 		return false && value;
 
- 	};
 
- }
 
 
  |