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.
- package/AUTHORS +1 -0
- package/docs/architecture_of_devtools.md +1 -1
- package/docs/cookbook/localization.md +2 -2
- package/eslint.config.mjs +1 -0
- package/front_end/Images/src/nodejsHex.svg +28 -0
- package/front_end/core/common/README.md +4 -3
- package/front_end/core/sdk/CPUThrottlingManager.ts +14 -10
- package/front_end/core/sdk/DOMModel.ts +65 -20
- package/front_end/core/sdk/DebuggerModel.ts +0 -4
- package/front_end/core/sdk/PageResourceLoader.ts +12 -11
- package/front_end/core/sdk/SourceMap.ts +7 -5
- package/front_end/core/sdk/SourceMapFunctionRanges.ts +22 -37
- package/front_end/core/sdk/SourceMapScopeChainEntry.ts +3 -3
- package/front_end/core/sdk/SourceMapScopesInfo.ts +50 -62
- package/front_end/entrypoints/formatter_actions/formatter_actions.ts +18 -0
- package/front_end/entrypoints/formatter_worker/Substitute.ts +9 -8
- package/front_end/entrypoints/formatter_worker/formatter_worker-entrypoint.ts +9 -4
- package/front_end/entrypoints/heap_snapshot_worker/ContextAnalyzer.ts +140 -20
- package/front_end/entrypoints/heap_snapshot_worker/HeapSnapshotLoader.ts +16 -5
- package/front_end/entrypoints/inspector_main/nodeIcon.css +1 -1
- package/front_end/foundation/Universe.ts +9 -0
- package/front_end/generated/InspectorBackendCommands.ts +4 -3
- package/front_end/generated/protocol.ts +17 -1
- package/front_end/models/ai_assistance/AiConversation.ts +16 -3
- package/front_end/models/ai_assistance/skills/accessibility.md +8 -7
- package/front_end/models/formatter/FormatterWorkerPool.ts +14 -4
- package/front_end/models/javascript_metadata/NativeFunctions.ts +6 -2
- package/front_end/models/source_map_scopes/NamesResolver.ts +69 -42
- package/front_end/models/source_map_scopes/ScopeChainModel.ts +13 -45
- package/front_end/models/source_map_scopes/ScopeChainResolver.ts +101 -0
- package/front_end/models/source_map_scopes/source_map_scopes.ts +2 -0
- package/front_end/panels/application/BackgroundServiceView.ts +1 -0
- package/front_end/panels/application/components/AdsView.ts +6 -6
- package/front_end/panels/application/components/BackForwardCacheView.ts +1 -1
- package/front_end/panels/console/ConsolePrompt.ts +2 -1
- package/front_end/panels/elements/CSSRuleValidator.ts +3 -0
- package/front_end/panels/elements/ClassesPaneWidget.ts +4 -1
- package/front_end/panels/elements/LayoutPane.ts +17 -20
- package/front_end/panels/network/NetworkLogViewColumns.ts +10 -3
- package/front_end/panels/network/ShowMoreDetailsWidget.ts +1 -1
- package/front_end/panels/security/SecurityPanel.ts +14 -7
- package/front_end/panels/sources/BreakpointEditDialog.ts +13 -1
- package/front_end/panels/sources/DebuggerPlugin.ts +69 -58
- package/front_end/panels/sources/EditingLocationHistoryManager.ts +6 -6
- package/front_end/panels/sources/OpenFileQuickOpen.ts +2 -2
- package/front_end/panels/sources/Plugin.ts +3 -2
- package/front_end/panels/sources/ResourceOriginPlugin.ts +14 -17
- package/front_end/panels/sources/ScopeChainSidebarPane.ts +2 -2
- package/front_end/panels/sources/SourcesPanel.ts +1 -1
- package/front_end/panels/sources/SourcesView.ts +25 -82
- package/front_end/panels/sources/TabbedEditorContainer.ts +75 -21
- package/front_end/panels/sources/UISourceCodeFrame.ts +22 -13
- package/front_end/panels/sources/sourcesView.css +17 -27
- package/front_end/panels/timeline/overlays/components/EntryLabelOverlay.ts +1 -0
- package/front_end/third_party/chromium/README.chromium +1 -1
- package/front_end/third_party/source-map-scopes-codec/README.chromium +2 -2
- package/front_end/third_party/source-map-scopes-codec/package/CONTRIBUTING.md +14 -1
- package/front_end/third_party/source-map-scopes-codec/package/README.md +8 -6
- package/front_end/third_party/source-map-scopes-codec/package/_dist/src/builder/builder.d.ts +4 -1
- package/front_end/third_party/source-map-scopes-codec/package/_dist/src/builder/builder.d.ts.map +1 -1
- package/front_end/third_party/source-map-scopes-codec/package/_dist/src/builder/safe_builder.d.ts +3 -1
- package/front_end/third_party/source-map-scopes-codec/package/_dist/src/builder/safe_builder.d.ts.map +1 -1
- package/front_end/third_party/source-map-scopes-codec/package/_dist/src/decode/decode.d.ts.map +1 -1
- package/front_end/third_party/source-map-scopes-codec/package/_dist/src/scopes.d.ts +4 -3
- package/front_end/third_party/source-map-scopes-codec/package/_dist/src/scopes.d.ts.map +1 -1
- package/front_end/third_party/source-map-scopes-codec/package/deno.json +6 -2
- package/front_end/third_party/source-map-scopes-codec/package/package.json +1 -1
- package/front_end/third_party/source-map-scopes-codec/package/src/builder/builder.js +18 -2
- package/front_end/third_party/source-map-scopes-codec/package/src/builder/builder.js.map +1 -1
- package/front_end/third_party/source-map-scopes-codec/package/src/builder/builder.ts +22 -3
- package/front_end/third_party/source-map-scopes-codec/package/src/builder/safe_builder.js +33 -5
- package/front_end/third_party/source-map-scopes-codec/package/src/builder/safe_builder.js.map +1 -1
- package/front_end/third_party/source-map-scopes-codec/package/src/builder/safe_builder.ts +41 -5
- package/front_end/third_party/source-map-scopes-codec/package/src/codec.js +0 -2
- package/front_end/third_party/source-map-scopes-codec/package/src/codec.js.map +1 -1
- package/front_end/third_party/source-map-scopes-codec/package/src/codec.ts +4 -3
- package/front_end/third_party/source-map-scopes-codec/package/src/decode/decode.js +99 -36
- package/front_end/third_party/source-map-scopes-codec/package/src/decode/decode.js.map +1 -1
- package/front_end/third_party/source-map-scopes-codec/package/src/decode/decode.ts +143 -49
- package/front_end/third_party/source-map-scopes-codec/package/src/encode/encode.js +3 -1
- package/front_end/third_party/source-map-scopes-codec/package/src/encode/encode.js.map +1 -1
- package/front_end/third_party/source-map-scopes-codec/package/src/encode/encode.ts +3 -1
- package/front_end/third_party/source-map-scopes-codec/package/src/encode/encoder.js +40 -18
- package/front_end/third_party/source-map-scopes-codec/package/src/encode/encoder.js.map +1 -1
- package/front_end/third_party/source-map-scopes-codec/package/src/encode/encoder.ts +51 -21
- package/front_end/third_party/source-map-scopes-codec/package/src/scopes.ts +4 -3
- package/front_end/third_party/source-map-scopes-codec/package/src/vlq.js +18 -4
- package/front_end/third_party/source-map-scopes-codec/package/src/vlq.js.map +1 -1
- package/front_end/third_party/source-map-scopes-codec/package/src/vlq.ts +18 -4
- package/front_end/ui/comments/CommentOverlayManager.ts +23 -10
- package/front_end/ui/components/text_editor/javascript.ts +128 -52
- package/front_end/ui/legacy/README.md +12 -12
- package/front_end/ui/legacy/SearchableView.ts +125 -74
- package/front_end/ui/legacy/components/source_frame/FontView.ts +5 -5
- package/front_end/ui/legacy/components/source_frame/ImageView.ts +13 -13
- package/front_end/ui/legacy/components/source_frame/ResourceSourceFrame.ts +2 -6
- package/front_end/ui/legacy/components/source_frame/SourceFrame.ts +3 -2
- package/mcp/mcp.ts +1 -0
- package/package.json +1 -1
- package/front_end/Images/nodeIcon.avif +0 -0
|
@@ -15,11 +15,13 @@ import * as IssuesManager from '../../models/issues_manager/issues_manager.js';
|
|
|
15
15
|
import * as Persistence from '../../models/persistence/persistence.js';
|
|
16
16
|
import * as Workspace from '../../models/workspace/workspace.js';
|
|
17
17
|
import * as CodeMirror from '../../third_party/codemirror.next/codemirror.next.js';
|
|
18
|
+
import * as Buttons from '../../ui/components/buttons/buttons.js';
|
|
18
19
|
import * as IssueCounter from '../../ui/components/issue_counter/issue_counter.js';
|
|
19
20
|
import * as TextEditor from '../../ui/components/text_editor/text_editor.js';
|
|
20
21
|
import {Icon, type IconWithName} from '../../ui/kit/kit.js';
|
|
21
22
|
import * as SourceFrame from '../../ui/legacy/components/source_frame/source_frame.js';
|
|
22
23
|
import * as UI from '../../ui/legacy/legacy.js';
|
|
24
|
+
import {html, type LitTemplate, nothing, type TemplateResult} from '../../ui/lit/lit.js';
|
|
23
25
|
|
|
24
26
|
import {AiCodeCompletionPlugin} from './AiCodeCompletionPlugin.js';
|
|
25
27
|
import {CoveragePlugin} from './CoveragePlugin.js';
|
|
@@ -470,32 +472,39 @@ export class UISourceCodeFrame extends UISourceCodeFrameBase {
|
|
|
470
472
|
}
|
|
471
473
|
}
|
|
472
474
|
|
|
473
|
-
override async toolbarItems(): Promise<
|
|
474
|
-
const leftToolbarItems = await super.toolbarItems();
|
|
475
|
+
override async toolbarItems(): Promise<TemplateResult> {
|
|
476
|
+
const leftToolbarItems: Array<UI.Toolbar.ToolbarItem|LitTemplate> = [await super.toolbarItems()];
|
|
475
477
|
|
|
476
478
|
const isEditable = Persistence.Persistence.PersistenceImpl.instance().hasEditableContent(this.#uiSourceCode);
|
|
477
479
|
const isJavaScript = Common.ResourceType.ResourceType.isJavaScriptMimeType(this.contentType);
|
|
478
480
|
const isInplaceFormattable = isEditable && isJavaScript;
|
|
479
481
|
|
|
480
482
|
if (isInplaceFormattable) {
|
|
481
|
-
|
|
482
|
-
|
|
483
|
-
|
|
484
|
-
|
|
485
|
-
|
|
483
|
+
leftToolbarItems.unshift(html`<devtools-button
|
|
484
|
+
class="toolbar-button"
|
|
485
|
+
title=${i18nString(UIStrings.format)}
|
|
486
|
+
aria-label=${i18nString(UIStrings.format)}
|
|
487
|
+
.iconName=${'brackets'}
|
|
488
|
+
.variant=${Buttons.Button.Variant.TOOLBAR}
|
|
489
|
+
@click=${() => void this.#formatSourceInPlace()}
|
|
490
|
+
></devtools-button>`);
|
|
486
491
|
}
|
|
487
492
|
|
|
488
|
-
const rightToolbarItems = [];
|
|
493
|
+
const rightToolbarItems: Array<UI.Toolbar.ToolbarItem|LitTemplate> = [];
|
|
489
494
|
for (const plugin of this.plugins) {
|
|
490
495
|
leftToolbarItems.push(...plugin.leftToolbarItems());
|
|
491
496
|
rightToolbarItems.push(...plugin.rightToolbarItems());
|
|
492
497
|
}
|
|
493
498
|
|
|
494
|
-
|
|
495
|
-
|
|
496
|
-
|
|
497
|
-
|
|
498
|
-
|
|
499
|
+
return html`
|
|
500
|
+
${leftToolbarItems.map(item => item instanceof UI.Toolbar.ToolbarItem ? item.element : item)}
|
|
501
|
+
${
|
|
502
|
+
rightToolbarItems.length ? html`
|
|
503
|
+
<div class="toolbar-spacer"></div>
|
|
504
|
+
${rightToolbarItems.map(item => item instanceof UI.Toolbar.ToolbarItem ? item.element : item)}
|
|
505
|
+
` :
|
|
506
|
+
nothing}
|
|
507
|
+
`;
|
|
499
508
|
}
|
|
500
509
|
|
|
501
510
|
private getErrorPopoverContent(event: Event): UI.PopoverHelper.PopoverRequest|null {
|
|
@@ -4,35 +4,25 @@
|
|
|
4
4
|
* found in the LICENSE file.
|
|
5
5
|
*/
|
|
6
6
|
|
|
7
|
-
|
|
8
|
-
|
|
9
|
-
|
|
10
|
-
|
|
11
|
-
|
|
12
|
-
position: relative;
|
|
13
|
-
}
|
|
7
|
+
@scope to (devtools-widget > *) {
|
|
8
|
+
:scope {
|
|
9
|
+
flex: auto;
|
|
10
|
+
position: relative;
|
|
11
|
+
}
|
|
14
12
|
|
|
15
|
-
|
|
16
|
-
|
|
17
|
-
|
|
18
|
-
|
|
19
|
-
|
|
20
|
-
|
|
21
|
-
|
|
22
|
-
|
|
23
|
-
|
|
13
|
+
.sources-toolbar {
|
|
14
|
+
display: flex;
|
|
15
|
+
flex: 0 0 auto;
|
|
16
|
+
min-height: 27px;
|
|
17
|
+
background-color: var(--sys-color-cdt-base-container);
|
|
18
|
+
border-top: var(--sys-size-1) solid var(--sys-color-divider);
|
|
19
|
+
overflow: hidden;
|
|
20
|
+
z-index: 0;
|
|
21
|
+
align-items: flex-end;
|
|
22
|
+
}
|
|
24
23
|
|
|
25
|
-
|
|
24
|
+
.script-view-toolbar {
|
|
25
|
+
flex: auto;
|
|
26
26
|
flex-wrap: wrap;
|
|
27
27
|
}
|
|
28
28
|
}
|
|
29
|
-
|
|
30
|
-
.source-frame-debugger-script {
|
|
31
|
-
--override-debugger-background-tint: rgb(255 255 194 / 50%);
|
|
32
|
-
|
|
33
|
-
background-color: var(--override-debugger-background-tint);
|
|
34
|
-
}
|
|
35
|
-
|
|
36
|
-
.theme-with-dark-background .source-frame-debugger-script {
|
|
37
|
-
--override-debugger-background-tint: rgb(61 61 0 / 50%);
|
|
38
|
-
}
|
|
@@ -74,6 +74,7 @@ const UIStringsNotTranslate = {
|
|
|
74
74
|
/**
|
|
75
75
|
* @description The `Generate AI label button` tooltip disclaimer for when the feature is not available and the reason can be checked in settings.
|
|
76
76
|
*/
|
|
77
|
+
// eslint-disable-next-line @devtools/l10n-uistrings-sentence-punctuation -- Concatenated with learnMore in the UI to form a multi-sentence message.
|
|
77
78
|
autoAnnotationNotAvailableDisclaimer: 'Auto annotations are not available.',
|
|
78
79
|
/**
|
|
79
80
|
* @description The `Generate AI label button` tooltip disclaimer for when the feature is not available because the user is offline.
|
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
Name: Dependencies sourced from the upstream `chromium` repository
|
|
2
2
|
URL: Internal
|
|
3
3
|
Version: N/A
|
|
4
|
-
Revision:
|
|
4
|
+
Revision: e65c93f89582a5ef6c0aa01644109da3dd5b31a9
|
|
5
5
|
Update Mechanism: Manual (https://crbug.com/428069060)
|
|
6
6
|
License: BSD-3-Clause
|
|
7
7
|
License File: LICENSE
|
|
@@ -1,8 +1,8 @@
|
|
|
1
1
|
Name: source-map-scopes-codec
|
|
2
2
|
Short Name: source-map-scopes-codec
|
|
3
3
|
URL: https://github.com/ChromeDevTools/source-map-scopes-codec
|
|
4
|
-
Version: 0.
|
|
5
|
-
Revision:
|
|
4
|
+
Version: 1.0.0
|
|
5
|
+
Revision: de807fe67f1e71f0022d97acbee63a1765f70f2f
|
|
6
6
|
License: BSD-3-Clause
|
|
7
7
|
License File: LICENSE
|
|
8
8
|
Security Critical: no
|
|
@@ -30,4 +30,17 @@ This project follows
|
|
|
30
30
|
All submissions, including submissions by project members, require review. We
|
|
31
31
|
use GitHub pull requests for this purpose. Consult
|
|
32
32
|
[GitHub Help](https://help.github.com/articles/about-pull-requests/) for more
|
|
33
|
-
information on using pull requests.
|
|
33
|
+
information on using pull requests.
|
|
34
|
+
|
|
35
|
+
### Commit messages
|
|
36
|
+
|
|
37
|
+
This repository uses [Conventional Commits](https://www.conventionalcommits.org/)
|
|
38
|
+
and [Release Please](https://github.com/googleapis/release-please) for automated
|
|
39
|
+
versioning and changelog generation.
|
|
40
|
+
|
|
41
|
+
PR titles and commit messages should follow the format:
|
|
42
|
+
|
|
43
|
+
* `feat: ...` for new features (triggers a `minor` version bump)
|
|
44
|
+
* `fix: ...` for bug fixes (triggers a `patch` version bump)
|
|
45
|
+
* `feat!: ...` or `fix!: ...` for breaking changes (triggers a `major` version bump)
|
|
46
|
+
* `docs: ...`, `chore: ...`, `ci: ...`, `test: ...` for maintenance changes
|
|
@@ -47,12 +47,14 @@ The library also contains a builder that makes creating structured scope informa
|
|
|
47
47
|
import { ScopeInfoBuilder } from "@chrome-devtools/source-map-scopes-codec";
|
|
48
48
|
|
|
49
49
|
const scopeInformation = new ScopeInfoBuilder()
|
|
50
|
-
.
|
|
51
|
-
.startScope(
|
|
52
|
-
|
|
53
|
-
|
|
54
|
-
|
|
55
|
-
|
|
50
|
+
.startSource()
|
|
51
|
+
.startScope(0, 0, { kind: "Global" })
|
|
52
|
+
.startScope(5, 10)
|
|
53
|
+
.setScopeKind("Function") // Same as passing 'kind' to 'startScope'.
|
|
54
|
+
.setScopeName("foo") // Same as passing 'name' to 'startScope'.
|
|
55
|
+
.endScope(10, 5)
|
|
56
|
+
.endScope(11, 1)
|
|
57
|
+
.endSource()
|
|
56
58
|
.startRange(0, 0, { scope: 0 })
|
|
57
59
|
.startRange(0, 10)
|
|
58
60
|
.setRangeScopeDefinition(1) // Same as passing 'scope' to 'startRange'.
|
package/front_end/third_party/source-map-scopes-codec/package/_dist/src/builder/builder.d.ts
CHANGED
|
@@ -9,7 +9,9 @@ import type { Binding, GeneratedRange, OriginalPosition, OriginalScope, ScopeInf
|
|
|
9
9
|
* This class will also silently ignore calls that would fail otherwise. E.g. calling
|
|
10
10
|
* `end*` without a matching `start*`.
|
|
11
11
|
*/ export declare class ScopeInfoBuilder {
|
|
12
|
-
|
|
12
|
+
addNullSource(): this;
|
|
13
|
+
startSource(): this;
|
|
14
|
+
endSource(): this;
|
|
13
15
|
startScope(line: number, column: number, options?: {
|
|
14
16
|
name?: string;
|
|
15
17
|
kind?: string;
|
|
@@ -47,6 +49,7 @@ import type { Binding, GeneratedRange, OriginalPosition, OriginalScope, ScopeInf
|
|
|
47
49
|
setRangeCallSite(callSite: OriginalPosition): this;
|
|
48
50
|
endRange(line: number, column: number): this;
|
|
49
51
|
build(): ScopeInfo;
|
|
52
|
+
protected get currentSourceScopes(): ReadonlyArray<OriginalScope> | null;
|
|
50
53
|
protected get scopeStack(): ReadonlyArray<OriginalScope>;
|
|
51
54
|
protected get rangeStack(): ReadonlyArray<GeneratedRange>;
|
|
52
55
|
protected isKnownScope(scope: OriginalScope): boolean;
|
package/front_end/third_party/source-map-scopes-codec/package/_dist/src/builder/builder.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"builder.d.ts","sources":["../../../src/builder/builder.ts"],"names":[],"mappings":"AAIA,cACE,OAAO,EACP,cAAc,EACd,gBAAgB,EAChB,aAAa,EACb,SAAS,uBACW;AAEtB;;;;;;;;;CASC,GACD,OAAO,cAAM;
|
|
1
|
+
{"version":3,"file":"builder.d.ts","sources":["../../../src/builder/builder.ts"],"names":[],"mappings":"AAIA,cACE,OAAO,EACP,cAAc,EACd,gBAAgB,EAChB,aAAa,EACb,SAAS,uBACW;AAEtB;;;;;;;;;CASC,GACD,OAAO,cAAM;EAYX,iBAAiB,IAAI;EAKrB,eAAe,IAAI;EAKnB,aAAa,IAAI;EAQjB,WACE,MAAM,MAAM,EACZ,QAAQ,MAAM,EACd;IACE,OAAO,MAAM;IACb,OAAO,MAAM;IACb,eAAe,OAAO;IACtB,YAAY,MAAM;IAClB,MAAM;GACP,GACA,IAAI;EAsBP,aAAa,MAAM,MAAM,GAAG,IAAI;EAMhC,aAAa,MAAM,MAAM,GAAG,IAAI;EAMhC,mBAAmB,cAAc,OAAO,GAAG,IAAI;EAM/C,kBAAkB,WAAW,MAAM,EAAE,GAAG,IAAI;EAO5C,SAAS,MAAM,MAAM,EAAE,QAAQ,MAAM,GAAG,IAAI;EAgB5C;;GAEC,GACD,gBAAgB,gBAAgB,IAAI;EAIpC;;GAEC,GACD,aAAa,gBAAgB,IAAI;EAIjC;;;GAGC,GACD,WACE,MAAM,MAAM,EACZ,QAAQ,MAAM,EACd;IACE,QAAQ;IACR,WAAW;IACX,eAAe,OAAO;IACtB,WAAW,OAAO;IAClB,SAAS;IACT,WAAW;GACZ,GACA,IAAI;EA6BP,wBAAwB,OAAO,aAAa,GAAG,IAAI;EAMnD,2BAA2B,UAAU,QAAQ,GAAG,IAAI;EAMpD,mBAAmB,cAAc,OAAO,GAAG,IAAI;EAO/C,eAAe,UAAU,OAAO,GAAG,IAAI;EAOvC,eAAe,QAAQ,SAAS,GAAG,IAAI;EAOvC,iBAAiB,UAAU,gBAAgB,GAAG,IAAI;EAOlD,SAAS,MAAM,MAAM,EAAE,QAAQ,MAAM,GAAG,IAAI;EAe5C,SAAS;EAaT,cAAc,uBAAuB,cAAc,iBAAiB,IAAI;EAIxE,cAAc,cAAc,cAAc;EAI1C,cAAc,cAAc,cAAc;EAI1C,UAAU,aAAa,OAAO,aAAa,GAAG,OAAO;EAIrD,UAAU,gBAAgB,KAAK,QAAQ,GAAG,OAAO;EAIjD,UAAU,mBAAmB,KAAK,QAAQ,GAAG;AAG/C;AAEA;;;;;CAKC,GACD,YAAY,WAAW,OAAO"}
|
package/front_end/third_party/source-map-scopes-codec/package/_dist/src/builder/safe_builder.d.ts
CHANGED
|
@@ -4,7 +4,9 @@ import { ScopeInfoBuilder, type ScopeKey } from "./builder.js";
|
|
|
4
4
|
* Similar to `ScopeInfoBuilder`, but with checks that scopes/ranges are well
|
|
5
5
|
* nested and don't partially overlap.
|
|
6
6
|
*/ export declare class SafeScopeInfoBuilder extends ScopeInfoBuilder {
|
|
7
|
-
override
|
|
7
|
+
override addNullSource(): this;
|
|
8
|
+
override startSource(): this;
|
|
9
|
+
override endSource(): this;
|
|
8
10
|
override startScope(line: number, column: number, options?: {
|
|
9
11
|
name?: string;
|
|
10
12
|
kind?: string;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"safe_builder.d.ts","sources":["../../../src/builder/safe_builder.ts"],"names":[],"mappings":"AAIA,cACE,OAAO,EACP,gBAAgB,EAChB,aAAa,EAEb,SAAS,uBACW;AAEtB,SAAS,gBAAgB,EAAE,KAAK,QAAQ,uBAAuB;AAE/D;;;CAGC,GACD,OAAO,cAAM,6BAA6B;EACxC,SAAS,
|
|
1
|
+
{"version":3,"file":"safe_builder.d.ts","sources":["../../../src/builder/safe_builder.ts"],"names":[],"mappings":"AAIA,cACE,OAAO,EACP,gBAAgB,EAChB,aAAa,EAEb,SAAS,uBACW;AAEtB,SAAS,gBAAgB,EAAE,KAAK,QAAQ,uBAAuB;AAE/D;;;CAGC,GACD,OAAO,cAAM,6BAA6B;EACxC,SAAS,iBAAiB,IAAI;EAS9B,SAAS,eAAe,IAAI;EAS5B,SAAS,aAAa,IAAI;EAS1B,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;EA8BP,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;EA8DP,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;AA+FpB"}
|
package/front_end/third_party/source-map-scopes-codec/package/_dist/src/decode/decode.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"decode.d.ts","sources":["../../../src/decode/decode.ts"],"names":[],"mappings":"AAWA,cACE,gBAAgB,EAIhB,QAAQ,EACR,SAAS,uBAGW;
|
|
1
|
+
{"version":3,"file":"decode.d.ts","sources":["../../../src/decode/decode.ts"],"names":[],"mappings":"AAWA,cACE,gBAAgB,EAIhB,QAAQ,EACR,SAAS,uBAGW;AAItB;;;;;;;;;;;;;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"}
|
|
@@ -2,8 +2,8 @@
|
|
|
2
2
|
* The scopes information found in a source map.
|
|
3
3
|
*/ export interface ScopeInfo {
|
|
4
4
|
/**
|
|
5
|
-
* The length of {@linkcode scopes} must match the length of "sources" in the source map JSON. Each entry describes the scope
|
|
6
|
-
*/ scopes: (OriginalScope | null)[];
|
|
5
|
+
* The length of {@linkcode scopes} must match the length of "sources" in the source map JSON. Each entry describes the scope trees of the corresponding source file.
|
|
6
|
+
*/ scopes: (OriginalScope[] | null)[];
|
|
7
7
|
/**
|
|
8
8
|
* The range tree of the generated bundle. Multiple top-level ranges are allowed but must not overlap source position wise.
|
|
9
9
|
*/ ranges: GeneratedRange[];
|
|
@@ -133,6 +133,7 @@ export interface SubRangeBinding {
|
|
|
133
133
|
sources: (string | null)[];
|
|
134
134
|
mappings: string;
|
|
135
135
|
names?: string[];
|
|
136
|
-
scopes?: string;
|
|
136
|
+
scopes?: (string | null)[];
|
|
137
|
+
ranges?: string[];
|
|
137
138
|
}
|
|
138
139
|
//# sourceMappingURL=scopes.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"scopes.d.ts","sources":["../../src/scopes.ts"],"names":[],"mappings":"AAIA;;CAEC,GACD,iBAAiB;EACf;;GAEC,GACD,SAAS,
|
|
1
|
+
{"version":3,"file":"scopes.d.ts","sources":["../../src/scopes.ts"],"names":[],"mappings":"AAIA;;CAEC,GACD,iBAAiB;EACf;;GAEC,GACD,SAAS,kBAAkB,IAAI;EAE/B;;GAEC,GACD,QAAQ;;AAGV;;CAEC,GACD,iBAAiB,yBAAyB;EACxC;;;GAGC,GACD,2BAA2B,OAAO;;AAGpC;;CAEC,GACD,iBAAiB;EACf,6CAA6C,GAC7C,OAAO;EAEP,sCAAsC,GACtC,KAAK;EAEL;;;;GAIC,GACD,OAAO,MAAM;EAEb;;;;;GAKC,GACD,OAAO,MAAM;EAEb;;GAEC,GACD,cAAc,OAAO;EAErB;;GAEC,GACD,WAAW,MAAM;EAEjB;;;GAGC,GACD,UAAU;EAEV,0DAA0D,GAC1D,SAAS;;AAGX;;;;;;CAMC,GACD,iBAAiB;EACf,4CAA4C,GAC5C,OAAO;EAEP,sCAAsC,GACtC,KAAK;EAEL;;GAEC,GACD,gBAAgB;EAEhB;;GAEC,GACD,cAAc,OAAO;EAErB;;;GAGC,GACD,UAAU,OAAO;EAEjB;;;;;GAKC,GACD,WAAW;EAEX;;;GAGC,GACD,QAAQ;EAER;;;GAGC,GACD,UAAU;EAEV,0DAA0D,GAC1D,SAAS;;AAGX;;;;;;;;;;;;;;;CAeC,GACD,YAAY,UAAU,MAAM,GAAG,IAAI,GAAG;AAEtC,iBAAiB;EACf,QAAQ,MAAM;EACd,MAAM;EACN,IAAI;;AAGN;;;;;CAKC,GACD,iBAAiB;EACf,MAAM,MAAM;EACZ,QAAQ,MAAM;;AAGhB;;CAEC,GACD,iBAAiB,yBAAyB;EACxC,8FAA8F,GAC9F,aAAa,MAAM;;AAGrB;;CAEC,GACD,YAAY,YAAY,gBAAgB;AAExC;;CAEC,GACD,iBAAiB;EACf,SAAS;EACT,UAAU;IAAQ,QAAQ;IAAU,KAAK;;;AAG3C;;CAEC,GACD,iBAAiB;EACf,SAAS;EACT,UAAU,MAAM,GAAG,IAAI;EACvB,UAAU,MAAM;EAChB,QAAQ,MAAM;EACd,UAAU,MAAM,GAAG,IAAI;EACvB,SAAS,MAAM"}
|
|
@@ -1,10 +1,14 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@chrome-devtools/source-map-scopes-codec",
|
|
3
|
-
"version": "0.
|
|
3
|
+
"version": "1.0.0",
|
|
4
4
|
"exports": "./src/mod.ts",
|
|
5
5
|
"license": "BSD-3-Clause",
|
|
6
6
|
"fmt": {
|
|
7
|
-
"exclude": [
|
|
7
|
+
"exclude": [
|
|
8
|
+
"README.md",
|
|
9
|
+
"CONTRIBUTING.md",
|
|
10
|
+
"CHANGELOG.md"
|
|
11
|
+
]
|
|
8
12
|
},
|
|
9
13
|
"publish": {
|
|
10
14
|
"include": [
|
|
@@ -13,15 +13,27 @@
|
|
|
13
13
|
*/ export class ScopeInfoBuilder {
|
|
14
14
|
#scopes = [];
|
|
15
15
|
#ranges = [];
|
|
16
|
+
#currentSourceScopes = null;
|
|
16
17
|
#scopeStack = [];
|
|
17
18
|
#rangeStack = [];
|
|
18
19
|
#knownScopes = new Set();
|
|
19
20
|
#keyToScope = new Map();
|
|
20
21
|
#lastScope = null;
|
|
21
|
-
|
|
22
|
+
addNullSource() {
|
|
22
23
|
this.#scopes.push(null);
|
|
23
24
|
return this;
|
|
24
25
|
}
|
|
26
|
+
startSource() {
|
|
27
|
+
this.#currentSourceScopes = [];
|
|
28
|
+
return this;
|
|
29
|
+
}
|
|
30
|
+
endSource() {
|
|
31
|
+
if (this.#currentSourceScopes) {
|
|
32
|
+
this.#scopes.push(this.#currentSourceScopes);
|
|
33
|
+
this.#currentSourceScopes = null;
|
|
34
|
+
}
|
|
35
|
+
return this;
|
|
36
|
+
}
|
|
25
37
|
startScope(line, column, options) {
|
|
26
38
|
const scope = {
|
|
27
39
|
start: {
|
|
@@ -74,7 +86,7 @@
|
|
|
74
86
|
column
|
|
75
87
|
};
|
|
76
88
|
if (this.#scopeStack.length === 0) {
|
|
77
|
-
this.#
|
|
89
|
+
this.#currentSourceScopes?.push(scope);
|
|
78
90
|
} else {
|
|
79
91
|
this.#scopeStack.at(-1).children.push(scope);
|
|
80
92
|
}
|
|
@@ -174,11 +186,15 @@
|
|
|
174
186
|
};
|
|
175
187
|
this.#scopes = [];
|
|
176
188
|
this.#ranges = [];
|
|
189
|
+
this.#currentSourceScopes = null;
|
|
177
190
|
this.#knownScopes.clear();
|
|
178
191
|
this.#keyToScope.clear();
|
|
179
192
|
this.#lastScope = null;
|
|
180
193
|
return info;
|
|
181
194
|
}
|
|
195
|
+
get currentSourceScopes() {
|
|
196
|
+
return this.#currentSourceScopes;
|
|
197
|
+
}
|
|
182
198
|
get scopeStack() {
|
|
183
199
|
return this.#scopeStack;
|
|
184
200
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"builder.js","sources":["./builder.ts"],"names":[],"mappings":"AAAA,4DAA4D;AAC5D,yEAAyE;AACzE,6BAA6B;AAU7B;;;;;;;;;CASC,GACD,OAAO,MAAM;EACX,CAAA,MAAO,
|
|
1
|
+
{"version":3,"file":"builder.js","sources":["./builder.ts"],"names":[],"mappings":"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"}
|
|
@@ -21,9 +21,10 @@ import type {
|
|
|
21
21
|
* `end*` without a matching `start*`.
|
|
22
22
|
*/
|
|
23
23
|
export class ScopeInfoBuilder {
|
|
24
|
-
#scopes: (OriginalScope | null)[] = [];
|
|
24
|
+
#scopes: (OriginalScope[] | null)[] = [];
|
|
25
25
|
#ranges: GeneratedRange[] = [];
|
|
26
26
|
|
|
27
|
+
#currentSourceScopes: OriginalScope[] | null = null;
|
|
27
28
|
#scopeStack: OriginalScope[] = [];
|
|
28
29
|
#rangeStack: GeneratedRange[] = [];
|
|
29
30
|
|
|
@@ -31,11 +32,24 @@ export class ScopeInfoBuilder {
|
|
|
31
32
|
#keyToScope = new Map<ScopeKey, OriginalScope>();
|
|
32
33
|
#lastScope: OriginalScope | null = null;
|
|
33
34
|
|
|
34
|
-
|
|
35
|
+
addNullSource(): this {
|
|
35
36
|
this.#scopes.push(null);
|
|
36
37
|
return this;
|
|
37
38
|
}
|
|
38
39
|
|
|
40
|
+
startSource(): this {
|
|
41
|
+
this.#currentSourceScopes = [];
|
|
42
|
+
return this;
|
|
43
|
+
}
|
|
44
|
+
|
|
45
|
+
endSource(): this {
|
|
46
|
+
if (this.#currentSourceScopes) {
|
|
47
|
+
this.#scopes.push(this.#currentSourceScopes);
|
|
48
|
+
this.#currentSourceScopes = null;
|
|
49
|
+
}
|
|
50
|
+
return this;
|
|
51
|
+
}
|
|
52
|
+
|
|
39
53
|
startScope(
|
|
40
54
|
line: number,
|
|
41
55
|
column: number,
|
|
@@ -100,7 +114,7 @@ export class ScopeInfoBuilder {
|
|
|
100
114
|
scope.end = { line, column };
|
|
101
115
|
|
|
102
116
|
if (this.#scopeStack.length === 0) {
|
|
103
|
-
this.#
|
|
117
|
+
this.#currentSourceScopes?.push(scope);
|
|
104
118
|
} else {
|
|
105
119
|
this.#scopeStack.at(-1)!.children.push(scope);
|
|
106
120
|
}
|
|
@@ -227,6 +241,7 @@ export class ScopeInfoBuilder {
|
|
|
227
241
|
|
|
228
242
|
this.#scopes = [];
|
|
229
243
|
this.#ranges = [];
|
|
244
|
+
this.#currentSourceScopes = null;
|
|
230
245
|
this.#knownScopes.clear();
|
|
231
246
|
this.#keyToScope.clear();
|
|
232
247
|
this.#lastScope = null;
|
|
@@ -234,6 +249,10 @@ export class ScopeInfoBuilder {
|
|
|
234
249
|
return info;
|
|
235
250
|
}
|
|
236
251
|
|
|
252
|
+
protected get currentSourceScopes(): ReadonlyArray<OriginalScope> | null {
|
|
253
|
+
return this.#currentSourceScopes;
|
|
254
|
+
}
|
|
255
|
+
|
|
237
256
|
protected get scopeStack(): ReadonlyArray<OriginalScope> {
|
|
238
257
|
return this.#scopeStack;
|
|
239
258
|
}
|
|
@@ -7,13 +7,29 @@ import { ScopeInfoBuilder } from "./builder.js";
|
|
|
7
7
|
* Similar to `ScopeInfoBuilder`, but with checks that scopes/ranges are well
|
|
8
8
|
* nested and don't partially overlap.
|
|
9
9
|
*/ export class SafeScopeInfoBuilder extends ScopeInfoBuilder {
|
|
10
|
-
|
|
11
|
-
this.#
|
|
12
|
-
this.#
|
|
13
|
-
|
|
10
|
+
addNullSource() {
|
|
11
|
+
this.#verifyNoOpenSource("add null source");
|
|
12
|
+
this.#verifyEmptyScopeStack("add null source");
|
|
13
|
+
this.#verifyEmptyRangeStack("add null source");
|
|
14
|
+
super.addNullSource();
|
|
15
|
+
return this;
|
|
16
|
+
}
|
|
17
|
+
startSource() {
|
|
18
|
+
this.#verifyNoOpenSource("start source");
|
|
19
|
+
this.#verifyEmptyScopeStack("start source");
|
|
20
|
+
this.#verifyEmptyRangeStack("start source");
|
|
21
|
+
super.startSource();
|
|
22
|
+
return this;
|
|
23
|
+
}
|
|
24
|
+
endSource() {
|
|
25
|
+
this.#verifyOpenSource("end source");
|
|
26
|
+
this.#verifyEmptyScopeStack("end source");
|
|
27
|
+
this.#verifyEmptyRangeStack("end source");
|
|
28
|
+
super.endSource();
|
|
14
29
|
return this;
|
|
15
30
|
}
|
|
16
31
|
startScope(line, column, options) {
|
|
32
|
+
this.#verifyOpenSource("start scope");
|
|
17
33
|
this.#verifyEmptyRangeStack("start scope");
|
|
18
34
|
const parent = this.scopeStack.at(-1);
|
|
19
35
|
if (parent && comparePositions(parent.start, {
|
|
@@ -22,7 +38,7 @@ import { ScopeInfoBuilder } from "./builder.js";
|
|
|
22
38
|
}) > 0) {
|
|
23
39
|
throw new Error(`Scope start (${line}, ${column}) must not precede parent start (${parent.start.line}, ${parent.start.column})`);
|
|
24
40
|
}
|
|
25
|
-
const precedingSibling = parent
|
|
41
|
+
const precedingSibling = parent ? parent.children.at(-1) : this.currentSourceScopes?.at(-1);
|
|
26
42
|
if (precedingSibling && comparePositions(precedingSibling.end, {
|
|
27
43
|
line,
|
|
28
44
|
column
|
|
@@ -72,6 +88,7 @@ import { ScopeInfoBuilder } from "./builder.js";
|
|
|
72
88
|
return this;
|
|
73
89
|
}
|
|
74
90
|
startRange(line, column, options) {
|
|
91
|
+
this.#verifyNoOpenSource("startRange");
|
|
75
92
|
this.#verifyEmptyScopeStack("starRange");
|
|
76
93
|
const parent = this.rangeStack.at(-1);
|
|
77
94
|
if (parent && comparePositions(parent.start, {
|
|
@@ -177,9 +194,20 @@ import { ScopeInfoBuilder } from "./builder.js";
|
|
|
177
194
|
if (this.scopeStack.length > 0) {
|
|
178
195
|
throw new Error("Can't build ScopeInfo while an OriginalScope is unclosed.");
|
|
179
196
|
}
|
|
197
|
+
this.#verifyNoOpenSource("build ScopeInfo");
|
|
180
198
|
this.#verifyEmptyRangeStack("build ScopeInfo");
|
|
181
199
|
return super.build();
|
|
182
200
|
}
|
|
201
|
+
#verifyNoOpenSource(op) {
|
|
202
|
+
if (this.currentSourceScopes !== null) {
|
|
203
|
+
throw new Error(`Can't ${op} while a source is unclosed.`);
|
|
204
|
+
}
|
|
205
|
+
}
|
|
206
|
+
#verifyOpenSource(op) {
|
|
207
|
+
if (this.currentSourceScopes === null) {
|
|
208
|
+
throw new Error(`Can't ${op} without an open source.`);
|
|
209
|
+
}
|
|
210
|
+
}
|
|
183
211
|
#verifyEmptyScopeStack(op) {
|
|
184
212
|
if (this.scopeStack.length > 0) {
|
|
185
213
|
throw new Error(`Can't ${op} while a OriginalScope is unclosed.`);
|
package/front_end/third_party/source-map-scopes-codec/package/src/builder/safe_builder.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"safe_builder.js","sources":["./safe_builder.ts"],"names":[],"mappings":"AAAA,4DAA4D;AAC5D,yEAAyE;AACzE,6BAA6B;AAS7B,SAAS,gBAAgB,qBAAqB;AAC9C,SAAS,gBAAgB,uBAAsC;AAE/D;;;CAGC,GACD,OAAO,MAAM,6BAA6B;EAC/B,
|
|
1
|
+
{"version":3,"file":"safe_builder.js","sources":["./safe_builder.ts"],"names":[],"mappings":"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"}
|
|
@@ -17,11 +17,30 @@ import { ScopeInfoBuilder, type ScopeKey } from "./builder.js";
|
|
|
17
17
|
* nested and don't partially overlap.
|
|
18
18
|
*/
|
|
19
19
|
export class SafeScopeInfoBuilder extends ScopeInfoBuilder {
|
|
20
|
-
override
|
|
21
|
-
this.#
|
|
22
|
-
this.#
|
|
20
|
+
override addNullSource(): this {
|
|
21
|
+
this.#verifyNoOpenSource("add null source");
|
|
22
|
+
this.#verifyEmptyScopeStack("add null source");
|
|
23
|
+
this.#verifyEmptyRangeStack("add null source");
|
|
23
24
|
|
|
24
|
-
super.
|
|
25
|
+
super.addNullSource();
|
|
26
|
+
return this;
|
|
27
|
+
}
|
|
28
|
+
|
|
29
|
+
override startSource(): this {
|
|
30
|
+
this.#verifyNoOpenSource("start source");
|
|
31
|
+
this.#verifyEmptyScopeStack("start source");
|
|
32
|
+
this.#verifyEmptyRangeStack("start source");
|
|
33
|
+
|
|
34
|
+
super.startSource();
|
|
35
|
+
return this;
|
|
36
|
+
}
|
|
37
|
+
|
|
38
|
+
override endSource(): this {
|
|
39
|
+
this.#verifyOpenSource("end source");
|
|
40
|
+
this.#verifyEmptyScopeStack("end source");
|
|
41
|
+
this.#verifyEmptyRangeStack("end source");
|
|
42
|
+
|
|
43
|
+
super.endSource();
|
|
25
44
|
return this;
|
|
26
45
|
}
|
|
27
46
|
|
|
@@ -36,6 +55,7 @@ export class SafeScopeInfoBuilder extends ScopeInfoBuilder {
|
|
|
36
55
|
key?: ScopeKey;
|
|
37
56
|
},
|
|
38
57
|
): this {
|
|
58
|
+
this.#verifyOpenSource("start scope");
|
|
39
59
|
this.#verifyEmptyRangeStack("start scope");
|
|
40
60
|
|
|
41
61
|
const parent = this.scopeStack.at(-1);
|
|
@@ -46,7 +66,9 @@ export class SafeScopeInfoBuilder extends ScopeInfoBuilder {
|
|
|
46
66
|
);
|
|
47
67
|
}
|
|
48
68
|
|
|
49
|
-
const precedingSibling = parent
|
|
69
|
+
const precedingSibling = parent
|
|
70
|
+
? parent.children.at(-1)
|
|
71
|
+
: this.currentSourceScopes?.at(-1);
|
|
50
72
|
if (
|
|
51
73
|
precedingSibling &&
|
|
52
74
|
comparePositions(precedingSibling.end, { line, column }) > 0
|
|
@@ -124,6 +146,7 @@ export class SafeScopeInfoBuilder extends ScopeInfoBuilder {
|
|
|
124
146
|
callSite?: OriginalPosition;
|
|
125
147
|
},
|
|
126
148
|
): this {
|
|
149
|
+
this.#verifyNoOpenSource("startRange");
|
|
127
150
|
this.#verifyEmptyScopeStack("starRange");
|
|
128
151
|
|
|
129
152
|
const parent = this.rangeStack.at(-1);
|
|
@@ -280,11 +303,24 @@ export class SafeScopeInfoBuilder extends ScopeInfoBuilder {
|
|
|
280
303
|
"Can't build ScopeInfo while an OriginalScope is unclosed.",
|
|
281
304
|
);
|
|
282
305
|
}
|
|
306
|
+
this.#verifyNoOpenSource("build ScopeInfo");
|
|
283
307
|
this.#verifyEmptyRangeStack("build ScopeInfo");
|
|
284
308
|
|
|
285
309
|
return super.build();
|
|
286
310
|
}
|
|
287
311
|
|
|
312
|
+
#verifyNoOpenSource(op: string): void {
|
|
313
|
+
if (this.currentSourceScopes !== null) {
|
|
314
|
+
throw new Error(`Can't ${op} while a source is unclosed.`);
|
|
315
|
+
}
|
|
316
|
+
}
|
|
317
|
+
|
|
318
|
+
#verifyOpenSource(op: string): void {
|
|
319
|
+
if (this.currentSourceScopes === null) {
|
|
320
|
+
throw new Error(`Can't ${op} without an open source.`);
|
|
321
|
+
}
|
|
322
|
+
}
|
|
323
|
+
|
|
288
324
|
#verifyEmptyScopeStack(op: string): void {
|
|
289
325
|
if (this.scopeStack.length > 0) {
|
|
290
326
|
throw new Error(`Can't ${op} while a OriginalScope is unclosed.`);
|