diff options
author | crowlKats <13135287+crowlKats@users.noreply.github.com> | 2021-05-19 14:28:50 +0200 |
---|---|---|
committer | Bert Belder <bertbelder@gmail.com> | 2021-05-31 16:37:30 +0200 |
commit | a1125765ec8ef5d13ed49ad5cceadb0b41202be4 (patch) | |
tree | 70b08a7109db14c0c2d062d7680a3f52331b35a3 /extensions/webstorage/01_webstorage.js | |
parent | 6ef64b9fce9ed0f2c78025063d9a44f8e0acd124 (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.js | 34 |
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) { |