| 12345678910111213141516171819202122232425262728293031 | 'use strict';var callBound = require('call-bound');var safeRegexTest = require('safe-regex-test');var isFnRegex = safeRegexTest(/^\s*(?:function)?\*/);var hasToStringTag = require('has-tostringtag/shams')();var getProto = require('get-proto');var toStr = callBound('Object.prototype.toString');var fnToStr = callBound('Function.prototype.toString');var getGeneratorFunction = require('generator-function');/** @type {import('.')} */module.exports = function isGeneratorFunction(fn) {	if (typeof fn !== 'function') {		return false;	}	if (isFnRegex(fnToStr(fn))) {		return true;	}	if (!hasToStringTag) {		var str = toStr(fn);		return str === '[object GeneratorFunction]';	}	if (!getProto) {		return false;	}	var GeneratorFunction = getGeneratorFunction();	return GeneratorFunction && getProto(fn) === GeneratorFunction.prototype;};
 |