diff options
author | Nayeem Rahman <nayeemrmn99@gmail.com> | 2022-04-13 10:50:57 +0100 |
---|---|---|
committer | GitHub <noreply@github.com> | 2022-04-13 11:50:57 +0200 |
commit | 4d18f558e4cfebc5b8d9d594401e3ce74fc3226b (patch) | |
tree | ad13a194d22b3318cf862d9ae5214143f891930a /runtime/web_worker.rs | |
parent | d621ce1cf01ea9bb5562ea3bbed7c2d1db799c91 (diff) |
feat(ext/web): Add error events for event listener and timer errors (#14159)
- feat: Add handleable error event for even listener errors
- feat: Add handleable error event for setTimeout()/setInterval() errors
- feat: Add Deno.core.destructureError()
- feat: Add Deno.core.terminate()
- fix: Don't throw listener errors from dispatchEvent()
- fix: Use biased mode when selecting between mod_evaluate() and
run_event_loop() results
Diffstat (limited to 'runtime/web_worker.rs')
-rw-r--r-- | runtime/web_worker.rs | 7 |
1 files changed, 5 insertions, 2 deletions
diff --git a/runtime/web_worker.rs b/runtime/web_worker.rs index 0e3167041..014b3e738 100644 --- a/runtime/web_worker.rs +++ b/runtime/web_worker.rs @@ -119,6 +119,7 @@ pub struct WebWorkerInternalHandle { has_terminated: Arc<AtomicBool>, terminate_waker: Arc<AtomicWaker>, isolate_handle: v8::IsolateHandle, + pub name: String, pub worker_type: WebWorkerType, } @@ -264,6 +265,7 @@ impl WebWorkerHandle { fn create_handles( isolate_handle: v8::IsolateHandle, + name: String, worker_type: WebWorkerType, ) -> (WebWorkerInternalHandle, SendableWebWorkerHandle) { let (parent_port, worker_port) = create_entangled_message_port(); @@ -272,13 +274,14 @@ fn create_handles( let has_terminated = Arc::new(AtomicBool::new(false)); let terminate_waker = Arc::new(AtomicWaker::new()); let internal_handle = WebWorkerInternalHandle { - sender: ctrl_tx, + name, port: Rc::new(parent_port), termination_signal: termination_signal.clone(), has_terminated: has_terminated.clone(), terminate_waker: terminate_waker.clone(), isolate_handle: isolate_handle.clone(), cancel: CancelHandle::new_rc(), + sender: ctrl_tx, worker_type, }; let external_handle = SendableWebWorkerHandle { @@ -452,7 +455,7 @@ impl WebWorker { let (internal_handle, external_handle) = { let handle = js_runtime.v8_isolate().thread_safe_handle(); let (internal_handle, external_handle) = - create_handles(handle, options.worker_type); + create_handles(handle, name.clone(), options.worker_type); let op_state = js_runtime.op_state(); let mut op_state = op_state.borrow_mut(); op_state.put(internal_handle.clone()); |