Brendan Eich (2014-01-25T05:30:37.000Z)
domenic at domenicdenicola.com (2014-01-29T15:55:31.922Z)
David Bruant wrote: > This is making me realize that generators are fully compilable > (efficiently from what I can see) into ES5 and makes me wonder if the > current generators specificities are worth it. Very specifically, do > we really need Generator.prototype [ @@toStringTag ] === "Generator" ? > From an author point of view, I don't really see in which situation > this information could matter. As a comparison, functions generated > after the class syntax do not have an @@toStringTag to "Class". > Generators would just be sugar to write iterators (+ .throw) The answer is that class constructor is a Function instance, not a ClassFunction instance, because classes are mostly sugar for the prototypal pattern, whereas generators do *not* desugar in any translating-not-compiling sense. Matthias Felleisen wrote a paper, "On the Expressive Power of Programming Languages", that gets at the difference between compilation in general and translation or desugaring. You say generators are sugar to write iterators (+ .throw), but my understanding per Felleisen is that's an abuse of "sugar". Regenerator is a compiler, not a translator of like-to-like-expressiveness languages.