[Webkit-unassigned] [Bug 49739] WebIDL attributes should be implemented as getters and setters on the prototype object.

bugzilla-daemon at webkit.org bugzilla-daemon at webkit.org
Sun Jun 19 18:22:27 PDT 2011


https://bugs.webkit.org/show_bug.cgi?id=49739





--- Comment #12 from Oliver Hunt <oliver at apple.com>  2011-06-19 18:22:27 PST ---
(In reply to comment #11)
> (In reply to comment #10)
> > (In reply to comment #8)
> > > (In reply to comment #7)
> > > 
> > > Thanks for the insight.
> > > 
> > > > Correction: I know that setters aren't cached.  Assigning to dom properties would be hammered, but they are theoretically already slow.  If we added caching to setters we would probably end up with a net win.
> > > > 
> > > > > Getters will be hit by additional branches to validate the proto chain which is unfortunate.
> > > > 
> > > > This will suck, but given that they're getter/setter pairs that we provide we might be able to remove at least _a_ branch from the current cached path.  We should also be able to avoid constructing an actual function wrapper until we absolutely have to (getOwnPropertyDescriptor requires us to provide the function object)
> > > 
> > > Could you point me to where this cache is in JSC?
> > 
> > What cache?
> 
> When you say setters aren’t cached, but because getters/setters come in pairs it could be possible to remove a branch from the "current cached path", what specifically are you referring too? I am still getting up to speed on JSC…

JSC has an internal idiosyncrasy/bug that means an object's structure is influenced by a new property being added as a getter or setter, but subsequently changing that getter or setter does not change the structure.  This means we have to do a null check in the "cached" path.  For builtin getters/setters we know they're well behaved and should be able to drop that bit of stupid, even if we don't fix the main getter/setter stupidity

-- 
Configure bugmail: https://bugs.webkit.org/userprefs.cgi?tab=email
------- You are receiving this mail because: -------
You are the assignee for the bug.


More information about the webkit-unassigned mailing list