"use strict";
Object.defineProperty(exports, Symbol.toStringTag, { value: "Module" });
const callBound$1 = require("../call-bind/callBound.cjs");
const shams = require("../has-tostringtag/shams.cjs");
var callBound = callBound$1.callBound;
var $boolToStr = callBound("Boolean.prototype.toString");
var $toString = callBound("Object.prototype.toString");
var tryBooleanObject = function booleanBrandCheck(value) {
  try {
    $boolToStr(value);
    return true;
  } catch (e) {
    return false;
  }
};
var boolClass = "[object Boolean]";
var hasToStringTag = shams.shams();
var isBooleanObject = function isBoolean(value) {
  if (typeof value === "boolean") {
    return true;
  }
  if (value === null || typeof value !== "object") {
    return false;
  }
  return hasToStringTag && Symbol.toStringTag in value ? tryBooleanObject(value) : $toString(value) === boolClass;
};
exports.isBooleanObject = isBooleanObject;
//# sourceMappingURL=index.cjs.map
