uni-ticket-system/node_modules/licia/isNative.js
2023-12-05 10:11:10 +08:00

24 lines
663 B
JavaScript

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;