<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01//EN"
        "http://www.w3.org/TR/html4/strict.dtd">
<html>
<head>
    <title>Test for bug 4233558</title>
<script type="text/javascript" charset="utf-8">
    if (window.testRunner) {
        testRunner.dumpAsText();
        testRunner.waitUntilDone();
    }

    function clickBody(event) {
        var resultsDiv = document.getElementById("resultsDiv");
        
        resultsDiv.innerHTML +=  "event.view :<br/>";
        try {
            resultsDiv.innerHTML +=  "document: " + event.view.document + "<br/>";
            resultsDiv.innerHTML +=  "proto: " + event.view.__proto__ + "<br/>";
            resultsDiv.innerHTML +=  " Success getting " + event.view + "<br/>";
        }
        catch(e) {
            resultsDiv.innerHTML +=  " ERROR (" + e + ") getting value!<br/>";
        }
        if (window.testRunner) {
            testRunner.notifyDone();
        }
    }

    function loadHandler() {
        var resultsDiv = document.getElementById("resultsDiv");
        if (window.eventSender) {
            eventSender.mouseMoveTo(50, 50);
            eventSender.mouseDown();
            eventSender.mouseUp();
        } else {
            resultsDiv.innerHTML += "Manual test mode.<br/>";
        }
    }
</script>
</head>
<body onLoad="loadHandler()" onmousedown="clickBody(event)">
<p>Test for toString on event.view.  This test simulates a click when run via DumpRenderTree.  Otherwise, click below and you should see "Success":</p>
<div  id="resultsDiv" />
</body>
</html>
