
    8Sj                          S SK Jr  S SKJr  S SKJr  S SKJr  S SKJr  S SKJr  S SKJ	r	  S SKJ
r
  S S	KJr  S S
KJr  S SKJr  S SKJr  S\S\S\4S jrS\S\\   S\S\SS4
S jrS\S\S\S\S\SS4S jrg)    )TextIO)GenerationContext)TypeOptionality)&add_include_for_contained_storage_type)cpp_type_for_idl_type)cpp_type_for_idl_type_details)cpp_value_type)idl_identifier_cpp_name)cpp_default_value_conversion)GeneratedIncludes)to_idl_value)OperationParameter	parametercontextreturnc                 F   U R                   (       aG  [        U R                  UU R                  S9nUR                  R
                  nU SUR                   S3$ U R                  (       a.  [        U R                  U[        R                  U R                  S9$ [        X5      $ )Nextended_attributes<>)optionalityr   )variadicr   typer   contained_storage_typevaluenameoptionalr   r   OptionalArgumentr	   )r   r   cpp_typestorage_type_names       W/mnt/mint/home/seanl/public/Repos/ladybird/Meta/Generators/libweb_bindings/arguments.pyoperation_parameter_cpp_typer"      s    0NN ) = =

 %;;AA#$Ahmm_A66$NN'88 ) = =	
 	
 )--    out
parametersincludesNc                 t   UR                  S5        [        U5       GH  u  pEUR                  (       a  [        XXBU5        M&  SU 3n[	        U5      nU R                  SU SU S35        UR                  (       aC  UR                  c6  U R                  S[        XS5       SU SU S	U S
[        XVX#5       S35        M  UR                  (       aB  U R                  S[        XS5       SU S[        XS5       SU S	U S
[        XVX#5       S35        M  U R                  SU S
[        XVX#5       S35        GM     g )Nz"LibWeb/Bindings/ExceptionOrUtils.hargz	    auto z = vm.argument(z);
     z {};
    if (!z.is_undefined())
        z6 = TRY(throw_dom_exception_if_needed(vm, [&] { return z; }));

z = z;
    if (!)add	enumerater   -write_variadic_operation_parameter_conversionr
   writer   default_valuer"   r   r	   r   )r$   r%   r&   r   indexr   argument_value_nameparameter_names           r!   %write_operation_parameter_conversionsr3   )   s    LL56%j19#%[bc #E7m0;		I12/%MN)"9"9"AII5iIJ!NK[ \

	 		OP\]f  ~F  QP  PQ Q II	;<An=MSQmnw  RB  QC C

	 		OP\]f  ~F  QP  PQ Q 		.))`amnw  OW  ba  ab b 	
= 2r#   r0   c                    [        UR                  UUR                  S9n[        UR                  U5        [        U5      n[        X5      nU R                  SU SU SU SU SU SU S[        US	X45       S
U S35        g )Nr   r)   r*   z ;
    if (vm.argument_count() > z) {
        z'.ensure_capacity(vm.argument_count() - z);
        for (size_t i = zq; i < vm.argument_count(); ++i) {
            auto argument = TRY(throw_dom_exception_if_needed(vm, [&] { return zvm.argument(i)z; }));
            z4.unchecked_append(move(argument));
        }
    }

)	r   r   r   r   r   r
   r"   r.   r   )r$   r   r0   r&   r   r   r2   parameter_cpp_types           r!   r-   r-   V   s     -%99H
 +8+J+JHU,Y7N5iIII#$An%5 6$g &		?w G  QQ]^giy  |D  RN  QO O 		r#   )typingr   "Generators.libweb_bindings.contextr   $Generators.libweb_bindings.cpp_typesr   r   r   r   r	   r
   )Generators.libweb_bindings.default_valuesr   #Generators.libweb_bindings.includesr   'Generators.libweb_bindings.to_idl_valuer   Utils.webidl_parserr   strr"   listr3   intr-    r#   r!   <module>rA      s   
  @ @ W F N ? H R A @ 2.,> .IZ ._b .**
	*
'(*
  *
 	*

 
*
Z	!   	
  
r#   