88const { analyze } = require ( './analyze-component' ) ;
99const { isSSREscape } = require ( './util/ssr' ) ;
1010const { isGlobalIdentifier } = require ( './util/scope' ) ;
11+ const { getAncestors, getScope } = require ( './util/context' ) ;
1112
1213/**
1314 * Visitors for detecting methods/functions that are reachable during SSR
@@ -133,7 +134,7 @@ const noReferenceParentQualifiers = new Set([
133134const globalAccessQualifiers = new Set ( [ 'CallExpression' , 'MemberExpression' ] ) ;
134135
135136function inModuleScope ( node , context ) {
136- for ( const ancestor of context . getAncestors ( ) ) {
137+ for ( const ancestor of getAncestors ( context , node ) ) {
137138 if ( moduleScopeDisqualifiers . has ( ancestor . type ) ) {
138139 return false ;
139140 }
@@ -168,7 +169,7 @@ function noReferenceDuringSSR(forbiddenGlobalNames, messageIds, context) {
168169 node . object . name === 'window' ) &&
169170 node . property . type === 'Identifier' &&
170171 forbiddenGlobalNames . has ( node . property . name ) &&
171- isGlobalIdentifier ( node . object , context . getScope ( ) )
172+ isGlobalIdentifier ( node . object , getScope ( context , node ) )
172173 ) {
173174 // Prevents expressions like:
174175 // globalThis.document.addEventListener('click', () => { ... });
@@ -193,7 +194,7 @@ function noReferenceDuringSSR(forbiddenGlobalNames, messageIds, context) {
193194 node . object . name === 'globalThis' &&
194195 node . property . type === 'Identifier' &&
195196 forbiddenGlobalNames . has ( node . property . name ) &&
196- isGlobalIdentifier ( node . object , context . getScope ( ) )
197+ isGlobalIdentifier ( node . object , getScope ( context , node ) )
197198 ) {
198199 // Prevents expressions like:
199200 // globalThis.addEventListener('click', () => { ... });
@@ -214,7 +215,7 @@ function noReferenceDuringSSR(forbiddenGlobalNames, messageIds, context) {
214215 node . parent . type !== 'MemberExpression' &&
215216 node . object . type === 'Identifier' &&
216217 forbiddenGlobalNames . has ( node . object . name ) &&
217- isGlobalIdentifier ( node . object , context . getScope ( ) )
218+ isGlobalIdentifier ( node . object , getScope ( context , node ) )
218219 ) {
219220 // Prevents expressions like:
220221 // window.addEventListener('click', () => { ... });
@@ -244,7 +245,7 @@ function noReferenceDuringSSR(forbiddenGlobalNames, messageIds, context) {
244245 if (
245246 noReferenceParentQualifiers . has ( node . parent . type ) &&
246247 forbiddenGlobalNames . has ( node . name ) &&
247- isGlobalIdentifier ( node , context . getScope ( ) )
248+ isGlobalIdentifier ( node , getScope ( context , node ) )
248249 ) {
249250 // Prevents expressions like:
250251 // doSomethingWith(window);
@@ -264,7 +265,7 @@ function noReferenceDuringSSR(forbiddenGlobalNames, messageIds, context) {
264265 node . parent . operator === 'instanceof' &&
265266 node . parent . right === node &&
266267 forbiddenGlobalNames . has ( node . name ) &&
267- isGlobalIdentifier ( node , context . getScope ( ) )
268+ isGlobalIdentifier ( node , getScope ( context , node ) )
268269 ) {
269270 // Prevents expressions like:
270271 // if (value instanceof Element) { ... }
@@ -284,7 +285,7 @@ function noReferenceDuringSSR(forbiddenGlobalNames, messageIds, context) {
284285 node . expression . type === 'CallExpression' &&
285286 node . expression . callee . type === 'Identifier' &&
286287 forbiddenGlobalNames . has ( node . expression . callee . name ) &&
287- isGlobalIdentifier ( node , context . getScope ( ) )
288+ isGlobalIdentifier ( node , getScope ( context , node ) )
288289 ) {
289290 // Prevents global expressions like:
290291 // addEventListener('resize', () => {...});
0 commit comments