<html> <head> <script src="resources/clearLocalStorage.js"></script> <script> if (window.layoutTestController) layoutTestController.dumpAsText(); function log(a) { document.getElementById('logger').appendChild(document.createTextNode(a)); document.getElementById('logger').appendChild(document.createElement("br")); } function runTest() { if (!window.localStorage) { log("window.localStorage DOES NOT exist"); return; } log("foo (before anything) is: " + localStorage.foo); localStorage.foo = "bar"; log("foo (after a named property settter set) is: " + localStorage.foo); delete localStorage.foo; log("foo (after a delete) is: " + localStorage.foo); localStorage["foo"] = "bar"; log("foo (after an indexed setter set) is: " + localStorage.foo); delete localStorage.FOO; log("foo (after deleting FOO (not foo)) is: " + localStorage.foo); delete localStorage.foo; log("foo (after a delete) is: " + localStorage.foo); localStorage.setItem("foo", "bar"); log("foo (after calling setItem) is: " + localStorage.foo); delete localStorage.foo; log("foo (after a delete) is: " + localStorage.foo); delete localStorage.foo; log("foo (after a redundant delete) is: " + localStorage.foo); localStorage.foo = "bar"; log("foo (after an implicit settter set) is: " + localStorage.foo); delete localStorage["foo"]; log("foo (after an indexed delete) is: " + localStorage.foo); } </script> </head> <body onload="runTest();"> This test makes sure that using the syntax `delete localStorage.keyName` works as an alias to `localStorage.removeItem(keyName).`<br><hr> <div id="logger"></div> </body> </html>