diff options
-rw-r--r-- | cli/tests/unit/webstorage_test.ts | 13 | ||||
-rw-r--r-- | runtime/js/99_main.js | 4 |
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), }; |