Frame-this-15.js (686B)
1 // Test that Debugger.Frame.prototype.this works on a suspended async 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 = async function() { 13 await Promise.resolve(); 14 return this; 15 }.bind(context); 16 `); 17 18 let frame; 19 dbg.onEnterFrame = f => { 20 frame = f; 21 assertEq(frame.this, gDO.makeDebuggeeValue(g.context)); 22 dbg.onEnterFrame = undefined; 23 }; 24 25 (async () => { 26 const promise = g.f(); 27 28 assertEq(!!frame, true); 29 assertEq(frame.this, gDO.makeDebuggeeValue(g.context)); 30 31 await promise; 32 33 assertThrowsInstanceOf(() => frame.this, Error); 34 })();