devtools-tracing 1.0.1 → 1.1.1

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 (132) hide show
  1. package/generate.ts +32 -26
  2. package/index.ts +2 -1
  3. package/lib/extension-api/ExtensionAPI.d.ts +357 -0
  4. package/lib/front_end/models/bindings/CSSWorkspaceBinding.ts +318 -0
  5. package/lib/front_end/models/bindings/CompilerScriptMapping.ts +536 -0
  6. package/lib/front_end/models/bindings/ContentProviderBasedProject.ts +187 -0
  7. package/lib/front_end/models/bindings/DebuggerLanguagePlugins.ts +1197 -0
  8. package/lib/front_end/models/bindings/DebuggerWorkspaceBinding.ts +733 -0
  9. package/lib/front_end/models/bindings/DefaultScriptMapping.ts +141 -0
  10. package/lib/front_end/models/bindings/FileUtils.ts +228 -0
  11. package/lib/front_end/models/bindings/LiveLocation.ts +81 -0
  12. package/lib/front_end/models/bindings/NetworkProject.ts +157 -0
  13. package/lib/front_end/models/bindings/PresentationConsoleMessageHelper.ts +312 -0
  14. package/lib/front_end/models/bindings/ResourceMapping.ts +539 -0
  15. package/lib/front_end/models/bindings/ResourceScriptMapping.ts +491 -0
  16. package/lib/front_end/models/bindings/ResourceUtils.ts +103 -0
  17. package/lib/front_end/models/bindings/SASSSourceMapping.ts +222 -0
  18. package/lib/front_end/models/bindings/StylesSourceMapping.ts +316 -0
  19. package/lib/front_end/models/bindings/TempFile.ts +67 -0
  20. package/lib/front_end/models/bindings/bindings.ts +39 -0
  21. package/lib/front_end/models/source_map_scopes/NamesResolver.ts +765 -0
  22. package/lib/front_end/models/source_map_scopes/ScopeChainModel.ts +84 -0
  23. package/lib/front_end/models/source_map_scopes/source_map_scopes.ts +11 -0
  24. package/lib/front_end/models/stack_trace/StackTrace.ts +53 -0
  25. package/lib/front_end/models/stack_trace/StackTraceImpl.ts +85 -0
  26. package/lib/front_end/models/stack_trace/StackTraceModel.ts +128 -0
  27. package/lib/front_end/models/stack_trace/Trie.ts +163 -0
  28. package/lib/front_end/models/stack_trace/stack_trace.ts +9 -0
  29. package/lib/front_end/models/stack_trace/stack_trace_impl.ts +13 -0
  30. package/lib/front_end/models/trace_source_maps_resolver/SourceMapsResolver.ts +240 -0
  31. package/lib/front_end/models/trace_source_maps_resolver/trace_source_maps_resolver.ts +5 -0
  32. package/lib/front_end/models/workspace/FileManager.ts +97 -0
  33. package/lib/front_end/models/workspace/IgnoreListManager.ts +628 -0
  34. package/lib/front_end/models/workspace/SearchConfig.ts +149 -0
  35. package/lib/front_end/models/workspace/UISourceCode.ts +698 -0
  36. package/lib/front_end/models/workspace/WorkspaceImpl.ts +339 -0
  37. package/lib/front_end/models/workspace/workspace.ts +17 -0
  38. package/lib/front_end/panels/timeline/TimelineUIUtils.ts +1029 -0
  39. package/lib/front_end/panels/timeline/extensions/ExtensionUI.ts +49 -0
  40. package/lib/front_end/panels/timeline/extensions/extensions.ts +9 -0
  41. package/lib/front_end/third_party/codemirror.next/LICENSE +21 -0
  42. package/lib/front_end/third_party/codemirror.next/README.chromium +30 -0
  43. package/lib/front_end/third_party/codemirror.next/bundle-tsconfig.json +24 -0
  44. package/lib/front_end/third_party/codemirror.next/bundle.ts +135 -0
  45. package/lib/front_end/third_party/codemirror.next/chunk/angular.js +2 -0
  46. package/lib/front_end/third_party/codemirror.next/chunk/angular.js.map +1 -0
  47. package/lib/front_end/third_party/codemirror.next/chunk/codemirror.js +2 -0
  48. package/lib/front_end/third_party/codemirror.next/chunk/codemirror.js.map +1 -0
  49. package/lib/front_end/third_party/codemirror.next/chunk/cpp.js +2 -0
  50. package/lib/front_end/third_party/codemirror.next/chunk/cpp.js.map +1 -0
  51. package/lib/front_end/third_party/codemirror.next/chunk/css.js +2 -0
  52. package/lib/front_end/third_party/codemirror.next/chunk/html.js +4 -0
  53. package/lib/front_end/third_party/codemirror.next/chunk/java.js +2 -0
  54. package/lib/front_end/third_party/codemirror.next/chunk/java.js.map +1 -0
  55. package/lib/front_end/third_party/codemirror.next/chunk/javascript.js +2 -0
  56. package/lib/front_end/third_party/codemirror.next/chunk/legacy.js +2 -0
  57. package/lib/front_end/third_party/codemirror.next/chunk/legacy.js.map +1 -0
  58. package/lib/front_end/third_party/codemirror.next/chunk/less.js +2 -0
  59. package/lib/front_end/third_party/codemirror.next/chunk/less.js.map +1 -0
  60. package/lib/front_end/third_party/codemirror.next/chunk/markdown.js +2 -0
  61. package/lib/front_end/third_party/codemirror.next/chunk/markdown.js.map +1 -0
  62. package/lib/front_end/third_party/codemirror.next/chunk/php.js +2 -0
  63. package/lib/front_end/third_party/codemirror.next/chunk/php.js.map +1 -0
  64. package/lib/front_end/third_party/codemirror.next/chunk/python.js +2 -0
  65. package/lib/front_end/third_party/codemirror.next/chunk/python.js.map +1 -0
  66. package/lib/front_end/third_party/codemirror.next/chunk/sass.js +2 -0
  67. package/lib/front_end/third_party/codemirror.next/chunk/sass.js.map +1 -0
  68. package/lib/front_end/third_party/codemirror.next/chunk/svelte.js +2 -0
  69. package/lib/front_end/third_party/codemirror.next/chunk/svelte.js.map +1 -0
  70. package/lib/front_end/third_party/codemirror.next/chunk/vue.js +2 -0
  71. package/lib/front_end/third_party/codemirror.next/chunk/vue.js.map +1 -0
  72. package/lib/front_end/third_party/codemirror.next/chunk/wast.js +2 -0
  73. package/lib/front_end/third_party/codemirror.next/chunk/wast.js.map +1 -0
  74. package/lib/front_end/third_party/codemirror.next/chunk/xml.js +2 -0
  75. package/lib/front_end/third_party/codemirror.next/chunk/xml.js.map +1 -0
  76. package/lib/front_end/third_party/codemirror.next/codemirror.next.d.ts +8057 -0
  77. package/lib/front_end/third_party/codemirror.next/codemirror.next.js +2 -0
  78. package/lib/front_end/third_party/codemirror.next/codemirror.next.js.map +1 -0
  79. package/lib/front_end/third_party/codemirror.next/package.json +43 -0
  80. package/lib/front_end/third_party/codemirror.next/rebuild.sh +6 -0
  81. package/lib/front_end/third_party/codemirror.next/rollup.config.mjs +49 -0
  82. package/lib/front_end/third_party/source-map-scopes-codec/LICENSE +26 -0
  83. package/lib/front_end/third_party/source-map-scopes-codec/README.chromium +31 -0
  84. package/lib/front_end/third_party/source-map-scopes-codec/package/CONTRIBUTING.md +33 -0
  85. package/lib/front_end/third_party/source-map-scopes-codec/package/LICENSE +26 -0
  86. package/lib/front_end/third_party/source-map-scopes-codec/package/README.md +64 -0
  87. package/lib/front_end/third_party/source-map-scopes-codec/package/_dist/src/builder/builder.d.ts +62 -0
  88. package/lib/front_end/third_party/source-map-scopes-codec/package/_dist/src/builder/builder.d.ts.map +1 -0
  89. package/lib/front_end/third_party/source-map-scopes-codec/package/_dist/src/builder/safe_builder.d.ts +37 -0
  90. package/lib/front_end/third_party/source-map-scopes-codec/package/_dist/src/builder/safe_builder.d.ts.map +1 -0
  91. package/lib/front_end/third_party/source-map-scopes-codec/package/_dist/src/decode/decode.d.ts +29 -0
  92. package/lib/front_end/third_party/source-map-scopes-codec/package/_dist/src/decode/decode.d.ts.map +1 -0
  93. package/lib/front_end/third_party/source-map-scopes-codec/package/_dist/src/encode/encode.d.ts +8 -0
  94. package/lib/front_end/third_party/source-map-scopes-codec/package/_dist/src/encode/encode.d.ts.map +1 -0
  95. package/lib/front_end/third_party/source-map-scopes-codec/package/_dist/src/mod.d.ts +6 -0
  96. package/lib/front_end/third_party/source-map-scopes-codec/package/_dist/src/mod.d.ts.map +1 -0
  97. package/lib/front_end/third_party/source-map-scopes-codec/package/deno.json +21 -0
  98. package/lib/front_end/third_party/source-map-scopes-codec/package/package.json +14 -0
  99. package/lib/front_end/third_party/source-map-scopes-codec/package/src/builder/builder.js +196 -0
  100. package/lib/front_end/third_party/source-map-scopes-codec/package/src/builder/builder.js.map +1 -0
  101. package/lib/front_end/third_party/source-map-scopes-codec/package/src/builder/builder.ts +262 -0
  102. package/lib/front_end/third_party/source-map-scopes-codec/package/src/builder/safe_builder.js +235 -0
  103. package/lib/front_end/third_party/source-map-scopes-codec/package/src/builder/safe_builder.js.map +1 -0
  104. package/lib/front_end/third_party/source-map-scopes-codec/package/src/builder/safe_builder.ts +359 -0
  105. package/lib/front_end/third_party/source-map-scopes-codec/package/src/codec.js +39 -0
  106. package/lib/front_end/third_party/source-map-scopes-codec/package/src/codec.js.map +1 -0
  107. package/lib/front_end/third_party/source-map-scopes-codec/package/src/codec.ts +53 -0
  108. package/lib/front_end/third_party/source-map-scopes-codec/package/src/decode/decode.js +438 -0
  109. package/lib/front_end/third_party/source-map-scopes-codec/package/src/decode/decode.js.map +1 -0
  110. package/lib/front_end/third_party/source-map-scopes-codec/package/src/decode/decode.ts +539 -0
  111. package/lib/front_end/third_party/source-map-scopes-codec/package/src/encode/encode.js +23 -0
  112. package/lib/front_end/third_party/source-map-scopes-codec/package/src/encode/encode.js.map +1 -0
  113. package/lib/front_end/third_party/source-map-scopes-codec/package/src/encode/encode.ts +35 -0
  114. package/lib/front_end/third_party/source-map-scopes-codec/package/src/encode/encoder.js +257 -0
  115. package/lib/front_end/third_party/source-map-scopes-codec/package/src/encode/encoder.js.map +1 -0
  116. package/lib/front_end/third_party/source-map-scopes-codec/package/src/encode/encoder.ts +348 -0
  117. package/lib/front_end/third_party/source-map-scopes-codec/package/src/mod.js +8 -0
  118. package/lib/front_end/third_party/source-map-scopes-codec/package/src/mod.js.map +1 -0
  119. package/lib/front_end/third_party/source-map-scopes-codec/package/src/mod.ts +20 -0
  120. package/lib/front_end/third_party/source-map-scopes-codec/package/src/scopes-tsconfig.json +8 -0
  121. package/lib/front_end/third_party/source-map-scopes-codec/package/src/scopes.d.ts +184 -0
  122. package/lib/front_end/third_party/source-map-scopes-codec/package/src/util.js +9 -0
  123. package/lib/front_end/third_party/source-map-scopes-codec/package/src/util.js.map +1 -0
  124. package/lib/front_end/third_party/source-map-scopes-codec/package/src/util.ts +12 -0
  125. package/lib/front_end/third_party/source-map-scopes-codec/package/src/vlq.js +82 -0
  126. package/lib/front_end/third_party/source-map-scopes-codec/package/src/vlq.js.map +1 -0
  127. package/lib/front_end/third_party/source-map-scopes-codec/package/src/vlq.ts +99 -0
  128. package/lib/front_end/third_party/source-map-scopes-codec/source-map-scopes-codec.ts +5 -0
  129. package/lib/front_end/ui/legacy/theme_support/ThemeSupport.ts +222 -0
  130. package/lib/front_end/ui/legacy/theme_support/theme_support.ts +5 -0
  131. package/package.json +5 -5
  132. package/patches/chrome-devtools-frontend+1.0.1533544.patch +1549 -20
@@ -0,0 +1,438 @@
1
+ // Copyright 2025 The Chromium Authors. All rights reserved.
2
+ // Use of this source code is governed by a BSD-style license that can be
3
+ // found in the LICENSE file.
4
+ import { GeneratedRangeFlags, OriginalScopeFlags, Tag } from "../codec.js";
5
+ import { TokenIterator } from "../vlq.js";
6
+ /**
7
+ * The mode decides how well-formed the encoded scopes have to be, to be accepted by the decoder.
8
+ *
9
+ * LAX is the default and is much more lenient. It's still best effort though and the decoder doesn't
10
+ * implement any error recovery: e.g. superfluous "start" items can lead to whole trees being omitted.
11
+ *
12
+ * STRICT mode will throw in the following situations:
13
+ *
14
+ * - Encountering ORIGINAL_SCOPE_END, or GENERATED_RANGE_END items that don't have matching *_START items.
15
+ * - Encountering ORIGINAL_SCOPE_VARIABLES items outside a surrounding scope START/END.
16
+ * - Encountering GENERATED_RANGE_BINDINGS items outside a surrounding range START/END.
17
+ * - Miss-matches between the number of variables in a scope vs the number of value expressions in the ranges.
18
+ * - Out-of-bound indices into the "names" array.
19
+ */ export var DecodeMode = /*#__PURE__*/ function(DecodeMode) {
20
+ DecodeMode[DecodeMode["STRICT"] = 1] = "STRICT";
21
+ DecodeMode[DecodeMode["LAX"] = 2] = "LAX";
22
+ return DecodeMode;
23
+ }({});
24
+ export const DEFAULT_DECODE_OPTIONS = {
25
+ mode: 2,
26
+ generatedOffset: {
27
+ line: 0,
28
+ column: 0
29
+ }
30
+ };
31
+ export function decode(sourceMap, options = DEFAULT_DECODE_OPTIONS) {
32
+ const opts = {
33
+ ...DEFAULT_DECODE_OPTIONS,
34
+ ...options
35
+ };
36
+ if ("sections" in sourceMap) {
37
+ return decodeIndexMap(sourceMap, {
38
+ ...opts,
39
+ generatedOffset: {
40
+ line: 0,
41
+ column: 0
42
+ }
43
+ });
44
+ }
45
+ return decodeMap(sourceMap, opts);
46
+ }
47
+ function decodeMap(sourceMap, options) {
48
+ if (!sourceMap.scopes || !sourceMap.names) return {
49
+ scopes: [],
50
+ ranges: []
51
+ };
52
+ return new Decoder(sourceMap.scopes, sourceMap.names, options).decode();
53
+ }
54
+ function decodeIndexMap(sourceMap, options) {
55
+ const scopeInfo = {
56
+ scopes: [],
57
+ ranges: []
58
+ };
59
+ for (const section of sourceMap.sections){
60
+ const { scopes, ranges } = decode(section.map, {
61
+ ...options,
62
+ generatedOffset: section.offset
63
+ });
64
+ for (const scope of scopes)scopeInfo.scopes.push(scope);
65
+ for (const range of ranges)scopeInfo.ranges.push(range);
66
+ }
67
+ return scopeInfo;
68
+ }
69
+ const DEFAULT_SCOPE_STATE = {
70
+ line: 0,
71
+ column: 0,
72
+ name: 0,
73
+ kind: 0,
74
+ variable: 0
75
+ };
76
+ const DEFAULT_RANGE_STATE = {
77
+ line: 0,
78
+ column: 0,
79
+ defScopeIdx: 0
80
+ };
81
+ class Decoder {
82
+ #encodedScopes;
83
+ #names;
84
+ #mode;
85
+ #scopes = [];
86
+ #ranges = [];
87
+ #scopeState = {
88
+ ...DEFAULT_SCOPE_STATE
89
+ };
90
+ #rangeState = {
91
+ ...DEFAULT_RANGE_STATE
92
+ };
93
+ #scopeStack = [];
94
+ #rangeStack = [];
95
+ #flatOriginalScopes = [];
96
+ #subRangeBindingsForRange = new Map();
97
+ constructor(scopes, names, options){
98
+ this.#encodedScopes = scopes;
99
+ this.#names = names;
100
+ this.#mode = options.mode;
101
+ this.#rangeState.line = options.generatedOffset.line;
102
+ this.#rangeState.column = options.generatedOffset.column;
103
+ }
104
+ decode() {
105
+ const iter = new TokenIterator(this.#encodedScopes);
106
+ while(iter.hasNext()){
107
+ if (iter.peek() === ",") {
108
+ iter.nextChar(); // Consume ",".
109
+ this.#scopes.push(null); // Add an EmptyItem;
110
+ continue;
111
+ }
112
+ const tag = iter.nextUnsignedVLQ();
113
+ switch(tag){
114
+ case Tag.ORIGINAL_SCOPE_START:
115
+ {
116
+ const item = {
117
+ flags: iter.nextUnsignedVLQ(),
118
+ line: iter.nextUnsignedVLQ(),
119
+ column: iter.nextUnsignedVLQ()
120
+ };
121
+ if (item.flags & OriginalScopeFlags.HAS_NAME) {
122
+ item.nameIdx = iter.nextSignedVLQ();
123
+ }
124
+ if (item.flags & OriginalScopeFlags.HAS_KIND) {
125
+ item.kindIdx = iter.nextSignedVLQ();
126
+ }
127
+ this.#handleOriginalScopeStartItem(item);
128
+ break;
129
+ }
130
+ case Tag.ORIGINAL_SCOPE_VARIABLES:
131
+ {
132
+ const variableIdxs = [];
133
+ while(iter.hasNext() && iter.peek() !== ","){
134
+ variableIdxs.push(iter.nextSignedVLQ());
135
+ }
136
+ this.#handleOriginalScopeVariablesItem(variableIdxs);
137
+ break;
138
+ }
139
+ case Tag.ORIGINAL_SCOPE_END:
140
+ {
141
+ this.#handleOriginalScopeEndItem(iter.nextUnsignedVLQ(), iter.nextUnsignedVLQ());
142
+ break;
143
+ }
144
+ case Tag.GENERATED_RANGE_START:
145
+ {
146
+ const flags = iter.nextUnsignedVLQ();
147
+ const line = flags & GeneratedRangeFlags.HAS_LINE ? iter.nextUnsignedVLQ() : undefined;
148
+ const column = iter.nextUnsignedVLQ();
149
+ const definitionIdx = flags & GeneratedRangeFlags.HAS_DEFINITION ? iter.nextSignedVLQ() : undefined;
150
+ this.#handleGeneratedRangeStartItem({
151
+ flags,
152
+ line,
153
+ column,
154
+ definitionIdx
155
+ });
156
+ break;
157
+ }
158
+ case Tag.GENERATED_RANGE_END:
159
+ {
160
+ const lineOrColumn = iter.nextUnsignedVLQ();
161
+ const maybeColumn = iter.hasNext() && iter.peek() !== "," ? iter.nextUnsignedVLQ() : undefined;
162
+ if (maybeColumn !== undefined) {
163
+ this.#handleGeneratedRangeEndItem(lineOrColumn, maybeColumn);
164
+ } else {
165
+ this.#handleGeneratedRangeEndItem(0, lineOrColumn);
166
+ }
167
+ break;
168
+ }
169
+ case Tag.GENERATED_RANGE_BINDINGS:
170
+ {
171
+ const valueIdxs = [];
172
+ while(iter.hasNext() && iter.peek() !== ","){
173
+ valueIdxs.push(iter.nextUnsignedVLQ());
174
+ }
175
+ this.#handleGeneratedRangeBindingsItem(valueIdxs);
176
+ break;
177
+ }
178
+ case Tag.GENERATED_RANGE_SUBRANGE_BINDING:
179
+ {
180
+ const variableIndex = iter.nextUnsignedVLQ();
181
+ const bindings = [];
182
+ while(iter.hasNext() && iter.peek() !== ","){
183
+ bindings.push([
184
+ iter.nextUnsignedVLQ(),
185
+ iter.nextUnsignedVLQ(),
186
+ iter.nextUnsignedVLQ()
187
+ ]);
188
+ }
189
+ this.#recordGeneratedSubRangeBindingItem(variableIndex, bindings);
190
+ break;
191
+ }
192
+ case Tag.GENERATED_RANGE_CALL_SITE:
193
+ {
194
+ this.#handleGeneratedRangeCallSite(iter.nextUnsignedVLQ(), iter.nextUnsignedVLQ(), iter.nextUnsignedVLQ());
195
+ break;
196
+ }
197
+ }
198
+ // Consume any trailing VLQ and the the ","
199
+ while(iter.hasNext() && iter.peek() !== ",")iter.nextUnsignedVLQ();
200
+ if (iter.hasNext()) iter.nextChar();
201
+ }
202
+ if (iter.currentChar() === ",") {
203
+ // Handle trailing EmptyItem.
204
+ this.#scopes.push(null);
205
+ }
206
+ if (this.#scopeStack.length > 0) {
207
+ this.#throwInStrictMode("Encountered ORIGINAL_SCOPE_START without matching END!");
208
+ }
209
+ if (this.#rangeStack.length > 0) {
210
+ this.#throwInStrictMode("Encountered GENERATED_RANGE_START without matching END!");
211
+ }
212
+ const info = {
213
+ scopes: this.#scopes,
214
+ ranges: this.#ranges
215
+ };
216
+ this.#scopes = [];
217
+ this.#ranges = [];
218
+ this.#flatOriginalScopes = [];
219
+ return info;
220
+ }
221
+ #throwInStrictMode(message) {
222
+ if (this.#mode === 1) throw new Error(message);
223
+ }
224
+ #handleOriginalScopeStartItem(item) {
225
+ this.#scopeState.line += item.line;
226
+ if (item.line === 0) {
227
+ this.#scopeState.column += item.column;
228
+ } else {
229
+ this.#scopeState.column = item.column;
230
+ }
231
+ const scope = {
232
+ start: {
233
+ line: this.#scopeState.line,
234
+ column: this.#scopeState.column
235
+ },
236
+ end: {
237
+ line: this.#scopeState.line,
238
+ column: this.#scopeState.column
239
+ },
240
+ isStackFrame: false,
241
+ variables: [],
242
+ children: []
243
+ };
244
+ if (item.nameIdx !== undefined) {
245
+ this.#scopeState.name += item.nameIdx;
246
+ scope.name = this.#resolveName(this.#scopeState.name);
247
+ }
248
+ if (item.kindIdx !== undefined) {
249
+ this.#scopeState.kind += item.kindIdx;
250
+ scope.kind = this.#resolveName(this.#scopeState.kind);
251
+ }
252
+ scope.isStackFrame = Boolean(item.flags & OriginalScopeFlags.IS_STACK_FRAME);
253
+ this.#scopeStack.push(scope);
254
+ this.#flatOriginalScopes.push(scope);
255
+ }
256
+ #handleOriginalScopeVariablesItem(variableIdxs) {
257
+ const scope = this.#scopeStack.at(-1);
258
+ if (!scope) {
259
+ this.#throwInStrictMode("Encountered ORIGINAL_SCOPE_VARIABLES without surrounding ORIGINAL_SCOPE_START");
260
+ return;
261
+ }
262
+ for (const variableIdx of variableIdxs){
263
+ this.#scopeState.variable += variableIdx;
264
+ scope.variables.push(this.#resolveName(this.#scopeState.variable));
265
+ }
266
+ }
267
+ #handleOriginalScopeEndItem(line, column) {
268
+ this.#scopeState.line += line;
269
+ if (line === 0) {
270
+ this.#scopeState.column += column;
271
+ } else {
272
+ this.#scopeState.column = column;
273
+ }
274
+ const scope = this.#scopeStack.pop();
275
+ if (!scope) {
276
+ this.#throwInStrictMode("Encountered ORIGINAL_SCOPE_END without matching ORIGINAL_SCOPE_START!");
277
+ return;
278
+ }
279
+ scope.end = {
280
+ line: this.#scopeState.line,
281
+ column: this.#scopeState.column
282
+ };
283
+ if (this.#scopeStack.length > 0) {
284
+ const parent = this.#scopeStack.at(-1);
285
+ scope.parent = parent;
286
+ parent.children.push(scope);
287
+ } else {
288
+ this.#scopes.push(scope);
289
+ this.#scopeState.line = 0;
290
+ this.#scopeState.column = 0;
291
+ }
292
+ }
293
+ #handleGeneratedRangeStartItem(item) {
294
+ if (item.line !== undefined) {
295
+ this.#rangeState.line += item.line;
296
+ this.#rangeState.column = item.column;
297
+ } else {
298
+ this.#rangeState.column += item.column;
299
+ }
300
+ const range = {
301
+ start: {
302
+ line: this.#rangeState.line,
303
+ column: this.#rangeState.column
304
+ },
305
+ end: {
306
+ line: this.#rangeState.line,
307
+ column: this.#rangeState.column
308
+ },
309
+ isStackFrame: Boolean(item.flags & GeneratedRangeFlags.IS_STACK_FRAME),
310
+ isHidden: Boolean(item.flags & GeneratedRangeFlags.IS_HIDDEN),
311
+ values: [],
312
+ children: []
313
+ };
314
+ if (item.definitionIdx !== undefined) {
315
+ this.#rangeState.defScopeIdx += item.definitionIdx;
316
+ if (this.#rangeState.defScopeIdx < 0 || this.#rangeState.defScopeIdx >= this.#flatOriginalScopes.length) {
317
+ this.#throwInStrictMode("Invalid definition scope index");
318
+ } else {
319
+ range.originalScope = this.#flatOriginalScopes[this.#rangeState.defScopeIdx];
320
+ }
321
+ }
322
+ this.#rangeStack.push(range);
323
+ this.#subRangeBindingsForRange.clear();
324
+ }
325
+ #handleGeneratedRangeBindingsItem(valueIdxs) {
326
+ const range = this.#rangeStack.at(-1);
327
+ if (!range) {
328
+ this.#throwInStrictMode("Encountered GENERATED_RANGE_BINDINGS without surrounding GENERATED_RANGE_START");
329
+ return;
330
+ }
331
+ for (const valueIdx of valueIdxs){
332
+ if (valueIdx === 0) {
333
+ range.values.push(null);
334
+ } else {
335
+ range.values.push(this.#resolveName(valueIdx - 1));
336
+ }
337
+ }
338
+ }
339
+ #recordGeneratedSubRangeBindingItem(variableIndex, bindings) {
340
+ if (this.#subRangeBindingsForRange.has(variableIndex)) {
341
+ this.#throwInStrictMode("Encountered multiple GENERATED_RANGE_SUBRANGE_BINDING items for the same variable");
342
+ return;
343
+ }
344
+ this.#subRangeBindingsForRange.set(variableIndex, bindings);
345
+ }
346
+ #handleGeneratedRangeCallSite(sourceIndex, line, column) {
347
+ const range = this.#rangeStack.at(-1);
348
+ if (!range) {
349
+ this.#throwInStrictMode("Encountered GENERATED_RANGE_CALL_SITE without surrounding GENERATED_RANGE_START");
350
+ return;
351
+ }
352
+ range.callSite = {
353
+ sourceIndex,
354
+ line,
355
+ column
356
+ };
357
+ }
358
+ #handleGeneratedRangeEndItem(line, column) {
359
+ if (line !== 0) {
360
+ this.#rangeState.line += line;
361
+ this.#rangeState.column = column;
362
+ } else {
363
+ this.#rangeState.column += column;
364
+ }
365
+ const range = this.#rangeStack.pop();
366
+ if (!range) {
367
+ this.#throwInStrictMode("Encountered GENERATED_RANGE_END without matching GENERATED_RANGE_START!");
368
+ return;
369
+ }
370
+ range.end = {
371
+ line: this.#rangeState.line,
372
+ column: this.#rangeState.column
373
+ };
374
+ this.#handleGeneratedRangeSubRangeBindings(range);
375
+ if (this.#rangeStack.length > 0) {
376
+ const parent = this.#rangeStack.at(-1);
377
+ range.parent = parent;
378
+ parent.children.push(range);
379
+ } else {
380
+ this.#ranges.push(range);
381
+ }
382
+ }
383
+ #handleGeneratedRangeSubRangeBindings(range) {
384
+ for (const [variableIndex, bindings] of this.#subRangeBindingsForRange){
385
+ const value = range.values[variableIndex];
386
+ const subRanges = [];
387
+ range.values[variableIndex] = subRanges;
388
+ let lastLine = range.start.line;
389
+ let lastColumn = range.start.column;
390
+ subRanges.push({
391
+ from: {
392
+ line: lastLine,
393
+ column: lastColumn
394
+ },
395
+ to: {
396
+ line: 0,
397
+ column: 0
398
+ },
399
+ value: value
400
+ });
401
+ for (const [binding, line, column] of bindings){
402
+ lastLine += line;
403
+ if (line === 0) {
404
+ lastColumn += column;
405
+ } else {
406
+ lastColumn = column;
407
+ }
408
+ subRanges.push({
409
+ from: {
410
+ line: lastLine,
411
+ column: lastColumn
412
+ },
413
+ to: {
414
+ line: 0,
415
+ column: 0
416
+ },
417
+ value: binding === 0 ? undefined : this.#resolveName(binding - 1)
418
+ });
419
+ }
420
+ }
421
+ for (const value of range.values){
422
+ if (Array.isArray(value)) {
423
+ const subRanges = value;
424
+ for(let i = 0; i < subRanges.length - 1; ++i){
425
+ subRanges[i].to = subRanges[i + 1].from;
426
+ }
427
+ subRanges[subRanges.length - 1].to = range.end;
428
+ }
429
+ }
430
+ }
431
+ #resolveName(index) {
432
+ if (index < 0 || index >= this.#names.length) {
433
+ this.#throwInStrictMode("Illegal index into the 'names' array");
434
+ }
435
+ return this.#names[index] ?? "";
436
+ }
437
+ }
438
+ //# sourceMappingURL=decode.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"decode.js","sources":["./decode.ts"],"names":[],"mappings":"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"}