<html>
<head>
<script src="../../http/tests/inspector/inspector-test.js"></script>
<script src="../../http/tests/inspector/console-test.js"></script>
<script>

function b()
{
    console.trace();
}

function a()
{
    b();
}

function test()
{
    function callback()
    {
        InspectorTest.dumpConsoleMessages();
        InspectorTest.completeTest();
    }
    InspectorTest.evaluateInPage("setTimeout(a, 0)");
    InspectorTest.addConsoleSniffer(callback);
}

</script>
</head>

<body onload="runTest()">
<p>
Tests that console.trace dumps stack trace with source URLs and line numbers.
</p>

</body>
</html>
