mirror of
https://github.com/denoland/deno.git
synced 2025-03-04 01:44:26 -05:00
simplify global properties (#7502)
This commit is contained in:
parent
81ca7096c5
commit
f58b10ec64
1 changed files with 23 additions and 37 deletions
|
@ -206,66 +206,56 @@ delete Object.prototype.__proto__;
|
||||||
}
|
}
|
||||||
|
|
||||||
// https://developer.mozilla.org/en-US/docs/Web/API/WindowOrWorkerGlobalScope
|
// https://developer.mozilla.org/en-US/docs/Web/API/WindowOrWorkerGlobalScope
|
||||||
const windowOrWorkerGlobalScopeMethods = {
|
const windowOrWorkerGlobalScope = {
|
||||||
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)),
|
|
||||||
Blob: util.nonEnumerable(blob.Blob),
|
Blob: util.nonEnumerable(blob.Blob),
|
||||||
ByteLengthQueuingStrategy: util.nonEnumerable(
|
ByteLengthQueuingStrategy: util.nonEnumerable(
|
||||||
queuingStrategy.ByteLengthQueuingStrategy,
|
queuingStrategy.ByteLengthQueuingStrategy,
|
||||||
),
|
),
|
||||||
|
CloseEvent: util.nonEnumerable(CloseEvent),
|
||||||
CountQueuingStrategy: util.nonEnumerable(
|
CountQueuingStrategy: util.nonEnumerable(
|
||||||
queuingStrategy.CountQueuingStrategy,
|
queuingStrategy.CountQueuingStrategy,
|
||||||
),
|
),
|
||||||
crypto: util.readOnly(crypto),
|
|
||||||
File: util.nonEnumerable(domFile.DomFile),
|
|
||||||
FileReader: util.nonEnumerable(fileReader.FileReader),
|
|
||||||
CustomEvent: util.nonEnumerable(CustomEvent),
|
CustomEvent: util.nonEnumerable(CustomEvent),
|
||||||
DOMException: util.nonEnumerable(DOMException),
|
DOMException: util.nonEnumerable(DOMException),
|
||||||
ErrorEvent: util.nonEnumerable(ErrorEvent),
|
ErrorEvent: util.nonEnumerable(ErrorEvent),
|
||||||
CloseEvent: util.nonEnumerable(CloseEvent),
|
|
||||||
MessageEvent: util.nonEnumerable(MessageEvent),
|
|
||||||
Event: util.nonEnumerable(Event),
|
Event: util.nonEnumerable(Event),
|
||||||
EventTarget: util.nonEnumerable(EventTarget),
|
EventTarget: util.nonEnumerable(EventTarget),
|
||||||
Headers: util.nonEnumerable(headers.Headers),
|
File: util.nonEnumerable(domFile.DomFile),
|
||||||
|
FileReader: util.nonEnumerable(fileReader.FileReader),
|
||||||
FormData: util.nonEnumerable(formData.FormData),
|
FormData: util.nonEnumerable(formData.FormData),
|
||||||
WebSocket: util.nonEnumerable(webSocket.WebSocket),
|
Headers: util.nonEnumerable(headers.Headers),
|
||||||
ReadableStream: util.nonEnumerable(streams.ReadableStream),
|
MessageEvent: util.nonEnumerable(MessageEvent),
|
||||||
Request: util.nonEnumerable(request.Request),
|
|
||||||
Response: util.nonEnumerable(fetch.Response),
|
|
||||||
performance: util.writable(new performance.Performance()),
|
|
||||||
Performance: util.nonEnumerable(performance.Performance),
|
Performance: util.nonEnumerable(performance.Performance),
|
||||||
PerformanceEntry: util.nonEnumerable(performance.PerformanceEntry),
|
PerformanceEntry: util.nonEnumerable(performance.PerformanceEntry),
|
||||||
PerformanceMark: util.nonEnumerable(performance.PerformanceMark),
|
PerformanceMark: util.nonEnumerable(performance.PerformanceMark),
|
||||||
PerformanceMeasure: util.nonEnumerable(performance.PerformanceMeasure),
|
PerformanceMeasure: util.nonEnumerable(performance.PerformanceMeasure),
|
||||||
ProgressEvent: util.nonEnumerable(progressEvent.ProgressEvent),
|
ProgressEvent: util.nonEnumerable(progressEvent.ProgressEvent),
|
||||||
|
ReadableStream: util.nonEnumerable(streams.ReadableStream),
|
||||||
|
Request: util.nonEnumerable(request.Request),
|
||||||
|
Response: util.nonEnumerable(fetch.Response),
|
||||||
TextDecoder: util.nonEnumerable(TextDecoder),
|
TextDecoder: util.nonEnumerable(TextDecoder),
|
||||||
TextEncoder: util.nonEnumerable(TextEncoder),
|
TextEncoder: util.nonEnumerable(TextEncoder),
|
||||||
TransformStream: util.nonEnumerable(streams.TransformStream),
|
TransformStream: util.nonEnumerable(streams.TransformStream),
|
||||||
URL: util.nonEnumerable(url.URL),
|
URL: util.nonEnumerable(url.URL),
|
||||||
URLSearchParams: util.nonEnumerable(url.URLSearchParams),
|
URLSearchParams: util.nonEnumerable(url.URLSearchParams),
|
||||||
|
WebSocket: util.nonEnumerable(webSocket.WebSocket),
|
||||||
Worker: util.nonEnumerable(worker.Worker),
|
Worker: util.nonEnumerable(worker.Worker),
|
||||||
WritableStream: util.nonEnumerable(streams.WritableStream),
|
WritableStream: util.nonEnumerable(streams.WritableStream),
|
||||||
};
|
addEventListener: util.readOnly(EventTarget.prototype.addEventListener),
|
||||||
|
atob: util.writable(atob),
|
||||||
const eventTargetProperties = {
|
btoa: util.writable(btoa),
|
||||||
addEventListener: util.readOnly(
|
clearInterval: util.writable(timers.clearInterval),
|
||||||
EventTarget.prototype.addEventListener,
|
clearTimeout: util.writable(timers.clearTimeout),
|
||||||
),
|
console: util.writable(new Console(core.print)),
|
||||||
|
crypto: util.readOnly(crypto),
|
||||||
dispatchEvent: util.readOnly(EventTarget.prototype.dispatchEvent),
|
dispatchEvent: util.readOnly(EventTarget.prototype.dispatchEvent),
|
||||||
|
fetch: util.writable(fetch.fetch),
|
||||||
|
performance: util.writable(new performance.Performance()),
|
||||||
removeEventListener: util.readOnly(
|
removeEventListener: util.readOnly(
|
||||||
EventTarget.prototype.removeEventListener,
|
EventTarget.prototype.removeEventListener,
|
||||||
),
|
),
|
||||||
|
setInterval: util.writable(timers.setInterval),
|
||||||
|
setTimeout: util.writable(timers.setTimeout),
|
||||||
};
|
};
|
||||||
|
|
||||||
const mainRuntimeGlobalProperties = {
|
const mainRuntimeGlobalProperties = {
|
||||||
|
@ -300,9 +290,7 @@ delete Object.prototype.__proto__;
|
||||||
delete globalThis.bootstrap;
|
delete globalThis.bootstrap;
|
||||||
util.log("bootstrapMainRuntime");
|
util.log("bootstrapMainRuntime");
|
||||||
hasBootstrapped = true;
|
hasBootstrapped = true;
|
||||||
Object.defineProperties(globalThis, windowOrWorkerGlobalScopeMethods);
|
Object.defineProperties(globalThis, windowOrWorkerGlobalScope);
|
||||||
Object.defineProperties(globalThis, windowOrWorkerGlobalScopeProperties);
|
|
||||||
Object.defineProperties(globalThis, eventTargetProperties);
|
|
||||||
Object.defineProperties(globalThis, mainRuntimeGlobalProperties);
|
Object.defineProperties(globalThis, mainRuntimeGlobalProperties);
|
||||||
eventTarget.setEventTargetData(globalThis);
|
eventTarget.setEventTargetData(globalThis);
|
||||||
// Registers the handler for window.onload function.
|
// Registers the handler for window.onload function.
|
||||||
|
@ -368,10 +356,8 @@ delete Object.prototype.__proto__;
|
||||||
delete globalThis.bootstrap;
|
delete globalThis.bootstrap;
|
||||||
util.log("bootstrapWorkerRuntime");
|
util.log("bootstrapWorkerRuntime");
|
||||||
hasBootstrapped = true;
|
hasBootstrapped = true;
|
||||||
Object.defineProperties(globalThis, windowOrWorkerGlobalScopeMethods);
|
Object.defineProperties(globalThis, windowOrWorkerGlobalScope);
|
||||||
Object.defineProperties(globalThis, windowOrWorkerGlobalScopeProperties);
|
|
||||||
Object.defineProperties(globalThis, workerRuntimeGlobalProperties);
|
Object.defineProperties(globalThis, workerRuntimeGlobalProperties);
|
||||||
Object.defineProperties(globalThis, eventTargetProperties);
|
|
||||||
Object.defineProperties(globalThis, { name: util.readOnly(name) });
|
Object.defineProperties(globalThis, { name: util.readOnly(name) });
|
||||||
eventTarget.setEventTargetData(globalThis);
|
eventTarget.setEventTargetData(globalThis);
|
||||||
const { unstableFlag, pid, noColor, args } = runtimeStart(
|
const { unstableFlag, pid, noColor, args } = runtimeStart(
|
||||||
|
|
Loading…
Add table
Reference in a new issue