OLD | NEW |
1 {% extends 'interface_base.cpp' %} | 1 {% extends 'interface_base.cpp' %} |
2 | 2 |
3 | 3 |
4 {##############################################################################} | 4 {##############################################################################} |
5 {% macro attribute_configuration(attribute) %} | 5 {% macro attribute_configuration(attribute) %} |
6 {% set getter_callback = | 6 {% set getter_callback = |
7 '%sV8Internal::%sAttributeGetterCallback' % | 7 '%sV8Internal::%sAttributeGetterCallback' % |
8 (cpp_class, attribute.name) | 8 (cpp_class, attribute.name) |
9 if not attribute.constructor_type else | 9 if not attribute.constructor_type else |
10 ('%sV8Internal::%sConstructorGetterCallback' % | 10 ('%sV8Internal::%sConstructorGetterCallback' % |
(...skipping 762 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
773 {% endfor %} | 773 {% endfor %} |
774 }; | 774 }; |
775 | 775 |
776 {% endif %} | 776 {% endif %} |
777 {% endblock %} | 777 {% endblock %} |
778 | 778 |
779 | 779 |
780 {##############################################################################} | 780 {##############################################################################} |
781 {% block class_methods %} | 781 {% block class_methods %} |
782 {# FIXME: rename to install_methods and put into configure_class_template #} | 782 {# FIXME: rename to install_methods and put into configure_class_template #} |
783 {% if has_method_configuration %} | 783 {% if method_configuration_methods %} |
784 static const V8DOMConfiguration::MethodConfiguration {{v8_class}}Methods[] = { | 784 static const V8DOMConfiguration::MethodConfiguration {{v8_class}}Methods[] = { |
785 {% for method in methods if method.do_generate_method_configuration %} | 785 {% for method in method_configuration_methods %} |
786 {% filter conditional(method.conditional_string) %} | 786 {% filter conditional(method.conditional_string) %} |
787 {{method_configuration(method)}}, | 787 {{method_configuration(method)}}, |
788 {% endfilter %} | 788 {% endfilter %} |
789 {% endfor %} | 789 {% endfor %} |
790 }; | 790 }; |
791 | 791 |
792 {% endif %} | 792 {% endif %} |
793 {% endblock %} | 793 {% endblock %} |
794 | 794 |
795 | 795 |
(...skipping 101 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
897 ('%sAttributes' % v8_class, | 897 ('%sAttributes' % v8_class, |
898 'WTF_ARRAY_LENGTH(%sAttributes)' % v8_class) | 898 'WTF_ARRAY_LENGTH(%sAttributes)' % v8_class) |
899 if has_attribute_configuration else (0, 0) %} | 899 if has_attribute_configuration else (0, 0) %} |
900 {% set accessors_name, accessors_length = | 900 {% set accessors_name, accessors_length = |
901 ('%sAccessors' % v8_class, | 901 ('%sAccessors' % v8_class, |
902 'WTF_ARRAY_LENGTH(%sAccessors)' % v8_class) | 902 'WTF_ARRAY_LENGTH(%sAccessors)' % v8_class) |
903 if has_accessors else (0, 0) %} | 903 if has_accessors else (0, 0) %} |
904 {% set methods_name, methods_length = | 904 {% set methods_name, methods_length = |
905 ('%sMethods' % v8_class, | 905 ('%sMethods' % v8_class, |
906 'WTF_ARRAY_LENGTH(%sMethods)' % v8_class) | 906 'WTF_ARRAY_LENGTH(%sMethods)' % v8_class) |
907 if has_method_configuration else (0, 0) %} | 907 if method_configuration_methods else (0, 0) %} |
908 {{attributes_name}}, {{attributes_length}}, | 908 {{attributes_name}}, {{attributes_length}}, |
909 {{accessors_name}}, {{accessors_length}}, | 909 {{accessors_name}}, {{accessors_length}}, |
910 {{methods_name}}, {{methods_length}}, | 910 {{methods_name}}, {{methods_length}}, |
911 isolate); | 911 isolate); |
912 {% endfilter %} | 912 {% endfilter %} |
913 | 913 |
914 {% if constructors or has_custom_constructor or has_event_constructor %} | 914 {% if constructors or has_custom_constructor or has_event_constructor %} |
915 functionTemplate->SetCallHandler({{v8_class}}::constructorCallback); | 915 functionTemplate->SetCallHandler({{v8_class}}::constructorCallback); |
916 functionTemplate->SetLength({{interface_length}}); | 916 functionTemplate->SetLength({{interface_length}}); |
917 {% endif %} | 917 {% endif %} |
(...skipping 60 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
978 functionTemplate->{{set_on_template}}()->SetNamedPropertyHandler({{named_pro
perty_getter_callback}}, {{named_property_setter_callback}}, {{named_property_qu
ery_callback}}, {{named_property_deleter_callback}}, {{named_property_enumerator
_callback}}); | 978 functionTemplate->{{set_on_template}}()->SetNamedPropertyHandler({{named_pro
perty_getter_callback}}, {{named_property_setter_callback}}, {{named_property_qu
ery_callback}}, {{named_property_deleter_callback}}, {{named_property_enumerator
_callback}}); |
979 {% endif %} | 979 {% endif %} |
980 {# End special operations #} | 980 {# End special operations #} |
981 {% if has_custom_legacy_call_as_function %} | 981 {% if has_custom_legacy_call_as_function %} |
982 functionTemplate->InstanceTemplate()->SetCallAsFunctionHandler({{v8_class}}:
:legacyCallCustom); | 982 functionTemplate->InstanceTemplate()->SetCallAsFunctionHandler({{v8_class}}:
:legacyCallCustom); |
983 {% endif %} | 983 {% endif %} |
984 {% if interface_name == 'HTMLAllCollection' %} | 984 {% if interface_name == 'HTMLAllCollection' %} |
985 {# Needed for legacy support of document.all #} | 985 {# Needed for legacy support of document.all #} |
986 functionTemplate->InstanceTemplate()->MarkAsUndetectable(); | 986 functionTemplate->InstanceTemplate()->MarkAsUndetectable(); |
987 {% endif %} | 987 {% endif %} |
988 {% for method in methods if not method.do_not_check_signature %} | 988 {% for method in custom_registration_methods %} |
989 {# install_custom_signature #} | 989 {# install_custom_signature #} |
990 {% if not method.overload_index or method.overload_index == 1 %} | |
991 {# For overloaded methods, only generate one accessor #} | |
992 {% filter conditional(method.conditional_string) %} | 990 {% filter conditional(method.conditional_string) %} |
993 {% if method.is_do_not_check_security %} | 991 {% if method.is_do_not_check_security %} |
994 {% if method.is_per_world_bindings %} | 992 {% if method.is_per_world_bindings %} |
995 if (DOMWrapperWorld::current(isolate).isMainWorld()) { | 993 if (DOMWrapperWorld::current(isolate).isMainWorld()) { |
996 {{install_do_not_check_security_signature(method, 'ForMainWorld')}} | 994 {{install_do_not_check_security_signature(method, 'ForMainWorld')}} |
997 } else { | 995 } else { |
998 {{install_do_not_check_security_signature(method)}} | 996 {{install_do_not_check_security_signature(method)}} |
999 } | 997 } |
1000 {% else %} | 998 {% else %} |
1001 {{install_do_not_check_security_signature(method)}} | 999 {{install_do_not_check_security_signature(method)}} |
1002 {% endif %} | 1000 {% endif %} |
1003 {% else %}{# is_do_not_check_security #} | 1001 {% else %}{# is_do_not_check_security #} |
1004 {% if method.is_per_world_bindings %} | 1002 {% if method.is_per_world_bindings %} |
1005 if (DOMWrapperWorld::current(isolate).isMainWorld()) { | 1003 if (DOMWrapperWorld::current(isolate).isMainWorld()) { |
1006 {% filter runtime_enabled(method.runtime_enabled_function) %} | 1004 {% filter runtime_enabled(method.runtime_enabled_function) %} |
1007 {{install_custom_signature(method, 'ForMainWorld')}} | 1005 {{install_custom_signature(method, 'ForMainWorld')}} |
1008 {% endfilter %} | 1006 {% endfilter %} |
1009 } else { | 1007 } else { |
1010 {% filter runtime_enabled(method.runtime_enabled_function) %} | 1008 {% filter runtime_enabled(method.runtime_enabled_function) %} |
1011 {{install_custom_signature(method)}} | 1009 {{install_custom_signature(method)}} |
1012 {% endfilter %} | 1010 {% endfilter %} |
1013 } | 1011 } |
1014 {% else %} | 1012 {% else %} |
1015 {% filter runtime_enabled(method.runtime_enabled_function) %} | 1013 {% filter runtime_enabled(method.runtime_enabled_function) %} |
1016 {{install_custom_signature(method)}} | 1014 {{install_custom_signature(method)}} |
1017 {% endfilter %} | 1015 {% endfilter %} |
1018 {% endif %} | 1016 {% endif %} |
1019 {% endif %}{# is_do_not_check_security #} | 1017 {% endif %}{# is_do_not_check_security #} |
1020 {% endfilter %} | 1018 {% endfilter %} |
1021 {% endif %}{# install_custom_signature #} | |
1022 {% endfor %} | 1019 {% endfor %} |
1023 {% for attribute in attributes if attribute.is_static %} | 1020 {% for attribute in attributes if attribute.is_static %} |
1024 {% set getter_callback = '%sV8Internal::%sAttributeGetterCallback' % | 1021 {% set getter_callback = '%sV8Internal::%sAttributeGetterCallback' % |
1025 (cpp_class, attribute.name) %} | 1022 (cpp_class, attribute.name) %} |
1026 {% filter conditional(attribute.conditional_string) %} | 1023 {% filter conditional(attribute.conditional_string) %} |
1027 functionTemplate->SetNativeDataProperty(v8AtomicString(isolate, "{{attribute
.name}}"), {{getter_callback}}, {{attribute.setter_callback}}, v8::External::New
(isolate, 0), static_cast<v8::PropertyAttribute>(v8::None), v8::Handle<v8::Acces
sorSignature>(), static_cast<v8::AccessControl>(v8::DEFAULT)); | 1024 functionTemplate->SetNativeDataProperty(v8AtomicString(isolate, "{{attribute
.name}}"), {{getter_callback}}, {{attribute.setter_callback}}, v8::External::New
(isolate, 0), static_cast<v8::PropertyAttribute>(v8::None), v8::Handle<v8::Acces
sorSignature>(), static_cast<v8::AccessControl>(v8::DEFAULT)); |
1028 {% endfilter %} | 1025 {% endfilter %} |
1029 {% endfor %} | 1026 {% endfor %} |
1030 {# Special interfaces #} | 1027 {# Special interfaces #} |
1031 {% if interface_name == 'Window' %} | 1028 {% if interface_name == 'Window' %} |
(...skipping 135 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
1167 } | 1164 } |
1168 {% endfor %} | 1165 {% endfor %} |
1169 } | 1166 } |
1170 | 1167 |
1171 {% endif %} | 1168 {% endif %} |
1172 {% endblock %} | 1169 {% endblock %} |
1173 | 1170 |
1174 | 1171 |
1175 {##############################################################################} | 1172 {##############################################################################} |
1176 {% block install_per_context_methods %} | 1173 {% block install_per_context_methods %} |
1177 {% if has_per_context_enabled_methods %} | 1174 {% if per_context_enabled_methods %} |
1178 void {{v8_class}}::installPerContextEnabledMethods(v8::Handle<v8::Object> protot
ypeTemplate, v8::Isolate* isolate) | 1175 void {{v8_class}}::installPerContextEnabledMethods(v8::Handle<v8::Object> protot
ypeTemplate, v8::Isolate* isolate) |
1179 { | 1176 { |
1180 {# Define per-context enabled operations #} | 1177 {# Define per-context enabled operations #} |
1181 v8::Local<v8::Signature> defaultSignature = v8::Signature::New(isolate, domT
emplate(isolate)); | 1178 v8::Local<v8::Signature> defaultSignature = v8::Signature::New(isolate, domT
emplate(isolate)); |
1182 | 1179 |
1183 ExecutionContext* context = toExecutionContext(prototypeTemplate->CreationCo
ntext()); | 1180 ExecutionContext* context = toExecutionContext(prototypeTemplate->CreationCo
ntext()); |
1184 {% for method in methods if method.per_context_enabled_function %} | 1181 {% for method in per_context_enabled_methods %} |
1185 if (context && context->isDocument() && {{method.per_context_enabled_functio
n}}(toDocument(context))) | 1182 if (context && context->isDocument() && {{method.per_context_enabled_functio
n}}(toDocument(context))) |
1186 prototypeTemplate->Set(v8AtomicString(isolate, "{{method.name}}"), v8::F
unctionTemplate::New(isolate, {{cpp_class}}V8Internal::{{method.name}}MethodCall
back, v8Undefined(), defaultSignature, {{method.number_of_required_arguments}})-
>GetFunction()); | 1183 prototypeTemplate->Set(v8AtomicString(isolate, "{{method.name}}"), v8::F
unctionTemplate::New(isolate, {{cpp_class}}V8Internal::{{method.name}}MethodCall
back, v8Undefined(), defaultSignature, {{method.number_of_required_arguments}})-
>GetFunction()); |
1187 {% endfor %} | 1184 {% endfor %} |
1188 } | 1185 } |
1189 | 1186 |
1190 {% endif %} | 1187 {% endif %} |
1191 {% endblock %} | 1188 {% endblock %} |
1192 | 1189 |
1193 | 1190 |
1194 {##############################################################################} | 1191 {##############################################################################} |
(...skipping 139 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
1334 {% endif %} | 1331 {% endif %} |
1335 } | 1332 } |
1336 | 1333 |
1337 template<> | 1334 template<> |
1338 v8::Handle<v8::Value> toV8NoInline({{cpp_class}}* impl, v8::Handle<v8::Object> c
reationContext, v8::Isolate* isolate) | 1335 v8::Handle<v8::Value> toV8NoInline({{cpp_class}}* impl, v8::Handle<v8::Object> c
reationContext, v8::Isolate* isolate) |
1339 { | 1336 { |
1340 return toV8(impl, creationContext, isolate); | 1337 return toV8(impl, creationContext, isolate); |
1341 } | 1338 } |
1342 | 1339 |
1343 {% endblock %} | 1340 {% endblock %} |
OLD | NEW |