I would like to improve my understanding of the word reentrant.
Is this function reentrant?
function* foo() { yield 1; yield 2;}
And this one?
function foo() { return 1;}
And this one?
var x = 0;function foo() { return x++;}
And this one?
function foo() { setTimeout(foo, 1000);}