Skip to content

Commit 6fde4b5

Browse files
committed
remove set_custom_element_data_effect
1 parent bfd9570 commit 6fde4b5

File tree

3 files changed

+9
-46
lines changed
  • packages/svelte

3 files changed

+9
-46
lines changed

packages/svelte/src/compiler/phases/3-transform/client/visitors/template.js

Lines changed: 7 additions & 29 deletions
Original file line numberDiff line numberDiff line change
@@ -496,40 +496,18 @@ function serialize_custom_element_attribute_update_assignment(node_id, attribute
496496
const state = context.state;
497497
const name = attribute.name; // don't lowercase, as we set the element's property, which might be case sensitive
498498
let [contains_call_expression, value] = serialize_attribute_value(attribute.value, context);
499-
let grouped_value = value;
500499

501-
/**
502-
* @param {import('estree').Expression} grouped
503-
* @param {import('estree').Expression} [singular]
504-
*/
505-
const assign = (grouped, singular) => {
506-
if (singular) {
507-
return {
508-
singular: b.stmt(
509-
b.call('$.set_custom_element_data_effect', node_id, b.literal(name), b.thunk(singular))
510-
),
511-
grouped: b.stmt(b.call('$.set_custom_element_data', node_id, b.literal(name), grouped))
512-
};
513-
}
514-
return {
515-
grouped: b.stmt(b.call('$.set_custom_element_data', node_id, b.literal(name), grouped))
516-
};
517-
};
500+
const update = b.stmt(b.call('$.set_custom_element_data', node_id, b.literal(name), value));
518501

519502
if (attribute.metadata.dynamic) {
520-
const id = state.scope.generate(`${node_id.name}_${name}`);
521-
// TODO should this use the if condition? what if someone mutates the value passed to the ce?
522-
serialize_update_assignment(
523-
state,
524-
id,
525-
undefined,
526-
grouped_value,
527-
assign(b.id(id), value),
528-
contains_call_expression
529-
);
503+
if (contains_call_expression) {
504+
state.init.push(serialize_update(update));
505+
} else {
506+
state.update.push(update);
507+
}
530508
return true;
531509
} else {
532-
state.init.push(assign(grouped_value).grouped);
510+
state.init.push(update);
533511
return false;
534512
}
535513
}

packages/svelte/src/internal/client/dom/elements/attributes.js

Lines changed: 0 additions & 11 deletions
Original file line numberDiff line numberDiff line change
@@ -62,17 +62,6 @@ export function xlink_attr(dom, attribute, value) {
6262
dom.setAttributeNS('http://www.w3.org/1999/xlink', attribute, value);
6363
}
6464

65-
/**
66-
* @param {any} node
67-
* @param {string} prop
68-
* @param {() => any} value
69-
*/
70-
export function set_custom_element_data_effect(node, prop, value) {
71-
render_effect(() => {
72-
set_custom_element_data(node, prop, value());
73-
});
74-
}
75-
7665
/**
7766
* @param {any} node
7867
* @param {string} prop

packages/svelte/tests/snapshot/samples/dynamic-attributes-casing/_expected/client/main.svelte.js

Lines changed: 2 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -15,7 +15,6 @@ export default function Main($$anchor, $$props) {
1515
var div = $.first_child(fragment);
1616
var svg = $.sibling($.sibling(div, true));
1717
var custom_element = $.sibling($.sibling(svg, true));
18-
var custom_element_fooBar;
1918
var div_1 = $.sibling($.sibling(custom_element, true));
2019

2120
$.render_effect(() => $.attr(div_1, "foobar", y()));
@@ -26,15 +25,12 @@ export default function Main($$anchor, $$props) {
2625

2726
var custom_element_1 = $.sibling($.sibling(svg_1, true));
2827

29-
$.set_custom_element_data_effect(custom_element_1, "fooBar", y);
28+
$.render_effect(() => $.set_custom_element_data(custom_element_1, "fooBar", y()));
3029

3130
$.render_effect(() => {
3231
$.attr(div, "foobar", x);
3332
$.attr(svg, "viewBox", x);
34-
35-
if (custom_element_fooBar !== (custom_element_fooBar = x)) {
36-
$.set_custom_element_data(custom_element, "fooBar", custom_element_fooBar);
37-
}
33+
$.set_custom_element_data(custom_element, "fooBar", x);
3834
});
3935

4036
$.close_frag($$anchor, fragment);

0 commit comments

Comments
 (0)