test_stepping-02.js (1517B)
1 /* Any copyright is dedicated to the Public Domain. 2 http://creativecommons.org/publicdomain/zero/1.0/ */ 3 4 "use strict"; 5 6 /** 7 * Check basic step-in functionality. 8 */ 9 10 add_task( 11 threadFrontTest(async ({ threadFront, debuggee }) => { 12 dumpn("Evaluating test code and waiting for first debugger statement"); 13 const dbgStmt = await executeOnNextTickAndWaitForPause( 14 () => evaluateTestCode(debuggee), 15 threadFront 16 ); 17 equal( 18 dbgStmt.frame.where.line, 19 2, 20 "Should be at debugger statement on line 2" 21 ); 22 equal(debuggee.a, undefined); 23 equal(debuggee.b, undefined); 24 25 const step1 = await stepIn(threadFront); 26 equal(step1.why.type, "resumeLimit"); 27 equal(step1.frame.where.line, 3); 28 equal(debuggee.a, undefined); 29 equal(debuggee.b, undefined); 30 31 const step3 = await stepIn(threadFront); 32 equal(step3.why.type, "resumeLimit"); 33 equal(step3.frame.where.line, 4); 34 equal(debuggee.a, 1); 35 equal(debuggee.b, undefined); 36 37 const step4 = await stepIn(threadFront); 38 equal(step4.why.type, "resumeLimit"); 39 equal(step4.frame.where.line, 4); 40 equal(debuggee.a, 1); 41 equal(debuggee.b, 2); 42 }) 43 ); 44 45 function evaluateTestCode(debuggee) { 46 // prettier-ignore 47 Cu.evalInSandbox( 48 ` // 1 49 debugger; // 2 50 var a = 1; // 3 51 var b = 2;`, // 4 52 debuggee, 53 "1.8", 54 "test_stepping-01-test-code.js", 55 1 56 ); 57 }