<html>
<script>
function runTest()
{
    if (window.layoutTestController)
        layoutTestController.dumpAsText();

    var plugin = document.getElementById("testPlugin");
    var result1 = document.getElementById('result1');
    try {
        plugin.testThrowException();
    } catch (e) {
        result1.innerHTML = e.message;
    }
    var result2 = document.getElementById('result2');
    try {
        plugin.testObject.throwException();
    } catch (e) {
        result2.innerHTML = e.message;
    }
}
</script>

<body onload="runTest();">
<embed id="testPlugin" type="application/x-webkit-test-netscape" width="200" height="200"></embed>
This tests that a plugin can throw exceptions. If this test is successful the text "SUCCESS" twice below.
<div id="result1">FAILURE</div>
<div id="result2">FAILURE</div>
</body>
</html>
