<body>
<script>
function print(message, color) 
{
    var paragraph = document.createElement("div");
    paragraph.appendChild(document.createTextNode(message));
    paragraph.style.fontFamily = "monospace";
    if (color)
        paragraph.style.color = color;
    document.getElementById("console").appendChild(paragraph);
}

if (window.layoutTestController)
    layoutTestController.dumpAsText();
</script>
<iframe id=i src='about:blank' width=10 height=10>
</iframe><br>
<div id=console></div>
<script>
var otherWindow = document.getElementById('i').contentWindow;
var res;
var localVar = 1;

res = otherWindow.eval('localVar == 1');
print("Test that otherWindow.eval() keeps variables of calling context visible: " + (res ? "PASS" : "FAIL")) ;

otherWindow.localVar = 2;
res = otherWindow.eval('localVar == 2');
print("Test that otherWindow.eval() is executed with otherWindow in scope: " + (res ? "PASS" : "FAIL")) ;

res = otherWindow.eval('window == otherWindow');
print("Test that otherWindow.eval() has otherWindow as the window object: " + (res ? "PASS" : "FAIL")) ;

var savedThis = this;
res = otherWindow.eval('this == savedThis');
print("Test that otherWindow.eval() does not change 'this': " + (res ? "PASS" : "FAIL")) ;

otherWindow.eval('var myObject = new Object()');
res = (typeof myObject == "undefined");
print("Test that otherWindow.eval() changes variable context: " + (res ? "PASS" : "FAIL")) ;
</script>
