/work/obj-fuzz/dist/include/mozilla/dom/ToJSValue.h
Line | Count | Source (jump to first uncovered line) |
1 | | /* -*- Mode: C++; tab-width: 8; indent-tabs-mode: nil; c-basic-offset: 2 -*- */ |
2 | | /* vim: set ts=8 sts=2 et sw=2 tw=80: */ |
3 | | /* This Source Code Form is subject to the terms of the Mozilla Public |
4 | | * License, v. 2.0. If a copy of the MPL was not distributed with this file, |
5 | | * You can obtain one at http://mozilla.org/MPL/2.0/. */ |
6 | | |
7 | | #ifndef mozilla_dom_ToJSValue_h |
8 | | #define mozilla_dom_ToJSValue_h |
9 | | |
10 | | #include "mozilla/TypeTraits.h" |
11 | | #include "mozilla/Assertions.h" |
12 | | #include "mozilla/UniquePtr.h" |
13 | | #include "mozilla/dom/BindingUtils.h" |
14 | | #include "mozilla/dom/NonRefcountedDOMObject.h" |
15 | | #include "mozilla/dom/TypedArray.h" |
16 | | #include "jsapi.h" |
17 | | #include "nsISupports.h" |
18 | | #include "nsTArray.h" |
19 | | #include "nsWrapperCache.h" |
20 | | #include "nsAutoPtr.h" |
21 | | |
22 | | namespace mozilla { |
23 | | namespace dom { |
24 | | |
25 | | class Promise; |
26 | | |
27 | | // If ToJSValue returns false, it must set an exception on the |
28 | | // JSContext. |
29 | | |
30 | | // Accept strings. |
31 | | MOZ_MUST_USE bool |
32 | | ToJSValue(JSContext* aCx, |
33 | | const nsAString& aArgument, |
34 | | JS::MutableHandle<JS::Value> aValue); |
35 | | |
36 | | // Accept booleans. But be careful here: if we just have a function that takes |
37 | | // a boolean argument, then any pointer that doesn't match one of our other |
38 | | // signatures/templates will get treated as a boolean, which is clearly not |
39 | | // desirable. So make this a template that only gets used if the argument type |
40 | | // is actually boolean |
41 | | template<typename T> |
42 | | MOZ_MUST_USE |
43 | | typename EnableIf<IsSame<T, bool>::value, bool>::Type |
44 | | ToJSValue(JSContext* aCx, |
45 | | T aArgument, |
46 | | JS::MutableHandle<JS::Value> aValue) |
47 | 0 | { |
48 | 0 | // Make sure we're called in a compartment |
49 | 0 | MOZ_ASSERT(JS::CurrentGlobalOrNull(aCx)); |
50 | 0 |
|
51 | 0 | aValue.setBoolean(aArgument); |
52 | 0 | return true; |
53 | 0 | } |
54 | | |
55 | | // Accept integer types |
56 | | inline bool |
57 | | ToJSValue(JSContext* aCx, |
58 | | int32_t aArgument, |
59 | | JS::MutableHandle<JS::Value> aValue) |
60 | 0 | { |
61 | 0 | // Make sure we're called in a compartment |
62 | 0 | MOZ_ASSERT(JS::CurrentGlobalOrNull(aCx)); |
63 | 0 |
|
64 | 0 | aValue.setInt32(aArgument); |
65 | 0 | return true; |
66 | 0 | } |
67 | | |
68 | | inline bool |
69 | | ToJSValue(JSContext* aCx, |
70 | | uint32_t aArgument, |
71 | | JS::MutableHandle<JS::Value> aValue) |
72 | 0 | { |
73 | 0 | // Make sure we're called in a compartment |
74 | 0 | MOZ_ASSERT(JS::CurrentGlobalOrNull(aCx)); |
75 | 0 |
|
76 | 0 | aValue.setNumber(aArgument); |
77 | 0 | return true; |
78 | 0 | } |
79 | | |
80 | | inline bool |
81 | | ToJSValue(JSContext* aCx, |
82 | | int64_t aArgument, |
83 | | JS::MutableHandle<JS::Value> aValue) |
84 | 0 | { |
85 | 0 | // Make sure we're called in a compartment |
86 | 0 | MOZ_ASSERT(JS::CurrentGlobalOrNull(aCx)); |
87 | 0 |
|
88 | 0 | aValue.setNumber(double(aArgument)); |
89 | 0 | return true; |
90 | 0 | } |
91 | | |
92 | | inline bool |
93 | | ToJSValue(JSContext* aCx, |
94 | | uint64_t aArgument, |
95 | | JS::MutableHandle<JS::Value> aValue) |
96 | 0 | { |
97 | 0 | // Make sure we're called in a compartment |
98 | 0 | MOZ_ASSERT(JS::CurrentGlobalOrNull(aCx)); |
99 | 0 |
|
100 | 0 | aValue.setNumber(double(aArgument)); |
101 | 0 | return true; |
102 | 0 | } |
103 | | |
104 | | // accept floating point types |
105 | | inline bool |
106 | | ToJSValue(JSContext* aCx, |
107 | | float aArgument, |
108 | | JS::MutableHandle<JS::Value> aValue) |
109 | 0 | { |
110 | 0 | // Make sure we're called in a compartment |
111 | 0 | MOZ_ASSERT(JS::CurrentGlobalOrNull(aCx)); |
112 | 0 |
|
113 | 0 | aValue.setNumber(aArgument); |
114 | 0 | return true; |
115 | 0 | } |
116 | | |
117 | | inline bool |
118 | | ToJSValue(JSContext* aCx, |
119 | | double aArgument, |
120 | | JS::MutableHandle<JS::Value> aValue) |
121 | 0 | { |
122 | 0 | // Make sure we're called in a compartment |
123 | 0 | MOZ_ASSERT(JS::CurrentGlobalOrNull(aCx)); |
124 | 0 |
|
125 | 0 | aValue.setNumber(aArgument); |
126 | 0 | return true; |
127 | 0 | } |
128 | | |
129 | | // Accept CallbackObjects |
130 | | MOZ_MUST_USE inline bool |
131 | | ToJSValue(JSContext* aCx, |
132 | | CallbackObject& aArgument, |
133 | | JS::MutableHandle<JS::Value> aValue) |
134 | 0 | { |
135 | 0 | // Make sure we're called in a compartment |
136 | 0 | MOZ_ASSERT(JS::CurrentGlobalOrNull(aCx)); |
137 | 0 |
|
138 | 0 | aValue.setObjectOrNull(aArgument.Callback(aCx)); |
139 | 0 |
|
140 | 0 | return MaybeWrapValue(aCx, aValue); |
141 | 0 | } |
142 | | |
143 | | // Accept objects that inherit from nsWrapperCache (e.g. most |
144 | | // DOM objects). |
145 | | template <class T> |
146 | | MOZ_MUST_USE |
147 | | typename EnableIf<IsBaseOf<nsWrapperCache, T>::value, bool>::Type |
148 | | ToJSValue(JSContext* aCx, |
149 | | T& aArgument, |
150 | | JS::MutableHandle<JS::Value> aValue) |
151 | 0 | { |
152 | 0 | // Make sure we're called in a compartment |
153 | 0 | MOZ_ASSERT(JS::CurrentGlobalOrNull(aCx)); |
154 | 0 |
|
155 | 0 | return GetOrCreateDOMReflector(aCx, aArgument, aValue); |
156 | 0 | } Unexecuted instantiation: _ZN7mozilla3dom9ToJSValueINS0_17PrecompiledScriptEEENS_8EnableIfIXsr8IsBaseOfI14nsWrapperCacheT_EE5valueEbE4TypeEP9JSContextRS5_N2JS13MutableHandleINSB_5ValueEEE Unexecuted instantiation: _ZN7mozilla3dom9ToJSValueINS0_4BlobEEENS_8EnableIfIXsr8IsBaseOfI14nsWrapperCacheT_EE5valueEbE4TypeEP9JSContextRS5_N2JS13MutableHandleINSB_5ValueEEE Unexecuted instantiation: _ZN7mozilla3dom9ToJSValueINS0_13VRMockDisplayEEENS_8EnableIfIXsr8IsBaseOfI14nsWrapperCacheT_EE5valueEbE4TypeEP9JSContextRS5_N2JS13MutableHandleINSB_5ValueEEE Unexecuted instantiation: _ZN7mozilla3dom9ToJSValueINS0_16VRMockControllerEEENS_8EnableIfIXsr8IsBaseOfI14nsWrapperCacheT_EE5valueEbE4TypeEP9JSContextRS5_N2JS13MutableHandleINSB_5ValueEEE Unexecuted instantiation: _ZN7mozilla3dom9ToJSValueINS0_9AnimationEEENS_8EnableIfIXsr8IsBaseOfI14nsWrapperCacheT_EE5valueEbE4TypeEP9JSContextRS5_N2JS13MutableHandleINSB_5ValueEEE Unexecuted instantiation: _ZN7mozilla3dom9ToJSValueINS0_23DOMIntersectionObserverEEENS_8EnableIfIXsr8IsBaseOfI14nsWrapperCacheT_EE5valueEbE4TypeEP9JSContextRS5_N2JS13MutableHandleINSB_5ValueEEE Unexecuted instantiation: _ZN7mozilla3dom9ToJSValueI10nsIContentEENS_8EnableIfIXsr8IsBaseOfI14nsWrapperCacheT_EE5valueEbE4TypeEP9JSContextRS5_N2JS13MutableHandleINSB_5ValueEEE Unexecuted instantiation: _ZN7mozilla3dom9ToJSValueINS0_7ElementEEENS_8EnableIfIXsr8IsBaseOfI14nsWrapperCacheT_EE5valueEbE4TypeEP9JSContextRS5_N2JS13MutableHandleINSB_5ValueEEE Unexecuted instantiation: _ZN7mozilla3dom9ToJSValueINS0_7battery14BatteryManagerEEENS_8EnableIfIXsr8IsBaseOfI14nsWrapperCacheT_EE5valueEbE4TypeEP9JSContextRS6_N2JS13MutableHandleINSC_5ValueEEE Unexecuted instantiation: _ZN7mozilla3dom9ToJSValueINS0_9VRDisplayEEENS_8EnableIfIXsr8IsBaseOfI14nsWrapperCacheT_EE5valueEbE4TypeEP9JSContextRS5_N2JS13MutableHandleINSB_5ValueEEE Unexecuted instantiation: _ZN7mozilla3dom9ToJSValueINS0_9DirectoryEEENS_8EnableIfIXsr8IsBaseOfI14nsWrapperCacheT_EE5valueEbE4TypeEP9JSContextRS5_N2JS13MutableHandleINSB_5ValueEEE Unexecuted instantiation: _ZN7mozilla3dom9ToJSValueINS0_8FileListEEENS_8EnableIfIXsr8IsBaseOfI14nsWrapperCacheT_EE5valueEbE4TypeEP9JSContextRS5_N2JS13MutableHandleINSB_5ValueEEE Unexecuted instantiation: _ZN7mozilla3dom9ToJSValueINS0_8FormDataEEENS_8EnableIfIXsr8IsBaseOfI14nsWrapperCacheT_EE5valueEbE4TypeEP9JSContextRS5_N2JS13MutableHandleINSB_5ValueEEE Unexecuted instantiation: _ZN7mozilla3dom9ToJSValueI19nsGlobalWindowOuterEENS_8EnableIfIXsr8IsBaseOfI14nsWrapperCacheT_EE5valueEbE4TypeEP9JSContextRS5_N2JS13MutableHandleINSB_5ValueEEE Unexecuted instantiation: _ZN7mozilla3dom9ToJSValueI21nsDOMMutationObserverEENS_8EnableIfIXsr8IsBaseOfI14nsWrapperCacheT_EE5valueEbE4TypeEP9JSContextRS5_N2JS13MutableHandleINSB_5ValueEEE Unexecuted instantiation: _ZN7mozilla3dom9ToJSValueI11nsIDocumentEENS_8EnableIfIXsr8IsBaseOfI14nsWrapperCacheT_EE5valueEbE4TypeEP9JSContextRS5_N2JS13MutableHandleINSB_5ValueEEE Unexecuted instantiation: _ZN7mozilla3dom9ToJSValueINS0_13AudioParamMapEEENS_8EnableIfIXsr8IsBaseOfI14nsWrapperCacheT_EE5valueEbE4TypeEP9JSContextRS5_N2JS13MutableHandleINSB_5ValueEEE Unexecuted instantiation: _ZN7mozilla3dom9ToJSValueINS0_12MIDIInputMapEEENS_8EnableIfIXsr8IsBaseOfI14nsWrapperCacheT_EE5valueEbE4TypeEP9JSContextRS5_N2JS13MutableHandleINSB_5ValueEEE Unexecuted instantiation: _ZN7mozilla3dom9ToJSValueINS0_13MIDIOutputMapEEENS_8EnableIfIXsr8IsBaseOfI14nsWrapperCacheT_EE5valueEbE4TypeEP9JSContextRS5_N2JS13MutableHandleINSB_5ValueEEE Unexecuted instantiation: _ZN7mozilla3dom9ToJSValueINS0_14RTCStatsReportEEENS_8EnableIfIXsr8IsBaseOfI14nsWrapperCacheT_EE5valueEbE4TypeEP9JSContextRS5_N2JS13MutableHandleINSB_5ValueEEE Unexecuted instantiation: _ZN7mozilla3dom9ToJSValueINS0_9ExceptionEEENS_8EnableIfIXsr8IsBaseOfI14nsWrapperCacheT_EE5valueEbE4TypeEP9JSContextRS5_N2JS13MutableHandleINSB_5ValueEEE Unexecuted instantiation: _ZN7mozilla3dom9ToJSValueINS0_5cache5CacheEEENS_8EnableIfIXsr8IsBaseOfI14nsWrapperCacheT_EE5valueEbE4TypeEP9JSContextRS6_N2JS13MutableHandleINSC_5ValueEEE Unexecuted instantiation: _ZN7mozilla3dom9ToJSValueINS0_8ResponseEEENS_8EnableIfIXsr8IsBaseOfI14nsWrapperCacheT_EE5valueEbE4TypeEP9JSContextRS5_N2JS13MutableHandleINSB_5ValueEEE Unexecuted instantiation: _ZN7mozilla3dom9ToJSValueINS0_7RequestEEENS_8EnableIfIXsr8IsBaseOfI14nsWrapperCacheT_EE5valueEbE4TypeEP9JSContextRS5_N2JS13MutableHandleINSB_5ValueEEE Unexecuted instantiation: _ZN7mozilla3dom9ToJSValueINS0_5cache12CacheStorageEEENS_8EnableIfIXsr8IsBaseOfI14nsWrapperCacheT_EE5valueEbE4TypeEP9JSContextRS6_N2JS13MutableHandleINSC_5ValueEEE Unexecuted instantiation: _ZN7mozilla3dom9ToJSValueINS0_11ImageBitmapEEENS_8EnableIfIXsr8IsBaseOfI14nsWrapperCacheT_EE5valueEbE4TypeEP9JSContextRS5_N2JS13MutableHandleINSB_5ValueEEE Unexecuted instantiation: _ZN7mozilla3dom9ToJSValueINS0_6ClientEEENS_8EnableIfIXsr8IsBaseOfI14nsWrapperCacheT_EE5valueEbE4TypeEP9JSContextRS5_N2JS13MutableHandleINSB_5ValueEEE Unexecuted instantiation: _ZN7mozilla3dom9ToJSValueINS0_9CryptoKeyEEENS_8EnableIfIXsr8IsBaseOfI14nsWrapperCacheT_EE5valueEbE4TypeEP9JSContextRS5_N2JS13MutableHandleINSB_5ValueEEE Unexecuted instantiation: _ZN7mozilla3dom9ToJSValueINS0_12DataTransferEEENS_8EnableIfIXsr8IsBaseOfI14nsWrapperCacheT_EE5valueEbE4TypeEP9JSContextRS5_N2JS13MutableHandleINSB_5ValueEEE Unexecuted instantiation: _ZN7mozilla3dom9ToJSValueINS0_4FileEEENS_8EnableIfIXsr8IsBaseOfI14nsWrapperCacheT_EE5valueEbE4TypeEP9JSContextRS5_N2JS13MutableHandleINSB_5ValueEEE Unexecuted instantiation: _ZN7mozilla3dom9ToJSValueINS0_11EventTargetEEENS_8EnableIfIXsr8IsBaseOfI14nsWrapperCacheT_EE5valueEbE4TypeEP9JSContextRS5_N2JS13MutableHandleINSB_5ValueEEE Unexecuted instantiation: _ZN7mozilla3dom9ToJSValueINS0_12DOMExceptionEEENS_8EnableIfIXsr8IsBaseOfI14nsWrapperCacheT_EE5valueEbE4TypeEP9JSContextRS5_N2JS13MutableHandleINSB_5ValueEEE Unexecuted instantiation: _ZN7mozilla3dom9ToJSValueI17nsBaseContentListEENS_8EnableIfIXsr8IsBaseOfI14nsWrapperCacheT_EE5valueEbE4TypeEP9JSContextRS5_N2JS13MutableHandleINSB_5ValueEEE Unexecuted instantiation: _ZN7mozilla3dom9ToJSValueINS_14DOMMediaStreamEEENS_8EnableIfIXsr8IsBaseOfI14nsWrapperCacheT_EE5valueEbE4TypeEP9JSContextRS5_N2JS13MutableHandleINSB_5ValueEEE Unexecuted instantiation: _ZN7mozilla3dom9ToJSValueINS0_15MediaDeviceInfoEEENS_8EnableIfIXsr8IsBaseOfI14nsWrapperCacheT_EE5valueEbE4TypeEP9JSContextRS5_N2JS13MutableHandleINSB_5ValueEEE Unexecuted instantiation: _ZN7mozilla3dom9ToJSValueINS0_20MediaKeySystemAccessEEENS_8EnableIfIXsr8IsBaseOfI14nsWrapperCacheT_EE5valueEbE4TypeEP9JSContextRS5_N2JS13MutableHandleINSB_5ValueEEE Unexecuted instantiation: _ZN7mozilla3dom9ToJSValueINS0_15MediaKeySessionEEENS_8EnableIfIXsr8IsBaseOfI14nsWrapperCacheT_EE5valueEbE4TypeEP9JSContextRS5_N2JS13MutableHandleINSB_5ValueEEE Unexecuted instantiation: _ZN7mozilla3dom9ToJSValueINS0_9MediaKeysEEENS_8EnableIfIXsr8IsBaseOfI14nsWrapperCacheT_EE5valueEbE4TypeEP9JSContextRS5_N2JS13MutableHandleINSB_5ValueEEE Unexecuted instantiation: _ZN7mozilla3dom9ToJSValueINS0_11AudioBufferEEENS_8EnableIfIXsr8IsBaseOfI14nsWrapperCacheT_EE5valueEbE4TypeEP9JSContextRS5_N2JS13MutableHandleINSB_5ValueEEE Unexecuted instantiation: _ZN7mozilla3dom9ToJSValueINS0_14RTCCertificateEEENS_8EnableIfIXsr8IsBaseOfI14nsWrapperCacheT_EE5valueEbE4TypeEP9JSContextRS5_N2JS13MutableHandleINSB_5ValueEEE Unexecuted instantiation: _ZN7mozilla3dom9ToJSValueINS0_10MIDIAccessEEENS_8EnableIfIXsr8IsBaseOfI14nsWrapperCacheT_EE5valueEbE4TypeEP9JSContextRS5_N2JS13MutableHandleINSB_5ValueEEE Unexecuted instantiation: _ZN7mozilla3dom9ToJSValueINS0_8MIDIPortEEENS_8EnableIfIXsr8IsBaseOfI14nsWrapperCacheT_EE5valueEbE4TypeEP9JSContextRS5_N2JS13MutableHandleINSB_5ValueEEE Unexecuted instantiation: _ZN7mozilla3dom9ToJSValueINS0_12NotificationEEENS_8EnableIfIXsr8IsBaseOfI14nsWrapperCacheT_EE5valueEbE4TypeEP9JSContextRS5_N2JS13MutableHandleINSB_5ValueEEE Unexecuted instantiation: _ZN7mozilla3dom9ToJSValueINS0_16PushSubscriptionEEENS_8EnableIfIXsr8IsBaseOfI14nsWrapperCacheT_EE5valueEbE4TypeEP9JSContextRS5_N2JS13MutableHandleINSB_5ValueEEE Unexecuted instantiation: _ZN7mozilla3dom9ToJSValueINS0_16PermissionStatusEEENS_8EnableIfIXsr8IsBaseOfI14nsWrapperCacheT_EE5valueEbE4TypeEP9JSContextRS5_N2JS13MutableHandleINSB_5ValueEEE Unexecuted instantiation: _ZN7mozilla3dom9ToJSValueINS0_14IDBMutableFileEEENS_8EnableIfIXsr8IsBaseOfI14nsWrapperCacheT_EE5valueEbE4TypeEP9JSContextRS5_N2JS13MutableHandleINSB_5ValueEEE Unexecuted instantiation: _ZN7mozilla3dom9ToJSValueINS0_17WorkerGlobalScopeEEENS_8EnableIfIXsr8IsBaseOfI14nsWrapperCacheT_EE5valueEbE4TypeEP9JSContextRS5_N2JS13MutableHandleINSB_5ValueEEE Unexecuted instantiation: _ZN7mozilla3dom9ToJSValueINS0_16MediaStreamErrorEEENS_8EnableIfIXsr8IsBaseOfI14nsWrapperCacheT_EE5valueEbE4TypeEP9JSContextRS5_N2JS13MutableHandleINSB_5ValueEEE Unexecuted instantiation: _ZN7mozilla3dom9ToJSValueINS0_19PublicKeyCredentialEEENS_8EnableIfIXsr8IsBaseOfI14nsWrapperCacheT_EE5valueEbE4TypeEP9JSContextRS5_N2JS13MutableHandleINSB_5ValueEEE Unexecuted instantiation: _ZN7mozilla3dom9ToJSValueINS0_16DocumentFragmentEEENS_8EnableIfIXsr8IsBaseOfI14nsWrapperCacheT_EE5valueEbE4TypeEP9JSContextRS5_N2JS13MutableHandleINSB_5ValueEEE Unexecuted instantiation: _ZN7mozilla3dom9ToJSValueINS0_19PerformanceObserverEEENS_8EnableIfIXsr8IsBaseOfI14nsWrapperCacheT_EE5valueEbE4TypeEP9JSContextRS5_N2JS13MutableHandleINSB_5ValueEEE Unexecuted instantiation: _ZN7mozilla3dom9ToJSValueINS0_15PaymentResponseEEENS_8EnableIfIXsr8IsBaseOfI14nsWrapperCacheT_EE5valueEbE4TypeEP9JSContextRS5_N2JS13MutableHandleINSB_5ValueEEE Unexecuted instantiation: _ZN7mozilla3dom9ToJSValueINS0_25ServiceWorkerRegistrationEEENS_8EnableIfIXsr8IsBaseOfI14nsWrapperCacheT_EE5valueEbE4TypeEP9JSContextRS5_N2JS13MutableHandleINSB_5ValueEEE Unexecuted instantiation: _ZN7mozilla3dom9ToJSValueINS0_24PresentationAvailabilityEEENS_8EnableIfIXsr8IsBaseOfI14nsWrapperCacheT_EE5valueEbE4TypeEP9JSContextRS5_N2JS13MutableHandleINSB_5ValueEEE Unexecuted instantiation: _ZN7mozilla3dom9ToJSValueINS0_22PresentationConnectionEEENS_8EnableIfIXsr8IsBaseOfI14nsWrapperCacheT_EE5valueEbE4TypeEP9JSContextRS5_N2JS13MutableHandleINSB_5ValueEEE Unexecuted instantiation: _ZN7mozilla3dom9ToJSValueINS0_26PresentationConnectionListEEENS_8EnableIfIXsr8IsBaseOfI14nsWrapperCacheT_EE5valueEbE4TypeEP9JSContextRS5_N2JS13MutableHandleINSB_5ValueEEE Unexecuted instantiation: _ZN7mozilla3dom9ToJSValueINS0_11FontFaceSetEEENS_8EnableIfIXsr8IsBaseOfI14nsWrapperCacheT_EE5valueEbE4TypeEP9JSContextRS5_N2JS13MutableHandleINSB_5ValueEEE Unexecuted instantiation: _ZN7mozilla3dom9ToJSValueINS0_8FontFaceEEENS_8EnableIfIXsr8IsBaseOfI14nsWrapperCacheT_EE5valueEbE4TypeEP9JSContextRS5_N2JS13MutableHandleINSB_5ValueEEE |
157 | | |
158 | | // Accept non-refcounted DOM objects that do not inherit from |
159 | | // nsWrapperCache. Refcounted ones would be too much of a footgun: |
160 | | // you could convert them to JS twice and get two different objects. |
161 | | namespace binding_detail { |
162 | | template<class T> |
163 | | MOZ_MUST_USE |
164 | | typename EnableIf<IsBaseOf<NonRefcountedDOMObject, T>::value, bool>::Type |
165 | | ToJSValueFromPointerHelper(JSContext* aCx, |
166 | | T* aArgument, |
167 | | JS::MutableHandle<JS::Value> aValue) |
168 | 0 | { |
169 | 0 | // Make sure we're called in a compartment |
170 | 0 | MOZ_ASSERT(JS::CurrentGlobalOrNull(aCx)); |
171 | 0 |
|
172 | 0 | // This is a cut-down version of |
173 | 0 | // WrapNewBindingNonWrapperCachedObject that doesn't need to deal |
174 | 0 | // with nearly as many cases. |
175 | 0 | if (!aArgument) { |
176 | 0 | aValue.setNull(); |
177 | 0 | return true; |
178 | 0 | } |
179 | 0 | |
180 | 0 | JS::Rooted<JSObject*> obj(aCx); |
181 | 0 | if (!aArgument->WrapObject(aCx, nullptr, &obj)) { |
182 | 0 | return false; |
183 | 0 | } |
184 | 0 | |
185 | 0 | aValue.setObject(*obj); |
186 | 0 | return true; |
187 | 0 | } |
188 | | } // namespace binding_detail |
189 | | |
190 | | // We can take a non-refcounted non-wrapper-cached DOM object that lives in an |
191 | | // nsAutoPtr. |
192 | | template<class T> |
193 | | MOZ_MUST_USE |
194 | | typename EnableIf<IsBaseOf<NonRefcountedDOMObject, T>::value, bool>::Type |
195 | | ToJSValue(JSContext* aCx, |
196 | | nsAutoPtr<T>&& aArgument, |
197 | | JS::MutableHandle<JS::Value> aValue) |
198 | | { |
199 | | if (!binding_detail::ToJSValueFromPointerHelper(aCx, aArgument.get(), aValue)) { |
200 | | return false; |
201 | | } |
202 | | |
203 | | // JS object took ownership |
204 | | aArgument.forget(); |
205 | | return true; |
206 | | } |
207 | | |
208 | | // We can take a non-refcounted non-wrapper-cached DOM object that lives in a |
209 | | // UniquePtr. |
210 | | template<class T> |
211 | | MOZ_MUST_USE |
212 | | typename EnableIf<IsBaseOf<NonRefcountedDOMObject, T>::value, bool>::Type |
213 | | ToJSValue(JSContext* aCx, |
214 | | UniquePtr<T>&& aArgument, |
215 | | JS::MutableHandle<JS::Value> aValue) |
216 | 0 | { |
217 | 0 | if (!binding_detail::ToJSValueFromPointerHelper(aCx, aArgument.get(), aValue)) { |
218 | 0 | return false; |
219 | 0 | } |
220 | 0 | |
221 | 0 | // JS object took ownership |
222 | 0 | Unused << aArgument.release(); |
223 | 0 | return true; |
224 | 0 | } |
225 | | |
226 | | // Accept typed arrays built from appropriate nsTArray values |
227 | | template<typename T> |
228 | | MOZ_MUST_USE |
229 | | typename EnableIf<IsBaseOf<AllTypedArraysBase, T>::value, bool>::Type |
230 | | ToJSValue(JSContext* aCx, |
231 | | const TypedArrayCreator<T>& aArgument, |
232 | | JS::MutableHandle<JS::Value> aValue) |
233 | 0 | { |
234 | 0 | // Make sure we're called in a compartment |
235 | 0 | MOZ_ASSERT(JS::CurrentGlobalOrNull(aCx)); |
236 | 0 |
|
237 | 0 | JSObject* obj = aArgument.Create(aCx); |
238 | 0 | if (!obj) { |
239 | 0 | return false; |
240 | 0 | } |
241 | 0 | aValue.setObject(*obj); |
242 | 0 | return true; |
243 | 0 | } Unexecuted instantiation: _ZN7mozilla3dom9ToJSValueINS0_10TypedArrayIfXadL_ZN2js18UnwrapFloat32ArrayEP8JSObjectEEXadL_Z22JS_GetFloat32ArrayDataS5_PbRKN2JS15AutoRequireNoGCEEEXadL_ZNS3_28GetFloat32ArrayLengthAndDataES5_PjS6_PPfEEXadL_Z18JS_NewFloat32ArrayP9JSContextjEEEEEENS_8EnableIfIXsr8IsBaseOfINS0_18AllTypedArraysBaseET_EE5valueEbE4TypeESF_RKNS0_17TypedArrayCreatorISJ_EENS7_13MutableHandleINS7_5ValueEEE Unexecuted instantiation: _ZN7mozilla3dom9ToJSValueINS0_10TypedArrayIdXadL_ZN2js18UnwrapFloat64ArrayEP8JSObjectEEXadL_Z22JS_GetFloat64ArrayDataS5_PbRKN2JS15AutoRequireNoGCEEEXadL_ZNS3_28GetFloat64ArrayLengthAndDataES5_PjS6_PPdEEXadL_Z18JS_NewFloat64ArrayP9JSContextjEEEEEENS_8EnableIfIXsr8IsBaseOfINS0_18AllTypedArraysBaseET_EE5valueEbE4TypeESF_RKNS0_17TypedArrayCreatorISJ_EENS7_13MutableHandleINS7_5ValueEEE Unexecuted instantiation: _ZN7mozilla3dom9ToJSValueINS0_10TypedArrayIhXadL_ZN2js17UnwrapArrayBufferEP8JSObjectEEXadL_Z21JS_GetArrayBufferDataS5_PbRKN2JS15AutoRequireNoGCEEEXadL_ZNS3_27GetArrayBufferLengthAndDataES5_PjS6_PPhEEXadL_Z17JS_NewArrayBufferP9JSContextjEEEEEENS_8EnableIfIXsr8IsBaseOfINS0_18AllTypedArraysBaseET_EE5valueEbE4TypeESF_RKNS0_17TypedArrayCreatorISJ_EENS7_13MutableHandleINS7_5ValueEEE Unexecuted instantiation: _ZN7mozilla3dom9ToJSValueINS0_10TypedArrayIhXadL_ZN2js16UnwrapUint8ArrayEP8JSObjectEEXadL_Z20JS_GetUint8ArrayDataS5_PbRKN2JS15AutoRequireNoGCEEEXadL_ZNS3_26GetUint8ArrayLengthAndDataES5_PjS6_PPhEEXadL_Z16JS_NewUint8ArrayP9JSContextjEEEEEENS_8EnableIfIXsr8IsBaseOfINS0_18AllTypedArraysBaseET_EE5valueEbE4TypeESF_RKNS0_17TypedArrayCreatorISJ_EENS7_13MutableHandleINS7_5ValueEEE |
244 | | |
245 | | // Accept objects that inherit from nsISupports but not nsWrapperCache (e.g. |
246 | | // DOM File). |
247 | | template <class T> |
248 | | MOZ_MUST_USE |
249 | | typename EnableIf<!IsBaseOf<nsWrapperCache, T>::value && |
250 | | !IsBaseOf<CallbackObject, T>::value && |
251 | | IsBaseOf<nsISupports, T>::value, bool>::Type |
252 | | ToJSValue(JSContext* aCx, |
253 | | T& aArgument, |
254 | | JS::MutableHandle<JS::Value> aValue) |
255 | 0 | { |
256 | 0 | // Make sure we're called in a compartment |
257 | 0 | MOZ_ASSERT(JS::CurrentGlobalOrNull(aCx)); |
258 | 0 |
|
259 | 0 | xpcObjectHelper helper(ToSupports(&aArgument)); |
260 | 0 | JS::Rooted<JSObject*> scope(aCx, JS::CurrentGlobalOrNull(aCx)); |
261 | 0 | return XPCOMObjectToJsval(aCx, scope, helper, nullptr, true, aValue); |
262 | 0 | } Unexecuted instantiation: _ZN7mozilla3dom9ToJSValueI11nsISupportsEENS_8EnableIfIXaaaantsr8IsBaseOfI14nsWrapperCacheT_EE5valuentsr8IsBaseOfINS0_14CallbackObjectES5_EE5valuesr8IsBaseOfIS2_S5_EE5valueEbE4TypeEP9JSContextRS5_N2JS13MutableHandleINSC_5ValueEEE Unexecuted instantiation: _ZN7mozilla3dom9ToJSValueINS_19PreloadedStyleSheetEEENS_8EnableIfIXaaaantsr8IsBaseOfI14nsWrapperCacheT_EE5valuentsr8IsBaseOfINS0_14CallbackObjectES5_EE5valuesr8IsBaseOfI11nsISupportsS5_EE5valueEbE4TypeEP9JSContextRS5_N2JS13MutableHandleINSD_5ValueEEE Unexecuted instantiation: _ZN7mozilla3dom9ToJSValueI23nsIWritablePropertyBag2EENS_8EnableIfIXaaaantsr8IsBaseOfI14nsWrapperCacheT_EE5valuentsr8IsBaseOfINS0_14CallbackObjectES5_EE5valuesr8IsBaseOfI11nsISupportsS5_EE5valueEbE4TypeEP9JSContextRS5_N2JS13MutableHandleINSD_5ValueEEE |
263 | | |
264 | | // Accept nsRefPtr/nsCOMPtr |
265 | | template <typename T> |
266 | | MOZ_MUST_USE bool |
267 | | ToJSValue(JSContext* aCx, |
268 | | const nsCOMPtr<T>& aArgument, |
269 | | JS::MutableHandle<JS::Value> aValue) |
270 | 0 | { |
271 | 0 | return ToJSValue(aCx, *aArgument.get(), aValue); |
272 | 0 | } Unexecuted instantiation: bool mozilla::dom::ToJSValue<nsISupports>(JSContext*, nsCOMPtr<nsISupports> const&, JS::MutableHandle<JS::Value>) Unexecuted instantiation: bool mozilla::dom::ToJSValue<nsIContent>(JSContext*, nsCOMPtr<nsIContent> const&, JS::MutableHandle<JS::Value>) |
273 | | |
274 | | template <typename T> |
275 | | MOZ_MUST_USE bool |
276 | | ToJSValue(JSContext* aCx, |
277 | | const RefPtr<T>& aArgument, |
278 | | JS::MutableHandle<JS::Value> aValue) |
279 | 0 | { |
280 | 0 | return ToJSValue(aCx, *aArgument.get(), aValue); |
281 | 0 | } Unexecuted instantiation: bool mozilla::dom::ToJSValue<mozilla::dom::PrecompiledScript>(JSContext*, RefPtr<mozilla::dom::PrecompiledScript> const&, JS::MutableHandle<JS::Value>) Unexecuted instantiation: bool mozilla::dom::ToJSValue<mozilla::dom::Promise>(JSContext*, RefPtr<mozilla::dom::Promise> const&, JS::MutableHandle<JS::Value>) Unexecuted instantiation: bool mozilla::dom::ToJSValue<mozilla::dom::Blob>(JSContext*, RefPtr<mozilla::dom::Blob> const&, JS::MutableHandle<JS::Value>) Unexecuted instantiation: bool mozilla::dom::ToJSValue<mozilla::dom::VRMockDisplay>(JSContext*, RefPtr<mozilla::dom::VRMockDisplay> const&, JS::MutableHandle<JS::Value>) Unexecuted instantiation: bool mozilla::dom::ToJSValue<mozilla::dom::Element>(JSContext*, RefPtr<mozilla::dom::Element> const&, JS::MutableHandle<JS::Value>) Unexecuted instantiation: bool mozilla::dom::ToJSValue<mozilla::dom::battery::BatteryManager>(JSContext*, RefPtr<mozilla::dom::battery::BatteryManager> const&, JS::MutableHandle<JS::Value>) Unexecuted instantiation: bool mozilla::dom::ToJSValue<mozilla::dom::VRDisplay>(JSContext*, RefPtr<mozilla::dom::VRDisplay> const&, JS::MutableHandle<JS::Value>) Unexecuted instantiation: bool mozilla::dom::ToJSValue<mozilla::dom::Directory>(JSContext*, RefPtr<mozilla::dom::Directory> const&, JS::MutableHandle<JS::Value>) Unexecuted instantiation: bool mozilla::dom::ToJSValue<mozilla::dom::FileList>(JSContext*, RefPtr<mozilla::dom::FileList> const&, JS::MutableHandle<JS::Value>) Unexecuted instantiation: bool mozilla::dom::ToJSValue<mozilla::dom::FormData>(JSContext*, RefPtr<mozilla::dom::FormData> const&, JS::MutableHandle<JS::Value>) Unexecuted instantiation: bool mozilla::dom::ToJSValue<mozilla::dom::Exception>(JSContext*, RefPtr<mozilla::dom::Exception> const&, JS::MutableHandle<JS::Value>) Unexecuted instantiation: bool mozilla::dom::ToJSValue<mozilla::dom::cache::Cache>(JSContext*, RefPtr<mozilla::dom::cache::Cache> const&, JS::MutableHandle<JS::Value>) Unexecuted instantiation: bool mozilla::dom::ToJSValue<mozilla::dom::Response>(JSContext*, RefPtr<mozilla::dom::Response> const&, JS::MutableHandle<JS::Value>) Unexecuted instantiation: bool mozilla::dom::ToJSValue<mozilla::dom::Request>(JSContext*, RefPtr<mozilla::dom::Request> const&, JS::MutableHandle<JS::Value>) Unexecuted instantiation: bool mozilla::dom::ToJSValue<mozilla::dom::cache::CacheStorage>(JSContext*, RefPtr<mozilla::dom::cache::CacheStorage> const&, JS::MutableHandle<JS::Value>) Unexecuted instantiation: bool mozilla::dom::ToJSValue<mozilla::dom::ImageBitmap>(JSContext*, RefPtr<mozilla::dom::ImageBitmap> const&, JS::MutableHandle<JS::Value>) Unexecuted instantiation: bool mozilla::dom::ToJSValue<mozilla::dom::Client>(JSContext*, RefPtr<mozilla::dom::Client> const&, JS::MutableHandle<JS::Value>) Unexecuted instantiation: bool mozilla::dom::ToJSValue<mozilla::dom::CryptoKey>(JSContext*, RefPtr<mozilla::dom::CryptoKey> const&, JS::MutableHandle<JS::Value>) Unexecuted instantiation: bool mozilla::dom::ToJSValue<mozilla::dom::DataTransfer>(JSContext*, RefPtr<mozilla::dom::DataTransfer> const&, JS::MutableHandle<JS::Value>) Unexecuted instantiation: bool mozilla::dom::ToJSValue<mozilla::dom::File>(JSContext*, RefPtr<mozilla::dom::File> const&, JS::MutableHandle<JS::Value>) Unexecuted instantiation: bool mozilla::dom::ToJSValue<mozilla::dom::DOMException>(JSContext*, RefPtr<mozilla::dom::DOMException> const&, JS::MutableHandle<JS::Value>) Unexecuted instantiation: bool mozilla::dom::ToJSValue<mozilla::DOMMediaStream>(JSContext*, RefPtr<mozilla::DOMMediaStream> const&, JS::MutableHandle<JS::Value>) Unexecuted instantiation: bool mozilla::dom::ToJSValue<mozilla::dom::MediaDeviceInfo>(JSContext*, RefPtr<mozilla::dom::MediaDeviceInfo> const&, JS::MutableHandle<JS::Value>) Unexecuted instantiation: bool mozilla::dom::ToJSValue<mozilla::dom::MediaKeySystemAccess>(JSContext*, RefPtr<mozilla::dom::MediaKeySystemAccess> const&, JS::MutableHandle<JS::Value>) Unexecuted instantiation: bool mozilla::dom::ToJSValue<mozilla::dom::MediaKeySession>(JSContext*, RefPtr<mozilla::dom::MediaKeySession> const&, JS::MutableHandle<JS::Value>) Unexecuted instantiation: bool mozilla::dom::ToJSValue<mozilla::dom::MediaKeys>(JSContext*, RefPtr<mozilla::dom::MediaKeys> const&, JS::MutableHandle<JS::Value>) Unexecuted instantiation: bool mozilla::dom::ToJSValue<mozilla::dom::AudioBuffer>(JSContext*, RefPtr<mozilla::dom::AudioBuffer> const&, JS::MutableHandle<JS::Value>) Unexecuted instantiation: bool mozilla::dom::ToJSValue<mozilla::dom::RTCCertificate>(JSContext*, RefPtr<mozilla::dom::RTCCertificate> const&, JS::MutableHandle<JS::Value>) Unexecuted instantiation: bool mozilla::dom::ToJSValue<mozilla::dom::Notification>(JSContext*, RefPtr<mozilla::dom::Notification> const&, JS::MutableHandle<JS::Value>) Unexecuted instantiation: bool mozilla::dom::ToJSValue<mozilla::dom::PushSubscription>(JSContext*, RefPtr<mozilla::dom::PushSubscription> const&, JS::MutableHandle<JS::Value>) Unexecuted instantiation: bool mozilla::dom::ToJSValue<mozilla::dom::PermissionStatus>(JSContext*, RefPtr<mozilla::dom::PermissionStatus> const&, JS::MutableHandle<JS::Value>) Unexecuted instantiation: bool mozilla::dom::ToJSValue<mozilla::dom::IDBMutableFile>(JSContext*, RefPtr<mozilla::dom::IDBMutableFile> const&, JS::MutableHandle<JS::Value>) Unexecuted instantiation: bool mozilla::dom::ToJSValue<mozilla::dom::MediaStreamError>(JSContext*, RefPtr<mozilla::dom::MediaStreamError> const&, JS::MutableHandle<JS::Value>) Unexecuted instantiation: bool mozilla::dom::ToJSValue<mozilla::dom::PublicKeyCredential>(JSContext*, RefPtr<mozilla::dom::PublicKeyCredential> const&, JS::MutableHandle<JS::Value>) Unexecuted instantiation: bool mozilla::dom::ToJSValue<mozilla::dom::DocumentFragment>(JSContext*, RefPtr<mozilla::dom::DocumentFragment> const&, JS::MutableHandle<JS::Value>) Unexecuted instantiation: bool mozilla::dom::ToJSValue<mozilla::dom::PaymentResponse>(JSContext*, RefPtr<mozilla::dom::PaymentResponse> const&, JS::MutableHandle<JS::Value>) Unexecuted instantiation: bool mozilla::dom::ToJSValue<mozilla::dom::ServiceWorkerRegistration>(JSContext*, RefPtr<mozilla::dom::ServiceWorkerRegistration> const&, JS::MutableHandle<JS::Value>) Unexecuted instantiation: bool mozilla::dom::ToJSValue<mozilla::dom::PresentationConnection>(JSContext*, RefPtr<mozilla::dom::PresentationConnection> const&, JS::MutableHandle<JS::Value>) Unexecuted instantiation: bool mozilla::dom::ToJSValue<mozilla::dom::PresentationAvailability>(JSContext*, RefPtr<mozilla::dom::PresentationAvailability> const&, JS::MutableHandle<JS::Value>) Unexecuted instantiation: bool mozilla::dom::ToJSValue<mozilla::PreloadedStyleSheet>(JSContext*, RefPtr<mozilla::PreloadedStyleSheet> const&, JS::MutableHandle<JS::Value>) |
282 | | |
283 | | template <typename T> |
284 | | MOZ_MUST_USE bool |
285 | | ToJSValue(JSContext* aCx, |
286 | | const NonNull<T>& aArgument, |
287 | | JS::MutableHandle<JS::Value> aValue) |
288 | | { |
289 | | return ToJSValue(aCx, *aArgument.get(), aValue); |
290 | | } |
291 | | |
292 | | // Accept WebIDL dictionaries |
293 | | template <class T> |
294 | | MOZ_MUST_USE |
295 | | typename EnableIf<IsBaseOf<DictionaryBase, T>::value, bool>::Type |
296 | | ToJSValue(JSContext* aCx, |
297 | | const T& aArgument, |
298 | | JS::MutableHandle<JS::Value> aValue) |
299 | 0 | { |
300 | 0 | return aArgument.ToObjectInternal(aCx, aValue); |
301 | 0 | } Unexecuted instantiation: _ZN7mozilla3dom9ToJSValueINS0_16RootedDictionaryINS0_14IteratorResultEEEEENS_8EnableIfIXsr8IsBaseOfINS0_14DictionaryBaseET_EE5valueEbE4TypeEP9JSContextRKS7_N2JS13MutableHandleINSE_5ValueEEE Unexecuted instantiation: _ZN7mozilla3dom9ToJSValueINS0_7L10nKeyEEENS_8EnableIfIXsr8IsBaseOfINS0_14DictionaryBaseET_EE5valueEbE4TypeEP9JSContextRKS5_N2JS13MutableHandleINSC_5ValueEEE Unexecuted instantiation: _ZN7mozilla3dom9ToJSValueINS0_13DNSLookupDictEEENS_8EnableIfIXsr8IsBaseOfINS0_14DictionaryBaseET_EE5valueEbE4TypeEP9JSContextRKS5_N2JS13MutableHandleINSC_5ValueEEE Unexecuted instantiation: _ZN7mozilla3dom9ToJSValueINS0_11SocketsDictEEENS_8EnableIfIXsr8IsBaseOfINS0_14DictionaryBaseET_EE5valueEbE4TypeEP9JSContextRKS5_N2JS13MutableHandleINSC_5ValueEEE Unexecuted instantiation: _ZN7mozilla3dom9ToJSValueINS0_12HttpConnDictEEENS_8EnableIfIXsr8IsBaseOfINS0_14DictionaryBaseET_EE5valueEbE4TypeEP9JSContextRKS5_N2JS13MutableHandleINSC_5ValueEEE Unexecuted instantiation: _ZN7mozilla3dom9ToJSValueINS0_13WebSocketDictEEENS_8EnableIfIXsr8IsBaseOfINS0_14DictionaryBaseET_EE5valueEbE4TypeEP9JSContextRKS5_N2JS13MutableHandleINSC_5ValueEEE Unexecuted instantiation: _ZN7mozilla3dom9ToJSValueINS0_12DNSCacheDictEEENS_8EnableIfIXsr8IsBaseOfINS0_14DictionaryBaseET_EE5valueEbE4TypeEP9JSContextRKS5_N2JS13MutableHandleINSC_5ValueEEE Unexecuted instantiation: _ZN7mozilla3dom9ToJSValueINS0_10RcwnStatusEEENS_8EnableIfIXsr8IsBaseOfINS0_14DictionaryBaseET_EE5valueEbE4TypeEP9JSContextRKS5_N2JS13MutableHandleINSC_5ValueEEE Unexecuted instantiation: _ZN7mozilla3dom9ToJSValueINS0_14ConnStatusDictEEENS_8EnableIfIXsr8IsBaseOfINS0_14DictionaryBaseET_EE5valueEbE4TypeEP9JSContextRKS5_N2JS13MutableHandleINSC_5ValueEEE Unexecuted instantiation: _ZN7mozilla3dom9ToJSValueINS0_24IOActivityDataDictionaryEEENS_8EnableIfIXsr8IsBaseOfINS0_14DictionaryBaseET_EE5valueEbE4TypeEP9JSContextRKS5_N2JS13MutableHandleINSC_5ValueEEE Unexecuted instantiation: _ZN7mozilla3dom9ToJSValueINS_16OriginAttributesEEENS_8EnableIfIXsr8IsBaseOfINS0_14DictionaryBaseET_EE5valueEbE4TypeEP9JSContextRKS5_N2JS13MutableHandleINSC_5ValueEEE Unexecuted instantiation: _ZN7mozilla3dom9ToJSValueINS0_11APZTestDataEEENS_8EnableIfIXsr8IsBaseOfINS0_14DictionaryBaseET_EE5valueEbE4TypeEP9JSContextRKS5_N2JS13MutableHandleINSC_5ValueEEE Unexecuted instantiation: _ZN7mozilla3dom9ToJSValueINS0_22FrameUniformityResultsEEENS_8EnableIfIXsr8IsBaseOfINS0_14DictionaryBaseET_EE5valueEbE4TypeEP9JSContextRKS5_N2JS13MutableHandleINSC_5ValueEEE Unexecuted instantiation: _ZN7mozilla3dom9ToJSValueINS0_20BaseComputedKeyframeEEENS_8EnableIfIXsr8IsBaseOfINS0_14DictionaryBaseET_EE5valueEbE4TypeEP9JSContextRKS5_N2JS13MutableHandleINSC_5ValueEEE Unexecuted instantiation: _ZN7mozilla3dom9ToJSValueINS0_16RootedDictionaryINS0_22ReceiveMessageArgumentEEEEENS_8EnableIfIXsr8IsBaseOfINS0_14DictionaryBaseET_EE5valueEbE4TypeEP9JSContextRKS7_N2JS13MutableHandleINSE_5ValueEEE Unexecuted instantiation: _ZN7mozilla3dom9ToJSValueINS0_26DOMWindowResizeEventDetailEEENS_8EnableIfIXsr8IsBaseOfINS0_14DictionaryBaseET_EE5valueEbE4TypeEP9JSContextRKS5_N2JS13MutableHandleINSC_5ValueEEE Unexecuted instantiation: _ZN7mozilla3dom9ToJSValueINS0_18DisplayNameOptionsEEENS_8EnableIfIXsr8IsBaseOfINS0_14DictionaryBaseET_EE5valueEbE4TypeEP9JSContextRKS5_N2JS13MutableHandleINSC_5ValueEEE Unexecuted instantiation: _ZN7mozilla3dom9ToJSValueINS0_16RootedDictionaryINS0_24IterableKeyOrValueResultEEEEENS_8EnableIfIXsr8IsBaseOfINS0_14DictionaryBaseET_EE5valueEbE4TypeEP9JSContextRKS7_N2JS13MutableHandleINSE_5ValueEEE Unexecuted instantiation: _ZN7mozilla3dom9ToJSValueINS0_16RootedDictionaryINS0_25IterableKeyAndValueResultEEEEENS_8EnableIfIXsr8IsBaseOfINS0_14DictionaryBaseET_EE5valueEbE4TypeEP9JSContextRKS7_N2JS13MutableHandleINSE_5ValueEEE Unexecuted instantiation: _ZN7mozilla3dom9ToJSValueINS0_21OpenWindowEventDetailEEENS_8EnableIfIXsr8IsBaseOfINS0_14DictionaryBaseET_EE5valueEbE4TypeEP9JSContextRKS5_N2JS13MutableHandleINSC_5ValueEEE Unexecuted instantiation: _ZN7mozilla3dom9ToJSValueINS0_18ChannelPixelLayoutEEENS_8EnableIfIXsr8IsBaseOfINS0_14DictionaryBaseET_EE5valueEbE4TypeEP9JSContextRKS5_N2JS13MutableHandleINSC_5ValueEEE Unexecuted instantiation: _ZN7mozilla3dom9ToJSValueINS0_10JsonWebKeyEEENS_8EnableIfIXsr8IsBaseOfINS0_14DictionaryBaseET_EE5valueEbE4TypeEP9JSContextRKS5_N2JS13MutableHandleINSC_5ValueEEE Unexecuted instantiation: _ZN7mozilla3dom9ToJSValueINS0_15AesKeyAlgorithmEEENS_8EnableIfIXsr8IsBaseOfINS0_14DictionaryBaseET_EE5valueEbE4TypeEP9JSContextRKS5_N2JS13MutableHandleINSC_5ValueEEE Unexecuted instantiation: _ZN7mozilla3dom9ToJSValueINS0_16HmacKeyAlgorithmEEENS_8EnableIfIXsr8IsBaseOfINS0_14DictionaryBaseET_EE5valueEbE4TypeEP9JSContextRKS5_N2JS13MutableHandleINSC_5ValueEEE Unexecuted instantiation: _ZN7mozilla3dom9ToJSValueINS0_16RootedDictionaryINS0_21RsaHashedKeyAlgorithmEEEEENS_8EnableIfIXsr8IsBaseOfINS0_14DictionaryBaseET_EE5valueEbE4TypeEP9JSContextRKS7_N2JS13MutableHandleINSE_5ValueEEE Unexecuted instantiation: _ZN7mozilla3dom9ToJSValueINS0_14EcKeyAlgorithmEEENS_8EnableIfIXsr8IsBaseOfINS0_14DictionaryBaseET_EE5valueEbE4TypeEP9JSContextRKS5_N2JS13MutableHandleINSC_5ValueEEE Unexecuted instantiation: _ZN7mozilla3dom9ToJSValueINS0_16RootedDictionaryINS0_14DhKeyAlgorithmEEEEENS_8EnableIfIXsr8IsBaseOfINS0_14DictionaryBaseET_EE5valueEbE4TypeEP9JSContextRKS7_N2JS13MutableHandleINSE_5ValueEEE Unexecuted instantiation: _ZN7mozilla3dom9ToJSValueINS0_13CryptoKeyPairEEENS_8EnableIfIXsr8IsBaseOfINS0_14DictionaryBaseET_EE5valueEbE4TypeEP9JSContextRKS5_N2JS13MutableHandleINSC_5ValueEEE Unexecuted instantiation: _ZN7mozilla3dom9ToJSValueINS0_29BrowserElementDownloadOptionsEEENS_8EnableIfIXsr8IsBaseOfINS0_14DictionaryBaseET_EE5valueEbE4TypeEP9JSContextRKS5_N2JS13MutableHandleINSC_5ValueEEE Unexecuted instantiation: _ZN7mozilla3dom9ToJSValueINS0_34BrowserElementExecuteScriptOptionsEEENS_8EnableIfIXsr8IsBaseOfINS0_14DictionaryBaseET_EE5valueEbE4TypeEP9JSContextRKS5_N2JS13MutableHandleINSC_5ValueEEE Unexecuted instantiation: _ZN7mozilla3dom9ToJSValueINS0_15StorageEstimateEEENS_8EnableIfIXsr8IsBaseOfINS0_14DictionaryBaseET_EE5valueEbE4TypeEP9JSContextRKS5_N2JS13MutableHandleINSC_5ValueEEE Unexecuted instantiation: _ZN7mozilla3dom9ToJSValueINS0_16RootedDictionaryINS0_19ConsoleProfileEventEEEEENS_8EnableIfIXsr8IsBaseOfINS0_14DictionaryBaseET_EE5valueEbE4TypeEP9JSContextRKS7_N2JS13MutableHandleINSE_5ValueEEE Unexecuted instantiation: _ZN7mozilla3dom9ToJSValueINS0_17ConsoleStackEntryEEENS_8EnableIfIXsr8IsBaseOfINS0_14DictionaryBaseET_EE5valueEbE4TypeEP9JSContextRKS5_N2JS13MutableHandleINSC_5ValueEEE Unexecuted instantiation: _ZN7mozilla3dom9ToJSValueINS0_16RootedDictionaryINS0_12ConsoleEventEEEEENS_8EnableIfIXsr8IsBaseOfINS0_14DictionaryBaseET_EE5valueEbE4TypeEP9JSContextRKS7_N2JS13MutableHandleINSE_5ValueEEE Unexecuted instantiation: _ZN7mozilla3dom9ToJSValueINS0_16RootedDictionaryINS0_17ConsoleTimerStartEEEEENS_8EnableIfIXsr8IsBaseOfINS0_14DictionaryBaseET_EE5valueEbE4TypeEP9JSContextRKS7_N2JS13MutableHandleINSE_5ValueEEE Unexecuted instantiation: _ZN7mozilla3dom9ToJSValueINS0_16RootedDictionaryINS0_20ConsoleTimerLogOrEndEEEEENS_8EnableIfIXsr8IsBaseOfINS0_14DictionaryBaseET_EE5valueEbE4TypeEP9JSContextRKS7_N2JS13MutableHandleINSE_5ValueEEE Unexecuted instantiation: _ZN7mozilla3dom9ToJSValueINS0_16RootedDictionaryINS0_17ConsoleTimerErrorEEEEENS_8EnableIfIXsr8IsBaseOfINS0_14DictionaryBaseET_EE5valueEbE4TypeEP9JSContextRKS7_N2JS13MutableHandleINSE_5ValueEEE Unexecuted instantiation: _ZN7mozilla3dom9ToJSValueINS0_16RootedDictionaryINS0_19ConsoleCounterErrorEEEEENS_8EnableIfIXsr8IsBaseOfINS0_14DictionaryBaseET_EE5valueEbE4TypeEP9JSContextRKS7_N2JS13MutableHandleINSE_5ValueEEE Unexecuted instantiation: _ZN7mozilla3dom9ToJSValueINS0_16RootedDictionaryINS0_14ConsoleCounterEEEEENS_8EnableIfIXsr8IsBaseOfINS0_14DictionaryBaseET_EE5valueEbE4TypeEP9JSContextRKS7_N2JS13MutableHandleINSE_5ValueEEE Unexecuted instantiation: _ZN7mozilla3dom9ToJSValueINS0_13AddressErrorsEEENS_8EnableIfIXsr8IsBaseOfINS0_14DictionaryBaseET_EE5valueEbE4TypeEP9JSContextRKS5_N2JS13MutableHandleINSC_5ValueEEE Unexecuted instantiation: _ZN7mozilla3dom9ToJSValueINS0_16PayerErrorFieldsEEENS_8EnableIfIXsr8IsBaseOfINS0_14DictionaryBaseET_EE5valueEbE4TypeEP9JSContextRKS5_N2JS13MutableHandleINSC_5ValueEEE Unexecuted instantiation: _ZN7mozilla3dom9ToJSValueINS0_13DateTimeValueEEENS_8EnableIfIXsr8IsBaseOfINS0_14DictionaryBaseET_EE5valueEbE4TypeEP9JSContextRKS5_N2JS13MutableHandleINSC_5ValueEEE Unexecuted instantiation: _ZN7mozilla3dom9ToJSValueINS0_21ProfileTimelineMarkerEEENS_8EnableIfIXsr8IsBaseOfINS0_14DictionaryBaseET_EE5valueEbE4TypeEP9JSContextRKS5_N2JS13MutableHandleINSC_5ValueEEE Unexecuted instantiation: _ZN7mozilla3dom9ToJSValueINS0_16RootedDictionaryINS0_25ProfileTimelineStackFrameEEEEENS_8EnableIfIXsr8IsBaseOfINS0_14DictionaryBaseET_EE5valueEbE4TypeEP9JSContextRKS7_N2JS13MutableHandleINSE_5ValueEEE Unexecuted instantiation: _ZN7mozilla3dom9ToJSValueINS0_25PerformanceInfoDictionaryEEENS_8EnableIfIXsr8IsBaseOfINS0_14DictionaryBaseET_EE5valueEbE4TypeEP9JSContextRKS5_N2JS13MutableHandleINSC_5ValueEEE |
302 | | |
303 | | // Accept existing JS values (which may not be same-compartment with us |
304 | | MOZ_MUST_USE inline bool |
305 | | ToJSValue(JSContext* aCx, const JS::Value& aArgument, |
306 | | JS::MutableHandle<JS::Value> aValue) |
307 | 0 | { |
308 | 0 | aValue.set(aArgument); |
309 | 0 | return MaybeWrapValue(aCx, aValue); |
310 | 0 | } |
311 | | MOZ_MUST_USE inline bool |
312 | | ToJSValue(JSContext* aCx, JS::Handle<JS::Value> aArgument, |
313 | | JS::MutableHandle<JS::Value> aValue) |
314 | 0 | { |
315 | 0 | aValue.set(aArgument); |
316 | 0 | return MaybeWrapValue(aCx, aValue); |
317 | 0 | } |
318 | | |
319 | | // Accept existing JS values on the Heap (which may not be same-compartment with us |
320 | | MOZ_MUST_USE inline bool |
321 | | ToJSValue(JSContext* aCx, const JS::Heap<JS::Value>& aArgument, |
322 | | JS::MutableHandle<JS::Value> aValue) |
323 | 0 | { |
324 | 0 | aValue.set(aArgument); |
325 | 0 | return MaybeWrapValue(aCx, aValue); |
326 | 0 | } |
327 | | |
328 | | // Accept existing rooted JS values (which may not be same-compartment with us |
329 | | MOZ_MUST_USE inline bool |
330 | | ToJSValue(JSContext* aCx, const JS::Rooted<JS::Value>& aArgument, |
331 | | JS::MutableHandle<JS::Value> aValue) |
332 | 0 | { |
333 | 0 | aValue.set(aArgument); |
334 | 0 | return MaybeWrapValue(aCx, aValue); |
335 | 0 | } |
336 | | |
337 | | // Accept existing rooted JS objects (which may not be same-compartment with |
338 | | // us). |
339 | | MOZ_MUST_USE inline bool |
340 | | ToJSValue(JSContext* aCx, const JS::Rooted<JSObject*>& aArgument, |
341 | | JS::MutableHandle<JS::Value> aValue) |
342 | 0 | { |
343 | 0 | aValue.setObjectOrNull(aArgument); |
344 | 0 | return MaybeWrapObjectOrNullValue(aCx, aValue); |
345 | 0 | } |
346 | | |
347 | | // Accept nsresult, for use in rejections, and create an XPCOM |
348 | | // exception object representing that nsresult. |
349 | | MOZ_MUST_USE bool |
350 | | ToJSValue(JSContext* aCx, |
351 | | nsresult aArgument, |
352 | | JS::MutableHandle<JS::Value> aValue); |
353 | | |
354 | | // Accept ErrorResult, for use in rejections, and create an exception |
355 | | // representing the failure. Note, the ErrorResult must indicate a failure |
356 | | // with aArgument.Failure() returning true. |
357 | | MOZ_MUST_USE bool |
358 | | ToJSValue(JSContext* aCx, |
359 | | ErrorResult& aArgument, |
360 | | JS::MutableHandle<JS::Value> aValue); |
361 | | |
362 | | // Accept owning WebIDL unions. |
363 | | template <typename T> |
364 | | MOZ_MUST_USE |
365 | | typename EnableIf<IsBaseOf<AllOwningUnionBase, T>::value, bool>::Type |
366 | | ToJSValue(JSContext* aCx, |
367 | | const T& aArgument, |
368 | | JS::MutableHandle<JS::Value> aValue) |
369 | 0 | { |
370 | 0 | JS::Rooted<JSObject*> global(aCx, JS::CurrentGlobalOrNull(aCx)); |
371 | 0 | return aArgument.ToJSVal(aCx, global, aValue); |
372 | 0 | } Unexecuted instantiation: _ZN7mozilla3dom9ToJSValueINS0_32OwningBlobOrDirectoryOrUSVStringEEENS_8EnableIfIXsr8IsBaseOfINS0_18AllOwningUnionBaseET_EE5valueEbE4TypeEP9JSContextRKS5_N2JS13MutableHandleINSC_5ValueEEE Unexecuted instantiation: _ZN7mozilla3dom9ToJSValueINS0_21OwningFileOrDirectoryEEENS_8EnableIfIXsr8IsBaseOfINS0_18AllOwningUnionBaseET_EE5valueEbE4TypeEP9JSContextRKS5_N2JS13MutableHandleINSC_5ValueEEE |
373 | | |
374 | | // Accept pointers to other things we accept |
375 | | template <typename T> |
376 | | MOZ_MUST_USE |
377 | | typename EnableIf<IsPointer<T>::value, bool>::Type |
378 | | ToJSValue(JSContext* aCx, |
379 | | T aArgument, |
380 | | JS::MutableHandle<JS::Value> aValue) |
381 | 0 | { |
382 | 0 | return ToJSValue(aCx, *aArgument, aValue); |
383 | 0 | } Unexecuted instantiation: _ZN7mozilla3dom9ToJSValueIPNS0_16VRMockControllerEEENS_8EnableIfIXsr9IsPointerIT_EE5valueEbE4TypeEP9JSContextS5_N2JS13MutableHandleINSA_5ValueEEE Unexecuted instantiation: _ZN7mozilla3dom9ToJSValueIPNS0_9AnimationEEENS_8EnableIfIXsr9IsPointerIT_EE5valueEbE4TypeEP9JSContextS5_N2JS13MutableHandleINSA_5ValueEEE Unexecuted instantiation: _ZN7mozilla3dom9ToJSValueIPNS0_23DOMIntersectionObserverEEENS_8EnableIfIXsr9IsPointerIT_EE5valueEbE4TypeEP9JSContextS5_N2JS13MutableHandleINSA_5ValueEEE Unexecuted instantiation: _ZN7mozilla3dom9ToJSValueIPNS0_7ElementEEENS_8EnableIfIXsr9IsPointerIT_EE5valueEbE4TypeEP9JSContextS5_N2JS13MutableHandleINSA_5ValueEEE Unexecuted instantiation: _ZN7mozilla3dom9ToJSValueIP19nsGlobalWindowOuterEENS_8EnableIfIXsr9IsPointerIT_EE5valueEbE4TypeEP9JSContextS5_N2JS13MutableHandleINSA_5ValueEEE Unexecuted instantiation: _ZN7mozilla3dom9ToJSValueIP21nsDOMMutationObserverEENS_8EnableIfIXsr9IsPointerIT_EE5valueEbE4TypeEP9JSContextS5_N2JS13MutableHandleINSA_5ValueEEE Unexecuted instantiation: _ZN7mozilla3dom9ToJSValueIP11nsIDocumentEENS_8EnableIfIXsr9IsPointerIT_EE5valueEbE4TypeEP9JSContextS5_N2JS13MutableHandleINSA_5ValueEEE Unexecuted instantiation: _ZN7mozilla3dom9ToJSValueIPNS0_7PromiseEEENS_8EnableIfIXsr9IsPointerIT_EE5valueEbE4TypeEP9JSContextS5_N2JS13MutableHandleINSA_5ValueEEE Unexecuted instantiation: _ZN7mozilla3dom9ToJSValueIPNS0_13AudioParamMapEEENS_8EnableIfIXsr9IsPointerIT_EE5valueEbE4TypeEP9JSContextS5_N2JS13MutableHandleINSA_5ValueEEE Unexecuted instantiation: _ZN7mozilla3dom9ToJSValueIPNS0_12MIDIInputMapEEENS_8EnableIfIXsr9IsPointerIT_EE5valueEbE4TypeEP9JSContextS5_N2JS13MutableHandleINSA_5ValueEEE Unexecuted instantiation: _ZN7mozilla3dom9ToJSValueIPNS0_13MIDIOutputMapEEENS_8EnableIfIXsr9IsPointerIT_EE5valueEbE4TypeEP9JSContextS5_N2JS13MutableHandleINSA_5ValueEEE Unexecuted instantiation: _ZN7mozilla3dom9ToJSValueIPNS0_14RTCStatsReportEEENS_8EnableIfIXsr9IsPointerIT_EE5valueEbE4TypeEP9JSContextS5_N2JS13MutableHandleINSA_5ValueEEE Unexecuted instantiation: _ZN7mozilla3dom9ToJSValueIPNS0_11EventTargetEEENS_8EnableIfIXsr9IsPointerIT_EE5valueEbE4TypeEP9JSContextS5_N2JS13MutableHandleINSA_5ValueEEE Unexecuted instantiation: _ZN7mozilla3dom9ToJSValueIP11nsISupportsEENS_8EnableIfIXsr9IsPointerIT_EE5valueEbE4TypeEP9JSContextS5_N2JS13MutableHandleINSA_5ValueEEE Unexecuted instantiation: _ZN7mozilla3dom9ToJSValueIP17nsBaseContentListEENS_8EnableIfIXsr9IsPointerIT_EE5valueEbE4TypeEP9JSContextS5_N2JS13MutableHandleINSA_5ValueEEE Unexecuted instantiation: _ZN7mozilla3dom9ToJSValueIP10nsIContentEENS_8EnableIfIXsr9IsPointerIT_EE5valueEbE4TypeEP9JSContextS5_N2JS13MutableHandleINSA_5ValueEEE Unexecuted instantiation: _ZN7mozilla3dom9ToJSValueIPNS0_11AudioBufferEEENS_8EnableIfIXsr9IsPointerIT_EE5valueEbE4TypeEP9JSContextS5_N2JS13MutableHandleINSA_5ValueEEE Unexecuted instantiation: _ZN7mozilla3dom9ToJSValueIPNS0_10MIDIAccessEEENS_8EnableIfIXsr9IsPointerIT_EE5valueEbE4TypeEP9JSContextS5_N2JS13MutableHandleINSA_5ValueEEE Unexecuted instantiation: _ZN7mozilla3dom9ToJSValueIPNS0_8MIDIPortEEENS_8EnableIfIXsr9IsPointerIT_EE5valueEbE4TypeEP9JSContextS5_N2JS13MutableHandleINSA_5ValueEEE Unexecuted instantiation: _ZN7mozilla3dom9ToJSValueIPNS0_17WorkerGlobalScopeEEENS_8EnableIfIXsr9IsPointerIT_EE5valueEbE4TypeEP9JSContextS5_N2JS13MutableHandleINSA_5ValueEEE Unexecuted instantiation: _ZN7mozilla3dom9ToJSValueIPNS0_19PerformanceObserverEEENS_8EnableIfIXsr9IsPointerIT_EE5valueEbE4TypeEP9JSContextS5_N2JS13MutableHandleINSA_5ValueEEE Unexecuted instantiation: _ZN7mozilla3dom9ToJSValueIPNS0_24PresentationAvailabilityEEENS_8EnableIfIXsr9IsPointerIT_EE5valueEbE4TypeEP9JSContextS5_N2JS13MutableHandleINSA_5ValueEEE Unexecuted instantiation: _ZN7mozilla3dom9ToJSValueIPNS0_26PresentationConnectionListEEENS_8EnableIfIXsr9IsPointerIT_EE5valueEbE4TypeEP9JSContextS5_N2JS13MutableHandleINSA_5ValueEEE Unexecuted instantiation: _ZN7mozilla3dom9ToJSValueIPNS0_11FontFaceSetEEENS_8EnableIfIXsr9IsPointerIT_EE5valueEbE4TypeEP9JSContextS5_N2JS13MutableHandleINSA_5ValueEEE Unexecuted instantiation: _ZN7mozilla3dom9ToJSValueIPNS0_8FontFaceEEENS_8EnableIfIXsr9IsPointerIT_EE5valueEbE4TypeEP9JSContextS5_N2JS13MutableHandleINSA_5ValueEEE Unexecuted instantiation: _ZN7mozilla3dom9ToJSValueIP23nsIWritablePropertyBag2EENS_8EnableIfIXsr9IsPointerIT_EE5valueEbE4TypeEP9JSContextS5_N2JS13MutableHandleINSA_5ValueEEE |
384 | | |
385 | | // Accept Promise objects, which need special handling. |
386 | | MOZ_MUST_USE bool |
387 | | ToJSValue(JSContext* aCx, |
388 | | Promise& aArgument, |
389 | | JS::MutableHandle<JS::Value> aValue); |
390 | | |
391 | | // Accept arrays (and nested arrays) of other things we accept |
392 | | template <typename T> |
393 | | MOZ_MUST_USE bool |
394 | | ToJSValue(JSContext* aCx, |
395 | | T* aArguments, |
396 | | size_t aLength, |
397 | | JS::MutableHandle<JS::Value> aValue); |
398 | | |
399 | | template <typename T> |
400 | | MOZ_MUST_USE bool |
401 | | ToJSValue(JSContext* aCx, |
402 | | const nsTArray<T>& aArgument, |
403 | | JS::MutableHandle<JS::Value> aValue) |
404 | 0 | { |
405 | 0 | return ToJSValue(aCx, aArgument.Elements(), |
406 | 0 | aArgument.Length(), aValue); |
407 | 0 | } Unexecuted instantiation: bool mozilla::dom::ToJSValue<nsTString<char16_t> >(JSContext*, nsTArray<nsTString<char16_t> > const&, JS::MutableHandle<JS::Value>) Unexecuted instantiation: bool mozilla::dom::ToJSValue<RefPtr<mozilla::dom::VRDisplay> >(JSContext*, nsTArray<RefPtr<mozilla::dom::VRDisplay> > const&, JS::MutableHandle<JS::Value>) Unexecuted instantiation: bool mozilla::dom::ToJSValue<RefPtr<mozilla::dom::Response> >(JSContext*, nsTArray<RefPtr<mozilla::dom::Response> > const&, JS::MutableHandle<JS::Value>) Unexecuted instantiation: bool mozilla::dom::ToJSValue<RefPtr<mozilla::dom::Request> >(JSContext*, nsTArray<RefPtr<mozilla::dom::Request> > const&, JS::MutableHandle<JS::Value>) Unexecuted instantiation: bool mozilla::dom::ToJSValue<mozilla::dom::ChannelPixelLayout>(JSContext*, nsTArray<mozilla::dom::ChannelPixelLayout> const&, JS::MutableHandle<JS::Value>) Unexecuted instantiation: bool mozilla::dom::ToJSValue<RefPtr<mozilla::dom::Client> >(JSContext*, nsTArray<RefPtr<mozilla::dom::Client> > const&, JS::MutableHandle<JS::Value>) Unexecuted instantiation: bool mozilla::dom::ToJSValue<RefPtr<mozilla::dom::Element> >(JSContext*, nsTArray<RefPtr<mozilla::dom::Element> > const&, JS::MutableHandle<JS::Value>) Unexecuted instantiation: bool mozilla::dom::ToJSValue<RefPtr<mozilla::dom::MediaDeviceInfo> >(JSContext*, nsTArray<RefPtr<mozilla::dom::MediaDeviceInfo> > const&, JS::MutableHandle<JS::Value>) Unexecuted instantiation: bool mozilla::dom::ToJSValue<RefPtr<mozilla::dom::Notification> >(JSContext*, nsTArray<RefPtr<mozilla::dom::Notification> > const&, JS::MutableHandle<JS::Value>) Unexecuted instantiation: bool mozilla::dom::ToJSValue<mozilla::dom::ConsoleStackEntry>(JSContext*, nsTArray<mozilla::dom::ConsoleStackEntry> const&, JS::MutableHandle<JS::Value>) Unexecuted instantiation: bool mozilla::dom::ToJSValue<RefPtr<mozilla::dom::ServiceWorkerRegistration> >(JSContext*, nsTArray<RefPtr<mozilla::dom::ServiceWorkerRegistration> > const&, JS::MutableHandle<JS::Value>) Unexecuted instantiation: bool mozilla::dom::ToJSValue<mozilla::dom::ProfileTimelineMarker>(JSContext*, nsTArray<mozilla::dom::ProfileTimelineMarker> const&, JS::MutableHandle<JS::Value>) Unexecuted instantiation: bool mozilla::dom::ToJSValue<unsigned char>(JSContext*, nsTArray<unsigned char> const&, JS::MutableHandle<JS::Value>) |
408 | | |
409 | | template <typename T> |
410 | | MOZ_MUST_USE bool |
411 | | ToJSValue(JSContext* aCx, |
412 | | const FallibleTArray<T>& aArgument, |
413 | | JS::MutableHandle<JS::Value> aValue) |
414 | 0 | { |
415 | 0 | return ToJSValue(aCx, aArgument.Elements(), |
416 | 0 | aArgument.Length(), aValue); |
417 | 0 | } Unexecuted instantiation: bool mozilla::dom::ToJSValue<mozilla::dom::IOActivityDataDictionary>(JSContext*, FallibleTArray<mozilla::dom::IOActivityDataDictionary> const&, JS::MutableHandle<JS::Value>) Unexecuted instantiation: bool mozilla::dom::ToJSValue<nsTString<char16_t> >(JSContext*, FallibleTArray<nsTString<char16_t> > const&, JS::MutableHandle<JS::Value>) Unexecuted instantiation: bool mozilla::dom::ToJSValue<RefPtr<mozilla::dom::File> >(JSContext*, FallibleTArray<RefPtr<mozilla::dom::File> > const&, JS::MutableHandle<JS::Value>) Unexecuted instantiation: bool mozilla::dom::ToJSValue<mozilla::dom::OwningFileOrDirectory>(JSContext*, FallibleTArray<mozilla::dom::OwningFileOrDirectory> const&, JS::MutableHandle<JS::Value>) Unexecuted instantiation: bool mozilla::dom::ToJSValue<mozilla::dom::PerformanceInfoDictionary>(JSContext*, FallibleTArray<mozilla::dom::PerformanceInfoDictionary> const&, JS::MutableHandle<JS::Value>) |
418 | | |
419 | | template <typename T, int N> |
420 | | MOZ_MUST_USE bool |
421 | | ToJSValue(JSContext* aCx, |
422 | | const T(&aArgument)[N], |
423 | | JS::MutableHandle<JS::Value> aValue) |
424 | 0 | { |
425 | 0 | return ToJSValue(aCx, aArgument, N, aValue); |
426 | 0 | } Unexecuted instantiation: bool mozilla::dom::ToJSValue<double, 6>(JSContext*, double const (&) [6], JS::MutableHandle<JS::Value>) Unexecuted instantiation: bool mozilla::dom::ToJSValue<bool, 4>(JSContext*, bool const (&) [4], JS::MutableHandle<JS::Value>) |
427 | | |
428 | | // Accept arrays of other things we accept |
429 | | template <typename T> |
430 | | MOZ_MUST_USE bool |
431 | | ToJSValue(JSContext* aCx, |
432 | | T* aArguments, |
433 | | size_t aLength, |
434 | | JS::MutableHandle<JS::Value> aValue) |
435 | 0 | { |
436 | 0 | // Make sure we're called in a compartment |
437 | 0 | MOZ_ASSERT(JS::CurrentGlobalOrNull(aCx)); |
438 | 0 |
|
439 | 0 | JS::AutoValueVector v(aCx); |
440 | 0 | if (!v.resize(aLength)) { |
441 | 0 | return false; |
442 | 0 | } |
443 | 0 | for (size_t i = 0; i < aLength; ++i) { |
444 | 0 | if (!ToJSValue(aCx, aArguments[i], v[i])) { |
445 | 0 | return false; |
446 | 0 | } |
447 | 0 | } |
448 | 0 | JSObject* arrayObj = JS_NewArrayObject(aCx, v); |
449 | 0 | if (!arrayObj) { |
450 | 0 | return false; |
451 | 0 | } |
452 | 0 | aValue.setObject(*arrayObj); |
453 | 0 | return true; |
454 | 0 | } Unexecuted instantiation: bool mozilla::dom::ToJSValue<mozilla::dom::IOActivityDataDictionary const>(JSContext*, mozilla::dom::IOActivityDataDictionary const*, unsigned long, JS::MutableHandle<JS::Value>) Unexecuted instantiation: bool mozilla::dom::ToJSValue<nsTString<char16_t> const>(JSContext*, nsTString<char16_t> const*, unsigned long, JS::MutableHandle<JS::Value>) Unexecuted instantiation: bool mozilla::dom::ToJSValue<RefPtr<mozilla::dom::VRDisplay> const>(JSContext*, RefPtr<mozilla::dom::VRDisplay> const*, unsigned long, JS::MutableHandle<JS::Value>) Unexecuted instantiation: bool mozilla::dom::ToJSValue<RefPtr<mozilla::dom::Response> const>(JSContext*, RefPtr<mozilla::dom::Response> const*, unsigned long, JS::MutableHandle<JS::Value>) Unexecuted instantiation: bool mozilla::dom::ToJSValue<RefPtr<mozilla::dom::Request> const>(JSContext*, RefPtr<mozilla::dom::Request> const*, unsigned long, JS::MutableHandle<JS::Value>) Unexecuted instantiation: bool mozilla::dom::ToJSValue<double const>(JSContext*, double const*, unsigned long, JS::MutableHandle<JS::Value>) Unexecuted instantiation: bool mozilla::dom::ToJSValue<mozilla::dom::ChannelPixelLayout const>(JSContext*, mozilla::dom::ChannelPixelLayout const*, unsigned long, JS::MutableHandle<JS::Value>) Unexecuted instantiation: bool mozilla::dom::ToJSValue<bool const>(JSContext*, bool const*, unsigned long, JS::MutableHandle<JS::Value>) Unexecuted instantiation: bool mozilla::dom::ToJSValue<bool>(JSContext*, bool*, unsigned long, JS::MutableHandle<JS::Value>) Unexecuted instantiation: bool mozilla::dom::ToJSValue<RefPtr<mozilla::dom::Client> const>(JSContext*, RefPtr<mozilla::dom::Client> const*, unsigned long, JS::MutableHandle<JS::Value>) Unexecuted instantiation: bool mozilla::dom::ToJSValue<RefPtr<mozilla::dom::File> const>(JSContext*, RefPtr<mozilla::dom::File> const*, unsigned long, JS::MutableHandle<JS::Value>) Unexecuted instantiation: bool mozilla::dom::ToJSValue<mozilla::dom::OwningFileOrDirectory const>(JSContext*, mozilla::dom::OwningFileOrDirectory const*, unsigned long, JS::MutableHandle<JS::Value>) Unexecuted instantiation: bool mozilla::dom::ToJSValue<RefPtr<mozilla::dom::Element> const>(JSContext*, RefPtr<mozilla::dom::Element> const*, unsigned long, JS::MutableHandle<JS::Value>) Unexecuted instantiation: bool mozilla::dom::ToJSValue<RefPtr<mozilla::dom::MediaDeviceInfo> const>(JSContext*, RefPtr<mozilla::dom::MediaDeviceInfo> const*, unsigned long, JS::MutableHandle<JS::Value>) Unexecuted instantiation: bool mozilla::dom::ToJSValue<RefPtr<mozilla::dom::Notification> const>(JSContext*, RefPtr<mozilla::dom::Notification> const*, unsigned long, JS::MutableHandle<JS::Value>) Unexecuted instantiation: bool mozilla::dom::ToJSValue<mozilla::dom::ConsoleStackEntry const>(JSContext*, mozilla::dom::ConsoleStackEntry const*, unsigned long, JS::MutableHandle<JS::Value>) Unexecuted instantiation: bool mozilla::dom::ToJSValue<RefPtr<mozilla::dom::ServiceWorkerRegistration> const>(JSContext*, RefPtr<mozilla::dom::ServiceWorkerRegistration> const*, unsigned long, JS::MutableHandle<JS::Value>) Unexecuted instantiation: bool mozilla::dom::ToJSValue<mozilla::dom::ProfileTimelineMarker const>(JSContext*, mozilla::dom::ProfileTimelineMarker const*, unsigned long, JS::MutableHandle<JS::Value>) Unexecuted instantiation: bool mozilla::dom::ToJSValue<unsigned char const>(JSContext*, unsigned char const*, unsigned long, JS::MutableHandle<JS::Value>) Unexecuted instantiation: bool mozilla::dom::ToJSValue<mozilla::dom::PerformanceInfoDictionary const>(JSContext*, mozilla::dom::PerformanceInfoDictionary const*, unsigned long, JS::MutableHandle<JS::Value>) |
455 | | |
456 | | } // namespace dom |
457 | | } // namespace mozilla |
458 | | |
459 | | #endif /* mozilla_dom_ToJSValue_h */ |