Thu, 22 Jan 2015 13:21:57 +0100
Incorporate requested changes from Mozilla in review:
https://bugzilla.mozilla.org/show_bug.cgi?id=1123480#c6
michael@0 | 1 | // Environments of different instances of the same generator have the same |
michael@0 | 2 | // callee. I love this job. |
michael@0 | 3 | |
michael@0 | 4 | var g = newGlobal(); |
michael@0 | 5 | var dbg = new Debugger; |
michael@0 | 6 | var gw = dbg.addDebuggee(g); |
michael@0 | 7 | |
michael@0 | 8 | function check(gen, label) { |
michael@0 | 9 | print("check(" + label + ")"); |
michael@0 | 10 | var hits; |
michael@0 | 11 | dbg.onDebuggerStatement = function (frame) { |
michael@0 | 12 | hits++; |
michael@0 | 13 | var env = frame.environment; |
michael@0 | 14 | assertEq(env.callee, gw.makeDebuggeeValue(g.f)); |
michael@0 | 15 | }; |
michael@0 | 16 | hits = 0; |
michael@0 | 17 | gen.next(); |
michael@0 | 18 | assertEq(hits, 1); |
michael@0 | 19 | } |
michael@0 | 20 | |
michael@0 | 21 | g.eval('function f(x) { debugger; yield x; }'); |
michael@0 | 22 | g.eval('var g = f(2);'); |
michael@0 | 23 | g.eval('var h = f(3);'); |
michael@0 | 24 | check(g.g, 'g.g'); |
michael@0 | 25 | check(g.h, 'g.h'); |
michael@0 | 26 | |
michael@0 | 27 | g.eval('function* f(x) { debugger; yield x; }'); |
michael@0 | 28 | g.eval('var g = f(2);'); |
michael@0 | 29 | g.eval('var h = f(3);'); |
michael@0 | 30 | check(g.g, 'g.g'); |
michael@0 | 31 | check(g.h, 'g.h'); |