diff options
Diffstat (limited to 'serde_v8/magic')
-rw-r--r-- | serde_v8/magic/bigint.rs | 3 | ||||
-rw-r--r-- | serde_v8/magic/bytestring.rs | 3 | ||||
-rw-r--r-- | serde_v8/magic/detached_buffer.rs | 7 | ||||
-rw-r--r-- | serde_v8/magic/external_pointer.rs | 4 | ||||
-rw-r--r-- | serde_v8/magic/string_or_buffer.rs | 3 | ||||
-rw-r--r-- | serde_v8/magic/u16string.rs | 3 | ||||
-rw-r--r-- | serde_v8/magic/v8slice.rs | 4 |
7 files changed, 18 insertions, 9 deletions
diff --git a/serde_v8/magic/bigint.rs b/serde_v8/magic/bigint.rs index 69828747f..330803daf 100644 --- a/serde_v8/magic/bigint.rs +++ b/serde_v8/magic/bigint.rs @@ -5,6 +5,7 @@ use smallvec::SmallVec; use super::transl8::FromV8; use super::transl8::ToV8; +use crate::error::value_to_type_str; use crate::magic::transl8::impl_magic; use crate::Error; @@ -42,7 +43,7 @@ impl FromV8 for BigInt { value: v8::Local<v8::Value>, ) -> Result<Self, crate::Error> { let v8bigint = v8::Local::<v8::BigInt>::try_from(value) - .map_err(|_| Error::ExpectedBigInt)?; + .map_err(|_| Error::ExpectedBigInt(value_to_type_str(value)))?; let word_count = v8bigint.word_count(); let mut words: SmallVec<[u64; 1]> = smallvec![0u64; word_count]; let (sign_bit, _words) = v8bigint.to_words_array(&mut words); diff --git a/serde_v8/magic/bytestring.rs b/serde_v8/magic/bytestring.rs index 77771698f..3baa704e5 100644 --- a/serde_v8/magic/bytestring.rs +++ b/serde_v8/magic/bytestring.rs @@ -1,6 +1,7 @@ // Copyright 2018-2023 the Deno authors. All rights reserved. MIT license. use super::transl8::FromV8; use super::transl8::ToV8; +use crate::error::value_to_type_str; use crate::magic::transl8::impl_magic; use crate::Error; use smallvec::SmallVec; @@ -49,7 +50,7 @@ impl FromV8 for ByteString { value: v8::Local<v8::Value>, ) -> Result<Self, crate::Error> { let v8str = v8::Local::<v8::String>::try_from(value) - .map_err(|_| Error::ExpectedString)?; + .map_err(|_| Error::ExpectedString(value_to_type_str(value)))?; if !v8str.contains_only_onebyte() { return Err(Error::ExpectedLatin1); } diff --git a/serde_v8/magic/detached_buffer.rs b/serde_v8/magic/detached_buffer.rs index 7ee4dfb21..bc4b3de67 100644 --- a/serde_v8/magic/detached_buffer.rs +++ b/serde_v8/magic/detached_buffer.rs @@ -8,6 +8,7 @@ use super::transl8::FromV8; use super::transl8::ToV8; use super::v8slice::to_ranged_buffer; use super::v8slice::V8Slice; +use crate::error::value_to_type_str; use crate::magic::transl8::impl_magic; // A buffer that detaches when deserialized from JS @@ -57,10 +58,10 @@ impl FromV8 for DetachedBuffer { scope: &mut v8::HandleScope, value: v8::Local<v8::Value>, ) -> Result<Self, crate::Error> { - let (b, range) = - to_ranged_buffer(scope, value).or(Err(crate::Error::ExpectedBuffer))?; + let (b, range) = to_ranged_buffer(scope, value) + .map_err(|_| crate::Error::ExpectedBuffer(value_to_type_str(value)))?; if !b.is_detachable() { - return Err(crate::Error::ExpectedDetachable); + return Err(crate::Error::ExpectedDetachable(value_to_type_str(value))); } let store = b.get_backing_store(); b.detach(None); // Detach diff --git a/serde_v8/magic/external_pointer.rs b/serde_v8/magic/external_pointer.rs index fca6028d6..e22e41a01 100644 --- a/serde_v8/magic/external_pointer.rs +++ b/serde_v8/magic/external_pointer.rs @@ -2,6 +2,8 @@ use std::ffi::c_void; +use crate::error::value_to_type_str; + use super::transl8::impl_magic; use super::transl8::FromV8; use super::transl8::ToV8; @@ -38,7 +40,7 @@ impl FromV8 for ExternalPointer { } else if let Ok(external) = v8::Local::<v8::External>::try_from(value) { Ok(ExternalPointer(external.value())) } else { - Err(crate::Error::ExpectedExternal) + Err(crate::Error::ExpectedExternal(value_to_type_str(value))) } } } diff --git a/serde_v8/magic/string_or_buffer.rs b/serde_v8/magic/string_or_buffer.rs index 04ce08be2..8b1a06dbc 100644 --- a/serde_v8/magic/string_or_buffer.rs +++ b/serde_v8/magic/string_or_buffer.rs @@ -2,6 +2,7 @@ use super::buffer::ZeroCopyBuf; use super::transl8::FromV8; use super::transl8::ToV8; +use crate::error::value_to_type_str; use crate::magic::transl8::impl_magic; use crate::Error; use std::ops::Deref; @@ -73,7 +74,7 @@ impl FromV8 for StringOrBuffer { } else if let Ok(s) = crate::from_v8(scope, value) { return Ok(Self::String(s)); } - Err(Error::ExpectedBuffer) + Err(Error::ExpectedBuffer(value_to_type_str(value))) } } diff --git a/serde_v8/magic/u16string.rs b/serde_v8/magic/u16string.rs index 57e3fd0f6..04d742da9 100644 --- a/serde_v8/magic/u16string.rs +++ b/serde_v8/magic/u16string.rs @@ -1,5 +1,6 @@ // Copyright 2018-2023 the Deno authors. All rights reserved. MIT license. +use crate::error::value_to_type_str; use crate::Error; use super::transl8::impl_magic; @@ -37,7 +38,7 @@ impl FromV8 for U16String { value: v8::Local<v8::Value>, ) -> Result<Self, crate::Error> { let v8str = v8::Local::<v8::String>::try_from(value) - .map_err(|_| Error::ExpectedString)?; + .map_err(|_| Error::ExpectedString(value_to_type_str(value)))?; let len = v8str.length(); let mut buffer = Vec::with_capacity(len); #[allow(clippy::uninit_vec)] diff --git a/serde_v8/magic/v8slice.rs b/serde_v8/magic/v8slice.rs index 384ccf5c5..073e75235 100644 --- a/serde_v8/magic/v8slice.rs +++ b/serde_v8/magic/v8slice.rs @@ -5,6 +5,8 @@ use std::ops::DerefMut; use std::ops::Range; use std::rc::Rc; +use crate::error::value_to_type_str; + use super::rawbytes; use super::transl8::FromV8; @@ -91,7 +93,7 @@ impl FromV8 for V8Slice { ) -> Result<Self, crate::Error> { to_ranged_buffer(scope, value) .and_then(|(b, r)| Self::from_buffer(b, r)) - .map_err(|_| crate::Error::ExpectedBuffer) + .map_err(|_| crate::Error::ExpectedBuffer(value_to_type_str(value))) } } |