<html>
<head>
    <title>Calling bindings constructors as function should not cause a crash</title>
    <script>
        if (window.testRunner)
            testRunner.dumpAsText();

        function runTest()
        {
            // List of constructors to test.
            var constructors = ["EventSource", "MessageChannel", "WebGLArrayBuffer", "WebKitCSSMatrix", "WebKitPoint", "WebSocket", "Worker", "XMLHttpRequest", "XSLTProcessor"];
            var result = document.getElementById("result");
            for (var i in constructors) {
                try {
                    var func = constructors[i] + "()";
                    eval(func);
                    result.innerHTML += "FAIL";
                }
                catch (e) {
                    result.innerHTML += "PASS";
                }
                result.innerHTML += ": " + constructors[i] + "<br/>";
            }
        }

    </script>
</head>
<body onload="runTest()">
    <p>Calling <code>bindings</code> constructors as function should throw an exception and not cause a crash.</p>
    <div id="result"></div>
</html>

