yield and new : SpiderMonkey and the draft Spec

Brendan Eich brendan at mozilla.com
Mon Mar 14 13:02:37 PDT 2011

> I.e. again, what I notice (and asked), is that there's no any info in the draft spec about `this` value of the generator's context. I think it would be good to add this information.

A generator function is still a function, and |this| binding is orthogonal to yield making the surrounding function a generator:

js> function gen() { yield [this, 1]; yield [this, 2]; yield [this, 3]; }
js> var obj = {foo: gen, toString: function(){return "[obj]"}}             
js> var a = []
js> for (v in obj.foo()) a.push(v)                                        
js> a[0][0] === obj                                                       
js> a[0][0] === obj                                                       
js> a[1][0] === obj 
js> a[2][0] === obj 
js> a.toString()

We'll clarify this in the strawman.


More information about the es-discuss mailing list