chromium/third_party/blink/manual_tests/inspector/bp-in-named-eval-after-reload.html

<style>code{background-color: #ffc;}</style>
<p><b>Test for <a href="https://bugs.webkit.org/show_bug.cgi?id=31375">Bug 31375</a> - Web Inspector: breakpoints in named evals are not restored after a reload</b>

<ul>
<li><p>open this page with Web Inspector
<li><p>switch to the Scripts panel, enabling debug if required
<li><p>the available scripts in the select element should be:
<ul>
<li>(program): f1.js
<li>(program): f2.js
<li>bp-in-named-eval-after-reload.html
</ul>
<li><p>In <code>(program) f1.js</code>, set a breakpoint on the first
executable line of the function <code>f1()</code>, the invocation of <code>doNothing()</code>.
<li><p>In <code>(program) f2.js</code>, set a breakpoint on the first
executable line of the function <code>f2()</code>, the invocation of <code>doNothing()</code>.
<li><p>click this button: <input id=button type=button value="click me">
<li><p>debugger should stop in the <code>f1()</code> function.
<li><p>resume the debugger
<li><p>debugger should stop in the <code>f2()</code> function (the function in <code>(program) f2.js</code>)
<li><p>resume the debugger
<li><p>switch to the web page, reload the web page, switch back to web inspector
<li><p>in the breakpoints sidebar panel, click on the two breakpoints listed
and the source for those functions should be shown in the source panel, and
the previous breakpoint markers should be visible
<li><p>click the "click me" button above, again
<li><p>debugger should stop in the <code>f1()</code> function.
<li><p>resume the debugger
<li><p>debugger should stop in the <code>f2()</code> function.
<li><p>resume the debugger
</ul>

<p>Note that without the fix in <a href="https://bugs.webkit.org/show_bug.cgi?id=31375">Bug 31375</a>,
the breakpoints won't work after reloading the page.

<script>

function doNothing() { /* allows multi-line functions, easier to debug */ };

eval([
    "function f1() {",
    "   doNothing();",
    "   console.log(new Date() + ':  f1() called');",
    "}",
    "//# sourceURL=f1.js"
].join("\n"));

f2 = Function([
    "",
    "   doNothing();",
    "   console.log(new Date() + ':  f2() called');",
    "//# sourceURL=f2.js"
].join("\n"));

var button = document.getElementById("button");

button.addEventListener("click", clickHandler, false);

function clickHandler() {
    f1();
    f2();
}

</script>
<!-- End -->