Bug 127253

Summary: JSC Parser: Shrink BindingNode.
Product: WebKit Reporter: Andreas Kling <kling>
Component: JavaScriptCoreAssignee: Andreas Kling <kling>
Status: RESOLVED FIXED    
Severity: Normal CC: ggaren, kling, oliver
Priority: P2    
Version: 528+ (Nightly build)   
Hardware: Unspecified   
OS: Unspecified   
Attachments:
Description Flags
Patch ggaren: review+

Description Andreas Kling 2014-01-19 10:59:10 PST
JSC Parser: Shrink BindingNode.
Comment 1 Andreas Kling 2014-01-19 10:59:44 PST
Created attachment 221590 [details]
Patch
Comment 2 Geoffrey Garen 2014-01-19 11:29:03 PST
Comment on attachment 221590 [details]
Patch

r=me
Comment 3 Geoffrey Garen 2014-01-19 11:29:24 PST
I'm surprised that this matters, since the parse tree is a temporary data structure.
Comment 4 Andreas Kling 2014-01-19 11:30:37 PST
(In reply to comment #3)
> I'm surprised that this matters, since the parse tree is a temporary data structure.

These hang off of the VM's CodeCache.
Comment 5 Geoffrey Garen 2014-01-19 11:31:51 PST
Are you sure? The code cache stores an UnlinkedCodeBlock, which contains bytecode, not AST.
Comment 6 Andreas Kling 2014-01-19 11:39:03 PST
Hurgh, right you are! Something is keeping these objects alive though. Maybe we have a bug. :O
Comment 7 Geoffrey Garen 2014-01-19 11:44:59 PST
Maybe a leak?
Comment 8 Andreas Kling 2014-01-19 12:05:05 PST
Looks like these hang off of UnlinkedCodeBlock. UnlinkedFunctionExecutable has a FunctionParameters which contains a bunch of DeconstructionPatternNodes originating in the parser.
Comment 9 Geoffrey Garen 2014-01-19 13:17:59 PST
I see. We should be able to refactor and remove those. Can you send a bug to Oliver?
Comment 10 Oliver Hunt 2014-01-19 21:09:02 PST
(In reply to comment #9)
> I see. We should be able to refactor and remove those. Can you send a bug to Oliver?

Hurk - yeah that's not ideal currently, it's deliberately held but i think reparsing of the arg list is probably the best approach.
Comment 11 Andreas Kling 2014-01-20 17:06:07 PST
Committed r162393: <http://trac.webkit.org/changeset/162393>