Chromium Code Reviews| Index: third_party/WebKit/Source/bindings/templates/interface_base.cpp.tmpl |
| diff --git a/third_party/WebKit/Source/bindings/templates/interface_base.cpp.tmpl b/third_party/WebKit/Source/bindings/templates/interface_base.cpp.tmpl |
| index 2c4019d63e1ab2a01d0bfd7417e361bf34e4600f..57ab4ac3dc3096a1afac1f3e30ef961dda890305 100644 |
| --- a/third_party/WebKit/Source/bindings/templates/interface_base.cpp.tmpl |
| +++ b/third_party/WebKit/Source/bindings/templates/interface_base.cpp.tmpl |
| @@ -706,7 +706,40 @@ void {{v8_class_or_partial}}::install{{feature.name}}(ScriptState* scriptState) |
| {% block to_impl %}{% endblock %} |
| {% block to_impl_with_type_check %}{% endblock %} |
| {##############################################################################} |
| -{% block prepare_prototype_and_interface_object %}{% endblock %} |
| +{% block prepare_prototype_and_interface_object %} |
|
Yuki
2017/02/16 08:38:07
nit: This is just fine as is, but technically you
peria
2017/02/16 08:41:58
Acknowledged.
|
| +{% from 'attributes.cpp.tmpl' import install_conditionally_enabled_attributes_on_prototype with context %} |
| +{% from 'methods.cpp.tmpl' 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) { |
| + {% if is_partial %} |
| + {{v8_class}}::preparePrototypeAndInterfaceObject(context, world, prototypeObject, interfaceObject, interfaceTemplate); |
| + {% endif %} |
| + v8::Isolate* isolate = context->GetIsolate(); |
| + |
| +{% if unscopables %} |
| + v8::Local<v8::Name> unscopablesSymbol(v8::Symbol::GetUnscopables(isolate)); |
| + v8::Local<v8::Object> unscopables; |
| + if (v8CallBoolean(prototypeObject->HasOwnProperty(context, unscopablesSymbol))) |
| + unscopables = prototypeObject->Get(context, unscopablesSymbol).ToLocalChecked().As<v8::Object>(); |
| + else |
| + unscopables = v8::Object::New(isolate); |
| + {% for name, runtime_enabled_feature_name in unscopables %} |
| + {% filter runtime_enabled(runtime_enabled_feature_name) %} |
| + unscopables->CreateDataProperty(context, v8AtomicString(isolate, "{{name}}"), v8::True(isolate)).FromJust(); |
| + {% endfilter %} |
| + {% endfor %} |
| + prototypeObject->CreateDataProperty(context, unscopablesSymbol, unscopables).FromJust(); |
| +{% endif %}{# unscopables #} |
| +{% if has_conditional_attributes_on_prototype %} |
| + {{install_conditionally_enabled_attributes_on_prototype() | indent(2)}} |
| +{% endif %} |
| +{% if methods | conditionally_exposed(is_partial) %} |
| + {{install_conditionally_enabled_methods() | indent(2)}} |
| +{% endif %} |
| +} |
| +{% endif %} |
| + |
| +{% endblock %} |
| {##############################################################################} |
| {% block partial_interface %}{% endblock %} |
| } // namespace blink |