<html>
<head>
    <title>Calling bindings constructors as function should not cause a crash</title>
    <script>
        if (window.layoutTestController)
            layoutTestController.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>

