<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.testRunner)
    testRunner.dumpAsText();

(function () {
    try {
        var f;
        new f;
    } catch(e1) {
        shouldBe(e1, "e1", "TypeError: 'undefined' is not a constructor (evaluating 'new f')");
    }
})();

(function () {
    try {
        var f;
        var g;
        new f(g());
    } catch(e2) {
        shouldBe(e2, "e2", "TypeError: 'undefined' is not a function (evaluating 'g()')");
    }
})();
</script>
