
    8SjP#              
           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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\4S jrS\S\S\S\SS4
S jr g)    )TextIO)overload_resolution)attribute_getter_callback_name)attribute_has_setter)attribute_setter_callback_name)$write_callback_interface_declaration)GenerationContext)idl_identifier_cpp_name)write_global_mixin_declaration)GeneratedIncludes)*write_async_iterator_prototype_declaration)$write_iterator_prototype_declaration)#interface_supports_named_properties))write_named_properties_object_declaration)write_namespace_declaration)operation_callback_names)	Interface	interfacereturnc                    SU R                   ;   =(       d    U R                  S L=(       d    U R                  S L=(       d    U R                  S L=(       d    U R                  S L=(       d    U R
                  S L=(       dl    U R                  S L=(       dW    U R                  S L=(       dB    U R                  S L=(       a    U R                  R                  S L=(       d    U R                  S L$ )NGlobal)extended_attributesindexed_property_getternamed_property_getternamed_property_setternamed_property_deleterindexed_property_settermaplikesetlikeiterablekey_typeasync_iterable)r   s    c/mnt/mint/home/seanl/public/Repos/ladybird/Meta/Generators/libweb_bindings/interface_declaration.py#interface_requires_custom_prototyper$      s    I111 		0,,D8		0**$6		0 **$6		0 ++47			0
 ,,D8		0 D(		0 D(		0 d*Vy/A/A/J/JRV/V		0 ##4/    outincludescontextNc                    UR                   (       a  [        XX#5        g UR                  (       a  [        XX#5        g UR	                  S5        UR	                  S5        UR	                  S5        [        U5      nU R                  SUR                   S35        [        UR                  5      S:  a3  [        UR                  5       H  u  pVU R                  SU S35        M     [        R                  " US	S
9R                  5        Hg  nUS   nU R                  S[        U5       S35        [        U5      S:  d  M7  [        U5       H!  u  pYU R                  S[        XS9 S35        M#     Mi     UR                   H3  n
SU
R                   ;   a  M  U R                  S[#        U
5       S35        M5     U R                  S5        [%        U5      (       a  U R                  SUR&                   SUR&                   SUR&                   SUR&                   SUR&                   S35        SUR                   ;   a  U R                  S5        U R                  S5        OU R                  SUR&                   S35        UR(                   Hc  n
SU
R                   ;   a  M  U R                  S[#        U
5       S35        [+        U
5      (       d  ME  U R                  S[-        U
5       S35        Me     [        R                  " U5      R                  5        Hg  nUS   nU R                  S[        U5       S35        [        U5      S:  d  M7  [        U5       H!  u  pYU R                  S[        XS9 S35        M#     Mi     UR.                  b  U R                  S5        UR0                  bC  UR0                  R2                  (       a(  U R                  S[        UR0                  5       S35        UR4                  bC  UR4                  R2                  (       a(  U R                  S[        UR4                  5       S35        UR6                  bC  UR6                  R2                  (       a(  U R                  S[        UR6                  5       S35        UR8                  bC  UR8                  R2                  (       a(  U R                  S[        UR8                  5       S35        UR:                  b  U R                  S5        U R                  S5        U R                  S5        U R                  S5        U R                  S 5        U R                  S!5        U R                  S"5        UR:                  R<                  (       d"  U R                  S#5        U R                  S$5        UR>                  b  U R                  S5        U R                  S5        U R                  S5        U R                  S 5        U R                  S"5        UR>                  R<                  (       dE  S%U;  a  U R                  S&5        S'U;  a  U R                  S#5        S(U;  a  U R                  S$5        UR@                  b[  UR@                  RB                  bD  U R                  S5        U R                  S 5        U R                  S5        U R                  S5        URD                  b  U R                  S5        U R                  S5        SUR                   ;   a  [G        XU5        [I        U5      (       a  [K        XU5        [M        X5        [O        X5        g ))NzLibJS/Runtime/NativeFunction.hzLibJS/Runtime/Object.hz!LibWeb/Bindings/InterfaceObject.hzstruct z {
public:
    static void initialize(JS::Realm&, JS::NativeFunction&);
    static JS::ThrowCompletionOr<GC::Ref<JS::Object>> construct(InterfaceConstructor&, JS::FunctionObject&);

private:
   z?    static JS::ThrowCompletionOr<GC::Ref<JS::Object>> constructz.(InterfaceConstructor&, JS::FunctionObject&);
T)staticr   z    JS_DECLARE_NATIVE_FUNCTION(z);
)suffixFIXMEz};

zclass z% : public JS::Object {
    JS_OBJECT(z(, JS::Object);
    GC_DECLARE_ALLOCATOR(zb);

public:
    static void define_unforgeable_attributes(JS::Realm&, JS::Object&);

    explicit zM(JS::Realm&);
    virtual void initialize(JS::Realm&) override;
    virtual ~z() override;
r   zY    virtual JS::ThrowCompletionOr<bool> internal_set_prototype_of(JS::Object*) override;
z

private:
z {
public:
    static void initialize(JS::Realm&, JS::Object&);
    static void define_unforgeable_attributes(JS::Realm&, JS::Object&);

private:
z+    JS_DECLARE_NATIVE_FUNCTION(to_string);
z*    JS_DECLARE_NATIVE_FUNCTION(get_size);
z)    JS_DECLARE_NATIVE_FUNCTION(entries);
z&    JS_DECLARE_NATIVE_FUNCTION(keys);
z(    JS_DECLARE_NATIVE_FUNCTION(values);
z*    JS_DECLARE_NATIVE_FUNCTION(for_each);
z%    JS_DECLARE_NATIVE_FUNCTION(get);
z%    JS_DECLARE_NATIVE_FUNCTION(has);
z)    JS_DECLARE_NATIVE_FUNCTION(delete_);
z'    JS_DECLARE_NATIVE_FUNCTION(clear);
addz%    JS_DECLARE_NATIVE_FUNCTION(add);
delete_clear)(is_callback_interfacer   is_namespacer   r.   r   writeconstructor_classlenconstructors	enumerater   operation_overload_setsvaluesr
   static_attributesr   r   r$   prototype_classregular_attributesr   r   stringifierr   namer   r   r   r   readonlyr   r    r!   r"   r   r   r   r   r   )r&   r'   r(   r   operation_callbacksoverload_index_
operations	operationoverloaded_operation	attributes              r#   write_declarationrG   )   sv    &&,SGO#C7FLL12LL)*LL4529=III//0 1 	 9!!"Q&!*9+A+A!BNIIQR`Qa  bQ  R "C *AA)TXY``b
qM			34KI4V3WW[\]z?Q8A*8M4		56MNb6z5{{  A 9N	 c 00	i333		34RS\4]3^^bcd 1 II	 +955		y001 2(() *#334 5
 ''( )''( )
	
 y444IIrs			
 				112 3 	
 11	i333		34RS\4]3^^bcd	**II78VW`8a7bbfgh 2 *AA)LSSU
qM			34KI4V3WW[\]z?Q8A*8M4		56MNb6z5{{  A 9N	 V (		@A((49Z9Z9_9_		34KILmLm4n3oostu&&2y7V7V7[7[		34KILkLk4l3mmqrs&&2y7V7V7[7[		34KILkLk4l3mmqrs''3	8X8X8]8]		34KILlLl4m3nnrst$		?@		>?		;<		=>		?@		:;		:;  ))IIBCII@A$		?@		>?		=>		?@		:;  ))//		BC 33		FG11		DE%)*<*<*E*E*Q		>?		?@		;<		=>+		=>II	
 9000&sY?*9551#K(8.s>r%   )!typingr   Generators.libweb_bindingsr   %Generators.libweb_bindings.attributesr   r   r   .Generators.libweb_bindings.callback_interfacesr   "Generators.libweb_bindings.contextr	   $Generators.libweb_bindings.cpp_typesr
   (Generators.libweb_bindings.global_mixinsr   #Generators.libweb_bindings.includesr   $Generators.libweb_bindings.iterablesr   r   7Generators.libweb_bindings.named_and_indexed_propertiesr   r   %Generators.libweb_bindings.namespacesr   .Generators.libweb_bindings.overload_resolutionr   Utils.webidl_parserr   boolr$   rG    r%   r#   <module>rW      s     : P F P _ @ H S A [ U g m M S )9  P?	P?,P?7HP?U^P?	P?r%   