summaryrefslogtreecommitdiff
path: root/core/bindings.rs
diff options
context:
space:
mode:
Diffstat (limited to 'core/bindings.rs')
-rw-r--r--core/bindings.rs13
1 files changed, 10 insertions, 3 deletions
diff --git a/core/bindings.rs b/core/bindings.rs
index 1741ad3b5..6ea0b9b91 100644
--- a/core/bindings.rs
+++ b/core/bindings.rs
@@ -387,9 +387,16 @@ fn send(
unsafe { &mut *(scope.isolate().get_data(0) as *mut Isolate) };
assert!(!deno_isolate.global_context.is_empty());
- let op_id = v8::Local::<v8::Uint32>::try_from(args.get(0))
- .unwrap()
- .value() as u32;
+ let r = v8::Local::<v8::Uint32>::try_from(args.get(0));
+
+ if let Err(err) = r {
+ let s = format!("bad op id {}", err);
+ let msg = v8::String::new(scope, &s).unwrap();
+ scope.isolate().throw_exception(msg.into());
+ return;
+ }
+
+ let op_id = r.unwrap().value() as u32;
let control = match v8::Local::<v8::ArrayBufferView>::try_from(args.get(1)) {
Ok(view) => {