Getting a CSS value (e.g. element.style.position) seems to go through many indirections. From JSCSSStyleDeclaration::getOwnPropertySlot() ->we check if the name is a valid CSS property -->we encode the name cssPropertyName() -->we get the property ID from the name: cssPropertyID() ->if there is and ID, the name is valid, we set the PropertySlot -->From JSCSSStyleDeclaration::nameGetter(), we do exactly the same thing: -->cssPropertyName() to get a valid name -->cssPropertyID() to get the ID -->get the property for real This seems like a lot of indirection. We can at least cut some fat between cssPropertyName() -> cssPropertyID() (some redundancy between those two) Ideally, JSCSSStyleDeclaration::getOwnPropertySlot() should keep a reference to the CSS Property ID, and getting the actual value would be cheap.
Does this show up in profiles in some benchmark?
(In reply to comment #1) > Does this show up in profiles in some benchmark? This shows up in multiple tests of PeaceKeeper. This is related to: -https://bugs.webkit.org/show_bug.cgi?id=77158 -https://bugs.webkit.org/show_bug.cgi?id=74782 which gave us some points already.
Created attachment 130494 [details] Patch
Comment on attachment 130494 [details] Patch wrong bug
Closing this meta bug. What is described here is solved. For the performance of setters, we will need work on the CSS Parser.