0
0
Fork 0
mirror of https://github.com/denoland/deno.git synced 2025-03-03 09:31:22 -05:00

simplify global properties (#7502)

This commit is contained in:
Ryan Dahl 2020-09-16 12:41:01 -04:00 committed by GitHub
parent 81ca7096c5
commit f58b10ec64
No known key found for this signature in database
GPG key ID: 4AEE18F83AFDEB23

View file

@ -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(