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

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

Issue 2617653002: bindings: Don't throw a TypeError when 'null' is passed to nullable callback function (Closed)
Patch Set: Created 3 years, 11 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 4
5 #ifndef {{cpp_class}}_h 5 #ifndef {{cpp_class}}_h
6 #define {{cpp_class}}_h 6 #define {{cpp_class}}_h
7 7
8 {% for filename in header_includes %} 8 {% for filename in header_includes %}
9 #include "{{filename}}" 9 #include "{{filename}}"
10 {% endfor %} 10 {% endfor %}
11 11
12 namespace blink { 12 namespace blink {
13 13
14 class ScriptState; 14 class ScriptState;
15 {% for forward_declaration in forward_declarations %} 15 {% for forward_declaration in forward_declarations %}
16 class {{forward_declaration}}; 16 class {{forward_declaration}};
17 {% endfor %} 17 {% endfor %}
18 18
19 class {{exported}}{{cpp_class}} final : public GarbageCollectedFinalized<{{cpp_c lass}}>, public TraceWrapperBase { 19 class {{exported}}{{cpp_class}} final : public GarbageCollectedFinalized<{{cpp_c lass}}>, public TraceWrapperBase {
20 public: 20 public:
21 static {{cpp_class}}* create(ScriptState* scriptState, v8::Local<v8::Function> callback) { 21 static {{cpp_class}}* create(ScriptState* scriptState, v8::Local<v8::Value> ca llback);
22 return new {{cpp_class}}(scriptState, callback);
23 }
24 22
25 ~{{cpp_class}}() = default; 23 ~{{cpp_class}}() = default;
26 24
27 DECLARE_TRACE(); 25 DECLARE_TRACE();
28 DECLARE_TRACE_WRAPPERS(); 26 DECLARE_TRACE_WRAPPERS();
29 27
30 bool call({{argument_declarations | join(', ')}}); 28 bool call({{argument_declarations | join(', ')}});
31 29
32 v8::Local<v8::Function> v8Value(v8::Isolate* isolate) { 30 v8::Local<v8::Function> v8Value(v8::Isolate* isolate) {
33 return m_callback.newLocal(isolate); 31 return m_callback.newLocal(isolate);
34 } 32 }
35 33
36 void setWrapperReference(v8::Isolate* isolate, const v8::Persistent<v8::Object >& wrapper) { 34 void setWrapperReference(v8::Isolate* isolate, const v8::Persistent<v8::Object >& wrapper) {
37 DCHECK(!m_callback.isEmpty()); 35 DCHECK(!m_callback.isEmpty());
38 m_callback.setReference(wrapper, isolate); 36 m_callback.setReference(wrapper, isolate);
39 } 37 }
40 38
41 private: 39 private:
42 {{cpp_class}}(ScriptState*, v8::Local<v8::Function>); 40 {{cpp_class}}(ScriptState*, v8::Local<v8::Function>);
43 41
44 RefPtr<ScriptState> m_scriptState; 42 RefPtr<ScriptState> m_scriptState;
45 TraceWrapperV8Reference<v8::Function> m_callback; 43 TraceWrapperV8Reference<v8::Function> m_callback;
46 }; 44 };
47 45
48 } // namespace blink 46 } // namespace blink
49 47
50 #endif // {{cpp_class}}_h 48 #endif // {{cpp_class}}_h
51 49
52 {% endfilter %}{# format_blink_cpp_source_code #} 50 {% endfilter %}{# format_blink_cpp_source_code #}
OLDNEW

Powered by Google App Engine
This is Rietveld 408576698