UNPKG

foop

Version:

interfaces that describe their intentions.

42 lines (40 loc) 3.44 kB
var funcToString = require('../native/functionToString') var matchNative = require('../regexp/matchNative') /** * @desc based on isNative from react-fibers, based on isNative() from Lodash * @since 4.0.6 * @memberOf is * @func isNative * * @param {*} x value to check * @return {boolean} * * {@link https://esdiscuss.org/topic/spec-feedback-on-rev-6#content-2 esdiscuss-functiontostring} * {@link https://github.com/lodash/lodash/issues/2185 lodash-functiontostring-issue} * {@link http://tc39.github.io/Function-prototype-toString-revision/ functiontostring-emca} * {@link https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Function/toString Function.toString} * * @see {@link Function.toString} * @see {@link functiontostring-emca} * @see {@link lodash-functiontostring-issue} * @see {@link esdiscuss-functiontostring} * * @example * * isNative(Array.prototype.push) * //=> true * * isNative(function normalFunction() {}) * //=> false * */ module.exports = function isNative(x) { try { var source = funcToString.call(x) return matchNative.test(source) } catch (err) { return false } } //# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibmF0aXZlLmpzIiwic291cmNlcyI6WyJuYXRpdmUuanMiXSwic291cmNlc0NvbnRlbnQiOlsiY29uc3QgZnVuY1RvU3RyaW5nID0gcmVxdWlyZSgnLi4vbmF0aXZlL2Z1bmN0aW9uVG9TdHJpbmcnKVxuY29uc3QgbWF0Y2hOYXRpdmUgPSByZXF1aXJlKCcuLi9yZWdleHAvbWF0Y2hOYXRpdmUnKVxuXG4vKipcbiAqIEBkZXNjIGJhc2VkIG9uIGlzTmF0aXZlIGZyb20gcmVhY3QtZmliZXJzLCBiYXNlZCBvbiBpc05hdGl2ZSgpIGZyb20gTG9kYXNoXG4gKiBAc2luY2UgNC4wLjZcbiAqIEBtZW1iZXJPZiBpc1xuICogQGZ1bmMgaXNOYXRpdmVcbiAqXG4gKiBAcGFyYW0geyp9IHggdmFsdWUgdG8gY2hlY2tcbiAqIEByZXR1cm4ge2Jvb2xlYW59XG4gKlxuICoge0BsaW5rIGh0dHBzOi8vZXNkaXNjdXNzLm9yZy90b3BpYy9zcGVjLWZlZWRiYWNrLW9uLXJldi02I2NvbnRlbnQtMiBlc2Rpc2N1c3MtZnVuY3Rpb250b3N0cmluZ31cbiAqIHtAbGluayBodHRwczovL2dpdGh1Yi5jb20vbG9kYXNoL2xvZGFzaC9pc3N1ZXMvMjE4NSBsb2Rhc2gtZnVuY3Rpb250b3N0cmluZy1pc3N1ZX1cbiAqIHtAbGluayBodHRwOi8vdGMzOS5naXRodWIuaW8vRnVuY3Rpb24tcHJvdG90eXBlLXRvU3RyaW5nLXJldmlzaW9uLyBmdW5jdGlvbnRvc3RyaW5nLWVtY2F9XG4gKiB7QGxpbmsgaHR0cHM6Ly9kZXZlbG9wZXIubW96aWxsYS5vcmcvZW4tVVMvZG9jcy9XZWIvSmF2YVNjcmlwdC9SZWZlcmVuY2UvR2xvYmFsX09iamVjdHMvRnVuY3Rpb24vdG9TdHJpbmcgRnVuY3Rpb24udG9TdHJpbmd9XG4gKlxuICogQHNlZSB7QGxpbmsgRnVuY3Rpb24udG9TdHJpbmd9XG4gKiBAc2VlIHtAbGluayBmdW5jdGlvbnRvc3RyaW5nLWVtY2F9XG4gKiBAc2VlIHtAbGluayBsb2Rhc2gtZnVuY3Rpb250b3N0cmluZy1pc3N1ZX1cbiAqIEBzZWUge0BsaW5rIGVzZGlzY3Vzcy1mdW5jdGlvbnRvc3RyaW5nfVxuICpcbiAqIEBleGFtcGxlXG4gKlxuICogaXNOYXRpdmUoQXJyYXkucHJvdG90eXBlLnB1c2gpXG4gKiAvLz0+IHRydWVcbiAqXG4gKiBpc05hdGl2ZShmdW5jdGlvbiBub3JtYWxGdW5jdGlvbigpIHt9KVxuICogLy89PiBmYWxzZVxuICpcbiAqL1xubW9kdWxlLmV4cG9ydHMgPSBmdW5jdGlvbiBpc05hdGl2ZSh4KSB7XG4gIHRyeSB7XG4gICAgY29uc3Qgc291cmNlID0gZnVuY1RvU3RyaW5nLmNhbGwoeClcbiAgICByZXR1cm4gbWF0Y2hOYXRpdmUudGVzdChzb3VyY2UpXG4gIH1cbiAgY2F0Y2ggKGVycikge1xuICAgIHJldHVybiBmYWxzZVxuICB9XG59XG4iXSwibmFtZXMiOlsiY29uc3QiXSwibWFwcGluZ3MiOiJBQUFBQSxHQUFLLENBQUMsWUFBWSxHQUFHLE9BQU8sQ0FBQyw0QkFBNEIsQ0FBQztBQUMxREEsR0FBSyxDQUFDLFdBQVcsR0FBRyxPQUFPLENBQUMsdUJBQXVCLENBQUM7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7OztBQThCcEQsTUFBTSxDQUFDLE9BQU8sR0FBRyxTQUFTLFFBQVEsQ0FBQyxDQUFDLEVBQUU7RUFDcEMsSUFBSTtJQUNGQSxHQUFLLENBQUMsTUFBTSxHQUFHLFlBQVksQ0FBQyxJQUFJLENBQUMsQ0FBQyxDQUFDO0lBQ25DLE9BQU8sV0FBVyxDQUFDLElBQUksQ0FBQyxNQUFNLENBQUM7R0FDaEM7RUFDRCxPQUFPLEdBQUcsRUFBRTtJQUNWLE9BQU8sS0FBSztHQUNiO0NBQ0Y7In0=