| OLD | NEW |
| 1 {% include 'copyright_block.txt' %} | 1 {% include 'copyright_block.txt' %} |
| 2 #include "config.h" | 2 #include "config.h" |
| 3 {% filter conditional(conditional_string) %} | 3 {% filter conditional(conditional_string) %} |
| 4 #include "{{v8_class_or_partial}}.h" | 4 #include "{{v8_class_or_partial}}.h" |
| 5 | 5 |
| 6 {% for filename in cpp_includes if filename != '%s.h' % cpp_class_or_partial %} | 6 {% for filename in cpp_includes if filename != '%s.h' % cpp_class_or_partial %} |
| 7 #include "{{filename}}" | 7 #include "{{filename}}" |
| 8 {% endfor %} | 8 {% endfor %} |
| 9 | 9 |
| 10 namespace blink { | 10 namespace blink { |
| (...skipping 282 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 293 | 293 |
| 294 v8::Local<v8::Signature> defaultSignature; | 294 v8::Local<v8::Signature> defaultSignature; |
| 295 {% set parent_template = | 295 {% set parent_template = |
| 296 '%s::domTemplateForNamedPropertiesObject(isolate)' % v8_class | 296 '%s::domTemplateForNamedPropertiesObject(isolate)' % v8_class |
| 297 if has_named_properties_object else | 297 if has_named_properties_object else |
| 298 'V8%s::domTemplate(isolate)' % parent_interface | 298 'V8%s::domTemplate(isolate)' % parent_interface |
| 299 if parent_interface else 'v8::Local<v8::FunctionTemplate>()' %} | 299 if parent_interface else 'v8::Local<v8::FunctionTemplate>()' %} |
| 300 {% if runtime_enabled_function %} | 300 {% if runtime_enabled_function %} |
| 301 if (!{{runtime_enabled_function}}()) | 301 if (!{{runtime_enabled_function}}()) |
| 302 defaultSignature = V8DOMConfiguration::installDOMClassTemplate(isolate,
functionTemplate, "{{interface_name}}", {{parent_template}}, {{v8_class}}::inter
nalFieldCount, 0, 0, 0, 0, 0, 0); | 302 defaultSignature = V8DOMConfiguration::installDOMClassTemplate(isolate,
functionTemplate, "{{interface_name}}", {{parent_template}}, {{v8_class}}::inter
nalFieldCount, 0, 0, 0, 0, 0, 0); |
| 303 else | 303 else { |
| 304 {% endif %} | 304 {% endif %} |
| 305 {% set runtime_enabled_indent = 4 if runtime_enabled_function else 0 %} | 305 {% set runtime_enabled_indent = 4 if runtime_enabled_function else 0 %} |
| 306 {% filter indent(runtime_enabled_indent, true) %} | 306 {% filter indent(runtime_enabled_indent, true) %} |
| 307 {% if api_experiment_name %} |
| 308 ExecutionContext* ec = currentExecutionContext(isolate); |
| 309 ALLOW_UNUSED_LOCAL(ec); |
| 310 if (!Experiments::isApiEnabledWithoutMessage(ec, "{{api_experiment_name}}"))
{ |
| 311 defaultSignature = V8DOMConfiguration::installDOMClassTemplate(isolate,
functionTemplate, "{{interface_name}}", {{parent_template}}, {{v8_class}}::inter
nalFieldCount, 0, 0, 0, 0, 0, 0); |
| 312 } |
| 313 else |
| 314 {% endif %} |
| 315 {% set api_experiment_enabled_indent = 4 if api_experiment_name else runtime
_enabled_indent %} |
| 316 {% filter indent(api_experiment_enabled_indent, true) %} |
| 307 defaultSignature = V8DOMConfiguration::installDOMClassTemplate(isolate, func
tionTemplate, "{{interface_name}}", {{parent_template}}, {{v8_class}}::internalF
ieldCount, | 317 defaultSignature = V8DOMConfiguration::installDOMClassTemplate(isolate, func
tionTemplate, "{{interface_name}}", {{parent_template}}, {{v8_class}}::internalF
ieldCount, |
| 308 {# Test needed as size 0 arrays definitions are not allowed per standard | 318 {# Test needed as size 0 arrays definitions are not allowed per standard |
| 309 (so objects have distinct addresses), which is enforced by MSVC. | 319 (so objects have distinct addresses), which is enforced by MSVC. |
| 310 8.5.1 Aggregates [dcl.init.aggr] | 320 8.5.1 Aggregates [dcl.init.aggr] |
| 311 An array of unknown size initialized with a brace-enclosed | 321 An array of unknown size initialized with a brace-enclosed |
| 312 initializer-list containing n initializer-clauses, where n shall be | 322 initializer-list containing n initializer-clauses, where n shall be |
| 313 greater than zero, is defined as having n elements (8.3.4). #} | 323 greater than zero, is defined as having n elements (8.3.4). #} |
| 314 {% set attributes_name, attributes_length = | 324 {% set attributes_name, attributes_length = |
| 315 ('%sAttributes' % v8_class, | 325 ('%sAttributes' % v8_class, |
| 316 'WTF_ARRAY_LENGTH(%sAttributes)' % v8_class) | 326 'WTF_ARRAY_LENGTH(%sAttributes)' % v8_class) |
| 317 if has_attribute_configuration else (0, 0) %} | 327 if has_attribute_configuration else (0, 0) %} |
| 318 {% set accessors_name, accessors_length = | 328 {% set accessors_name, accessors_length = |
| 319 ('%sAccessors' % v8_class, | 329 ('%sAccessors' % v8_class, |
| 320 'WTF_ARRAY_LENGTH(%sAccessors)' % v8_class) | 330 'WTF_ARRAY_LENGTH(%sAccessors)' % v8_class) |
| 321 if has_accessor_configuration else (0, 0) %} | 331 if has_accessor_configuration else (0, 0) %} |
| 322 {% set methods_name, methods_length = | 332 {% set methods_name, methods_length = |
| 323 ('%sMethods' % v8_class, | 333 ('%sMethods' % v8_class, |
| 324 'WTF_ARRAY_LENGTH(%sMethods)' % v8_class) | 334 'WTF_ARRAY_LENGTH(%sMethods)' % v8_class) |
| 325 if method_configuration_methods else (0, 0) %} | 335 if method_configuration_methods else (0, 0) %} |
| 326 {{attributes_name}}, {{attributes_length}}, | 336 {{attributes_name}}, {{attributes_length}}, |
| 327 {{accessors_name}}, {{accessors_length}}, | 337 {{accessors_name}}, {{accessors_length}}, |
| 328 {{methods_name}}, {{methods_length}}); | 338 {{methods_name}}, {{methods_length}}); |
| 329 {% endfilter %} | 339 {% endfilter %}{# api_experiment_enabled_indent #} |
| 340 {% endfilter %}{# runtime_enabled_indent #} |
| 341 {% if runtime_enabled_function %} |
| 342 |
| 343 } |
| 344 {% endif %} |
| 330 | 345 |
| 331 {% if constructors or has_custom_constructor or has_event_constructor %} | 346 {% if constructors or has_custom_constructor or has_event_constructor %} |
| 332 functionTemplate->SetCallHandler({{v8_class}}::constructorCallback); | 347 functionTemplate->SetCallHandler({{v8_class}}::constructorCallback); |
| 333 functionTemplate->SetLength({{interface_length}}); | 348 functionTemplate->SetLength({{interface_length}}); |
| 334 {% endif %} | 349 {% endif %} |
| 335 v8::Local<v8::ObjectTemplate> instanceTemplate = functionTemplate->InstanceT
emplate(); | 350 v8::Local<v8::ObjectTemplate> instanceTemplate = functionTemplate->InstanceT
emplate(); |
| 336 ALLOW_UNUSED_LOCAL(instanceTemplate); | 351 ALLOW_UNUSED_LOCAL(instanceTemplate); |
| 337 v8::Local<v8::ObjectTemplate> prototypeTemplate = functionTemplate->Prototyp
eTemplate(); | 352 v8::Local<v8::ObjectTemplate> prototypeTemplate = functionTemplate->Prototyp
eTemplate(); |
| 338 ALLOW_UNUSED_LOCAL(prototypeTemplate); | 353 ALLOW_UNUSED_LOCAL(prototypeTemplate); |
| 339 {% if custom_registration_methods %} | 354 {% if custom_registration_methods %} |
| 340 ExecutionContext* context = currentExecutionContext(isolate); | 355 ExecutionContext* context = currentExecutionContext(isolate); |
| 341 ALLOW_UNUSED_LOCAL(context); | 356 ALLOW_UNUSED_LOCAL(context); |
| 342 {% endif %} | 357 {% endif %} |
| 343 {% if has_access_check_callbacks %} | 358 {% if has_access_check_callbacks %} |
| 344 instanceTemplate->SetAccessCheckCallback({{cpp_class}}V8Internal::securityCh
eck, v8::External::New(isolate, const_cast<WrapperTypeInfo*>(&{{v8_class}}::wrap
perTypeInfo))); | 359 instanceTemplate->SetAccessCheckCallback({{cpp_class}}V8Internal::securityCh
eck, v8::External::New(isolate, const_cast<WrapperTypeInfo*>(&{{v8_class}}::wrap
perTypeInfo))); |
| 345 {% endif %} | 360 {% endif %} |
| 346 {% if has_array_iterator %} | 361 {% if has_array_iterator %} |
| 347 {% filter runtime_enabled('RuntimeEnabledFeatures::iterableCollectionsEnable
d') %} | 362 {% filter runtime_enabled('RuntimeEnabledFeatures::iterableCollectionsEnable
d') %} |
| 348 {% if is_global %} | 363 {% if is_global %} |
| 349 instanceTemplate->SetIntrinsicDataProperty(v8::Symbol::GetIterator(isolate),
v8::kArrayProto_values, v8::DontEnum); | 364 instanceTemplate->SetIntrinsicDataProperty(v8::Symbol::GetIterator(isolate),
v8::kArrayProto_values, v8::DontEnum); |
| 350 {% else %} | 365 {% else %} |
| 351 prototypeTemplate->SetIntrinsicDataProperty(v8::Symbol::GetIterator(isolate)
, v8::kArrayProto_values, v8::DontEnum); | 366 prototypeTemplate->SetIntrinsicDataProperty(v8::Symbol::GetIterator(isolate)
, v8::kArrayProto_values, v8::DontEnum); |
| 352 {% endif %} | 367 {% endif %} |
| 353 {% endfilter %}{# runtime_enabled() #} | 368 {% endfilter %}{# runtime_enabled() #} |
| 354 {% endif %} | 369 {% endif %} |
| 355 {% set runtime_enabled_features = dict() %} | 370 {% set runtime_enabled_features = dict() %} |
| 371 {% set api_experiment_enabled_features = dict() %} |
| 356 {% for attribute in attributes | 372 {% for attribute in attributes |
| 357 if attribute.runtime_enabled_function and | 373 if attribute.runtime_enabled_function and |
| 358 not attribute.exposed_test %} | 374 not attribute.exposed_test %} |
| 359 {% if attribute.runtime_enabled_function not in runtime_enabled_features
%} | 375 {% if attribute.runtime_enabled_function not in runtime_enabled_features
%} |
| 360 {% set unused = runtime_enabled_features.update({attribute.runtime_e
nabled_function: []}) %} | 376 {% set unused = runtime_enabled_features.update({attribute.runtime_e
nabled_function: []}) %} |
| 361 {% endif %} | 377 {% endif %} |
| 362 {% set unused = runtime_enabled_features.get(attribute.runtime_enabled_f
unction).append(attribute) %} | 378 {% set unused = runtime_enabled_features.get(attribute.runtime_enabled_f
unction).append(attribute) %} |
| 363 {% endfor %} | 379 {% endfor %} |
| 364 {% for runtime_enabled_feature in runtime_enabled_features | sort %} | 380 {% for runtime_enabled_feature in runtime_enabled_features | sort %} |
| 365 if ({{runtime_enabled_feature}}()) { | 381 if ({{runtime_enabled_feature}}()) { |
| (...skipping 21 matching lines...) Expand all Loading... |
| 387 {# Special operations #} | 403 {# Special operations #} |
| 388 {% if indexed_property_getter %} | 404 {% if indexed_property_getter %} |
| 389 {{install_indexed_property_handler('instanceTemplate') | indent}} | 405 {{install_indexed_property_handler('instanceTemplate') | indent}} |
| 390 {% endif %} | 406 {% endif %} |
| 391 {% if named_property_getter and not has_named_properties_object %} | 407 {% if named_property_getter and not has_named_properties_object %} |
| 392 {{install_named_property_handler('instanceTemplate') | indent}} | 408 {{install_named_property_handler('instanceTemplate') | indent}} |
| 393 {% endif %} | 409 {% endif %} |
| 394 {% if iterator_method %} | 410 {% if iterator_method %} |
| 395 {% filter exposed(iterator_method.exposed_test) %} | 411 {% filter exposed(iterator_method.exposed_test) %} |
| 396 {% filter runtime_enabled(iterator_method.runtime_enabled_function) %} | 412 {% filter runtime_enabled(iterator_method.runtime_enabled_function) %} |
| 413 {% filter api_experiment_enabled(iterator_method.api_experiment_name) %} |
| 397 const V8DOMConfiguration::SymbolKeyedMethodConfiguration symbolKeyedIterator
Configuration = { v8::Symbol::GetIterator, {{cpp_class_or_partial}}V8Internal::i
teratorMethodCallback, 0, v8::DontDelete, V8DOMConfiguration::ExposedToAllScript
s, V8DOMConfiguration::OnPrototype }; | 414 const V8DOMConfiguration::SymbolKeyedMethodConfiguration symbolKeyedIterator
Configuration = { v8::Symbol::GetIterator, {{cpp_class_or_partial}}V8Internal::i
teratorMethodCallback, 0, v8::DontDelete, V8DOMConfiguration::ExposedToAllScript
s, V8DOMConfiguration::OnPrototype }; |
| 398 V8DOMConfiguration::installMethod(isolate, prototypeTemplate, defaultSignatu
re, symbolKeyedIteratorConfiguration); | 415 V8DOMConfiguration::installMethod(isolate, prototypeTemplate, defaultSignatu
re, symbolKeyedIteratorConfiguration); |
| 416 {% endfilter %}{# api_experiment_enabled() #} |
| 399 {% endfilter %}{# runtime_enabled() #} | 417 {% endfilter %}{# runtime_enabled() #} |
| 400 {% endfilter %}{# exposed() #} | 418 {% endfilter %}{# exposed() #} |
| 401 {% endif %} | 419 {% endif %} |
| 402 {# End special operations #} | 420 {# End special operations #} |
| 403 {% if has_custom_legacy_call_as_function %} | 421 {% if has_custom_legacy_call_as_function %} |
| 404 functionTemplate->InstanceTemplate()->SetCallAsFunctionHandler({{v8_class}}:
:legacyCallCustom); | 422 functionTemplate->InstanceTemplate()->SetCallAsFunctionHandler({{v8_class}}:
:legacyCallCustom); |
| 405 {% endif %} | 423 {% endif %} |
| 406 {% if interface_name == 'HTMLAllCollection' %} | 424 {% if interface_name == 'HTMLAllCollection' %} |
| 407 {# Needed for legacy support of document.all #} | 425 {# Needed for legacy support of document.all #} |
| 408 functionTemplate->InstanceTemplate()->MarkAsUndetectable(); | 426 functionTemplate->InstanceTemplate()->MarkAsUndetectable(); |
| 409 {% endif %} | 427 {% endif %} |
| 410 {% for method in custom_registration_methods %} | 428 {% for method in custom_registration_methods %} |
| 411 {# install_custom_signature #} | 429 {# install_custom_signature #} |
| 412 {% filter conditional(method.conditional_string) %} | 430 {% filter conditional(method.conditional_string) %} |
| 413 {% filter exposed(method.overloads.exposed_test_all | 431 {% filter exposed(method.overloads.exposed_test_all |
| 414 if method.overloads else | 432 if method.overloads else |
| 415 method.exposed_test) %} | 433 method.exposed_test) %} |
| 416 {% filter runtime_enabled(method.overloads.runtime_enabled_function_all | 434 {% filter runtime_enabled(method.overloads.runtime_enabled_function_all |
| 417 if method.overloads else | 435 if method.overloads else |
| 418 method.runtime_enabled_function) %} | 436 method.runtime_enabled_function) %} |
| 437 {% filter api_experiment_enabled(method.overloads.api_experiment_name_all |
| 438 if method.overloads else |
| 439 method.api_experiment_name) %} |
| 419 {% if method.is_do_not_check_security %} | 440 {% if method.is_do_not_check_security %} |
| 420 {{install_do_not_check_security_method(method, '', 'instanceTemplate', 'prot
otypeTemplate') | indent}} | 441 {{install_do_not_check_security_method(method, '', 'instanceTemplate', 'prot
otypeTemplate') | indent}} |
| 421 {% else %}{# is_do_not_check_security #} | 442 {% else %}{# is_do_not_check_security #} |
| 422 {% set signature = 'v8::Local<v8::Signature>()' if method.is_do_not_check_si
gnature else 'defaultSignature' %} | 443 {% set signature = 'v8::Local<v8::Signature>()' if method.is_do_not_check_si
gnature else 'defaultSignature' %} |
| 423 {{install_custom_signature(method, 'instanceTemplate', 'prototypeTemplate',
'functionTemplate', signature) | indent}} | 444 {{install_custom_signature(method, 'instanceTemplate', 'prototypeTemplate',
'functionTemplate', signature) | indent}} |
| 424 {% endif %}{# is_do_not_check_security #} | 445 {% endif %}{# is_do_not_check_security #} |
| 446 {% endfilter %}{# api_experiment_enabled() #} |
| 425 {% endfilter %}{# runtime_enabled() #} | 447 {% endfilter %}{# runtime_enabled() #} |
| 426 {% endfilter %}{# exposed() #} | 448 {% endfilter %}{# exposed() #} |
| 427 {% endfilter %}{# conditional() #} | 449 {% endfilter %}{# conditional() #} |
| 428 {% endfor %} | 450 {% endfor %} |
| 429 {# Special interfaces #} | 451 {# Special interfaces #} |
| 430 {% if not is_partial %} | 452 {% if not is_partial %} |
| 431 {% if interface_name == 'Window' %} | 453 {% if interface_name == 'Window' %} |
| 432 | 454 |
| 433 instanceTemplate->SetInternalFieldCount(V8Window::internalFieldCount); | 455 instanceTemplate->SetInternalFieldCount(V8Window::internalFieldCount); |
| 434 prototypeTemplate->SetInternalFieldCount(V8Window::internalFieldCount); | 456 prototypeTemplate->SetInternalFieldCount(V8Window::internalFieldCount); |
| (...skipping 23 matching lines...) Expand all Loading... |
| 458 {% endfor %} | 480 {% endfor %} |
| 459 {% for attribute in attributes if attribute.is_implemented_in_private_script %} | 481 {% for attribute in attributes if attribute.is_implemented_in_private_script %} |
| 460 {{attribute_getter_implemented_in_private_script(attribute)}} | 482 {{attribute_getter_implemented_in_private_script(attribute)}} |
| 461 {% if attribute.has_setter %} | 483 {% if attribute.has_setter %} |
| 462 {{attribute_setter_implemented_in_private_script(attribute)}} | 484 {{attribute_setter_implemented_in_private_script(attribute)}} |
| 463 {% endif %} | 485 {% endif %} |
| 464 {% endfor %} | 486 {% endfor %} |
| 465 {% block partial_interface %}{% endblock %} | 487 {% block partial_interface %}{% endblock %} |
| 466 } // namespace blink | 488 } // namespace blink |
| 467 {% endfilter %} | 489 {% endfilter %} |
| OLD | NEW |