hoist-unmodified-var
Ben McCann 2 years ago
parent c0c653b18b
commit acb4455726

@ -39,7 +39,6 @@ import { sanitize_template_string } from '../../../../utils/sanitize_template_st
/** /**
* @param {import('../types.js').ComponentClientTransformState} state * @param {import('../types.js').ComponentClientTransformState} state
* @param {string} quasi_to_add * @param {string} quasi_to_add
* @returns
*/ */
function push_template_quasi(state, quasi_to_add) { function push_template_quasi(state, quasi_to_add) {
const { quasi } = state.template; const { quasi } = state.template;
@ -1176,30 +1175,25 @@ function create_block(parent, name, nodes, context) {
state state
}); });
const quasi = state.template.quasi[0]; const quasis = state.template.quasi;
if (quasis.length === 1 && quasis[0] === ' ') {
if (state.template.quasi.length === 1 && (quasi === ' ' || quasi === '<!>')) { body.push(b.var(node_id, b.call('$.space', b.id('$$anchor'))), ...state.init);
if (quasi === ' ') { close = b.stmt(b.call('$.close', b.id('$$anchor'), node_id));
body.push(b.var(node_id, b.call('$.space', b.id('$$anchor'))), ...state.init); } else if (quasis.length === 1 && quasis[0] === '<!>') {
close = b.stmt(b.call('$.close', b.id('$$anchor'), node_id)); body.push(
} else { b.var(id, b.call('$.comment', b.id('$$anchor'))),
body.push( b.var(node_id, b.call('$.child_frag', id)),
b.var(id, b.call('$.comment', b.id('$$anchor'))), ...state.init
b.var(node_id, b.call('$.child_frag', id)), );
...state.init close = b.stmt(b.call('$.close_frag', b.id('$$anchor'), id));
);
close = b.stmt(b.call('$.close_frag', b.id('$$anchor'), id));
}
} else { } else {
const callee = namespace === 'svg' ? '$.svg_template' : '$.template';
state.hoisted.push( state.hoisted.push(
b.var( b.var(
template_name, template_name,
b.call( b.call(
callee, namespace === 'svg' ? '$.svg_template' : '$.template',
b.template( b.template(
state.template.quasi.map((quasi) => b.quasi(quasi, true)), quasis.map((quasi) => b.quasi(quasi, true)),
state.template.expressions state.template.expressions
), ),
b.true b.true

Loading…
Cancel
Save