summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--cli/tests/unit/webstorage_test.ts13
-rw-r--r--runtime/js/99_main.js4
2 files changed, 17 insertions, 0 deletions
diff --git a/cli/tests/unit/webstorage_test.ts b/cli/tests/unit/webstorage_test.ts
new file mode 100644
index 000000000..df32e9edb
--- /dev/null
+++ b/cli/tests/unit/webstorage_test.ts
@@ -0,0 +1,13 @@
+// Copyright 2018-2022 the Deno authors. All rights reserved. MIT license.
+// deno-lint-ignore-file no-explicit-any
+
+import { assert } from "./test_util.ts";
+
+Deno.test({ permissions: "none" }, function webStoragesReassignable() {
+ // Can reassign to web storages
+ globalThis.localStorage = 1 as any;
+ globalThis.sessionStorage = 1 as any;
+ // The actual values don't change
+ assert(globalThis.localStorage instanceof globalThis.Storage);
+ assert(globalThis.sessionStorage instanceof globalThis.Storage);
+});
diff --git a/runtime/js/99_main.js b/runtime/js/99_main.js
index 9b4a9e857..c7faefcdd 100644
--- a/runtime/js/99_main.js
+++ b/runtime/js/99_main.js
@@ -587,11 +587,15 @@ delete Intl.v8BreakIterator;
configurable: true,
enumerable: true,
get: webStorage.localStorage,
+ // Makes this reassignable to make astro work
+ set: () => {},
},
sessionStorage: {
configurable: true,
enumerable: true,
get: webStorage.sessionStorage,
+ // Makes this reassignable to make astro work
+ set: () => {},
},
Storage: util.nonEnumerable(webStorage.Storage),
};