JavaScriptCore:

2008-09-03  Geoffrey Garen  <ggaren@apple.com>

        Reviewed by Cameron Zwarich.
        
        Fixed <rdar://problem/6193925> REGRESSION: Crash occurs at
        KJS::Machine::privateExecute() when attempting to load my Mobile Gallery
        (http://www.me.com/gallery/#home)
        
        also
        
        https://bugs.webkit.org/show_bug.cgi?id=20633 Crash in privateExecute
        @ cs.byu.edu
        
        The underlying problem was that we would cache prototype properties
        even if the prototype was a dictionary.
        
        The fix is to transition a prototype back from dictionary to normal
        status when an opcode caches access to it. (This is better than just
        refusing to cache, since a heavily accessed prototype is almost
        certainly not a true dictionary.)

        * VM/Machine.cpp:
        (KJS::Machine::tryCacheGetByID):
        * kjs/JSObject.h:

LayoutTests:

2008-09-04  Geoffrey Garen  <ggaren@apple.com>

        Reviewed by Cameron Zwarich.
        
        Test for <rdar://problem/6193925> REGRESSION: Crash occurs at
        KJS::Machine::privateExecute() when attempting to load my Mobile Gallery
        (http://www.me.com/gallery/#home)
        
        also
        
        https://bugs.webkit.org/show_bug.cgi?id=20633 Crash in privateExecute
        @ cs.byu.edu

        * fast/js/pic/dictionary-prototype-expected.txt: Added.
        * fast/js/pic/dictionary-prototype.html: Added.



git-svn-id: http://svn.webkit.org/repository/webkit/trunk@36081 268f45cc-cd09-0410-ab3c-d52691b4dbfc
6 files changed