mirror of
https://github.com/denoland/deno.git
synced 2024-11-21 15:04:11 -05: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,
|
||||
ext,
|
||||
);
|
||||
worker.execute("denoMain()").unwrap();
|
||||
worker.execute("workerMain()").unwrap();
|
||||
worker.execute("compilerMain()").unwrap();
|
||||
worker.execute("bootstrapCompilerRuntime('TS')").unwrap();
|
||||
worker.execute("bootstrapWorkerRuntime()").unwrap();
|
||||
worker.execute("bootstrapTsCompiler()").unwrap();
|
||||
worker
|
||||
}
|
||||
|
||||
|
|
|
@ -60,9 +60,9 @@ impl WasmCompiler {
|
|||
worker_state,
|
||||
ext,
|
||||
);
|
||||
worker.execute("denoMain('WASM')").unwrap();
|
||||
worker.execute("workerMain()").unwrap();
|
||||
worker.execute("wasmCompilerMain()").unwrap();
|
||||
worker.execute("bootstrapCompilerRuntime('WASM')").unwrap();
|
||||
worker.execute("bootstrapWorkerRuntime()").unwrap();
|
||||
worker.execute("bootstrapWasmCompiler()").unwrap();
|
||||
worker
|
||||
}
|
||||
|
||||
|
|
|
@ -42,7 +42,7 @@ fn compiler_snapshot() {
|
|||
deno_core::js_check(isolate.execute(
|
||||
"<anon>",
|
||||
r#"
|
||||
if (!compilerMain) {
|
||||
if (!bootstrapTsCompiler) {
|
||||
throw Error("bad");
|
||||
}
|
||||
console.log(`ts version: ${ts.version}`);
|
||||
|
|
|
@ -32,7 +32,11 @@ import { fromTypeScriptDiagnostic } from "./diagnostics_util.ts";
|
|||
import * as os from "./os.ts";
|
||||
import { assert } 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;
|
||||
|
||||
|
@ -74,17 +78,19 @@ interface CompileResult {
|
|||
}
|
||||
|
||||
// bootstrap the runtime environment, this gets called as the isolate is setup
|
||||
self.denoMain = function denoMain(compilerType?: string): void {
|
||||
os.start(true, compilerType ?? "TS");
|
||||
self.bootstrapCompilerRuntime = function bootstrapCompilerRuntime(
|
||||
compilerType: string
|
||||
): void {
|
||||
os.start(true, compilerType);
|
||||
};
|
||||
|
||||
// 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
|
||||
// lazy instantiating the compiler web worker
|
||||
self.compilerMain = function compilerMain(): void {
|
||||
// workerMain should have already been called since a compiler is a worker.
|
||||
self.bootstrapTsCompiler = function tsCompilerMain(): void {
|
||||
// bootstrapWorkerRuntime should have already been called since a compiler is a worker.
|
||||
self.onmessage = async ({
|
||||
data: request
|
||||
}: {
|
||||
|
@ -297,8 +303,8 @@ self.compilerMain = function compilerMain(): void {
|
|||
};
|
||||
};
|
||||
|
||||
self.wasmCompilerMain = function wasmCompilerMain(): void {
|
||||
// workerMain should have already been called since a compiler is a worker.
|
||||
self.bootstrapWasmCompiler = function wasmCompilerMain(): void {
|
||||
// bootstrapWorkerRuntime should have already been called since a compiler is a worker.
|
||||
self.onmessage = async ({
|
||||
data: binary
|
||||
}: {
|
||||
|
|
|
@ -111,12 +111,13 @@ declare global {
|
|||
callback: (event: domTypes.Event) => void | null,
|
||||
options?: boolean | domTypes.AddEventListenerOptions | undefined
|
||||
) => void;
|
||||
var compilerMain: (() => void) | undefined;
|
||||
var bootstrapTsCompiler: (() => void) | undefined;
|
||||
var console: consoleTypes.Console;
|
||||
var Deno: {
|
||||
core: DenoCore;
|
||||
};
|
||||
var denoMain: (() => void) | undefined;
|
||||
var bootstrapCompilerRuntime: ((compilerType: string) => void) | undefined;
|
||||
var bootstrapMainRuntime: (() => void) | undefined;
|
||||
var location: domTypes.Location;
|
||||
var onerror:
|
||||
| ((
|
||||
|
@ -132,8 +133,8 @@ declare global {
|
|||
var onmessage: ((e: { data: any }) => Promise<void> | void) | undefined;
|
||||
var onunload: ((e: domTypes.Event) => void) | undefined;
|
||||
var queueMicrotask: (callback: () => void) => void;
|
||||
var wasmCompilerMain: (() => void) | undefined;
|
||||
var workerMain: (() => Promise<void> | void) | undefined;
|
||||
var bootstrapWasmCompiler: (() => void) | undefined;
|
||||
var bootstrapWorkerRuntime: (() => Promise<void> | void) | undefined;
|
||||
/* eslint-enable */
|
||||
}
|
||||
|
||||
|
@ -198,7 +199,7 @@ const globalProperties = {
|
|||
onmessage: writable(workerRuntime.onmessage),
|
||||
onerror: writable(workerRuntime.onerror),
|
||||
|
||||
workerMain: nonEnumerable(workerRuntime.workerMain),
|
||||
bootstrapWorkerRuntime: nonEnumerable(workerRuntime.bootstrapWorkerRuntime),
|
||||
workerClose: nonEnumerable(workerRuntime.workerClose),
|
||||
postMessage: writable(workerRuntime.postMessage),
|
||||
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;
|
||||
onmessage: (e: { data: any }) => void;
|
||||
onerror: undefined | typeof onerror;
|
||||
workerMain: typeof __workerMain.workerMain;
|
||||
bootstrapWorkerRuntime: typeof __workerMain.bootstrapWorkerRuntime;
|
||||
workerClose: typeof __workerMain.workerClose;
|
||||
postMessage: typeof __workerMain.postMessage;
|
||||
Worker: typeof __workers.WorkerImpl;
|
||||
|
@ -2234,7 +2234,7 @@ declare let onerror:
|
|||
e: Event
|
||||
) => boolean | void)
|
||||
| undefined;
|
||||
declare const workerMain: typeof __workerMain.workerMain;
|
||||
declare const bootstrapWorkerRuntime: typeof __workerMain.bootstrapWorkerRuntime;
|
||||
declare const workerClose: typeof __workerMain.workerClose;
|
||||
declare const postMessage: typeof __workerMain.postMessage;
|
||||
declare const Worker: typeof __workers.WorkerImpl;
|
||||
|
@ -3490,7 +3490,7 @@ declare namespace __workerMain {
|
|||
export function getMessage(): Promise<any>;
|
||||
export let isClosing: boolean;
|
||||
export function workerClose(): void;
|
||||
export function workerMain(): Promise<void>;
|
||||
export function bootstrapWorkerRuntime(): Promise<void>;
|
||||
}
|
||||
|
||||
declare namespace __workers {
|
||||
|
|
|
@ -11,8 +11,8 @@ import { setLocation } from "./location.ts";
|
|||
import { setBuildInfo } from "./build.ts";
|
||||
import { setSignals } from "./process.ts";
|
||||
|
||||
function denoMain(preserveDenoNamespace = true, name?: string): void {
|
||||
const s = os.start(preserveDenoNamespace, name);
|
||||
function bootstrapMainRuntime(): void {
|
||||
const s = os.start(true);
|
||||
|
||||
setBuildInfo(s.os, s.arch);
|
||||
setSignals();
|
||||
|
@ -35,4 +35,4 @@ function denoMain(preserveDenoNamespace = true, name?: string): void {
|
|||
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;
|
||||
}
|
||||
|
||||
// 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 {
|
||||
// TODO(bartlomieju): temporary solution, must be fixed when moving
|
||||
// dispatches to separate crates
|
||||
export function initOps(): void {
|
||||
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)) {
|
||||
const opName = `OP_${name.toUpperCase()}`;
|
||||
// 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;
|
||||
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
|
||||
// are ready. The response should be a `StartRes` message containing the CLI
|
||||
// args and other info.
|
||||
|
|
|
@ -1,10 +1,10 @@
|
|||
// Copyright 2018-2020 the Deno authors. All rights reserved. MIT license.
|
||||
/* eslint-disable @typescript-eslint/no-explicit-any */
|
||||
import { core } from "./core.ts";
|
||||
import * as dispatch from "./dispatch.ts";
|
||||
import { sendAsync, sendSync } from "./dispatch_json.ts";
|
||||
import { log } from "./util.ts";
|
||||
import { TextDecoder, TextEncoder } from "./text_encoding.ts";
|
||||
import { initOps } from "./os.ts";
|
||||
|
||||
const encoder = new TextEncoder();
|
||||
const decoder = new TextDecoder();
|
||||
|
@ -44,24 +44,15 @@ export function workerClose(): void {
|
|||
isClosing = true;
|
||||
}
|
||||
|
||||
export async function workerMain(): Promise<void> {
|
||||
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)) {
|
||||
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));
|
||||
}
|
||||
export async function bootstrapWorkerRuntime(): Promise<void> {
|
||||
initOps();
|
||||
|
||||
log("workerMain");
|
||||
log("bootstrapWorkerRuntime");
|
||||
|
||||
while (!isClosing) {
|
||||
const data = await getMessage();
|
||||
if (data == null) {
|
||||
log("workerMain got null message. quitting.");
|
||||
log("bootstrapWorkerRuntime got null message. quitting.");
|
||||
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();
|
||||
|
||||
// Setup runtime.
|
||||
js_check(worker.execute("denoMain()"));
|
||||
js_check(worker.execute("bootstrapMainRuntime()"));
|
||||
debug!("main_module {}", main_module);
|
||||
|
||||
let main_future = async move {
|
||||
|
@ -282,7 +282,7 @@ fn fetch_command(flags: DenoFlags) {
|
|||
let main_module = state.main_module.as_ref().unwrap().clone();
|
||||
|
||||
// Setup runtime.
|
||||
js_check(worker.execute("denoMain()"));
|
||||
js_check(worker.execute("bootstrapMainRuntime()"));
|
||||
debug!("main_module {}", main_module);
|
||||
|
||||
let main_future = async move {
|
||||
|
@ -300,7 +300,7 @@ fn eval_command(flags: DenoFlags) {
|
|||
let main_module =
|
||||
ModuleSpecifier::resolve_url_or_path("./__$deno$eval.ts").unwrap();
|
||||
|
||||
js_check(worker.execute("denoMain()"));
|
||||
js_check(worker.execute("bootstrapMainRuntime()"));
|
||||
debug!("main_module {}", &main_module);
|
||||
|
||||
let main_future = async move {
|
||||
|
@ -346,7 +346,7 @@ fn bundle_command(flags: DenoFlags) {
|
|||
|
||||
fn run_repl(flags: DenoFlags) {
|
||||
let (mut worker, _state) = create_worker_and_state(flags);
|
||||
js_check(worker.execute("denoMain()"));
|
||||
js_check(worker.execute("bootstrapMainRuntime()"));
|
||||
let main_future = async move {
|
||||
loop {
|
||||
let result = worker.clone().await;
|
||||
|
@ -371,7 +371,7 @@ fn run_script(flags: DenoFlags) {
|
|||
// Normal situation of executing a module.
|
||||
|
||||
// Setup runtime.
|
||||
js_check(worker.execute("denoMain()"));
|
||||
js_check(worker.execute("bootstrapMainRuntime()"));
|
||||
debug!("main_module {}", main_module);
|
||||
|
||||
let mut worker_ = worker.clone();
|
||||
|
|
|
@ -115,7 +115,7 @@ fn op_create_worker(
|
|||
let name = format!("USER-WORKER-{}", specifier);
|
||||
let mut worker =
|
||||
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());
|
||||
|
||||
|
@ -269,7 +269,7 @@ fn op_host_resume_worker(
|
|||
|
||||
let mut workers_table = state_.workers.lock().unwrap();
|
||||
let worker = workers_table.get_mut(&id).unwrap();
|
||||
js_check(worker.execute("workerMain()"));
|
||||
js_check(worker.execute("bootstrapWorkerRuntime()"));
|
||||
Ok(JsonOp::Sync(json!({})))
|
||||
}
|
||||
|
||||
|
|
|
@ -339,7 +339,7 @@ mod tests {
|
|||
state,
|
||||
ext,
|
||||
);
|
||||
worker.execute("denoMain()").unwrap();
|
||||
worker.execute("bootstrapMainRuntime()").unwrap();
|
||||
let result = worker
|
||||
.execute_mod_async(&module_specifier, None, false)
|
||||
.await;
|
||||
|
@ -371,8 +371,8 @@ mod tests {
|
|||
state,
|
||||
ext,
|
||||
);
|
||||
worker.execute("denoMain()").unwrap();
|
||||
worker.execute("workerMain()").unwrap();
|
||||
worker.execute("bootstrapMainRuntime()").unwrap();
|
||||
worker.execute("bootstrapWorkerRuntime()").unwrap();
|
||||
worker
|
||||
}
|
||||
|
||||
|
|
Loading…
Reference in a new issue