@@ -21,8 +21,12 @@ const HarmonyImportSpecifierDependency = require("./HarmonyImportSpecifierDepend
2121/** @typedef {import("estree").Identifier } Identifier */
2222/** @typedef {import("estree").ImportDeclaration } ImportDeclaration */
2323/** @typedef {import("estree").ImportExpression } ImportExpression */
24+ /** @typedef {import("estree").MemberExpression } MemberExpression */
2425/** @typedef {import("../../declarations/WebpackOptions").JavascriptParserOptions } JavascriptParserOptions */
26+ /** @typedef {import("../Dependency").DependencyLocation } DependencyLocation */
27+ /** @typedef {import("../javascript/BasicEvaluatedExpression") } BasicEvaluatedExpression */
2528/** @typedef {import("../javascript/JavascriptParser") } JavascriptParser */
29+ /** @typedef {import("../javascript/JavascriptParser").Range } Range */
2630/** @typedef {import("../optimize/InnerGraph").InnerGraph } InnerGraph */
2731/** @typedef {import("../optimize/InnerGraph").TopLevelSymbol } TopLevelSymbol */
2832/** @typedef {import("./HarmonyImportDependency") } HarmonyImportDependency */
@@ -113,19 +117,21 @@ module.exports = class HarmonyImportDependencyParserPlugin {
113117 parser . state . lastHarmonyImportOrder =
114118 ( parser . state . lastHarmonyImportOrder || 0 ) + 1 ;
115119 const clearDep = new ConstDependency (
116- parser . isAsiPosition ( statement . range [ 0 ] ) ? ";" : "" ,
117- statement . range
120+ parser . isAsiPosition ( /** @type {Range } */ ( statement . range ) [ 0 ] )
121+ ? ";"
122+ : "" ,
123+ /** @type {Range } */ ( statement . range )
118124 ) ;
119- clearDep . loc = statement . loc ;
125+ clearDep . loc = /** @type { DependencyLocation } */ ( statement . loc ) ;
120126 parser . state . module . addPresentationalDependency ( clearDep ) ;
121- parser . unsetAsiPosition ( statement . range [ 1 ] ) ;
127+ parser . unsetAsiPosition ( /** @type { Range } */ ( statement . range ) [ 1 ] ) ;
122128 const assertions = getAssertions ( statement ) ;
123129 const sideEffectDep = new HarmonyImportSideEffectDependency (
124130 source ,
125131 parser . state . lastHarmonyImportOrder ,
126132 assertions
127133 ) ;
128- sideEffectDep . loc = statement . loc ;
134+ sideEffectDep . loc = /** @type { DependencyLocation } */ ( statement . loc ) ;
129135 parser . state . module . addDependency ( sideEffectDep ) ;
130136 return true ;
131137 }
@@ -172,13 +178,15 @@ module.exports = class HarmonyImportDependencyParserPlugin {
172178 settings . sourceOrder ,
173179 settings . ids . concat ( members ) . concat ( [ leftPart ] ) ,
174180 settings . name ,
175- expression . range ,
181+ /** @type { Range } */ ( expression . range ) ,
176182 settings . assertions ,
177183 "in"
178184 ) ;
179185 dep . directImport = members . length === 0 ;
180- dep . asiSafe = ! parser . isAsiPosition ( expression . range [ 0 ] ) ;
181- dep . loc = expression . loc ;
186+ dep . asiSafe = ! parser . isAsiPosition (
187+ /** @type {Range } */ ( expression . range ) [ 0 ]
188+ ) ;
189+ dep . loc = /** @type {DependencyLocation } */ ( expression . loc ) ;
182190 parser . state . module . addDependency ( dep ) ;
183191 InnerGraph . onUsage ( parser . state , e => ( dep . usedByExports = e ) ) ;
184192 return true ;
@@ -193,7 +201,7 @@ module.exports = class HarmonyImportDependencyParserPlugin {
193201 settings . sourceOrder ,
194202 settings . ids ,
195203 settings . name ,
196- expr . range ,
204+ /** @type { Range } */ ( expr . range ) ,
197205 exportPresenceMode ,
198206 settings . assertions ,
199207 [ ]
@@ -202,8 +210,10 @@ module.exports = class HarmonyImportDependencyParserPlugin {
202210 parser . destructuringAssignmentPropertiesFor ( expr ) ;
203211 dep . shorthand = parser . scope . inShorthand ;
204212 dep . directImport = true ;
205- dep . asiSafe = ! parser . isAsiPosition ( expr . range [ 0 ] ) ;
206- dep . loc = expr . loc ;
213+ dep . asiSafe = ! parser . isAsiPosition (
214+ /** @type {Range } */ ( expr . range ) [ 0 ]
215+ ) ;
216+ dep . loc = /** @type {DependencyLocation } */ ( expr . loc ) ;
207217 dep . call = parser . scope . inTaggedTemplateTag ;
208218 parser . state . module . addDependency ( dep ) ;
209219 InnerGraph . onUsage ( parser . state , e => ( dep . usedByExports = e ) ) ;
@@ -238,15 +248,17 @@ module.exports = class HarmonyImportDependencyParserPlugin {
238248 settings . sourceOrder ,
239249 ids ,
240250 settings . name ,
241- expr . range ,
251+ /** @type { Range } */ ( expr . range ) ,
242252 exportPresenceMode ,
243253 settings . assertions ,
244254 ranges
245255 ) ;
246256 dep . referencedPropertiesInDestructuring =
247257 parser . destructuringAssignmentPropertiesFor ( expr ) ;
248- dep . asiSafe = ! parser . isAsiPosition ( expr . range [ 0 ] ) ;
249- dep . loc = expr . loc ;
258+ dep . asiSafe = ! parser . isAsiPosition (
259+ /** @type {Range } */ ( expr . range ) [ 0 ]
260+ ) ;
261+ dep . loc = /** @type {DependencyLocation } */ ( expr . loc ) ;
250262 parser . state . module . addDependency ( dep ) ;
251263 InnerGraph . onUsage ( parser . state , e => ( dep . usedByExports = e ) ) ;
252264 return true ;
@@ -282,18 +294,20 @@ module.exports = class HarmonyImportDependencyParserPlugin {
282294 settings . sourceOrder ,
283295 ids ,
284296 settings . name ,
285- expr . range ,
297+ /** @type { Range } */ ( expr . range ) ,
286298 exportPresenceMode ,
287299 settings . assertions ,
288300 ranges
289301 ) ;
290302 dep . directImport = members . length === 0 ;
291303 dep . call = true ;
292- dep . asiSafe = ! parser . isAsiPosition ( expr . range [ 0 ] ) ;
304+ dep . asiSafe = ! parser . isAsiPosition (
305+ /** @type {Range } */ ( expr . range ) [ 0 ]
306+ ) ;
293307 // only in case when we strictly follow the spec we need a special case here
294308 dep . namespaceObjectAsContext =
295309 members . length > 0 && this . strictThisContextOnImports ;
296- dep . loc = expr . loc ;
310+ dep . loc = /** @type { DependencyLocation } */ ( expr . loc ) ;
297311 parser . state . module . addDependency ( dep ) ;
298312 if ( args ) parser . walkExpressions ( args ) ;
299313 InnerGraph . onUsage ( parser . state , e => ( dep . usedByExports = e ) ) ;
0 commit comments