var isObj = require('./isObj'); var isFn = require('./isFn'); var toSrc = require('./toSrc'); exports = function(val) { if (!isObj(val)) return false; if (isFn(val)) return regIsNative.test(toSrc(val)); return regIsHostCtor.test(toSrc(val)); }; var hasOwnProperty = Object.prototype.hasOwnProperty; var regIsNative = new RegExp( '^' + toSrc(hasOwnProperty) .replace(/[\\^$.*+?()[\]{}|]/g, '\\$&') .replace( /hasOwnProperty|(function).*?(?=\\\()| for .+?(?=\\\])/g, '$1.*?' ) + '$' ); var regIsHostCtor = /^\[object .+?Constructor\]$/; module.exports = exports;