| OLD | NEW |
| 1 {% from 'conversions.cpp' import v8_value_to_local_cpp_value %} | 1 {% from 'conversions.cpp' import v8_value_to_local_cpp_value %} |
| 2 | 2 |
| 3 | 3 |
| 4 {##############################################################################} | 4 {##############################################################################} |
| 5 {% macro attribute_getter(attribute, world_suffix) %} | 5 {% macro attribute_getter(attribute, world_suffix) %} |
| 6 {% filter conditional(attribute.conditional_string) %} | 6 {% filter conditional(attribute.conditional_string) %} |
| 7 static void {{attribute.name}}AttributeGetter{{world_suffix}}( | 7 static void {{attribute.name}}AttributeGetter{{world_suffix}}( |
| 8 {%- if attribute.is_expose_js_accessors %} | 8 {%- if attribute.is_expose_js_accessors %} |
| 9 const v8::FunctionCallbackInfo<v8::Value>& info | 9 const v8::FunctionCallbackInfo<v8::Value>& info |
| 10 {%- else %} | 10 {%- else %} |
| (...skipping 165 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 176 {% endif %} | 176 {% endif %} |
| 177 TRACE_EVENT_SET_SAMPLING_STATE("v8", "V8Execution"); | 177 TRACE_EVENT_SET_SAMPLING_STATE("v8", "V8Execution"); |
| 178 } | 178 } |
| 179 {% endfilter %} | 179 {% endfilter %} |
| 180 {% endmacro %} | 180 {% endmacro %} |
| 181 | 181 |
| 182 | 182 |
| 183 {##############################################################################} | 183 {##############################################################################} |
| 184 {% macro constructor_getter_callback(attribute, world_suffix) %} | 184 {% macro constructor_getter_callback(attribute, world_suffix) %} |
| 185 {% filter conditional(attribute.conditional_string) %} | 185 {% filter conditional(attribute.conditional_string) %} |
| 186 static void {{attribute.name}}ConstructorGetterCallback{{world_suffix}}(v8::Loca
l<v8::String> property, const v8::PropertyCallbackInfo<v8::Value>& info) | 186 static void {{attribute.name}}ConstructorGetterCallback{{world_suffix}}( |
| 187 {%- if attribute.is_expose_js_accessors %} |
| 188 const v8::FunctionCallbackInfo<v8::Value>& info |
| 189 {%- else %} |
| 190 v8::Local<v8::String> property, const v8::PropertyCallbackInfo<v8::Value>& info |
| 191 {%- endif %}) |
| 187 { | 192 { |
| 188 TRACE_EVENT_SET_SAMPLING_STATE("blink", "DOMGetter"); | 193 TRACE_EVENT_SET_SAMPLING_STATE("blink", "DOMGetter"); |
| 189 {% if attribute.deprecate_as %} | 194 {% if attribute.deprecate_as %} |
| 190 UseCounter::countDeprecationIfNotPrivateScript(info.GetIsolate(), callingExe
cutionContext(info.GetIsolate()), UseCounter::{{attribute.deprecate_as}}); | 195 UseCounter::countDeprecationIfNotPrivateScript(info.GetIsolate(), callingExe
cutionContext(info.GetIsolate()), UseCounter::{{attribute.deprecate_as}}); |
| 191 {% endif %} | 196 {% endif %} |
| 192 {% if attribute.measure_as %} | 197 {% if attribute.measure_as %} |
| 193 UseCounter::countIfNotPrivateScript(info.GetIsolate(), callingExecutionConte
xt(info.GetIsolate()), UseCounter::{{attribute.measure_as}}); | 198 UseCounter::countIfNotPrivateScript(info.GetIsolate(), callingExecutionConte
xt(info.GetIsolate()), UseCounter::{{attribute.measure_as}}); |
| 194 {% endif %} | 199 {% endif %} |
| 195 {{cpp_class_or_partial}}V8Internal::{{cpp_class}}ConstructorGetter{{world_su
ffix}}(property, info); | 200 {% if attribute.is_expose_js_accessors %} |
| 201 v8ConstructorAttributeGetterAsAccessor(info); |
| 202 {% else %} |
| 203 v8ConstructorAttributeGetterAsProperty(property, info); |
| 204 {% endif %} |
| 196 TRACE_EVENT_SET_SAMPLING_STATE("v8", "V8Execution"); | 205 TRACE_EVENT_SET_SAMPLING_STATE("v8", "V8Execution"); |
| 197 } | 206 } |
| 198 {% endfilter %} | 207 {% endfilter %} |
| 199 {% endmacro %} | 208 {% endmacro %} |
| 200 | 209 |
| 201 | 210 |
| 202 {##############################################################################} | 211 {##############################################################################} |
| 203 {% macro attribute_setter(attribute, world_suffix) %} | 212 {% macro attribute_setter(attribute, world_suffix) %} |
| 204 {% filter conditional(attribute.conditional_string) %} | 213 {% filter conditional(attribute.conditional_string) %} |
| 205 static void {{attribute.name}}AttributeSetter{{world_suffix}}( | 214 static void {{attribute.name}}AttributeSetter{{world_suffix}}( |
| 206 {%- if attribute.is_expose_js_accessors %} | 215 {%- if attribute.is_expose_js_accessors %} |
| 207 v8::Local<v8::Value> v8Value, const v8::FunctionCallbackInfo<v8::Value>& info | 216 v8::Local<v8::Value> v8Value, const v8::FunctionCallbackInfo<v8::Value>& info |
| 208 {%- else %} | 217 {%- else %} |
| 209 v8::Local<v8::Value> v8Value, const v8::PropertyCallbackInfo<void>& info | 218 v8::Local<v8::Value> v8Value, const v8::PropertyCallbackInfo<void>& info |
| 210 {%- endif %}) | 219 {%- endif %}) |
| 211 { | 220 { |
| 212 {% if attribute.is_reflect and attribute.idl_type == 'DOMString' | 221 {% if attribute.is_reflect and attribute.idl_type == 'DOMString' |
| 213 and is_node and not attribute.is_implemented_in_private_script %} | 222 and is_node and not attribute.is_implemented_in_private_script %} |
| 214 {% set cpp_class, v8_class = 'Element', 'V8Element' %} | 223 {% set cpp_class, v8_class = 'Element', 'V8Element' %} |
| 215 {% endif %} | 224 {% endif %} |
| 216 {# Local variables #} | 225 {# Local variables #} |
| 217 {% if not attribute.is_static and not attribute.is_replaceable %} | 226 {% if not attribute.is_static and |
| 227 not attribute.is_replaceable and |
| 228 not attribute.constructor_type %} |
| 218 v8::Local<v8::Object> holder = info.Holder(); | 229 v8::Local<v8::Object> holder = info.Holder(); |
| 219 {% endif %} | 230 {% endif %} |
| 220 {% if attribute.has_setter_exception_state %} | 231 {% if attribute.has_setter_exception_state %} |
| 221 ExceptionState exceptionState(ExceptionState::SetterContext, "{{attribute.na
me}}", "{{interface_name}}", holder, info.GetIsolate()); | 232 ExceptionState exceptionState(ExceptionState::SetterContext, "{{attribute.na
me}}", "{{interface_name}}", holder, info.GetIsolate()); |
| 222 {% endif %} | 233 {% endif %} |
| 234 {% if attribute.is_replaceable or |
| 235 attribute.constructor_type %} |
| 236 v8::Local<v8::String> propertyName = v8AtomicString(info.GetIsolate(), "{{at
tribute.name}}"); |
| 237 {% endif %} |
| 223 {# impl #} | 238 {# impl #} |
| 224 {% if attribute.is_put_forwards %} | 239 {% if attribute.is_put_forwards %} |
| 225 {{cpp_class}}* proxyImpl = {{v8_class}}::toImpl(holder); | 240 {{cpp_class}}* proxyImpl = {{v8_class}}::toImpl(holder); |
| 226 {{attribute.cpp_type}} impl = WTF::getPtr(proxyImpl->{{attribute.name}}()); | 241 {{attribute.cpp_type}} impl = WTF::getPtr(proxyImpl->{{attribute.name}}()); |
| 227 if (!impl) | 242 if (!impl) |
| 228 return; | 243 return; |
| 229 {% elif attribute.is_replaceable %} | 244 {% elif not attribute.is_static and |
| 230 v8::Local<v8::String> propertyName = v8AtomicString(info.GetIsolate(), "{{at
tribute.name}}"); | 245 not attribute.is_replaceable and |
| 231 {% elif not attribute.is_static %} | 246 not attribute.constructor_type %} |
| 232 {{cpp_class}}* impl = {{v8_class}}::toImpl(holder); | 247 {{cpp_class}}* impl = {{v8_class}}::toImpl(holder); |
| 233 {% endif %} | 248 {% endif %} |
| 234 {% if attribute.idl_type == 'EventHandler' and interface_name == 'Window' %} | 249 {% if attribute.idl_type == 'EventHandler' and interface_name == 'Window' %} |
| 235 if (!impl->document()) | 250 if (!impl->document()) |
| 236 return; | 251 return; |
| 237 {% endif %} | 252 {% endif %} |
| 238 {# Convert JS value to C++ value #} | 253 {# Convert JS value to C++ value #} |
| 239 {% if attribute.idl_type != 'EventHandler' %} | 254 {% if attribute.idl_type != 'EventHandler' %} |
| 240 {% if v8_value_to_local_cpp_value(attribute) %} | 255 {% if v8_value_to_local_cpp_value(attribute) %} |
| 241 {{v8_value_to_local_cpp_value(attribute) | indent}} | 256 {{v8_value_to_local_cpp_value(attribute) | indent}} |
| (...skipping 143 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 385 return PrivateScriptRunner::runDOMAttributeSetter(scriptState, scriptStateIn
UserScript, "{{cpp_class}}", "{{attribute.name}}", holder, {{attribute.private_s
cript_cpp_value_to_v8_value}}); | 400 return PrivateScriptRunner::runDOMAttributeSetter(scriptState, scriptStateIn
UserScript, "{{cpp_class}}", "{{attribute.name}}", holder, {{attribute.private_s
cript_cpp_value_to_v8_value}}); |
| 386 } | 401 } |
| 387 {% endmacro %} | 402 {% endmacro %} |
| 388 | 403 |
| 389 | 404 |
| 390 {##############################################################################} | 405 {##############################################################################} |
| 391 {% macro attribute_configuration(attribute) %} | 406 {% macro attribute_configuration(attribute) %} |
| 392 {% set getter_callback = | 407 {% set getter_callback = |
| 393 '%sV8Internal::%sAttributeGetterCallback' % | 408 '%sV8Internal::%sAttributeGetterCallback' % |
| 394 (cpp_class_or_partial, attribute.name) | 409 (cpp_class_or_partial, attribute.name) |
| 395 if not attribute.constructor_type else | 410 if not attribute.constructor_type else ( |
| 396 ('%sV8Internal::%sConstructorGetterCallback' % | 411 '%sV8Internal::%sConstructorGetterCallback' % |
| 397 (cpp_class_or_partial, attribute.name) | 412 (cpp_class_or_partial, attribute.name) |
| 398 if attribute.needs_constructor_getter_callback else | 413 if attribute.needs_constructor_getter_callback else ( |
| 399 '%sV8Internal::%sConstructorGetter' % (cpp_class_or_partial, cpp_class))
%} | 414 'v8ConstructorAttributeGetterAsAccessor' |
| 415 if attribute.is_expose_js_accessors else ( |
| 416 'v8ConstructorAttributeGetterAsProperty'))) %} |
| 400 {% set getter_callback_for_main_world = | 417 {% set getter_callback_for_main_world = |
| 401 '%sV8Internal::%sAttributeGetterCallbackForMainWorld' % | 418 '%sV8Internal::%sAttributeGetterCallbackForMainWorld' % |
| 402 (cpp_class_or_partial, attribute.name) | 419 (cpp_class_or_partial, attribute.name) |
| 403 if attribute.is_per_world_bindings else '0' %} | 420 if attribute.is_per_world_bindings else '0' %} |
| 404 {% set setter_callback = attribute.setter_callback %} | 421 {% set setter_callback = |
| 422 '%sV8Internal::%sAttributeSetterCallback' % |
| 423 (cpp_class_or_partial, attribute.name) |
| 424 if attribute.has_setter else '0' %} |
| 405 {% set setter_callback_for_main_world = | 425 {% set setter_callback_for_main_world = |
| 406 '%sV8Internal::%sAttributeSetterCallbackForMainWorld' % | 426 '%sV8Internal::%sAttributeSetterCallbackForMainWorld' % |
| 407 (cpp_class_or_partial, attribute.name) | 427 (cpp_class_or_partial, attribute.name) |
| 408 if attribute.is_per_world_bindings and attribute.has_setter else '0' %} | 428 if attribute.is_per_world_bindings and attribute.has_setter else '0' %} |
| 409 {% set wrapper_type_info = | 429 {% set wrapper_type_info = |
| 410 'const_cast<WrapperTypeInfo*>(&V8%s::wrapperTypeInfo)' % | 430 'const_cast<WrapperTypeInfo*>(&V8%s::wrapperTypeInfo)' % |
| 411 attribute.constructor_type | 431 attribute.constructor_type |
| 412 if attribute.constructor_type else '0' %} | 432 if attribute.constructor_type else '0' %} |
| 413 {% set access_control = 'static_cast<v8::AccessControl>(%s)' % | 433 {% set access_control = 'static_cast<v8::AccessControl>(%s)' % |
| 414 ' | '.join(attribute.access_control_list) %} | 434 ' | '.join(attribute.access_control_list) %} |
| (...skipping 13 matching lines...) Expand all Loading... |
| 428 access_control, | 448 access_control, |
| 429 property_attribute, | 449 property_attribute, |
| 430 only_exposed_to_private_script, | 450 only_exposed_to_private_script, |
| 431 ] %} | 451 ] %} |
| 432 {% if not attribute.is_expose_js_accessors %} | 452 {% if not attribute.is_expose_js_accessors %} |
| 433 {% set attribute_configuration_list = attribute_configuration_list | 453 {% set attribute_configuration_list = attribute_configuration_list |
| 434 + [on_prototype] %} | 454 + [on_prototype] %} |
| 435 {% endif %} | 455 {% endif %} |
| 436 {{'{'}}{{attribute_configuration_list | join(', ')}}{{'}'}} | 456 {{'{'}}{{attribute_configuration_list | join(', ')}}{{'}'}} |
| 437 {%- endmacro %} | 457 {%- endmacro %} |
| OLD | NEW |