@@ -164,7 +164,14 @@ public class JSFunction: JSObject {
164
164
}
165
165
166
166
#if hasFeature(Embedded)
167
- // NOTE: once embedded supports variadic generics, we can remove these overloads
167
+ // Overloads of `callAsFunction(ConvertibleToJSValue...) -> JSValue`
168
+ // for 0 through 7 arguments for Embedded Swift.
169
+ //
170
+ // These are required because the `ConvertibleToJSValue...` version is not
171
+ // available in Embedded Swift due to lack of support for existentials.
172
+ //
173
+ // Once Embedded Swift supports parameter packs/variadic generics, we can
174
+ // replace all variants with a single method each that takes a generic pack.
168
175
public extension JSFunction {
169
176
170
177
@discardableResult
@@ -178,15 +185,74 @@ public extension JSFunction {
178
185
}
179
186
180
187
@discardableResult
181
- func callAsFunction( this: JSObject , _ arg0: some ConvertibleToJSValue , _ arg1: some ConvertibleToJSValue ) -> JSValue {
188
+ func callAsFunction(
189
+ this: JSObject ,
190
+ _ arg0: some ConvertibleToJSValue ,
191
+ _ arg1: some ConvertibleToJSValue
192
+ ) -> JSValue {
182
193
invokeNonThrowingJSFunction ( arguments: [ arg0. jsValue, arg1. jsValue] , this: this) . jsValue
183
194
}
184
195
185
196
@discardableResult
186
- func callAsFunction( this: JSObject , _ arg0: some ConvertibleToJSValue , _ arg1: some ConvertibleToJSValue , _ arg2: some ConvertibleToJSValue ) -> JSValue {
197
+ func callAsFunction(
198
+ this: JSObject ,
199
+ _ arg0: some ConvertibleToJSValue ,
200
+ _ arg1: some ConvertibleToJSValue ,
201
+ _ arg2: some ConvertibleToJSValue
202
+ ) -> JSValue {
187
203
invokeNonThrowingJSFunction ( arguments: [ arg0. jsValue, arg1. jsValue, arg2. jsValue] , this: this) . jsValue
188
204
}
189
205
206
+ @discardableResult
207
+ func callAsFunction(
208
+ this: JSObject ,
209
+ _ arg0: some ConvertibleToJSValue ,
210
+ _ arg1: some ConvertibleToJSValue ,
211
+ _ arg2: some ConvertibleToJSValue ,
212
+ _ arg3: some ConvertibleToJSValue
213
+ ) -> JSValue {
214
+ invokeNonThrowingJSFunction ( arguments: [ arg0. jsValue, arg1. jsValue, arg2. jsValue, arg3. jsValue] , this: this) . jsValue
215
+ }
216
+
217
+ @discardableResult
218
+ func callAsFunction(
219
+ this: JSObject ,
220
+ _ arg0: some ConvertibleToJSValue ,
221
+ _ arg1: some ConvertibleToJSValue ,
222
+ _ arg2: some ConvertibleToJSValue ,
223
+ _ arg3: some ConvertibleToJSValue ,
224
+ _ arg4: some ConvertibleToJSValue
225
+ ) -> JSValue {
226
+ invokeNonThrowingJSFunction ( arguments: [ arg0. jsValue, arg1. jsValue, arg2. jsValue, arg3. jsValue, arg4. jsValue] , this: this) . jsValue
227
+ }
228
+
229
+ @discardableResult
230
+ func callAsFunction(
231
+ this: JSObject ,
232
+ _ arg0: some ConvertibleToJSValue ,
233
+ _ arg1: some ConvertibleToJSValue ,
234
+ _ arg2: some ConvertibleToJSValue ,
235
+ _ arg3: some ConvertibleToJSValue ,
236
+ _ arg4: some ConvertibleToJSValue ,
237
+ _ arg5: some ConvertibleToJSValue
238
+ ) -> JSValue {
239
+ invokeNonThrowingJSFunction ( arguments: [ arg0. jsValue, arg1. jsValue, arg2. jsValue, arg3. jsValue, arg4. jsValue, arg5. jsValue] , this: this) . jsValue
240
+ }
241
+
242
+ @discardableResult
243
+ func callAsFunction(
244
+ this: JSObject ,
245
+ _ arg0: some ConvertibleToJSValue ,
246
+ _ arg1: some ConvertibleToJSValue ,
247
+ _ arg2: some ConvertibleToJSValue ,
248
+ _ arg3: some ConvertibleToJSValue ,
249
+ _ arg4: some ConvertibleToJSValue ,
250
+ _ arg5: some ConvertibleToJSValue ,
251
+ _ arg6: some ConvertibleToJSValue
252
+ ) -> JSValue {
253
+ invokeNonThrowingJSFunction ( arguments: [ arg0. jsValue, arg1. jsValue, arg2. jsValue, arg3. jsValue, arg4. jsValue, arg5. jsValue, arg6. jsValue] , this: this) . jsValue
254
+ }
255
+
190
256
@discardableResult
191
257
func callAsFunction( this: JSObject , arguments: [ JSValue ] ) -> JSValue {
192
258
invokeNonThrowingJSFunction ( arguments: arguments, this: this) . jsValue
@@ -203,15 +269,68 @@ public extension JSFunction {
203
269
}
204
270
205
271
@discardableResult
206
- func callAsFunction( _ arg0: some ConvertibleToJSValue , _ arg1: some ConvertibleToJSValue ) -> JSValue {
272
+ func callAsFunction(
273
+ _ arg0: some ConvertibleToJSValue ,
274
+ _ arg1: some ConvertibleToJSValue
275
+ ) -> JSValue {
207
276
invokeNonThrowingJSFunction ( arguments: [ arg0. jsValue, arg1. jsValue] ) . jsValue
208
277
}
209
278
210
279
@discardableResult
211
- func callAsFunction( _ arg0: some ConvertibleToJSValue , _ arg1: some ConvertibleToJSValue , _ arg2: some ConvertibleToJSValue ) -> JSValue {
280
+ func callAsFunction(
281
+ _ arg0: some ConvertibleToJSValue ,
282
+ _ arg1: some ConvertibleToJSValue ,
283
+ _ arg2: some ConvertibleToJSValue
284
+ ) -> JSValue {
212
285
invokeNonThrowingJSFunction ( arguments: [ arg0. jsValue, arg1. jsValue, arg2. jsValue] ) . jsValue
213
286
}
214
287
288
+ @discardableResult
289
+ func callAsFunction(
290
+ _ arg0: some ConvertibleToJSValue ,
291
+ _ arg1: some ConvertibleToJSValue ,
292
+ _ arg2: some ConvertibleToJSValue ,
293
+ _ arg3: some ConvertibleToJSValue
294
+ ) -> JSValue {
295
+ invokeNonThrowingJSFunction ( arguments: [ arg0. jsValue, arg1. jsValue, arg2. jsValue, arg3. jsValue] ) . jsValue
296
+ }
297
+
298
+ @discardableResult
299
+ func callAsFunction(
300
+ _ arg0: some ConvertibleToJSValue ,
301
+ _ arg1: some ConvertibleToJSValue ,
302
+ _ arg2: some ConvertibleToJSValue ,
303
+ _ arg3: some ConvertibleToJSValue ,
304
+ _ arg4: some ConvertibleToJSValue
305
+ ) -> JSValue {
306
+ invokeNonThrowingJSFunction ( arguments: [ arg0. jsValue, arg1. jsValue, arg2. jsValue, arg3. jsValue, arg4. jsValue] ) . jsValue
307
+ }
308
+
309
+ @discardableResult
310
+ func callAsFunction(
311
+ _ arg0: some ConvertibleToJSValue ,
312
+ _ arg1: some ConvertibleToJSValue ,
313
+ _ arg2: some ConvertibleToJSValue ,
314
+ _ arg3: some ConvertibleToJSValue ,
315
+ _ arg4: some ConvertibleToJSValue ,
316
+ _ arg5: some ConvertibleToJSValue
317
+ ) -> JSValue {
318
+ invokeNonThrowingJSFunction ( arguments: [ arg0. jsValue, arg1. jsValue, arg2. jsValue, arg3. jsValue, arg4. jsValue, arg5. jsValue] ) . jsValue
319
+ }
320
+
321
+ @discardableResult
322
+ func callAsFunction(
323
+ _ arg0: some ConvertibleToJSValue ,
324
+ _ arg1: some ConvertibleToJSValue ,
325
+ _ arg2: some ConvertibleToJSValue ,
326
+ _ arg3: some ConvertibleToJSValue ,
327
+ _ arg4: some ConvertibleToJSValue ,
328
+ _ arg5: some ConvertibleToJSValue ,
329
+ _ arg6: some ConvertibleToJSValue
330
+ ) -> JSValue {
331
+ invokeNonThrowingJSFunction ( arguments: [ arg0. jsValue, arg1. jsValue, arg2. jsValue, arg3. jsValue, arg4. jsValue, arg5. jsValue, arg6. jsValue] ) . jsValue
332
+ }
333
+
215
334
func new( ) -> JSObject {
216
335
new ( arguments: [ ] )
217
336
}
@@ -220,19 +339,60 @@ public extension JSFunction {
220
339
new ( arguments: [ arg0. jsValue] )
221
340
}
222
341
223
- func new( _ arg0: some ConvertibleToJSValue , _ arg1: some ConvertibleToJSValue ) -> JSObject {
342
+ func new(
343
+ _ arg0: some ConvertibleToJSValue ,
344
+ _ arg1: some ConvertibleToJSValue
345
+ ) -> JSObject {
224
346
new ( arguments: [ arg0. jsValue, arg1. jsValue] )
225
347
}
226
348
227
- func new( _ arg0: some ConvertibleToJSValue , _ arg1: some ConvertibleToJSValue , _ arg2: some ConvertibleToJSValue ) -> JSObject {
349
+ func new(
350
+ _ arg0: some ConvertibleToJSValue ,
351
+ _ arg1: some ConvertibleToJSValue ,
352
+ _ arg2: some ConvertibleToJSValue
353
+ ) -> JSObject {
228
354
new ( arguments: [ arg0. jsValue, arg1. jsValue, arg2. jsValue] )
229
355
}
230
356
231
- func new( _ arg0: some ConvertibleToJSValue , _ arg1: some ConvertibleToJSValue , _ arg2: some ConvertibleToJSValue , arg3: some ConvertibleToJSValue ) -> JSObject {
357
+ func new(
358
+ _ arg0: some ConvertibleToJSValue ,
359
+ _ arg1: some ConvertibleToJSValue ,
360
+ _ arg2: some ConvertibleToJSValue ,
361
+ _ arg3: some ConvertibleToJSValue
362
+ ) -> JSObject {
232
363
new ( arguments: [ arg0. jsValue, arg1. jsValue, arg2. jsValue, arg3. jsValue] )
233
364
}
234
365
235
- func new( _ arg0: some ConvertibleToJSValue , _ arg1: some ConvertibleToJSValue , _ arg2: some ConvertibleToJSValue , _ arg3: some ConvertibleToJSValue , _ arg4: some ConvertibleToJSValue , _ arg5: some ConvertibleToJSValue , _ arg6: some ConvertibleToJSValue ) -> JSObject {
366
+ func new(
367
+ _ arg0: some ConvertibleToJSValue ,
368
+ _ arg1: some ConvertibleToJSValue ,
369
+ _ arg2: some ConvertibleToJSValue ,
370
+ _ arg3: some ConvertibleToJSValue ,
371
+ _ arg4: some ConvertibleToJSValue
372
+ ) -> JSObject {
373
+ new ( arguments: [ arg0. jsValue, arg1. jsValue, arg2. jsValue, arg3. jsValue, arg4. jsValue] )
374
+ }
375
+
376
+ func new(
377
+ _ arg0: some ConvertibleToJSValue ,
378
+ _ arg1: some ConvertibleToJSValue ,
379
+ _ arg2: some ConvertibleToJSValue ,
380
+ _ arg3: some ConvertibleToJSValue ,
381
+ _ arg4: some ConvertibleToJSValue ,
382
+ _ arg5: some ConvertibleToJSValue
383
+ ) -> JSObject {
384
+ new ( arguments: [ arg0. jsValue, arg1. jsValue, arg2. jsValue, arg3. jsValue, arg4. jsValue, arg5. jsValue] )
385
+ }
386
+
387
+ func new(
388
+ _ arg0: some ConvertibleToJSValue ,
389
+ _ arg1: some ConvertibleToJSValue ,
390
+ _ arg2: some ConvertibleToJSValue ,
391
+ _ arg3: some ConvertibleToJSValue ,
392
+ _ arg4: some ConvertibleToJSValue ,
393
+ _ arg5: some ConvertibleToJSValue ,
394
+ _ arg6: some ConvertibleToJSValue
395
+ ) -> JSObject {
236
396
new ( arguments: [ arg0. jsValue, arg1. jsValue, arg2. jsValue, arg3. jsValue, arg4. jsValue, arg5. jsValue, arg6. jsValue] )
237
397
}
238
398
}
0 commit comments