summaryrefslogtreecommitdiff
path: root/core/bindings.rs
diff options
context:
space:
mode:
Diffstat (limited to 'core/bindings.rs')
-rw-r--r--core/bindings.rs22
1 files changed, 9 insertions, 13 deletions
diff --git a/core/bindings.rs b/core/bindings.rs
index 8a32bc5da..edf115d27 100644
--- a/core/bindings.rs
+++ b/core/bindings.rs
@@ -309,21 +309,17 @@ fn opcall<'s>(
}
};
- // Structured args
- let v = args.get(2);
+ // Deserializable args (may be structured args or ZeroCopyBuf)
+ let a = args.get(2);
+ let b = args.get(3);
- // Buf arg (optional)
- let arg3 = args.get(3);
- let buf: Option<ZeroCopyBuf> = match serde_v8::from_v8(scope, arg3) {
- Ok(buf) => buf,
- Err(err) => {
- throw_type_error(scope, format!("Err with buf arg: {}", err));
- return;
- }
+ let payload = OpPayload {
+ scope,
+ a,
+ b,
+ promise_id,
};
-
- let payload = OpPayload::new(scope, v, promise_id);
- let op = OpTable::route_op(op_id, state.op_state.clone(), payload, buf);
+ let op = OpTable::route_op(op_id, state.op_state.clone(), payload);
match op {
Op::Sync(result) => {
rv.set(result.to_v8(scope).unwrap());