blob: 856dd6cb539c494743bc6ce7d8ece81cad5e15c5 [file] [log] [blame]
<!DOCTYPE html>
<html>
<head>
<script src="../../http/tests/inspector/resources/inspector-test.js"></script>
<script>
TestPage.allowUncaughtExceptions = true;
function triggerMessageFromNamedEvaluation() {
eval("//# sourceURL=named-eval.js\nconsole.log('inside named-eval.js')");
}
function triggerExceptionFromNamedFunctionConstructorEvaluation() {
Function("//# sourceURL=named-function-constructor.js\n({}).x.x")();
}
function test()
{
let suite = InspectorTest.createAsyncSuite("Console.messageAdded.messageFromNamedEvaluations");
suite.addTestCase({
name: "TriggerMessageFromNameEvaluation",
description: "Message from named evaluation should have a source location.",
test(resolve, reject) {
WI.consoleManager.awaitEvent(WI.ConsoleManager.Event.MessageAdded)
.then((event) => {
let message = event.data.message;
let topCallFrame = message.stackTrace.callFrames[0];
InspectorTest.expectThat(topCallFrame.sourceCodeLocation.sourceCode.displayName === "named-eval.js", "Log ConsoleMessage top call frame should have sourceURL name.");
})
.then(resolve, reject);
InspectorTest.evaluateInPage("triggerMessageFromNamedEvaluation()");
}
});
suite.addTestCase({
name: "TriggerExceptionFromNameFunctionConstructorEvaluation",
description: "Exception message from named Function constructor evaluation should have a source location.",
test(resolve, reject) {
WI.consoleManager.awaitEvent(WI.ConsoleManager.Event.MessageAdded)
.then((event) => {
let message = event.data.message;
let topCallFrame = message.stackTrace.callFrames[0];
InspectorTest.expectThat(topCallFrame.sourceCodeLocation.sourceCode.displayName === "named-function-constructor.js", "Exception ConsoleMessage top call frame should have sourceURL name.");
})
.then(resolve, reject);
InspectorTest.evaluateInPage("setTimeout(triggerExceptionFromNamedFunctionConstructorEvaluation)");
}
});
suite.runTestCasesAndFinish();
}
</script>
</head>
<body onload="runTest()">
<p>Console messages in named evaluations should have call frames with the correct name.</p>
</body>
</html>