1234567891011121314151617181920212223 |
- 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;
|