<p>
This page tests exceptions thrown from 'new' expressions. If the test passes,
you'll see a series of PASS messages below.
</p>
<pre id="console"></pre>

<script>
function log(s)
{
    document.getElementById("console").appendChild(document.createTextNode(s + "\n"));
}

function shouldBe(a, aDescription, b)
{
    if (a == b) {
        log("PASS: " + aDescription + " should be '" + String(b) + "' and is.");
        return;
    }
    
    log ("FAIL: " + aDescription + " should be '" + String(b) + "' but instead is '" + String(a) + "'.");
}

if (window.layoutTestController)
    layoutTestController.dumpAsText();

(function () {
    try {
        var f;
        new f;
    } catch(e1) {
        shouldBe(e1, "e1", "TypeError: Result of expression 'f' [undefined] is not a constructor.");
    }
})();

(function () {
    try {
        var f;
        var g;
        new f(g());
    } catch(e2) {
        shouldBe(e2, "e2", "TypeError: Result of expression 'g' [undefined] is not a function.");
    }
})();
</script>
