diff options
author | Ryan Dahl <ry@tinyclouds.org> | 2020-09-16 12:41:01 -0400 |
---|---|---|
committer | GitHub <noreply@github.com> | 2020-09-16 12:41:01 -0400 |
commit | f58b10ec646533bb573e9fcc61160e31cb21ae05 (patch) | |
tree | 3b22561767481bcdadba1f6cce0293110ed52c2f | |
parent | 81ca7096c5e8830cf8707c77fd244672e7e67c79 (diff) |
simplify global properties (#7502)
-rw-r--r-- | cli/rt/99_main.js | 60 |
1 files changed, 23 insertions, 37 deletions
diff --git a/cli/rt/99_main.js b/cli/rt/99_main.js index ede47980c..74a7bd2a8 100644 --- a/cli/rt/99_main.js +++ b/cli/rt/99_main.js @@ -206,66 +206,56 @@ delete Object.prototype.__proto__; } // https://developer.mozilla.org/en-US/docs/Web/API/WindowOrWorkerGlobalScope - const windowOrWorkerGlobalScopeMethods = { - atob: util.writable(atob), - btoa: util.writable(btoa), - clearInterval: util.writable(timers.clearInterval), - clearTimeout: util.writable(timers.clearTimeout), - fetch: util.writable(fetch.fetch), - // queueMicrotask is bound in Rust - setInterval: util.writable(timers.setInterval), - setTimeout: util.writable(timers.setTimeout), - }; - - // Other properties shared between WindowScope and WorkerGlobalScope - const windowOrWorkerGlobalScopeProperties = { - console: util.writable(new Console(core.print)), + const windowOrWorkerGlobalScope = { Blob: util.nonEnumerable(blob.Blob), ByteLengthQueuingStrategy: util.nonEnumerable( queuingStrategy.ByteLengthQueuingStrategy, ), + CloseEvent: util.nonEnumerable(CloseEvent), CountQueuingStrategy: util.nonEnumerable( queuingStrategy.CountQueuingStrategy, ), - crypto: util.readOnly(crypto), - File: util.nonEnumerable(domFile.DomFile), - FileReader: util.nonEnumerable(fileReader.FileReader), CustomEvent: util.nonEnumerable(CustomEvent), DOMException: util.nonEnumerable(DOMException), ErrorEvent: util.nonEnumerable(ErrorEvent), - CloseEvent: util.nonEnumerable(CloseEvent), - MessageEvent: util.nonEnumerable(MessageEvent), Event: util.nonEnumerable(Event), EventTarget: util.nonEnumerable(EventTarget), - Headers: util.nonEnumerable(headers.Headers), + File: util.nonEnumerable(domFile.DomFile), + FileReader: util.nonEnumerable(fileReader.FileReader), FormData: util.nonEnumerable(formData.FormData), - WebSocket: util.nonEnumerable(webSocket.WebSocket), - ReadableStream: util.nonEnumerable(streams.ReadableStream), - Request: util.nonEnumerable(request.Request), - Response: util.nonEnumerable(fetch.Response), - performance: util.writable(new performance.Performance()), + Headers: util.nonEnumerable(headers.Headers), + MessageEvent: util.nonEnumerable(MessageEvent), Performance: util.nonEnumerable(performance.Performance), PerformanceEntry: util.nonEnumerable(performance.PerformanceEntry), PerformanceMark: util.nonEnumerable(performance.PerformanceMark), PerformanceMeasure: util.nonEnumerable(performance.PerformanceMeasure), ProgressEvent: util.nonEnumerable(progressEvent.ProgressEvent), + ReadableStream: util.nonEnumerable(streams.ReadableStream), + Request: util.nonEnumerable(request.Request), + Response: util.nonEnumerable(fetch.Response), TextDecoder: util.nonEnumerable(TextDecoder), TextEncoder: util.nonEnumerable(TextEncoder), TransformStream: util.nonEnumerable(streams.TransformStream), URL: util.nonEnumerable(url.URL), URLSearchParams: util.nonEnumerable(url.URLSearchParams), + WebSocket: util.nonEnumerable(webSocket.WebSocket), Worker: util.nonEnumerable(worker.Worker), WritableStream: util.nonEnumerable(streams.WritableStream), - }; - - const eventTargetProperties = { - addEventListener: util.readOnly( - EventTarget.prototype.addEventListener, - ), + addEventListener: util.readOnly(EventTarget.prototype.addEventListener), + atob: util.writable(atob), + btoa: util.writable(btoa), + clearInterval: util.writable(timers.clearInterval), + clearTimeout: util.writable(timers.clearTimeout), + console: util.writable(new Console(core.print)), + crypto: util.readOnly(crypto), dispatchEvent: util.readOnly(EventTarget.prototype.dispatchEvent), + fetch: util.writable(fetch.fetch), + performance: util.writable(new performance.Performance()), removeEventListener: util.readOnly( EventTarget.prototype.removeEventListener, ), + setInterval: util.writable(timers.setInterval), + setTimeout: util.writable(timers.setTimeout), }; const mainRuntimeGlobalProperties = { @@ -300,9 +290,7 @@ delete Object.prototype.__proto__; delete globalThis.bootstrap; util.log("bootstrapMainRuntime"); hasBootstrapped = true; - Object.defineProperties(globalThis, windowOrWorkerGlobalScopeMethods); - Object.defineProperties(globalThis, windowOrWorkerGlobalScopeProperties); - Object.defineProperties(globalThis, eventTargetProperties); + Object.defineProperties(globalThis, windowOrWorkerGlobalScope); Object.defineProperties(globalThis, mainRuntimeGlobalProperties); eventTarget.setEventTargetData(globalThis); // Registers the handler for window.onload function. @@ -368,10 +356,8 @@ delete Object.prototype.__proto__; delete globalThis.bootstrap; util.log("bootstrapWorkerRuntime"); hasBootstrapped = true; - Object.defineProperties(globalThis, windowOrWorkerGlobalScopeMethods); - Object.defineProperties(globalThis, windowOrWorkerGlobalScopeProperties); + Object.defineProperties(globalThis, windowOrWorkerGlobalScope); Object.defineProperties(globalThis, workerRuntimeGlobalProperties); - Object.defineProperties(globalThis, eventTargetProperties); Object.defineProperties(globalThis, { name: util.readOnly(name) }); eventTarget.setEventTargetData(globalThis); const { unstableFlag, pid, noColor, args } = runtimeStart( |