<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", "SharedWorker", "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>

