@@ -91,7 +91,7 @@ const BasicEvaluatedExpression = require("./BasicEvaluatedExpression");
9191/** @typedef {import("../Parser").ParserState } ParserState */
9292/** @typedef {import("../Parser").PreparsedAst } PreparsedAst */
9393/** @typedef {{declaredScope: ScopeInfo, freeName: string | true, tagInfo: TagInfo | undefined} } VariableInfoInterface */
94- /** @typedef {{ name: string | VariableInfo, rootInfo: string | VariableInfo, getMembers: () => string[], getMembersOptionals: () => boolean[], getMemberRangeStarts : () => number [] } } GetInfoResult */
94+ /** @typedef {{ name: string | VariableInfo, rootInfo: string | VariableInfo, getMembers: () => string[], getMembersOptionals: () => boolean[], getMemberRanges : () => Range [] } } GetInfoResult */
9595
9696const EMPTY_ARRAY = [ ] ;
9797const ALLOWED_MEMBER_TYPES_CALL_EXPRESSION = 0b01 ;
@@ -350,14 +350,14 @@ class JavascriptParser extends Parser {
350350 /** @type {HookMap<SyncBailHook<[BaseCallExpression], boolean | void>> } */
351351 call : new HookMap ( ( ) => new SyncBailHook ( [ "expression" ] ) ) ,
352352 /** Something like "a.b()" */
353- /** @type {HookMap<SyncBailHook<[CallExpression, string[], boolean[], number []], boolean | void>> } */
353+ /** @type {HookMap<SyncBailHook<[CallExpression, string[], boolean[], Range []], boolean | void>> } */
354354 callMemberChain : new HookMap (
355355 ( ) =>
356356 new SyncBailHook ( [
357357 "expression" ,
358358 "members" ,
359359 "membersOptionals" ,
360- "memberRangeStarts "
360+ "memberRanges "
361361 ] )
362362 ) ,
363363 /** Something like "a.b().c.d" */
@@ -390,14 +390,14 @@ class JavascriptParser extends Parser {
390390 binaryExpression : new SyncBailHook ( [ "binaryExpression" ] ) ,
391391 /** @type {HookMap<SyncBailHook<[Expression], boolean | void>> } */
392392 expression : new HookMap ( ( ) => new SyncBailHook ( [ "expression" ] ) ) ,
393- /** @type {HookMap<SyncBailHook<[Expression, string[], boolean[], number []], boolean | void>> } */
393+ /** @type {HookMap<SyncBailHook<[Expression, string[], boolean[], Range []], boolean | void>> } */
394394 expressionMemberChain : new HookMap (
395395 ( ) =>
396396 new SyncBailHook ( [
397397 "expression" ,
398398 "members" ,
399399 "membersOptionals" ,
400- "memberRangeStarts "
400+ "memberRanges "
401401 ] )
402402 ) ,
403403 /** @type {HookMap<SyncBailHook<[Expression, string[]], boolean | void>> } */
@@ -1163,7 +1163,7 @@ class JavascriptParser extends Parser {
11631163 info . rootInfo ,
11641164 info . getMembers ,
11651165 info . getMembersOptionals ,
1166- info . getMemberRangeStarts
1166+ info . getMemberRanges
11671167 )
11681168 . setRange ( expr . range ) ;
11691169 }
@@ -1184,7 +1184,7 @@ class JavascriptParser extends Parser {
11841184 rootInfo : info ,
11851185 getMembers : ( ) => [ ] ,
11861186 getMembersOptionals : ( ) => [ ] ,
1187- getMemberRangeStarts : ( ) => [ ]
1187+ getMemberRanges : ( ) => [ ]
11881188 } ;
11891189 }
11901190 } ) ;
@@ -1199,7 +1199,7 @@ class JavascriptParser extends Parser {
11991199 rootInfo : info ,
12001200 getMembers : ( ) => [ ] ,
12011201 getMembersOptionals : ( ) => [ ] ,
1202- getMemberRangeStarts : ( ) => [ ]
1202+ getMemberRanges : ( ) => [ ]
12031203 } ;
12041204 }
12051205 } ) ;
@@ -3264,7 +3264,7 @@ class JavascriptParser extends Parser {
32643264 callee . getMembersOptionals
32653265 ? callee . getMembersOptionals ( )
32663266 : callee . getMembers ( ) . map ( ( ) => false ) ,
3267- callee . getMemberRangeStarts ? callee . getMemberRangeStarts ( ) : [ ]
3267+ callee . getMemberRanges ? callee . getMemberRanges ( ) : [ ]
32683268 ) ;
32693269 if ( result1 === true ) return ;
32703270 const result2 = this . callHooksForInfo (
@@ -3308,14 +3308,14 @@ class JavascriptParser extends Parser {
33083308 if ( result1 === true ) return ;
33093309 const members = exprInfo . getMembers ( ) ;
33103310 const membersOptionals = exprInfo . getMembersOptionals ( ) ;
3311- const memberRangeStarts = exprInfo . getMemberRangeStarts ( ) ;
3311+ const memberRanges = exprInfo . getMemberRanges ( ) ;
33123312 const result2 = this . callHooksForInfo (
33133313 this . hooks . expressionMemberChain ,
33143314 exprInfo . rootInfo ,
33153315 expression ,
33163316 members ,
33173317 membersOptionals ,
3318- memberRangeStarts
3318+ memberRanges
33193319 ) ;
33203320 if ( result2 === true ) return ;
33213321 this . walkMemberExpressionWithExpressionName (
@@ -4271,23 +4271,23 @@ class JavascriptParser extends Parser {
42714271
42724272 /**
42734273 * @param {MemberExpression } expression a member expression
4274- * @returns {{ members: string[], object: Expression | Super, membersOptionals: boolean[], memberRangeStarts: number [] } } member names (reverse order) and remaining object
4274+ * @returns {{ members: string[], object: Expression | Super, membersOptionals: boolean[], memberRanges: Range [] } } member names (reverse order) and remaining object
42754275 */
42764276 extractMemberExpressionChain ( expression ) {
42774277 /** @type {AnyNode } */
42784278 let expr = expression ;
42794279 const members = [ ] ;
42804280 const membersOptionals = [ ] ;
4281- const memberRangeStarts = [ ] ;
4281+ const memberRanges = [ ] ;
42824282 while ( expr . type === "MemberExpression" ) {
42834283 if ( expr . computed ) {
42844284 if ( expr . property . type !== "Literal" ) break ;
4285- members . push ( `${ expr . property . value } ` ) ;
4286- memberRangeStarts . push ( expr . object . range [ 1 ] ) ;
4285+ members . push ( `${ expr . property . value } ` ) ; // the literal
4286+ memberRanges . push ( expr . object . range ) ; // the range of the expression fragment before the literal
42874287 } else {
42884288 if ( expr . property . type !== "Identifier" ) break ;
4289- members . push ( expr . property . name ) ;
4290- memberRangeStarts . push ( expr . object . range [ 1 ] ) ;
4289+ members . push ( expr . property . name ) ; // the identifier
4290+ memberRanges . push ( expr . object . range ) ; // the range of the expression fragment before the identifier
42914291 }
42924292 membersOptionals . push ( expr . optional ) ;
42934293 expr = expr . object ;
@@ -4296,7 +4296,7 @@ class JavascriptParser extends Parser {
42964296 return {
42974297 members,
42984298 membersOptionals,
4299- memberRangeStarts ,
4299+ memberRanges ,
43004300 object : expr
43014301 } ;
43024302 }
@@ -4319,16 +4319,16 @@ class JavascriptParser extends Parser {
43194319 return { info, name } ;
43204320 }
43214321
4322- /** @typedef {{ type: "call", call: CallExpression, calleeName: string, rootInfo: string | VariableInfo, getCalleeMembers: () => string[], name: string, getMembers: () => string[], getMembersOptionals: () => boolean[], getMemberRangeStarts : () => number []} } CallExpressionInfo */
4323- /** @typedef {{ type: "expression", rootInfo: string | VariableInfo, name: string, getMembers: () => string[], getMembersOptionals: () => boolean[], getMemberRangeStarts : () => number []} } ExpressionExpressionInfo */
4322+ /** @typedef {{ type: "call", call: CallExpression, calleeName: string, rootInfo: string | VariableInfo, getCalleeMembers: () => string[], name: string, getMembers: () => string[], getMembersOptionals: () => boolean[], getMemberRanges : () => Range []} } CallExpressionInfo */
4323+ /** @typedef {{ type: "expression", rootInfo: string | VariableInfo, name: string, getMembers: () => string[], getMembersOptionals: () => boolean[], getMemberRanges : () => Range []} } ExpressionExpressionInfo */
43244324
43254325 /**
43264326 * @param {MemberExpression } expression a member expression
43274327 * @param {number } allowedTypes which types should be returned, presented in bit mask
43284328 * @returns {CallExpressionInfo | ExpressionExpressionInfo | undefined } expression info
43294329 */
43304330 getMemberExpressionInfo ( expression , allowedTypes ) {
4331- const { object, members, membersOptionals, memberRangeStarts } =
4331+ const { object, members, membersOptionals, memberRanges } =
43324332 this . extractMemberExpressionChain ( expression ) ;
43334333 switch ( object . type ) {
43344334 case "CallExpression" : {
@@ -4355,7 +4355,7 @@ class JavascriptParser extends Parser {
43554355 name : objectAndMembersToName ( `${ calleeName } ()` , members ) ,
43564356 getMembers : memoize ( ( ) => members . reverse ( ) ) ,
43574357 getMembersOptionals : memoize ( ( ) => membersOptionals . reverse ( ) ) ,
4358- getMemberRangeStarts : memoize ( ( ) => memberRangeStarts . reverse ( ) )
4358+ getMemberRanges : memoize ( ( ) => memberRanges . reverse ( ) )
43594359 } ;
43604360 }
43614361 case "Identifier" :
@@ -4375,7 +4375,7 @@ class JavascriptParser extends Parser {
43754375 rootInfo,
43764376 getMembers : memoize ( ( ) => members . reverse ( ) ) ,
43774377 getMembersOptionals : memoize ( ( ) => membersOptionals . reverse ( ) ) ,
4378- getMemberRangeStarts : memoize ( ( ) => memberRangeStarts . reverse ( ) )
4378+ getMemberRanges : memoize ( ( ) => memberRanges . reverse ( ) )
43794379 } ;
43804380 }
43814381 }
0 commit comments