Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(140)

Side by Side Diff: Source/bindings/templates/interface.cpp

Issue 82693003: IDL compiler: [CustomToV8] interface (Closed) Base URL: svn://svn.chromium.org/blink/trunk
Patch Set: Rebased, remove excess files Created 7 years ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View unified diff | Download patch | Annotate | Revision Log
« no previous file with comments | « Source/bindings/templates/interface.h ('k') | Source/bindings/templates/interface_base.cpp » ('j') | no next file with comments »
Toggle Intra-line Diffs ('i') | Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
OLDNEW
1 {% extends 'interface_base.cpp' %} 1 {% extends 'interface_base.cpp' %}
2 2
3 3
4 {##############################################################################} 4 {##############################################################################}
5 {% macro attribute_configuration(attribute) %} 5 {% macro attribute_configuration(attribute) %}
6 {% set getter_callback = 6 {% set getter_callback =
7 '%sV8Internal::%sAttributeGetterCallback' % 7 '%sV8Internal::%sAttributeGetterCallback' %
8 (interface_name, attribute.name) 8 (interface_name, attribute.name)
9 if not attribute.constructor_type else 9 if not attribute.constructor_type else
10 '{0}V8Internal::{0}ConstructorGetter'.format(interface_name) %} 10 '{0}V8Internal::{0}ConstructorGetter'.format(interface_name) %}
(...skipping 431 matching lines...) Expand 10 before | Expand all | Expand 10 after
442 ActiveDOMObject* {{v8_class}}::toActiveDOMObject(v8::Handle<v8::Object> wrapper) 442 ActiveDOMObject* {{v8_class}}::toActiveDOMObject(v8::Handle<v8::Object> wrapper)
443 { 443 {
444 return toNative(wrapper); 444 return toNative(wrapper);
445 } 445 }
446 446
447 {% endif %} 447 {% endif %}
448 {% endblock %} 448 {% endblock %}
449 449
450 450
451 {##############################################################################} 451 {##############################################################################}
452 {% block create_wrapper_and_deref_object %} 452 {% block create_wrapper %}
453 {% if not has_custom_to_v8 %}
453 v8::Handle<v8::Object> {{v8_class}}::createWrapper(PassRefPtr<{{cpp_class}}> imp l, v8::Handle<v8::Object> creationContext, v8::Isolate* isolate) 454 v8::Handle<v8::Object> {{v8_class}}::createWrapper(PassRefPtr<{{cpp_class}}> imp l, v8::Handle<v8::Object> creationContext, v8::Isolate* isolate)
454 { 455 {
455 ASSERT(impl); 456 ASSERT(impl);
456 ASSERT(!DOMDataStore::containsWrapper<{{v8_class}}>(impl.get(), isolate)); 457 ASSERT(!DOMDataStore::containsWrapper<{{v8_class}}>(impl.get(), isolate));
457 if (ScriptWrappable::wrapperCanBeStoredInObject(impl.get())) { 458 if (ScriptWrappable::wrapperCanBeStoredInObject(impl.get())) {
458 const WrapperTypeInfo* actualInfo = ScriptWrappable::getTypeInfoFromObje ct(impl.get()); 459 const WrapperTypeInfo* actualInfo = ScriptWrappable::getTypeInfoFromObje ct(impl.get());
459 // Might be a XXXConstructor::wrapperTypeInfo instead of an XXX::wrapper TypeInfo. These will both have 460 // Might be a XXXConstructor::wrapperTypeInfo instead of an XXX::wrapper TypeInfo. These will both have
460 // the same object de-ref functions, though, so use that as the basis of the check. 461 // the same object de-ref functions, though, so use that as the basis of the check.
461 RELEASE_ASSERT_WITH_SECURITY_IMPLICATION(actualInfo->derefObjectFunction == wrapperTypeInfo.derefObjectFunction); 462 RELEASE_ASSERT_WITH_SECURITY_IMPLICATION(actualInfo->derefObjectFunction == wrapperTypeInfo.derefObjectFunction);
462 } 463 }
463 464
464 v8::Handle<v8::Object> wrapper = V8DOMWrapper::createWrapper(creationContext , &wrapperTypeInfo, toInternalPointer(impl.get()), isolate); 465 v8::Handle<v8::Object> wrapper = V8DOMWrapper::createWrapper(creationContext , &wrapperTypeInfo, toInternalPointer(impl.get()), isolate);
465 if (UNLIKELY(wrapper.IsEmpty())) 466 if (UNLIKELY(wrapper.IsEmpty()))
466 return wrapper; 467 return wrapper;
467 468
468 installPerContextEnabledProperties(wrapper, impl.get(), isolate); 469 installPerContextEnabledProperties(wrapper, impl.get(), isolate);
469 {% set wrapper_configuration = 'WrapperConfiguration::Dependent' 470 {% set wrapper_configuration = 'WrapperConfiguration::Dependent'
470 if (has_visit_dom_wrapper or 471 if (has_visit_dom_wrapper or
471 is_active_dom_object or 472 is_active_dom_object or
472 is_dependent_lifetime) else 473 is_dependent_lifetime) else
473 'WrapperConfiguration::Independent' %} 474 'WrapperConfiguration::Independent' %}
474 V8DOMWrapper::associateObjectWithWrapper<{{v8_class}}>(impl, &wrapperTypeInf o, wrapper, isolate, {{wrapper_configuration}}); 475 V8DOMWrapper::associateObjectWithWrapper<{{v8_class}}>(impl, &wrapperTypeInf o, wrapper, isolate, {{wrapper_configuration}});
475 return wrapper; 476 return wrapper;
476 } 477 }
477 478
479 {% endif %}
480 {% endblock %}
481
482
483 {##############################################################################}
484 {% block deref_object_and_to_v8_no_inline %}
478 void {{v8_class}}::derefObject(void* object) 485 void {{v8_class}}::derefObject(void* object)
479 { 486 {
480 fromInternalPointer(object)->deref(); 487 fromInternalPointer(object)->deref();
481 } 488 }
482 489
483 template<> 490 template<>
484 v8::Handle<v8::Value> toV8NoInline({{cpp_class}}* impl, v8::Handle<v8::Object> c reationContext, v8::Isolate* isolate) 491 v8::Handle<v8::Value> toV8NoInline({{cpp_class}}* impl, v8::Handle<v8::Object> c reationContext, v8::Isolate* isolate)
485 { 492 {
486 return toV8(impl, creationContext, isolate); 493 return toV8(impl, creationContext, isolate);
487 } 494 }
488 495
489 {% endblock %} 496 {% endblock %}
OLDNEW
« no previous file with comments | « Source/bindings/templates/interface.h ('k') | Source/bindings/templates/interface_base.cpp » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698