chrome-devtools-frontend 1.0.1704172 → 1.0.1706026

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (100) hide show
  1. package/AUTHORS +1 -0
  2. package/docs/architecture_of_devtools.md +1 -1
  3. package/docs/cookbook/localization.md +2 -2
  4. package/eslint.config.mjs +1 -0
  5. package/front_end/Images/src/nodejsHex.svg +28 -0
  6. package/front_end/core/common/README.md +4 -3
  7. package/front_end/core/sdk/CPUThrottlingManager.ts +14 -10
  8. package/front_end/core/sdk/DOMModel.ts +65 -20
  9. package/front_end/core/sdk/DebuggerModel.ts +0 -4
  10. package/front_end/core/sdk/PageResourceLoader.ts +12 -11
  11. package/front_end/core/sdk/SourceMap.ts +7 -5
  12. package/front_end/core/sdk/SourceMapFunctionRanges.ts +22 -37
  13. package/front_end/core/sdk/SourceMapScopeChainEntry.ts +3 -3
  14. package/front_end/core/sdk/SourceMapScopesInfo.ts +50 -62
  15. package/front_end/entrypoints/formatter_actions/formatter_actions.ts +18 -0
  16. package/front_end/entrypoints/formatter_worker/Substitute.ts +9 -8
  17. package/front_end/entrypoints/formatter_worker/formatter_worker-entrypoint.ts +9 -4
  18. package/front_end/entrypoints/heap_snapshot_worker/ContextAnalyzer.ts +140 -20
  19. package/front_end/entrypoints/heap_snapshot_worker/HeapSnapshotLoader.ts +16 -5
  20. package/front_end/entrypoints/inspector_main/nodeIcon.css +1 -1
  21. package/front_end/foundation/Universe.ts +9 -0
  22. package/front_end/generated/InspectorBackendCommands.ts +4 -3
  23. package/front_end/generated/protocol.ts +17 -1
  24. package/front_end/models/ai_assistance/AiConversation.ts +16 -3
  25. package/front_end/models/ai_assistance/skills/accessibility.md +8 -7
  26. package/front_end/models/formatter/FormatterWorkerPool.ts +14 -4
  27. package/front_end/models/javascript_metadata/NativeFunctions.ts +6 -2
  28. package/front_end/models/source_map_scopes/NamesResolver.ts +69 -42
  29. package/front_end/models/source_map_scopes/ScopeChainModel.ts +13 -45
  30. package/front_end/models/source_map_scopes/ScopeChainResolver.ts +101 -0
  31. package/front_end/models/source_map_scopes/source_map_scopes.ts +2 -0
  32. package/front_end/panels/application/BackgroundServiceView.ts +1 -0
  33. package/front_end/panels/application/components/AdsView.ts +6 -6
  34. package/front_end/panels/application/components/BackForwardCacheView.ts +1 -1
  35. package/front_end/panels/console/ConsolePrompt.ts +2 -1
  36. package/front_end/panels/elements/CSSRuleValidator.ts +3 -0
  37. package/front_end/panels/elements/ClassesPaneWidget.ts +4 -1
  38. package/front_end/panels/elements/LayoutPane.ts +17 -20
  39. package/front_end/panels/network/NetworkLogViewColumns.ts +10 -3
  40. package/front_end/panels/network/ShowMoreDetailsWidget.ts +1 -1
  41. package/front_end/panels/security/SecurityPanel.ts +14 -7
  42. package/front_end/panels/sources/BreakpointEditDialog.ts +13 -1
  43. package/front_end/panels/sources/DebuggerPlugin.ts +69 -58
  44. package/front_end/panels/sources/EditingLocationHistoryManager.ts +6 -6
  45. package/front_end/panels/sources/OpenFileQuickOpen.ts +2 -2
  46. package/front_end/panels/sources/Plugin.ts +3 -2
  47. package/front_end/panels/sources/ResourceOriginPlugin.ts +14 -17
  48. package/front_end/panels/sources/ScopeChainSidebarPane.ts +2 -2
  49. package/front_end/panels/sources/SourcesPanel.ts +1 -1
  50. package/front_end/panels/sources/SourcesView.ts +25 -82
  51. package/front_end/panels/sources/TabbedEditorContainer.ts +75 -21
  52. package/front_end/panels/sources/UISourceCodeFrame.ts +22 -13
  53. package/front_end/panels/sources/sourcesView.css +17 -27
  54. package/front_end/panels/timeline/overlays/components/EntryLabelOverlay.ts +1 -0
  55. package/front_end/third_party/chromium/README.chromium +1 -1
  56. package/front_end/third_party/source-map-scopes-codec/README.chromium +2 -2
  57. package/front_end/third_party/source-map-scopes-codec/package/CONTRIBUTING.md +14 -1
  58. package/front_end/third_party/source-map-scopes-codec/package/README.md +8 -6
  59. package/front_end/third_party/source-map-scopes-codec/package/_dist/src/builder/builder.d.ts +4 -1
  60. package/front_end/third_party/source-map-scopes-codec/package/_dist/src/builder/builder.d.ts.map +1 -1
  61. package/front_end/third_party/source-map-scopes-codec/package/_dist/src/builder/safe_builder.d.ts +3 -1
  62. package/front_end/third_party/source-map-scopes-codec/package/_dist/src/builder/safe_builder.d.ts.map +1 -1
  63. package/front_end/third_party/source-map-scopes-codec/package/_dist/src/decode/decode.d.ts.map +1 -1
  64. package/front_end/third_party/source-map-scopes-codec/package/_dist/src/scopes.d.ts +4 -3
  65. package/front_end/third_party/source-map-scopes-codec/package/_dist/src/scopes.d.ts.map +1 -1
  66. package/front_end/third_party/source-map-scopes-codec/package/deno.json +6 -2
  67. package/front_end/third_party/source-map-scopes-codec/package/package.json +1 -1
  68. package/front_end/third_party/source-map-scopes-codec/package/src/builder/builder.js +18 -2
  69. package/front_end/third_party/source-map-scopes-codec/package/src/builder/builder.js.map +1 -1
  70. package/front_end/third_party/source-map-scopes-codec/package/src/builder/builder.ts +22 -3
  71. package/front_end/third_party/source-map-scopes-codec/package/src/builder/safe_builder.js +33 -5
  72. package/front_end/third_party/source-map-scopes-codec/package/src/builder/safe_builder.js.map +1 -1
  73. package/front_end/third_party/source-map-scopes-codec/package/src/builder/safe_builder.ts +41 -5
  74. package/front_end/third_party/source-map-scopes-codec/package/src/codec.js +0 -2
  75. package/front_end/third_party/source-map-scopes-codec/package/src/codec.js.map +1 -1
  76. package/front_end/third_party/source-map-scopes-codec/package/src/codec.ts +4 -3
  77. package/front_end/third_party/source-map-scopes-codec/package/src/decode/decode.js +99 -36
  78. package/front_end/third_party/source-map-scopes-codec/package/src/decode/decode.js.map +1 -1
  79. package/front_end/third_party/source-map-scopes-codec/package/src/decode/decode.ts +143 -49
  80. package/front_end/third_party/source-map-scopes-codec/package/src/encode/encode.js +3 -1
  81. package/front_end/third_party/source-map-scopes-codec/package/src/encode/encode.js.map +1 -1
  82. package/front_end/third_party/source-map-scopes-codec/package/src/encode/encode.ts +3 -1
  83. package/front_end/third_party/source-map-scopes-codec/package/src/encode/encoder.js +40 -18
  84. package/front_end/third_party/source-map-scopes-codec/package/src/encode/encoder.js.map +1 -1
  85. package/front_end/third_party/source-map-scopes-codec/package/src/encode/encoder.ts +51 -21
  86. package/front_end/third_party/source-map-scopes-codec/package/src/scopes.ts +4 -3
  87. package/front_end/third_party/source-map-scopes-codec/package/src/vlq.js +18 -4
  88. package/front_end/third_party/source-map-scopes-codec/package/src/vlq.js.map +1 -1
  89. package/front_end/third_party/source-map-scopes-codec/package/src/vlq.ts +18 -4
  90. package/front_end/ui/comments/CommentOverlayManager.ts +23 -10
  91. package/front_end/ui/components/text_editor/javascript.ts +128 -52
  92. package/front_end/ui/legacy/README.md +12 -12
  93. package/front_end/ui/legacy/SearchableView.ts +125 -74
  94. package/front_end/ui/legacy/components/source_frame/FontView.ts +5 -5
  95. package/front_end/ui/legacy/components/source_frame/ImageView.ts +13 -13
  96. package/front_end/ui/legacy/components/source_frame/ResourceSourceFrame.ts +2 -6
  97. package/front_end/ui/legacy/components/source_frame/SourceFrame.ts +3 -2
  98. package/mcp/mcp.ts +1 -0
  99. package/package.json +1 -1
  100. package/front_end/Images/nodeIcon.avif +0 -0
@@ -2,7 +2,6 @@
2
2
  // Use of this source code is governed by a BSD-style license that can be
3
3
  // found in the LICENSE file.
4
4
  export var Tag = /*#__PURE__*/ function(Tag) {
5
- Tag[Tag["EMPTY"] = 0] = "EMPTY";
6
5
  Tag[Tag["ORIGINAL_SCOPE_START"] = 1] = "ORIGINAL_SCOPE_START";
7
6
  Tag[Tag["ORIGINAL_SCOPE_END"] = 2] = "ORIGINAL_SCOPE_END";
8
7
  Tag[Tag["ORIGINAL_SCOPE_VARIABLES"] = 3] = "ORIGINAL_SCOPE_VARIABLES";
@@ -15,7 +14,6 @@ export var Tag = /*#__PURE__*/ function(Tag) {
15
14
  return Tag;
16
15
  }({});
17
16
  export var EncodedTag = /*#__PURE__*/ function(EncodedTag) {
18
- EncodedTag["EMPTY"] = "A";
19
17
  EncodedTag["ORIGINAL_SCOPE_START"] = "B";
20
18
  EncodedTag["ORIGINAL_SCOPE_END"] = "C";
21
19
  EncodedTag["ORIGINAL_SCOPE_VARIABLES"] = "D";
@@ -1 +1 @@
1
- {"version":3,"file":"codec.js","sources":["./codec.ts"],"names":[],"mappings":"AAAA,4DAA4D;AAC5D,yEAAyE;AACzE,6BAA6B;AAE7B,OAAO,IAAA,AAAW,6BAAA;;;;;;;;;;;SAAA;MAWjB;AAED,OAAO,IAAA,AAAW,oCAAA;;;;;;;;;;;SAAA;MAWjB;AAED,OAAO,IAAA,AAAW,4CAAA;;;;SAAA;MAIjB;AAED,OAAO,IAAA,AAAW,6CAAA;;;;;SAAA;MAKjB"}
1
+ {"version":3,"file":"codec.js","sources":["./codec.ts"],"names":[],"mappings":"AAAA,4DAA4D;AAC5D,yEAAyE;AACzE,6BAA6B;AAE7B,OAAO,IAAA,AAAW,6BAAA;;;;;;;;;;SAAA;MAUjB;AAED,OAAO,IAAA,AAAW,oCAAA;;;;;;;;;;SAAA;MAUjB;AAED,OAAO,IAAA,AAAW,4CAAA;;;;SAAA;MAIjB;AAED,OAAO,IAAA,AAAW,6CAAA;;;;;SAAA;MAKjB"}
@@ -3,7 +3,6 @@
3
3
  // found in the LICENSE file.
4
4
 
5
5
  export const enum Tag {
6
- EMPTY = 0x0,
7
6
  ORIGINAL_SCOPE_START = 0x1,
8
7
  ORIGINAL_SCOPE_END = 0x2,
9
8
  ORIGINAL_SCOPE_VARIABLES = 0x3,
@@ -16,7 +15,6 @@ export const enum Tag {
16
15
  }
17
16
 
18
17
  export const enum EncodedTag {
19
- EMPTY = "A", // 0x0
20
18
  ORIGINAL_SCOPE_START = "B", // 0x1
21
19
  ORIGINAL_SCOPE_END = "C", // 0x2
22
20
  ORIGINAL_SCOPE_VARIABLES = "D", // 0x3
@@ -53,5 +51,8 @@ export interface GeneratedRangeStartItem {
53
51
  flags: number;
54
52
  line?: number;
55
53
  column: number;
56
- definitionIdx?: number;
54
+ definition?: {
55
+ sourceIdx: number;
56
+ scopeIdx: number;
57
+ };
57
58
  }
@@ -2,6 +2,7 @@
2
2
  // Use of this source code is governed by a BSD-style license that can be
3
3
  // found in the LICENSE file.
4
4
  import { GeneratedRangeFlags, OriginalScopeFlags, Tag } from "../codec.js";
5
+ import { comparePositions } from "../util.js";
5
6
  import { TokenIterator } from "../vlq.js";
6
7
  /**
7
8
  * The mode decides how well-formed the encoded scopes have to be, to be accepted by the decoder.
@@ -45,14 +46,14 @@ export function decode(sourceMap, options = DEFAULT_DECODE_OPTIONS) {
45
46
  return decodeMap(sourceMap, opts);
46
47
  }
47
48
  function decodeMap(sourceMap, options) {
48
- if (!sourceMap.scopes || !sourceMap.names) {
49
+ if (!sourceMap.scopes && !sourceMap.ranges || !sourceMap.names) {
49
50
  return {
50
51
  scopes: [],
51
52
  ranges: [],
52
53
  hasVariableAndBindingInfo: false
53
54
  };
54
55
  }
55
- return new Decoder(sourceMap.scopes, sourceMap.names, options).decode();
56
+ return new Decoder(sourceMap.scopes ?? [], sourceMap.ranges ?? [], sourceMap.names, options).decode();
56
57
  }
57
58
  function decodeIndexMap(sourceMap, options) {
58
59
  const scopeInfo = {
@@ -81,12 +82,15 @@ const DEFAULT_SCOPE_STATE = {
81
82
  const DEFAULT_RANGE_STATE = {
82
83
  line: 0,
83
84
  column: 0,
85
+ defSourceIdx: 0,
84
86
  defScopeIdx: 0
85
87
  };
86
88
  class Decoder {
87
89
  #encodedScopes;
90
+ #encodedRanges;
88
91
  #names;
89
92
  #mode;
93
+ #generatedOffset;
90
94
  #scopes = [];
91
95
  #ranges = [];
92
96
  #scopeState = {
@@ -97,27 +101,53 @@ class Decoder {
97
101
  };
98
102
  #scopeStack = [];
99
103
  #rangeStack = [];
104
+ #currentRootScopes = [];
100
105
  #flatOriginalScopes = [];
106
+ #currentFlatScopes = [];
101
107
  #subRangeBindingsForRange = new Map();
102
108
  #seenOriginalScopeVariables = false;
103
109
  #seenGeneratedRangeBindings = false;
104
- constructor(scopes, names, options){
110
+ constructor(scopes, ranges, names, options){
105
111
  this.#encodedScopes = scopes;
112
+ this.#encodedRanges = ranges;
106
113
  this.#names = names;
107
114
  this.#mode = options.mode;
108
- this.#rangeState.line = options.generatedOffset.line;
109
- this.#rangeState.column = options.generatedOffset.column;
115
+ this.#generatedOffset = options.generatedOffset;
110
116
  }
111
117
  decode() {
112
- const iter = new TokenIterator(this.#encodedScopes);
118
+ for (const encodedScope of this.#encodedScopes){
119
+ if (encodedScope === null) {
120
+ this.#scopes.push(null);
121
+ this.#flatOriginalScopes.push(null);
122
+ continue;
123
+ }
124
+ this.#decodeScopes(encodedScope);
125
+ }
126
+ for (const encodedRange of this.#encodedRanges){
127
+ this.#decodeRanges(encodedRange);
128
+ }
129
+ const info = {
130
+ scopes: this.#scopes,
131
+ ranges: this.#ranges,
132
+ hasVariableAndBindingInfo: this.#seenOriginalScopeVariables && this.#seenGeneratedRangeBindings
133
+ };
134
+ this.#scopes = [];
135
+ this.#ranges = [];
136
+ this.#currentRootScopes = [];
137
+ this.#flatOriginalScopes = [];
138
+ this.#currentFlatScopes = [];
139
+ this.#seenOriginalScopeVariables = false;
140
+ this.#seenGeneratedRangeBindings = false;
141
+ return info;
142
+ }
143
+ #decodeScopes(encodedScope) {
144
+ Object.assign(this.#scopeState, DEFAULT_SCOPE_STATE);
145
+ this.#currentRootScopes = [];
146
+ this.#currentFlatScopes = [];
147
+ const iter = new TokenIterator(encodedScope, this.#mode === 1);
113
148
  while(iter.hasNext()){
114
149
  const tag = iter.nextUnsignedVLQ();
115
150
  switch(tag){
116
- case Tag.EMPTY:
117
- {
118
- this.#scopes.push(null);
119
- break;
120
- }
121
151
  case Tag.ORIGINAL_SCOPE_START:
122
152
  {
123
153
  const item = {
@@ -149,17 +179,57 @@ class Decoder {
149
179
  this.#handleOriginalScopeEndItem(iter.nextUnsignedVLQ(), iter.nextUnsignedVLQ());
150
180
  break;
151
181
  }
182
+ case Tag.VENDOR_EXTENSION:
183
+ {
184
+ const _extensionNameIdx = iter.nextUnsignedVLQ();
185
+ break;
186
+ }
187
+ default:
188
+ {
189
+ this.#throwInStrictMode(`Encountered illegal item tag ${tag}`);
190
+ break;
191
+ }
192
+ }
193
+ // Consume any trailing VLQ and the ","
194
+ while(iter.hasNext() && iter.peek() !== ",")iter.nextUnsignedVLQ();
195
+ if (iter.hasNext()) iter.nextChar();
196
+ }
197
+ if (this.#scopeStack.length > 0) {
198
+ this.#throwInStrictMode("Encountered ORIGINAL_SCOPE_START without matching END!");
199
+ this.#scopeStack.length = 0;
200
+ }
201
+ this.#scopes.push(this.#currentRootScopes);
202
+ this.#flatOriginalScopes.push(this.#currentFlatScopes);
203
+ }
204
+ #decodeRanges(encodedRanges) {
205
+ Object.assign(this.#rangeState, DEFAULT_RANGE_STATE);
206
+ this.#rangeState.line = this.#generatedOffset.line;
207
+ this.#rangeState.column = this.#generatedOffset.column;
208
+ const prevLastRange = this.#ranges.at(-1);
209
+ const prevRangesLength = this.#ranges.length;
210
+ const iter = new TokenIterator(encodedRanges, this.#mode === 1);
211
+ while(iter.hasNext()){
212
+ const tag = iter.nextUnsignedVLQ();
213
+ switch(tag){
152
214
  case Tag.GENERATED_RANGE_START:
153
215
  {
154
216
  const flags = iter.nextUnsignedVLQ();
155
217
  const line = flags & GeneratedRangeFlags.HAS_LINE ? iter.nextUnsignedVLQ() : undefined;
156
218
  const column = iter.nextUnsignedVLQ();
157
- const definitionIdx = flags & GeneratedRangeFlags.HAS_DEFINITION ? iter.nextSignedVLQ() : undefined;
219
+ let definition;
220
+ if (flags & GeneratedRangeFlags.HAS_DEFINITION) {
221
+ const sourceIdx = iter.nextSignedVLQ();
222
+ const scopeIdx = sourceIdx === 0 ? iter.nextSignedVLQ() : iter.nextUnsignedVLQ();
223
+ definition = {
224
+ sourceIdx,
225
+ scopeIdx
226
+ };
227
+ }
158
228
  this.#handleGeneratedRangeStartItem({
159
229
  flags,
160
230
  line,
161
231
  column,
162
- definitionIdx
232
+ definition
163
233
  });
164
234
  break;
165
235
  }
@@ -215,27 +285,17 @@ class Decoder {
215
285
  break;
216
286
  }
217
287
  }
218
- // Consume any trailing VLQ and the the ","
288
+ // Consume any trailing VLQ and the ","
219
289
  while(iter.hasNext() && iter.peek() !== ",")iter.nextUnsignedVLQ();
220
290
  if (iter.hasNext()) iter.nextChar();
221
291
  }
222
- if (this.#scopeStack.length > 0) {
223
- this.#throwInStrictMode("Encountered ORIGINAL_SCOPE_START without matching END!");
224
- }
225
292
  if (this.#rangeStack.length > 0) {
226
293
  this.#throwInStrictMode("Encountered GENERATED_RANGE_START without matching END!");
294
+ this.#rangeStack.length = 0;
295
+ }
296
+ if (prevLastRange && this.#ranges.length > prevRangesLength && comparePositions(this.#ranges[prevRangesLength].start, prevLastRange.end) < 0) {
297
+ this.#throwInStrictMode("Range segment starts before the previous segment ended!");
227
298
  }
228
- const info = {
229
- scopes: this.#scopes,
230
- ranges: this.#ranges,
231
- hasVariableAndBindingInfo: this.#seenOriginalScopeVariables && this.#seenGeneratedRangeBindings
232
- };
233
- this.#scopes = [];
234
- this.#ranges = [];
235
- this.#flatOriginalScopes = [];
236
- this.#seenOriginalScopeVariables = false;
237
- this.#seenGeneratedRangeBindings = false;
238
- return info;
239
299
  }
240
300
  #throwInStrictMode(message) {
241
301
  if (this.#mode === 1) throw new Error(message);
@@ -270,7 +330,7 @@ class Decoder {
270
330
  }
271
331
  scope.isStackFrame = Boolean(item.flags & OriginalScopeFlags.IS_STACK_FRAME);
272
332
  this.#scopeStack.push(scope);
273
- this.#flatOriginalScopes.push(scope);
333
+ this.#currentFlatScopes.push(scope);
274
334
  }
275
335
  #handleOriginalScopeVariablesItem(variableIdxs) {
276
336
  const scope = this.#scopeStack.at(-1);
@@ -304,9 +364,7 @@ class Decoder {
304
364
  scope.parent = parent;
305
365
  parent.children.push(scope);
306
366
  } else {
307
- this.#scopes.push(scope);
308
- this.#scopeState.line = 0;
309
- this.#scopeState.column = 0;
367
+ this.#currentRootScopes.push(scope);
310
368
  }
311
369
  }
312
370
  #handleGeneratedRangeStartItem(item) {
@@ -330,12 +388,17 @@ class Decoder {
330
388
  values: [],
331
389
  children: []
332
390
  };
333
- if (item.definitionIdx !== undefined) {
334
- this.#rangeState.defScopeIdx += item.definitionIdx;
335
- if (this.#rangeState.defScopeIdx < 0 || this.#rangeState.defScopeIdx >= this.#flatOriginalScopes.length) {
391
+ if (item.definition !== undefined) {
392
+ this.#rangeState.defSourceIdx += item.definition.sourceIdx;
393
+ if (item.definition.sourceIdx !== 0) {
394
+ this.#rangeState.defScopeIdx = 0;
395
+ }
396
+ this.#rangeState.defScopeIdx += item.definition.scopeIdx;
397
+ const originalScope = this.#flatOriginalScopes[this.#rangeState.defSourceIdx]?.[this.#rangeState.defScopeIdx];
398
+ if (!originalScope) {
336
399
  this.#throwInStrictMode("Invalid definition scope index");
337
400
  } else {
338
- range.originalScope = this.#flatOriginalScopes[this.#rangeState.defScopeIdx];
401
+ range.originalScope = originalScope;
339
402
  }
340
403
  }
341
404
  this.#rangeStack.push(range);
@@ -1 +1 @@
1
- {"version":3,"file":"decode.js","sources":["./decode.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"decode.js","sources":["./decode.ts"],"names":[],"mappings":"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"}
@@ -19,6 +19,7 @@ import type {
19
19
  SourceMapJson,
20
20
  SubRangeBinding,
21
21
  } from "../scopes.ts";
22
+ import { comparePositions } from "../util.js";
22
23
  import { TokenIterator } from "../vlq.js";
23
24
 
24
25
  /**
@@ -75,11 +76,16 @@ function decodeMap(
75
76
  sourceMap: SourceMapJson,
76
77
  options: DecodeOptions,
77
78
  ): DecodedScopeInfo {
78
- if (!sourceMap.scopes || !sourceMap.names) {
79
+ if ((!sourceMap.scopes && !sourceMap.ranges) || !sourceMap.names) {
79
80
  return { scopes: [], ranges: [], hasVariableAndBindingInfo: false };
80
81
  }
81
82
 
82
- return new Decoder(sourceMap.scopes, sourceMap.names, options).decode();
83
+ return new Decoder(
84
+ sourceMap.scopes ?? [],
85
+ sourceMap.ranges ?? [],
86
+ sourceMap.names,
87
+ options,
88
+ ).decode();
83
89
  }
84
90
 
85
91
  function decodeIndexMap(
@@ -116,15 +122,18 @@ const DEFAULT_SCOPE_STATE = {
116
122
  const DEFAULT_RANGE_STATE = {
117
123
  line: 0,
118
124
  column: 0,
125
+ defSourceIdx: 0,
119
126
  defScopeIdx: 0,
120
127
  };
121
128
 
122
129
  class Decoder {
123
- readonly #encodedScopes: string;
130
+ readonly #encodedScopes: (string | null)[];
131
+ readonly #encodedRanges: string[];
124
132
  readonly #names: string[];
125
133
  readonly #mode: DecodeMode;
134
+ readonly #generatedOffset: Position;
126
135
 
127
- #scopes: (OriginalScope | null)[] = [];
136
+ #scopes: (OriginalScope[] | null)[] = [];
128
137
  #ranges: GeneratedRange[] = [];
129
138
 
130
139
  readonly #scopeState = { ...DEFAULT_SCOPE_STATE };
@@ -133,7 +142,9 @@ class Decoder {
133
142
  readonly #scopeStack: OriginalScope[] = [];
134
143
  readonly #rangeStack: GeneratedRange[] = [];
135
144
 
136
- #flatOriginalScopes: OriginalScope[] = [];
145
+ #currentRootScopes: OriginalScope[] = [];
146
+ #flatOriginalScopes: (OriginalScope[] | null)[] = [];
147
+ #currentFlatScopes: OriginalScope[] = [];
137
148
  #subRangeBindingsForRange = new Map<
138
149
  GeneratedRange,
139
150
  Map<number, [number, number, number][]>
@@ -142,24 +153,64 @@ class Decoder {
142
153
  #seenOriginalScopeVariables = false;
143
154
  #seenGeneratedRangeBindings = false;
144
155
 
145
- constructor(scopes: string, names: string[], options: DecodeOptions) {
156
+ constructor(
157
+ scopes: (string | null)[],
158
+ ranges: string[],
159
+ names: string[],
160
+ options: DecodeOptions,
161
+ ) {
146
162
  this.#encodedScopes = scopes;
163
+ this.#encodedRanges = ranges;
147
164
  this.#names = names;
148
165
  this.#mode = options.mode;
149
- this.#rangeState.line = options.generatedOffset.line;
150
- this.#rangeState.column = options.generatedOffset.column;
166
+ this.#generatedOffset = options.generatedOffset;
151
167
  }
152
168
 
153
169
  decode(): DecodedScopeInfo {
154
- const iter = new TokenIterator(this.#encodedScopes);
170
+ for (const encodedScope of this.#encodedScopes) {
171
+ if (encodedScope === null) {
172
+ this.#scopes.push(null);
173
+ this.#flatOriginalScopes.push(null);
174
+ continue;
175
+ }
176
+ this.#decodeScopes(encodedScope);
177
+ }
178
+
179
+ for (const encodedRange of this.#encodedRanges) {
180
+ this.#decodeRanges(encodedRange);
181
+ }
182
+
183
+ const info = {
184
+ scopes: this.#scopes,
185
+ ranges: this.#ranges,
186
+ hasVariableAndBindingInfo: this.#seenOriginalScopeVariables &&
187
+ this.#seenGeneratedRangeBindings,
188
+ };
189
+
190
+ this.#scopes = [];
191
+ this.#ranges = [];
192
+ this.#currentRootScopes = [];
193
+ this.#flatOriginalScopes = [];
194
+ this.#currentFlatScopes = [];
195
+ this.#seenOriginalScopeVariables = false;
196
+ this.#seenGeneratedRangeBindings = false;
197
+
198
+ return info;
199
+ }
200
+
201
+ #decodeScopes(encodedScope: string) {
202
+ Object.assign(this.#scopeState, DEFAULT_SCOPE_STATE);
203
+ this.#currentRootScopes = [];
204
+ this.#currentFlatScopes = [];
205
+
206
+ const iter = new TokenIterator(
207
+ encodedScope,
208
+ this.#mode === DecodeMode.STRICT,
209
+ );
155
210
 
156
211
  while (iter.hasNext()) {
157
212
  const tag = iter.nextUnsignedVLQ();
158
213
  switch (tag) {
159
- case Tag.EMPTY: {
160
- this.#scopes.push(null);
161
- break;
162
- }
163
214
  case Tag.ORIGINAL_SCOPE_START: {
164
215
  const item: OriginalScopeStartItem = {
165
216
  flags: iter.nextUnsignedVLQ(),
@@ -195,6 +246,47 @@ class Decoder {
195
246
  );
196
247
  break;
197
248
  }
249
+ case Tag.VENDOR_EXTENSION: {
250
+ const _extensionNameIdx = iter.nextUnsignedVLQ();
251
+ break;
252
+ }
253
+ default: {
254
+ this.#throwInStrictMode(`Encountered illegal item tag ${tag}`);
255
+ break;
256
+ }
257
+ }
258
+
259
+ // Consume any trailing VLQ and the ","
260
+ while (iter.hasNext() && iter.peek() !== ",") iter.nextUnsignedVLQ();
261
+ if (iter.hasNext()) iter.nextChar();
262
+ }
263
+
264
+ if (this.#scopeStack.length > 0) {
265
+ this.#throwInStrictMode(
266
+ "Encountered ORIGINAL_SCOPE_START without matching END!",
267
+ );
268
+ this.#scopeStack.length = 0;
269
+ }
270
+
271
+ this.#scopes.push(this.#currentRootScopes);
272
+ this.#flatOriginalScopes.push(this.#currentFlatScopes);
273
+ }
274
+
275
+ #decodeRanges(encodedRanges: string) {
276
+ Object.assign(this.#rangeState, DEFAULT_RANGE_STATE);
277
+ this.#rangeState.line = this.#generatedOffset.line;
278
+ this.#rangeState.column = this.#generatedOffset.column;
279
+ const prevLastRange = this.#ranges.at(-1);
280
+ const prevRangesLength = this.#ranges.length;
281
+
282
+ const iter = new TokenIterator(
283
+ encodedRanges,
284
+ this.#mode === DecodeMode.STRICT,
285
+ );
286
+
287
+ while (iter.hasNext()) {
288
+ const tag = iter.nextUnsignedVLQ();
289
+ switch (tag) {
198
290
  case Tag.GENERATED_RANGE_START: {
199
291
  const flags = iter.nextUnsignedVLQ();
200
292
  const line = flags & GeneratedRangeFlags.HAS_LINE
@@ -202,15 +294,20 @@ class Decoder {
202
294
  : undefined;
203
295
  const column = iter.nextUnsignedVLQ();
204
296
 
205
- const definitionIdx = flags & GeneratedRangeFlags.HAS_DEFINITION
206
- ? iter.nextSignedVLQ()
207
- : undefined;
297
+ let definition: { sourceIdx: number; scopeIdx: number } | undefined;
298
+ if (flags & GeneratedRangeFlags.HAS_DEFINITION) {
299
+ const sourceIdx = iter.nextSignedVLQ();
300
+ const scopeIdx = sourceIdx === 0
301
+ ? iter.nextSignedVLQ()
302
+ : iter.nextUnsignedVLQ();
303
+ definition = { sourceIdx, scopeIdx };
304
+ }
208
305
 
209
306
  this.#handleGeneratedRangeStartItem({
210
307
  flags,
211
308
  line,
212
309
  column,
213
- definitionIdx,
310
+ definition,
214
311
  });
215
312
  break;
216
313
  }
@@ -272,36 +369,31 @@ class Decoder {
272
369
  }
273
370
  }
274
371
 
275
- // Consume any trailing VLQ and the the ","
372
+ // Consume any trailing VLQ and the ","
276
373
  while (iter.hasNext() && iter.peek() !== ",") iter.nextUnsignedVLQ();
277
374
  if (iter.hasNext()) iter.nextChar();
278
375
  }
279
376
 
280
- if (this.#scopeStack.length > 0) {
281
- this.#throwInStrictMode(
282
- "Encountered ORIGINAL_SCOPE_START without matching END!",
283
- );
284
- }
285
377
  if (this.#rangeStack.length > 0) {
286
378
  this.#throwInStrictMode(
287
379
  "Encountered GENERATED_RANGE_START without matching END!",
288
380
  );
381
+ this.#rangeStack.length = 0;
289
382
  }
290
383
 
291
- const info = {
292
- scopes: this.#scopes,
293
- ranges: this.#ranges,
294
- hasVariableAndBindingInfo: this.#seenOriginalScopeVariables &&
295
- this.#seenGeneratedRangeBindings,
296
- };
297
-
298
- this.#scopes = [];
299
- this.#ranges = [];
300
- this.#flatOriginalScopes = [];
301
- this.#seenOriginalScopeVariables = false;
302
- this.#seenGeneratedRangeBindings = false;
303
-
304
- return info;
384
+ if (
385
+ prevLastRange &&
386
+ this.#ranges.length > prevRangesLength &&
387
+ comparePositions(
388
+ this.#ranges[prevRangesLength].start,
389
+ prevLastRange.end,
390
+ ) <
391
+ 0
392
+ ) {
393
+ this.#throwInStrictMode(
394
+ "Range segment starts before the previous segment ended!",
395
+ );
396
+ }
305
397
  }
306
398
 
307
399
  #throwInStrictMode(message: string) {
@@ -337,7 +429,7 @@ class Decoder {
337
429
  );
338
430
 
339
431
  this.#scopeStack.push(scope);
340
- this.#flatOriginalScopes.push(scope);
432
+ this.#currentFlatScopes.push(scope);
341
433
  }
342
434
 
343
435
  #handleOriginalScopeVariablesItem(variableIdxs: number[]) {
@@ -381,9 +473,7 @@ class Decoder {
381
473
  scope.parent = parent;
382
474
  parent.children.push(scope);
383
475
  } else {
384
- this.#scopes.push(scope);
385
- this.#scopeState.line = 0;
386
- this.#scopeState.column = 0;
476
+ this.#currentRootScopes.push(scope);
387
477
  }
388
478
  }
389
479
 
@@ -412,16 +502,20 @@ class Decoder {
412
502
  children: [],
413
503
  };
414
504
 
415
- if (item.definitionIdx !== undefined) {
416
- this.#rangeState.defScopeIdx += item.definitionIdx;
417
- if (
418
- this.#rangeState.defScopeIdx < 0 ||
419
- this.#rangeState.defScopeIdx >= this.#flatOriginalScopes.length
420
- ) {
505
+ if (item.definition !== undefined) {
506
+ this.#rangeState.defSourceIdx += item.definition.sourceIdx;
507
+ if (item.definition.sourceIdx !== 0) {
508
+ this.#rangeState.defScopeIdx = 0;
509
+ }
510
+ this.#rangeState.defScopeIdx += item.definition.scopeIdx;
511
+
512
+ const originalScope = this
513
+ .#flatOriginalScopes[this.#rangeState.defSourceIdx]
514
+ ?.[this.#rangeState.defScopeIdx];
515
+ if (!originalScope) {
421
516
  this.#throwInStrictMode("Invalid definition scope index");
422
517
  } else {
423
- range.originalScope =
424
- this.#flatOriginalScopes[this.#rangeState.defScopeIdx];
518
+ range.originalScope = originalScope;
425
519
  }
426
520
  }
427
521
 
@@ -17,7 +17,9 @@ import { Encoder } from "./encoder.js";
17
17
  if (inputSourceMap.sources.length !== scopesInfo.scopes.length) {
18
18
  throw new Error(`SourceMapJson.sources.length must match ScopesInfo.scopes! ${inputSourceMap.sources.length} vs ${scopesInfo.scopes.length}`);
19
19
  }
20
- inputSourceMap.scopes = new Encoder(scopesInfo, inputSourceMap.names).encode();
20
+ const { scopes, ranges } = new Encoder(scopesInfo, inputSourceMap.names).encode();
21
+ inputSourceMap.scopes = scopes;
22
+ inputSourceMap.ranges = ranges;
21
23
  return inputSourceMap;
22
24
  }
23
25
  //# sourceMappingURL=encode.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"encode.js","sources":["./encode.ts"],"names":[],"mappings":"AAAA,4DAA4D;AAC5D,yEAAyE;AACzE,6BAA6B;AAG7B,SAAS,OAAO,uBAAuB;AAEvC;;;;;CAKC,GACD,OAAO,SAAS,OACd,UAAqB,EACrB,cAA8B;EAE9B,mBAAmB;IACjB,SAAS;IACT,UAAU;IACV,SAAS,IAAI,MAAM,WAAW,MAAM,CAAC,MAAM,EAAE,IAAI,CAAC;EACpD;EACA,eAAe,KAAK,KAAK,EAAE;EAE3B,IAAI,eAAe,OAAO,CAAC,MAAM,KAAK,WAAW,MAAM,CAAC,MAAM,EAAE;IAC9D,MAAM,IAAI,MACR,CAAC,2DAA2D,EAAE,eAAe,OAAO,CAAC,MAAM,CAAC,IAAI,EAAE,WAAW,MAAM,CAAC,MAAM,EAAE;EAEhI;EAEA,eAAe,MAAM,GAAG,IAAI,QAAQ,YAAY,eAAe,KAAK,EACjE,MAAM;EAET,OAAO;AACT"}
1
+ {"version":3,"file":"encode.js","sources":["./encode.ts"],"names":[],"mappings":"AAAA,4DAA4D;AAC5D,yEAAyE;AACzE,6BAA6B;AAG7B,SAAS,OAAO,uBAAuB;AAEvC;;;;;CAKC,GACD,OAAO,SAAS,OACd,UAAqB,EACrB,cAA8B;EAE9B,mBAAmB;IACjB,SAAS;IACT,UAAU;IACV,SAAS,IAAI,MAAM,WAAW,MAAM,CAAC,MAAM,EAAE,IAAI,CAAC;EACpD;EACA,eAAe,KAAK,KAAK,EAAE;EAE3B,IAAI,eAAe,OAAO,CAAC,MAAM,KAAK,WAAW,MAAM,CAAC,MAAM,EAAE;IAC9D,MAAM,IAAI,MACR,CAAC,2DAA2D,EAAE,eAAe,OAAO,CAAC,MAAM,CAAC,IAAI,EAAE,WAAW,MAAM,CAAC,MAAM,EAAE;EAEhI;EAEA,MAAM,EAAE,MAAM,EAAE,MAAM,EAAE,GAAG,IAAI,QAAQ,YAAY,eAAe,KAAK,EACpE,MAAM;EACT,eAAe,MAAM,GAAG;EACxB,eAAe,MAAM,GAAG;EAExB,OAAO;AACT"}
@@ -28,8 +28,10 @@ export function encode(
28
28
  );
29
29
  }
30
30
 
31
- inputSourceMap.scopes = new Encoder(scopesInfo, inputSourceMap.names)
31
+ const { scopes, ranges } = new Encoder(scopesInfo, inputSourceMap.names)
32
32
  .encode();
33
+ inputSourceMap.scopes = scopes;
34
+ inputSourceMap.ranges = ranges;
33
35
 
34
36
  return inputSourceMap;
35
37
  }