summaryrefslogtreecommitdiff
path: root/extensions/webstorage/01_webstorage.js
diff options
context:
space:
mode:
authorcrowlKats <13135287+crowlKats@users.noreply.github.com>2021-05-19 14:28:50 +0200
committerBert Belder <bertbelder@gmail.com>2021-05-31 16:37:30 +0200
commita1125765ec8ef5d13ed49ad5cceadb0b41202be4 (patch)
tree70b08a7109db14c0c2d062d7680a3f52331b35a3 /extensions/webstorage/01_webstorage.js
parent6ef64b9fce9ed0f2c78025063d9a44f8e0acd124 (diff)
fix(webstorage): use opstate for sqlite connection (#10692)
Fixes #10691
Diffstat (limited to 'extensions/webstorage/01_webstorage.js')
-rw-r--r--extensions/webstorage/01_webstorage.js34
1 files changed, 12 insertions, 22 deletions
diff --git a/extensions/webstorage/01_webstorage.js b/extensions/webstorage/01_webstorage.js
index a11d44068..43a1dbbfb 100644
--- a/extensions/webstorage/01_webstorage.js
+++ b/extensions/webstorage/01_webstorage.js
@@ -1,11 +1,13 @@
+// Copyright 2018-2021 the Deno authors. All rights reserved. MIT license.
+
((window) => {
const core = window.Deno.core;
const webidl = window.__bootstrap.webidl;
- const _rid = Symbol("[[rid]]");
+ const _persistent = Symbol("[[persistent]]");
class Storage {
- [_rid];
+ [_persistent];
constructor() {
webidl.illegalConstructor();
@@ -13,7 +15,7 @@
get length() {
webidl.assertBranded(this, Storage);
- return core.opSync("op_webstorage_length", this[_rid]);
+ return core.opSync("op_webstorage_length", this[_persistent]);
}
key(index) {
@@ -25,10 +27,7 @@
context: "Argument 1",
});
- return core.opSync("op_webstorage_key", {
- rid: this[_rid],
- index,
- });
+ return core.opSync("op_webstorage_key", index, this[_persistent]);
}
setItem(key, value) {
@@ -45,10 +44,9 @@
});
core.opSync("op_webstorage_set", {
- rid: this[_rid],
keyName: key,
keyValue: value,
- });
+ }, this[_persistent]);
}
getItem(key) {
@@ -60,10 +58,7 @@
context: "Argument 1",
});
- return core.opSync("op_webstorage_get", {
- rid: this[_rid],
- keyName: key,
- });
+ return core.opSync("op_webstorage_get", key, this[_persistent]);
}
removeItem(key) {
@@ -75,25 +70,20 @@
context: "Argument 1",
});
- core.opSync("op_webstorage_remove", {
- rid: this[_rid],
- keyName: key,
- });
+ core.opSync("op_webstorage_remove", key, this[_persistent]);
}
clear() {
webidl.assertBranded(this, Storage);
- core.opSync("op_webstorage_clear", this[_rid]);
+ core.opSync("op_webstorage_clear", this[_persistent]);
}
}
function createStorage(persistent) {
if (persistent) window.location;
- const rid = core.opSync("op_webstorage_open", persistent);
-
const storage = webidl.createBranded(Storage);
- storage[_rid] = rid;
+ storage[_persistent] = persistent;
const proxy = new Proxy(storage, {
deleteProperty(target, key) {
@@ -135,7 +125,7 @@
return (typeof target.getItem(p)) === "string";
},
ownKeys() {
- return core.opSync("op_webstorage_iterate_keys", rid);
+ return core.opSync("op_webstorage_iterate_keys", persistent);
},
getOwnPropertyDescriptor(target, key) {
if (arguments.length === 1) {