Bug 18962

Summary: SQUIRRELFISH: ASSERT in JSGlobalObject::restoreLocalStorage
Product: WebKit Reporter: Cameron Zwarich (cpst) <zwarich>
Component: JavaScriptCoreAssignee: Nobody <webkit-unassigned>
Status: RESOLVED FIXED    
Severity: Normal CC: ggaren, mjs, oliver
Priority: P2    
Version: 528+ (Nightly build)   
Hardware: All   
OS: All   

Description Cameron Zwarich (cpst) 2008-05-09 02:17:25 PDT
Navigation will often cause assertion failures of the form:

ASSERTION FAILED: property->attributes() & ReadOnly == 0 && property->attributes() & DontEnum == 0
(/Users/Cameron/sf/JavaScriptCore/kjs/JSGlobalObject.cpp:167 void KJS::JSGlobalObject::restoreLocalStorage(const KJS::SavedProperties&))

A consistent way to trigger this is to attempt to load Gmail, wait for it to fail, and then use the HTML view. Clicking to view a message and then going back will trigger the assertion failure.
Comment 1 Geoffrey Garen 2008-05-09 12:56:47 PDT
Merging with trunk will fix this, since trunk eliminates JSGlobalObject::restoreLocalStorage.
Comment 2 Cameron Zwarich (cpst) 2008-05-09 13:27:21 PDT
(In reply to comment #1)
> Merging with trunk will fix this, since trunk eliminates
> JSGlobalObject::restoreLocalStorage.

I figured as much, but I just wanted to make sure there is a bug in the tracker for it. It will require slightly changing ownership on the SymbolTable, because the CodeBlock won't persist along with the JSGlobalObject.
Comment 3 Geoffrey Garen 2008-05-10 10:34:57 PDT
Actually, the global object already owns the symbol table :).
Comment 4 Cameron Zwarich (cpst) 2008-05-10 11:09:56 PDT
(In reply to comment #3)
> Actually, the global object already owns the symbol table :).

Oops, my bad. Isn't it great we always do things the right way from the beginning? ;-)