MCPcopy
hub / github.com/webpack/webpack / walkMemberExpression

Method walkMemberExpression

lib/javascript/JavascriptParser.js:4270–4331  ·  view source on GitHub ↗

* Walk member expression. * @param {MemberExpression} expression member expression

(expression)

Source from the content-addressed store, hash-verified

4268 * @param {MemberExpression} expression member expression
4269 */
4270 walkMemberExpression(expression) {
4271 const exprInfo = this.getMemberExpressionInfo(
4272 expression,
4273 ALLOWED_MEMBER_TYPES_ALL
4274 );
4275 if (exprInfo) {
4276 switch (exprInfo.type) {
4277 case "expression": {
4278 const result1 = this.callHooksForInfo(
4279 this.hooks.expression,
4280 exprInfo.name,
4281 expression
4282 );
4283 if (result1 === true) return;
4284 const members = exprInfo.getMembers();
4285 const membersOptionals = exprInfo.getMembersOptionals();
4286 const memberRanges = exprInfo.getMemberRanges();
4287 const result2 = this.callHooksForInfo(
4288 this.hooks.expressionMemberChain,
4289 exprInfo.rootInfo,
4290 expression,
4291 members,
4292 membersOptionals,
4293 memberRanges
4294 );
4295 if (result2 === true) return;
4296 this.walkMemberExpressionWithExpressionName(
4297 expression,
4298 exprInfo.name,
4299 exprInfo.rootInfo,
4300 [...members],
4301 () =>
4302 this.callHooksForInfo(
4303 this.hooks.unhandledExpressionMemberChain,
4304 exprInfo.rootInfo,
4305 expression,
4306 members
4307 )
4308 );
4309 return;
4310 }
4311 case "call": {
4312 const result = this.callHooksForInfo(
4313 this.hooks.memberChainOfCallMemberChain,
4314 exprInfo.rootInfo,
4315 expression,
4316 exprInfo.getCalleeMembers(),
4317 exprInfo.call,
4318 exprInfo.getMembers(),
4319 exprInfo.getMemberRanges()
4320 );
4321 if (result === true) return;
4322 // Fast skip over the member chain as we already called memberChainOfCallMemberChain
4323 // and call computed property are literals anyway
4324 this.walkExpression(exprInfo.call);
4325 return;
4326 }
4327 }

Callers 3

walkPatternMethod · 0.95
walkExpressionMethod · 0.95
walkChainExpressionMethod · 0.95

Calls 4

callHooksForInfoMethod · 0.95
walkExpressionMethod · 0.95

Tested by

no test coverage detected