diff --git a/packages/svelte/src/compiler/phases/2-analyze/index.js b/packages/svelte/src/compiler/phases/2-analyze/index.js index af3945d435..3c586179c8 100644 --- a/packages/svelte/src/compiler/phases/2-analyze/index.js +++ b/packages/svelte/src/compiler/phases/2-analyze/index.js @@ -23,6 +23,7 @@ import { Attribute } from './visitors/Attribute.js'; import { AwaitBlock } from './visitors/AwaitBlock.js'; import { BindDirective } from './visitors/BindDirective.js'; import { CallExpression } from './visitors/CallExpression.js'; +import { ClassBody } from './visitors/ClassBody.js'; import { ClassDeclaration } from './visitors/ClassDeclaration.js'; import { ClassDirective } from './visitors/ClassDirective.js'; import { Component } from './visitors/Component.js'; @@ -139,6 +140,7 @@ const visitors = { AwaitBlock, BindDirective, CallExpression, + ClassBody, ClassDeclaration, ClassDirective, Component, diff --git a/packages/svelte/src/compiler/phases/2-analyze/visitors/ClassBody.js b/packages/svelte/src/compiler/phases/2-analyze/visitors/ClassBody.js new file mode 100644 index 0000000000..30364a14f1 --- /dev/null +++ b/packages/svelte/src/compiler/phases/2-analyze/visitors/ClassBody.js @@ -0,0 +1,14 @@ +/** @import { ClassBody } from 'estree' */ +/** @import { Context } from '../types' */ +import { ClassAnalysis } from './shared/class-analysis.js'; + +/** + * @param {ClassBody} node + * @param {Context} context + */ +export function ClassBody(node, context) { + context.next({ + ...context.state, + class_state: context.state.analysis.runes ? new ClassAnalysis() : null + }); +} diff --git a/packages/svelte/src/compiler/phases/2-analyze/visitors/ClassDeclaration.js b/packages/svelte/src/compiler/phases/2-analyze/visitors/ClassDeclaration.js index b49ad099e5..20925a65b7 100644 --- a/packages/svelte/src/compiler/phases/2-analyze/visitors/ClassDeclaration.js +++ b/packages/svelte/src/compiler/phases/2-analyze/visitors/ClassDeclaration.js @@ -1,7 +1,6 @@ /** @import { ClassDeclaration } from 'estree' */ /** @import { Context } from '../types' */ import * as w from '../../../warnings.js'; -import { ClassAnalysis } from './shared/class-analysis.js'; import { validate_identifier_name } from './shared/utils.js'; /** @@ -22,8 +21,5 @@ export function ClassDeclaration(node, context) { w.perf_avoid_nested_class(node); } - context.next({ - ...context.state, - class_state: context.state.analysis.runes ? new ClassAnalysis() : null - }); + context.next(); }