summaryrefslogtreecommitdiff
path: root/runtime/worker.rs
diff options
context:
space:
mode:
Diffstat (limited to 'runtime/worker.rs')
-rw-r--r--runtime/worker.rs10
1 files changed, 6 insertions, 4 deletions
diff --git a/runtime/worker.rs b/runtime/worker.rs
index 15f41fe56..23fe8e4c0 100644
--- a/runtime/worker.rs
+++ b/runtime/worker.rs
@@ -8,12 +8,12 @@ use crate::permissions::Permissions;
use crate::BootstrapOptions;
use deno_broadcast_channel::InMemoryBroadcastChannel;
use deno_core::error::AnyError;
+use deno_core::error::JsError;
use deno_core::futures::Future;
use deno_core::located_script_name;
use deno_core::CompiledWasmModuleStore;
use deno_core::Extension;
use deno_core::GetErrorClassFn;
-use deno_core::JsErrorCreateFn;
use deno_core::JsRuntime;
use deno_core::LocalInspectorSession;
use deno_core::ModuleId;
@@ -33,6 +33,8 @@ use std::sync::Arc;
use std::task::Context;
use std::task::Poll;
+pub type FormatJsErrorFn = dyn Fn(&JsError) -> String + Sync + Send;
+
/// This worker is created and used by almost all
/// subcommands in Deno executable.
///
@@ -56,8 +58,8 @@ pub struct WorkerOptions {
// Callbacks invoked when creating new instance of WebWorker
pub create_web_worker_cb: Arc<ops::worker_host::CreateWebWorkerCb>,
pub web_worker_preload_module_cb: Arc<ops::worker_host::PreloadModuleCb>,
+ pub format_js_error_fn: Option<Arc<FormatJsErrorFn>>,
pub source_map_getter: Option<Box<dyn SourceMapGetter>>,
- pub js_error_create_fn: Option<Rc<JsErrorCreateFn>>,
pub maybe_inspector_server: Option<Arc<InspectorServer>>,
pub should_break_on_first_statement: bool,
pub get_error_class_fn: Option<GetErrorClassFn>,
@@ -133,6 +135,7 @@ impl MainWorker {
ops::worker_host::init(
options.create_web_worker_cb.clone(),
options.web_worker_preload_module_cb.clone(),
+ options.format_js_error_fn.clone(),
),
ops::spawn::init(),
ops::fs_events::init(),
@@ -161,7 +164,6 @@ impl MainWorker {
module_loader: Some(options.module_loader.clone()),
startup_snapshot: Some(js::deno_isolate_init()),
source_map_getter: options.source_map_getter,
- js_error_create_fn: options.js_error_create_fn.clone(),
get_error_class_fn: options.get_error_class_fn,
shared_array_buffer_store: options.shared_array_buffer_store.clone(),
compiled_wasm_module_store: options.compiled_wasm_module_store.clone(),
@@ -379,8 +381,8 @@ mod tests {
unsafely_ignore_certificate_errors: None,
root_cert_store: None,
seed: None,
+ format_js_error_fn: None,
source_map_getter: None,
- js_error_create_fn: None,
web_worker_preload_module_cb: Arc::new(|_| unreachable!()),
create_web_worker_cb: Arc::new(|_| unreachable!()),
maybe_inspector_server: None,