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

console.log({toString:{}});

function test()
{
    InspectorTest.reloadPage(function() {
        InspectorTest.dumpConsoleMessages();
        InspectorTest.completeTest();
    });
}
</script>
</head>
<body onload="runTest()">
<p>
Tests that passing an object which throws on string conversion into console.log won't crash
inspected Page. The test passes if it doesn't crash.
<a href="https://bugs.webkit.org/show_bug.cgi?id=57557">Bug 57557</a>
</p>
</body>
</html>
