@@ -468,7 +468,7 @@ impl JsError {
468468 frame_data : Vec < FrameData > ,
469469 custom_data : Option < ConvexValue > ,
470470 mut lookup_source_map : impl FnMut ( & ModuleSpecifier ) -> anyhow:: Result < Option < SourceMap > > ,
471- ) -> anyhow :: Result < Self > {
471+ ) -> Self {
472472 let mut source_maps = BTreeMap :: new ( ) ;
473473 let mut mapped_frames = Vec :: with_capacity ( frame_data. len ( ) ) ;
474474 for mut frame in frame_data {
@@ -479,10 +479,24 @@ impl JsError {
479479 ..
480480 } = frame
481481 {
482- let specifier = ModuleSpecifier :: parse ( f) ?;
482+ let Ok ( specifier) = ModuleSpecifier :: parse ( f) else {
483+ // We expect the file_name to be fully qualified URL but seems
484+ // this is not always the case. Lets log warning here.
485+ tracing:: warn!( "Skipping frame with invalid file_name: {f}" ) ;
486+ continue ;
487+ } ;
483488 let source_map = match source_maps. entry ( specifier) {
484489 Entry :: Vacant ( e) => {
485- let Some ( source_map) = lookup_source_map ( e. key ( ) ) ? else {
490+ let maybe_source_map = match lookup_source_map ( e. key ( ) ) {
491+ Ok ( maybe_source_map) => maybe_source_map,
492+ Err ( err) => {
493+ // This is not expected so report an error.
494+ let mut err = err. context ( "Failed to lookup source_map" ) ;
495+ report_error ( & mut err) ;
496+ continue ;
497+ } ,
498+ } ;
499+ let Some ( source_map) = maybe_source_map else {
486500 tracing:: debug!( "Missing source map for {}" , e. key( ) ) ;
487501 continue ;
488502 } ;
@@ -518,15 +532,15 @@ impl JsError {
518532 mapped_frames. pop ( ) ;
519533 }
520534
521- Ok ( JsError {
535+ JsError {
522536 message,
523537 custom_data,
524538 frames : Some ( JsFrames ( mapped_frames. into ( ) ) ) ,
525- } )
539+ }
526540 }
527541
528542 #[ cfg( any( test, feature = "testing" ) ) ]
529- pub fn from_frames_for_test ( message : & str , frames : Vec < & str > ) -> anyhow :: Result < Self > {
543+ pub fn from_frames_for_test ( message : & str , frames : Vec < & str > ) -> Self {
530544 let frame_data = frames
531545 . into_iter ( )
532546 . map ( |filename| FrameData {
0 commit comments