| OLD | NEW |
| 1 <html> | 1 <html> |
| 2 <head> | 2 <head> |
| 3 <script> | 3 <script> |
| 4 | 4 |
| 5 if (window.testRunner) | 5 if (window.testRunner) |
| 6 testRunner.dumpAsText(); | 6 testRunner.dumpAsText(); |
| 7 | 7 |
| 8 function log(a) | 8 function log(a) |
| 9 { | 9 { |
| 10 document.getElementById('logger').appendChild(document.createTextNode(a)); | 10 document.getElementById('logger').appendChild(document.createTextNode(a)); |
| 11 document.getElementById('logger').appendChild(document.createElement("br")); | 11 document.getElementById('logger').appendChild(document.createElement("br")); |
| 12 } | 12 } |
| 13 | 13 |
| 14 function runTest() | 14 function runTest() |
| 15 { | 15 { |
| 16 if (!window.localStorage) { | 16 if (!window.localStorage) { |
| 17 log("window.localStorage DOES NOT exist"); | 17 log("window.localStorage DOES NOT exist"); |
| 18 return; | 18 return; |
| 19 } | 19 } |
| 20 localStorage.clear(); | 20 localStorage.clear(); |
| 21 | 21 |
| 22 log("foo (before anything) is: " + localStorage.foo); | 22 log("foo (before anything) is: " + localStorage.foo); |
| 23 localStorage.foo = "bar"; | 23 localStorage.foo = "bar"; |
| 24 log("foo (after a named property settter set) is: " + localStorage.foo); | 24 log("foo (after a named property settter set) is: " + localStorage.foo); |
| 25 delete localStorage.foo; | 25 delete localStorage.foo; |
| 26 log("foo (after a delete) is: " + localStorage.foo); | 26 log("foo (after a delete) is: " + localStorage.foo); |
| 27 localStorage["foo"] = "bar"; | 27 localStorage["foo"] = "bar"; |
| 28 log("foo (after an indexed setter set) is: " + localStorage.foo); | 28 log("foo (after an indexed setter set) is: " + localStorage.foo); |
| 29 delete localStorage.FOO; | 29 delete localStorage.FOO; |
| 30 log("foo (after deleting FOO (not foo)) is: " + localStorage.foo); | 30 log("foo (after deleting FOO (not foo)) is: " + localStorage.foo); |
| 31 delete localStorage.foo; | 31 delete localStorage.foo; |
| 32 log("foo (after a delete) is: " + localStorage.foo); | 32 log("foo (after a delete) is: " + localStorage.foo); |
| 33 localStorage.setItem("foo", "bar"); | 33 localStorage.setItem("foo", "bar"); |
| 34 log("foo (after calling setItem) is: " + localStorage.foo); | 34 log("foo (after calling setItem) is: " + localStorage.foo); |
| 35 delete localStorage.foo; | 35 delete localStorage.foo; |
| 36 log("foo (after a delete) is: " + localStorage.foo); | 36 log("foo (after a delete) is: " + localStorage.foo); |
| 37 delete localStorage.foo; | 37 delete localStorage.foo; |
| 38 log("foo (after a redundant delete) is: " + localStorage.foo); | 38 log("foo (after a redundant delete) is: " + localStorage.foo); |
| 39 localStorage.foo = "bar"; | 39 localStorage.foo = "bar"; |
| 40 log("foo (after an implicit settter set) is: " + localStorage.foo); | 40 log("foo (after an implicit settter set) is: " + localStorage.foo); |
| 41 delete localStorage["foo"]; | 41 delete localStorage["foo"]; |
| 42 log("foo (after an indexed delete) is: " + localStorage.foo); | 42 log("foo (after an indexed delete) is: " + localStorage.foo); |
| 43 |
| 44 Object.defineProperty(localStorage, "bar", {value: "present", configurable:
true}); |
| 45 log("bar (before an indexed delete) is present: " + ("bar" in localStorage))
; |
| 46 delete localStorage["bar"]; |
| 47 log("bar (after an indexed delete) is present: " + ("bar" in localStorage)); |
| 43 } | 48 } |
| 44 | 49 |
| 45 </script> | 50 </script> |
| 46 </head> | 51 </head> |
| 47 <body onload="runTest();"> | 52 <body onload="runTest();"> |
| 48 This test makes sure that using the syntax `delete localStorage.keyName` works a
s an alias to `localStorage.removeItem(keyName).`<br><hr> | 53 This test makes sure that using the syntax `delete localStorage.keyName` works a
s an alias to `localStorage.removeItem(keyName).`<br><hr> |
| 49 <div id="logger"></div> | 54 <div id="logger"></div> |
| 50 </body> | 55 </body> |
| 51 </html> | 56 </html> |
| OLD | NEW |