- From: Tab Atkins Jr. <jackalmage@gmail.com>
- Date: Thu, 14 Jun 2012 14:16:33 -0700
- To: François REMY <fremycompany_pub@yahoo.fr>
- Cc: Divya Manian <manian@adobe.com>, CSS 3 W3C Group <www-style@w3.org>
On Thu, Jun 14, 2012 at 2:04 PM, François REMY
<fremycompany_pub@yahoo.fr> wrote:
> | I am not sure what you mean by implementation level. At implementation
> | level I am pretty sure variables are worked on differently compared to
> | other properties. The recent commits on the WebKit nightly builds suggest
> | that to be the case http://trac.webkit.org/changeset/120154
>
> Give the relatively small number of changes in this set, I guess this is
> only a minimal CSS OM, a modified version of the tokenizer and the mechanism
> used to replace the variable tokens by their value at computation time
> (which requires to modify multiple files). Also, variables are probably
> stored differently than usual properties because they are not immediately
> converted to values. I guess 95% of the code remained shared with normal css
> properties if you consider cascade & co.
The different handling is mainly because (a) the set of vars is
open-ended, so you can't pack them into a bitfield like we do for all
the other properties, and (b) we want efficient inheritance of
variables, rather than having to clone a hashtable for every element
in the document.
They're just implementation efficiency issues. There's nothing
preventing us from handing them just like normal properties, it would
just be slower.
> | 3. CSSOM representation that defines how variables can be accessed via
> | JavaScript.
>
> Can't agree more! If you want my point of view on the matter, we just need
> to tweak to tweak
>
> + DOMString getPropertyValue(DOMString property);
> + DOMString getPropertyPriority(DOMString property);
> + void setProperty(DOMString property, DOMString value, optional DOMString
> priority);
> + DOMString removeProperty(DOMString property);
>
> to notice say they should thread variables like any other properties. Then
> we're done very quickly and it will work like a charm.
>
> myElement.style.getPropertyValue("my-preferred-color","lime");
> //or: myElement.style["my-preferred-color"] = "lime";
I abhor those get/set pairs, but the way I'll define it will indeed
work like that.
~TJ
Received on Thursday, 14 June 2012 21:17:24 UTC