Bug 69501

Summary: SpeculativeJIT::isKnownString() is wrong
Product: WebKit Reporter: Filip Pizlo <fpizlo>
Component: JavaScriptCoreAssignee: Nobody <webkit-unassigned>
Status: RESOLVED FIXED    
Severity: Normal    
Priority: P2    
Version: 528+ (Nightly build)   
Hardware: All   
OS: All   
Attachments:
Description Flags
the patch oliver: review+

Description Filip Pizlo 2011-10-05 22:15:53 PDT
It returns true if the child is a GetLocal and the local's prediction is PredictString.  But that's not right, since PredictString just means that the local is predicted to be a string, rather than it's known to be a string.

For some predictions, like array, boolean, and int32, we enforce predictions on local variables when we do a SetLocal.  But we don't do this for strings.  Hence, we can't have the same logic for strings as we have for those types.
Comment 1 Filip Pizlo 2011-10-05 22:18:56 PDT
Created attachment 109915 [details]
the patch
Comment 2 Oliver Hunt 2011-10-05 22:36:28 PDT
Comment on attachment 109915 [details]
the patch

It makes me sad that we can't propagate stringiness :-(
Comment 3 Filip Pizlo 2011-10-05 22:37:45 PDT
(In reply to comment #2)
> (From update of attachment 109915 [details])
> It makes me sad that we can't propagate stringiness :-(

I'm working on it!  Happy thoughts!
Comment 4 Filip Pizlo 2011-10-06 02:08:23 PDT
Landed in r96794.