OLD | NEW |
| (Empty) |
1 {% filter format_blink_cpp_source_code %} | |
2 | |
3 {% include 'copyright_block.txt' %} | |
4 | |
5 #include "bindings/modules/v8/{{class}}.h" | |
6 | |
7 #include <cstdint> | |
8 | |
9 {% for include_file in include_files %} | |
10 #include "{{include_file}}" | |
11 {% endfor %} | |
12 | |
13 namespace blink { | |
14 | |
15 intptr_t* {{class}}::GetTable() { | |
16 static intptr_t reference_table[] = { | |
17 {% for interface in interfaces %} | |
18 {% if not interface.is_array_buffer_or_view %} | |
19 {% set v8_class = interface.v8_name %} | |
20 | |
21 {# Attributes #} | |
22 {%- for attribute in interface.attributes %} | |
23 {%- for world_suffix in attribute.world_suffixes %} | |
24 {% if not attribute.constructor_type %} | |
25 reinterpret_cast<intptr_t>({{v8_class}}::{{attribute.name}}AttributeGetterCa
llback{{world_suffix}}), | |
26 {% elif attribute.needs_constructor_getter_callback %} | |
27 reinterpret_cast<intptr_t>({{v8_class}}::{{attribute.name}}ConstructorGetter
Callback{{world_suffix}}), | |
28 {% elif attribute.is_named_constructor %} | |
29 reinterpret_cast<intptr_t>(V8{{attribute.constructor_type}}::NamedConstructo
rAttributeGetter{{world_suffix}}), | |
30 {% endif %} | |
31 {% if attribute.has_setter %} | |
32 reinterpret_cast<intptr_t>({{v8_class}}::{{attribute.name}}AttributeSetterCa
llback{{world_suffix}}), | |
33 {% endif %} | |
34 {%- endfor %}{# world_suffix #} | |
35 {%- endfor %}{# attributes #} | |
36 | |
37 {# Methods / Operations #} | |
38 {% for method in interface.methods %} | |
39 {%- for world_suffix in method.world_suffixes %} | |
40 {% if not method.overload_index or method.overloads %} | |
41 {% if (method.overloads and method.overloads.visible and | |
42 (not method.overloads.has_partial_overloads or not interface.i
s_partial)) or | |
43 (not method.overloads and method.visible) %} | |
44 {# TODO(bashi): Remove this 'if' condition when crbug.com/630986 is fixed. #
} | |
45 {% if not interface.is_callback %} | |
46 reinterpret_cast<intptr_t>({{v8_class}}::{{method.name}}MethodCallback{{worl
d_suffix}}), | |
47 {% endif %} | |
48 {% endif %} | |
49 {% endif %}{# overload(_index) #} | |
50 {% if method.is_cross_origin and method.visible %} | |
51 reinterpret_cast<intptr_t>({{v8_class}}::{{method.name}}OriginSafeMethodGett
erCallback{{world_suffix}}), | |
52 {% endif%} | |
53 {% endfor %} | |
54 {% endfor %}{# method #} | |
55 {% if interface.has_origin_safe_method_setter %} | |
56 reinterpret_cast<intptr_t>({{v8_class}}::{{interface.name}}OriginSafeMethodS
etterCallback), | |
57 {% endif %} | |
58 {% if interface.has_cross_origin_named_getter %} | |
59 reinterpret_cast<intptr_t>({{v8_class}}::crossOriginNamedGetter), | |
60 {% endif %} | |
61 {% if interface.has_cross_origin_named_setter %} | |
62 reinterpret_cast<intptr_t>({{v8_class}}::crossOriginNamedSetter), | |
63 {% endif %} | |
64 {% if interface.has_cross_origin_named_enumerator %} | |
65 reinterpret_cast<intptr_t>({{v8_class}}::crossOriginNamedEnumerator), | |
66 {% endif %} | |
67 {% if interface.has_cross_origin_indexed_getter %} | |
68 reinterpret_cast<intptr_t>({{v8_class}}::crossOriginIndexedGetter), | |
69 {% endif %} | |
70 {% if interface.has_security_check %} | |
71 reinterpret_cast<intptr_t>({{v8_class}}::securityCheck), | |
72 {% endif %} | |
73 | |
74 {# Other properties #} | |
75 {% if interface.has_constructor_callback %} | |
76 reinterpret_cast<intptr_t>({{v8_class}}::constructorCallback), | |
77 {% endif %} | |
78 {% if interface.named_property_getter %} | |
79 reinterpret_cast<intptr_t>({{v8_class}}::namedPropertyGetterCallback), | |
80 {% endif %} | |
81 {%- if interface.named_property_setter %} | |
82 reinterpret_cast<intptr_t>({{v8_class}}::namedPropertySetterCallback), | |
83 {% endif %} | |
84 {%- if interface.named_property_deleter %} | |
85 reinterpret_cast<intptr_t>({{v8_class}}::namedPropertyDeleterCallback), | |
86 {% endif %} | |
87 {%- if interface.named_property_getter and interface.named_property_getter.
is_enumerable %} | |
88 reinterpret_cast<intptr_t>({{v8_class}}::namedPropertyQueryCallback), | |
89 reinterpret_cast<intptr_t>({{v8_class}}::namedPropertyEnumeratorCallback), | |
90 {% endif %} | |
91 {%- if interface.indexed_property_getter %} | |
92 reinterpret_cast<intptr_t>({{v8_class}}::indexedPropertyGetterCallback), | |
93 reinterpret_cast<intptr_t>({{v8_class}}::indexedPropertyDefinerCallback), | |
94 reinterpret_cast<intptr_t>({{v8_class}}::indexedPropertyDescriptorCallback), | |
95 {% endif %} | |
96 {%- if interface.indexed_property_getter or interface.named_property_setter
%} | |
97 reinterpret_cast<intptr_t>({{v8_class}}::indexedPropertySetterCallback), | |
98 {% endif %} | |
99 {%- if interface.indexed_property_deleter %} | |
100 reinterpret_cast<intptr_t>({{v8_class}}::indexedPropertyDeleterCallback), | |
101 {% endif %} | |
102 {% if interface.has_security_check_function %} | |
103 reinterpret_cast<intptr_t>({{v8_class}}::securityCheck), | |
104 {%- endif %} | |
105 {% endif %}{# not is_array_buffer_or_view #} | |
106 | |
107 {% if not interface.is_partial or is_snapshotted %} | |
108 reinterpret_cast<intptr_t>(&{{interface.v8_name}}::wrapperTypeInfo), | |
109 {% endif %} | |
110 {% if interface.named_constructor %} | |
111 reinterpret_cast<intptr_t>(&{{interface.v8_name}}Constructor::wrapperTypeInf
o), | |
112 {% endif %} | |
113 {% endfor %}{# interfaces #} | |
114 | |
115 reinterpret_cast<intptr_t>(V8ObjectConstructor::IsValidConstructorMode), | |
116 reinterpret_cast<intptr_t>(V8ConstructorAttributeGetter), | |
117 0 // terminate with a null | |
118 }; | |
119 | |
120 return reference_table; | |
121 } | |
122 | |
123 } // namespace blink | |
124 | |
125 {% endfilter %}{# format_blink_cpp_source_code #} | |
OLD | NEW |