summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorRyan Dahl <ry@tinyclouds.org>2020-09-16 12:41:01 -0400
committerGitHub <noreply@github.com>2020-09-16 12:41:01 -0400
commitf58b10ec646533bb573e9fcc61160e31cb21ae05 (patch)
tree3b22561767481bcdadba1f6cce0293110ed52c2f
parent81ca7096c5e8830cf8707c77fd244672e7e67c79 (diff)
simplify global properties (#7502)
-rw-r--r--cli/rt/99_main.js60
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(