diff options
Diffstat (limited to 'cli')
-rw-r--r-- | cli/build.rs | 12 | ||||
-rw-r--r-- | cli/js.rs | 34 | ||||
-rw-r--r-- | cli/main.rs | 1 | ||||
-rw-r--r-- | cli/ops/worker_host.rs | 8 | ||||
-rw-r--r-- | cli/startup_data.rs | 18 | ||||
-rw-r--r-- | cli/tsc.rs | 18 | ||||
-rw-r--r-- | cli/web_worker.rs | 13 | ||||
-rw-r--r-- | cli/worker.rs | 36 |
8 files changed, 63 insertions, 77 deletions
diff --git a/cli/build.rs b/cli/build.rs index f2abb9529..7ed947f4e 100644 --- a/cli/build.rs +++ b/cli/build.rs @@ -4,7 +4,7 @@ mod op_fetch_asset; use deno_core::js_check; use deno_core::JsRuntime; -use deno_core::StartupData; +use deno_core::RuntimeOptions; use std::collections::HashMap; use std::env; use std::path::Path; @@ -37,7 +37,10 @@ fn create_snapshot( } fn create_runtime_snapshot(snapshot_path: &Path, files: Vec<PathBuf>) { - let isolate = JsRuntime::new(StartupData::None, true); + let isolate = JsRuntime::new(RuntimeOptions { + will_snapshot: true, + ..Default::default() + }); create_snapshot(isolate, snapshot_path, files); } @@ -70,7 +73,10 @@ fn create_compiler_snapshot( cwd.join("dts/lib.deno.unstable.d.ts"), ); - let mut isolate = JsRuntime::new(StartupData::None, true); + let mut isolate = JsRuntime::new(RuntimeOptions { + will_snapshot: true, + ..Default::default() + }); isolate.register_op( "op_fetch_asset", op_fetch_asset::op_fetch_asset(custom_libs), @@ -1,3 +1,7 @@ +// Copyright 2018-2020 the Deno authors. All rights reserved. MIT license. + +use deno_core::Snapshot; + pub const TS_VERSION: &str = env!("TS_VERSION"); pub static CLI_SNAPSHOT: &[u8] = @@ -11,12 +15,24 @@ pub static SHARED_GLOBALS_LIB: &str = pub static WINDOW_LIB: &str = include_str!("dts/lib.deno.window.d.ts"); pub static UNSTABLE_NS_LIB: &str = include_str!("dts/lib.deno.unstable.d.ts"); +pub fn deno_isolate_init() -> Snapshot { + debug!("Deno isolate init with snapshots."); + let data = CLI_SNAPSHOT; + Snapshot::Static(data) +} + +pub fn compiler_isolate_init() -> Snapshot { + debug!("Deno compiler isolate init with snapshots."); + let data = COMPILER_SNAPSHOT; + Snapshot::Static(data) +} + #[test] fn cli_snapshot() { - let mut isolate = deno_core::JsRuntime::new( - deno_core::StartupData::Snapshot(deno_core::Snapshot::Static(CLI_SNAPSHOT)), - false, - ); + let mut isolate = deno_core::JsRuntime::new(deno_core::RuntimeOptions { + startup_snapshot: Some(deno_isolate_init()), + ..Default::default() + }); deno_core::js_check(isolate.execute( "<anon>", r#" @@ -30,12 +46,10 @@ fn cli_snapshot() { #[test] fn compiler_snapshot() { - let mut isolate = deno_core::JsRuntime::new( - deno_core::StartupData::Snapshot(deno_core::Snapshot::Static( - COMPILER_SNAPSHOT, - )), - false, - ); + let mut isolate = deno_core::JsRuntime::new(deno_core::RuntimeOptions { + startup_snapshot: Some(compiler_isolate_init()), + ..Default::default() + }); deno_core::js_check(isolate.execute( "<anon>", r#" diff --git a/cli/main.rs b/cli/main.rs index d5329eeb4..39c931349 100644 --- a/cli/main.rs +++ b/cli/main.rs @@ -56,7 +56,6 @@ mod repl; pub mod resolve_addr; pub mod signal; pub mod source_maps; -mod startup_data; pub mod state; mod swc_util; mod test_runner; diff --git a/cli/ops/worker_host.rs b/cli/ops/worker_host.rs index 158865abc..6a100b198 100644 --- a/cli/ops/worker_host.rs +++ b/cli/ops/worker_host.rs @@ -4,7 +4,6 @@ use crate::fmt_errors::JsError; use crate::global_state::GlobalState; use crate::ops::io::get_stdio; use crate::permissions::Permissions; -use crate::startup_data; use crate::tokio_util::create_basic_runtime; use crate::web_worker::WebWorker; use crate::web_worker::WebWorkerHandle; @@ -48,12 +47,7 @@ fn create_web_worker( specifier, )?; - let mut worker = WebWorker::new( - name.clone(), - startup_data::deno_isolate_init(), - &cli_state, - has_deno_namespace, - ); + let mut worker = WebWorker::new(name.clone(), &cli_state, has_deno_namespace); if has_deno_namespace { let state = worker.isolate.op_state(); diff --git a/cli/startup_data.rs b/cli/startup_data.rs deleted file mode 100644 index 1cdfb4188..000000000 --- a/cli/startup_data.rs +++ /dev/null @@ -1,18 +0,0 @@ -// Copyright 2018-2020 the Deno authors. All rights reserved. MIT license. - -use crate::js::CLI_SNAPSHOT; -use crate::js::COMPILER_SNAPSHOT; -use deno_core::Snapshot; -use deno_core::StartupData; - -pub fn deno_isolate_init() -> StartupData<'static> { - debug!("Deno isolate init with snapshots."); - let data = CLI_SNAPSHOT; - StartupData::Snapshot(Snapshot::Static(data)) -} - -pub fn compiler_isolate_init() -> StartupData<'static> { - debug!("Deno isolate init with snapshots."); - let data = COMPILER_SNAPSHOT; - StartupData::Snapshot(Snapshot::Static(data)) -} diff --git a/cli/tsc.rs b/cli/tsc.rs index 77b855dd1..e3c7d9d84 100644 --- a/cli/tsc.rs +++ b/cli/tsc.rs @@ -9,6 +9,7 @@ use crate::file_fetcher::SourceFileFetcher; use crate::flags::Flags; use crate::fmt_errors::JsError; use crate::global_state::GlobalState; +use crate::js; use crate::module_graph::ModuleGraph; use crate::module_graph::ModuleGraphLoader; use crate::msg; @@ -16,7 +17,6 @@ use crate::msg::MediaType; use crate::ops; use crate::permissions::Permissions; use crate::source_maps::SourceMapGetter; -use crate::startup_data; use crate::state::State; use crate::swc_util; use crate::swc_util::AstParser; @@ -28,7 +28,6 @@ use crate::worker::Worker; use core::task::Context; use deno_core::ErrBox; use deno_core::ModuleSpecifier; -use deno_core::StartupData; use futures::future::Future; use futures::future::FutureExt; use log::debug; @@ -134,12 +133,9 @@ pub struct CompilerWorker { } impl CompilerWorker { - pub fn new( - name: String, - startup_data: StartupData, - state: &Rc<State>, - ) -> Self { - let mut worker = Worker::new(name, startup_data, state); + pub fn new(name: String, state: &Rc<State>) -> Self { + let mut worker = + Worker::new(name, Some(js::compiler_isolate_init()), state); let response = Arc::new(Mutex::new(None)); ops::runtime::init(&mut worker); ops::errors::init(&mut worker); @@ -232,11 +228,7 @@ fn create_compiler_worker( // Count how many times we start the compiler worker. global_state.compiler_starts.fetch_add(1, Ordering::SeqCst); - let mut worker = CompilerWorker::new( - "TS".to_string(), - startup_data::compiler_isolate_init(), - &worker_state, - ); + let mut worker = CompilerWorker::new("TS".to_string(), &worker_state); worker .execute("globalThis.bootstrapCompilerRuntime()") .unwrap(); diff --git a/cli/web_worker.rs b/cli/web_worker.rs index ebf8fa698..b0990d313 100644 --- a/cli/web_worker.rs +++ b/cli/web_worker.rs @@ -1,5 +1,6 @@ // Copyright 2018-2020 the Deno authors. All rights reserved. MIT license. +use crate::js; use crate::ops; use crate::state::State; use crate::worker::Worker; @@ -7,7 +8,6 @@ use crate::worker::WorkerEvent; use crate::worker::WorkerHandle; use deno_core::v8; use deno_core::ErrBox; -use deno_core::StartupData; use futures::channel::mpsc; use futures::future::FutureExt; use futures::stream::StreamExt; @@ -85,11 +85,10 @@ pub struct WebWorker { impl WebWorker { pub fn new( name: String, - startup_data: StartupData, state: &Rc<State>, has_deno_namespace: bool, ) -> Self { - let mut worker = Worker::new(name, startup_data, &state); + let mut worker = Worker::new(name, Some(js::deno_isolate_init()), &state); let terminated = Arc::new(AtomicBool::new(false)); let isolate_handle = worker.isolate.thread_safe_handle(); @@ -240,19 +239,13 @@ impl Future for WebWorker { #[cfg(test)] mod tests { use super::*; - use crate::startup_data; use crate::state::State; use crate::tokio_util; use crate::worker::WorkerEvent; fn create_test_worker() -> WebWorker { let state = State::mock("./hello.js"); - let mut worker = WebWorker::new( - "TEST".to_string(), - startup_data::deno_isolate_init(), - &state, - false, - ); + let mut worker = WebWorker::new("TEST".to_string(), &state, false); worker .execute("bootstrap.workerRuntime(\"TEST\", false)") .unwrap(); diff --git a/cli/worker.rs b/cli/worker.rs index baab81ff6..7ebd2a79e 100644 --- a/cli/worker.rs +++ b/cli/worker.rs @@ -3,15 +3,16 @@ use crate::fmt_errors::JsError; use crate::global_state::GlobalState; use crate::inspector::DenoInspector; +use crate::js; use crate::ops; use crate::ops::io::get_stdio; -use crate::startup_data; use crate::state::State; use deno_core::ErrBox; use deno_core::JsRuntime; use deno_core::ModuleId; use deno_core::ModuleSpecifier; -use deno_core::StartupData; +use deno_core::RuntimeOptions; +use deno_core::Snapshot; use futures::channel::mpsc; use futures::future::FutureExt; use futures::stream::StreamExt; @@ -102,11 +103,14 @@ pub struct Worker { impl Worker { pub fn new( name: String, - startup_data: StartupData, + startup_snapshot: Option<Snapshot>, state: &Rc<State>, ) -> Self { - let mut isolate = - JsRuntime::new_with_loader(state.clone(), startup_data, false); + let mut isolate = JsRuntime::new(RuntimeOptions { + module_loader: Some(state.clone()), + startup_snapshot, + ..Default::default() + }); { let global_state = state.global_state.clone(); let js_runtime_state = JsRuntime::state(&isolate); @@ -257,8 +261,12 @@ pub struct MainWorker(Worker); impl MainWorker { // TODO(ry) combine MainWorker::new and MainWorker::create. - fn new(name: String, startup_data: StartupData, state: &Rc<State>) -> Self { - let mut worker = Worker::new(name, startup_data, state); + fn new( + name: String, + startup_snapshot: Option<Snapshot>, + state: &Rc<State>, + ) -> Self { + let mut worker = Worker::new(name, startup_snapshot, state); { ops::runtime::init(&mut worker); ops::runtime_compiler::init(&mut worker); @@ -299,7 +307,7 @@ impl MainWorker { )?; let mut worker = MainWorker::new( "main".to_string(), - startup_data::deno_isolate_init(), + Some(js::deno_isolate_init()), &state, ); { @@ -340,7 +348,7 @@ mod tests { use super::*; use crate::flags; use crate::global_state::GlobalState; - use crate::startup_data; + use crate::js; use crate::tokio_util; use std::sync::atomic::Ordering; @@ -357,8 +365,7 @@ mod tests { State::new(&global_state, None, module_specifier.clone(), None, false) .unwrap(); tokio_util::run_basic(async { - let mut worker = - MainWorker::new("TEST".to_string(), StartupData::None, &state); + let mut worker = MainWorker::new("TEST".to_string(), None, &state); let result = worker.execute_module(&module_specifier).await; if let Err(err) = result { eprintln!("execute_mod err {:?}", err); @@ -385,8 +392,7 @@ mod tests { State::new(&global_state, None, module_specifier.clone(), None, false) .unwrap(); tokio_util::run_basic(async { - let mut worker = - MainWorker::new("TEST".to_string(), StartupData::None, &state); + let mut worker = MainWorker::new("TEST".to_string(), None, &state); let result = worker.execute_module(&module_specifier).await; if let Err(err) = result { eprintln!("execute_mod err {:?}", err); @@ -422,7 +428,7 @@ mod tests { .unwrap(); let mut worker = MainWorker::new( "TEST".to_string(), - startup_data::deno_isolate_init(), + Some(js::deno_isolate_init()), &state, ); worker.execute("bootstrap.mainRuntime()").unwrap(); @@ -442,7 +448,7 @@ mod tests { let state = State::mock("./hello.js"); let mut worker = MainWorker::new( "TEST".to_string(), - startup_data::deno_isolate_init(), + Some(js::deno_isolate_init()), &state, ); worker.execute("bootstrap.mainRuntime()").unwrap(); |