@@ -125,6 +125,24 @@ impl DecodedMap {
125
125
}
126
126
}
127
127
}
128
+
129
+ /// Returns the debug ID of the sourcemap, if it exists.
130
+ pub fn debug_id ( & self ) -> Option < DebugId > {
131
+ match self {
132
+ DecodedMap :: Regular ( sm) => sm. get_debug_id ( ) ,
133
+ DecodedMap :: Index ( smi) => smi. debug_id ( ) ,
134
+ DecodedMap :: Hermes ( smh) => smh. get_debug_id ( ) ,
135
+ }
136
+ }
137
+
138
+ /// Sets the debug ID of the sourcemap.
139
+ pub fn set_debug_id ( & mut self , debug_id : Option < DebugId > ) {
140
+ match self {
141
+ DecodedMap :: Regular ( sm) => sm. set_debug_id ( debug_id) ,
142
+ DecodedMap :: Index ( smi) => smi. set_debug_id ( debug_id) ,
143
+ DecodedMap :: Hermes ( smh) => smh. set_debug_id ( debug_id) ,
144
+ }
145
+ }
128
146
}
129
147
130
148
/// Represents a raw token
@@ -1110,9 +1128,13 @@ impl SourceMapIndex {
1110
1128
self . debug_id
1111
1129
}
1112
1130
1131
+ fn set_debug_id ( & mut self , debug_id : Option < DebugId > ) {
1132
+ self . debug_id = debug_id;
1133
+ }
1134
+
1113
1135
/// Adds the given debug id to the sourcemap index.
1114
1136
pub ( crate ) fn with_debug_id ( mut self , debug_id : Option < DebugId > ) -> Self {
1115
- self . debug_id = debug_id ;
1137
+ self . set_debug_id ( debug_id) ;
1116
1138
self
1117
1139
}
1118
1140
@@ -1320,7 +1342,9 @@ impl SourceMapSection {
1320
1342
1321
1343
#[ cfg( test) ]
1322
1344
mod tests {
1323
- use super :: { RewriteOptions , SourceMap , SourceMapIndex } ;
1345
+ use std:: collections:: BTreeSet ;
1346
+
1347
+ use super :: { DecodedMap , RewriteOptions , SourceMap , SourceMapIndex } ;
1324
1348
use debugid:: DebugId ;
1325
1349
1326
1350
#[ test]
@@ -1449,6 +1473,80 @@ mod tests {
1449
1473
) ;
1450
1474
}
1451
1475
1476
+ #[ test]
1477
+ fn test_decoded_map_regular_debug_id ( ) {
1478
+ const DEBUG_ID : & str = "0123456789abcdef0123456789abcdef" ;
1479
+
1480
+ let mut decoded_map = DecodedMap :: Regular ( SourceMap {
1481
+ file : None ,
1482
+ tokens : vec ! [ ] ,
1483
+ names : vec ! [ ] ,
1484
+ source_root : None ,
1485
+ sources : vec ! [ ] ,
1486
+ sources_prefixed : None ,
1487
+ sources_content : vec ! [ ] ,
1488
+ ignore_list : BTreeSet :: new ( ) ,
1489
+ debug_id : None ,
1490
+ } ) ;
1491
+
1492
+ assert ! ( decoded_map. debug_id( ) . is_none( ) ) ;
1493
+
1494
+ decoded_map. set_debug_id ( Some ( DEBUG_ID . parse ( ) . expect ( "valid debug id" ) ) ) ;
1495
+
1496
+ assert_eq ! (
1497
+ decoded_map,
1498
+ DecodedMap :: Regular ( SourceMap {
1499
+ file: None ,
1500
+ tokens: vec![ ] ,
1501
+ names: vec![ ] ,
1502
+ source_root: None ,
1503
+ sources: vec![ ] ,
1504
+ sources_prefixed: None ,
1505
+ sources_content: vec![ ] ,
1506
+ ignore_list: BTreeSet :: new( ) ,
1507
+ debug_id: Some ( DEBUG_ID . parse( ) . expect( "valid debug id" ) ) ,
1508
+ } )
1509
+ ) ;
1510
+
1511
+ assert_eq ! (
1512
+ decoded_map. debug_id( ) ,
1513
+ Some ( DEBUG_ID . parse( ) . expect( "valid debug id" ) )
1514
+ ) ;
1515
+ }
1516
+
1517
+ #[ test]
1518
+ fn test_decoded_map_index_debug_id ( ) {
1519
+ const DEBUG_ID : & str = "0123456789abcdef0123456789abcdef" ;
1520
+
1521
+ let mut decoded_map = DecodedMap :: Index ( SourceMapIndex {
1522
+ file : None ,
1523
+ sections : vec ! [ ] ,
1524
+ x_facebook_offsets : None ,
1525
+ x_metro_module_paths : None ,
1526
+ debug_id : None ,
1527
+ } ) ;
1528
+
1529
+ assert ! ( decoded_map. debug_id( ) . is_none( ) ) ;
1530
+
1531
+ decoded_map. set_debug_id ( Some ( DEBUG_ID . parse ( ) . expect ( "valid debug id" ) ) ) ;
1532
+
1533
+ assert_eq ! (
1534
+ decoded_map,
1535
+ DecodedMap :: Index ( SourceMapIndex {
1536
+ file: None ,
1537
+ sections: vec![ ] ,
1538
+ x_facebook_offsets: None ,
1539
+ x_metro_module_paths: None ,
1540
+ debug_id: Some ( DEBUG_ID . parse( ) . expect( "valid debug id" ) ) ,
1541
+ } )
1542
+ ) ;
1543
+
1544
+ assert_eq ! (
1545
+ decoded_map. debug_id( ) ,
1546
+ Some ( DEBUG_ID . parse( ) . expect( "valid debug id" ) )
1547
+ ) ;
1548
+ }
1549
+
1452
1550
mod prop {
1453
1551
//! This module exists to test the following property:
1454
1552
//!
0 commit comments