This commit introduces an experimental implementation of the Web Storage API using SQLite as the backing data store. PR-URL: https://github.com/nodejs/node/pull/52435 Reviewed-By: Yagiz Nizipli <yagiz.nizipli@sentry.io> Reviewed-By: Matteo Collina <matteo.collina@gmail.com> Reviewed-By: Benjamin Gruenbaum <benjamingr@gmail.com> Reviewed-By: James M Snell <jasnell@gmail.com> Reviewed-By: Ethan Arrowood <ethan@arrowood.dev>
57 lines
2 KiB
JavaScript
57 lines
2 KiB
JavaScript
["localStorage", "sessionStorage"].forEach(function(name) {
|
|
[9, "x"].forEach(function(key) {
|
|
test(function() {
|
|
var desc = {
|
|
value: "value",
|
|
};
|
|
|
|
var storage = window[name];
|
|
storage.clear();
|
|
|
|
assert_equals(storage[key], undefined);
|
|
assert_equals(storage.getItem(key), null);
|
|
assert_equals(Object.defineProperty(storage, key, desc), storage);
|
|
assert_equals(storage[key], "value");
|
|
assert_equals(storage.getItem(key), "value");
|
|
}, "Defining data property for key " + key + " on " + name);
|
|
|
|
test(function() {
|
|
var desc1 = {
|
|
value: "value",
|
|
};
|
|
var desc2 = {
|
|
value: "new value",
|
|
};
|
|
|
|
var storage = window[name];
|
|
storage.clear();
|
|
|
|
assert_equals(storage[key], undefined);
|
|
assert_equals(storage.getItem(key), null);
|
|
assert_equals(Object.defineProperty(storage, key, desc1), storage);
|
|
assert_equals(storage[key], "value");
|
|
assert_equals(storage.getItem(key), "value");
|
|
|
|
assert_equals(Object.defineProperty(storage, key, desc2), storage);
|
|
assert_equals(storage[key], "new value");
|
|
assert_equals(storage.getItem(key), "new value");
|
|
}, "Defining data property for key " + key + " on " + name + " twice");
|
|
|
|
test(function() {
|
|
var desc = {
|
|
value: {
|
|
toString: function() { return "value"; }
|
|
},
|
|
};
|
|
|
|
var storage = window[name];
|
|
storage.clear();
|
|
|
|
assert_equals(storage[key], undefined);
|
|
assert_equals(storage.getItem(key), null);
|
|
assert_equals(Object.defineProperty(storage, key, desc), storage);
|
|
assert_equals(storage[key], "value");
|
|
assert_equals(storage.getItem(key), "value");
|
|
}, "Defining data property with toString for key " + key + " on " + name);
|
|
});
|
|
});
|