<p>
This page tests cached access to properties of dictionary objects and objects
with changing prototypes. If the test passes, you'll see a series of PASS messages
below.
</p>

<pre id="console"></pre>

<script>
(function() {
    if (window.testRunner)
        testRunner.dumpAsText();

    function log(s)
    {
        if (this.document)
            document.getElementById("console").appendChild(document.createTextNode(s + "\n"));
        else
            print(s + "\n");
    }
    
    function shouldBe(a, aDescription, b)
    {
        if (a === b) {
            log("PASS: " + aDescription + " should be " + b + " and is.\n");
        } else {
            log("FAIL: " + aDescription + " should be " + b + " but instead is " + a + ".\n");
        }
    }
    
    (function() {
        var largestInteger = 4294967295;
        var array = new Array();
        array[largestInteger - 1] = "test";
        var len = -1;
        for (var i=0; i<10; ++i) len = array.length;
        
        shouldBe(len, "len", largestInteger);
    })();

})();
</script>
