Frame-this-14.js (618B)
1 // Test that Debugger.Frame.prototype.this works on a suspended generator 2 // function. 3 4 load(libdir + "asserts.js"); 5 6 const g = newGlobal({ newCompartment: true }); 7 const dbg = new Debugger(); 8 const gDO = dbg.addDebuggee(g); 9 10 g.eval(` 11 var context = {}; 12 var f = function*() { 13 return this; 14 }.bind(context); 15 `); 16 17 let frame; 18 dbg.onEnterFrame = f => { 19 frame = f; 20 assertEq(frame.this, gDO.makeDebuggeeValue(g.context)); 21 dbg.onEnterFrame = undefined; 22 }; 23 24 const it = g.f(); 25 26 assertEq(!!frame, true); 27 assertEq(frame.this, gDO.makeDebuggeeValue(g.context)); 28 29 it.next(); 30 31 assertThrowsInstanceOf(() => frame.this, Error);