mirror of
https://github.com/denoland/deno.git
synced 2025-07-24 05:35:33 +00:00
remove bootstrap methods from global scope after bootstrapping (#4869)
This commit is contained in:
parent
912a57f6a2
commit
1378df3364
12 changed files with 42 additions and 39 deletions
|
@ -407,16 +407,13 @@ function bootstrapWasmCompilerRuntime(): void {
|
|||
delete (Object.prototype as any).__proto__;
|
||||
|
||||
Object.defineProperties(globalThis, {
|
||||
bootstrapWasmCompilerRuntime: {
|
||||
value: bootstrapWasmCompilerRuntime,
|
||||
enumerable: false,
|
||||
writable: false,
|
||||
configurable: false,
|
||||
},
|
||||
bootstrapTsCompilerRuntime: {
|
||||
value: bootstrapTsCompilerRuntime,
|
||||
enumerable: false,
|
||||
writable: false,
|
||||
configurable: false,
|
||||
bootstrap: {
|
||||
value: {
|
||||
...globalThis.bootstrap,
|
||||
wasmCompilerRuntime: bootstrapWasmCompilerRuntime,
|
||||
tsCompilerRuntime: bootstrapTsCompilerRuntime,
|
||||
},
|
||||
configurable: true,
|
||||
writable: true,
|
||||
},
|
||||
});
|
||||
|
|
|
@ -134,12 +134,19 @@ declare global {
|
|||
};
|
||||
var onload: ((e: Event) => void) | undefined;
|
||||
var onunload: ((e: Event) => void) | undefined;
|
||||
var bootstrapMainRuntime: (() => void) | undefined;
|
||||
|
||||
// Assigned to `self` global - worker runtime and compiler
|
||||
var bootstrapWorkerRuntime:
|
||||
| ((name: string) => Promise<void> | void)
|
||||
| undefined;
|
||||
// These methods are used to prepare different runtime
|
||||
// environments. After bootrapping, this namespace
|
||||
// should be removed from global scope.
|
||||
var bootstrap: {
|
||||
mainRuntime: (() => void) | undefined;
|
||||
// Assigned to `self` global - worker runtime and compiler
|
||||
workerRuntime: ((name: string) => Promise<void> | void) | undefined;
|
||||
// Assigned to `self` global - compiler
|
||||
tsCompilerRuntime: (() => void) | undefined;
|
||||
wasmCompilerRuntime: (() => void) | undefined;
|
||||
};
|
||||
|
||||
var onerror:
|
||||
| ((
|
||||
msg: string,
|
||||
|
@ -156,9 +163,6 @@ declare global {
|
|||
var close: () => void;
|
||||
// eslint-disable-next-line @typescript-eslint/no-explicit-any
|
||||
var postMessage: (msg: any) => void;
|
||||
// Assigned to `self` global - compiler
|
||||
var bootstrapTsCompilerRuntime: (() => void) | undefined;
|
||||
var bootstrapWasmCompilerRuntime: (() => void) | undefined;
|
||||
/* eslint-enable */
|
||||
}
|
||||
|
||||
|
|
|
@ -9,16 +9,12 @@ import { bootstrapWorkerRuntime } from "./runtime_worker.ts";
|
|||
delete (Object.prototype as any).__proto__;
|
||||
|
||||
Object.defineProperties(globalThis, {
|
||||
bootstrapMainRuntime: {
|
||||
value: bootstrapMainRuntime,
|
||||
enumerable: false,
|
||||
writable: false,
|
||||
configurable: false,
|
||||
},
|
||||
bootstrapWorkerRuntime: {
|
||||
value: bootstrapWorkerRuntime,
|
||||
enumerable: false,
|
||||
writable: false,
|
||||
configurable: false,
|
||||
bootstrap: {
|
||||
value: {
|
||||
mainRuntime: bootstrapMainRuntime,
|
||||
workerRuntime: bootstrapWorkerRuntime,
|
||||
},
|
||||
configurable: true,
|
||||
writable: true,
|
||||
},
|
||||
});
|
||||
|
|
|
@ -72,6 +72,9 @@ export function bootstrapMainRuntime(): void {
|
|||
if (hasBootstrapped) {
|
||||
throw new Error("Worker runtime already bootstrapped");
|
||||
}
|
||||
// Remove bootstrapping methods from global scope
|
||||
// @ts-ignore
|
||||
globalThis.bootstrap = undefined;
|
||||
log("bootstrapMainRuntime");
|
||||
hasBootstrapped = true;
|
||||
Object.defineProperties(globalThis, windowOrWorkerGlobalScopeMethods);
|
||||
|
|
|
@ -126,6 +126,9 @@ export function bootstrapWorkerRuntime(
|
|||
if (hasBootstrapped) {
|
||||
throw new Error("Worker runtime already bootstrapped");
|
||||
}
|
||||
// Remove bootstrapping methods from global scope
|
||||
// @ts-ignore
|
||||
globalThis.bootstrap = undefined;
|
||||
log("bootstrapWorkerRuntime");
|
||||
hasBootstrapped = true;
|
||||
Object.defineProperties(globalThis, windowOrWorkerGlobalScopeMethods);
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue