validate_mutation() — svelte Function Reference
Architecture documentation for the validate_mutation() function in utils.js from the svelte codebase.
Entity Profile
Dependency Diagram
graph TD dcd117e6_7004_e4da_f4a2_f82f6e43060c["validate_mutation()"] d04d7971_88df_542d_dd4f_26170ce6f581["utils.js"] dcd117e6_7004_e4da_f4a2_f82f6e43060c -->|defined in| d04d7971_88df_542d_dd4f_26170ce6f581 1f789731_ba68_8335_c783_30bddb35964b["AssignmentExpression()"] 1f789731_ba68_8335_c783_30bddb35964b -->|calls| dcd117e6_7004_e4da_f4a2_f82f6e43060c 68cf0c33_ad3f_da48_7ecf_ca63584ef620["UpdateExpression()"] 68cf0c33_ad3f_da48_7ecf_ca63584ef620 -->|calls| dcd117e6_7004_e4da_f4a2_f82f6e43060c 7a7783f8_ffa6_0cc3_61b0_031882649535["is_ignored()"] dcd117e6_7004_e4da_f4a2_f82f6e43060c -->|calls| 7a7783f8_ffa6_0cc3_61b0_031882649535 804afe56_25d1_9f41_dafe_adc75e952134["object()"] dcd117e6_7004_e4da_f4a2_f82f6e43060c -->|calls| 804afe56_25d1_9f41_dafe_adc75e952134 style dcd117e6_7004_e4da_f4a2_f82f6e43060c fill:#6366f1,stroke:#818cf8,color:#fff
Relationship Graph
Source Code
packages/svelte/src/compiler/phases/3-transform/client/visitors/shared/utils.js lines 382–434
export function validate_mutation(node, context, expression) {
let left = /** @type {Expression | Super} */ (
node.type === 'AssignmentExpression' ? node.left : node.argument
);
if (!dev || left.type !== 'MemberExpression' || is_ignored(node, 'ownership_invalid_mutation')) {
return expression;
}
const name = object(left);
if (!name) return expression;
const binding = context.state.scope.get(name.name);
if (binding?.kind !== 'prop' && binding?.kind !== 'bindable_prop') return expression;
const state = /** @type {ComponentClientTransformState} */ (context.state);
state.analysis.needs_mutation_validation = true;
/** @type {Array<Identifier | Literal | Expression>} */
const path = [];
while (left.type === 'MemberExpression') {
if (left.property.type === 'Literal') {
path.unshift(left.property);
} else if (left.property.type === 'Identifier') {
const transform = Object.hasOwn(context.state.transform, left.property.name)
? context.state.transform[left.property.name]
: null;
if (left.computed) {
path.unshift(transform?.read ? transform.read(left.property) : left.property);
} else {
path.unshift(b.literal(left.property.name));
}
} else {
return expression;
}
left = left.object;
}
path.unshift(b.literal(name.name));
const loc = locator(/** @type {number} */ (left.start));
return b.call(
'$$ownership_validator.mutation',
b.literal(binding.prop_alias),
b.array(path),
expression,
loc && b.literal(loc.line),
loc && b.literal(loc.column)
);
}
Domain
Subdomains
Calls
Called By
Source
Frequently Asked Questions
What does validate_mutation() do?
validate_mutation() is a function in the svelte codebase, defined in packages/svelte/src/compiler/phases/3-transform/client/visitors/shared/utils.js.
Where is validate_mutation() defined?
validate_mutation() is defined in packages/svelte/src/compiler/phases/3-transform/client/visitors/shared/utils.js at line 382.
What does validate_mutation() call?
validate_mutation() calls 2 function(s): is_ignored, object.
What calls validate_mutation()?
validate_mutation() is called by 2 function(s): AssignmentExpression, UpdateExpression.
Analyze Your Own Codebase
Get architecture documentation, dependency graphs, and domain analysis for your codebase in minutes.
Try Supermodel Free