- From: Ian Hickson <ian@hixie.ch>
- Date: Tue, 20 May 2008 21:00:28 +0000 (UTC)
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. `._.-(,_..'--(,_..'`-.;.'
Received on Tuesday, 20 May 2008 14:00:28 UTC