@@ -652,24 +652,32 @@ const computeLineInformationWorker = (
652652 showLines : string [ ] = [ ] ,
653653 deferWordDiff = false
654654) : Promise < ComputedLineInformation > => {
655+ const fallback = ( ) => computeLineInformation ( oldString , newString , disableWordDiff , lineCompareMethod , linesOffset , showLines , deferWordDiff ) ;
656+
655657 // Fall back to synchronous computation if Worker is not available (e.g., in Node.js/test environments)
656658 if ( typeof Worker === 'undefined' ) {
657- return Promise . resolve (
658- computeLineInformation ( oldString , newString , disableWordDiff , lineCompareMethod , linesOffset , showLines , deferWordDiff )
659- ) ;
659+ return Promise . resolve ( fallback ( ) ) ;
660660 }
661661
662- return new Promise ( ( resolve , reject ) => {
663- const worker = new Worker ( new URL ( './computeWorker.ts' , import . meta. url ) , { type : 'module' } ) ;
662+ return new Promise ( ( resolve ) => {
663+ let worker : Worker ;
664+ try {
665+ worker = new Worker ( new URL ( './computeWorker.ts' , import . meta. url ) , { type : 'module' } ) ;
666+ } catch {
667+ // Worker instantiation failed - fall back to synchronous computation
668+ resolve ( fallback ( ) ) ;
669+ return ;
670+ }
664671
665672 worker . onmessage = ( e ) => {
666673 resolve ( e . data ) ;
667674 worker . terminate ( ) ;
668675 } ;
669676
670- worker . onerror = ( err ) => {
671- reject ( err ) ;
677+ worker . onerror = ( ) => {
678+ // Worker error - fall back to synchronous computation
672679 worker . terminate ( ) ;
680+ resolve ( fallback ( ) ) ;
673681 } ;
674682
675683 worker . postMessage ( { oldString, newString, disableWordDiff, lineCompareMethod, linesOffset, showLines, deferWordDiff } ) ;
0 commit comments