State of generators?
I don't know what version of V8 you are using but I'm using them in unstable Node.js so V8 is v3.19. The StopIteration is gone and they do return an object with the "value" property.
I think Chrome 29 would be the browser version you should be testing with.
The currently posted spec draft is up to date WRT generators
I've just filed these:
close and send have been eliminated. The latest spec draft (rev 15) reflects that and includes an updated diagram
On Jun 8, 2013, at 1:42 PM, Juan Ignacio Dopazo wrote:
I'm having trouble understanding the current status of generators. Last time I checked, the standard was what V8 has just implemented:
- Generator objects had next(), send(), throw() and close() methods
- These methods returned objects with "value" and "done" properties
It seems now that:
- send() and close() are gone
yes, those have been eliminated
- next(value) seems to be the same as send(value)
yes, next(value) replaces send(value)
- All methods seem to return the yielded result, not an object with a "value" property
No, yield produces a nextResult object. The last line of the yield runtime semantics in 13.4.1.2 is:
Return the result of GeneratorYield(CreateItrResultObject(value, false)).
Note that a iteration result object is being created and passed to the abstract operation at does the actual context switch.
So, is StopIteration back? How do we know if a generator is done?
No. via a object that implements the ItrResult (name subject to change) interface as specified in 15.19.1.3
I totally missed the CreateItrResultObject part. Thank you very much!
Hello,
I'm having trouble understanding the current status of generators. Last time I checked, the standard was what V8 has just implemented:
It seems now that:
So, is StopIteration back? How do we know if a generator is done?
Thanks, Juan