michael@0: expected = ''; michael@0: michael@0: function g(code) { michael@0: f = Function(code); michael@0: gen = f(); michael@0: gen.next(); michael@0: try { gen.next(); } catch (ex) { expected = ex.toString() } michael@0: } michael@0: michael@0: g("\ michael@0: yield this.__defineGetter__('x', function(){ return z }); \ michael@0: let z = new String('hi'); \ michael@0: "); michael@0: michael@0: eval(); michael@0: gc(); michael@0: michael@0: str = x; michael@0: michael@0: assertEq(expected, "[object StopIteration]"); michael@0: assertEq(str.toString(), "hi");