gh-17012
ComputerGuy 2 weeks ago
parent 7948cb928f
commit 17308a5a4c

@ -7,26 +7,26 @@ import * as b from '#compiler/builders';
* @param {Context} context * @param {Context} context
*/ */
export function ClassDeclaration(node, context) { export function ClassDeclaration(node, context) {
/** @type {ServerTransformState & { computed_field_declarations: VariableDeclaration[] }} */ /** @type {ServerTransformState & { computed_field_declarations: VariableDeclaration[] }} */
const state = { const state = {
...context.state, ...context.state,
computed_field_declarations: [] computed_field_declarations: []
}; };
const super_class = node.superClass const super_class = node.superClass
? /** @type {Expression} */ (context.visit(node.superClass)) ? /** @type {Expression} */ (context.visit(node.superClass))
: null; : null;
const body = /** @type {ClassBody} */ (context.visit(node.body, state)); const body = /** @type {ClassBody} */ (context.visit(node.body, state));
if (state.computed_field_declarations.length > 0) { if (state.computed_field_declarations.length > 0) {
const init = b.call( const init = b.call(
b.arrow( b.arrow(
[], [],
b.block([ b.block([
...state.computed_field_declarations, ...state.computed_field_declarations,
b.return(b.class(node.id, body, super_class)) b.return(b.class(node.id, body, super_class))
]) ])
) )
); );
return node.id ? b.var(node.id, init) : init; return node.id ? b.var(node.id, init) : init;
} }
return b.class_declaration(node.id, body, super_class); return b.class_declaration(node.id, body, super_class);
} }

Loading…
Cancel
Save