Chromium Code Reviews| Index: Source/bindings/templates/attributes.cpp |
| diff --git a/Source/bindings/templates/attributes.cpp b/Source/bindings/templates/attributes.cpp |
| index fea5d2ca5fc795ff9d2b0bdfd2f6d33f8e54498c..f5a342f1546420d6c17c874a44018632e57121e5 100644 |
| --- a/Source/bindings/templates/attributes.cpp |
| +++ b/Source/bindings/templates/attributes.cpp |
| @@ -35,7 +35,8 @@ const v8::PropertyCallbackInfo<v8::Value>& info |
| {% if attribute.reflect_only %} |
| {{attribute.cpp_type}} {{attribute.cpp_value}} = {{attribute.cpp_value_original}}; |
| {{release_only_check(attribute.reflect_only, attribute.reflect_missing, |
| - attribute.reflect_invalid) | indent}} |
| + attribute.reflect_invalid, attribute.reflect_empty) |
| + | indent}} |
| {% endif %} |
| {% if attribute.is_call_with_execution_context %} |
| ExecutionContext* scriptContext = currentExecutionContext(info.GetIsolate()); |
| @@ -97,16 +98,28 @@ const v8::PropertyCallbackInfo<v8::Value>& info |
| {######################################} |
| {% macro release_only_check(reflect_only_values, reflect_missing, |
| - reflect_invalid) %} |
| + reflect_invalid, reflect_empty) %} |
| {# Attribute is limited to only known values: check that the attribute value is |
| one of those. If not, set it to the empty string. |
| http://www.whatwg.org/specs/web-apps/current-work/#limited-to-only-known-values #} |
| +{% if reflect_empty %} |
| +if (resultValue.isNull()) { |
| +{% if reflect_missing %} |
| + resultValue = "{{reflect_missing}}"; |
| +{% else %} |
| + ; |
| +{% endif %} |
| +} else if (resultValue.isEmpty()) { |
| + resultValue = "{{reflect_empty}}"; |
| +{% else %} |
| if (resultValue.isEmpty()) { |
| +{# FIXME: should use [ReflectEmpty] instead; need to change IDL files #} |
|
haraken
2014/02/05 07:13:15
Yeah, we should fix it.
|
| {% if reflect_missing %} |
| resultValue = "{{reflect_missing}}"; |
| {% else %} |
| ; |
|
haraken
2014/02/05 07:13:15
What's this?
Nils Barth (inactive)
2014/02/05 07:14:39
Perl generates an empty statement if there's no va
|
| {% endif %} |
| +{% endif %} |
| {% for value in reflect_only_values %} |
| } else if (equalIgnoringCase(resultValue, "{{value}}")) { |
| resultValue = "{{value}}"; |