blob: db008a09b34e0e951bab0375a64c530e305fdfe3 [file] [log] [blame]
<!DOCTYPE html>
<html>
<head>
<script src="../../../http/tests/inspector/resources/inspector-test.js"></script>
<script src="../resources/log-pause-location.js"></script>
<script>
function a() {
return 1;
}
function tag(strings, ...values) {
return "ignored";
}
function entryTemplateString() {
let x;
debugger;
let str = `literal ${1} assignment ${x=1} call ${a()} call2 ${a()}`;
}
function entryTaggedTemplateString() {
let x;
debugger;
let str = tag`literal ${1} assignment ${x=1} call ${a()} call2 ${a()}`;
}
// ---------
function test()
{
let suite = InspectorTest.createAsyncSuite("Debugger.stepping.template-string");
window.initializeSteppingTestSuite(suite);
addSteppingTestCase({
name: "Debugger.stepping.TemplateStringStepOver",
description: "Should be able to step through a template string.",
expression: "setTimeout(entryTemplateString)",
steps: [
"over",
"over", // complete: `...` - leaving entry
"resume",
]
});
addSteppingTestCase({
name: "Debugger.stepping.TemplateStringStepIn",
description: "Should be able to step into template string expressions.",
expression: "setTimeout(entryTemplateString)",
steps: [
"over",
// FIXME: Opportunity to pause at assignment expressions.
"in", // into 1st a
"out", // out of a - before 2nd a()
"in", // into 2nd a
"out", // out of a - leaving entry
"resume",
]
});
addSteppingTestCase({
name: "Debugger.stepping.TaggedTemplateStringStepOver",
description: "Should be able to step through a template string.",
expression: "setTimeout(entryTaggedTemplateString)",
steps: [
"over",
"over", // complete: tag`...` - leaving entry
"resume",
]
});
addSteppingTestCase({
name: "Debugger.stepping.TaggedTemplateStringStepIn",
description: "Should be able to step into template string expressions and tag function.",
expression: "setTimeout(entryTaggedTemplateString)",
steps: [
"over",
// FIXME: Opportunity to pause at assignment expressions.
"in", // into 1st a
"out", // out of a - before 2nd a()
"in", // into 2nd a
"out", // out of a - before tag
"in", // into tag
"out", // out of tag - leaving entry
"resume",
]
});
loadMainPageContent().then(() => {
suite.runTestCasesAndFinish();
});
}
</script>
</head>
<body onload="runTest()">
<p>Checking pause locations when stepping in, out, and over template strings.</p>
</body>
</html>