mirror of
https://github.com/denoland/deno.git
synced 2025-07-24 05:35:33 +00:00
refactor: Rename JS entry functions (#3732)
This commit is contained in:
parent
0cd605515c
commit
5e2fd183ff
12 changed files with 58 additions and 56 deletions
|
@ -246,9 +246,9 @@ impl TsCompiler {
|
||||||
worker_state,
|
worker_state,
|
||||||
ext,
|
ext,
|
||||||
);
|
);
|
||||||
worker.execute("denoMain()").unwrap();
|
worker.execute("bootstrapCompilerRuntime('TS')").unwrap();
|
||||||
worker.execute("workerMain()").unwrap();
|
worker.execute("bootstrapWorkerRuntime()").unwrap();
|
||||||
worker.execute("compilerMain()").unwrap();
|
worker.execute("bootstrapTsCompiler()").unwrap();
|
||||||
worker
|
worker
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
|
@ -60,9 +60,9 @@ impl WasmCompiler {
|
||||||
worker_state,
|
worker_state,
|
||||||
ext,
|
ext,
|
||||||
);
|
);
|
||||||
worker.execute("denoMain('WASM')").unwrap();
|
worker.execute("bootstrapCompilerRuntime('WASM')").unwrap();
|
||||||
worker.execute("workerMain()").unwrap();
|
worker.execute("bootstrapWorkerRuntime()").unwrap();
|
||||||
worker.execute("wasmCompilerMain()").unwrap();
|
worker.execute("bootstrapWasmCompiler()").unwrap();
|
||||||
worker
|
worker
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
|
@ -42,7 +42,7 @@ fn compiler_snapshot() {
|
||||||
deno_core::js_check(isolate.execute(
|
deno_core::js_check(isolate.execute(
|
||||||
"<anon>",
|
"<anon>",
|
||||||
r#"
|
r#"
|
||||||
if (!compilerMain) {
|
if (!bootstrapTsCompiler) {
|
||||||
throw Error("bad");
|
throw Error("bad");
|
||||||
}
|
}
|
||||||
console.log(`ts version: ${ts.version}`);
|
console.log(`ts version: ${ts.version}`);
|
||||||
|
|
|
@ -32,7 +32,11 @@ import { fromTypeScriptDiagnostic } from "./diagnostics_util.ts";
|
||||||
import * as os from "./os.ts";
|
import * as os from "./os.ts";
|
||||||
import { assert } from "./util.ts";
|
import { assert } from "./util.ts";
|
||||||
import * as util from "./util.ts";
|
import * as util from "./util.ts";
|
||||||
import { postMessage, workerClose, workerMain } from "./worker_main.ts";
|
import {
|
||||||
|
postMessage,
|
||||||
|
workerClose,
|
||||||
|
bootstrapWorkerRuntime
|
||||||
|
} from "./worker_main.ts";
|
||||||
|
|
||||||
const self = globalThis;
|
const self = globalThis;
|
||||||
|
|
||||||
|
@ -74,17 +78,19 @@ interface CompileResult {
|
||||||
}
|
}
|
||||||
|
|
||||||
// bootstrap the runtime environment, this gets called as the isolate is setup
|
// bootstrap the runtime environment, this gets called as the isolate is setup
|
||||||
self.denoMain = function denoMain(compilerType?: string): void {
|
self.bootstrapCompilerRuntime = function bootstrapCompilerRuntime(
|
||||||
os.start(true, compilerType ?? "TS");
|
compilerType: string
|
||||||
|
): void {
|
||||||
|
os.start(true, compilerType);
|
||||||
};
|
};
|
||||||
|
|
||||||
// bootstrap the worker environment, this gets called as the isolate is setup
|
// bootstrap the worker environment, this gets called as the isolate is setup
|
||||||
self.workerMain = workerMain;
|
self.bootstrapWorkerRuntime = bootstrapWorkerRuntime;
|
||||||
|
|
||||||
// provide the "main" function that will be called by the privileged side when
|
// provide the "main" function that will be called by the privileged side when
|
||||||
// lazy instantiating the compiler web worker
|
// lazy instantiating the compiler web worker
|
||||||
self.compilerMain = function compilerMain(): void {
|
self.bootstrapTsCompiler = function tsCompilerMain(): void {
|
||||||
// workerMain should have already been called since a compiler is a worker.
|
// bootstrapWorkerRuntime should have already been called since a compiler is a worker.
|
||||||
self.onmessage = async ({
|
self.onmessage = async ({
|
||||||
data: request
|
data: request
|
||||||
}: {
|
}: {
|
||||||
|
@ -297,8 +303,8 @@ self.compilerMain = function compilerMain(): void {
|
||||||
};
|
};
|
||||||
};
|
};
|
||||||
|
|
||||||
self.wasmCompilerMain = function wasmCompilerMain(): void {
|
self.bootstrapWasmCompiler = function wasmCompilerMain(): void {
|
||||||
// workerMain should have already been called since a compiler is a worker.
|
// bootstrapWorkerRuntime should have already been called since a compiler is a worker.
|
||||||
self.onmessage = async ({
|
self.onmessage = async ({
|
||||||
data: binary
|
data: binary
|
||||||
}: {
|
}: {
|
||||||
|
|
|
@ -111,12 +111,13 @@ declare global {
|
||||||
callback: (event: domTypes.Event) => void | null,
|
callback: (event: domTypes.Event) => void | null,
|
||||||
options?: boolean | domTypes.AddEventListenerOptions | undefined
|
options?: boolean | domTypes.AddEventListenerOptions | undefined
|
||||||
) => void;
|
) => void;
|
||||||
var compilerMain: (() => void) | undefined;
|
var bootstrapTsCompiler: (() => void) | undefined;
|
||||||
var console: consoleTypes.Console;
|
var console: consoleTypes.Console;
|
||||||
var Deno: {
|
var Deno: {
|
||||||
core: DenoCore;
|
core: DenoCore;
|
||||||
};
|
};
|
||||||
var denoMain: (() => void) | undefined;
|
var bootstrapCompilerRuntime: ((compilerType: string) => void) | undefined;
|
||||||
|
var bootstrapMainRuntime: (() => void) | undefined;
|
||||||
var location: domTypes.Location;
|
var location: domTypes.Location;
|
||||||
var onerror:
|
var onerror:
|
||||||
| ((
|
| ((
|
||||||
|
@ -132,8 +133,8 @@ declare global {
|
||||||
var onmessage: ((e: { data: any }) => Promise<void> | void) | undefined;
|
var onmessage: ((e: { data: any }) => Promise<void> | void) | undefined;
|
||||||
var onunload: ((e: domTypes.Event) => void) | undefined;
|
var onunload: ((e: domTypes.Event) => void) | undefined;
|
||||||
var queueMicrotask: (callback: () => void) => void;
|
var queueMicrotask: (callback: () => void) => void;
|
||||||
var wasmCompilerMain: (() => void) | undefined;
|
var bootstrapWasmCompiler: (() => void) | undefined;
|
||||||
var workerMain: (() => Promise<void> | void) | undefined;
|
var bootstrapWorkerRuntime: (() => Promise<void> | void) | undefined;
|
||||||
/* eslint-enable */
|
/* eslint-enable */
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -198,7 +199,7 @@ const globalProperties = {
|
||||||
onmessage: writable(workerRuntime.onmessage),
|
onmessage: writable(workerRuntime.onmessage),
|
||||||
onerror: writable(workerRuntime.onerror),
|
onerror: writable(workerRuntime.onerror),
|
||||||
|
|
||||||
workerMain: nonEnumerable(workerRuntime.workerMain),
|
bootstrapWorkerRuntime: nonEnumerable(workerRuntime.bootstrapWorkerRuntime),
|
||||||
workerClose: nonEnumerable(workerRuntime.workerClose),
|
workerClose: nonEnumerable(workerRuntime.workerClose),
|
||||||
postMessage: writable(workerRuntime.postMessage),
|
postMessage: writable(workerRuntime.postMessage),
|
||||||
Worker: nonEnumerable(workers.WorkerImpl),
|
Worker: nonEnumerable(workers.WorkerImpl),
|
||||||
|
|
6
cli/js/lib.deno_runtime.d.ts
vendored
6
cli/js/lib.deno_runtime.d.ts
vendored
|
@ -2175,7 +2175,7 @@ declare interface Window {
|
||||||
performance: __performanceUtil.Performance;
|
performance: __performanceUtil.Performance;
|
||||||
onmessage: (e: { data: any }) => void;
|
onmessage: (e: { data: any }) => void;
|
||||||
onerror: undefined | typeof onerror;
|
onerror: undefined | typeof onerror;
|
||||||
workerMain: typeof __workerMain.workerMain;
|
bootstrapWorkerRuntime: typeof __workerMain.bootstrapWorkerRuntime;
|
||||||
workerClose: typeof __workerMain.workerClose;
|
workerClose: typeof __workerMain.workerClose;
|
||||||
postMessage: typeof __workerMain.postMessage;
|
postMessage: typeof __workerMain.postMessage;
|
||||||
Worker: typeof __workers.WorkerImpl;
|
Worker: typeof __workers.WorkerImpl;
|
||||||
|
@ -2234,7 +2234,7 @@ declare let onerror:
|
||||||
e: Event
|
e: Event
|
||||||
) => boolean | void)
|
) => boolean | void)
|
||||||
| undefined;
|
| undefined;
|
||||||
declare const workerMain: typeof __workerMain.workerMain;
|
declare const bootstrapWorkerRuntime: typeof __workerMain.bootstrapWorkerRuntime;
|
||||||
declare const workerClose: typeof __workerMain.workerClose;
|
declare const workerClose: typeof __workerMain.workerClose;
|
||||||
declare const postMessage: typeof __workerMain.postMessage;
|
declare const postMessage: typeof __workerMain.postMessage;
|
||||||
declare const Worker: typeof __workers.WorkerImpl;
|
declare const Worker: typeof __workers.WorkerImpl;
|
||||||
|
@ -3490,7 +3490,7 @@ declare namespace __workerMain {
|
||||||
export function getMessage(): Promise<any>;
|
export function getMessage(): Promise<any>;
|
||||||
export let isClosing: boolean;
|
export let isClosing: boolean;
|
||||||
export function workerClose(): void;
|
export function workerClose(): void;
|
||||||
export function workerMain(): Promise<void>;
|
export function bootstrapWorkerRuntime(): Promise<void>;
|
||||||
}
|
}
|
||||||
|
|
||||||
declare namespace __workers {
|
declare namespace __workers {
|
||||||
|
|
|
@ -11,8 +11,8 @@ import { setLocation } from "./location.ts";
|
||||||
import { setBuildInfo } from "./build.ts";
|
import { setBuildInfo } from "./build.ts";
|
||||||
import { setSignals } from "./process.ts";
|
import { setSignals } from "./process.ts";
|
||||||
|
|
||||||
function denoMain(preserveDenoNamespace = true, name?: string): void {
|
function bootstrapMainRuntime(): void {
|
||||||
const s = os.start(preserveDenoNamespace, name);
|
const s = os.start(true);
|
||||||
|
|
||||||
setBuildInfo(s.os, s.arch);
|
setBuildInfo(s.os, s.arch);
|
||||||
setSignals();
|
setSignals();
|
||||||
|
@ -35,4 +35,4 @@ function denoMain(preserveDenoNamespace = true, name?: string): void {
|
||||||
replLoop();
|
replLoop();
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
globalThis["denoMain"] = denoMain;
|
globalThis["bootstrapMainRuntime"] = bootstrapMainRuntime;
|
||||||
|
|
16
cli/js/os.ts
16
cli/js/os.ts
|
@ -84,13 +84,10 @@ interface Start {
|
||||||
arch: Arch;
|
arch: Arch;
|
||||||
}
|
}
|
||||||
|
|
||||||
// This function bootstraps an environment within Deno, it is shared both by
|
// TODO(bartlomieju): temporary solution, must be fixed when moving
|
||||||
// the runtime and the compiler environments.
|
// dispatches to separate crates
|
||||||
// @internal
|
export function initOps(): void {
|
||||||
export function start(preserveDenoNamespace = true, source?: string): Start {
|
|
||||||
const ops = core.ops();
|
const ops = core.ops();
|
||||||
// TODO(bartlomieju): this is a prototype, we should come up with
|
|
||||||
// something a bit more sophisticated
|
|
||||||
for (const [name, opId] of Object.entries(ops)) {
|
for (const [name, opId] of Object.entries(ops)) {
|
||||||
const opName = `OP_${name.toUpperCase()}`;
|
const opName = `OP_${name.toUpperCase()}`;
|
||||||
// Assign op ids to actual variables
|
// Assign op ids to actual variables
|
||||||
|
@ -98,6 +95,13 @@ export function start(preserveDenoNamespace = true, source?: string): Start {
|
||||||
((dispatch as unknown) as { [key: string]: number })[opName] = opId;
|
((dispatch as unknown) as { [key: string]: number })[opName] = opId;
|
||||||
core.setAsyncHandler(opId, dispatch.getAsyncHandler(opName));
|
core.setAsyncHandler(opId, dispatch.getAsyncHandler(opName));
|
||||||
}
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
// This function bootstraps an environment within Deno, it is shared both by
|
||||||
|
// the runtime and the compiler environments.
|
||||||
|
// @internal
|
||||||
|
export function start(preserveDenoNamespace = true, source?: string): Start {
|
||||||
|
initOps();
|
||||||
// First we send an empty `Start` message to let the privileged side know we
|
// First we send an empty `Start` message to let the privileged side know we
|
||||||
// are ready. The response should be a `StartRes` message containing the CLI
|
// are ready. The response should be a `StartRes` message containing the CLI
|
||||||
// args and other info.
|
// args and other info.
|
||||||
|
|
|
@ -1,10 +1,10 @@
|
||||||
// Copyright 2018-2020 the Deno authors. All rights reserved. MIT license.
|
// Copyright 2018-2020 the Deno authors. All rights reserved. MIT license.
|
||||||
/* eslint-disable @typescript-eslint/no-explicit-any */
|
/* eslint-disable @typescript-eslint/no-explicit-any */
|
||||||
import { core } from "./core.ts";
|
|
||||||
import * as dispatch from "./dispatch.ts";
|
import * as dispatch from "./dispatch.ts";
|
||||||
import { sendAsync, sendSync } from "./dispatch_json.ts";
|
import { sendAsync, sendSync } from "./dispatch_json.ts";
|
||||||
import { log } from "./util.ts";
|
import { log } from "./util.ts";
|
||||||
import { TextDecoder, TextEncoder } from "./text_encoding.ts";
|
import { TextDecoder, TextEncoder } from "./text_encoding.ts";
|
||||||
|
import { initOps } from "./os.ts";
|
||||||
|
|
||||||
const encoder = new TextEncoder();
|
const encoder = new TextEncoder();
|
||||||
const decoder = new TextDecoder();
|
const decoder = new TextDecoder();
|
||||||
|
@ -44,24 +44,15 @@ export function workerClose(): void {
|
||||||
isClosing = true;
|
isClosing = true;
|
||||||
}
|
}
|
||||||
|
|
||||||
export async function workerMain(): Promise<void> {
|
export async function bootstrapWorkerRuntime(): Promise<void> {
|
||||||
const ops = core.ops();
|
initOps();
|
||||||
// TODO(bartlomieju): this is a prototype, we should come up with
|
|
||||||
// something a bit more sophisticated
|
|
||||||
for (const [name, opId] of Object.entries(ops)) {
|
|
||||||
const opName = `OP_${name.toUpperCase()}`;
|
|
||||||
// Assign op ids to actual variables
|
|
||||||
// TODO(ry) This type casting is gross and should be fixed.
|
|
||||||
((dispatch as unknown) as { [key: string]: number })[opName] = opId;
|
|
||||||
core.setAsyncHandler(opId, dispatch.getAsyncHandler(opName));
|
|
||||||
}
|
|
||||||
|
|
||||||
log("workerMain");
|
log("bootstrapWorkerRuntime");
|
||||||
|
|
||||||
while (!isClosing) {
|
while (!isClosing) {
|
||||||
const data = await getMessage();
|
const data = await getMessage();
|
||||||
if (data == null) {
|
if (data == null) {
|
||||||
log("workerMain got null message. quitting.");
|
log("bootstrapWorkerRuntime got null message. quitting.");
|
||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
10
cli/lib.rs
10
cli/lib.rs
|
@ -260,7 +260,7 @@ fn info_command(flags: DenoFlags) {
|
||||||
let main_module = state.main_module.as_ref().unwrap().clone();
|
let main_module = state.main_module.as_ref().unwrap().clone();
|
||||||
|
|
||||||
// Setup runtime.
|
// Setup runtime.
|
||||||
js_check(worker.execute("denoMain()"));
|
js_check(worker.execute("bootstrapMainRuntime()"));
|
||||||
debug!("main_module {}", main_module);
|
debug!("main_module {}", main_module);
|
||||||
|
|
||||||
let main_future = async move {
|
let main_future = async move {
|
||||||
|
@ -282,7 +282,7 @@ fn fetch_command(flags: DenoFlags) {
|
||||||
let main_module = state.main_module.as_ref().unwrap().clone();
|
let main_module = state.main_module.as_ref().unwrap().clone();
|
||||||
|
|
||||||
// Setup runtime.
|
// Setup runtime.
|
||||||
js_check(worker.execute("denoMain()"));
|
js_check(worker.execute("bootstrapMainRuntime()"));
|
||||||
debug!("main_module {}", main_module);
|
debug!("main_module {}", main_module);
|
||||||
|
|
||||||
let main_future = async move {
|
let main_future = async move {
|
||||||
|
@ -300,7 +300,7 @@ fn eval_command(flags: DenoFlags) {
|
||||||
let main_module =
|
let main_module =
|
||||||
ModuleSpecifier::resolve_url_or_path("./__$deno$eval.ts").unwrap();
|
ModuleSpecifier::resolve_url_or_path("./__$deno$eval.ts").unwrap();
|
||||||
|
|
||||||
js_check(worker.execute("denoMain()"));
|
js_check(worker.execute("bootstrapMainRuntime()"));
|
||||||
debug!("main_module {}", &main_module);
|
debug!("main_module {}", &main_module);
|
||||||
|
|
||||||
let main_future = async move {
|
let main_future = async move {
|
||||||
|
@ -346,7 +346,7 @@ fn bundle_command(flags: DenoFlags) {
|
||||||
|
|
||||||
fn run_repl(flags: DenoFlags) {
|
fn run_repl(flags: DenoFlags) {
|
||||||
let (mut worker, _state) = create_worker_and_state(flags);
|
let (mut worker, _state) = create_worker_and_state(flags);
|
||||||
js_check(worker.execute("denoMain()"));
|
js_check(worker.execute("bootstrapMainRuntime()"));
|
||||||
let main_future = async move {
|
let main_future = async move {
|
||||||
loop {
|
loop {
|
||||||
let result = worker.clone().await;
|
let result = worker.clone().await;
|
||||||
|
@ -371,7 +371,7 @@ fn run_script(flags: DenoFlags) {
|
||||||
// Normal situation of executing a module.
|
// Normal situation of executing a module.
|
||||||
|
|
||||||
// Setup runtime.
|
// Setup runtime.
|
||||||
js_check(worker.execute("denoMain()"));
|
js_check(worker.execute("bootstrapMainRuntime()"));
|
||||||
debug!("main_module {}", main_module);
|
debug!("main_module {}", main_module);
|
||||||
|
|
||||||
let mut worker_ = worker.clone();
|
let mut worker_ = worker.clone();
|
||||||
|
|
|
@ -115,7 +115,7 @@ fn op_create_worker(
|
||||||
let name = format!("USER-WORKER-{}", specifier);
|
let name = format!("USER-WORKER-{}", specifier);
|
||||||
let mut worker =
|
let mut worker =
|
||||||
WebWorker::new(name, startup_data::deno_isolate_init(), child_state, ext);
|
WebWorker::new(name, startup_data::deno_isolate_init(), child_state, ext);
|
||||||
js_check(worker.execute("workerMain()"));
|
js_check(worker.execute("bootstrapWorkerRuntime()"));
|
||||||
|
|
||||||
let worker_id = parent_state.add_child_worker(worker.clone());
|
let worker_id = parent_state.add_child_worker(worker.clone());
|
||||||
|
|
||||||
|
@ -269,7 +269,7 @@ fn op_host_resume_worker(
|
||||||
|
|
||||||
let mut workers_table = state_.workers.lock().unwrap();
|
let mut workers_table = state_.workers.lock().unwrap();
|
||||||
let worker = workers_table.get_mut(&id).unwrap();
|
let worker = workers_table.get_mut(&id).unwrap();
|
||||||
js_check(worker.execute("workerMain()"));
|
js_check(worker.execute("bootstrapWorkerRuntime()"));
|
||||||
Ok(JsonOp::Sync(json!({})))
|
Ok(JsonOp::Sync(json!({})))
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
|
@ -339,7 +339,7 @@ mod tests {
|
||||||
state,
|
state,
|
||||||
ext,
|
ext,
|
||||||
);
|
);
|
||||||
worker.execute("denoMain()").unwrap();
|
worker.execute("bootstrapMainRuntime()").unwrap();
|
||||||
let result = worker
|
let result = worker
|
||||||
.execute_mod_async(&module_specifier, None, false)
|
.execute_mod_async(&module_specifier, None, false)
|
||||||
.await;
|
.await;
|
||||||
|
@ -371,8 +371,8 @@ mod tests {
|
||||||
state,
|
state,
|
||||||
ext,
|
ext,
|
||||||
);
|
);
|
||||||
worker.execute("denoMain()").unwrap();
|
worker.execute("bootstrapMainRuntime()").unwrap();
|
||||||
worker.execute("workerMain()").unwrap();
|
worker.execute("bootstrapWorkerRuntime()").unwrap();
|
||||||
worker
|
worker
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
Loading…
Add table
Add a link
Reference in a new issue