code cleaning

pull/14551/head
adiguba 2 years ago
parent 3e4552ece8
commit 6b79e4a305

@ -29,37 +29,26 @@ export function IfBlock(node, context) {
let index = 0; let index = 0;
/** @type {IfStatement} */ /** @type {IfStatement} */
const main_if = create_if(node, context, index++); let if_statement = create_if(node, context, index++);
/** @type {IfStatement} */ context.state.init.push(
let current_if = main_if; b.stmt(b.call('$.choose', context.state.node, b.arrow([], b.block([if_statement]))))
);
let alternate = node.alternate;
while ( let alt = node.alternate;
alternate && while (alt && alt.nodes.length === 1 && alt.nodes[0].type === 'IfBlock' && alt.nodes[0].elseif) {
alternate.nodes.length === 1 && const elseif = alt.nodes[0];
alternate.nodes[0].type === 'IfBlock' && if_statement = if_statement.alternate = create_if(elseif, context, index++);
alternate.nodes[0].elseif alt = elseif.alternate;
) {
const current_node = alternate.nodes[0];
current_if = current_if.alternate = create_if(current_node, context, index++);
alternate = current_node.alternate;
} }
if (alternate) { if (alt) {
current_if.alternate = b.block([ if_statement.alternate = b.block([
b.return( b.return(
b.array([ b.array([
b.literal(index++), b.literal(index++),
b.arrow([b.id('$$anchor')], /** @type {BlockStatement} */ (context.visit(alternate))) b.arrow([b.id('$$anchor')], /** @type {BlockStatement} */ (context.visit(alt)))
]) ])
) )
]); ]);
} }
context.state.init.push(
b.stmt(
b.call('$.choose', context.state.node, b.arrow([], b.block([main_if])), b.literal(index))
)
);
} }

@ -33,32 +33,27 @@ export function IfBlock(node, context) {
let index = 0; let index = 0;
/** @type {IfStatement} */ /** @type {IfStatement} */
let current_if = create_if(node, context, index++); let if_statement = create_if(node, context, index++);
context.state.template.push(current_if, block_close); context.state.template.push(if_statement, block_close);
let alternate = node.alternate; let alt = node.alternate;
while ( while (alt && alt.nodes.length === 1 && alt.nodes[0].type === 'IfBlock' && alt.nodes[0].elseif) {
alternate && const elseif = alt.nodes[0];
alternate.nodes.length === 1 && if_statement = if_statement.alternate = create_if(elseif, context, index++);
alternate.nodes[0].type === 'IfBlock' && alt = elseif.alternate;
alternate.nodes[0].elseif
) {
const current_node = alternate.nodes[0];
current_if = current_if.alternate = create_if(current_node, context, index++);
alternate = current_node.alternate;
} }
/** @type {string} */ /** @type {string} */
let else_key; let else_key;
if (alternate) { if (alt) {
current_if.alternate = /** @type {BlockStatement} */ (context.visit(alternate)); if_statement.alternate = /** @type {BlockStatement} */ (context.visit(alt));
else_key = `<!--[${index}-->`; else_key = `<!--[${index}-->`;
} else { } else {
current_if.alternate = b.block([]); if_statement.alternate = b.block([]);
else_key = BLOCK_OPEN_ELSE; else_key = BLOCK_OPEN_ELSE;
} }
current_if.alternate.body.unshift( if_statement.alternate.body.unshift(
b.stmt(b.assignment('+=', b.id('$$payload.out'), b.literal(else_key))) b.stmt(b.assignment('+=', b.id('$$payload.out'), b.literal(else_key)))
); );
} }

@ -10,8 +10,6 @@ import {
} from '../hydration.js'; } from '../hydration.js';
import { block, branch, pause_effect, resume_effect } from '../../reactivity/effects.js'; import { block, branch, pause_effect, resume_effect } from '../../reactivity/effects.js';
import { HYDRATION_START_ELSE } from '../../../../constants.js'; import { HYDRATION_START_ELSE } from '../../../../constants.js';
import { derived } from '../../reactivity/deriveds.js';
import { get } from '../../runtime.js';
/** /**
* @param {TemplateNode} node * @param {TemplateNode} node

Loading…
Cancel
Save