import { __module as isSymbol } from "../../_virtual/index16.js";
import { __require as requireCallBound } from "../call-bound/index.js";
import { __require as requireHasSymbols } from "../has-symbols/index.js";
import { __require as requireSafeRegexTest } from "../safe-regex-test/index.js";
var hasRequiredIsSymbol;
function requireIsSymbol() {
  if (hasRequiredIsSymbol) return isSymbol.exports;
  hasRequiredIsSymbol = 1;
  var callBound = requireCallBound();
  var $toString = callBound("Object.prototype.toString");
  var hasSymbols = requireHasSymbols()();
  var safeRegexTest = requireSafeRegexTest();
  if (hasSymbols) {
    var $symToStr = callBound("Symbol.prototype.toString");
    var isSymString = safeRegexTest(/^Symbol\(.*\)$/);
    var isSymbolObject = function isRealSymbolObject(value) {
      if (typeof value.valueOf() !== "symbol") {
        return false;
      }
      return isSymString($symToStr(value));
    };
    isSymbol.exports = function isSymbol2(value) {
      if (typeof value === "symbol") {
        return true;
      }
      if (!value || typeof value !== "object" || $toString(value) !== "[object Symbol]") {
        return false;
      }
      try {
        return isSymbolObject(value);
      } catch (e) {
        return false;
      }
    };
  } else {
    isSymbol.exports = function isSymbol2(value) {
      return false;
    };
  }
  return isSymbol.exports;
}
export {
  requireIsSymbol as __require
};
