summaryrefslogtreecommitdiff
path: root/ext/ffi/ir.rs
diff options
context:
space:
mode:
authorBartek IwaƄczuk <biwanczuk@gmail.com>2024-03-22 19:05:06 +0000
committerGitHub <noreply@github.com>2024-03-22 19:05:06 +0000
commit85236576b235c394289d007020434ee18770f899 (patch)
treeb843126175152156756dfb20e80ee60c6b1288c5 /ext/ffi/ir.rs
parentb688b61036177bded61726627e66c2c4707a2a8f (diff)
refactor(ext/ffi): don't go through serde_v8::Value (#23034)
Removes unnecessary indirection - after creating `serde_v8::Value` it was immediately unwrapped to `v8::Value` by the caller.
Diffstat (limited to 'ext/ffi/ir.rs')
-rw-r--r--ext/ffi/ir.rs71
1 files changed, 17 insertions, 54 deletions
diff --git a/ext/ffi/ir.rs b/ext/ffi/ir.rs
index 0255f2a25..6fd1f53ea 100644
--- a/ext/ffi/ir.rs
+++ b/ext/ffi/ir.rs
@@ -5,7 +5,6 @@ use crate::MAX_SAFE_INTEGER;
use crate::MIN_SAFE_INTEGER;
use deno_core::error::type_error;
use deno_core::error::AnyError;
-use deno_core::serde_v8;
use deno_core::v8;
use libffi::middle::Arg;
use std::ffi::c_void;
@@ -85,47 +84,22 @@ impl NativeValue {
&self,
scope: &mut v8::HandleScope<'scope>,
native_type: NativeType,
- ) -> serde_v8::Value<'scope> {
+ ) -> v8::Local<'scope, v8::Value> {
match native_type {
- NativeType::Void => {
- let local_value: v8::Local<v8::Value> = v8::undefined(scope).into();
- local_value.into()
- }
- NativeType::Bool => {
- let local_value: v8::Local<v8::Value> =
- v8::Boolean::new(scope, self.bool_value).into();
- local_value.into()
- }
+ NativeType::Void => v8::undefined(scope).into(),
+ NativeType::Bool => v8::Boolean::new(scope, self.bool_value).into(),
NativeType::U8 => {
- let local_value: v8::Local<v8::Value> =
- v8::Integer::new_from_unsigned(scope, self.u8_value as u32).into();
- local_value.into()
- }
- NativeType::I8 => {
- let local_value: v8::Local<v8::Value> =
- v8::Integer::new(scope, self.i8_value as i32).into();
- local_value.into()
+ v8::Integer::new_from_unsigned(scope, self.u8_value as u32).into()
}
+ NativeType::I8 => v8::Integer::new(scope, self.i8_value as i32).into(),
NativeType::U16 => {
- let local_value: v8::Local<v8::Value> =
- v8::Integer::new_from_unsigned(scope, self.u16_value as u32).into();
- local_value.into()
- }
- NativeType::I16 => {
- let local_value: v8::Local<v8::Value> =
- v8::Integer::new(scope, self.i16_value as i32).into();
- local_value.into()
+ v8::Integer::new_from_unsigned(scope, self.u16_value as u32).into()
}
+ NativeType::I16 => v8::Integer::new(scope, self.i16_value as i32).into(),
NativeType::U32 => {
- let local_value: v8::Local<v8::Value> =
- v8::Integer::new_from_unsigned(scope, self.u32_value).into();
- local_value.into()
- }
- NativeType::I32 => {
- let local_value: v8::Local<v8::Value> =
- v8::Integer::new(scope, self.i32_value).into();
- local_value.into()
+ v8::Integer::new_from_unsigned(scope, self.u32_value).into()
}
+ NativeType::I32 => v8::Integer::new(scope, self.i32_value).into(),
NativeType::U64 => {
let value = self.u64_value;
let local_value: v8::Local<v8::Value> =
@@ -134,7 +108,7 @@ impl NativeValue {
} else {
v8::Number::new(scope, value as f64).into()
};
- local_value.into()
+ local_value
}
NativeType::I64 => {
let value = self.i64_value;
@@ -145,7 +119,7 @@ impl NativeValue {
} else {
v8::Number::new(scope, value as f64).into()
};
- local_value.into()
+ local_value
}
NativeType::USize => {
let value = self.usize_value;
@@ -155,7 +129,7 @@ impl NativeValue {
} else {
v8::Number::new(scope, value as f64).into()
};
- local_value.into()
+ local_value
}
NativeType::ISize => {
let value = self.isize_value;
@@ -165,30 +139,19 @@ impl NativeValue {
} else {
v8::Number::new(scope, value as f64).into()
};
- local_value.into()
- }
- NativeType::F32 => {
- let local_value: v8::Local<v8::Value> =
- v8::Number::new(scope, self.f32_value as f64).into();
- local_value.into()
- }
- NativeType::F64 => {
- let local_value: v8::Local<v8::Value> =
- v8::Number::new(scope, self.f64_value).into();
- local_value.into()
+ local_value
}
+ NativeType::F32 => v8::Number::new(scope, self.f32_value as f64).into(),
+ NativeType::F64 => v8::Number::new(scope, self.f64_value).into(),
NativeType::Pointer | NativeType::Buffer | NativeType::Function => {
let local_value: v8::Local<v8::Value> = if self.pointer.is_null() {
v8::null(scope).into()
} else {
v8::External::new(scope, self.pointer).into()
};
- local_value.into()
- }
- NativeType::Struct(_) => {
- let local_value: v8::Local<v8::Value> = v8::null(scope).into();
- local_value.into()
+ local_value
}
+ NativeType::Struct(_) => v8::null(scope).into(),
}
}
}