<html>
<head>
<script>
function print(message) {
    var paragraph = document.createElement("p");
    paragraph.appendChild(document.createTextNode(message));
    document.getElementById("console").appendChild(paragraph);
}

function test() {
    if (window.layoutTestController) {
        layoutTestController.dumpAsText();
    }

    var method = "console.";
    for (var i = 0; i < 6000; i++)
        method += "a";
    method += "()";
    try {
        eval(method);
    }
    catch (e) {}
    
    print("success: no crash.");
}
</script>
</head>
<body onload="test();">
<p>This test checks for a regression against <i>rdar://problem/4370397 Missing return statement in JSMethodNameToObjcMethodName</i>.</p>
<p>If the test passes, you will see a "success" message below.</p>
<hr>
<div id='console'/>
</body>
</html>
