mirror of
https://github.com/servo/servo.git
synced 2025-08-08 06:55:31 +01:00
script: further use of safe to jsval (#38099)
Remove size bound from safe to jsval trait, apply to script/dom, with the exception of windowproxy. Second part of https://github.com/servo/servo/issues/37951 Signed-off-by: gterzian <2792687+gterzian@users.noreply.github.com> *Describe the changes that this pull request makes here. This will be the commit message.* Testing: *Describe how this pull request is tested or why it doesn't require tests* Fixes: *Link to an issue this pull requests fixes or remove this line if there is no issue*
This commit is contained in:
parent
72a9f36c43
commit
b821377771
10 changed files with 114 additions and 128 deletions
|
@ -8,7 +8,6 @@ use std::iter::repeat;
|
|||
use constellation_traits::StructuredSerializedData;
|
||||
use dom_struct::dom_struct;
|
||||
use ipc_channel::router::ROUTER;
|
||||
use js::conversions::ToJSValConvertible;
|
||||
use js::gc::MutableHandle;
|
||||
use js::jsapi::Heap;
|
||||
use js::jsval::{DoubleValue, JSVal, UndefinedValue};
|
||||
|
@ -18,6 +17,7 @@ use net_traits::indexeddb_thread::{
|
|||
AsyncOperation, IdbResult, IndexedDBKeyType, IndexedDBThreadMsg, IndexedDBTxnMode,
|
||||
};
|
||||
use profile_traits::ipc;
|
||||
use script_bindings::conversions::SafeToJSValConvertible;
|
||||
use stylo_atoms::Atom;
|
||||
|
||||
use crate::dom::bindings::codegen::Bindings::IDBRequestBinding::{
|
||||
|
@ -48,22 +48,22 @@ struct RequestListener {
|
|||
fn key_type_to_jsval(cx: SafeJSContext, key: &IndexedDBKeyType, mut result: MutableHandleValue) {
|
||||
match key {
|
||||
IndexedDBKeyType::Number(n) => result.set(DoubleValue(*n)),
|
||||
IndexedDBKeyType::String(s) => unsafe { s.to_jsval(*cx, result) },
|
||||
IndexedDBKeyType::Binary(b) => unsafe { b.to_jsval(*cx, result) },
|
||||
IndexedDBKeyType::String(s) => s.safe_to_jsval(cx, result),
|
||||
IndexedDBKeyType::Binary(b) => b.safe_to_jsval(cx, result),
|
||||
IndexedDBKeyType::Date(_d) => {
|
||||
// TODO: implement this when Date's representation is finalized.
|
||||
result.set(UndefinedValue());
|
||||
},
|
||||
IndexedDBKeyType::Array(a) => unsafe {
|
||||
IndexedDBKeyType::Array(a) => {
|
||||
rooted_vec!(let mut values <- repeat(UndefinedValue()).take(a.len()));
|
||||
for (key, value) in a.iter().zip(
|
||||
for (key, value) in a.iter().zip(unsafe {
|
||||
values
|
||||
.iter_mut()
|
||||
.map(|v| MutableHandle::from_marked_location(v)),
|
||||
) {
|
||||
.map(|v| MutableHandle::from_marked_location(v))
|
||||
}) {
|
||||
key_type_to_jsval(cx, key, value);
|
||||
}
|
||||
values.to_jsval(*cx, result);
|
||||
values.safe_to_jsval(cx, result);
|
||||
},
|
||||
}
|
||||
}
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue