[whatwg] WebIDL vs HTML5 storage changes

Ian Hickson ian at hixie.ch
Tue May 20 14:00:28 PDT 2008


On Mon, 19 May 2008, Maciej Stachowiak wrote:
> 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.

The difference is that "style.opacity = 0" doesn't remove "opacity" from 
the "style" object but "storage.removeItem('opacity')" _does_ remove 
"opacity" from the "storage" object.

Originally, I wanted Storage objects to be indistinguishable from Object 
objects in JS, and native hash or collection objects in other bindings. 
Conceptually, that's what these objects are -- native name/value pair 
collections that happen to be mapped to non-volatile storage (or somewhat- 
volatile storage, in the case of sessionStorage).

I'd also like the "delete" operator to work on DOMStringMap (for the 
dataset object -- calling 'delete' on that has the side-effect of removing 
the underlying attribute) and UndoManager (where the side-effect is to 
remove the entry and renumber the following entries, so maybe that's not 
such a good idea after all), for what it's worth. If we want to decide 
that we're not supporting this, we should decide that before 
implementations of those come about.

For DOMStringMap, my intention was to not provide methods at all, and only 
provide the JS-native mechanisms.

-- 
Ian Hickson               U+1047E                )\._.,--....,'``.    fL
http://ln.hixie.ch/       U+263A                /,   _.. \   _\  ;`._ ,.
Things that are impossible just take longer.   `._.-(,_..'--(,_..'`-.;.'



More information about the whatwg mailing list