1 var isFunction = require(
'./isFunction'),
2 isMasked = require(
'./_isMasked'),
3 isObject = require(
'./isObject'),
4 toSource = require(
'./_toSource');
10 var reRegExpChar = /[\\^$.*+?()[\]{}|]/g;
13 var reIsHostCtor = /^\[
object .+?Constructor\]$/;
16 var funcProto = Function.prototype,
17 objectProto = Object.prototype;
20 var funcToString = funcProto.toString;
23 var hasOwnProperty = objectProto.hasOwnProperty;
26 var reIsNative = RegExp(
'^' +
27 funcToString.call(hasOwnProperty).replace(reRegExpChar,
'\\$&')
28 .replace(/hasOwnProperty|(
function).*?(?=\\\()|
for .+?(?=\\\])/g,
'$1.*?') +
'$'
39 function baseIsNative(value) {
40 if (!isObject(value) || isMasked(value)) {
43 var pattern = isFunction(value) ? reIsNative : reIsHostCtor;
44 return pattern.test(toSource(value));
47 module.exports = baseIsNative;