diff options
Diffstat (limited to 'core/bindings.rs')
-rw-r--r-- | core/bindings.rs | 13 |
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) => { |