| 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 180 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 191 v8::Local<v8::Name> property, const v8::PropertyCallbackInfo<v8::Value>& info | 191 v8::Local<v8::Name> property, const v8::PropertyCallbackInfo<v8::Value>& info |
| 192 {%- endif %}) | 192 {%- endif %}) |
| 193 { | 193 { |
| 194 TRACE_EVENT_SET_SAMPLING_STATE("blink", "DOMGetter"); | 194 TRACE_EVENT_SET_SAMPLING_STATE("blink", "DOMGetter"); |
| 195 {% if attribute.deprecate_as %} | 195 {% if attribute.deprecate_as %} |
| 196 UseCounter::countDeprecationIfNotPrivateScript(info.GetIsolate(), callingExe
cutionContext(info.GetIsolate()), UseCounter::{{attribute.deprecate_as}}); | 196 UseCounter::countDeprecationIfNotPrivateScript(info.GetIsolate(), callingExe
cutionContext(info.GetIsolate()), UseCounter::{{attribute.deprecate_as}}); |
| 197 {% endif %} | 197 {% endif %} |
| 198 {% if attribute.measure_as %} | 198 {% if attribute.measure_as %} |
| 199 UseCounter::countIfNotPrivateScript(info.GetIsolate(), callingExecutionConte
xt(info.GetIsolate()), UseCounter::{{attribute.measure_as('ConstructorGetter')}}
); | 199 UseCounter::countIfNotPrivateScript(info.GetIsolate(), callingExecutionConte
xt(info.GetIsolate()), UseCounter::{{attribute.measure_as('ConstructorGetter')}}
); |
| 200 {% endif %} | 200 {% endif %} |
| 201 {% if attribute.is_expose_js_accessors %} | 201 v8ConstructorAttributeGetter(property, info); |
| 202 v8ConstructorAttributeGetterAsAccessor(info); | |
| 203 {% else %} | |
| 204 v8ConstructorAttributeGetterAsProperty(property, info); | |
| 205 {% endif %} | |
| 206 TRACE_EVENT_SET_SAMPLING_STATE("v8", "V8Execution"); | 202 TRACE_EVENT_SET_SAMPLING_STATE("v8", "V8Execution"); |
| 207 } | 203 } |
| 208 {% endfilter %} | 204 {% endfilter %} |
| 209 {% endmacro %} | 205 {% endmacro %} |
| 210 | 206 |
| 211 | 207 |
| 212 {##############################################################################} | 208 {##############################################################################} |
| 213 {% macro attribute_setter(attribute, world_suffix) %} | 209 {% macro attribute_setter(attribute, world_suffix) %} |
| 214 {% filter conditional(attribute.conditional_string) %} | 210 {% filter conditional(attribute.conditional_string) %} |
| 215 static void {{attribute.name}}AttributeSetter{{world_suffix}}( | 211 static void {{attribute.name}}AttributeSetter{{world_suffix}}( |
| (...skipping 182 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 398 v8::Local<v8::Value> holder = toV8(holderImpl, scriptState->context()->Globa
l(), scriptState->isolate()); | 394 v8::Local<v8::Value> holder = toV8(holderImpl, scriptState->context()->Globa
l(), scriptState->isolate()); |
| 399 | 395 |
| 400 ExceptionState exceptionState(ExceptionState::SetterContext, "{{attribute.na
me}}", "{{cpp_class}}", scriptState->context()->Global(), scriptState->isolate()
); | 396 ExceptionState exceptionState(ExceptionState::SetterContext, "{{attribute.na
me}}", "{{cpp_class}}", scriptState->context()->Global(), scriptState->isolate()
); |
| 401 return PrivateScriptRunner::runDOMAttributeSetter(scriptState, scriptStateIn
UserScript, "{{cpp_class}}", "{{attribute.name}}", holder, {{attribute.private_s
cript_cpp_value_to_v8_value}}); | 397 return PrivateScriptRunner::runDOMAttributeSetter(scriptState, scriptStateIn
UserScript, "{{cpp_class}}", "{{attribute.name}}", holder, {{attribute.private_s
cript_cpp_value_to_v8_value}}); |
| 402 } | 398 } |
| 403 {% endmacro %} | 399 {% endmacro %} |
| 404 | 400 |
| 405 | 401 |
| 406 {##############################################################################} | 402 {##############################################################################} |
| 407 {% macro attribute_configuration(attribute) %} | 403 {% macro attribute_configuration(attribute) %} |
| 404 {% if attribute.constructor_type %} |
| 408 {% set getter_callback = | 405 {% set getter_callback = |
| 409 '%sV8Internal::%sAttributeGetterCallback' % | 406 '%sV8Internal::%sConstructorGetterCallback' % (cpp_class_or_partial, attr
ibute.name) |
| 410 (cpp_class_or_partial, attribute.name) | 407 if attribute.needs_constructor_getter_callback else |
| 411 if not attribute.constructor_type else ( | 408 'v8ConstructorAttributeGetter' %} |
| 412 '%sV8Internal::%sConstructorGetterCallback' % | |
| 413 (cpp_class_or_partial, attribute.name) | |
| 414 if attribute.needs_constructor_getter_callback else ( | |
| 415 'v8ConstructorAttributeGetterAsAccessor' | |
| 416 if attribute.is_expose_js_accessors else ( | |
| 417 'v8ConstructorAttributeGetterAsProperty'))) %} | |
| 418 {% set getter_callback_for_main_world = | |
| 419 '%sV8Internal::%sAttributeGetterCallbackForMainWorld' % | |
| 420 (cpp_class_or_partial, attribute.name) | |
| 421 if attribute.is_per_world_bindings else '0' %} | |
| 422 {% set setter_callback = | 409 {% set setter_callback = |
| 423 '%sV8Internal::%sAttributeSetterCallback' % | 410 '%sV8Internal::%sAttributeSetterCallback' % (cpp_class_or_partial, attrib
ute.name) |
| 411 if attribute.needs_constructor_setter_callback else |
| 412 '%sV8Internal::%sConstructorAttributeSetterCallback' % (cpp_class_or_part
ial, cpp_class) %} |
| 413 {% else %}{# regular attributes #} |
| 414 {% set getter_callback = '%sV8Internal::%sAttributeGetterCallback' % |
| 415 (cpp_class_or_partial, attribute.name) %} |
| 416 {% set setter_callback = '%sV8Internal::%sAttributeSetterCallback' % |
| 424 (cpp_class_or_partial, attribute.name) | 417 (cpp_class_or_partial, attribute.name) |
| 425 if attribute.has_setter else '0' %} | 418 if attribute.has_setter else '0' %} |
| 419 {% endif %} |
| 420 {% set getter_callback_for_main_world = |
| 421 '%sForMainWorld' % getter_callback |
| 422 if attribute.is_per_world_bindings else '0' %} |
| 426 {% set setter_callback_for_main_world = | 423 {% set setter_callback_for_main_world = |
| 427 '%sV8Internal::%sAttributeSetterCallbackForMainWorld' % | 424 '%sForMainWorld' % setter_callback |
| 428 (cpp_class_or_partial, attribute.name) | |
| 429 if attribute.is_per_world_bindings and attribute.has_setter else '0' %} | 425 if attribute.is_per_world_bindings and attribute.has_setter else '0' %} |
| 430 {% set wrapper_type_info = | 426 {% set wrapper_type_info = |
| 431 'const_cast<WrapperTypeInfo*>(&V8%s::wrapperTypeInfo)' % | 427 'const_cast<WrapperTypeInfo*>(&V8%s::wrapperTypeInfo)' % |
| 432 attribute.constructor_type | 428 attribute.constructor_type |
| 433 if attribute.constructor_type else '0' %} | 429 if attribute.constructor_type else '0' %} |
| 434 {% set access_control = 'static_cast<v8::AccessControl>(%s)' % | 430 {% set access_control = 'static_cast<v8::AccessControl>(%s)' % |
| 435 ' | '.join(attribute.access_control_list) %} | 431 ' | '.join(attribute.access_control_list) %} |
| 436 {% set property_attribute = 'static_cast<v8::PropertyAttribute>(%s)' % | 432 {% set property_attribute = 'static_cast<v8::PropertyAttribute>(%s)' % |
| 437 ' | '.join(attribute.property_attributes) %} | 433 ' | '.join(attribute.property_attributes) %} |
| 438 {% set only_exposed_to_private_script = 'V8DOMConfiguration::OnlyExposedToPrivat
eScript' if attribute.only_exposed_to_private_script else 'V8DOMConfiguration::E
xposedToAllScripts' %} | 434 {% set only_exposed_to_private_script = |
| 435 'V8DOMConfiguration::OnlyExposedToPrivateScript' |
| 436 if attribute.only_exposed_to_private_script else |
| 437 'V8DOMConfiguration::ExposedToAllScripts' %} |
| 439 {% set on_prototype = 'V8DOMConfiguration::OnPrototype' | 438 {% set on_prototype = 'V8DOMConfiguration::OnPrototype' |
| 440 if interface_name == 'Window' and attribute.idl_type == 'EventHandler' | 439 if interface_name == 'Window' and attribute.idl_type == 'EventHandler' |
| 441 else 'V8DOMConfiguration::OnInstance' %} | 440 else 'V8DOMConfiguration::OnInstance' %} |
| 442 {% set attribute_configuration_list = [ | 441 {% set attribute_configuration_list = [ |
| 443 '"%s"' % attribute.name, | 442 '"%s"' % attribute.name, |
| 444 getter_callback, | 443 getter_callback, |
| 445 setter_callback, | 444 setter_callback, |
| 446 getter_callback_for_main_world, | 445 getter_callback_for_main_world, |
| 447 setter_callback_for_main_world, | 446 setter_callback_for_main_world, |
| 448 wrapper_type_info, | 447 wrapper_type_info, |
| 449 access_control, | 448 access_control, |
| 450 property_attribute, | 449 property_attribute, |
| 451 only_exposed_to_private_script, | 450 only_exposed_to_private_script, |
| 452 ] %} | 451 ] %} |
| 453 {% if not attribute.is_expose_js_accessors %} | 452 {% if not attribute.is_expose_js_accessors %} |
| 454 {% set attribute_configuration_list = attribute_configuration_list | 453 {% set attribute_configuration_list = attribute_configuration_list |
| 455 + [on_prototype] %} | 454 + [on_prototype] %} |
| 456 {% endif %} | 455 {% endif %} |
| 457 {{'{'}}{{attribute_configuration_list | join(', ')}}{{'}'}} | 456 {{'{'}}{{attribute_configuration_list | join(', ')}}{{'}'}} |
| 458 {%- endmacro %} | 457 {%- endmacro %} |
| OLD | NEW |