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;
/** @type {IfStatement} */
const main_if = create_if(node, context, index++);
let if_statement = create_if(node, context, index++);
/** @type {IfStatement} */
let current_if = main_if;
let alternate = node.alternate;
context.state.init.push(
b.stmt(b.call('$.choose', context.state.node, b.arrow([], b.block([if_statement]))))
);
while (
alternate &&
alternate.nodes.length === 1 &&
alternate.nodes[0].type === 'IfBlock' &&
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;
let alt = node.alternate;
while (alt && alt.nodes.length === 1 && alt.nodes[0].type === 'IfBlock' && alt.nodes[0].elseif) {
const elseif = alt.nodes[0];
if_statement = if_statement.alternate = create_if(elseif, context, index++);
alt = elseif.alternate;
}
if (alternate) {
current_if.alternate = b.block([
if (alt) {
if_statement.alternate = b.block([
b.return(
b.array([
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;
/** @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;
while (
alternate &&
alternate.nodes.length === 1 &&
alternate.nodes[0].type === 'IfBlock' &&
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;
let alt = node.alternate;
while (alt && alt.nodes.length === 1 && alt.nodes[0].type === 'IfBlock' && alt.nodes[0].elseif) {
const elseif = alt.nodes[0];
if_statement = if_statement.alternate = create_if(elseif, context, index++);
alt = elseif.alternate;
}
/** @type {string} */
let else_key;
if (alternate) {
current_if.alternate = /** @type {BlockStatement} */ (context.visit(alternate));
if (alt) {
if_statement.alternate = /** @type {BlockStatement} */ (context.visit(alt));
else_key = `<!--[${index}-->`;
} else {
current_if.alternate = b.block([]);
if_statement.alternate = b.block([]);
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)))
);
}

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

Loading…
Cancel
Save