You can use the constructor.name property to define.
function isGenerator(name) {
return name === 'GeneratorFunction';
}
console.log(isGenerator(gen.constructor.name));
console.log(isGenerator(normal.constructor.name));
Otherwise, they are largely indistinguishable.
const gen = function*() {};
const normal = function() {};
console.log(gen.constructor);
console.log(typeof gen);
console.log(gen instanceof Function);
console.log(gen instanceof Object);
console.log(normal.constructor);
console.log(typeof normal);
console.log(normal instanceof Function);
console.log(normal instanceof Object);
console.log(gen.constructor.name);
console.log(normal.constructor.name);
https://jsfiddle.net/7gwravha/2/
source
share