[deps] Update source-map-scopes-codec to version 0.5.0

The update contains support for sub-range binding expressions and
support for decoding index source maps.

Bug: 368222773
Change-Id: I6543ac9a8080b19e204516728f1a30272d36fee7
Reviewed-on: https://chromium-review.googlesource.com/c/devtools/devtools-frontend/+/6764507
Auto-Submit: Simon Zünd <[email protected]>
Reviewed-by: Benedikt Meurer <[email protected]>
Commit-Queue: Benedikt Meurer <[email protected]>
Commit-Queue: Simon Zünd <[email protected]>
diff --git a/front_end/third_party/source-map-scopes-codec/package/README.md b/front_end/third_party/source-map-scopes-codec/package/README.md
index cb54faf..e5d1749 100755
--- a/front_end/third_party/source-map-scopes-codec/package/README.md
+++ b/front_end/third_party/source-map-scopes-codec/package/README.md
@@ -62,7 +62,3 @@
 ```
 
 There is also a `SafeScopeInfoBuilder` that checks that scopes and ranges are well nested and some other integrity constraints (e.g. definition scopes are known).
-
-## Missing features
-
-The library is currently missing support for encoding/decoding sub-range bindings. It will be added in the next release.
diff --git a/front_end/third_party/source-map-scopes-codec/package/_dist/src/builder/safe_builder.d.ts.map b/front_end/third_party/source-map-scopes-codec/package/_dist/src/builder/safe_builder.d.ts.map
index 643e223..a7ec8e2 100755
--- a/front_end/third_party/source-map-scopes-codec/package/_dist/src/builder/safe_builder.d.ts.map
+++ b/front_end/third_party/source-map-scopes-codec/package/_dist/src/builder/safe_builder.d.ts.map
@@ -1 +1 @@
-{"version":3,"file":"safe_builder.d.ts","sources":["../../../src/builder/safe_builder.ts"],"names":[],"mappings":"AAIA,cACE,OAAO,EACP,gBAAgB,EAChB,aAAa,EACb,SAAS,iCACa;AAExB,SAAS,gBAAgB,EAAE,KAAK,QAAQ,uBAAuB;AAE/D;;;CAGC,GACD,OAAO,cAAM,6BAA6B;EACxC,SAAS,gBAAgB,IAAI;EAQ7B,SAAS,WACP,MAAM,MAAM,EACZ,QAAQ,MAAM,EACd;IACE,OAAO,MAAM;IACb,OAAO,MAAM;IACb,eAAe,OAAO;IACtB,YAAY,MAAM;IAClB,MAAM;GACP,GACA,IAAI;EA2BP,SAAS,aAAa,MAAM,MAAM,GAAG,IAAI;EAQzC,SAAS,aAAa,MAAM,MAAM,GAAG,IAAI;EAQzC,SAAS,mBAAmB,cAAc,OAAO,GAAG,IAAI;EAQxD,SAAS,kBAAkB,WAAW,MAAM,EAAE,GAAG,IAAI;EAQrD,SAAS,SAAS,MAAM,MAAM,EAAE,QAAQ,MAAM,GAAG,IAAI;EAkBrD,SAAS,WACP,MAAM,MAAM,EACZ,QAAQ,MAAM,EACd;IACE,QAAQ;IACR,WAAW;IACX,eAAe,OAAO;IACtB,WAAW,OAAO;IAClB,SAAS;IACT,WAAW;GACZ,GACA,IAAI;EA6DP,SAAS,wBAAwB,OAAO,aAAa,GAAG,IAAI;EAc5D,SAAS,2BAA2B,UAAU,QAAQ,GAAG,IAAI;EAc7D,SAAS,mBAAmB,cAAc,OAAO,GAAG,IAAI;EAQxD,SAAS,eAAe,UAAU,OAAO,GAAG,IAAI;EAQhD,SAAS,eAAe,QAAQ,SAAS,GAAG,IAAI;EAmBhD,SAAS,iBAAiB,UAAU,gBAAgB,GAAG,IAAI;EAQ3D,SAAS,SAAS,MAAM,MAAM,EAAE,QAAQ,MAAM,GAAG,IAAI;EAkBrD,SAAS,SAAS;AAkCpB"}
\ No newline at end of file
+{"version":3,"file":"safe_builder.d.ts","sources":["../../../src/builder/safe_builder.ts"],"names":[],"mappings":"AAIA,cACE,OAAO,EACP,gBAAgB,EAChB,aAAa,EAEb,SAAS,iCACa;AAExB,SAAS,gBAAgB,EAAE,KAAK,QAAQ,uBAAuB;AAE/D;;;CAGC,GACD,OAAO,cAAM,6BAA6B;EACxC,SAAS,gBAAgB,IAAI;EAQ7B,SAAS,WACP,MAAM,MAAM,EACZ,QAAQ,MAAM,EACd;IACE,OAAO,MAAM;IACb,OAAO,MAAM;IACb,eAAe,OAAO;IACtB,YAAY,MAAM;IAClB,MAAM;GACP,GACA,IAAI;EA2BP,SAAS,aAAa,MAAM,MAAM,GAAG,IAAI;EAQzC,SAAS,aAAa,MAAM,MAAM,GAAG,IAAI;EAQzC,SAAS,mBAAmB,cAAc,OAAO,GAAG,IAAI;EAQxD,SAAS,kBAAkB,WAAW,MAAM,EAAE,GAAG,IAAI;EAQrD,SAAS,SAAS,MAAM,MAAM,EAAE,QAAQ,MAAM,GAAG,IAAI;EAkBrD,SAAS,WACP,MAAM,MAAM,EACZ,QAAQ,MAAM,EACd;IACE,QAAQ;IACR,WAAW;IACX,eAAe,OAAO;IACtB,WAAW,OAAO;IAClB,SAAS;IACT,WAAW;GACZ,GACA,IAAI;EA6DP,SAAS,wBAAwB,OAAO,aAAa,GAAG,IAAI;EAc5D,SAAS,2BAA2B,UAAU,QAAQ,GAAG,IAAI;EAc7D,SAAS,mBAAmB,cAAc,OAAO,GAAG,IAAI;EAQxD,SAAS,eAAe,UAAU,OAAO,GAAG,IAAI;EAQhD,SAAS,eAAe,QAAQ,SAAS,GAAG,IAAI;EAmBhD,SAAS,iBAAiB,UAAU,gBAAgB,GAAG,IAAI;EAQ3D,SAAS,SAAS,MAAM,MAAM,EAAE,QAAQ,MAAM,GAAG,IAAI;EAmBrD,SAAS,SAAS;AAkFpB"}
\ No newline at end of file
diff --git a/front_end/third_party/source-map-scopes-codec/package/_dist/src/decode/decode.d.ts b/front_end/third_party/source-map-scopes-codec/package/_dist/src/decode/decode.d.ts
index f4a4536..85c11a8 100755
--- a/front_end/third_party/source-map-scopes-codec/package/_dist/src/decode/decode.d.ts
+++ b/front_end/third_party/source-map-scopes-codec/package/_dist/src/decode/decode.d.ts
@@ -1,4 +1,4 @@
-import type { ScopeInfo, SourceMapJson } from "../../../src/scopes.js";
+import type { Position, ScopeInfo, SourceMap } from "../../../src/scopes.js";
 /**
  * The mode decides how well-formed the encoded scopes have to be, to be accepted by the decoder.
  *
@@ -16,7 +16,14 @@
   STRICT = 1,
   LAX = 2
 }
-export declare function decode(sourceMap: SourceMapJson, options?: {
+export interface DecodeOptions {
   mode: DecodeMode;
-}): ScopeInfo;
+  /**
+   * Offsets `start` and `end` of all generated ranges by the specified amount.
+   * Intended to be used when decoding sections of index source maps one-by-one.
+   *
+   * Has no effect when passing a {@link IndexSourceMapJson} directly to {@link decode}.
+   */ generatedOffset: Position;
+}
+export declare function decode(sourceMap: SourceMap, options?: Partial<DecodeOptions>): ScopeInfo;
 //# sourceMappingURL=decode.d.ts.map
\ No newline at end of file
diff --git a/front_end/third_party/source-map-scopes-codec/package/_dist/src/decode/decode.d.ts.map b/front_end/third_party/source-map-scopes-codec/package/_dist/src/decode/decode.d.ts.map
index c16bdd6..94ef681 100755
--- a/front_end/third_party/source-map-scopes-codec/package/_dist/src/decode/decode.d.ts.map
+++ b/front_end/third_party/source-map-scopes-codec/package/_dist/src/decode/decode.d.ts.map
@@ -1 +1 @@
-{"version":3,"file":"decode.d.ts","sources":["../../../src/decode/decode.ts"],"names":[],"mappings":"AAWA,cAGE,SAAS,EACT,aAAa,iCACS;AAGxB;;;;;;;;;;;;;CAaC,GACD,0BAAkB;EAChB,SAAS;EACT,MAAM;;AAGR,OAAO,iBAAS,OACd,WAAW,aAAa,EACxB;EAAY,MAAM;CAAY,GAC7B"}
\ No newline at end of file
+{"version":3,"file":"decode.d.ts","sources":["../../../src/decode/decode.ts"],"names":[],"mappings":"AAWA,cAIE,QAAQ,EACR,SAAS,EACT,SAAS,iCAGa;AAGxB;;;;;;;;;;;;;CAaC,GACD,0BAAkB;EAChB,SAAS;EACT,MAAM;;AAGR,iBAAiB;EACf,MAAM;EAEN;;;;;GAKC,GACD,iBAAiB;;AAQnB,OAAO,iBAAS,OACd,WAAW,SAAS,EACpB,UAAS,QAAQ,cAAuC,GACvD"}
\ No newline at end of file
diff --git a/front_end/third_party/source-map-scopes-codec/package/deno.json b/front_end/third_party/source-map-scopes-codec/package/deno.json
index 5353cf9..ccac420 100755
--- a/front_end/third_party/source-map-scopes-codec/package/deno.json
+++ b/front_end/third_party/source-map-scopes-codec/package/deno.json
@@ -1,6 +1,6 @@
 {
   "name": "@chrome-devtools/source-map-scopes-codec",
-  "version": "0.3.1",
+  "version": "0.5.0",
   "exports": "./src/mod.ts",
   "license": "BSD-3-Clause",
   "fmt": {
diff --git a/front_end/third_party/source-map-scopes-codec/package/package.json b/front_end/third_party/source-map-scopes-codec/package/package.json
index 3be86e5..1aa8c15 100755
--- a/front_end/third_party/source-map-scopes-codec/package/package.json
+++ b/front_end/third_party/source-map-scopes-codec/package/package.json
@@ -1,6 +1,6 @@
 {
   "name": "@jsr/chrome-devtools__source-map-scopes-codec",
-  "version": "0.3.1",
+  "version": "0.5.0",
   "homepage": "https://jsr.io/@chrome-devtools/source-map-scopes-codec",
   "type": "module",
   "dependencies": {},
diff --git a/front_end/third_party/source-map-scopes-codec/package/src/builder/safe_builder.js b/front_end/third_party/source-map-scopes-codec/package/src/builder/safe_builder.js
index 85ef1db..66d74bd 100755
--- a/front_end/third_party/source-map-scopes-codec/package/src/builder/safe_builder.js
+++ b/front_end/third_party/source-map-scopes-codec/package/src/builder/safe_builder.js
@@ -166,6 +166,10 @@
     }) > 0) {
       throw new Error(`Range end (${line}, ${column}) must not precede range start (${range.start.line}, ${range.start.column})`);
     }
+    this.#verifyRangeValues(range, {
+      line,
+      column
+    });
     super.endRange(line, column);
     return this;
   }
@@ -196,5 +200,36 @@
       throw new Error(`Can't ${op} while no GeneratedRange is on the stack.`);
     }
   }
+  #verifyRangeValues(range, end) {
+    for (const value of range.values){
+      if (!Array.isArray(value)) {
+        continue;
+      }
+      const subRanges = value;
+      if (subRanges.length === 0) {
+        continue;
+      }
+      const first = subRanges.at(0);
+      if (comparePositions(first.from, range.start) !== 0) {
+        throw new Error(`Sub-range bindings must start at the generated range's start. Expected ${range.start.line}:${range.start.column}, but got ${first.from.line}:${first.from.column}`);
+      }
+      const last = subRanges.at(-1);
+      if (comparePositions(last.to, end) !== 0) {
+        throw new Error(`Sub-range bindings must end at the generated range's end. Expected ${end.line}:${end.column}, but got ${last.to.line}:${last.to.column}`);
+      }
+      for(let i = 0; i < subRanges.length; ++i){
+        const current = subRanges[i];
+        if (comparePositions(current.from, current.to) >= 0) {
+          throw new Error(`Sub-range binding 'from' (${current.from.line}:${current.from.column}) must precede 'to' (${current.to.line}:${current.to.column})`);
+        }
+        if (i > 0) {
+          const prev = subRanges[i - 1];
+          if (comparePositions(prev.to, current.from) !== 0) {
+            throw new Error(`Sub-range bindings must be sorted and not overlap. Found gap between ${prev.to.line}:${prev.to.column} and ${current.from.line}:${current.from.column}`);
+          }
+        }
+      }
+    }
+  }
 }
 //# sourceMappingURL=safe_builder.js.map
\ No newline at end of file
diff --git a/front_end/third_party/source-map-scopes-codec/package/src/builder/safe_builder.js.map b/front_end/third_party/source-map-scopes-codec/package/src/builder/safe_builder.js.map
index 913762d..0d963e4 100755
--- a/front_end/third_party/source-map-scopes-codec/package/src/builder/safe_builder.js.map
+++ b/front_end/third_party/source-map-scopes-codec/package/src/builder/safe_builder.js.map
@@ -1 +1 @@
-{"version":3,"file":"safe_builder.js","sources":["./safe_builder.ts"],"names":[],"mappings":"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"}
\ No newline at end of file
+{"version":3,"file":"safe_builder.js","sources":["./safe_builder.ts"],"names":[],"mappings":"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"}
\ No newline at end of file
diff --git a/front_end/third_party/source-map-scopes-codec/package/src/builder/safe_builder.ts b/front_end/third_party/source-map-scopes-codec/package/src/builder/safe_builder.ts
index 48f0110..9d4cdaa 100755
--- a/front_end/third_party/source-map-scopes-codec/package/src/builder/safe_builder.ts
+++ b/front_end/third_party/source-map-scopes-codec/package/src/builder/safe_builder.ts
@@ -6,6 +6,7 @@
   Binding,
   OriginalPosition,
   OriginalScope,
+  Position,
   ScopeInfo,
 } from "../scopes.d.ts";
 import { comparePositions } from "../util.js";
@@ -268,6 +269,7 @@
       );
     }
 
+    this.#verifyRangeValues(range, { line, column });
     super.endRange(line, column);
     return this;
   }
@@ -306,4 +308,52 @@
       throw new Error(`Can't ${op} while no GeneratedRange is on the stack.`);
     }
   }
+
+  #verifyRangeValues(
+    range: { start: Position; values: Binding[] },
+    end: Position,
+  ): void {
+    for (const value of range.values) {
+      if (!Array.isArray(value)) {
+        continue;
+      }
+
+      const subRanges = value;
+      if (subRanges.length === 0) {
+        continue;
+      }
+
+      const first = subRanges.at(0)!;
+      if (comparePositions(first.from, range.start) !== 0) {
+        throw new Error(
+          `Sub-range bindings must start at the generated range's start. Expected ${range.start.line}:${range.start.column}, but got ${first.from.line}:${first.from.column}`,
+        );
+      }
+
+      const last = subRanges.at(-1)!;
+      if (comparePositions(last.to, end) !== 0) {
+        throw new Error(
+          `Sub-range bindings must end at the generated range's end. Expected ${end.line}:${end.column}, but got ${last.to.line}:${last.to.column}`,
+        );
+      }
+
+      for (let i = 0; i < subRanges.length; ++i) {
+        const current = subRanges[i];
+        if (comparePositions(current.from, current.to) >= 0) {
+          throw new Error(
+            `Sub-range binding 'from' (${current.from.line}:${current.from.column}) must precede 'to' (${current.to.line}:${current.to.column})`,
+          );
+        }
+
+        if (i > 0) {
+          const prev = subRanges[i - 1];
+          if (comparePositions(prev.to, current.from) !== 0) {
+            throw new Error(
+              `Sub-range bindings must be sorted and not overlap. Found gap between ${prev.to.line}:${prev.to.column} and ${current.from.line}:${current.from.column}`,
+            );
+          }
+        }
+      }
+    }
+  }
 }
diff --git a/front_end/third_party/source-map-scopes-codec/package/src/codec.js b/front_end/third_party/source-map-scopes-codec/package/src/codec.js
index 748dc9f..ffa1b5e 100755
--- a/front_end/third_party/source-map-scopes-codec/package/src/codec.js
+++ b/front_end/third_party/source-map-scopes-codec/package/src/codec.js
@@ -8,6 +8,7 @@
   Tag[Tag["GENERATED_RANGE_START"] = 4] = "GENERATED_RANGE_START";
   Tag[Tag["GENERATED_RANGE_END"] = 5] = "GENERATED_RANGE_END";
   Tag[Tag["GENERATED_RANGE_BINDINGS"] = 6] = "GENERATED_RANGE_BINDINGS";
+  Tag[Tag["GENERATED_RANGE_SUBRANGE_BINDING"] = 7] = "GENERATED_RANGE_SUBRANGE_BINDING";
   Tag[Tag["GENERATED_RANGE_CALL_SITE"] = 8] = "GENERATED_RANGE_CALL_SITE";
   return Tag;
 }({});
@@ -18,6 +19,7 @@
   EncodedTag["GENERATED_RANGE_START"] = "E";
   EncodedTag["GENERATED_RANGE_END"] = "F";
   EncodedTag["GENERATED_RANGE_BINDINGS"] = "G";
+  EncodedTag["GENERATED_RANGE_SUBRANGE_BINDING"] = "H";
   EncodedTag["GENERATED_RANGE_CALL_SITE"] = "I";
   return EncodedTag;
 }({});
diff --git a/front_end/third_party/source-map-scopes-codec/package/src/codec.js.map b/front_end/third_party/source-map-scopes-codec/package/src/codec.js.map
index 3ff6f2f..4d608dd 100755
--- a/front_end/third_party/source-map-scopes-codec/package/src/codec.js.map
+++ b/front_end/third_party/source-map-scopes-codec/package/src/codec.js.map
@@ -1 +1 @@
-{"version":3,"file":"codec.js","sources":["./codec.ts"],"names":[],"mappings":"AAAA,4DAA4D;AAC5D,yEAAyE;AACzE,6BAA6B;AAE7B,OAAO,IAAA,AAAW,6BAAA;;;;;;;;SAAA;MAQjB;AAED,OAAO,IAAA,AAAW,oCAAA;;;;;;;;SAAA;MAQjB;AAED,OAAO,IAAA,AAAW,4CAAA;;;;SAAA;MAIjB;AAED,OAAO,IAAA,AAAW,6CAAA;;;;;SAAA;MAKjB"}
\ No newline at end of file
+{"version":3,"file":"codec.js","sources":["./codec.ts"],"names":[],"mappings":"AAAA,4DAA4D;AAC5D,yEAAyE;AACzE,6BAA6B;AAE7B,OAAO,IAAA,AAAW,6BAAA;;;;;;;;;SAAA;MASjB;AAED,OAAO,IAAA,AAAW,oCAAA;;;;;;;;;SAAA;MASjB;AAED,OAAO,IAAA,AAAW,4CAAA;;;;SAAA;MAIjB;AAED,OAAO,IAAA,AAAW,6CAAA;;;;;SAAA;MAKjB"}
\ No newline at end of file
diff --git a/front_end/third_party/source-map-scopes-codec/package/src/codec.ts b/front_end/third_party/source-map-scopes-codec/package/src/codec.ts
index fd431e8..1bb0d6c 100755
--- a/front_end/third_party/source-map-scopes-codec/package/src/codec.ts
+++ b/front_end/third_party/source-map-scopes-codec/package/src/codec.ts
@@ -9,6 +9,7 @@
   GENERATED_RANGE_START = 0x4,
   GENERATED_RANGE_END = 0x5,
   GENERATED_RANGE_BINDINGS = 0x6,
+  GENERATED_RANGE_SUBRANGE_BINDING = 0x7,
   GENERATED_RANGE_CALL_SITE = 0x8,
 }
 
@@ -19,6 +20,7 @@
   GENERATED_RANGE_START = "E", // 0x4
   GENERATED_RANGE_END = "F", // 0x5
   GENERATED_RANGE_BINDINGS = "G", // 0x6
+  GENERATED_RANGE_SUBRANGE_BINDING = "H", // 0x7
   GENERATED_RANGE_CALL_SITE = "I", // 0x8
 }
 
diff --git a/front_end/third_party/source-map-scopes-codec/package/src/decode/decode.js b/front_end/third_party/source-map-scopes-codec/package/src/decode/decode.js
index cceffed..26f6515 100755
--- a/front_end/third_party/source-map-scopes-codec/package/src/decode/decode.js
+++ b/front_end/third_party/source-map-scopes-codec/package/src/decode/decode.js
@@ -21,13 +21,51 @@
   DecodeMode[DecodeMode["LAX"] = 2] = "LAX";
   return DecodeMode;
 }({});
-export function decode(sourceMap, options) {
+export const DEFAULT_DECODE_OPTIONS = {
+  mode: 2,
+  generatedOffset: {
+    line: 0,
+    column: 0
+  }
+};
+export function decode(sourceMap, options = DEFAULT_DECODE_OPTIONS) {
+  const opts = {
+    ...DEFAULT_DECODE_OPTIONS,
+    ...options
+  };
+  if ("sections" in sourceMap) {
+    return decodeIndexMap(sourceMap, {
+      ...opts,
+      generatedOffset: {
+        line: 0,
+        column: 0
+      }
+    });
+  }
+  return decodeMap(sourceMap, opts);
+}
+function decodeMap(sourceMap, options) {
   if (!sourceMap.scopes || !sourceMap.names) return {
     scopes: [],
     ranges: []
   };
   return new Decoder(sourceMap.scopes, sourceMap.names, options).decode();
 }
+function decodeIndexMap(sourceMap, options) {
+  const scopeInfo = {
+    scopes: [],
+    ranges: []
+  };
+  for (const section of sourceMap.sections){
+    const { scopes, ranges } = decode(section.map, {
+      ...options,
+      generatedOffset: section.offset
+    });
+    for (const scope of scopes)scopeInfo.scopes.push(scope);
+    for (const range of ranges)scopeInfo.ranges.push(range);
+  }
+  return scopeInfo;
+}
 const DEFAULT_SCOPE_STATE = {
   line: 0,
   column: 0,
@@ -55,10 +93,13 @@
   #scopeStack = [];
   #rangeStack = [];
   #flatOriginalScopes = [];
+  #subRangeBindingsForRange = new Map();
   constructor(scopes, names, options){
     this.#encodedScopes = scopes;
     this.#names = names;
-    this.#mode = options?.mode ?? 2;
+    this.#mode = options.mode;
+    this.#rangeState.line = options.generatedOffset.line;
+    this.#rangeState.column = options.generatedOffset.column;
   }
   decode() {
     const iter = new TokenIterator(this.#encodedScopes);
@@ -134,6 +175,20 @@
             this.#handleGeneratedRangeBindingsItem(valueIdxs);
             break;
           }
+        case Tag.GENERATED_RANGE_SUBRANGE_BINDING:
+          {
+            const variableIndex = iter.nextUnsignedVLQ();
+            const bindings = [];
+            while(iter.hasNext() && iter.peek() !== ","){
+              bindings.push([
+                iter.nextUnsignedVLQ(),
+                iter.nextUnsignedVLQ(),
+                iter.nextUnsignedVLQ()
+              ]);
+            }
+            this.#recordGeneratedSubRangeBindingItem(variableIndex, bindings);
+            break;
+          }
         case Tag.GENERATED_RANGE_CALL_SITE:
           {
             this.#handleGeneratedRangeCallSite(iter.nextUnsignedVLQ(), iter.nextUnsignedVLQ(), iter.nextUnsignedVLQ());
@@ -265,6 +320,7 @@
       }
     }
     this.#rangeStack.push(range);
+    this.#subRangeBindingsForRange.clear();
   }
   #handleGeneratedRangeBindingsItem(valueIdxs) {
     const range = this.#rangeStack.at(-1);
@@ -280,6 +336,13 @@
       }
     }
   }
+  #recordGeneratedSubRangeBindingItem(variableIndex, bindings) {
+    if (this.#subRangeBindingsForRange.has(variableIndex)) {
+      this.#throwInStrictMode("Encountered multiple GENERATED_RANGE_SUBRANGE_BINDING items for the same variable");
+      return;
+    }
+    this.#subRangeBindingsForRange.set(variableIndex, bindings);
+  }
   #handleGeneratedRangeCallSite(sourceIndex, line, column) {
     const range = this.#rangeStack.at(-1);
     if (!range) {
@@ -308,6 +371,7 @@
       line: this.#rangeState.line,
       column: this.#rangeState.column
     };
+    this.#handleGeneratedRangeSubRangeBindings(range);
     if (this.#rangeStack.length > 0) {
       const parent = this.#rangeStack.at(-1);
       range.parent = parent;
@@ -316,6 +380,54 @@
       this.#ranges.push(range);
     }
   }
+  #handleGeneratedRangeSubRangeBindings(range) {
+    for (const [variableIndex, bindings] of this.#subRangeBindingsForRange){
+      const value = range.values[variableIndex];
+      const subRanges = [];
+      range.values[variableIndex] = subRanges;
+      let lastLine = range.start.line;
+      let lastColumn = range.start.column;
+      subRanges.push({
+        from: {
+          line: lastLine,
+          column: lastColumn
+        },
+        to: {
+          line: 0,
+          column: 0
+        },
+        value: value
+      });
+      for (const [binding, line, column] of bindings){
+        lastLine += line;
+        if (line === 0) {
+          lastColumn += column;
+        } else {
+          lastColumn = column;
+        }
+        subRanges.push({
+          from: {
+            line: lastLine,
+            column: lastColumn
+          },
+          to: {
+            line: 0,
+            column: 0
+          },
+          value: binding === 0 ? undefined : this.#resolveName(binding - 1)
+        });
+      }
+    }
+    for (const value of range.values){
+      if (Array.isArray(value)) {
+        const subRanges = value;
+        for(let i = 0; i < subRanges.length - 1; ++i){
+          subRanges[i].to = subRanges[i + 1].from;
+        }
+        subRanges[subRanges.length - 1].to = range.end;
+      }
+    }
+  }
   #resolveName(index) {
     if (index < 0 || index >= this.#names.length) {
       this.#throwInStrictMode("Illegal index into the 'names' array");
diff --git a/front_end/third_party/source-map-scopes-codec/package/src/decode/decode.js.map b/front_end/third_party/source-map-scopes-codec/package/src/decode/decode.js.map
index 95c7875..bbdedd5 100755
--- a/front_end/third_party/source-map-scopes-codec/package/src/decode/decode.js.map
+++ b/front_end/third_party/source-map-scopes-codec/package/src/decode/decode.js.map
@@ -1 +1 @@
-{"version":3,"file":"decode.js","sources":["./decode.ts"],"names":[],"mappings":"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"}
\ No newline at end of file
+{"version":3,"file":"decode.js","sources":["./decode.ts"],"names":[],"mappings":"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"}
\ No newline at end of file
diff --git a/front_end/third_party/source-map-scopes-codec/package/src/decode/decode.ts b/front_end/third_party/source-map-scopes-codec/package/src/decode/decode.ts
index 6c19e53..b05769e 100755
--- a/front_end/third_party/source-map-scopes-codec/package/src/decode/decode.ts
+++ b/front_end/third_party/source-map-scopes-codec/package/src/decode/decode.ts
@@ -11,9 +11,13 @@
 } from "../codec.js";
 import type {
   GeneratedRange,
+  IndexSourceMapJson,
   OriginalScope,
+  Position,
   ScopeInfo,
+  SourceMap,
   SourceMapJson,
+  SubRangeBinding,
 } from "../scopes.d.ts";
 import { TokenIterator } from "../vlq.js";
 
@@ -36,15 +40,64 @@
   LAX = 2,
 }
 
+export interface DecodeOptions {
+  mode: DecodeMode;
+
+  /**
+   * Offsets `start` and `end` of all generated ranges by the specified amount.
+   * Intended to be used when decoding sections of index source maps one-by-one.
+   *
+   * Has no effect when passing a {@link IndexSourceMapJson} directly to {@link decode}.
+   */
+  generatedOffset: Position;
+}
+
+export const DEFAULT_DECODE_OPTIONS: DecodeOptions = {
+  mode: DecodeMode.LAX,
+  generatedOffset: { line: 0, column: 0 },
+};
+
 export function decode(
+  sourceMap: SourceMap,
+  options: Partial<DecodeOptions> = DEFAULT_DECODE_OPTIONS,
+): ScopeInfo {
+  const opts = { ...DEFAULT_DECODE_OPTIONS, ...options };
+  if ("sections" in sourceMap) {
+    return decodeIndexMap(sourceMap, {
+      ...opts,
+      generatedOffset: { line: 0, column: 0 },
+    });
+  }
+  return decodeMap(sourceMap, opts);
+}
+
+function decodeMap(
   sourceMap: SourceMapJson,
-  options?: { mode: DecodeMode },
+  options: DecodeOptions,
 ): ScopeInfo {
   if (!sourceMap.scopes || !sourceMap.names) return { scopes: [], ranges: [] };
 
   return new Decoder(sourceMap.scopes, sourceMap.names, options).decode();
 }
 
+function decodeIndexMap(
+  sourceMap: IndexSourceMapJson,
+  options: DecodeOptions,
+): ScopeInfo {
+  const scopeInfo: ScopeInfo = { scopes: [], ranges: [] };
+
+  for (const section of sourceMap.sections) {
+    const { scopes, ranges } = decode(section.map, {
+      ...options,
+      generatedOffset: section.offset,
+    });
+    for (const scope of scopes) scopeInfo.scopes.push(scope);
+    for (const range of ranges) scopeInfo.ranges.push(range);
+  }
+
+  return scopeInfo;
+}
+
 const DEFAULT_SCOPE_STATE = {
   line: 0,
   column: 0,
@@ -74,11 +127,14 @@
   readonly #rangeStack: GeneratedRange[] = [];
 
   #flatOriginalScopes: OriginalScope[] = [];
+  #subRangeBindingsForRange = new Map<number, [number, number, number][]>();
 
-  constructor(scopes: string, names: string[], options?: { mode: DecodeMode }) {
+  constructor(scopes: string, names: string[], options: DecodeOptions) {
     this.#encodedScopes = scopes;
     this.#names = names;
-    this.#mode = options?.mode ?? DecodeMode.LAX;
+    this.#mode = options.mode;
+    this.#rangeState.line = options.generatedOffset.line;
+    this.#rangeState.column = options.generatedOffset.column;
   }
 
   decode(): ScopeInfo {
@@ -169,6 +225,21 @@
           this.#handleGeneratedRangeBindingsItem(valueIdxs);
           break;
         }
+        case Tag.GENERATED_RANGE_SUBRANGE_BINDING: {
+          const variableIndex = iter.nextUnsignedVLQ();
+          const bindings: [number, number, number][] = [];
+
+          while (iter.hasNext() && iter.peek() !== ",") {
+            bindings.push([
+              iter.nextUnsignedVLQ(),
+              iter.nextUnsignedVLQ(),
+              iter.nextUnsignedVLQ(),
+            ]);
+          }
+
+          this.#recordGeneratedSubRangeBindingItem(variableIndex, bindings);
+          break;
+        }
         case Tag.GENERATED_RANGE_CALL_SITE: {
           this.#handleGeneratedRangeCallSite(
             iter.nextUnsignedVLQ(),
@@ -331,6 +402,7 @@
     }
 
     this.#rangeStack.push(range);
+    this.#subRangeBindingsForRange.clear();
   }
 
   #handleGeneratedRangeBindingsItem(valueIdxs: number[]) {
@@ -351,6 +423,19 @@
     }
   }
 
+  #recordGeneratedSubRangeBindingItem(
+    variableIndex: number,
+    bindings: [number, number, number][],
+  ) {
+    if (this.#subRangeBindingsForRange.has(variableIndex)) {
+      this.#throwInStrictMode(
+        "Encountered multiple GENERATED_RANGE_SUBRANGE_BINDING items for the same variable",
+      );
+      return;
+    }
+    this.#subRangeBindingsForRange.set(variableIndex, bindings);
+  }
+
   #handleGeneratedRangeCallSite(
     sourceIndex: number,
     line: number,
@@ -392,6 +477,8 @@
       column: this.#rangeState.column,
     };
 
+    this.#handleGeneratedRangeSubRangeBindings(range);
+
     if (this.#rangeStack.length > 0) {
       const parent = this.#rangeStack.at(-1)!;
       range.parent = parent;
@@ -401,6 +488,48 @@
     }
   }
 
+  #handleGeneratedRangeSubRangeBindings(range: GeneratedRange) {
+    for (const [variableIndex, bindings] of this.#subRangeBindingsForRange) {
+      const value = range.values[variableIndex];
+      const subRanges: SubRangeBinding[] = [];
+      range.values[variableIndex] = subRanges;
+
+      let lastLine = range.start.line;
+      let lastColumn = range.start.column;
+
+      subRanges.push({
+        from: { line: lastLine, column: lastColumn },
+        to: { line: 0, column: 0 },
+        value: value as string | undefined,
+      });
+
+      for (const [binding, line, column] of bindings) {
+        lastLine += line;
+        if (line === 0) {
+          lastColumn += column;
+        } else {
+          lastColumn = column;
+        }
+
+        subRanges.push({
+          from: { line: lastLine, column: lastColumn },
+          to: { line: 0, column: 0 }, // This will be fixed in the post-processing step.
+          value: binding === 0 ? undefined : this.#resolveName(binding - 1),
+        });
+      }
+    }
+
+    for (const value of range.values) {
+      if (Array.isArray(value)) {
+        const subRanges = value;
+        for (let i = 0; i < subRanges.length - 1; ++i) {
+          subRanges[i].to = subRanges[i + 1].from;
+        }
+        subRanges[subRanges.length - 1].to = range.end;
+      }
+    }
+  }
+
   #resolveName(index: number): string {
     if (index < 0 || index >= this.#names.length) {
       this.#throwInStrictMode("Illegal index into the 'names' array");
diff --git a/front_end/third_party/source-map-scopes-codec/package/src/encode/encoder.js b/front_end/third_party/source-map-scopes-codec/package/src/encode/encoder.js
index e907c0a..ff1be01 100755
--- a/front_end/third_party/source-map-scopes-codec/package/src/encode/encoder.js
+++ b/front_end/third_party/source-map-scopes-codec/package/src/encode/encoder.js
@@ -3,6 +3,7 @@
 // found in the LICENSE file.
 import { EncodedTag, GeneratedRangeFlags, OriginalScopeFlags } from "../codec.js";
 import { encodeSigned, encodeUnsigned } from "../vlq.js";
+import { comparePositions } from "../util.js";
 const DEFAULT_SCOPE_STATE = {
   line: 0,
   column: 0,
@@ -111,6 +112,7 @@
   #encodeGeneratedRange(range) {
     this.#encodeGeneratedRangeStart(range);
     this.#encodeGeneratedRangeBindings(range);
+    this.#encodeGeneratedRangeSubRangeBindings(range);
     this.#encodeGeneratedRangeCallSite(range);
     range.children.forEach((child)=>this.#encodeGeneratedRange(child));
     this.#encodeGeneratedRangeEnd(range);
@@ -145,6 +147,35 @@
     if (encodedDefinition !== undefined) this.#encodeSigned(encodedDefinition);
     this.#finishItem();
   }
+  #encodeGeneratedRangeSubRangeBindings(range) {
+    if (range.values.length === 0) return;
+    for(let i = 0; i < range.values.length; ++i){
+      const value = range.values[i];
+      if (!Array.isArray(value) || value.length <= 1) {
+        continue;
+      }
+      this.#encodeTag(EncodedTag.GENERATED_RANGE_SUBRANGE_BINDING).#encodeUnsigned(i);
+      let lastLine = range.start.line;
+      let lastColumn = range.start.column;
+      for(let j = 1; j < value.length; ++j){
+        const subRange = value[j];
+        const prevSubRange = value[j - 1];
+        if (comparePositions(prevSubRange.to, subRange.from) !== 0) {
+          throw new Error("Sub-range bindings must not have gaps");
+        }
+        const encodedLine = subRange.from.line - lastLine;
+        const encodedColumn = encodedLine === 0 ? subRange.from.column - lastColumn : subRange.from.column;
+        if (encodedLine < 0 || encodedColumn < 0) {
+          throw new Error("Sub-range bindings must be sorted");
+        }
+        lastLine = subRange.from.line;
+        lastColumn = subRange.from.column;
+        const binding = subRange.value === undefined ? 0 : this.#resolveNamesIdx(subRange.value) + 1;
+        this.#encodeUnsigned(binding).#encodeUnsigned(encodedLine).#encodeUnsigned(encodedColumn);
+      }
+      this.#finishItem();
+    }
+  }
   #encodeGeneratedRangeBindings(range) {
     if (range.values.length === 0) return;
     if (!range.originalScope) {
@@ -154,12 +185,14 @@
     }
     this.#encodeTag(EncodedTag.GENERATED_RANGE_BINDINGS);
     for (const val of range.values){
-      if (val === null || val == undefined) {
+      if (val === null || val === undefined) {
         this.#encodeUnsigned(0);
       } else if (typeof val === "string") {
         this.#encodeUnsigned(this.#resolveNamesIdx(val) + 1);
       } else {
-        throw new Error("Sub-range bindings not implemented yet!");
+        const initialValue = val[0];
+        const binding = initialValue.value === undefined ? 0 : this.#resolveNamesIdx(initialValue.value) + 1;
+        this.#encodeUnsigned(binding);
       }
     }
     this.#finishItem();
diff --git a/front_end/third_party/source-map-scopes-codec/package/src/encode/encoder.js.map b/front_end/third_party/source-map-scopes-codec/package/src/encode/encoder.js.map
index 61448ee..39325b0 100755
--- a/front_end/third_party/source-map-scopes-codec/package/src/encode/encoder.js.map
+++ b/front_end/third_party/source-map-scopes-codec/package/src/encode/encoder.js.map
@@ -1 +1 @@
-{"version":3,"file":"encoder.js","sources":["./encoder.ts"],"names":[],"mappings":"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"}
\ No newline at end of file
+{"version":3,"file":"encoder.js","sources":["./encoder.ts"],"names":[],"mappings":"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"}
\ No newline at end of file
diff --git a/front_end/third_party/source-map-scopes-codec/package/src/encode/encoder.ts b/front_end/third_party/source-map-scopes-codec/package/src/encode/encoder.ts
index fa0ea36..8885e8b 100755
--- a/front_end/third_party/source-map-scopes-codec/package/src/encode/encoder.ts
+++ b/front_end/third_party/source-map-scopes-codec/package/src/encode/encoder.ts
@@ -9,6 +9,7 @@
 } from "../codec.js";
 import type { GeneratedRange, OriginalScope, ScopeInfo } from "../scopes.d.ts";
 import { encodeSigned, encodeUnsigned } from "../vlq.js";
+import { comparePositions } from "../util.js";
 
 const DEFAULT_SCOPE_STATE = {
   line: 0,
@@ -147,6 +148,7 @@
   #encodeGeneratedRange(range: GeneratedRange): void {
     this.#encodeGeneratedRangeStart(range);
     this.#encodeGeneratedRangeBindings(range);
+    this.#encodeGeneratedRangeSubRangeBindings(range);
     this.#encodeGeneratedRangeCallSite(range);
     range.children.forEach((child) => this.#encodeGeneratedRange(child));
     this.#encodeGeneratedRangeEnd(range);
@@ -190,6 +192,49 @@
     this.#finishItem();
   }
 
+  #encodeGeneratedRangeSubRangeBindings(range: GeneratedRange) {
+    if (range.values.length === 0) return;
+
+    for (let i = 0; i < range.values.length; ++i) {
+      const value = range.values[i];
+      if (!Array.isArray(value) || value.length <= 1) {
+        continue;
+      }
+
+      this.#encodeTag(EncodedTag.GENERATED_RANGE_SUBRANGE_BINDING)
+        .#encodeUnsigned(i);
+
+      let lastLine = range.start.line;
+      let lastColumn = range.start.column;
+      for (let j = 1; j < value.length; ++j) {
+        const subRange = value[j];
+        const prevSubRange = value[j - 1];
+
+        if (comparePositions(prevSubRange.to, subRange.from) !== 0) {
+          throw new Error("Sub-range bindings must not have gaps");
+        }
+
+        const encodedLine = subRange.from.line - lastLine;
+        const encodedColumn = encodedLine === 0
+          ? subRange.from.column - lastColumn
+          : subRange.from.column;
+        if (encodedLine < 0 || encodedColumn < 0) {
+          throw new Error("Sub-range bindings must be sorted");
+        }
+
+        lastLine = subRange.from.line;
+        lastColumn = subRange.from.column;
+
+        const binding = subRange.value === undefined
+          ? 0
+          : this.#resolveNamesIdx(subRange.value) + 1;
+        this.#encodeUnsigned(binding).#encodeUnsigned(encodedLine)
+          .#encodeUnsigned(encodedColumn);
+      }
+      this.#finishItem();
+    }
+  }
+
   #encodeGeneratedRangeBindings(range: GeneratedRange) {
     if (range.values.length === 0) return;
 
@@ -203,12 +248,16 @@
 
     this.#encodeTag(EncodedTag.GENERATED_RANGE_BINDINGS);
     for (const val of range.values) {
-      if (val === null || val == undefined) {
+      if (val === null || val === undefined) {
         this.#encodeUnsigned(0);
       } else if (typeof val === "string") {
         this.#encodeUnsigned(this.#resolveNamesIdx(val) + 1);
       } else {
-        throw new Error("Sub-range bindings not implemented yet!");
+        const initialValue = val[0];
+        const binding = initialValue.value === undefined
+          ? 0
+          : this.#resolveNamesIdx(initialValue.value) + 1;
+        this.#encodeUnsigned(binding);
       }
     }
     this.#finishItem();
diff --git a/front_end/third_party/source-map-scopes-codec/package/src/scopes.d.ts b/front_end/third_party/source-map-scopes-codec/package/src/scopes.d.ts
index 804b82b..1a23e86 100755
--- a/front_end/third_party/source-map-scopes-codec/package/src/scopes.d.ts
+++ b/front_end/third_party/source-map-scopes-codec/package/src/scopes.d.ts
@@ -160,6 +160,19 @@
 }
 
 /**
+ * A standard source map, or index source map as per https://tc39.es/ecma426.
+ */
+export type SourceMap = SourceMapJson | IndexSourceMapJson;
+
+/**
+ * A standard index source map json object as per https://tc39.es/ecma426.
+ */
+export interface IndexSourceMapJson {
+  version: 3;
+  sections: Array<{ offset: Position; map: SourceMapJson }>;
+}
+
+/**
  * A standard source map json object as per https://tc39.es/ecma426.
  */
 export interface SourceMapJson {