<script>
    parent.logTitle("Child 2 loaded.");
    parent.test("getObjectOfChild1", "myVal");
    parent.test("getGlobalOfChild1", "myGlobalVal");

    Object.prototype.myVal = "child2";
    var myGlobal = {
        myGlobalVal: "child2"
    };

    parent.logTitle("Child 2 objects set.");

    parent.getObjectOfChild2 = function()
    {
        return {};
    };

    parent.getGlobalOfChild2 = function()
    {
        return myGlobal;
    };

    parent.test("getObjectOfChild1", "myVal");
    parent.test("getGlobalOfChild1", "myGlobalVal");
    parent.test("getObjectOfChild2", "myVal");
    parent.test("getGlobalOfChild2", "myGlobalVal");
    parent.test("getObjectOfParent", "myVal");
    parent.test("getGlobalOfParent", "myGlobalVal");

    onload = function()
    {
        parent.done();
    }
</script>
Child 2
