summaryrefslogtreecommitdiff
path: root/runtime/js/99_main.js
diff options
context:
space:
mode:
authorcrowlKats <13135287+crowlKats@users.noreply.github.com>2021-05-10 12:02:47 +0200
committerGitHub <noreply@github.com>2021-05-10 12:02:47 +0200
commitdfe528198d363ebc883da84dc816bce112ecd24b (patch)
treedfa0e67521a5b0a968b57514aa02fc8f114d4132 /runtime/js/99_main.js
parent32ad8f77d68df04e26ecaed71bdd8d37f048218a (diff)
feat: add WebStorage API (#7819)
This commit introduces localStorage and sessionStorage.
Diffstat (limited to 'runtime/js/99_main.js')
-rw-r--r--runtime/js/99_main.js24
1 files changed, 24 insertions, 0 deletions
diff --git a/runtime/js/99_main.js b/runtime/js/99_main.js
index fee7cd2d7..d2926bb1f 100644
--- a/runtime/js/99_main.js
+++ b/runtime/js/99_main.js
@@ -28,6 +28,7 @@ delete Object.prototype.__proto__;
const fileReader = window.__bootstrap.fileReader;
const webgpu = window.__bootstrap.webgpu;
const webSocket = window.__bootstrap.webSocket;
+ const webStorage = window.__bootstrap.webStorage;
const file = window.__bootstrap.file;
const formData = window.__bootstrap.formData;
const fetch = window.__bootstrap.fetch;
@@ -190,6 +191,18 @@ delete Object.prototype.__proto__;
return new DOMException(msg, "OperationError");
},
);
+ core.registerErrorBuilder(
+ "DOMExceptionQuotaExceededError",
+ function DOMExceptionQuotaExceededError(msg) {
+ return new DOMException(msg, "QuotaExceededError");
+ },
+ );
+ core.registerErrorBuilder(
+ "DOMExceptionNotSupportedError",
+ function DOMExceptionNotSupportedError(msg) {
+ return new DOMException(msg, "NotSupported");
+ },
+ );
}
class Navigator {
@@ -351,6 +364,17 @@ delete Object.prototype.__proto__;
alert: util.writable(prompt.alert),
confirm: util.writable(prompt.confirm),
prompt: util.writable(prompt.prompt),
+ localStorage: {
+ configurable: true,
+ enumerable: true,
+ get: webStorage.localStorage,
+ },
+ sessionStorage: {
+ configurable: true,
+ enumerable: true,
+ get: webStorage.sessionStorage,
+ },
+ Storage: util.nonEnumerable(webStorage.Storage),
};
const workerRuntimeGlobalProperties = {