@@ -116,6 +116,7 @@ import {
116116
117117import {
118118 Module ,
119+ ExpressionRef ,
119120 FunctionRef ,
120121 MemorySegment ,
121122 getFunctionName
@@ -3749,8 +3750,8 @@ export class Function extends TypedElement {
37493750 contextualTypeArguments : Map < string , Type > | null ;
37503751 /** Default control flow. */
37513752 flow ! : Flow ;
3752- /** Remembered debug locations. */
3753- debugLocations : Range [ ] = [ ] ;
3753+ /** Ordered debug locations by Binaryen expression reference . */
3754+ debugLocations : Map < ExpressionRef , Range > = new Map ( ) ;
37543755 /** Function reference, if compiled. */
37553756 ref : FunctionRef = 0 ;
37563757 /** Varargs stub for calling with omitted arguments. */
@@ -3918,12 +3919,13 @@ export class Function extends TypedElement {
39183919 addDebugInfo ( module : Module , ref : FunctionRef ) : void {
39193920 if ( this . program . options . sourceMap ) {
39203921 let debugLocations = this . debugLocations ;
3921- for ( let i = 0 , k = debugLocations . length ; i < k ; ++ i ) {
3922- let range = debugLocations [ i ] ;
3922+ for ( let _keys = Map_keys ( debugLocations ) , i = 0 , k = _keys . length ; i < k ; ++ i ) {
3923+ let expressionRef = _keys [ i ] ;
3924+ let range = assert ( debugLocations . get ( expressionRef ) ) ;
39233925 let source = range . source ;
39243926 module . setDebugLocation (
39253927 ref ,
3926- range . debugInfoRef ,
3928+ expressionRef ,
39273929 source . debugInfoIndex ,
39283930 source . lineAt ( range . start ) ,
39293931 source . columnAt ( ) - 1 // source maps are 0-based
0 commit comments