diff --git a/moli-geometry/src/lib.rs b/moli-geometry/src/lib.rs index 1fbc5b3ccd..07a6121417 100644 --- a/moli-geometry/src/lib.rs +++ b/moli-geometry/src/lib.rs @@ -38,6 +38,10 @@ mod tests { matrix.dom_matrix_text().unwrap(), format!("matrix(1, 0, 0, 1, 0, {expected})") ); + assert_eq!( + matrix.dom_matrix_text_with_dimension(true).unwrap(), + format!("matrix(1, 0, 0, 1, 0, {expected})") + ); } } @@ -81,25 +85,6 @@ mod tests { ); } - #[test] - fn dom_matrix_text_uses_ecmascript_number_serialization() { - for (value, expected) in [ - (1.0 / 300_000_000.0, "3.3333333333333334e-9"), - (f64::MAX, "1.7976931348623157e+308"), - (f64::MIN_POSITIVE * f64::EPSILON, "5e-324"), - ] { - let matrix = DomMatrixComponents { - m42: value, - ..DomMatrixComponents::identity() - }; - - assert_eq!( - matrix.dom_matrix_text_with_dimension(true).unwrap(), - format!("matrix(1, 0, 0, 1, 0, {expected})") - ); - } - } - #[test] fn inverse_handles_invertible_3d_matrix() { let matrix = DomMatrixComponents::identity() diff --git a/moli-renderer-v8/src/blob.rs b/moli-renderer-v8/src/blob.rs index 820a3bd0dc..0607c49ead 100644 --- a/moli-renderer-v8/src/blob.rs +++ b/moli-renderer-v8/src/blob.rs @@ -1,4 +1,4 @@ -use crate::web_api_interfaces; +use crate::{native_bridge, web_api_interfaces}; use moli_file_api::{ BlobId, BlobLineEndings, BlobStore, blob_slice_relative_index, clamp_blob_long_long, normalize_blob_line_endings_with_native_ending, normalize_blob_mime_type, diff --git a/moli-renderer-v8/src/context_bootstrap.rs b/moli-renderer-v8/src/context_bootstrap.rs index a654229569..3bcead188f 100644 --- a/moli-renderer-v8/src/context_bootstrap.rs +++ b/moli-renderer-v8/src/context_bootstrap.rs @@ -256,7 +256,7 @@ pub(crate) use self::css_stylesheet_runtime::{ sync_css_style_sheet_shadow_root_adopted_owner_tracking, }; pub(crate) use self::dom_rect::build_dom_rect_object; -pub(crate) use self::dom_rect_list::{build_dom_rect_list_object}; +pub(crate) use self::dom_rect_list::build_dom_rect_list_object; pub(crate) use self::events::{ EVENT_DISPATCHING_SLOT, EVENT_PASSIVE_SLOT, EVENT_STOP_IMMEDIATE_PROPAGATION_SLOT, EVENT_STOP_PROPAGATION_SLOT, EventHandlerType, apply_before_unload_event_handler_return_value, apply_event_handler_return_value, clear_event_composed_path, event_attribute, event_backing, @@ -274,7 +274,7 @@ pub(crate) use self::file_api::{ pub(crate) use self::file_api::{apply_drag_modifier_drop_effect, build_data_transfer_object}; pub(crate) use self::file_api::{ build_file_list_object, build_file_object, file_list_files_from_object, - flush_one_pending_file_reader, is_file_list_object, selected_file_from_object, + flush_one_pending_file_reader, selected_file_from_object, }; pub(crate) use self::form_data_runtime::form_data_request_body; pub(crate) use self::geometry_clone::{ diff --git a/moli-renderer-v8/src/context_bootstrap/bridge_descriptor/descriptors.rs b/moli-renderer-v8/src/context_bootstrap/bridge_descriptor/descriptors.rs index 5e1a60d711..8a15403ce4 100644 --- a/moli-renderer-v8/src/context_bootstrap/bridge_descriptor/descriptors.rs +++ b/moli-renderer-v8/src/context_bootstrap/bridge_descriptor/descriptors.rs @@ -109,14 +109,20 @@ const NODE_BRIDGE_DESCRIPTORS: &[BridgeDescriptor] = &[ ELEMENT_GROUPS, ), descriptor(web_api_interfaces::SVGAElement::DESCRIPTOR, ELEMENT_GROUPS), - descriptor(web_api_interfaces::SVGClipPathElement::DESCRIPTOR, ELEMENT_GROUPS), + descriptor( + web_api_interfaces::SVGClipPathElement::DESCRIPTOR, + ELEMENT_GROUPS, + ), specialized_descriptor( web_api_interfaces::SVGCircleElement::DESCRIPTOR, ELEMENT_GROUPS, SpecializedTemplateInstaller::None, SVG_GEOMETRY_RUNTIME_INSTALL_GROUPS, ), - descriptor(web_api_interfaces::SVGFilterElement::DESCRIPTOR, ELEMENT_GROUPS), + descriptor( + web_api_interfaces::SVGFilterElement::DESCRIPTOR, + ELEMENT_GROUPS, + ), descriptor( web_api_interfaces::SVGDefsElement::DESCRIPTOR, ELEMENT_GROUPS, @@ -151,12 +157,18 @@ const NODE_BRIDGE_DESCRIPTORS: &[BridgeDescriptor] = &[ web_api_interfaces::SVGFEFuncRElement::DESCRIPTOR, ELEMENT_GROUPS, ), - descriptor(web_api_interfaces::SVGFEBlendElement::DESCRIPTOR, ELEMENT_GROUPS), + descriptor( + web_api_interfaces::SVGFEBlendElement::DESCRIPTOR, + ELEMENT_GROUPS, + ), descriptor( web_api_interfaces::SVGFEColorMatrixElement::DESCRIPTOR, ELEMENT_GROUPS, ), - descriptor(web_api_interfaces::SVGFECompositeElement::DESCRIPTOR, ELEMENT_GROUPS), + descriptor( + web_api_interfaces::SVGFECompositeElement::DESCRIPTOR, + ELEMENT_GROUPS, + ), descriptor( web_api_interfaces::SVGFEConvolveMatrixElement::DESCRIPTOR, ELEMENT_GROUPS, @@ -173,20 +185,38 @@ const NODE_BRIDGE_DESCRIPTORS: &[BridgeDescriptor] = &[ web_api_interfaces::SVGFEDistantLightElement::DESCRIPTOR, ELEMENT_GROUPS, ), - descriptor(web_api_interfaces::SVGFEDropShadowElement::DESCRIPTOR, ELEMENT_GROUPS), + descriptor( + web_api_interfaces::SVGFEDropShadowElement::DESCRIPTOR, + ELEMENT_GROUPS, + ), descriptor( web_api_interfaces::SVGFEGaussianBlurElement::DESCRIPTOR, ELEMENT_GROUPS, ), - descriptor(web_api_interfaces::SVGFEMorphologyElement::DESCRIPTOR, ELEMENT_GROUPS), - descriptor(web_api_interfaces::SVGFEOffsetElement::DESCRIPTOR, ELEMENT_GROUPS), - descriptor(web_api_interfaces::SVGFEPointLightElement::DESCRIPTOR, ELEMENT_GROUPS), + descriptor( + web_api_interfaces::SVGFEMorphologyElement::DESCRIPTOR, + ELEMENT_GROUPS, + ), + descriptor( + web_api_interfaces::SVGFEOffsetElement::DESCRIPTOR, + ELEMENT_GROUPS, + ), + descriptor( + web_api_interfaces::SVGFEPointLightElement::DESCRIPTOR, + ELEMENT_GROUPS, + ), descriptor( web_api_interfaces::SVGFESpecularLightingElement::DESCRIPTOR, ELEMENT_GROUPS, ), - descriptor(web_api_interfaces::SVGFESpotLightElement::DESCRIPTOR, ELEMENT_GROUPS), - descriptor(web_api_interfaces::SVGFETurbulenceElement::DESCRIPTOR, ELEMENT_GROUPS), + descriptor( + web_api_interfaces::SVGFESpotLightElement::DESCRIPTOR, + ELEMENT_GROUPS, + ), + descriptor( + web_api_interfaces::SVGFETurbulenceElement::DESCRIPTOR, + ELEMENT_GROUPS, + ), descriptor( web_api_interfaces::SVGForeignObjectElement::DESCRIPTOR, ELEMENT_GROUPS, @@ -218,12 +248,30 @@ const NODE_BRIDGE_DESCRIPTORS: &[BridgeDescriptor] = &[ svg_gradient_transform: true, }, ), - descriptor(web_api_interfaces::SVGMarkerElement::DESCRIPTOR, ELEMENT_GROUPS), - descriptor(web_api_interfaces::SVGMaskElement::DESCRIPTOR, ELEMENT_GROUPS), - descriptor(web_api_interfaces::SVGMetadataElement::DESCRIPTOR, ELEMENT_GROUPS), - descriptor(web_api_interfaces::SVGScriptElement::DESCRIPTOR, ELEMENT_GROUPS), - descriptor(web_api_interfaces::SVGStopElement::DESCRIPTOR, ELEMENT_GROUPS), - descriptor(web_api_interfaces::SVGStyleElement::DESCRIPTOR, ELEMENT_GROUPS), + descriptor( + web_api_interfaces::SVGMarkerElement::DESCRIPTOR, + ELEMENT_GROUPS, + ), + descriptor( + web_api_interfaces::SVGMaskElement::DESCRIPTOR, + ELEMENT_GROUPS, + ), + descriptor( + web_api_interfaces::SVGMetadataElement::DESCRIPTOR, + ELEMENT_GROUPS, + ), + descriptor( + web_api_interfaces::SVGScriptElement::DESCRIPTOR, + ELEMENT_GROUPS, + ), + descriptor( + web_api_interfaces::SVGStopElement::DESCRIPTOR, + ELEMENT_GROUPS, + ), + descriptor( + web_api_interfaces::SVGStyleElement::DESCRIPTOR, + ELEMENT_GROUPS, + ), specialized_descriptor( web_api_interfaces::SVGPathElement::DESCRIPTOR, ELEMENT_GROUPS, @@ -318,7 +366,10 @@ const NODE_BRIDGE_DESCRIPTORS: &[BridgeDescriptor] = &[ web_api_interfaces::SVGUseElement::DESCRIPTOR, ELEMENT_GROUPS, ), - descriptor(web_api_interfaces::SVGViewElement::DESCRIPTOR, ELEMENT_GROUPS), + descriptor( + web_api_interfaces::SVGViewElement::DESCRIPTOR, + ELEMENT_GROUPS, + ), specialized_descriptor( web_api_interfaces::SVGRectElement::DESCRIPTOR, ELEMENT_GROUPS, diff --git a/moli-renderer-v8/src/context_bootstrap/file_api.rs b/moli-renderer-v8/src/context_bootstrap/file_api.rs index 219e224325..73fec9682d 100644 --- a/moli-renderer-v8/src/context_bootstrap/file_api.rs +++ b/moli-renderer-v8/src/context_bootstrap/file_api.rs @@ -39,8 +39,7 @@ pub(crate) use file_entry_file::{ }; pub(super) use file_list::file_list_item_callback; pub(crate) use file_list::{ - build_file_list_object, file_list_files_from_object, is_file_list_object, - sync_file_list_contents, + build_file_list_object, file_list_files_from_object, sync_file_list_contents, }; pub(crate) use file_reader::flush_one_pending_file_reader; pub(super) use file_reader::{ diff --git a/moli-renderer-v8/src/context_bootstrap/file_api/file_list.rs b/moli-renderer-v8/src/context_bootstrap/file_api/file_list.rs index 436d6ead28..b652b79133 100644 --- a/moli-renderer-v8/src/context_bootstrap/file_api/file_list.rs +++ b/moli-renderer-v8/src/context_bootstrap/file_api/file_list.rs @@ -9,7 +9,6 @@ const FILE_LIST_FILES_SLOT: &str = "__lmFileListFiles"; #[derive(WebApiObject)] #[webapi(interface = web_api_interfaces::FileList, require_prototype)] struct FileListObjectDeclaration { - #[webapi(slot = FILE_LIST_LENGTH_SLOT)] length: f64, } diff --git a/moli-renderer-v8/src/context_bootstrap/indexed_db/core/clone.rs b/moli-renderer-v8/src/context_bootstrap/indexed_db/core/clone.rs index fd14723bfa..be6c1a1d3f 100644 --- a/moli-renderer-v8/src/context_bootstrap/indexed_db/core/clone.rs +++ b/moli-renderer-v8/src/context_bootstrap/indexed_db/core/clone.rs @@ -110,7 +110,10 @@ impl v8::ValueSerializerImpl for IndexedDbStructuredCloneSerializer { return Some(true); } } - Some("DOMPoint" | "DOMPointReadOnly" | "DOMRect" | "DOMRectReadOnly" | "DOMQuad" | "DOMMatrix" | "DOMMatrixReadOnly") => { + Some( + "DOMPoint" | "DOMPointReadOnly" | "DOMRect" | "DOMRectReadOnly" | "DOMQuad" + | "DOMMatrix" | "DOMMatrixReadOnly", + ) => { if let Some(payload) = geometry_clone_payload_from_object(scope, object) { write_geometry_clone_payload(serializer, payload); return Some(true); diff --git a/moli-renderer-v8/src/context_bootstrap/performance_runtime.rs b/moli-renderer-v8/src/context_bootstrap/performance_runtime.rs index 75e1bd9fc7..1fb254870b 100644 --- a/moli-renderer-v8/src/context_bootstrap/performance_runtime.rs +++ b/moli-renderer-v8/src/context_bootstrap/performance_runtime.rs @@ -98,7 +98,6 @@ pub(super) use super::performance_observer_runtime::{ performance_observer_disconnect_callback, performance_observer_observe_callback, performance_observer_take_records_callback, }; -pub(crate) use entries::is_performance_entry_object; use entries::{ append_performance_entry, create_performance_entry, initialize_resource_timing_slots, push_performance_entry, diff --git a/moli-renderer-v8/src/context_bootstrap/streams/from.rs b/moli-renderer-v8/src/context_bootstrap/streams/from.rs index 1990ec63ee..97f863ade9 100644 --- a/moli-renderer-v8/src/context_bootstrap/streams/from.rs +++ b/moli-renderer-v8/src/context_bootstrap/streams/from.rs @@ -9,7 +9,7 @@ const READABLE_STREAM_FROM_REACTION_STREAM_SLOT: &str = "__moliReadableStreamFro const READABLE_STREAM_FROM_REACTION_SYNC_SLOT: &str = "__moliReadableStreamFromReactionSync"; #[derive(WebApiObject)] -#[webapi(interface = "Object")] +#[webapi(plain)] struct ReadableStreamFromSourceDeclaration<'scope> { #[webapi(slot = READABLE_STREAM_FROM_ITERATOR_SLOT)] iterator: v8::Local<'scope, v8::Object>, @@ -24,7 +24,7 @@ struct ReadableStreamFromSourceDeclaration<'scope> { } #[derive(WebApiObject)] -#[webapi(interface = "Object")] +#[webapi(plain)] struct ReadableStreamFromReactionDeclaration<'scope> { #[webapi(slot = READABLE_STREAM_FROM_REACTION_STREAM_SLOT)] stream: v8::Local<'scope, v8::Object>, diff --git a/moli-renderer-v8/src/context_bootstrap/svg_runtime/callbacks.rs b/moli-renderer-v8/src/context_bootstrap/svg_runtime/callbacks.rs index e38711080e..8555aa8c95 100644 --- a/moli-renderer-v8/src/context_bootstrap/svg_runtime/callbacks.rs +++ b/moli-renderer-v8/src/context_bootstrap/svg_runtime/callbacks.rs @@ -783,13 +783,7 @@ pub(super) fn svg_marker_set_orient_to_angle_callback<'s>( ); return; }; - if !require_svg_receiver( - scope, - angle, - SVG_ANGLE_UNIT_TYPE_SLOT, - "SVGAngle", - "setOrientToAngle argument", - ) { + if !require_svg_receiver(scope, angle, "SVGAngle", "setOrientToAngle argument") { return; } sync_svg_angle_from_owner_attribute(scope, angle); @@ -880,7 +874,7 @@ fn require_svg_interface_receiver<'s>( } let Some(parent) = crate::context_bootstrap::bridge_descriptor::node_bridge_descriptor(interface_name) - .and_then(|descriptor| descriptor.parent_constructor) + .and_then(|descriptor| descriptor.interface.parent_name()) else { break; }; @@ -1210,7 +1204,6 @@ pub(super) fn svg_animated_boolean_getter<'s>( if !require_svg_receiver( scope, args.this(), - SVG_ANIMATED_BOOLEAN_BASE_VAL_SLOT, "SVGAnimatedBoolean", &format!("{name} getter"), ) { @@ -1245,7 +1238,6 @@ pub(super) fn svg_animated_boolean_setter<'s>( if !require_svg_receiver( scope, args.this(), - SVG_ANIMATED_BOOLEAN_BASE_VAL_SLOT, "SVGAnimatedBoolean", &format!("{name} setter"), ) || name != "baseVal" @@ -1352,7 +1344,6 @@ pub(super) fn svg_animated_angle_getter<'s>( if !require_svg_receiver( scope, args.this(), - SVG_ANIMATED_ANGLE_BASE_VAL_SLOT, "SVGAnimatedAngle", &format!("{name} getter"), ) { @@ -1388,7 +1379,6 @@ pub(super) fn svg_animated_rect_getter<'s>( if !require_svg_receiver( scope, args.this(), - SVG_ANIMATED_RECT_BASE_VAL_SLOT, "SVGAnimatedRect", &format!("{name} getter"), ) { @@ -1424,7 +1414,6 @@ pub(super) fn svg_animated_preserve_aspect_ratio_getter<'s>( if !require_svg_receiver( scope, args.this(), - SVG_ANIMATED_PRESERVE_ASPECT_RATIO_BASE_VAL_SLOT, "SVGAnimatedPreserveAspectRatio", &format!("{name} getter"), ) { @@ -1461,7 +1450,6 @@ pub(super) fn svg_preserve_aspect_ratio_getter<'s>( if !require_svg_receiver( scope, aspect_ratio, - SVG_PRESERVE_ASPECT_RATIO_ALIGN_SLOT, "SVGPreserveAspectRatio", &format!("{name} getter"), ) { @@ -1503,7 +1491,6 @@ pub(super) fn svg_preserve_aspect_ratio_setter<'s>( if !require_svg_receiver( scope, aspect_ratio, - SVG_PRESERVE_ASPECT_RATIO_ALIGN_SLOT, "SVGPreserveAspectRatio", &format!("{name} setter"), ) { @@ -1652,13 +1639,7 @@ pub(super) fn svg_angle_getter<'s>( rv.set_undefined(); return; }; - if !require_svg_receiver( - scope, - args.this(), - SVG_ANGLE_UNIT_TYPE_SLOT, - "SVGAngle", - &format!("{name} getter"), - ) { + if !require_svg_receiver(scope, args.this(), "SVGAngle", &format!("{name} getter")) { return; } sync_svg_angle_from_owner_attribute(scope, args.this()); @@ -1700,13 +1681,7 @@ pub(super) fn svg_angle_setter<'s>( ) else { return; }; - if !require_svg_receiver( - scope, - args.this(), - SVG_ANGLE_UNIT_TYPE_SLOT, - "SVGAngle", - &format!("{name} setter"), - ) { + if !require_svg_receiver(scope, args.this(), "SVGAngle", &format!("{name} setter")) { return; } if svg_angle_is_read_only(scope, args.this()) { @@ -1917,7 +1892,6 @@ pub(super) fn svg_animated_integer_getter<'s>( if !require_svg_receiver( scope, args.this(), - SVG_ANIMATED_INTEGER_BASE_VAL_SLOT, "SVGAnimatedInteger", &format!("{name} getter"), ) { @@ -2116,7 +2090,6 @@ pub(super) fn svg_animated_integer_setter<'s>( if !require_svg_receiver( scope, args.this(), - SVG_ANIMATED_INTEGER_BASE_VAL_SLOT, "SVGAnimatedInteger", &format!("{name} setter"), ) || name != "baseVal" @@ -3794,13 +3767,7 @@ pub(super) fn svg_length_new_value_specified_units_callback<'s>( args: v8::FunctionCallbackArguments<'s>, mut rv: v8::ReturnValue<'_, v8::Value>, ) { - if !require_svg_receiver( - scope, - args.this(), - SVG_LENGTH_UNIT_TYPE_SLOT, - "SVGLength", - "newValueSpecifiedUnits", - ) { + if !require_svg_receiver(scope, args.this(), "SVGLength", "newValueSpecifiedUnits") { return; } let Some(parsed) = webidl::parse_args::(scope, &args) @@ -3827,13 +3794,7 @@ pub(super) fn svg_angle_new_value_specified_units_callback<'s>( args: v8::FunctionCallbackArguments<'s>, mut rv: v8::ReturnValue<'_, v8::Value>, ) { - if !require_svg_receiver( - scope, - args.this(), - SVG_ANGLE_UNIT_TYPE_SLOT, - "SVGAngle", - "newValueSpecifiedUnits", - ) { + if !require_svg_receiver(scope, args.this(), "SVGAngle", "newValueSpecifiedUnits") { return; } if svg_angle_is_read_only(scope, args.this()) { @@ -3867,13 +3828,7 @@ pub(super) fn svg_length_convert_to_specified_units_callback<'s>( args: v8::FunctionCallbackArguments<'s>, mut rv: v8::ReturnValue<'_, v8::Value>, ) { - if !require_svg_receiver( - scope, - args.this(), - SVG_LENGTH_UNIT_TYPE_SLOT, - "SVGLength", - "convertToSpecifiedUnits", - ) { + if !require_svg_receiver(scope, args.this(), "SVGLength", "convertToSpecifiedUnits") { return; } let Some(parsed) = webidl::parse_args::(scope, &args) @@ -3912,13 +3867,7 @@ pub(super) fn svg_angle_convert_to_specified_units_callback<'s>( args: v8::FunctionCallbackArguments<'s>, mut rv: v8::ReturnValue<'_, v8::Value>, ) { - if !require_svg_receiver( - scope, - args.this(), - SVG_ANGLE_UNIT_TYPE_SLOT, - "SVGAngle", - "convertToSpecifiedUnits", - ) { + if !require_svg_receiver(scope, args.this(), "SVGAngle", "convertToSpecifiedUnits") { return; } if svg_angle_is_read_only(scope, args.this()) { diff --git a/moli-renderer-v8/src/context_bootstrap/window_template.rs b/moli-renderer-v8/src/context_bootstrap/window_template.rs index 938784c516..44964c4be9 100644 --- a/moli-renderer-v8/src/context_bootstrap/window_template.rs +++ b/moli-renderer-v8/src/context_bootstrap/window_template.rs @@ -28,7 +28,7 @@ use moli_webapi_declare::{WebApiFunctionTemplate, WebApiObject}; const WINDOW_NAMED_PROPERTIES_REFLECT_SET_SLOT: &str = "__moliWindowNamedPropertiesReflectSet"; #[derive(WebApiObject)] -#[webapi(interface = "Object")] +#[webapi(plain)] struct WindowNamedPropertiesProxyHandlerDeclaration { #[webapi(method, length = 4, callback = window_named_properties_proxy_set_callback)] set: (), diff --git a/moli-renderer-v8/src/structured_clone.rs b/moli-renderer-v8/src/structured_clone.rs index 1f56964ab1..c63369e514 100644 --- a/moli-renderer-v8/src/structured_clone.rs +++ b/moli-renderer-v8/src/structured_clone.rs @@ -11,22 +11,21 @@ use crate::{ CryptoKeyAlgorithmClonePayload, CryptoKeyClonePayload, FileSystemFileSnapshotClonePayload, FileSystemHandleClonePayload, GeometryClonePayload, ImageDataClonePayload, ReadableStreamClonePayload, TransformStreamClonePayload, WritableStreamClonePayload, - attach_file_system_file_snapshot_clone_payload, build_file_object, - build_file_list_object, file_list_files_from_object, - build_file_system_handle_from_clone_payload, build_image_data_object_from_clone_payload, - build_readable_stream_clone_shell, build_transform_stream_clone_shell, - build_writable_stream_clone_shell, crypto_key_clone_payload_from_object, - crypto_key_object_from_clone_payload, detach_message_port_owner_for_transfer, - detach_transferred_message_port, dom_exception_clone_fields, - ensure_message_port_wrapper_for_id, file_system_file_snapshot_clone_payload_from_object, - file_system_handle_clone_payload_from_object, image_data_clone_payload_from_object, - initialize_readable_stream_clone_shell, initialize_transform_stream_clone_shell, - initialize_writable_stream_clone_shell, message_port_id_from_object, - new_dom_exception_value, new_quota_exceeded_error_value, prepare_readable_stream_transfer, - prepare_transform_stream_transfer, prepare_writable_stream_transfer, - quota_exceeded_error_clone_fields, require_internal_stream_value, - selected_file_from_object, - build_geometry_object_from_clone_payload, geometry_clone_payload_from_object, + attach_file_system_file_snapshot_clone_payload, build_file_list_object, build_file_object, + build_file_system_handle_from_clone_payload, build_geometry_object_from_clone_payload, + build_image_data_object_from_clone_payload, build_readable_stream_clone_shell, + build_transform_stream_clone_shell, build_writable_stream_clone_shell, + crypto_key_clone_payload_from_object, crypto_key_object_from_clone_payload, + detach_message_port_owner_for_transfer, detach_transferred_message_port, + dom_exception_clone_fields, ensure_message_port_wrapper_for_id, + file_list_files_from_object, file_system_file_snapshot_clone_payload_from_object, + file_system_handle_clone_payload_from_object, geometry_clone_payload_from_object, + image_data_clone_payload_from_object, initialize_readable_stream_clone_shell, + initialize_transform_stream_clone_shell, initialize_writable_stream_clone_shell, + message_port_id_from_object, new_dom_exception_value, new_quota_exceeded_error_value, + prepare_readable_stream_transfer, prepare_transform_stream_transfer, + prepare_writable_stream_transfer, quota_exceeded_error_clone_fields, + require_internal_stream_value, selected_file_from_object, }, dom::native::SelectedFile, types::MessagePortId, @@ -418,7 +417,10 @@ impl v8::ValueSerializerImpl for WireSerializer { return Some(true); } } - Some("DOMPoint" | "DOMPointReadOnly" | "DOMRect" | "DOMRectReadOnly" | "DOMQuad" | "DOMMatrix" | "DOMMatrixReadOnly") => { + Some( + "DOMPoint" | "DOMPointReadOnly" | "DOMRect" | "DOMRectReadOnly" | "DOMQuad" + | "DOMMatrix" | "DOMMatrixReadOnly", + ) => { if let Some(payload) = geometry_clone_payload_from_object(scope, object) { write_geometry_clone_payload(serializer, payload); return Some(true); @@ -504,7 +506,10 @@ impl v8::ValueSerializerImpl for WireSerializer { return None; }; let Ok(length) = u32::try_from(files.len()) else { - throw_data_clone_exception(scope, "Too many Files in structured clone FileList."); + throw_data_clone_exception( + scope, + "Too many Files in structured clone FileList.", + ); return None; }; let mut clone_ids = Vec::with_capacity(files.len());