summaryrefslogtreecommitdiff
path: root/serde_v8/magic
diff options
context:
space:
mode:
Diffstat (limited to 'serde_v8/magic')
-rw-r--r--serde_v8/magic/bigint.rs3
-rw-r--r--serde_v8/magic/bytestring.rs3
-rw-r--r--serde_v8/magic/detached_buffer.rs7
-rw-r--r--serde_v8/magic/external_pointer.rs4
-rw-r--r--serde_v8/magic/string_or_buffer.rs3
-rw-r--r--serde_v8/magic/u16string.rs3
-rw-r--r--serde_v8/magic/v8slice.rs4
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)))
}
}