60 lines
1.4 KiB
JavaScript
60 lines
1.4 KiB
JavaScript
/* Any copyright is dedicated to the Public Domain.
|
|
http://creativecommons.org/publicdomain/zero/1.0/ */
|
|
|
|
"use strict";
|
|
|
|
/**
|
|
* Bug 1333219 - make that setBreakpoint fails when script is not found
|
|
* at the specified line.
|
|
*/
|
|
|
|
add_task(
|
|
threadFrontTest(async ({ threadFront, debuggee }) => {
|
|
// Populate the `ScriptStore` so that we only test that the script
|
|
// is added through `onNewScript`
|
|
await getSources(threadFront);
|
|
|
|
const packet = await executeOnNextTickAndWaitForPause(() => {
|
|
evalCode(debuggee);
|
|
}, threadFront);
|
|
const source = await getSourceById(threadFront, packet.frame.where.actor);
|
|
|
|
const location = {
|
|
line: debuggee.line0 + 2,
|
|
};
|
|
|
|
const [res] = await setBreakpoint(source, location);
|
|
ok(!res.error);
|
|
|
|
const location2 = {
|
|
line: debuggee.line0 + 7,
|
|
};
|
|
|
|
await source.setBreakpoint(location2).then(
|
|
() => {
|
|
do_throw("no code shall not be found the specified line or below it");
|
|
},
|
|
reason => {
|
|
Assert.equal(reason.error, "noCodeAtLineColumn");
|
|
ok(reason.message);
|
|
}
|
|
);
|
|
|
|
await resume(threadFront);
|
|
})
|
|
);
|
|
|
|
function evalCode(debuggee) {
|
|
// Start a new script
|
|
Cu.evalInSandbox(
|
|
`
|
|
var line0 = Error().lineNumber;
|
|
function some_function() {
|
|
// breakpoint is valid here -- it slides one line below (line0 + 2)
|
|
}
|
|
debugger;
|
|
// no breakpoint is allowed after the EOF (line0 + 6)
|
|
`,
|
|
debuggee
|
|
);
|
|
}
|