pull/10922/head
Rich Harris 2 years ago
parent 8c11e70794
commit 7219b9ea8c

@ -477,66 +477,43 @@ function serialize_element_attribute_update_assignment(element, node_id, attribu
const assign = (grouped, singular) => {
if (name === 'class') {
if (singular) {
return {
singular: b.stmt(
b.call(
is_svg ? '$.svg_class_name_effect' : '$.class_name_effect',
node_id,
b.thunk(singular)
)
),
grouped: b.stmt(b.call(is_svg ? '$.svg_class_name' : '$.class_name', node_id, singular))
};
return b.stmt(b.call(is_svg ? '$.svg_class_name' : '$.class_name', node_id, singular));
}
return {
grouped: b.stmt(b.call(is_svg ? '$.svg_class_name' : '$.class_name', node_id, value))
};
return b.stmt(b.call(is_svg ? '$.svg_class_name' : '$.class_name', node_id, value));
} else if (!DOMProperties.includes(name)) {
if (singular) {
return {
singular: b.stmt(
b.call(
name.startsWith('xlink') ? '$.xlink_attr_effect' : '$.attr_effect',
node_id,
b.literal(name),
b.thunk(singular)
)
),
grouped: b.stmt(
return b.stmt(
b.call(
name.startsWith('xlink') ? '$.xlink_attr' : '$.attr',
node_id,
b.literal(name),
grouped
)
)
};
);
}
return {
grouped: b.stmt(
return b.stmt(
b.call(
name.startsWith('xlink') ? '$.xlink_attr' : '$.attr',
node_id,
b.literal(name),
grouped
)
)
};
);
} else {
return { grouped: b.stmt(b.assignment('=', b.member(node_id, b.id(name)), grouped)) };
return b.stmt(b.assignment('=', b.member(node_id, b.id(name)), grouped));
}
};
if (attribute.metadata.dynamic) {
const { grouped, singular } = assign(grouped_value, value);
if (contains_call_expression && singular) {
state.init.push(singular);
const grouped = assign(grouped_value, value);
if (contains_call_expression) {
state.init.push(serialize_update(grouped));
} else {
state.update.push(grouped);
}
return true;
} else {
state.init.push(assign(grouped_value).grouped);
state.init.push(assign(grouped_value));
return false;
}
}

@ -18,11 +18,11 @@ export default function Main($$anchor, $$props) {
var custom_element_fooBar;
var div_1 = $.sibling($.sibling(custom_element, true));
$.attr_effect(div_1, "foobar", y);
$.render_effect(() => $.attr(div_1, "foobar", y()));
var svg_1 = $.sibling($.sibling(div_1, true));
$.attr_effect(svg_1, "viewBox", y);
$.render_effect(() => $.attr(svg_1, "viewBox", y()));
var custom_element_1 = $.sibling($.sibling(svg_1, true));

Loading…
Cancel
Save