From dfe528198d363ebc883da84dc816bce112ecd24b Mon Sep 17 00:00:00 2001 From: crowlKats <13135287+crowlKats@users.noreply.github.com> Date: Mon, 10 May 2021 12:02:47 +0200 Subject: feat: add WebStorage API (#7819) This commit introduces localStorage and sessionStorage. --- runtime/js/99_main.js | 24 ++++++++++++++++++++++++ 1 file changed, 24 insertions(+) (limited to 'runtime/js/99_main.js') 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 = { -- cgit v1.2.3