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

Side by Side Diff: third_party/WebKit/Source/bindings/templates/union_container.h.tmpl

Issue 2709983004: WIP bindings: Add support for the record<K,V> WebIDL type. (Closed)
Patch Set: Rebased patch using NativeValueTraits for IDL types Created 3 years, 9 months 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
OLDNEW
1 {% filter format_blink_cpp_source_code %} 1 {% filter format_blink_cpp_source_code %}
2 2
3 {% include 'copyright_block.txt' %} 3 {% include 'copyright_block.txt' %}
4 #ifndef {{cpp_class}}_h 4 #ifndef {{cpp_class}}_h
5 #define {{cpp_class}}_h 5 #define {{cpp_class}}_h
6 6
7 {% for filename in header_includes %} 7 {% for filename in header_includes %}
8 #include "{{filename}}" 8 #include "{{filename}}"
9 {% endfor %} 9 {% endfor %}
10 10
(...skipping 49 matching lines...) Expand 10 before | Expand all | Expand 10 after
60 v8SetReturnValue(callbackInfo, ToV8(impl, callbackInfo.Holder(), callbackInfo. GetIsolate())); 60 v8SetReturnValue(callbackInfo, ToV8(impl, callbackInfo.Holder(), callbackInfo. GetIsolate()));
61 } 61 }
62 62
63 template <class CallbackInfo> 63 template <class CallbackInfo>
64 inline void v8SetReturnValue(const CallbackInfo& callbackInfo, {{cpp_class}}& im pl, v8::Local<v8::Object> creationContext) { 64 inline void v8SetReturnValue(const CallbackInfo& callbackInfo, {{cpp_class}}& im pl, v8::Local<v8::Object> creationContext) {
65 v8SetReturnValue(callbackInfo, ToV8(impl, creationContext, callbackInfo.GetIso late())); 65 v8SetReturnValue(callbackInfo, ToV8(impl, creationContext, callbackInfo.GetIso late()));
66 } 66 }
67 67
68 template <> 68 template <>
69 struct NativeValueTraits<{{cpp_class}}> { 69 struct NativeValueTraits<{{cpp_class}}> {
70 using ImplType = {{cpp_class}};
70 {{exported}}static {{cpp_class}} nativeValue(v8::Isolate*, v8::Local<v8::Value >, ExceptionState&); 71 {{exported}}static {{cpp_class}} nativeValue(v8::Isolate*, v8::Local<v8::Value >, ExceptionState&);
71 }; 72 };
72 73
74 template <>
75 struct V8TypeOf<{{cpp_class}}> {
76 typedef {{v8_class}} Type;
77 };
78
73 } // namespace blink 79 } // namespace blink
74 80
75 // We need to set canInitializeWithMemset=true because HeapVector supports 81 // We need to set canInitializeWithMemset=true because HeapVector supports
76 // items that can initialize with memset or have a vtable. It is safe to 82 // items that can initialize with memset or have a vtable. It is safe to
77 // set canInitializeWithMemset=true for a union type object in practice. 83 // set canInitializeWithMemset=true for a union type object in practice.
78 // See https://codereview.chromium.org/1118993002/#msg5 for more details. 84 // See https://codereview.chromium.org/1118993002/#msg5 for more details.
79 WTF_ALLOW_MOVE_AND_INIT_WITH_MEM_FUNCTIONS(blink::{{cpp_class}}); 85 WTF_ALLOW_MOVE_AND_INIT_WITH_MEM_FUNCTIONS(blink::{{cpp_class}});
80 86
81 #endif // {{cpp_class}}_h 87 #endif // {{cpp_class}}_h
82 88
83 {% endfilter %}{# format_blink_cpp_source_code #} 89 {% endfilter %}{# format_blink_cpp_source_code #}
OLDNEW

Powered by Google App Engine
This is Rietveld 408576698