@@ -454,43 +454,51 @@ function startFetch(fetch, successcb, errorcb, progresscb, readystatechangecb) {
454
454
var fetchAttrReplace = ! ! ( fetchAttributes & { { { cDefine ( 'EMSCRIPTEN_FETCH_REPLACE' ) } } } ) ;
455
455
var fetchAttrSynchronous = ! ! ( fetchAttributes & { { { cDefine ( 'EMSCRIPTEN_FETCH_SYNCHRONOUS' ) } } } ) ;
456
456
457
+ function doCallback ( f ) {
458
+ if ( fetchAttrSynchronous ) {
459
+ f ( ) ;
460
+ } else {
461
+ callUserCallback ( f ) ;
462
+ }
463
+ }
464
+
457
465
var reportSuccess = ( fetch , xhr , e ) => {
458
466
#if FETCH_DEBUG
459
467
console . log ( 'fetch: operation success. e: ' + e ) ;
460
468
#endif
461
469
{ { { runtimeKeepalivePop ( ) } } }
462
- callUserCallback ( ( ) => {
470
+ doCallback ( ( ) => {
463
471
if ( onsuccess ) { { { makeDynCall ( 'vp' , 'onsuccess' ) } } } ( fetch ) ;
464
472
else if ( successcb ) successcb ( fetch ) ;
465
- } , fetchAttrSynchronous ) ;
473
+ } ) ;
466
474
} ;
467
475
468
476
var reportProgress = ( fetch , xhr , e ) => {
469
- callUserCallback ( ( ) => {
477
+ doCallback ( ( ) => {
470
478
if ( onprogress ) { { { makeDynCall ( 'vp' , 'onprogress' ) } } } ( fetch ) ;
471
479
else if ( progresscb ) progresscb ( fetch ) ;
472
- } , fetchAttrSynchronous ) ;
480
+ } ) ;
473
481
} ;
474
482
475
483
var reportError = ( fetch , xhr , e ) => {
476
484
#if FETCH_DEBUG
477
485
console . error ( 'fetch: operation failed: ' + e ) ;
478
486
#endif
479
487
{ { { runtimeKeepalivePop ( ) } } }
480
- callUserCallback ( ( ) => {
488
+ doCallback ( ( ) => {
481
489
if ( onerror ) { { { makeDynCall ( 'vp' , 'onerror' ) } } } ( fetch ) ;
482
490
else if ( errorcb ) errorcb ( fetch ) ;
483
- } , fetchAttrSynchronous ) ;
491
+ } ) ;
484
492
} ;
485
493
486
494
var reportReadyStateChange = ( fetch , xhr , e ) => {
487
495
#if FETCH_DEBUG
488
496
console . log ( 'fetch: ready state change. e: ' + e ) ;
489
497
#endif
490
- callUserCallback ( ( ) => {
498
+ doCallback ( ( ) => {
491
499
if ( onreadystatechange ) { { { makeDynCall ( 'vp' , 'onreadystatechange' ) } } } ( fetch ) ;
492
500
else if ( readystatechangecb ) readystatechangecb ( fetch ) ;
493
- } , fetchAttrSynchronous ) ;
501
+ } ) ;
494
502
} ;
495
503
496
504
var performUncachedXhr = ( fetch , xhr , e ) => {
@@ -510,20 +518,20 @@ function startFetch(fetch, successcb, errorcb, progresscb, readystatechangecb) {
510
518
console . log ( 'fetch: IndexedDB store succeeded.' ) ;
511
519
#endif
512
520
{ { { runtimeKeepalivePop ( ) } } }
513
- callUserCallback ( ( ) => {
521
+ doCallback ( ( ) => {
514
522
if ( onsuccess ) { { { makeDynCall ( 'vp' , 'onsuccess' ) } } } ( fetch ) ;
515
523
else if ( successcb ) successcb ( fetch ) ;
516
- } , fetchAttrSynchronous ) ;
524
+ } ) ;
517
525
} ;
518
526
var storeError = ( fetch , xhr , e ) => {
519
527
#if FETCH_DEBUG
520
528
console . error ( 'fetch: IndexedDB store failed.' ) ;
521
529
#endif
522
530
{ { { runtimeKeepalivePop ( ) } } }
523
- callUserCallback ( ( ) => {
531
+ doCallback ( ( ) => {
524
532
if ( onsuccess ) { { { makeDynCall ( 'vp' , 'onsuccess' ) } } } ( fetch ) ;
525
533
else if ( successcb ) successcb ( fetch ) ;
526
- } , fetchAttrSynchronous ) ;
534
+ } ) ;
527
535
} ;
528
536
fetchCacheData ( Fetch . dbInstance , fetch , xhr . response , storeSuccess , storeError ) ;
529
537
} ;
0 commit comments