<html>
<script>
function runTest()
{
    if (window.testRunner)
        testRunner.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>
