| Index: Source/bindings/templates/attributes.cpp
|
| diff --git a/Source/bindings/templates/attributes.cpp b/Source/bindings/templates/attributes.cpp
|
| index e7393c1a409ff84431f950c7336801b24634aa35..2a9cfc87f9f3e028fa004d3ea2839b90a10a64f6 100644
|
| --- a/Source/bindings/templates/attributes.cpp
|
| +++ b/Source/bindings/templates/attributes.cpp
|
| @@ -48,13 +48,8 @@ const v8::PropertyCallbackInfo<v8::Value>& info
|
| {% if attribute.is_nullable and not attribute.has_type_checking_nullable %}
|
| bool isNull = false;
|
| {% endif %}
|
| - {# FIXME: consider always using a local variable for value #}
|
| - {% if attribute.cached_attribute_validation_method or
|
| - attribute.is_getter_raises_exception or
|
| - attribute.is_nullable or
|
| - attribute.reflect_only or
|
| - attribute.idl_type == 'EventHandler' %}
|
| - {{attribute.cpp_type}} {{attribute.cpp_value}} = {{attribute.cpp_value_original}};
|
| + {% if attribute.cpp_value_original %}
|
| + {{attribute.cpp_type}} {{attribute.cpp_value}}({{attribute.cpp_value_original}});
|
| {% endif %}
|
| {# Checks #}
|
| {% if attribute.is_getter_raises_exception %}
|
| @@ -89,11 +84,9 @@ const v8::PropertyCallbackInfo<v8::Value>& info
|
| {% endif %}
|
| {# v8SetReturnValue #}
|
| {% if attribute.is_keep_alive_for_gc %}
|
| - {# FIXME: merge local variable assignment with above #}
|
| - {{attribute.cpp_type}} result({{attribute.cpp_value}});
|
| - if (result && DOMDataStore::setReturnValueFromWrapper{{world_suffix}}<{{attribute.v8_type}}>(info.GetReturnValue(), result.get()))
|
| + if ({{attribute.cpp_value}} && DOMDataStore::setReturnValueFromWrapper{{world_suffix}}<{{attribute.v8_type}}>(info.GetReturnValue(), {{attribute.cpp_value}}.get()))
|
| return;
|
| - v8::Handle<v8::Value> wrapper = toV8(result.get(), holder, info.GetIsolate());
|
| + v8::Handle<v8::Value> wrapper = toV8({{attribute.cpp_value}}.get(), holder, info.GetIsolate());
|
| if (!wrapper.IsEmpty()) {
|
| V8HiddenValue::setHiddenValue(info.GetIsolate(), holder, v8AtomicString(info.GetIsolate(), "{{attribute.name}}"), wrapper);
|
| {{attribute.v8_set_return_value}};
|
|
|