summaryrefslogtreecommitdiff
path: root/deps/npm/node_modules/is-symbol/index.js
diff options
context:
space:
mode:
Diffstat (limited to 'deps/npm/node_modules/is-symbol/index.js')
-rw-r--r--deps/npm/node_modules/is-symbol/index.js35
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;
+ };
+}