W3C home > Mailing lists > Public > whatwg@whatwg.org > May 2009

[whatwg] Overriding functions in DOM Storage

From: Jeremy Orlow <jorlow@google.com>
Date: Fri, 22 May 2009 17:41:18 -0700
Message-ID: <5dd9e5c50905221741g36331cbarf845329b03137ee9@mail.gmail.com>
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.)  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/259f6a25/attachment.htm>
Received on Friday, 22 May 2009 17:41:18 UTC

This archive was generated by hypermail 2.4.0 : Wednesday, 22 January 2020 16:59:12 UTC