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

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

Issue 2653093002: [bindings] Allow dictionary and union types to be returned from static methods. (Closed)
Patch Set: Created 3 years, 10 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 42 matching lines...) Expand 10 before | Expand all | Expand 10 after
53 {{exported}}static void toImpl(v8::Isolate*, v8::Local<v8::Value>, {{cpp_class }}&, UnionTypeConversionMode, ExceptionState&); 53 {{exported}}static void toImpl(v8::Isolate*, v8::Local<v8::Value>, {{cpp_class }}&, UnionTypeConversionMode, ExceptionState&);
54 }; 54 };
55 55
56 {{exported}}v8::Local<v8::Value> ToV8(const {{cpp_class}}&, v8::Local<v8::Object >, v8::Isolate*); 56 {{exported}}v8::Local<v8::Value> ToV8(const {{cpp_class}}&, v8::Local<v8::Object >, v8::Isolate*);
57 57
58 template <class CallbackInfo> 58 template <class CallbackInfo>
59 inline void v8SetReturnValue(const CallbackInfo& callbackInfo, {{cpp_class}}& im pl) { 59 inline void v8SetReturnValue(const CallbackInfo& callbackInfo, {{cpp_class}}& im pl) {
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>
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()));
66 }
67
63 template <> 68 template <>
64 struct NativeValueTraits<{{cpp_class}}> { 69 struct NativeValueTraits<{{cpp_class}}> {
65 {{exported}}static {{cpp_class}} nativeValue(v8::Isolate*, v8::Local<v8::Value >, ExceptionState&); 70 {{exported}}static {{cpp_class}} nativeValue(v8::Isolate*, v8::Local<v8::Value >, ExceptionState&);
66 }; 71 };
67 72
68 } // namespace blink 73 } // namespace blink
69 74
70 // We need to set canInitializeWithMemset=true because HeapVector supports 75 // We need to set canInitializeWithMemset=true because HeapVector supports
71 // items that can initialize with memset or have a vtable. It is safe to 76 // items that can initialize with memset or have a vtable. It is safe to
72 // set canInitializeWithMemset=true for a union type object in practice. 77 // set canInitializeWithMemset=true for a union type object in practice.
73 // See https://codereview.chromium.org/1118993002/#msg5 for more details. 78 // See https://codereview.chromium.org/1118993002/#msg5 for more details.
74 WTF_ALLOW_MOVE_AND_INIT_WITH_MEM_FUNCTIONS(blink::{{cpp_class}}); 79 WTF_ALLOW_MOVE_AND_INIT_WITH_MEM_FUNCTIONS(blink::{{cpp_class}});
75 80
76 #endif // {{cpp_class}}_h 81 #endif // {{cpp_class}}_h
77 82
78 {% endfilter %}{# format_blink_cpp_source_code #} 83 {% endfilter %}{# format_blink_cpp_source_code #}
OLDNEW

Powered by Google App Engine
This is Rietveld 408576698