| OLD | NEW |
| 1 // Copyright 2014 The Chromium Authors. All rights reserved. | 1 // Copyright 2014 The Chromium Authors. All rights reserved. |
| 2 // Use of this source code is governed by a BSD-style license that can be | 2 // Use of this source code is governed by a BSD-style license that can be |
| 3 // found in the LICENSE file. | 3 // found in the LICENSE file. |
| 4 | 4 |
| 5 // This file has been auto-generated by {{code_generator}}. DO NOT MODIFY! | 5 // This file has been auto-generated by {{code_generator}}. DO NOT MODIFY! |
| 6 | 6 |
| 7 #include "config.h" | 7 #include "config.h" |
| 8 #include "{{header_filename}}" | 8 #include "{{header_filename}}" |
| 9 | 9 |
| 10 {% macro assign_and_return_if_hasinstance(member) %} |
| 11 if (V8{{member.type_name}}::hasInstance(v8Value, isolate)) { |
| 12 {{member.cpp_local_type}} cppValue = V8{{member.type_name}}::toImpl(v8::Hand
le<v8::Object>::Cast(v8Value)); |
| 13 impl.set{{member.type_name}}(cppValue); |
| 14 return; |
| 15 } |
| 16 {% endmacro %} |
| 10 {% for filename in cpp_includes %} | 17 {% for filename in cpp_includes %} |
| 11 #include "{{filename}}" | 18 #include "{{filename}}" |
| 12 {% endfor %} | 19 {% endfor %} |
| 13 | 20 |
| 14 namespace blink { | 21 namespace blink { |
| 15 | 22 |
| 16 {% for container in containers %} | 23 {% for container in containers %} |
| 17 {{container.cpp_class}}::{{container.cpp_class}}() | 24 {{container.cpp_class}}::{{container.cpp_class}}() |
| 18 : m_type(SpecificTypeNone) | 25 : m_type(SpecificTypeNone) |
| 19 { | 26 { |
| (...skipping 29 matching lines...) Expand all Loading... |
| 49 moment. Should be fixed once we implement all necessary conversion steps | 56 moment. Should be fixed once we implement all necessary conversion steps |
| 50 below. #} | 57 below. #} |
| 51 if (v8Value.IsEmpty()) | 58 if (v8Value.IsEmpty()) |
| 52 return; | 59 return; |
| 53 | 60 |
| 54 {# The numbers in the following comments refer to the steps described in | 61 {# The numbers in the following comments refer to the steps described in |
| 55 http://heycam.github.io/webidl/#es-union | 62 http://heycam.github.io/webidl/#es-union |
| 56 FIXME: Implement all necessary steps #} | 63 FIXME: Implement all necessary steps #} |
| 57 {# 3. Platform objects (interfaces) #} | 64 {# 3. Platform objects (interfaces) #} |
| 58 {% for interface in container.interface_types %} | 65 {% for interface in container.interface_types %} |
| 59 if (V8{{interface.type_name}}::hasInstance(v8Value, isolate)) { | 66 {{assign_and_return_if_hasinstance(interface) | indent}} |
| 60 {{interface.cpp_local_type}} cppValue = V8{{interface.type_name}}::toImp
l(v8::Handle<v8::Object>::Cast(v8Value)); | |
| 61 impl.set{{interface.type_name}}(cppValue); | |
| 62 return; | |
| 63 } | |
| 64 | 67 |
| 65 {% endfor %} | 68 {% endfor %} |
| 69 {# 8. ArrayBuffer #} |
| 70 {% if container.array_buffer_type %} |
| 71 {{assign_and_return_if_hasinstance(container.array_buffer_type) | indent}} |
| 72 |
| 73 {% endif %} |
| 74 {# 9., 10. ArrayBufferView #} |
| 75 {# FIXME: Individual typed arrays (e.g. Uint8Array) aren't supported yet. #} |
| 76 {% if container.array_buffer_view_type %} |
| 77 {{assign_and_return_if_hasinstance(container.array_buffer_view_type) | inden
t}} |
| 78 |
| 79 {% endif %} |
| 66 {% if container.dictionary_type %} | 80 {% if container.dictionary_type %} |
| 67 {# 12. Dictionaries #} | 81 {# 12. Dictionaries #} |
| 68 {# FIXME: This should also check "object but not Date or RegExp". Add checks | 82 {# FIXME: This should also check "object but not Date or RegExp". Add checks |
| 69 when we implement conversions for Date and RegExp. #} | 83 when we implement conversions for Date and RegExp. #} |
| 70 if (isUndefinedOrNull(v8Value) || v8Value->IsObject()) { | 84 if (isUndefinedOrNull(v8Value) || v8Value->IsObject()) { |
| 71 {{container.dictionary_type.cpp_local_type}} cppValue = V8{{container.di
ctionary_type.type_name}}::toImpl(isolate, v8Value, exceptionState); | 85 {{container.dictionary_type.cpp_local_type}} cppValue = V8{{container.di
ctionary_type.type_name}}::toImpl(isolate, v8Value, exceptionState); |
| 72 if (!exceptionState.hadException()) | 86 if (!exceptionState.hadException()) |
| 73 impl.set{{container.dictionary_type.type_name}}(cppValue); | 87 impl.set{{container.dictionary_type.type_name}}(cppValue); |
| 74 return; | 88 return; |
| 75 } | 89 } |
| (...skipping 56 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 132 if (impl.is{{member.type_name}}()) | 146 if (impl.is{{member.type_name}}()) |
| 133 return {{member.cpp_value_to_v8_value}}; | 147 return {{member.cpp_value_to_v8_value}}; |
| 134 | 148 |
| 135 {% endfor %} | 149 {% endfor %} |
| 136 ASSERT_NOT_REACHED(); | 150 ASSERT_NOT_REACHED(); |
| 137 return v8::Handle<v8::Value>(); | 151 return v8::Handle<v8::Value>(); |
| 138 } | 152 } |
| 139 | 153 |
| 140 {% endfor %} | 154 {% endfor %} |
| 141 } // namespace blink | 155 } // namespace blink |
| OLD | NEW |