[whatwg] Overriding functions in DOM Storage
Jeremy Orlow
jorlow at google.com
Fri May 22 17:51:29 PDT 2009
On Fri, May 22, 2009 at 5:41 PM, Jeremy Orlow <jorlow at google.com> wrote:
> What is the behavior of the following supposed to be?
>
> window.sessionStorage.removeItem = function(x) { alert("Wait, this
> works?"); };
> window.sessionStorage.removeItem('blah');
> alert(typeof window.sessionStorage.removeItem);
>
> Safari shows 2 alerts, and the second one says 'function'.
> IE8 says "object doesn't support this property or method" if line 2 isn't
> commented out. It returns type string when it is.
> Mozilla also won't run if line 2 is there, but it returns type object for
> line 3.
>
> It seems to me that if IE8's behavior is correct, those parameters should
> be marked as read-only since overriding them could only be used to shoot
> yourself in the foot.
>
> If Safari's implementation is correct (and it's good for the
> implementations to be overridable), then I believe there needs to be some
> safe way to make .clear() usable again. (Otherwise, once you override
> removeItem() and clear(), there's not really any way to recover.)
>
Never mind. "delete window.localStorage.clear;" should handle this use
case.
That said, IE8 doesn't support the delete operator in this fashion and
.clear() does not reset functions in Safari 4 (beta).
> The spec would also need to make it clear that removeItem, setItem, etc are
> special and should not be serialized to disk.
>
> Apologies if this is clear in the spec and I somehow missed it. But, if
> not, I think a clarification might be necessary.
>
> J
>
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.whatwg.org/pipermail/whatwg-whatwg.org/attachments/20090522/b1b0c49a/attachment-0002.htm>
More information about the whatwg
mailing list