summaryrefslogtreecommitdiff
path: root/runtime/js/99_main.js
diff options
context:
space:
mode:
Diffstat (limited to 'runtime/js/99_main.js')
-rw-r--r--runtime/js/99_main.js83
1 files changed, 48 insertions, 35 deletions
diff --git a/runtime/js/99_main.js b/runtime/js/99_main.js
index 22fd6bd8e..a72b2177b 100644
--- a/runtime/js/99_main.js
+++ b/runtime/js/99_main.js
@@ -7,6 +7,20 @@ delete Object.prototype.__proto__;
((window) => {
const core = Deno.core;
+ const {
+ Error,
+ FunctionPrototypeCall,
+ FunctionPrototypeBind,
+ ObjectAssign,
+ ObjectDefineProperty,
+ ObjectDefineProperties,
+ ObjectFreeze,
+ ObjectSetPrototypeOf,
+ PromiseResolve,
+ Symbol,
+ SymbolFor,
+ SymbolIterator,
+ } = window.__bootstrap.primordials;
const util = window.__bootstrap.util;
const eventTarget = window.__bootstrap.eventTarget;
const globalInterfaces = window.__bootstrap.globalInterfaces;
@@ -53,15 +67,11 @@ delete Object.prototype.__proto__;
windowIsClosing = true;
// Push a macrotask to exit after a promise resolve.
// This is not perfect, but should be fine for first pass.
- Promise.resolve().then(() =>
- timers.setTimeout.call(
- null,
- () => {
- // This should be fine, since only Window/MainWorker has .close()
- os.exit(0);
- },
- 0,
- )
+ PromiseResolve().then(() =>
+ FunctionPrototypeCall(timers.setTimeout, null, () => {
+ // This should be fine, since only Window/MainWorker has .close()
+ os.exit(0);
+ }, 0)
);
}
}
@@ -89,7 +99,7 @@ delete Object.prototype.__proto__;
if (
webidl.type(transferOrOptions) === "Object" &&
transferOrOptions !== undefined &&
- transferOrOptions[Symbol.iterator] !== undefined
+ transferOrOptions[SymbolIterator] !== undefined
) {
const transfer = webidl.converters["sequence<object>"](
transferOrOptions,
@@ -112,7 +122,10 @@ delete Object.prototype.__proto__;
async function pollForMessages() {
if (!globalDispatchEvent) {
- globalDispatchEvent = globalThis.dispatchEvent.bind(globalThis);
+ globalDispatchEvent = FunctionPrototypeBind(
+ globalThis.dispatchEvent,
+ globalThis,
+ );
}
while (!isClosing) {
const data = await core.opAsync("op_worker_recv_message");
@@ -249,14 +262,14 @@ delete Object.prototype.__proto__;
webidl.illegalConstructor();
}
- [Symbol.for("Deno.privateCustomInspect")](inspect) {
+ [SymbolFor("Deno.privateCustomInspect")](inspect) {
return `${this.constructor.name} ${inspect({})}`;
}
}
const navigator = webidl.createBranded(Navigator);
- Object.defineProperties(Navigator.prototype, {
+ ObjectDefineProperties(Navigator.prototype, {
gpu: {
configurable: true,
enumerable: true,
@@ -272,14 +285,14 @@ delete Object.prototype.__proto__;
webidl.illegalConstructor();
}
- [Symbol.for("Deno.privateCustomInspect")](inspect) {
+ [SymbolFor("Deno.privateCustomInspect")](inspect) {
return `${this.constructor.name} ${inspect({})}`;
}
}
const workerNavigator = webidl.createBranded(WorkerNavigator);
- Object.defineProperties(WorkerNavigator.prototype, {
+ ObjectDefineProperties(WorkerNavigator.prototype, {
gpu: {
configurable: true,
enumerable: true,
@@ -470,9 +483,9 @@ delete Object.prototype.__proto__;
delete globalThis.bootstrap;
util.log("bootstrapMainRuntime");
hasBootstrapped = true;
- Object.defineProperties(globalThis, windowOrWorkerGlobalScope);
- Object.defineProperties(globalThis, mainRuntimeGlobalProperties);
- Object.setPrototypeOf(globalThis, Window.prototype);
+ ObjectDefineProperties(globalThis, windowOrWorkerGlobalScope);
+ ObjectDefineProperties(globalThis, mainRuntimeGlobalProperties);
+ ObjectSetPrototypeOf(globalThis, Window.prototype);
const consoleFromDeno = globalThis.console;
wrapConsole(consoleFromDeno, consoleFromV8);
@@ -482,7 +495,7 @@ delete Object.prototype.__proto__;
defineEventHandler(window, "load", null);
defineEventHandler(window, "unload", null);
- const isUnloadDispatched = Symbol.for("isUnloadDispatched");
+ const isUnloadDispatched = SymbolFor("isUnloadDispatched");
// Stores the flag for checking whether unload is dispatched or not.
// This prevents the recursive dispatches of unload events.
// See https://github.com/denoland/deno/issues/9201.
@@ -518,23 +531,23 @@ delete Object.prototype.__proto__;
memoryUsage: core.memoryUsage,
...denoNs,
};
- Object.defineProperties(finalDenoNs, {
+ ObjectDefineProperties(finalDenoNs, {
pid: util.readOnly(pid),
ppid: util.readOnly(ppid),
noColor: util.readOnly(noColor),
- args: util.readOnly(Object.freeze(args)),
+ args: util.readOnly(ObjectFreeze(args)),
mainModule: util.getterOnly(opMainModule),
});
if (unstableFlag) {
- Object.assign(finalDenoNs, denoNsUnstable);
+ ObjectAssign(finalDenoNs, denoNsUnstable);
}
// Setup `Deno` global - we're actually overriding already existing global
// `Deno` with `Deno` namespace from "./deno.ts".
- Object.defineProperty(globalThis, "Deno", util.readOnly(finalDenoNs));
- Object.freeze(globalThis.Deno.core);
- Object.freeze(globalThis.Deno.core.sharedQueue);
+ ObjectDefineProperty(globalThis, "Deno", util.readOnly(finalDenoNs));
+ ObjectFreeze(globalThis.Deno.core);
+ ObjectFreeze(globalThis.Deno.core.sharedQueue);
signals.setSignals();
util.log("args", args);
@@ -558,9 +571,9 @@ delete Object.prototype.__proto__;
delete globalThis.bootstrap;
util.log("bootstrapWorkerRuntime");
hasBootstrapped = true;
- Object.defineProperties(globalThis, windowOrWorkerGlobalScope);
- Object.defineProperties(globalThis, workerRuntimeGlobalProperties);
- Object.defineProperties(globalThis, { name: util.readOnly(name) });
+ ObjectDefineProperties(globalThis, windowOrWorkerGlobalScope);
+ ObjectDefineProperties(globalThis, workerRuntimeGlobalProperties);
+ ObjectDefineProperties(globalThis, { name: util.readOnly(name) });
Object.setPrototypeOf(globalThis, DedicatedWorkerGlobalScope.prototype);
const consoleFromDeno = globalThis.console;
@@ -592,19 +605,19 @@ delete Object.prototype.__proto__;
};
if (useDenoNamespace) {
if (unstableFlag) {
- Object.assign(finalDenoNs, denoNsUnstable);
+ ObjectAssign(finalDenoNs, denoNsUnstable);
}
- Object.defineProperties(finalDenoNs, {
+ ObjectDefineProperties(finalDenoNs, {
pid: util.readOnly(pid),
noColor: util.readOnly(noColor),
- args: util.readOnly(Object.freeze(args)),
+ args: util.readOnly(ObjectFreeze(args)),
});
// Setup `Deno` global - we're actually overriding already
// existing global `Deno` with `Deno` namespace from "./deno.ts".
util.immutableDefine(globalThis, "Deno", finalDenoNs);
- Object.freeze(globalThis.Deno);
- Object.freeze(globalThis.Deno.core);
- Object.freeze(globalThis.Deno.core.sharedQueue);
+ ObjectFreeze(globalThis.Deno);
+ ObjectFreeze(globalThis.Deno.core);
+ ObjectFreeze(globalThis.Deno.core.sharedQueue);
signals.setSignals();
} else {
delete globalThis.Deno;
@@ -612,7 +625,7 @@ delete Object.prototype.__proto__;
}
}
- Object.defineProperties(globalThis, {
+ ObjectDefineProperties(globalThis, {
bootstrap: {
value: {
mainRuntime: bootstrapMainRuntime,