Skip to content

Commit bb4b7f4

Browse files
committed
chore: refactor
1 parent 6695a5e commit bb4b7f4

File tree

1 file changed

+15
-24
lines changed
  • packages/svelte/src/compiler/migrate

1 file changed

+15
-24
lines changed

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

Lines changed: 15 additions & 24 deletions
Original file line numberDiff line numberDiff line change
@@ -103,13 +103,6 @@ export function migrate(source) {
103103
walk(parsed.instance.content, state, instance_script);
104104
}
105105

106-
for (let labeled_to_remove of state.derived_labeled_statements) {
107-
state.str.remove(
108-
/** @type {number} */ (labeled_to_remove.start),
109-
/** @type {number} */ (labeled_to_remove.end)
110-
);
111-
}
112-
113106
state = { ...state, scope: analysis.template.scope };
114107
walk(parsed.fragment, state, template);
115108

@@ -477,30 +470,24 @@ const instance_script = {
477470

478471
const possible_derived = bindings.every((binding) =>
479472
binding.references.every((reference) => {
480-
const declaration_idx = reference.path.findIndex(
481-
(el) => el.type === 'VariableDeclaration'
482-
);
483-
const assignment_idx = reference.path.findIndex(
484-
(el) => el.type === 'AssignmentExpression'
485-
);
486-
const update_idx = reference.path.findIndex((el) => el.type === 'UpdateExpression');
487-
const labeled_idx = reference.path.findIndex(
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(
488477
(el) => el.type === 'LabeledStatement' && el.label.name === '$'
489478
);
490479

491-
if (assignment_idx !== -1 && labeled_idx !== -1) {
480+
if (assignment_idx && labeled_idx) {
492481
if (assignment_in_labeled) return false;
493-
assignment_in_labeled = /** @type {AssignmentExpression} */ (
494-
reference.path[assignment_idx]
495-
);
496-
labeled_statement = /** @type {LabeledStatement} */ (reference.path[labeled_idx]);
482+
assignment_in_labeled = /** @type {AssignmentExpression} */ (assignment_idx);
483+
labeled_statement = /** @type {LabeledStatement} */ (labeled_idx);
497484
}
498485

499486
return (
500-
update_idx === -1 &&
501-
(declaration_idx !== -1 ||
502-
(labeled_idx !== -1 && assignment_idx !== -1) ||
503-
(labeled_idx === -1 && assignment_idx === -1))
487+
!update_idx &&
488+
(declaration_idx ||
489+
(labeled_idx && assignment_idx) ||
490+
(!labeled_idx && !assignment_idx))
504491
);
505492
})
506493
);
@@ -529,6 +516,10 @@ const instance_script = {
529516
)
530517
.toString()
531518
);
519+
state.str.remove(
520+
/** @type {number} */ (labeled_statement.start),
521+
/** @type {number} */ (labeled_statement.end)
522+
);
532523
state.str.appendRight(
533524
/** @type {number} */ (declarator.id.typeAnnotation?.end ?? declarator.id.end),
534525
')'

0 commit comments

Comments
 (0)