diff options
Diffstat (limited to 'runtime/worker.rs')
-rw-r--r-- | runtime/worker.rs | 10 |
1 files changed, 9 insertions, 1 deletions
diff --git a/runtime/worker.rs b/runtime/worker.rs index de15c9f6f..dcc2727db 100644 --- a/runtime/worker.rs +++ b/runtime/worker.rs @@ -27,6 +27,7 @@ use deno_core::ModuleLoader; use deno_core::ModuleSpecifier; use deno_core::RuntimeOptions; use deno_core::SharedArrayBufferStore; +use deno_core::Snapshot; use deno_core::SourceMapGetter; use deno_node::RequireNpmResolver; use deno_tls::rustls::RootCertStore; @@ -74,6 +75,7 @@ pub struct MainWorker { pub struct WorkerOptions { pub bootstrap: BootstrapOptions, pub extensions: Vec<Extension>, + pub startup_snapshot: Option<Snapshot>, pub unsafely_ignore_certificate_errors: Option<Vec<String>>, pub root_cert_store: Option<RootCertStore>, pub seed: Option<u64>, @@ -135,6 +137,7 @@ impl Default for WorkerOptions { npm_resolver: Default::default(), blob_store: Default::default(), extensions: Default::default(), + startup_snapshot: Default::default(), bootstrap: Default::default(), stdio: Default::default(), } @@ -242,7 +245,11 @@ impl MainWorker { let mut js_runtime = JsRuntime::new(RuntimeOptions { module_loader: Some(options.module_loader.clone()), - startup_snapshot: Some(js::deno_isolate_init()), + startup_snapshot: Some( + options + .startup_snapshot + .unwrap_or_else(js::deno_isolate_init), + ), source_map_getter: options.source_map_getter, get_error_class_fn: options.get_error_class_fn, shared_array_buffer_store: options.shared_array_buffer_store.clone(), @@ -562,6 +569,7 @@ mod tests { inspect: false, }, extensions: vec![], + startup_snapshot: None, unsafely_ignore_certificate_errors: None, root_cert_store: None, seed: None, |