Bug 134140

Summary: Support for-in in the FTL
Product: WebKit Reporter: Mark Hahnenberg <mhahnenberg>
Component: JavaScriptCoreAssignee: Mark Hahnenberg <mhahnenberg>
Status: RESOLVED FIXED    
Severity: Normal    
Priority: P2    
Version: 528+ (Nightly build)   
Hardware: Unspecified   
OS: Unspecified   
Bug Depends on: 134141    
Bug Blocks:    
Attachments:
Description Flags
Patch
none
Patch
none
Patch
fpizlo: review+
benchmark results none

Description Mark Hahnenberg 2014-06-20 15:53:50 PDT
Currently we only support the for-in construct in the LLInt and baseline JIT. We should add support for for-in to the DFG and FTL.
Comment 1 Mark Hahnenberg 2014-07-28 17:16:26 PDT
Created attachment 235649 [details]
Patch
Comment 2 Mark Hahnenberg 2014-07-28 17:16:50 PDT
(In reply to comment #1)
> Created an attachment (id=235649) [details]
> Patch

Initial cut. Still running perf tests.
Comment 3 Mark Hahnenberg 2014-07-28 17:28:01 PDT
(In reply to comment #2)
> (In reply to comment #1)
> > Created an attachment (id=235649) [details] [details]
> > Patch
> 
> Initial cut. Still running perf tests.

Still a few bugs lurking.
Comment 4 Mark Hahnenberg 2014-07-28 17:47:01 PDT
Created attachment 235653 [details]
Patch
Comment 5 Mark Hahnenberg 2014-07-28 18:16:24 PDT
Created attachment 235655 [details]
Patch
Comment 6 Mark Hahnenberg 2014-07-29 11:00:59 PDT
Created attachment 235696 [details]
benchmark results
Comment 7 Filip Pizlo 2014-07-29 13:32:52 PDT
Comment on attachment 235655 [details]
Patch

View in context: https://bugs.webkit.org/attachment.cgi?id=235655&action=review

> Source/JavaScriptCore/ftl/FTLAbstractHeapRepository.h:79
> +    macro(Structure_structureID, Structure::structureIDOffset()) \
> +    macro(JSPropertyNameEnumerator_cachedStructureID, JSPropertyNameEnumerator::cachedStructureIDOffset()) \
> +    macro(JSPropertyNameEnumerator_cachedInlineCapacity, JSPropertyNameEnumerator::cachedInlineCapacityOffset()) \
> +    macro(JSPropertyNameEnumerator_cachedPropertyNamesLength, JSPropertyNameEnumerator::cachedPropertyNamesLengthOffset()) \
> +    macro(JSPropertyNameEnumerator_cachedPropertyNamesVector, JSPropertyNameEnumerator::cachedPropertyNamesVectorOffset())

Sort in alphabetical order.
Comment 8 Mark Hahnenberg 2014-07-29 15:44:37 PDT
Landed in http://trac.webkit.org/changeset/171763