artdaq_node_server  v1_00_08
 All Classes Namespaces Files Variables Pages
_baseIsNative.js
1 var isFunction = require('./isFunction'),
2  isMasked = require('./_isMasked'),
3  isObject = require('./isObject'),
4  toSource = require('./_toSource');
5 
10 var reRegExpChar = /[\\^$.*+?()[\]{}|]/g;
11 
13 var reIsHostCtor = /^\[object .+?Constructor\]$/;
14 
16 var funcProto = Function.prototype,
17  objectProto = Object.prototype;
18 
20 var funcToString = funcProto.toString;
21 
23 var hasOwnProperty = objectProto.hasOwnProperty;
24 
26 var reIsNative = RegExp('^' +
27  funcToString.call(hasOwnProperty).replace(reRegExpChar, '\\$&')
28  .replace(/hasOwnProperty|(function).*?(?=\\\()| for .+?(?=\\\])/g, '$1.*?') + '$'
29 );
30 
39 function baseIsNative(value) {
40  if (!isObject(value) || isMasked(value)) {
41  return false;
42  }
43  var pattern = isFunction(value) ? reIsNative : reIsHostCtor;
44  return pattern.test(toSource(value));
45 }
46 
47 module.exports = baseIsNative;