Chromium Code Reviews| Index: Source/bindings/templates/dictionary_v8.cpp |
| diff --git a/Source/bindings/templates/dictionary_v8.cpp b/Source/bindings/templates/dictionary_v8.cpp |
| index fc0bac90bb8ae7a6721222ef7200e14efc3455bc..4cea2f594819c422998c3c719a9f0cf8d67beb63 100644 |
| --- a/Source/bindings/templates/dictionary_v8.cpp |
| +++ b/Source/bindings/templates/dictionary_v8.cpp |
| @@ -33,6 +33,11 @@ namespace blink { |
| exceptionState.throwTypeError("member {{member.name}} ('" + string + "') is not a valid enum value."); |
| return 0; |
| } |
| + {% elif member.is_object %} |
| + if (!{{member.name}}.isObject()) { |
| + exceptionState.throwTypeError("member {{member.name}} is not an object."); |
| + return 0; |
| + } |
| {% endif %} |
| impl->{{member.setter_name}}({{member.name}}); |
| } else if (block.HasCaught()) { |
| @@ -47,11 +52,17 @@ v8::Handle<v8::Value> toV8({{cpp_class}}* impl, v8::Handle<v8::Object> creationC |
| { |
| v8::Handle<v8::Object> v8Object = v8::Object::New(isolate); |
| {% for member in members %} |
| - if (impl->{{member.has_method_name}}()) |
| + if (impl->{{member.has_method_name}}()) { |
| + {% if member.is_object %} |
| + ASSERT(impl->{{member.name}}().isObject()); |
| + {% endif %} |
| v8Object->Set(v8String(isolate, "{{member.name}}"), {{member.cpp_value_to_v8_value}}); |
| {% if member.v8_default_value %} |
| - else |
| + } else { |
| v8Object->Set(v8String(isolate, "{{member.name}}"), {{member.v8_default_value}}); |
| + } |
|
Jens Widell
2014/09/24 05:23:05
Replace this and following 3 lines with
{% endif
bashi
2014/09/24 05:28:55
Done.
|
| + {% else %} |
| + } |
| {% endif %} |
| {% endfor %} |
| return v8Object; |