Home / File/ MemberExpression.js — svelte Source File

MemberExpression.js — svelte Source File

Architecture documentation for MemberExpression.js, a javascript file in the svelte codebase. 5 imports, 1 dependents.

File javascript Compiler Transformer 5 imports 1 dependents 1 functions

Entity Profile

Dependency Diagram

graph LR
  1bc14664_f20b_3427_fd82_e3fe649a4e10["MemberExpression.js"]
  495501a4_a342_6a4d_ac11_e3e2fee8b218["errors.js"]
  1bc14664_f20b_3427_fd82_e3fe649a4e10 --> 495501a4_a342_6a4d_ac11_e3e2fee8b218
  a146f6ac_0088_8736_b6ce_318f9f115170["e"]
  1bc14664_f20b_3427_fd82_e3fe649a4e10 --> a146f6ac_0088_8736_b6ce_318f9f115170
  bf0d8f1b_17da_970d_bf44_fbcf099d5371["utils.js"]
  1bc14664_f20b_3427_fd82_e3fe649a4e10 --> bf0d8f1b_17da_970d_bf44_fbcf099d5371
  3aac8d0a_5cc9_78ed_97ef_1c2a43db9e18["is_pure"]
  1bc14664_f20b_3427_fd82_e3fe649a4e10 --> 3aac8d0a_5cc9_78ed_97ef_1c2a43db9e18
  e40e188e_6def_6359_11b9_9532abe99b8d["is_safe_identifier"]
  1bc14664_f20b_3427_fd82_e3fe649a4e10 --> e40e188e_6def_6359_11b9_9532abe99b8d
  4aa8a188_84d4_0274_ed83_cac0ab1d3572["index.js"]
  4aa8a188_84d4_0274_ed83_cac0ab1d3572 --> 1bc14664_f20b_3427_fd82_e3fe649a4e10
  style 1bc14664_f20b_3427_fd82_e3fe649a4e10 fill:#6366f1,stroke:#818cf8,color:#fff

Relationship Graph

Source Code

/** @import { MemberExpression } from 'estree' */
/** @import { Context } from '../types' */
import * as e from '../../../errors.js';
import { is_pure, is_safe_identifier } from './shared/utils.js';

/**
 * @param {MemberExpression} node
 * @param {Context} context
 */
export function MemberExpression(node, context) {
	if (node.object.type === 'Identifier' && node.property.type === 'Identifier') {
		const binding = context.state.scope.get(node.object.name);
		if (binding?.kind === 'rest_prop' && node.property.name.startsWith('$$')) {
			e.props_illegal_name(node.property);
		}
	}

	if (context.state.expression) {
		context.state.expression.has_member_expression = true;
		context.state.expression.has_state ||= !is_pure(node, context);
	}

	if (!is_safe_identifier(node, context.state.scope)) {
		context.state.analysis.needs_context = true;
	}

	context.next();
}

Domain

Subdomains

Functions

Frequently Asked Questions

What does MemberExpression.js do?
MemberExpression.js is a source file in the svelte codebase, written in javascript. It belongs to the Compiler domain, Transformer subdomain.
What functions are defined in MemberExpression.js?
MemberExpression.js defines 1 function(s): MemberExpression.
What does MemberExpression.js depend on?
MemberExpression.js imports 5 module(s): e, errors.js, is_pure, is_safe_identifier, utils.js.
What files import MemberExpression.js?
MemberExpression.js is imported by 1 file(s): index.js.
Where is MemberExpression.js in the architecture?
MemberExpression.js is located at packages/svelte/src/compiler/phases/2-analyze/visitors/MemberExpression.js (domain: Compiler, subdomain: Transformer, directory: packages/svelte/src/compiler/phases/2-analyze/visitors).

Analyze Your Own Codebase

Get architecture documentation, dependency graphs, and domain analysis for your codebase in minutes.

Try Supermodel Free