[whatwg] WebIDL vs HTML5 storage changes
mjs at apple.com
Tue May 20 15:34:20 PDT 2008
On May 20, 2008, at 2:56 PM, Robert O'Callahan wrote:
> On Tue, May 20, 2008 at 3:50 PM, Maciej Stachowiak <mjs at apple.com>
> On May 19, 2008, at 4:54 PM, Robert O'Callahan wrote:
> If "storage.keyName = 'value';" can create a new storage item
> (persistently), won't authors expect "delete storage.keyName;" to
> remove it (persistently), as a matter of consistency?
> If overloading "delete" is too quirky or too hard to implement, then
> it seems none of the other shorthands should be allowed either.
> Many objects in the DOM implement custom name getters (for instance
> NodeList) and a few even implement custom name setters
> (CSSStyleDeclaration, at least the way it is done in WebKit) but no
> one has clamored for a custom deleter or expected delete to work "as
> a matter of consistency" or been confused that "style.opacity = 0"
> is allowed but "delete style.opacity" is not. So I would say the
> available evidence argues against your conclusions.
> I think 'style' does not bear on my conclusions, since 'style' has
> custom property getters and setters, but not *adders* ---
> "style.foobar = ...;" does not trigger any DOM API. Storage is
> different, it is something new.
style.opacity = ... certainly triggers DOM API even if opacity was not
previously set on that style. And there is even a plausible mapping
for delete (style.removeProperty). It's not completely open-ended but
you can certainly have properties added to and removed from a style
Ultimately the conclusion I question is that having obj.foo and
obj.foo = ... work, but not delete obj.foo, will create confusion or
is somehow illogical. I don't believe it will create confusion, and I
think style is a relevant example of a case where it has not.
-------------- next part --------------
An HTML attachment was scrubbed...
More information about the whatwg