@@ -16,6 +16,7 @@ import {
16
16
import { addElementToSortedArray } from "../utils/index.js" ;
17
17
import type { NormalizedParserOptions } from "./parser-options.js" ;
18
18
import type { SvelteParseContext } from "./svelte-parse-context.js" ;
19
+ import { getGlobalsForSvelte } from "./globals.js" ;
19
20
/**
20
21
* Analyze scope
21
22
*/
@@ -105,7 +106,10 @@ export function analyzeReactiveScope(scopeManager: ScopeManager): void {
105
106
/**
106
107
* Analyze store scope. e.g. $count
107
108
*/
108
- export function analyzeStoreScope ( scopeManager : ScopeManager ) : void {
109
+ export function analyzeStoreScope (
110
+ scopeManager : ScopeManager ,
111
+ svelteParseContext : SvelteParseContext ,
112
+ ) : void {
109
113
const moduleScope = scopeManager . scopes . find (
110
114
( scope ) => scope . type === "module" ,
111
115
) ;
@@ -114,8 +118,13 @@ export function analyzeStoreScope(scopeManager: ScopeManager): void {
114
118
}
115
119
const toBeMarkAsUsedReferences : Reference [ ] = [ ] ;
116
120
121
+ const globals = getGlobalsForSvelte ( svelteParseContext ) ;
122
+
117
123
for ( const reference of [ ...scopeManager . globalScope . through ] ) {
118
- if ( reference . identifier . name . startsWith ( "$" ) ) {
124
+ if (
125
+ reference . identifier . name . startsWith ( "$" ) &&
126
+ ! globals . includes ( reference . identifier . name as never )
127
+ ) {
119
128
const realName = reference . identifier . name . slice ( 1 ) ;
120
129
const variable = moduleScope . set . get ( realName ) ;
121
130
if ( variable ) {
0 commit comments