diff options
Diffstat (limited to 'deps/npm/node_modules/is-symbol/index.js')
-rw-r--r-- | deps/npm/node_modules/is-symbol/index.js | 35 |
1 files changed, 35 insertions, 0 deletions
diff --git a/deps/npm/node_modules/is-symbol/index.js b/deps/npm/node_modules/is-symbol/index.js new file mode 100644 index 0000000000..3d653e27f5 --- /dev/null +++ b/deps/npm/node_modules/is-symbol/index.js @@ -0,0 +1,35 @@ +'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; + }; +} |