UpdateExpression() — svelte Function Reference
Architecture documentation for the UpdateExpression() function in UpdateExpression.js from the svelte codebase.
Entity Profile
Dependency Diagram
graph TD 68cf0c33_ad3f_da48_7ecf_ca63584ef620["UpdateExpression()"] 5ec95d09_9bd6_c503_274b_b0589008b7ac["UpdateExpression.js"] 68cf0c33_ad3f_da48_7ecf_ca63584ef620 -->|defined in| 5ec95d09_9bd6_c503_274b_b0589008b7ac 804afe56_25d1_9f41_dafe_adc75e952134["object()"] 68cf0c33_ad3f_da48_7ecf_ca63584ef620 -->|calls| 804afe56_25d1_9f41_dafe_adc75e952134 dcd117e6_7004_e4da_f4a2_f82f6e43060c["validate_mutation()"] 68cf0c33_ad3f_da48_7ecf_ca63584ef620 -->|calls| dcd117e6_7004_e4da_f4a2_f82f6e43060c style 68cf0c33_ad3f_da48_7ecf_ca63584ef620 fill:#6366f1,stroke:#818cf8,color:#fff
Relationship Graph
Source Code
packages/svelte/src/compiler/phases/3-transform/client/visitors/UpdateExpression.js lines 11–55
export function UpdateExpression(node, context) {
const argument = node.argument;
if (
argument.type === 'MemberExpression' &&
argument.object.type === 'ThisExpression' &&
argument.property.type === 'PrivateIdentifier' &&
context.state.state_fields.has('#' + argument.property.name)
) {
let fn = '$.update';
if (node.prefix) fn += '_pre';
/** @type {Expression[]} */
const args = [argument];
if (node.operator === '--') {
args.push(b.literal(-1));
}
return b.call(fn, ...args);
}
if (argument.type !== 'Identifier' && argument.type !== 'MemberExpression') {
throw new Error('An impossible state was reached');
}
const left = object(argument);
const transformers = left && context.state.transform[left.name];
if (left === argument && transformers?.update) {
// we don't need to worry about ownership_invalid_mutation here, because
// we're not mutating but reassigning
return transformers.update(node);
}
let update = /** @type {Expression} */ (context.next());
if (left && transformers?.mutate) {
update = transformers.mutate(
left,
/** @type {AssignmentExpression | UpdateExpression} */ (update)
);
}
return validate_mutation(node, context, update);
}
Domain
Subdomains
Source
Frequently Asked Questions
What does UpdateExpression() do?
UpdateExpression() is a function in the svelte codebase, defined in packages/svelte/src/compiler/phases/3-transform/client/visitors/UpdateExpression.js.
Where is UpdateExpression() defined?
UpdateExpression() is defined in packages/svelte/src/compiler/phases/3-transform/client/visitors/UpdateExpression.js at line 11.
What does UpdateExpression() call?
UpdateExpression() calls 2 function(s): object, validate_mutation.
Analyze Your Own Codebase
Get architecture documentation, dependency graphs, and domain analysis for your codebase in minutes.
Try Supermodel Free