Skip to content

Commit c7d6d32

Browse files
committed
chore: add comments and rename stuff
1 parent 12697d1 commit c7d6d32

File tree

1 file changed

+11
-13
lines changed
  • packages/svelte/src/compiler/migrate

1 file changed

+11
-13
lines changed

packages/svelte/src/compiler/migrate/index.js

Lines changed: 11 additions & 13 deletions
Original file line numberDiff line numberDiff line change
@@ -468,27 +468,23 @@ const instance_script = {
468468
*/
469469
let labeled_statement;
470470

471+
// Analyze declaration bindings to see if they're exclusively updated within a single reactive statement
471472
const possible_derived = bindings.every((binding) =>
472473
binding.references.every((reference) => {
473-
const declaration_idx = reference.path.find((el) => el.type === 'VariableDeclaration');
474-
const assignment_idx = reference.path.find((el) => el.type === 'AssignmentExpression');
475-
const update_idx = reference.path.find((el) => el.type === 'UpdateExpression');
476-
const labeled_idx = reference.path.find(
474+
const declaration = reference.path.find((el) => el.type === 'VariableDeclaration');
475+
const assignment = reference.path.find((el) => el.type === 'AssignmentExpression');
476+
const update = reference.path.find((el) => el.type === 'UpdateExpression');
477+
const labeled = reference.path.find(
477478
(el) => el.type === 'LabeledStatement' && el.label.name === '$'
478479
);
479480

480-
if (assignment_idx && labeled_idx) {
481+
if (assignment && labeled) {
481482
if (assignment_in_labeled) return false;
482-
assignment_in_labeled = /** @type {AssignmentExpression} */ (assignment_idx);
483-
labeled_statement = /** @type {LabeledStatement} */ (labeled_idx);
483+
assignment_in_labeled = /** @type {AssignmentExpression} */ (assignment);
484+
labeled_statement = /** @type {LabeledStatement} */ (labeled);
484485
}
485486

486-
return (
487-
!update_idx &&
488-
(declaration_idx ||
489-
(labeled_idx && assignment_idx) ||
490-
(!labeled_idx && !assignment_idx))
491-
);
487+
return !update && (declaration || (labeled && assignment) || (!labeled && !assignment));
492488
})
493489
);
494490

@@ -521,6 +517,7 @@ const instance_script = {
521517
labeled_statement &&
522518
(labeled_has_single_assignment || is_expression_assignment)
523519
) {
520+
// Someone wrote a `$: { ... }` statement which we can turn into a `$derived`
524521
state.str.appendRight(
525522
/** @type {number} */ (declarator.id.typeAnnotation?.end ?? declarator.id.end),
526523
' = $derived('
@@ -550,6 +547,7 @@ const instance_script = {
550547
' = $state('
551548
);
552549
if (should_be_state) {
550+
// someone wrote a `$: foo = ...` statement which we can turn into `let foo = $state(...)`
553551
state.str.appendRight(
554552
/** @type {number} */ (declarator.id.typeAnnotation?.end ?? declarator.id.end),
555553
state.str

0 commit comments

Comments
 (0)