| Index: third_party/WebKit/Source/bindings/templates/attributes.cpp
|
| diff --git a/third_party/WebKit/Source/bindings/templates/attributes.cpp b/third_party/WebKit/Source/bindings/templates/attributes.cpp
|
| index c5214d31fcee500ff52c725f4458158e5b256f5f..e253d3276a0c63195123c774152b14157c3b361f 100644
|
| --- a/third_party/WebKit/Source/bindings/templates/attributes.cpp
|
| +++ b/third_party/WebKit/Source/bindings/templates/attributes.cpp
|
| @@ -27,9 +27,21 @@ const v8::FunctionCallbackInfo<v8::Value>& info
|
| v8::Local<v8::Object> holder = info.Holder();
|
| {% endif %}
|
| {# impl #}
|
| + {% if attribute.is_save_same_object %}
|
| + v8::Local<v8::String> propertyName = v8AtomicString(info.GetIsolate(), "sameobject_{{attribute.name}}");
|
| + {
|
| + v8::Local<v8::Value> v8Value = V8HiddenValue::getHiddenValue(ScriptState::current(info.GetIsolate()), holder, propertyName);
|
| + if (!v8Value.IsEmpty()) {
|
| + v8SetReturnValue(info, v8Value);
|
| + return;
|
| + }
|
| + }
|
| + {% endif %}
|
| + {% if not attribute.is_static %}
|
| + {{cpp_class}}* impl = {{v8_class}}::toImpl(holder);
|
| + {% endif %}
|
| {% if attribute.cached_attribute_validation_method %}
|
| v8::Local<v8::String> propertyName = v8AtomicString(info.GetIsolate(), "{{attribute.name}}");
|
| - {{cpp_class}}* impl = {{v8_class}}::toImpl(holder);
|
| if (!impl->{{attribute.cached_attribute_validation_method}}()) {
|
| v8::Local<v8::Value> v8Value = V8HiddenValue::getHiddenValue(ScriptState::current(info.GetIsolate()), holder, propertyName);
|
| if (!v8Value.IsEmpty() && !v8Value->IsUndefined()) {
|
| @@ -37,8 +49,6 @@ const v8::FunctionCallbackInfo<v8::Value>& info
|
| return;
|
| }
|
| }
|
| - {% elif not attribute.is_static %}
|
| - {{cpp_class}}* impl = {{v8_class}}::toImpl(holder);
|
| {% endif %}
|
| {% if interface_name == 'Window' and attribute.idl_type == 'EventHandler' %}
|
| if (!impl->document())
|
| @@ -123,6 +133,9 @@ const v8::FunctionCallbackInfo<v8::Value>& info
|
| {% endif %}
|
| {{attribute.v8_set_return_value}};
|
| {% endif %}
|
| + {% if attribute.is_save_same_object %}
|
| + V8HiddenValue::setHiddenValue(ScriptState::current(info.GetIsolate()), holder, propertyName, info.GetReturnValue().Get());
|
| + {% endif %}
|
| }
|
| {% endmacro %}
|
|
|
|
|