summaryrefslogtreecommitdiff
path: root/runtime/ops/worker_host.rs
diff options
context:
space:
mode:
authorNayeem Rahman <nayeemrmn99@gmail.com>2022-04-27 00:06:10 +0100
committerGitHub <noreply@github.com>2022-04-27 01:06:10 +0200
commit9853c96cc4686a6cd1ffa1e9081c012b8df72ff7 (patch)
treec631ebfc363c06c468367be7ecd5b98110dde3a0 /runtime/ops/worker_host.rs
parent58eab0e2b37fd8c3c83445196d4bde419740373d (diff)
refactor: Remove PrettyJsError and js_error_create_fn (#14378)
This commit: - removes "fmt_errors::PrettyJsError" in favor of "format_js_error" fn - removes "deno_core::JsError::create" and "deno_core::RuntimeOptions::js_error_create_fn" - adds new option to "deno_runtime::ops::worker_host::init"
Diffstat (limited to 'runtime/ops/worker_host.rs')
-rw-r--r--runtime/ops/worker_host.rs11
1 files changed, 11 insertions, 0 deletions
diff --git a/runtime/ops/worker_host.rs b/runtime/ops/worker_host.rs
index 6c691c5a0..23ffcd8b1 100644
--- a/runtime/ops/worker_host.rs
+++ b/runtime/ops/worker_host.rs
@@ -11,6 +11,7 @@ use crate::web_worker::WebWorkerHandle;
use crate::web_worker::WebWorkerType;
use crate::web_worker::WorkerControlEvent;
use crate::web_worker::WorkerId;
+use crate::worker::FormatJsErrorFn;
use deno_core::error::AnyError;
use deno_core::futures::future::LocalFutureObj;
use deno_core::op;
@@ -54,6 +55,9 @@ pub type PreloadModuleCb = dyn Fn(WebWorker) -> LocalFutureObj<'static, Result<W
#[derive(Clone)]
pub struct CreateWebWorkerCbHolder(Arc<CreateWebWorkerCb>);
+#[derive(Clone)]
+pub struct FormatJsErrorFnHolder(Option<Arc<FormatJsErrorFn>>);
+
/// A holder for callback that can used to preload some modules into a WebWorker
/// before actual worker code is executed. It's a struct instead of a type
/// because `GothamState` used in `OpState` overrides
@@ -106,6 +110,7 @@ pub type WorkersTable = HashMap<WorkerId, WorkerThread>;
pub fn init(
create_web_worker_cb: Arc<CreateWebWorkerCb>,
preload_module_cb: Arc<PreloadModuleCb>,
+ format_js_error_fn: Option<Arc<FormatJsErrorFn>>,
) -> Extension {
Extension::builder()
.state(move |state| {
@@ -118,6 +123,9 @@ pub fn init(
let preload_module_cb_holder =
PreloadModuleCbHolder(preload_module_cb.clone());
state.put::<PreloadModuleCbHolder>(preload_module_cb_holder);
+ let format_js_error_fn_holder =
+ FormatJsErrorFnHolder(format_js_error_fn.clone());
+ state.put::<FormatJsErrorFnHolder>(format_js_error_fn_holder);
Ok(())
})
@@ -193,6 +201,8 @@ fn op_create_worker(
state.put::<CreateWebWorkerCbHolder>(create_web_worker_cb.clone());
let preload_module_cb = state.take::<PreloadModuleCbHolder>();
state.put::<PreloadModuleCbHolder>(preload_module_cb.clone());
+ let format_js_error_fn = state.take::<FormatJsErrorFnHolder>();
+ state.put::<FormatJsErrorFnHolder>(format_js_error_fn.clone());
state.put::<WorkerId>(worker_id.next().unwrap());
let module_specifier = deno_core::resolve_url(&specifier)?;
@@ -238,6 +248,7 @@ fn op_create_worker(
module_specifier,
maybe_source_code,
preload_module_cb.0,
+ format_js_error_fn.0,
)
})?;