| OLD | NEW |
| 1 {##############################################################################} | 1 {##############################################################################} |
| 2 {% macro attribute_getter(attribute, world_suffix) %} | 2 {% macro attribute_getter(attribute, world_suffix) %} |
| 3 {% filter conditional(attribute.conditional_string) %} | 3 {% filter conditional(attribute.conditional_string) %} |
| 4 static void {{attribute.name}}AttributeGetter{{world_suffix}}( | 4 static void {{attribute.name}}AttributeGetter{{world_suffix}}( |
| 5 {%- if attribute.is_expose_js_accessors %} | 5 {%- if attribute.is_expose_js_accessors %} |
| 6 const v8::FunctionCallbackInfo<v8::Value>& info | 6 const v8::FunctionCallbackInfo<v8::Value>& info |
| 7 {%- else %} | 7 {%- else %} |
| 8 const v8::PropertyCallbackInfo<v8::Value>& info | 8 const v8::PropertyCallbackInfo<v8::Value>& info |
| 9 {%- endif %}) | 9 {%- endif %}) |
| 10 { | 10 { |
| 11 {% if attribute.is_reflect and not attribute.is_url | 11 {% if attribute.is_reflect and not attribute.is_url |
| 12 and attribute.idl_type == 'DOMString' and is_node | 12 and attribute.idl_type == 'DOMString' and is_node |
| 13 and not attribute.is_implemented_in_private_script %} | 13 and not attribute.is_implemented_in_private_script %} |
| 14 {% set cpp_class, v8_class = 'Element', 'V8Element' %} | 14 {% set cpp_class, v8_class = 'Element', 'V8Element' %} |
| 15 {% endif %} | 15 {% endif %} |
| 16 {# holder #} | 16 {# holder #} |
| 17 {% if not attribute.is_static %} | 17 {% if not attribute.is_static %} |
| 18 v8::Handle<v8::Object> holder = info.Holder(); | 18 v8::Handle<v8::Object> holder = info.Holder(); |
| 19 {% endif %} | 19 {% endif %} |
| 20 {# impl #} | 20 {# impl #} |
| 21 {% if attribute.cached_attribute_validation_method %} | 21 {% if attribute.cached_attribute_validation_method %} |
| 22 v8::Handle<v8::String> propertyName = v8AtomicString(info.GetIsolate(), "{{a
ttribute.name}}"); | 22 v8::Handle<v8::String> propertyName = v8AtomicString(info.GetIsolate(), "{{a
ttribute.name}}"); |
| 23 {{cpp_class}}* impl = {{v8_class}}::toNative(holder); | 23 {{cpp_class}}* impl = {{v8_class}}::toImpl(holder); |
| 24 if (!impl->{{attribute.cached_attribute_validation_method}}()) { | 24 if (!impl->{{attribute.cached_attribute_validation_method}}()) { |
| 25 v8::Handle<v8::Value> v8Value = V8HiddenValue::getHiddenValue(info.GetIs
olate(), holder, propertyName); | 25 v8::Handle<v8::Value> v8Value = V8HiddenValue::getHiddenValue(info.GetIs
olate(), holder, propertyName); |
| 26 if (!v8Value.IsEmpty()) { | 26 if (!v8Value.IsEmpty()) { |
| 27 v8SetReturnValue(info, v8Value); | 27 v8SetReturnValue(info, v8Value); |
| 28 return; | 28 return; |
| 29 } | 29 } |
| 30 } | 30 } |
| 31 {% elif not attribute.is_static %} | 31 {% elif not attribute.is_static %} |
| 32 {{cpp_class}}* impl = {{v8_class}}::toNative(holder); | 32 {{cpp_class}}* impl = {{v8_class}}::toImpl(holder); |
| 33 {% endif %} | 33 {% endif %} |
| 34 {% if interface_name == 'Window' and attribute.idl_type == 'EventHandler' %} | 34 {% if interface_name == 'Window' and attribute.idl_type == 'EventHandler' %} |
| 35 if (!impl->document()) | 35 if (!impl->document()) |
| 36 return; | 36 return; |
| 37 {% endif %} | 37 {% endif %} |
| 38 {# Local variables #} | 38 {# Local variables #} |
| 39 {% if attribute.is_call_with_execution_context %} | 39 {% if attribute.is_call_with_execution_context %} |
| 40 ExecutionContext* executionContext = currentExecutionContext(info.GetIsolate
()); | 40 ExecutionContext* executionContext = currentExecutionContext(info.GetIsolate
()); |
| 41 {% endif %} | 41 {% endif %} |
| 42 {% if attribute.is_call_with_script_state %} | 42 {% if attribute.is_call_with_script_state %} |
| (...skipping 175 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 218 {# Type checking for interface types (if interface not implemented, throw | 218 {# Type checking for interface types (if interface not implemented, throw |
| 219 TypeError), per http://www.w3.org/TR/WebIDL/#es-interface #} | 219 TypeError), per http://www.w3.org/TR/WebIDL/#es-interface #} |
| 220 if ({% if attribute.is_nullable %}!isUndefinedOrNull(v8Value) && {% endif %}
!V8{{attribute.idl_type}}::hasInstance(v8Value, info.GetIsolate())) { | 220 if ({% if attribute.is_nullable %}!isUndefinedOrNull(v8Value) && {% endif %}
!V8{{attribute.idl_type}}::hasInstance(v8Value, info.GetIsolate())) { |
| 221 exceptionState.throwTypeError("The provided value is not of type '{{attr
ibute.idl_type}}'."); | 221 exceptionState.throwTypeError("The provided value is not of type '{{attr
ibute.idl_type}}'."); |
| 222 exceptionState.throwIfNeeded(); | 222 exceptionState.throwIfNeeded(); |
| 223 return; | 223 return; |
| 224 } | 224 } |
| 225 {% endif %} | 225 {% endif %} |
| 226 {# impl #} | 226 {# impl #} |
| 227 {% if attribute.put_forwards %} | 227 {% if attribute.put_forwards %} |
| 228 {{cpp_class}}* proxyImpl = {{v8_class}}::toNative(holder); | 228 {{cpp_class}}* proxyImpl = {{v8_class}}::toImpl(holder); |
| 229 {{attribute.cpp_type}} impl = WTF::getPtr(proxyImpl->{{attribute.name}}()); | 229 {{attribute.cpp_type}} impl = WTF::getPtr(proxyImpl->{{attribute.name}}()); |
| 230 if (!impl) | 230 if (!impl) |
| 231 return; | 231 return; |
| 232 {% elif not attribute.is_static %} | 232 {% elif not attribute.is_static %} |
| 233 {{cpp_class}}* impl = {{v8_class}}::toNative(holder); | 233 {{cpp_class}}* impl = {{v8_class}}::toImpl(holder); |
| 234 {% endif %} | 234 {% endif %} |
| 235 {% if attribute.idl_type == 'EventHandler' and interface_name == 'Window' %} | 235 {% if attribute.idl_type == 'EventHandler' and interface_name == 'Window' %} |
| 236 if (!impl->document()) | 236 if (!impl->document()) |
| 237 return; | 237 return; |
| 238 {% endif %} | 238 {% endif %} |
| 239 {# Convert JS value to C++ value #} | 239 {# Convert JS value to C++ value #} |
| 240 {% if attribute.idl_type != 'EventHandler' %} | 240 {% if attribute.idl_type != 'EventHandler' %} |
| 241 {{attribute.v8_value_to_local_cpp_value}}; | 241 {{attribute.v8_value_to_local_cpp_value}}; |
| 242 {% elif not is_node %}{# EventHandler hack #} | 242 {% elif not is_node %}{# EventHandler hack #} |
| 243 moveEventListenerToNewWrapper(holder, {{attribute.event_handler_getter_expre
ssion}}, v8Value, {{v8_class}}::eventListenerCacheIndex, info.GetIsolate()); | 243 moveEventListenerToNewWrapper(holder, {{attribute.event_handler_getter_expre
ssion}}, v8Value, {{v8_class}}::eventListenerCacheIndex, info.GetIsolate()); |
| (...skipping 63 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 307 {% endif %} | 307 {% endif %} |
| 308 {% if world_suffix in attribute.activity_logging_world_list_for_setter %} | 308 {% if world_suffix in attribute.activity_logging_world_list_for_setter %} |
| 309 ScriptState* scriptState = ScriptState::from(info.GetIsolate()->GetCurrentCo
ntext()); | 309 ScriptState* scriptState = ScriptState::from(info.GetIsolate()->GetCurrentCo
ntext()); |
| 310 V8PerContextData* contextData = scriptState->perContextData(); | 310 V8PerContextData* contextData = scriptState->perContextData(); |
| 311 {% if attribute.activity_logging_world_check %} | 311 {% if attribute.activity_logging_world_check %} |
| 312 if (scriptState->world().isIsolatedWorld() && contextData && contextData->ac
tivityLogger()) { | 312 if (scriptState->world().isIsolatedWorld() && contextData && contextData->ac
tivityLogger()) { |
| 313 {% else %} | 313 {% else %} |
| 314 if (contextData && contextData->activityLogger()) { | 314 if (contextData && contextData->activityLogger()) { |
| 315 {% endif %} | 315 {% endif %} |
| 316 {% if attribute.activity_logging_include_old_value_for_setter %} | 316 {% if attribute.activity_logging_include_old_value_for_setter %} |
| 317 {{cpp_class}}* impl = {{v8_class}}::toNative(info.Holder()); | 317 {{cpp_class}}* impl = {{v8_class}}::toImpl(info.Holder()); |
| 318 {% if attribute.cpp_value_original %} | 318 {% if attribute.cpp_value_original %} |
| 319 {{attribute.cpp_type}} {{attribute.cpp_value}}({{attribute.cpp_value_ori
ginal}}); | 319 {{attribute.cpp_type}} {{attribute.cpp_value}}({{attribute.cpp_value_ori
ginal}}); |
| 320 {% endif %} | 320 {% endif %} |
| 321 v8::Handle<v8::Value> originalValue = {{attribute.cpp_value_to_v8_value}
}; | 321 v8::Handle<v8::Value> originalValue = {{attribute.cpp_value_to_v8_value}
}; |
| 322 contextData->activityLogger()->logSetter("{{interface_name}}.{{attribute
.name}}", v8Value, originalValue); | 322 contextData->activityLogger()->logSetter("{{interface_name}}.{{attribute
.name}}", v8Value, originalValue); |
| 323 {% else %} | 323 {% else %} |
| 324 contextData->activityLogger()->logSetter("{{interface_name}}.{{attribute
.name}}", v8Value); | 324 contextData->activityLogger()->logSetter("{{interface_name}}.{{attribute
.name}}", v8Value); |
| 325 {% endif %} | 325 {% endif %} |
| 326 } | 326 } |
| 327 {% endif %} | 327 {% endif %} |
| (...skipping 117 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 445 access_control, | 445 access_control, |
| 446 property_attribute, | 446 property_attribute, |
| 447 only_exposed_to_private_script, | 447 only_exposed_to_private_script, |
| 448 ] %} | 448 ] %} |
| 449 {% if not attribute.is_expose_js_accessors %} | 449 {% if not attribute.is_expose_js_accessors %} |
| 450 {% set attribute_configuration_list = attribute_configuration_list | 450 {% set attribute_configuration_list = attribute_configuration_list |
| 451 + [on_prototype] %} | 451 + [on_prototype] %} |
| 452 {% endif %} | 452 {% endif %} |
| 453 {{'{'}}{{attribute_configuration_list | join(', ')}}{{'}'}} | 453 {{'{'}}{{attribute_configuration_list | join(', ')}}{{'}'}} |
| 454 {%- endmacro %} | 454 {%- endmacro %} |
| OLD | NEW |