@@ -277,7 +277,7 @@ export function toNativeArguments(
277277
278278 case RNJavaSerialisableType . boolean :
279279 if ( isNullOrUndefined ( data ) ) {
280- nativeArguments . push ( null ) ;
280+ nativeArguments . push ( false ) ;
281281 break ;
282282 }
283283 // nullable booleans are java.lang.Booleans
@@ -286,12 +286,14 @@ export function toNativeArguments(
286286 break ;
287287 case RNJavaSerialisableType . nonnullBoolean :
288288 assert (
289- typeof data === 'boolean' ,
289+ typeof data === 'boolean' || isNullOrUndefined ( data ) ,
290290 `Argument at index ${ i } expected a boolean, but got ${ data } `
291291 ) ;
292292
293293 // booleans are auto-marshalled to BOOL.
294- nativeArguments . push ( data ) ;
294+ nativeArguments . push (
295+ isNullOrUndefined ( data ) ? false : ( data as boolean )
296+ ) ;
295297 break ;
296298
297299 case RNJavaSerialisableType . string :
@@ -311,18 +313,18 @@ export function toNativeArguments(
311313 break ;
312314
313315 case RNJavaSerialisableType . int :
314- assert (
315- typeof data === 'number' ,
316- `Argument at index ${ i } expected a number, but got ${ data } `
317- ) ;
318- nativeArguments . push ( new java . lang . Integer ( data ) ) ;
316+ if ( isNullOrUndefined ( data ) ) {
317+ nativeArguments . push ( new java . lang . Integer ( 0 ) ) ;
318+ break ;
319+ }
320+ nativeArguments . push ( new java . lang . Integer ( data as number ) ) ;
319321 break ;
320322 case RNJavaSerialisableType . nonnullInt :
321323 assert (
322- typeof data === 'number' ,
324+ typeof data === 'number' || isNullOrUndefined ( data ) ,
323325 `Argument at index ${ i } expected a number, but got ${ data } `
324326 ) ;
325- nativeArguments . push ( data ) ;
327+ nativeArguments . push ( isNullOrUndefined ( data ) ? 0 : ( data as number ) ) ;
326328 break ;
327329 case RNJavaSerialisableType . float :
328330 if ( isNullOrUndefined ( data ) ) {
@@ -332,10 +334,12 @@ export function toNativeArguments(
332334 // eslint-disable-next-line no-fallthrough
333335 case RNJavaSerialisableType . nonnullFloat :
334336 assert (
335- typeof data === 'number' ,
337+ typeof data === 'number' || isNullOrUndefined ( data ) ,
336338 `Argument at index ${ i } expected a number, but got ${ data } `
337339 ) ;
338- nativeArguments . push ( float ( data ) ) ;
340+ nativeArguments . push (
341+ isNullOrUndefined ( data ) ? float ( 0 ) : float ( data as number )
342+ ) ;
339343 break ;
340344 case RNJavaSerialisableType . double :
341345 if ( isNullOrUndefined ( data ) ) {
@@ -345,10 +349,12 @@ export function toNativeArguments(
345349 // eslint-disable-next-line no-fallthrough
346350 case RNJavaSerialisableType . nonnullDouble :
347351 assert (
348- typeof data === 'number' ,
352+ typeof data === 'number' || isNullOrUndefined ( data ) ,
349353 `Argument at index ${ i } expected a number, but got ${ data } `
350354 ) ;
351- nativeArguments . push ( double ( data ) ) ;
355+ nativeArguments . push (
356+ isNullOrUndefined ( data ) ? double ( 0 ) : double ( data as number )
357+ ) ;
352358 break ;
353359 case RNJavaSerialisableType . Callback :
354360 if ( isNullOrUndefined ( data ) ) {
0 commit comments