1/*
2 This file is part of the WebKit open source project.
3 This file has been generated by generate-bindings.pl. DO NOT MODIFY!
4
5 This library is free software; you can redistribute it and/or
6 modify it under the terms of the GNU Library General Public
7 License as published by the Free Software Foundation; either
8 version 2 of the License, or (at your option) any later version.
9
10 This library is distributed in the hope that it will be useful,
11 but WITHOUT ANY WARRANTY; without even the implied warranty of
12 MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
13 Library General Public License for more details.
14
15 You should have received a copy of the GNU Library General Public License
16 along with this library; see the file COPYING.LIB. If not, write to
17 the Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor,
18 Boston, MA 02110-1301, USA.
19*/
20
21#include "config.h"
22#include "JSFetchRequestInit.h"
23
24#include "JSBlob.h"
25#include "JSDOMConvertAny.h"
26#include "JSDOMConvertBoolean.h"
27#include "JSDOMConvertBufferSource.h"
28#include "JSDOMConvertEnumeration.h"
29#include "JSDOMConvertInterface.h"
30#include "JSDOMConvertNullable.h"
31#include "JSDOMConvertRecord.h"
32#include "JSDOMConvertSequences.h"
33#include "JSDOMConvertStrings.h"
34#include "JSDOMConvertUnion.h"
35#include "JSDOMFormData.h"
36#include "JSFetchReferrerPolicy.h"
37#include "JSFetchRequestCache.h"
38#include "JSFetchRequestCredentials.h"
39#include "JSFetchRequestMode.h"
40#include "JSFetchRequestRedirect.h"
41#include "JSReadableStream.h"
42#include "JSURLSearchParams.h"
43#include <JavaScriptCore/JSArray.h>
44#include <JavaScriptCore/JSCInlines.h>
45#include <wtf/Variant.h>
46#include <wtf/Vector.h>
47
48
49namespace WebCore {
50using namespace JSC;
51
52template<> FetchRequestInit convertDictionary<FetchRequestInit>(ExecState& state, JSValue value)
53{
54 VM& vm = state.vm();
55 auto throwScope = DECLARE_THROW_SCOPE(vm);
56 bool isNullOrUndefined = value.isUndefinedOrNull();
57 auto* object = isNullOrUndefined ? nullptr : value.getObject();
58 if (UNLIKELY(!isNullOrUndefined && !object)) {
59 throwTypeError(&state, throwScope);
60 return { };
61 }
62 FetchRequestInit result;
63 JSValue bodyValue;
64 if (isNullOrUndefined)
65 bodyValue = jsUndefined();
66 else {
67 bodyValue = object->get(&state, Identifier::fromString(&state, "body"));
68 RETURN_IF_EXCEPTION(throwScope, { });
69 }
70 if (!bodyValue.isUndefined()) {
71 result.body = convert<IDLNullable<IDLUnion<IDLInterface<Blob>, IDLArrayBufferView, IDLArrayBuffer, IDLInterface<DOMFormData>, IDLInterface<URLSearchParams>, IDLInterface<ReadableStream>, IDLUSVString>>>(state, bodyValue);
72 RETURN_IF_EXCEPTION(throwScope, { });
73 }
74 JSValue cacheValue;
75 if (isNullOrUndefined)
76 cacheValue = jsUndefined();
77 else {
78 cacheValue = object->get(&state, Identifier::fromString(&state, "cache"));
79 RETURN_IF_EXCEPTION(throwScope, { });
80 }
81 if (!cacheValue.isUndefined()) {
82 result.cache = convert<IDLEnumeration<FetchRequestCache>>(state, cacheValue);
83 RETURN_IF_EXCEPTION(throwScope, { });
84 }
85 JSValue credentialsValue;
86 if (isNullOrUndefined)
87 credentialsValue = jsUndefined();
88 else {
89 credentialsValue = object->get(&state, Identifier::fromString(&state, "credentials"));
90 RETURN_IF_EXCEPTION(throwScope, { });
91 }
92 if (!credentialsValue.isUndefined()) {
93 result.credentials = convert<IDLEnumeration<FetchRequestCredentials>>(state, credentialsValue);
94 RETURN_IF_EXCEPTION(throwScope, { });
95 }
96 JSValue headersValue;
97 if (isNullOrUndefined)
98 headersValue = jsUndefined();
99 else {
100 headersValue = object->get(&state, Identifier::fromString(&state, "headers"));
101 RETURN_IF_EXCEPTION(throwScope, { });
102 }
103 if (!headersValue.isUndefined()) {
104 result.headers = convert<IDLUnion<IDLSequence<IDLSequence<IDLByteString>>, IDLRecord<IDLByteString, IDLByteString>>>(state, headersValue);
105 RETURN_IF_EXCEPTION(throwScope, { });
106 }
107 JSValue integrityValue;
108 if (isNullOrUndefined)
109 integrityValue = jsUndefined();
110 else {
111 integrityValue = object->get(&state, Identifier::fromString(&state, "integrity"));
112 RETURN_IF_EXCEPTION(throwScope, { });
113 }
114 if (!integrityValue.isUndefined()) {
115 result.integrity = convert<IDLDOMString>(state, integrityValue);
116 RETURN_IF_EXCEPTION(throwScope, { });
117 }
118 JSValue keepaliveValue;
119 if (isNullOrUndefined)
120 keepaliveValue = jsUndefined();
121 else {
122 keepaliveValue = object->get(&state, Identifier::fromString(&state, "keepalive"));
123 RETURN_IF_EXCEPTION(throwScope, { });
124 }
125 if (!keepaliveValue.isUndefined()) {
126 result.keepalive = convert<IDLBoolean>(state, keepaliveValue);
127 RETURN_IF_EXCEPTION(throwScope, { });
128 }
129 JSValue methodValue;
130 if (isNullOrUndefined)
131 methodValue = jsUndefined();
132 else {
133 methodValue = object->get(&state, Identifier::fromString(&state, "method"));
134 RETURN_IF_EXCEPTION(throwScope, { });
135 }
136 if (!methodValue.isUndefined()) {
137 result.method = convert<IDLByteString>(state, methodValue);
138 RETURN_IF_EXCEPTION(throwScope, { });
139 }
140 JSValue modeValue;
141 if (isNullOrUndefined)
142 modeValue = jsUndefined();
143 else {
144 modeValue = object->get(&state, Identifier::fromString(&state, "mode"));
145 RETURN_IF_EXCEPTION(throwScope, { });
146 }
147 if (!modeValue.isUndefined()) {
148 result.mode = convert<IDLEnumeration<FetchRequestMode>>(state, modeValue);
149 RETURN_IF_EXCEPTION(throwScope, { });
150 }
151 JSValue redirectValue;
152 if (isNullOrUndefined)
153 redirectValue = jsUndefined();
154 else {
155 redirectValue = object->get(&state, Identifier::fromString(&state, "redirect"));
156 RETURN_IF_EXCEPTION(throwScope, { });
157 }
158 if (!redirectValue.isUndefined()) {
159 result.redirect = convert<IDLEnumeration<FetchRequestRedirect>>(state, redirectValue);
160 RETURN_IF_EXCEPTION(throwScope, { });
161 }
162 JSValue referrerValue;
163 if (isNullOrUndefined)
164 referrerValue = jsUndefined();
165 else {
166 referrerValue = object->get(&state, Identifier::fromString(&state, "referrer"));
167 RETURN_IF_EXCEPTION(throwScope, { });
168 }
169 if (!referrerValue.isUndefined()) {
170 result.referrer = convert<IDLUSVString>(state, referrerValue);
171 RETURN_IF_EXCEPTION(throwScope, { });
172 }
173 JSValue referrerPolicyValue;
174 if (isNullOrUndefined)
175 referrerPolicyValue = jsUndefined();
176 else {
177 referrerPolicyValue = object->get(&state, Identifier::fromString(&state, "referrerPolicy"));
178 RETURN_IF_EXCEPTION(throwScope, { });
179 }
180 if (!referrerPolicyValue.isUndefined()) {
181 result.referrerPolicy = convert<IDLEnumeration<FetchReferrerPolicy>>(state, referrerPolicyValue);
182 RETURN_IF_EXCEPTION(throwScope, { });
183 }
184 JSValue signalValue;
185 if (isNullOrUndefined)
186 signalValue = jsUndefined();
187 else {
188 signalValue = object->get(&state, Identifier::fromString(&state, "signal"));
189 RETURN_IF_EXCEPTION(throwScope, { });
190 }
191 if (!signalValue.isUndefined()) {
192 result.signal = convert<IDLAny>(state, signalValue);
193 RETURN_IF_EXCEPTION(throwScope, { });
194 } else
195 result.signal = jsUndefined();
196 JSValue windowValue;
197 if (isNullOrUndefined)
198 windowValue = jsUndefined();
199 else {
200 windowValue = object->get(&state, Identifier::fromString(&state, "window"));
201 RETURN_IF_EXCEPTION(throwScope, { });
202 }
203 if (!windowValue.isUndefined()) {
204 result.window = convert<IDLAny>(state, windowValue);
205 RETURN_IF_EXCEPTION(throwScope, { });
206 } else
207 result.window = jsUndefined();
208 return result;
209}
210
211} // namespace WebCore
212