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