Line data Source code
1 : /* THIS FILE IS AUTOGENERATED FROM EventHandler.webidl BY Codegen.py - DO NOT EDIT */
2 :
3 : #ifndef mozilla_dom_EventHandlerBinding_h
4 : #define mozilla_dom_EventHandlerBinding_h
5 :
6 : #include "js/RootingAPI.h"
7 : #include "jspubtd.h"
8 : #include "mozilla/ErrorResult.h"
9 : #include "mozilla/dom/BindingDeclarations.h"
10 : #include "mozilla/dom/CallbackFunction.h"
11 : #include "mozilla/dom/FakeString.h"
12 : #include "mozilla/dom/Nullable.h"
13 : #include "mozilla/dom/ToJSValue.h"
14 : #include "mozilla/dom/UnionMember.h"
15 :
16 : namespace mozilla {
17 : namespace dom {
18 :
19 : class Event;
20 : class EventHandlerNonNull;
21 : class EventOrString;
22 : struct NativePropertyHooks;
23 : class OnBeforeUnloadEventHandlerNonNull;
24 : class OnErrorEventHandlerNonNull;
25 : class OwningEventOrString;
26 : class ProtoAndIfaceCache;
27 :
28 : } // namespace dom
29 : } // namespace mozilla
30 :
31 : namespace mozilla {
32 : namespace dom {
33 :
34 : void
35 : ImplCycleCollectionTraverse(nsCycleCollectionTraversalCallback& aCallback, OwningEventOrString& aUnion, const char* aName, uint32_t aFlags = 0);
36 :
37 :
38 : void
39 : ImplCycleCollectionUnlink(OwningEventOrString& aUnion);
40 :
41 :
42 : class EventOrString
43 : {
44 : friend class EventOrStringArgument;
45 : enum Type
46 : {
47 : eUninitialized,
48 : eEvent,
49 : eString
50 : };
51 :
52 0 : union Value
53 : {
54 : UnionMember<NonNull<mozilla::dom::Event> > mEvent;
55 : UnionMember<binding_detail::FakeString > mString;
56 :
57 : };
58 :
59 : Type mType;
60 : Value mValue;
61 :
62 : EventOrString(const EventOrString&) = delete;
63 : EventOrString& operator=(const EventOrString&) = delete;
64 : public:
65 0 : explicit inline EventOrString()
66 0 : : mType(eUninitialized)
67 : {
68 0 : }
69 :
70 0 : inline ~EventOrString()
71 0 : {
72 0 : Uninit();
73 0 : }
74 :
75 : inline NonNull<mozilla::dom::Event>&
76 : RawSetAsEvent()
77 : {
78 : if (mType == eEvent) {
79 : return mValue.mEvent.Value();
80 : }
81 : MOZ_ASSERT(mType == eUninitialized);
82 : mType = eEvent;
83 : return mValue.mEvent.SetValue();
84 : }
85 :
86 : inline NonNull<mozilla::dom::Event>&
87 0 : SetAsEvent()
88 : {
89 0 : if (mType == eEvent) {
90 0 : return mValue.mEvent.Value();
91 : }
92 0 : Uninit();
93 0 : mType = eEvent;
94 0 : return mValue.mEvent.SetValue();
95 : }
96 :
97 : inline bool
98 0 : IsEvent() const
99 : {
100 0 : return mType == eEvent;
101 : }
102 :
103 : inline NonNull<mozilla::dom::Event>&
104 : GetAsEvent()
105 : {
106 : MOZ_ASSERT(IsEvent(), "Wrong type!");
107 : return mValue.mEvent.Value();
108 : }
109 :
110 : inline mozilla::dom::Event&
111 : GetAsEvent() const
112 : {
113 : MOZ_ASSERT(IsEvent(), "Wrong type!");
114 : return mValue.mEvent.Value();
115 : }
116 :
117 : inline binding_detail::FakeString&
118 : RawSetAsString()
119 : {
120 : if (mType == eString) {
121 : return mValue.mString.Value();
122 : }
123 : MOZ_ASSERT(mType == eUninitialized);
124 : mType = eString;
125 : return mValue.mString.SetValue();
126 : }
127 :
128 : inline binding_detail::FakeString&
129 0 : SetAsString()
130 : {
131 0 : if (mType == eString) {
132 0 : return mValue.mString.Value();
133 : }
134 0 : Uninit();
135 0 : mType = eString;
136 0 : return mValue.mString.SetValue();
137 : }
138 :
139 : inline bool
140 0 : IsString() const
141 : {
142 0 : return mType == eString;
143 : }
144 :
145 : inline binding_detail::FakeString&
146 : GetAsString()
147 : {
148 : MOZ_ASSERT(IsString(), "Wrong type!");
149 : return mValue.mString.Value();
150 : }
151 :
152 : inline const nsAString&
153 : GetAsString() const
154 : {
155 : MOZ_ASSERT(IsString(), "Wrong type!");
156 : return mValue.mString.Value();
157 : }
158 :
159 : inline void
160 0 : Uninit()
161 : {
162 0 : switch (mType) {
163 : case eUninitialized: {
164 0 : break;
165 : }
166 : case eEvent: {
167 0 : DestroyEvent();
168 0 : break;
169 : }
170 : case eString: {
171 0 : DestroyString();
172 0 : break;
173 : }
174 : }
175 0 : }
176 :
177 : bool
178 : ToJSVal(JSContext* cx, JS::Handle<JSObject*> scopeObj, JS::MutableHandle<JS::Value> rval) const;
179 :
180 : private:
181 : inline void
182 0 : DestroyEvent()
183 : {
184 0 : MOZ_ASSERT(IsEvent(), "Wrong type!");
185 0 : mValue.mEvent.Destroy();
186 0 : mType = eUninitialized;
187 0 : }
188 :
189 : inline void
190 0 : DestroyString()
191 : {
192 0 : MOZ_ASSERT(IsString(), "Wrong type!");
193 0 : mValue.mString.Destroy();
194 0 : mType = eUninitialized;
195 0 : }
196 : };
197 :
198 :
199 : class OwningEventOrString : public AllOwningUnionBase
200 : {
201 : friend void ImplCycleCollectionUnlink(OwningEventOrString& aUnion);
202 : enum Type
203 : {
204 : eUninitialized,
205 : eEvent,
206 : eString
207 : };
208 :
209 : union Value
210 : {
211 : UnionMember<OwningNonNull<mozilla::dom::Event> > mEvent;
212 : UnionMember<nsString > mString;
213 :
214 : };
215 :
216 : Type mType;
217 : Value mValue;
218 :
219 : public:
220 : explicit inline OwningEventOrString()
221 : : mType(eUninitialized)
222 : {
223 : }
224 :
225 : explicit inline OwningEventOrString(const OwningEventOrString& aOther)
226 : : mType(eUninitialized)
227 : {
228 : *this = aOther;
229 : }
230 :
231 : inline ~OwningEventOrString()
232 : {
233 : Uninit();
234 : }
235 :
236 : OwningNonNull<mozilla::dom::Event>&
237 : RawSetAsEvent();
238 :
239 : OwningNonNull<mozilla::dom::Event>&
240 : SetAsEvent();
241 :
242 : bool
243 : TrySetToEvent(JSContext* cx, JS::Handle<JS::Value> value, bool& tryNext, bool passedToJSImpl = false);
244 :
245 : inline bool
246 0 : IsEvent() const
247 : {
248 0 : return mType == eEvent;
249 : }
250 :
251 : inline OwningNonNull<mozilla::dom::Event>&
252 0 : GetAsEvent()
253 : {
254 0 : MOZ_ASSERT(IsEvent(), "Wrong type!");
255 0 : return mValue.mEvent.Value();
256 : }
257 :
258 : inline OwningNonNull<mozilla::dom::Event> const &
259 0 : GetAsEvent() const
260 : {
261 0 : MOZ_ASSERT(IsEvent(), "Wrong type!");
262 0 : return mValue.mEvent.Value();
263 : }
264 :
265 : nsString&
266 : RawSetAsString();
267 :
268 : nsString&
269 : SetAsString();
270 :
271 : bool
272 : TrySetToString(JSContext* cx, JS::Handle<JS::Value> value, bool& tryNext, bool passedToJSImpl = false);
273 :
274 : inline void
275 : SetStringData(const nsString::char_type* aData, nsString::size_type aLength)
276 : {
277 : RawSetAsString().Assign(aData, aLength);
278 : }
279 :
280 : inline bool
281 0 : IsString() const
282 : {
283 0 : return mType == eString;
284 : }
285 :
286 : inline nsString&
287 : GetAsString()
288 : {
289 : MOZ_ASSERT(IsString(), "Wrong type!");
290 : return mValue.mString.Value();
291 : }
292 :
293 : inline nsString const &
294 0 : GetAsString() const
295 : {
296 0 : MOZ_ASSERT(IsString(), "Wrong type!");
297 0 : return mValue.mString.Value();
298 : }
299 :
300 : void
301 : Uninit();
302 :
303 : bool
304 : ToJSVal(JSContext* cx, JS::Handle<JSObject*> scopeObj, JS::MutableHandle<JS::Value> rval) const;
305 :
306 : void
307 : TraceUnion(JSTracer* trc);
308 :
309 : OwningEventOrString&
310 : operator=(const OwningEventOrString& aOther);
311 :
312 : private:
313 : void
314 : DestroyEvent();
315 :
316 : void
317 : DestroyString();
318 : };
319 :
320 :
321 0 : class EventHandlerNonNull : public CallbackFunction
322 : {
323 : public:
324 13 : explicit inline EventHandlerNonNull(JSContext* aCx, JS::Handle<JSObject*> aCallback, nsIGlobalObject* aIncumbentGlobal)
325 13 : : CallbackFunction(aCx, aCallback, aIncumbentGlobal)
326 : {
327 13 : }
328 :
329 2 : explicit inline EventHandlerNonNull(JS::Handle<JSObject*> aCallback, const FastCallbackConstructor& )
330 2 : : CallbackFunction(aCallback, FastCallbackConstructor())
331 : {
332 2 : }
333 :
334 : explicit inline EventHandlerNonNull(JS::Handle<JSObject*> aCallback, JS::Handle<JSObject*> aAsyncStack, nsIGlobalObject* aIncumbentGlobal)
335 : : CallbackFunction(aCallback, aAsyncStack, aIncumbentGlobal)
336 : {
337 : }
338 :
339 0 : explicit inline EventHandlerNonNull(CallbackFunction* aOther)
340 0 : : CallbackFunction(aOther)
341 : {
342 0 : }
343 :
344 : template <typename T>
345 : inline void
346 15 : Call(const T& thisVal, Event& event, JS::MutableHandle<JS::Value> aRetVal, ErrorResult& aRv, const char* aExecutionReason = nullptr, ExceptionHandling aExceptionHandling = eReportExceptions, JSCompartment* aCompartment = nullptr)
347 : {
348 15 : MOZ_ASSERT(!aRv.Failed(), "Don't pass an already-failed ErrorResult to a callback!");
349 15 : if (!aExecutionReason) {
350 15 : aExecutionReason = "EventHandlerNonNull";
351 : }
352 30 : CallSetup s(this, aRv, aExecutionReason, aExceptionHandling, aCompartment);
353 15 : if (!s.GetContext()) {
354 0 : MOZ_ASSERT(aRv.Failed());
355 0 : return;
356 : }
357 30 : JS::Rooted<JS::Value> thisValJS(s.GetContext());
358 15 : if (!ToJSValue(s.GetContext(), thisVal, &thisValJS)) {
359 0 : aRv.Throw(NS_ERROR_FAILURE);
360 0 : return;
361 : }
362 15 : return Call(s.GetContext(), thisValJS, event, aRetVal, aRv);
363 : }
364 :
365 : inline void
366 : Call(Event& event, JS::MutableHandle<JS::Value> aRetVal, ErrorResult& aRv, const char* aExecutionReason = nullptr, ExceptionHandling aExceptionHandling = eReportExceptions, JSCompartment* aCompartment = nullptr)
367 : {
368 : MOZ_ASSERT(!aRv.Failed(), "Don't pass an already-failed ErrorResult to a callback!");
369 : if (!aExecutionReason) {
370 : aExecutionReason = "EventHandlerNonNull";
371 : }
372 : CallSetup s(this, aRv, aExecutionReason, aExceptionHandling, aCompartment);
373 : if (!s.GetContext()) {
374 : MOZ_ASSERT(aRv.Failed());
375 : return;
376 : }
377 : return Call(s.GetContext(), JS::UndefinedHandleValue, event, aRetVal, aRv);
378 : }
379 :
380 : template <typename T>
381 : inline void
382 : Call(const T& thisVal, Event& event, JS::MutableHandle<JS::Value> aRetVal, const char* aExecutionReason = nullptr)
383 : {
384 : IgnoredErrorResult rv;
385 : return Call(thisVal, event, aRetVal, rv, aExecutionReason);
386 : }
387 :
388 : inline void
389 : Call(Event& event, JS::MutableHandle<JS::Value> aRetVal, const char* aExecutionReason = nullptr)
390 : {
391 : IgnoredErrorResult rv;
392 : return Call(event, aRetVal, rv, aExecutionReason, eReportExceptions, nullptr);
393 : }
394 :
395 : inline bool
396 : operator==(const EventHandlerNonNull& aOther) const
397 : {
398 : return CallbackFunction::operator==(aOther);
399 : }
400 :
401 : private:
402 : void Call(JSContext* cx, JS::Handle<JS::Value> aThisVal, Event& event, JS::MutableHandle<JS::Value> aRetVal, ErrorResult& aRv);
403 : };
404 :
405 :
406 0 : class OnBeforeUnloadEventHandlerNonNull : public CallbackFunction
407 : {
408 : public:
409 0 : explicit inline OnBeforeUnloadEventHandlerNonNull(JSContext* aCx, JS::Handle<JSObject*> aCallback, nsIGlobalObject* aIncumbentGlobal)
410 0 : : CallbackFunction(aCx, aCallback, aIncumbentGlobal)
411 : {
412 0 : }
413 :
414 0 : explicit inline OnBeforeUnloadEventHandlerNonNull(JS::Handle<JSObject*> aCallback, const FastCallbackConstructor& )
415 0 : : CallbackFunction(aCallback, FastCallbackConstructor())
416 : {
417 0 : }
418 :
419 : explicit inline OnBeforeUnloadEventHandlerNonNull(JS::Handle<JSObject*> aCallback, JS::Handle<JSObject*> aAsyncStack, nsIGlobalObject* aIncumbentGlobal)
420 : : CallbackFunction(aCallback, aAsyncStack, aIncumbentGlobal)
421 : {
422 : }
423 :
424 : explicit inline OnBeforeUnloadEventHandlerNonNull(CallbackFunction* aOther)
425 : : CallbackFunction(aOther)
426 : {
427 : }
428 :
429 : template <typename T>
430 : inline void
431 0 : Call(const T& thisVal, Event& event, nsString& aRetVal, ErrorResult& aRv, const char* aExecutionReason = nullptr, ExceptionHandling aExceptionHandling = eReportExceptions, JSCompartment* aCompartment = nullptr)
432 : {
433 0 : MOZ_ASSERT(!aRv.Failed(), "Don't pass an already-failed ErrorResult to a callback!");
434 0 : if (!aExecutionReason) {
435 0 : aExecutionReason = "OnBeforeUnloadEventHandlerNonNull";
436 : }
437 0 : CallSetup s(this, aRv, aExecutionReason, aExceptionHandling, aCompartment);
438 0 : if (!s.GetContext()) {
439 0 : MOZ_ASSERT(aRv.Failed());
440 0 : return;
441 : }
442 0 : JS::Rooted<JS::Value> thisValJS(s.GetContext());
443 0 : if (!ToJSValue(s.GetContext(), thisVal, &thisValJS)) {
444 0 : aRv.Throw(NS_ERROR_FAILURE);
445 0 : return;
446 : }
447 0 : return Call(s.GetContext(), thisValJS, event, aRetVal, aRv);
448 : }
449 :
450 : inline void
451 : Call(Event& event, nsString& aRetVal, ErrorResult& aRv, const char* aExecutionReason = nullptr, ExceptionHandling aExceptionHandling = eReportExceptions, JSCompartment* aCompartment = nullptr)
452 : {
453 : MOZ_ASSERT(!aRv.Failed(), "Don't pass an already-failed ErrorResult to a callback!");
454 : if (!aExecutionReason) {
455 : aExecutionReason = "OnBeforeUnloadEventHandlerNonNull";
456 : }
457 : CallSetup s(this, aRv, aExecutionReason, aExceptionHandling, aCompartment);
458 : if (!s.GetContext()) {
459 : MOZ_ASSERT(aRv.Failed());
460 : return;
461 : }
462 : return Call(s.GetContext(), JS::UndefinedHandleValue, event, aRetVal, aRv);
463 : }
464 :
465 : template <typename T>
466 : inline void
467 : Call(const T& thisVal, Event& event, nsString& aRetVal, const char* aExecutionReason = nullptr)
468 : {
469 : IgnoredErrorResult rv;
470 : return Call(thisVal, event, aRetVal, rv, aExecutionReason);
471 : }
472 :
473 : inline void
474 : Call(Event& event, nsString& aRetVal, const char* aExecutionReason = nullptr)
475 : {
476 : IgnoredErrorResult rv;
477 : return Call(event, aRetVal, rv, aExecutionReason, eReportExceptions, nullptr);
478 : }
479 :
480 : inline bool
481 : operator==(const OnBeforeUnloadEventHandlerNonNull& aOther) const
482 : {
483 : return CallbackFunction::operator==(aOther);
484 : }
485 :
486 : private:
487 : void Call(JSContext* cx, JS::Handle<JS::Value> aThisVal, Event& event, nsString& aRetVal, ErrorResult& aRv);
488 : };
489 :
490 :
491 0 : class OnErrorEventHandlerNonNull : public CallbackFunction
492 : {
493 : public:
494 0 : explicit inline OnErrorEventHandlerNonNull(JSContext* aCx, JS::Handle<JSObject*> aCallback, nsIGlobalObject* aIncumbentGlobal)
495 0 : : CallbackFunction(aCx, aCallback, aIncumbentGlobal)
496 : {
497 0 : }
498 :
499 0 : explicit inline OnErrorEventHandlerNonNull(JS::Handle<JSObject*> aCallback, const FastCallbackConstructor& )
500 0 : : CallbackFunction(aCallback, FastCallbackConstructor())
501 : {
502 0 : }
503 :
504 : explicit inline OnErrorEventHandlerNonNull(JS::Handle<JSObject*> aCallback, JS::Handle<JSObject*> aAsyncStack, nsIGlobalObject* aIncumbentGlobal)
505 : : CallbackFunction(aCallback, aAsyncStack, aIncumbentGlobal)
506 : {
507 : }
508 :
509 0 : explicit inline OnErrorEventHandlerNonNull(CallbackFunction* aOther)
510 0 : : CallbackFunction(aOther)
511 : {
512 0 : }
513 :
514 : template <typename T>
515 : inline void
516 0 : Call(const T& thisVal, const EventOrString& event, const Optional<nsAString>& source, const Optional<uint32_t>& lineno, const Optional<uint32_t>& column, const Optional<JS::Handle<JS::Value>>& error, JS::MutableHandle<JS::Value> aRetVal, ErrorResult& aRv, const char* aExecutionReason = nullptr, ExceptionHandling aExceptionHandling = eReportExceptions, JSCompartment* aCompartment = nullptr)
517 : {
518 0 : MOZ_ASSERT(!aRv.Failed(), "Don't pass an already-failed ErrorResult to a callback!");
519 0 : if (!aExecutionReason) {
520 0 : aExecutionReason = "OnErrorEventHandlerNonNull";
521 : }
522 0 : CallSetup s(this, aRv, aExecutionReason, aExceptionHandling, aCompartment);
523 0 : if (!s.GetContext()) {
524 0 : MOZ_ASSERT(aRv.Failed());
525 0 : return;
526 : }
527 0 : JS::Rooted<JS::Value> thisValJS(s.GetContext());
528 0 : if (!ToJSValue(s.GetContext(), thisVal, &thisValJS)) {
529 0 : aRv.Throw(NS_ERROR_FAILURE);
530 0 : return;
531 : }
532 0 : return Call(s.GetContext(), thisValJS, event, source, lineno, column, error, aRetVal, aRv);
533 : }
534 :
535 : inline void
536 : Call(const EventOrString& event, const Optional<nsAString>& source, const Optional<uint32_t>& lineno, const Optional<uint32_t>& column, const Optional<JS::Handle<JS::Value>>& error, JS::MutableHandle<JS::Value> aRetVal, ErrorResult& aRv, const char* aExecutionReason = nullptr, ExceptionHandling aExceptionHandling = eReportExceptions, JSCompartment* aCompartment = nullptr)
537 : {
538 : MOZ_ASSERT(!aRv.Failed(), "Don't pass an already-failed ErrorResult to a callback!");
539 : if (!aExecutionReason) {
540 : aExecutionReason = "OnErrorEventHandlerNonNull";
541 : }
542 : CallSetup s(this, aRv, aExecutionReason, aExceptionHandling, aCompartment);
543 : if (!s.GetContext()) {
544 : MOZ_ASSERT(aRv.Failed());
545 : return;
546 : }
547 : return Call(s.GetContext(), JS::UndefinedHandleValue, event, source, lineno, column, error, aRetVal, aRv);
548 : }
549 :
550 : template <typename T>
551 : inline void
552 : Call(const T& thisVal, const EventOrString& event, const Optional<nsAString>& source, const Optional<uint32_t>& lineno, const Optional<uint32_t>& column, const Optional<JS::Handle<JS::Value>>& error, JS::MutableHandle<JS::Value> aRetVal, const char* aExecutionReason = nullptr)
553 : {
554 : IgnoredErrorResult rv;
555 : return Call(thisVal, event, source, lineno, column, error, aRetVal, rv, aExecutionReason);
556 : }
557 :
558 : inline void
559 : Call(const EventOrString& event, const Optional<nsAString>& source, const Optional<uint32_t>& lineno, const Optional<uint32_t>& column, const Optional<JS::Handle<JS::Value>>& error, JS::MutableHandle<JS::Value> aRetVal, const char* aExecutionReason = nullptr)
560 : {
561 : IgnoredErrorResult rv;
562 : return Call(event, source, lineno, column, error, aRetVal, rv, aExecutionReason, eReportExceptions, nullptr);
563 : }
564 :
565 : inline bool
566 : operator==(const OnErrorEventHandlerNonNull& aOther) const
567 : {
568 : return CallbackFunction::operator==(aOther);
569 : }
570 :
571 : private:
572 : void Call(JSContext* cx, JS::Handle<JS::Value> aThisVal, const EventOrString& event, const Optional<nsAString>& source, const Optional<uint32_t>& lineno, const Optional<uint32_t>& column, const Optional<JS::Handle<JS::Value>>& error, JS::MutableHandle<JS::Value> aRetVal, ErrorResult& aRv);
573 : };
574 :
575 :
576 : namespace binding_detail {
577 0 : class FastEventHandlerNonNull : public EventHandlerNonNull
578 : {
579 : public:
580 2 : explicit inline FastEventHandlerNonNull(JS::Handle<JSObject*> aCallback)
581 2 : : EventHandlerNonNull(aCallback, FastCallbackConstructor())
582 : {
583 2 : }
584 :
585 : inline void
586 0 : Trace(JSTracer* aTracer)
587 : {
588 0 : EventHandlerNonNull::Trace(aTracer);
589 0 : }
590 :
591 : inline void
592 2 : FinishSlowJSInitIfMoreThanOneOwner(JSContext* aCx)
593 : {
594 2 : EventHandlerNonNull::FinishSlowJSInitIfMoreThanOneOwner(aCx);
595 2 : }
596 : };
597 : } // namespace binding_detail
598 :
599 :
600 : namespace binding_detail {
601 0 : class FastOnBeforeUnloadEventHandlerNonNull : public OnBeforeUnloadEventHandlerNonNull
602 : {
603 : public:
604 0 : explicit inline FastOnBeforeUnloadEventHandlerNonNull(JS::Handle<JSObject*> aCallback)
605 0 : : OnBeforeUnloadEventHandlerNonNull(aCallback, FastCallbackConstructor())
606 : {
607 0 : }
608 :
609 : inline void
610 0 : Trace(JSTracer* aTracer)
611 : {
612 0 : OnBeforeUnloadEventHandlerNonNull::Trace(aTracer);
613 0 : }
614 :
615 : inline void
616 0 : FinishSlowJSInitIfMoreThanOneOwner(JSContext* aCx)
617 : {
618 0 : OnBeforeUnloadEventHandlerNonNull::FinishSlowJSInitIfMoreThanOneOwner(aCx);
619 0 : }
620 : };
621 : } // namespace binding_detail
622 :
623 :
624 : namespace binding_detail {
625 0 : class FastOnErrorEventHandlerNonNull : public OnErrorEventHandlerNonNull
626 : {
627 : public:
628 0 : explicit inline FastOnErrorEventHandlerNonNull(JS::Handle<JSObject*> aCallback)
629 0 : : OnErrorEventHandlerNonNull(aCallback, FastCallbackConstructor())
630 : {
631 0 : }
632 :
633 : inline void
634 0 : Trace(JSTracer* aTracer)
635 : {
636 0 : OnErrorEventHandlerNonNull::Trace(aTracer);
637 0 : }
638 :
639 : inline void
640 0 : FinishSlowJSInitIfMoreThanOneOwner(JSContext* aCx)
641 : {
642 0 : OnErrorEventHandlerNonNull::FinishSlowJSInitIfMoreThanOneOwner(aCx);
643 0 : }
644 : };
645 : } // namespace binding_detail
646 :
647 :
648 : } // namespace dom
649 : } // namespace mozilla
650 :
651 : #endif // mozilla_dom_EventHandlerBinding_h
|