summaryrefslogtreecommitdiff
path: root/core/bindings.rs
diff options
context:
space:
mode:
authorRyan Dahl <ry@tinyclouds.org>2020-02-25 09:14:27 -0500
committerGitHub <noreply@github.com>2020-02-25 09:14:27 -0500
commit91b606aaae23bcb790b55adc5fe70a182a37d564 (patch)
tree16b56a21ffcb3991569eda984fbd14073bdbd3ae /core/bindings.rs
parent805992b14a65a6dbfb857dea6d9b657477de043d (diff)
Clean up how we use opIds (#4118)
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) => {