"use strict";
Object.defineProperty(exports, Symbol.toStringTag, { value: "Module" });
const isFunction$1 = require("./isFunction.js");
const _isMasked = require("./_isMasked.js");
const isObject$1 = require("./isObject.js");
const _toSource = require("./_toSource.js");
var isFunction = isFunction$1.isFunction_1, isMasked = _isMasked._isMasked, isObject = isObject$1.isObject_1, toSource = _toSource._toSource;
var reRegExpChar = /[\\^$.*+?()[\]{}|]/g;
var reIsHostCtor = /^\[object .+?Constructor\]$/;
var funcProto = Function.prototype, objectProto = Object.prototype;
var funcToString = funcProto.toString;
var hasOwnProperty = objectProto.hasOwnProperty;
var reIsNative = RegExp(
  "^" + funcToString.call(hasOwnProperty).replace(reRegExpChar, "\\$&").replace(/hasOwnProperty|(function).*?(?=\\\()| for .+?(?=\\\])/g, "$1.*?") + "$"
);
function baseIsNative(value) {
  if (!isObject(value) || isMasked(value)) {
    return false;
  }
  var pattern = isFunction(value) ? reIsNative : reIsHostCtor;
  return pattern.test(toSource(value));
}
var _baseIsNative = baseIsNative;
exports._baseIsNative = _baseIsNative;
