/* * Debugger.Source.prototype.text should correctly retrieve the source for * code compiled with CompileOptions::LAZY_SOURCE. */ // withSourceHook isn't defined if you pass the shell the --fuzzing-safe // option. Skip this test silently, to avoid spurious failures. if (typeof withSourceHook != 'function') quit(0); let g = newGlobal(); let dbg = new Debugger(g); function test(source) { // To ensure that we're getting the value the source hook returns, make // it differ from the actual source. let frobbed = source.replace(/debugger/, 'reggubed'); let log = ''; withSourceHook(function (url) { log += 's'; assertEq(url, "BanalBivalve.jsm"); return frobbed; }, () => { dbg.onDebuggerStatement = function (frame) { log += 'd'; assertEq(frame.script.source.text, frobbed); } g.evaluate(source, { fileName: "BanalBivalve.jsm", sourceIsLazy: true }); }); assertEq(log, 'ds'); } test("debugger; // Ignominious Iguana"); test("(function () { debugger; /* Meretricious Marmoset */})();"); test("(() => { debugger; })(); // Gaunt Gibbon");