@@ -14,7 +14,7 @@ import {
14
14
import { encodeSigned , encodeUnsigned } from "../vlq.ts" ;
15
15
import { decode , DecodeMode } from "./decode.ts" ;
16
16
import type { SourceMapJson } from "../scopes.d.ts" ;
17
- import { OriginalScopeFlags , Tag } from "../codec.ts" ;
17
+ import { GeneratedRangeFlags , OriginalScopeFlags , Tag } from "../codec.ts" ;
18
18
19
19
class ItemEncoder {
20
20
#encodedItems: string [ ] = [ ] ;
@@ -377,4 +377,35 @@ describe("decode", () => {
377
377
378
378
assertEquals ( info . ranges [ 0 ] ?. values , [ "" ] ) ;
379
379
} ) ;
380
+
381
+ it ( "throws if GENERATED_RANGE_START.definition is not a valid original scope in strict mode" , ( ) => {
382
+ const encoder = new ItemEncoder ( ) ;
383
+ encoder . addUnsignedVLQs (
384
+ Tag . GENERATED_RANGE_START ,
385
+ GeneratedRangeFlags . HAS_DEFINITION ,
386
+ 0 ,
387
+ 1 ,
388
+ ) . finishItem ( ) ;
389
+ encoder . addUnsignedVLQs ( Tag . GENERATED_RANGE_END , 2 ) . finishItem ( ) ;
390
+ const map = createMap ( encoder . encode ( ) , [ ] ) ;
391
+
392
+ assertThrows ( ( ) => decode ( map , { mode : DecodeMode . STRICT } ) ) ;
393
+ } ) ;
394
+
395
+ it ( "ignores if GENERATED_RANGE_START.definition is not a valid original scope in lax mode" , ( ) => {
396
+ const encoder = new ItemEncoder ( ) ;
397
+ encoder . addUnsignedVLQs (
398
+ Tag . GENERATED_RANGE_START ,
399
+ GeneratedRangeFlags . HAS_DEFINITION ,
400
+ 0 ,
401
+ 1 ,
402
+ ) . finishItem ( ) ;
403
+ encoder . addUnsignedVLQs ( Tag . GENERATED_RANGE_END , 2 ) . finishItem ( ) ;
404
+ const map = createMap ( encoder . encode ( ) , [ ] ) ;
405
+
406
+ const info = decode ( map , { mode : DecodeMode . LAX } ) ;
407
+
408
+ assertExists ( info . ranges [ 0 ] ) ;
409
+ assertStrictEquals ( info . ranges [ 0 ] . originalScope , undefined ) ;
410
+ } ) ;
380
411
} ) ;
0 commit comments