Index: third_party/WebKit/Source/bindings/templates/partial_interface.cpp |
diff --git a/third_party/WebKit/Source/bindings/templates/partial_interface.cpp b/third_party/WebKit/Source/bindings/templates/partial_interface.cpp |
index 37b4741ca976103832716b5d1b6813fce2324f89..6fcfcec14d98c539359df7d2cfb12634ea3442b2 100644 |
--- a/third_party/WebKit/Source/bindings/templates/partial_interface.cpp |
+++ b/third_party/WebKit/Source/bindings/templates/partial_interface.cpp |
@@ -1,5 +1,13 @@ |
{% extends 'interface_base.cpp' %} |
+{% set has_prepare_prototype_and_interface_object = |
+ unscopeables or has_conditional_attributes_on_prototype or |
+ methods | conditionally_exposed(is_partial) %} |
+{% set prepare_prototype_and_interface_object_func = |
+ '%s::preparePrototypeAndInterfaceObject' % v8_class_or_partial |
+ if has_prepare_prototype_and_interface_object |
+ else 'nullptr' %} |
+ |
{##############################################################################} |
{% block prepare_prototype_and_interface_object %} |
@@ -7,14 +15,12 @@ |
{% from 'interface.cpp' import install_conditionally_enabled_attributes_on_prototype with context %} |
{% from 'methods.cpp' import install_conditionally_enabled_methods |
with context %} |
+{% if has_prepare_prototype_and_interface_object %} |
void {{v8_class_or_partial}}::preparePrototypeAndInterfaceObject(v8::Local<v8::Context> context, const DOMWrapperWorld& world, v8::Local<v8::Object> prototypeObject, v8::Local<v8::Function> interfaceObject, v8::Local<v8::FunctionTemplate> interfaceTemplate) |
{ |
+#error No one is currently using a partial interface with context-dependent properties. If you\'re planning to use it, please consult with the binding team: <blink-reviews-bindings@chromium.org> |
{{v8_class}}::preparePrototypeAndInterfaceObject(context, world, prototypeObject, interfaceObject, interfaceTemplate); |
-{% if unscopeables or |
- has_conditional_attributes_on_prototype or |
- methods | conditionally_exposed(is_partial) %} |
v8::Isolate* isolate = context->GetIsolate(); |
-{% endif %} |
{% if unscopeables %} |
{{install_unscopeables() | indent}} |
{% endif %} |
@@ -25,6 +31,7 @@ void {{v8_class_or_partial}}::preparePrototypeAndInterfaceObject(v8::Local<v8::C |
{{install_conditionally_enabled_methods() | indent}} |
{% endif %} |
} |
+{% endif %} |
{% endblock %} |
@@ -36,7 +43,7 @@ void {{v8_class_or_partial}}::initialize() |
// Should be invoked from ModulesInitializer. |
{{v8_class}}::updateWrapperTypeInfo( |
&{{v8_class_or_partial}}::install{{v8_class}}Template, |
- &{{v8_class_or_partial}}::preparePrototypeAndInterfaceObject); |
+ {{prepare_prototype_and_interface_object_func}}); |
{% for method in methods %} |
{% if method.overloads and method.overloads.has_partial_overloads %} |
{{v8_class}}::register{{method.name | blink_capitalize}}MethodForPartialInterface(&{{cpp_class_or_partial}}V8Internal::{{method.name}}Method); |