Bug 96147

Summary: [V8] DOM wrapper creation involves a bunch of sketchy code related to finding the Frame
Product: WebKit Reporter: Adam Barth <abarth>
Component: New BugsAssignee: Adam Barth <abarth>
Status: RESOLVED FIXED    
Severity: Normal CC: eric, haraken, webkit.review.bot
Priority: P2    
Version: 528+ (Nightly build)   
Hardware: Unspecified   
OS: Unspecified   
Bug Depends on: 96154, 96174    
Bug Blocks: 96038    
Attachments:
Description Flags
Work in progress
none
Patch
none
Now with test progression
none
Patch
none
Patch for landing none

Description Adam Barth 2012-09-07 14:09:36 PDT
[V8] DOM wrapper creation involves a bunch of sketchy code related to finding the Frame
Comment 1 Adam Barth 2012-09-07 14:09:50 PDT
Created attachment 162866 [details]
Work in progress
Comment 2 Adam Barth 2012-09-07 14:16:34 PDT
This patch works great, it's just slow.

== Before ==

Running Bindings/first-child.html (1 of 1)
DESCRIPTION: This benchmark covers 'firstChild', 'lastChild', 'nextSibling' and 'previousSibling' in Dromaeo/dom-traverse.html, and other DOM attributes that return a Node object.
RESULT Bindings: first-child= 791.916889238 runs/s
median= 793.650793651 runs/s, stdev= 6.87585793436 runs/s, min= 781.25 runs/s, max= 803.011292346 runs/s
RESULT Bindings: first-child: JSHeap= 1329937.6 bytes
median= 1326148.0 bytes, stdev= 12365.9021765 bytes, min= 1319928.0 bytes, max= 1367472.0 bytes
RESULT Bindings: first-child: Malloc= 0.0 bytes
median= 0.0 bytes, stdev= 0.0 bytes, min= 0.0 bytes, max= 0.0 bytes

== After ==

Running Bindings/first-child.html (1 of 1)
DESCRIPTION: This benchmark covers 'firstChild', 'lastChild', 'nextSibling' and 'previousSibling' in Dromaeo/dom-traverse.html, and other DOM attributes that return a Node object.
RESULT Bindings: first-child= 365.905414836 runs/s
median= 369.393139842 runs/s, stdev= 10.5470471025 runs/s, min= 325.814536341 runs/s, max= 372.836218375 runs/s
RESULT Bindings: first-child: JSHeap= 1329978.4 bytes
median= 1326000.0 bytes, stdev= 12336.8814471 bytes, min= 1319856.0 bytes, max= 1367488.0 bytes
RESULT Bindings: first-child: Malloc= 0.0 bytes
median= 0.0 bytes, stdev= 0.0 bytes, min= 0.0 bytes, max= 0.0 bytes
Comment 3 Adam Barth 2012-09-07 16:23:01 PDT
Created attachment 162897 [details]
Patch
Comment 4 Adam Barth 2012-09-07 16:24:35 PDT
This patch works and is fast, but might be too large to review.  Here's the patch broken down into a number of smaller steps:

https://github.com/abarth/webkit/compare/master...CreationContext

I'll post each step as an individual patch.
Comment 5 Adam Barth 2012-09-07 16:32:23 PDT
Created attachment 162900 [details]
Now with test progression
Comment 6 Adam Barth 2012-09-07 16:45:49 PDT
Created attachment 162904 [details]
Patch
Comment 7 Adam Barth 2012-09-07 18:38:41 PDT
Committed r127955: <http://trac.webkit.org/changeset/127955>
Comment 8 WebKit Review Bot 2012-09-07 21:58:12 PDT
Re-opened since this is blocked by 96174
Comment 9 Adam Barth 2012-09-08 10:26:00 PDT
Created attachment 162959 [details]
Patch for landing
Comment 10 WebKit Review Bot 2012-09-08 11:17:17 PDT
Comment on attachment 162959 [details]
Patch for landing

Clearing flags on attachment: 162959

Committed r127972: <http://trac.webkit.org/changeset/127972>
Comment 11 WebKit Review Bot 2012-09-08 11:17:20 PDT
All reviewed patches have been landed.  Closing bug.