/* Ċ Ġ* ĠCopyright Ġ 2 0 1 0 - 2 0 1 9 ĠJetBrains Ġs . r . o . Ġand ĠKotlin ĠProgramming ĠLanguage Ġcontributors . Ċ Ġ* ĠUse Ġof Ġthis Ġsource Ġcode Ġis Ġgoverned Ġby Ġthe ĠApache Ġ 2 . 0 Ġlicense Ġthat Ġcan Ġbe Ġfound Ġin Ġthe Ġlicense / LICENSE . txt Ġfile . Ċ Ġ*/ Ċ Ċ package Ġorg . jetbrains . kotlin . gradle . targets . js . testing . karma Ċ Ċ private Ġconst Ġval ĠK AR MA _ SOURCE _ MAP _ DE LIMITER Ġ= Ġ" Ġ<- " Ċ Ċ private Ġconst Ġval ĠSTACK _ TRACE _ DE LIMITER Ġ= Ġ" at Ġ" Ċ private Ġconst Ġval ĠWEB PACK _ LOCAL _ DE LIMITER Ġ= Ġ"../ " Ċ Ċ fun Ġprocess K arma StackTrace ( stack Trace : ĠString ): ĠString Ġ{ ĊĠĠĠ Ġreturn Ġstack Trace . lines () ĊĠĠĠĠĠĠĠ Ġ. map (:: process Webpack Name ) ĊĠĠĠĠĠĠĠ Ġ. join ToString ("\ n ") Ġ{ Ġline Ġ-> ĊĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġindex Ġ= Ġline . indexOf ( K AR MA _ SOURCE _ MAP _ DE LIMITER ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġif Ġ( index Ġ== Ġ- 1 ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġline ĊĠĠĠĠĠĠĠĠĠĠĠ Ġelse ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġline ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ. remove Range ( index , Ġline . length Ġ- Ġ 1 ) ĊĠĠĠĠĠĠĠ Ġ} Ċ } Ċ Ċ fun Ġprocess Webpack Name ( line : ĠString ): ĠString Ġ{ ĊĠĠĠ Ġ// Ġexample : Ġ" at ĠMy Test ../ kotlin / check - js - test - test . js . My Test . foo Ġ(/ src / test / kotlin / My Test . kt : 7 : 8 )" ĊĠĠĠ Ġ// Ġshould Ġbe Ġ" at ĠMy Test . foo Ġ(/ src / test / kotlin / My Test . kt : 7 : 8 )" ĊĠĠĠ Ġval Ġstack Trace Delimiter Index Ġ= Ġline . indexOf ( STACK _ TRACE _ DE LIMITER ) ĊĠĠĠ Ġval Ġwebpack Local Delimiter Index Ġ= Ġline . indexOf ( WEBPACK _ LOCAL _ DE LIMITER ) ĊĠĠĠ Ġif Ġ( stack Trace Delimiter Index Ġ== Ġ- 1 Ġ|| Ġwebpack Local Delimiter Index Ġ== Ġ- 1 ) Ġ{ ĊĠĠĠĠĠĠĠ Ġreturn Ġline ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġval Ġtrace StartIndex Ġ= Ġstack Trace Delimiter Index Ġ+ ĠSTACK _ TRACE _ DE LIMITER . length ĊĠĠĠ Ġval Ġname Ġ= Ġline . substring ( ĊĠĠĠĠĠĠĠ Ġtrace StartIndex , ĊĠĠĠĠĠĠĠ Ġwebpack Local Delimiter Index ĊĠĠĠ Ġ) Ġ// ĠMy Test ĊĠĠĠ Ġval Ġfile StartIndex Ġ= Ġline . indexOf (" (" ) ĊĊĠĠĠ Ġif Ġ( webpack Local Delimiter Index Ġ> Ġfile StartIndex ) Ġ{ ĊĠĠĠĠĠĠĠ Ġreturn Ġline ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġval Ġfull Js Name Ġ= Ġline . substring ( webpack Local Delimiter Index , Ġfile StartIndex ) Ġ// Ġ../ kotlin / check - js - test - test . js . My Test . foo ĊĊĠĠĠ Ġval Ġname Index Ġ= Ġfull Js Name . indexOf ( name ) ĊĠĠĠ Ġif Ġ( name Index Ġ== Ġ- 1 ) Ġ{ ĊĠĠĠĠĠĠĠ Ġreturn Ġline ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġreturn Ġline . replace Range ( trace StartIndex , Ġfile StartIndex , Ġfull Js Name . substring ( name Index )) Ċ }