|
Packit |
f0b94e |
/* Any copyright is dedicated to the Public Domain.
|
|
Packit |
f0b94e |
* http://creativecommons.org/publicdomain/zero/1.0/ */
|
|
Packit |
f0b94e |
|
|
Packit |
f0b94e |
function toggleBreakpoint(dbg, index) {
|
|
Packit |
f0b94e |
const bp = findElement(dbg, "breakpointItem", index);
|
|
Packit |
f0b94e |
const input = bp.querySelector("input");
|
|
Packit |
f0b94e |
input.click();
|
|
Packit |
f0b94e |
}
|
|
Packit |
f0b94e |
|
|
Packit |
f0b94e |
async function removeBreakpoint(dbg, index) {
|
|
Packit |
f0b94e |
const removed = waitForDispatch(dbg, "REMOVE_BREAKPOINT");
|
|
Packit |
f0b94e |
const bp = findElement(dbg, "breakpointItem", index);
|
|
Packit |
f0b94e |
bp.querySelector(".close-btn").click();
|
|
Packit |
f0b94e |
await removed;
|
|
Packit |
f0b94e |
}
|
|
Packit |
f0b94e |
|
|
Packit |
f0b94e |
async function disableBreakpoint(dbg, index) {
|
|
Packit |
f0b94e |
const disabled = waitForDispatch(dbg, "DISABLE_BREAKPOINT");
|
|
Packit |
f0b94e |
toggleBreakpoint(dbg, index);
|
|
Packit |
f0b94e |
await disabled;
|
|
Packit |
f0b94e |
}
|
|
Packit |
f0b94e |
|
|
Packit |
f0b94e |
async function enableBreakpoint(dbg, index) {
|
|
Packit |
f0b94e |
const enabled = waitForDispatch(dbg, "ENABLE_BREAKPOINT");
|
|
Packit |
f0b94e |
toggleBreakpoint(dbg, index);
|
|
Packit |
f0b94e |
await enabled;
|
|
Packit |
f0b94e |
}
|
|
Packit |
f0b94e |
|
|
Packit |
f0b94e |
function toggleBreakpoints(dbg, count) {
|
|
Packit |
f0b94e |
clickElement(dbg, "toggleBreakpoints");
|
|
Packit |
f0b94e |
}
|
|
Packit |
f0b94e |
|
|
Packit |
f0b94e |
function disableBreakpoints(dbg, count) {
|
|
Packit |
f0b94e |
const toggled = waitForDispatch(dbg, "DISABLE_BREAKPOINT", count);
|
|
Packit |
f0b94e |
toggleBreakpoints(dbg);
|
|
Packit |
f0b94e |
return toggled;
|
|
Packit |
f0b94e |
}
|
|
Packit |
f0b94e |
|
|
Packit |
f0b94e |
function enableBreakpoints(dbg, count) {
|
|
Packit |
f0b94e |
const enabled = waitForDispatch(dbg, "ENABLE_BREAKPOINT", count);
|
|
Packit |
f0b94e |
toggleBreakpoints(dbg);
|
|
Packit |
f0b94e |
return enabled;
|
|
Packit |
f0b94e |
}
|
|
Packit |
f0b94e |
|
|
Packit |
f0b94e |
function findBreakpoint(dbg, url, line) {
|
|
Packit |
f0b94e |
const { selectors: { getBreakpoint }, getState } = dbg;
|
|
Packit |
f0b94e |
const source = findSource(dbg, url);
|
|
Packit |
f0b94e |
return getBreakpoint(getState(), { sourceId: source.id, line });
|
|
Packit |
f0b94e |
}
|
|
Packit |
f0b94e |
|
|
Packit |
f0b94e |
function findBreakpoints(dbg) {
|
|
Packit |
f0b94e |
const { selectors: { getBreakpoints }, getState } = dbg;
|
|
Packit |
f0b94e |
return getBreakpoints(getState());
|
|
Packit |
f0b94e |
}
|
|
Packit |
f0b94e |
|
|
Packit |
f0b94e |
add_task(async function() {
|
|
Packit |
f0b94e |
const dbg = await initDebugger("doc-scripts.html");
|
|
Packit |
f0b94e |
|
|
Packit |
f0b94e |
// Create two breakpoints
|
|
Packit |
f0b94e |
await selectSource(dbg, "simple2");
|
|
Packit |
f0b94e |
await addBreakpoint(dbg, "simple2", 3);
|
|
Packit |
f0b94e |
await addBreakpoint(dbg, "simple2", 5);
|
|
Packit |
f0b94e |
|
|
Packit |
f0b94e |
// Disable the first one
|
|
Packit |
f0b94e |
await disableBreakpoint(dbg, 1);
|
|
Packit |
f0b94e |
let bp1 = findBreakpoint(dbg, "simple2", 3);
|
|
Packit |
f0b94e |
let bp2 = findBreakpoint(dbg, "simple2", 5);
|
|
Packit |
f0b94e |
is(bp1.disabled, true, "first breakpoint is disabled");
|
|
Packit |
f0b94e |
is(bp2.disabled, false, "second breakpoint is enabled");
|
|
Packit |
f0b94e |
|
|
Packit |
f0b94e |
// Disable and Re-Enable the second one
|
|
Packit |
f0b94e |
await disableBreakpoint(dbg, 2);
|
|
Packit |
f0b94e |
await enableBreakpoint(dbg, 2);
|
|
Packit |
f0b94e |
bp2 = findBreakpoint(dbg, "simple2", 5);
|
|
Packit |
f0b94e |
is(bp2.disabled, false, "second breakpoint is enabled");
|
|
Packit |
f0b94e |
});
|