| Index: third_party/WebKit/Source/bindings/templates/dictionary_v8.cpp
|
| diff --git a/third_party/WebKit/Source/bindings/templates/dictionary_v8.cpp b/third_party/WebKit/Source/bindings/templates/dictionary_v8.cpp
|
| index b59835a4777709c4d278c96070f7e748fedf68ef..1d13190eb01f7d8120fb1546fa0c1c7b0a12b0ad 100644
|
| --- a/third_party/WebKit/Source/bindings/templates/dictionary_v8.cpp
|
| +++ b/third_party/WebKit/Source/bindings/templates/dictionary_v8.cpp
|
| @@ -43,51 +43,47 @@ void {{v8_class}}::toImpl(v8::Isolate* isolate, v8::Local<v8::Value> v8Value, {{
|
| }
|
| {% endif %}
|
| {% for member in members %}
|
| - {% if member.runtime_enabled_function %}
|
| - if ({{member.runtime_enabled_function}}()) {
|
| - {% else %}
|
| - {
|
| + {% filter runtime_enabled(member.runtime_enabled_function) %}
|
| + v8::Local<v8::Value> {{member.name}}Value;
|
| + if (!v8Object->Get(isolate->GetCurrentContext(), v8String(isolate, "{{member.name}}")).ToLocal(&{{member.name}}Value)) {
|
| + exceptionState.rethrowV8Exception(block.Exception());
|
| + return;
|
| + }
|
| + if ({{member.name}}Value.IsEmpty() || {{member.name}}Value->IsUndefined()) {
|
| + {% if member.is_required %}
|
| + exceptionState.throwTypeError("required member {{member.name}} is undefined.");
|
| + return;
|
| + {% else %}
|
| + // Do nothing.
|
| + {% endif %}
|
| + {% if member.is_nullable %}
|
| + } else if ({{member.name}}Value->IsNull()) {
|
| + impl.{{member.null_setter_name}}();
|
| {% endif %}
|
| - v8::Local<v8::Value> {{member.name}}Value;
|
| - if (!v8Object->Get(isolate->GetCurrentContext(), v8String(isolate, "{{member.name}}")).ToLocal(&{{member.name}}Value)) {
|
| - exceptionState.rethrowV8Exception(block.Exception());
|
| + } else {
|
| + {% if member.deprecate_as %}
|
| + Deprecation::countDeprecationIfNotPrivateScript(isolate, currentExecutionContext(isolate), UseCounter::{{member.deprecate_as}});
|
| + {% endif %}
|
| + {{v8_value_to_local_cpp_value(member) | indent(8)}}
|
| + {% if member.is_interface_type %}
|
| + if (!{{member.name}} && !{{member.name}}Value->IsNull()) {
|
| + exceptionState.throwTypeError("member {{member.name}} is not of type {{member.idl_type}}.");
|
| return;
|
| }
|
| - if ({{member.name}}Value.IsEmpty() || {{member.name}}Value->IsUndefined()) {
|
| - {% if member.is_required %}
|
| - exceptionState.throwTypeError("required member {{member.name}} is undefined.");
|
| - return;
|
| - {% else %}
|
| - // Do nothing.
|
| - {% endif %}
|
| - {% if member.is_nullable %}
|
| - } else if ({{member.name}}Value->IsNull()) {
|
| - impl.{{member.null_setter_name}}();
|
| {% endif %}
|
| - } else {
|
| - {% if member.deprecate_as %}
|
| - Deprecation::countDeprecationIfNotPrivateScript(isolate, currentExecutionContext(isolate), UseCounter::{{member.deprecate_as}});
|
| - {% endif %}
|
| - {{v8_value_to_local_cpp_value(member) | indent(12)}}
|
| - {% if member.is_interface_type %}
|
| - if (!{{member.name}} && !{{member.name}}Value->IsNull()) {
|
| - exceptionState.throwTypeError("member {{member.name}} is not of type {{member.idl_type}}.");
|
| - return;
|
| - }
|
| - {% endif %}
|
| - {% if member.enum_values %}
|
| - {{declare_enum_validation_variable(member.enum_values) | indent(12)}}
|
| - if (!isValidEnum({{member.name}}, validValues, WTF_ARRAY_LENGTH(validValues), "{{member.enum_type}}", exceptionState))
|
| - return;
|
| - {% elif member.is_object %}
|
| - if (!{{member.name}}.isObject()) {
|
| - exceptionState.throwTypeError("member {{member.name}} is not an object.");
|
| - return;
|
| - }
|
| - {% endif %}
|
| - impl.{{member.setter_name}}({{member.name}});
|
| + {% if member.enum_values %}
|
| + {{declare_enum_validation_variable(member.enum_values) | indent(8)}}
|
| + if (!isValidEnum({{member.name}}, validValues, WTF_ARRAY_LENGTH(validValues), "{{member.enum_type}}", exceptionState))
|
| + return;
|
| + {% elif member.is_object %}
|
| + if (!{{member.name}}.isObject()) {
|
| + exceptionState.throwTypeError("member {{member.name}} is not an object.");
|
| + return;
|
| }
|
| + {% endif %}
|
| + impl.{{member.setter_name}}({{member.name}});
|
| }
|
| + {% endfilter %}
|
|
|
| {% endfor %}
|
| }
|
|
|