93 lines
3.4 KiB
HTML
93 lines
3.4 KiB
HTML
<!DOCTYPE html>
|
|
<html>
|
|
<head>
|
|
<script src="../../http/tests/inspector/resources/inspector-test.js"></script>
|
|
<script>
|
|
function triggerFunctionConstructorMultipleTimes() {
|
|
let sum = 0;
|
|
sum += Function("\n//# sourceURL=test-Function-constructor.js\nreturn 1+1")();
|
|
sum += Function("\n//# sourceURL=test-Function-constructor.js\nreturn 1+1")();
|
|
sum += Function("\n//# sourceURL=test-Function-constructor.js\nreturn 1+1")();
|
|
return sum;
|
|
}
|
|
|
|
function triggerProgramMultipleTimes() {
|
|
for (let i = 0; i < 3; ++i) {
|
|
let script = document.createElement("script");
|
|
script.text = "\n//# sourceURL=test-program.js\n1+1";
|
|
document.head.appendChild(script);
|
|
}
|
|
}
|
|
|
|
function triggerEvalMultipleTimes() {
|
|
let sum = 0;
|
|
sum += eval("\n//# sourceURL=test-eval.js\n1+1");
|
|
sum += eval("\n//# sourceURL=test-eval.js\n1+1");
|
|
sum += eval("\n//# sourceURL=test-eval.js\n1+1");
|
|
return sum;
|
|
}
|
|
|
|
function test()
|
|
{
|
|
let suite = InspectorTest.createAsyncSuite("Debugger.scriptParsed.sourceURLRepeatedIdenticalExecutions");
|
|
|
|
// Disable breakpoints to ensure we do not avoid the CodeCache.
|
|
DebuggerAgent.setBreakpointsActive(false);
|
|
|
|
suite.addTestCase({
|
|
name: "CheckFunctionConstructorMultipleTimes",
|
|
description: "Trigger multiple Function constructor calls with the same source and expect multiple Scripts added with sourceURLs.",
|
|
test(resolve, reject) {
|
|
let seen = 0;
|
|
WI.debuggerManager.addEventListener(WI.DebuggerManager.Event.ScriptAdded, (event) => {
|
|
if (event.data.script.sourceURL === "test-Function-constructor.js")
|
|
seen++;
|
|
});
|
|
InspectorTest.evaluateInPage("triggerFunctionConstructorMultipleTimes()", () => {
|
|
InspectorTest.expectThat(seen === 3, "Should see 3 Scripts with sourceURL");
|
|
resolve();
|
|
});
|
|
}
|
|
});
|
|
|
|
suite.addTestCase({
|
|
name: "CheckProgramMultipleTimes",
|
|
description: "Trigger multiple program executions with the same source and expect multiple Scripts added with sourceURLs.",
|
|
test(resolve, reject) {
|
|
let seen = 0;
|
|
WI.debuggerManager.addEventListener(WI.DebuggerManager.Event.ScriptAdded, (event) => {
|
|
if (event.data.script.sourceURL === "test-program.js")
|
|
seen++;
|
|
});
|
|
InspectorTest.evaluateInPage("triggerProgramMultipleTimes()", () => {
|
|
InspectorTest.expectThat(seen === 3, "Should see 3 Scripts with sourceURL");
|
|
resolve();
|
|
});
|
|
}
|
|
});
|
|
|
|
suite.addTestCase({
|
|
name: "CheckEvalMultipleTimes",
|
|
description: "Trigger eval with the same source and expect multiple Scripts added with sourceURLs.",
|
|
test(resolve, reject) {
|
|
let seen = 0;
|
|
WI.debuggerManager.addEventListener(WI.DebuggerManager.Event.ScriptAdded, (event) => {
|
|
if (event.data.script.sourceURL === "test-eval.js")
|
|
seen++;
|
|
});
|
|
InspectorTest.evaluateInPage("triggerEvalMultipleTimes()", () => {
|
|
InspectorTest.expectThat(seen === 3, "Should see 3 Scripts with sourceURL");
|
|
resolve();
|
|
});
|
|
}
|
|
});
|
|
|
|
suite.runTestCasesAndFinish();
|
|
}
|
|
</script>
|
|
</head>
|
|
<body onload="runTest()">
|
|
<p>Tests for the Debugger.scriptParsed messages for identical content should have source directives each time.</p>
|
|
</body>
|
|
</html>
|